未分類

openproject

sudo apt install ca-certificates

使用nginx
www.openproject.org/docs/installation-and-operations/configuration/server/

# default.conf
upstream web {
    server web:8080;
}

server {
        listen 80;
        server_name _;

        location / {
            proxy_pass_header  Server;
            proxy_set_header   Host $http_host;
            proxy_redirect     off;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Scheme $scheme;
            proxy_pass         http://web/;
        }
}

#變數
test01 = User.current.id
test01 = User.current.login

pdf亂碼處理

TaipeiSansTCBeta-Regular.ttf
TaipeiSansTCBeta-Bold.ttf
TaipeiSansTCBeta-Light.ttf

vi /opt/openproject/app/models/work_package/pdf_export/view.rb

  def document
    @document ||= Prawn::Document.new(options.merge(info: info)).tap do |document|
      register_fonts! document

      document.set_font document.font('TaipeiSansTCBeta')
      document.fallback_fonts = fallback_fonts
    end
  end
  def register_fonts!(document)
    font_path = Rails.root.join('public/fonts')

    document.font_families['TaipeiSansTCBeta'] = {
      normal: {
        file: font_path.join('noto/TaipeiSansTCBeta-Bold.ttf'),
        font: 'TaipeiSansTCBeta-Bold'
      },
      italic: {
        file: font_path.join('noto/TaipeiSansTCBeta-Bold.ttf'),
        font: 'TaipeiSansTCBeta-Bold'
      },
      bold: {
        file: font_path.join('noto/TaipeiSansTCBeta-Bold.ttf'),
        font: 'TaipeiSansTCBeta-Bold'
      },
      bold_italic: {
        file: font_path.join('noto/TaipeiSansTCBeta-Bold.ttf'),
        font: 'TaipeiSansTCBeta-Bold'
      }
    }
  end

查看資料庫密碼
vi /etc/openproject/installer.dat

#自訂首頁
./openproject/config/initializers/homescreen.rb:
用#mark以下{}區
partial: ‘new_features’,
partial: ‘upsale’,

#去除help
vi ./lib/redmine/menu_manager/top_menu/help_menu.rb
只剩下如下字段

module Redmine::MenuManager::TopMenu::HelpMenu
  def render_help_top_menu_node(item = help_menu_item)
  end
end

sql

psql -h 127.0.0.1 -p 45432 -U openproject

查看sql帳密資訊
sudo openproject config:get DATABASE_URL
登入sql
sudo su - postgres -c psql

#個人化js

vi ./openproject/app/views/work_packages/index.html.erb
<script src="assets/frontend/test.js"></script>
jQuery(function(){
   function show_popup(){
      jQuery("#dueDate").css("background-color", "yellow");
      jQuery(".status:contains(New)").parent().css("background-color", "yellow");
   };
   //window.setTimeout( show_popup, 5000 ); // 5 seconds
	window.setInterval( show_popup, 1000 ); // 5 seconds
});

#api

修改工作項目狀態

{
  "lockVersion": 26,
        "status": {
            "href": "/api/v3/statuses/15"
        }
}

#修改專案狀態

{
        "status": {
            "href": "/api/v3/project_statuses/at_risk"
        }
}
var u = 'apikey';
var p = '2b2819f62f3b7698f25ce01a8e56f1662a6e882ab60ad09fb64304ddd89ed2a3';
var url = 'http://10.3.1.36/api/v3/work_packages/56';
var jsonData = {
  "lockVersion": 50,
  "status": {
    "href": "/api/v3/statuses/1"
  }
}

$.ajax({
  type: 'PATCH',
  headers: {"Authorization": "Basic " + btoa(u + ":" + p)},
  url: url,
  contentType: "application/json",
  dataType: "json",
  data: JSON.stringify(jsonData),
});
var u = 'apikey';
var p = '2b2819f62f3b7698f25ce01a8e56f1662a6e882ab60ad09fb64304ddd89ed2a3';
var url = 'http://10.3.1.36/api/v3/work_packages/56';

var jsonData = {}
jsonData.lockVersion = b;
jsonData.subject = "aa" + b;
jsonData.status = {};
jsonData.status.href = "/api/v3/statuses/1";

$.ajax({
  type: 'PATCH',
  headers: {"Authorization": "Basic " + btoa(u + ":" + p)},
  url: url,
  contentType: "application/json",
  dataType: "json",
  data: JSON.stringify(jsonData),
});

#mail樣板
vi ./openproject/app/views/mailer/_notification_mailer_header.html.erb

project專案頁面 + js
/opt/openproject/modules/overviews/app/views/overviews/overviews/show.html.erb

#外包商應用
update users set type=’PlaceholderUser’,status=’1′ where id=9;

#指定帳號可以加限定的群組 – members
vi /opt/openproject/app/models/role.rb

#josh start
  def self.givable
    if "admin" == User.current.login
      where(builtin: NON_BUILTIN)
     .where(type: 'Role')
     .order(Arel.sql('position'))
    else
      where(builtin: NON_BUILTIN)
     .where(type: 'Role')
     .where(" name like 'G_%'  " )
     .order(Arel.sql('position'))
    end
  end
#josh end

#指定帳號可以使用限定的群組 – work_packages
vi /opt/openproject/app/models/queries/roles/filters/grantable_filter.rb
[“roles.builtin IN (?) and name like ‘G_%’ “, db_values]

vi /opt/openproject/app/views/members/index.html.erb

jQuery(function(){
function show_popup(){
jQuery(“#dueDate”).css(“background-color”, “yellow”);
jQuery(“.status:contains(New)”).parent().css(“background-color”, “yellow”);
};
//window.setTimeout( show_popup, 5000 ); // 5 seconds
window.setInterval( show_popup, 1000 ); // 5 seconds
});

升級後nginx無法進http,被導到https

sudo openproject config:set OPENPROJECT_HTTPS="false"

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。