diff --git a/workflow/engine/menus/setup.php b/workflow/engine/menus/setup.php index 7f562e290..fe01eef05 100755 --- a/workflow/engine/menus/setup.php +++ b/workflow/engine/menus/setup.php @@ -88,3 +88,8 @@ if ($RBAC->userCanAccess('PM_SETUP') == 1) { $G_TMP_MENU->AddIdRawOption('EMAILS', '../mails/emailList', ucfirst (strtolower ( G::LoadTranslation('ID_EMAILS'))), '', '', 'logs'); } +if ($RBAC->userCanAccess("PM_SETUP") == 1) { + $G_TMP_MENU->AddIdRawOption("PM_REQUIREMENTS", "../setup/systemInfo", G::LoadTranslation("ID_PROCESSMAKER_REQUIREMENTS_CHECK"), "", "", "settings"); + $G_TMP_MENU->AddIdRawOption("PHP_INFO", "../setup/systemInfo?option=php", G::LoadTranslation("ID_PHP_INFO"), "", "", "settings"); +} + diff --git a/workflow/engine/methods/setup/cron.php b/workflow/engine/methods/setup/cron.php index 2aa3171c8..7d8fcd224 100644 --- a/workflow/engine/methods/setup/cron.php +++ b/workflow/engine/methods/setup/cron.php @@ -5,9 +5,9 @@ G::LoadClass( "configuration" ); global $RBAC; -if ($RBAC->userCanAccess( "PM_SETUP_ADVANCE" ) != 1) { - G::SendTemporalMessage( "ID_USER_HAVENT_RIGHTS_PAGE", "error", "labels" ); - exit( 0 ); +if ($RBAC->userCanAccess("PM_SETUP") != 1) { + G::SendTemporalMessage("ID_USER_HAVENT_RIGHTS_PAGE", "error", "labels"); + exit(0); } //Cron status diff --git a/workflow/engine/methods/setup/systemInfo.php b/workflow/engine/methods/setup/systemInfo.php new file mode 100644 index 000000000..149aa49be --- /dev/null +++ b/workflow/engine/methods/setup/systemInfo.php @@ -0,0 +1,41 @@ +addContent("setup/phpInfo"); //Adding a html file .html + $oHeadPublisher->addExtJsScript("setup/phpInfo", false); //Adding a javascript file .js + + G::RenderPage("publish", "extJs"); + break; + default: + require_once (PATH_CONTROLLERS . "installer.php"); + + $installer = new Installer(); + + $systemInfo = $installer->getSystemInfo(); + + $oHeadPublisher = &headPublisher::getSingleton(); + $oHeadPublisher->addContent("setup/systemInfo"); //Adding a html file .html + $oHeadPublisher->addExtJsScript("setup/systemInfo", false); //Adding a javascript file .js + + $oHeadPublisher->assign("SYSINFO_PHP", "\"" . $systemInfo->php->version . "\", " . $systemInfo->php->result); + $oHeadPublisher->assign("SYSINFO_MYSQL", "\"" . $systemInfo->mysql->version . "\", " . $systemInfo->mysql->result); + $oHeadPublisher->assign("SYSINFO_MSSQL", "\"" . $systemInfo->mssql->version . "\", " . $systemInfo->mssql->result); + $oHeadPublisher->assign("SYSINFO_CURL", "\"" . $systemInfo->curl->version . "\", " . $systemInfo->curl->result); + $oHeadPublisher->assign("SYSINFO_OPENSSL", "\"" . $systemInfo->openssl->version . "\", " . $systemInfo->openssl->result); + $oHeadPublisher->assign("SYSINFO_DOMXML", "\"" . $systemInfo->dom->version . "\", " . $systemInfo->dom->result); + $oHeadPublisher->assign("SYSINFO_GD", "\"" . $systemInfo->gd->version . "\", " . $systemInfo->gd->result); + $oHeadPublisher->assign("SYSINFO_MULTIBYTESTRING", "\"" . $systemInfo->multibyte->version . "\", " . $systemInfo->multibyte->result); + $oHeadPublisher->assign("SYSINFO_SOAP", "\"" . $systemInfo->soap->version . "\", " . $systemInfo->soap->result); + $oHeadPublisher->assign("SYSINFO_LDAP", "\"" . $systemInfo->ldap->version . "\", " . $systemInfo->ldap->result); + $oHeadPublisher->assign("SYSINFO_MEMORYLIMIT", "\"" . $systemInfo->memory->version . "\", " . $systemInfo->memory->result); + + G::RenderPage("publish", "extJs"); + break; +} + diff --git a/workflow/engine/skinEngine/base/css/pmos-xtheme-gray.css b/workflow/engine/skinEngine/base/css/pmos-xtheme-gray.css index 20852b8ed..ee318afb8 100755 --- a/workflow/engine/skinEngine/base/css/pmos-xtheme-gray.css +++ b/workflow/engine/skinEngine/base/css/pmos-xtheme-gray.css @@ -799,6 +799,17 @@ antes funcionaba. height:15px !important; } +.ICON_PM_REQUIREMENTS{ + /*ss_wrench*/ + background-image: url(/images/icons_silk/sprites.png) !important; + background-position:0 -17821px !important +} + +.ICON_PHP_INFO{ + background-image: url(/images/documents/extension/php.png) !important; + width: 16px !important; + height: 16px !important; +} /* Language Support module styles*/ .upload-icon { diff --git a/workflow/engine/skinEngine/uxmodern/css/pmos-xtheme-gray.css b/workflow/engine/skinEngine/uxmodern/css/pmos-xtheme-gray.css index 1db1b66d8..929bbfa7f 100644 --- a/workflow/engine/skinEngine/uxmodern/css/pmos-xtheme-gray.css +++ b/workflow/engine/skinEngine/uxmodern/css/pmos-xtheme-gray.css @@ -824,6 +824,17 @@ antes funcionaba. height:15px !important; } +.ICON_PM_REQUIREMENTS{ + /*ss_wrench*/ + background-image: url(/images/icons_silk/sprites.png) !important; + background-position:0 -17821px !important +} + +.ICON_PHP_INFO{ + background-image: url(/images/documents/extension/php.png) !important; + width: 16px !important; + height: 16px !important; +} /* Language Support module styles*/ .upload-icon { diff --git a/workflow/engine/skinEngine/uxs/css/pmos-xtheme-gray.css b/workflow/engine/skinEngine/uxs/css/pmos-xtheme-gray.css index 69c6108cb..98248823b 100644 --- a/workflow/engine/skinEngine/uxs/css/pmos-xtheme-gray.css +++ b/workflow/engine/skinEngine/uxs/css/pmos-xtheme-gray.css @@ -796,6 +796,17 @@ antes funcionaba. height:15px !important; } +.ICON_PM_REQUIREMENTS{ + /*ss_wrench*/ + background-image: url(/images/icons_silk/sprites.png) !important; + background-position:0 -17821px !important +} + +.ICON_PHP_INFO{ + background-image: url(/images/documents/extension/php.png) !important; + width: 16px !important; + height: 16px !important; +} /* Language Support module styles*/ .upload-icon { diff --git a/workflow/engine/templates/setup/cron.js b/workflow/engine/templates/setup/cron.js index 6c793923e..58598c93e 100644 --- a/workflow/engine/templates/setup/cron.js +++ b/workflow/engine/templates/setup/cron.js @@ -434,6 +434,8 @@ cron.application = { ], bbar: pagingCron, + border: false, + title: _("ID_CRON_ACTIONS_LOG"), listeners: { diff --git a/workflow/engine/templates/setup/phpInfo.html b/workflow/engine/templates/setup/phpInfo.html new file mode 100644 index 000000000..281c6866c --- /dev/null +++ b/workflow/engine/templates/setup/phpInfo.html @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/workflow/engine/templates/setup/phpInfo.js b/workflow/engine/templates/setup/phpInfo.js new file mode 100644 index 000000000..90da3fc58 --- /dev/null +++ b/workflow/engine/templates/setup/phpInfo.js @@ -0,0 +1,38 @@ +Ext.namespace("phpInfo"); + +phpInfo.application = { + init: function () + { + //Components + var pnlMain = new Ext.Panel({ + id: "pnlMain", + + layout: "border", + + border: false, + title: _("ID_PHP_INFO"), + + items: [ + { + xtype: "panel", + + region: "center", + + margins: {top: 10, right: 10, bottom: 10, left: 10}, + border: false, + + html: "" + } + ] + }); + + //Load all panels + var viewport = new Ext.Viewport({ + layout: "fit", + items: [pnlMain] + }); + } +} + +Ext.onReady(phpInfo.application.init, phpInfo.application); + diff --git a/workflow/engine/templates/setup/systemInfo.html b/workflow/engine/templates/setup/systemInfo.html new file mode 100644 index 000000000..281c6866c --- /dev/null +++ b/workflow/engine/templates/setup/systemInfo.html @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/workflow/engine/templates/setup/systemInfo.js b/workflow/engine/templates/setup/systemInfo.js new file mode 100644 index 000000000..5d53e5091 --- /dev/null +++ b/workflow/engine/templates/setup/systemInfo.js @@ -0,0 +1,193 @@ +Ext.namespace("systemInfo"); + +systemInfo.application = { + init: function () + { + var loadMaskSystemInfo = new Ext.LoadMask(Ext.getBody(), {msg: _("ID_CHECKING")}); + + systemInfoProcessAjax = function (option) + { + var url = ""; + + loadMaskSystemInfo.show(); + + switch (option) { + case "SYS": + url = "../installer/getSystemInfo" + break; + } + + Ext.Ajax.request({ + url: url, + method: "POST", + + success: function (response, opts) + { + var dataResponse = eval("(" + response.responseText + ")"); //json + + switch (option) { + case "SYS": + Ext.getCmp("php").setValue(fieldFormatValue(dataResponse.php.version, dataResponse.php.result)); + Ext.getCmp("mysql").setValue(fieldFormatValue(dataResponse.mysql.version, dataResponse.mysql.result)); + //Ext.getCmp("mssql").setValue(fieldFormatValue(dataResponse.mssql.version, dataResponse.mssql.result)); + Ext.getCmp("curl").setValue(fieldFormatValue(dataResponse.curl.version, dataResponse.curl.result)); + Ext.getCmp("openssl").setValue(fieldFormatValue(dataResponse.openssl.version, dataResponse.openssl.result)); + Ext.getCmp("dom").setValue(fieldFormatValue(dataResponse.dom.version, dataResponse.dom.result)); + Ext.getCmp("gd").setValue(fieldFormatValue(dataResponse.gd.version, dataResponse.gd.result)); + Ext.getCmp("multibyte").setValue(fieldFormatValue(dataResponse.multibyte.version, dataResponse.multibyte.result)); + Ext.getCmp("soap").setValue(fieldFormatValue(dataResponse.soap.version, dataResponse.soap.result)); + Ext.getCmp("ldap").setValue(fieldFormatValue(dataResponse.ldap.version, dataResponse.ldap.result)); + Ext.getCmp("memory").setValue(fieldFormatValue(dataResponse.memory.version, dataResponse.memory.result)); + break; + } + + loadMaskSystemInfo.hide(); + }, + failure: function (response, opts) + { + loadMaskSystemInfo.hide(); + } + }); + }; + + fieldFormatValue = function (str, sw) + { + var img = "delete.png"; + var size = "width=\"15\" height=\"15\""; + var color = "red"; + + if (sw == true || sw == 1) { + img = "dialog-ok-apply.png"; + size = "width=\"12\" height=\"12\""; + color = "green"; + } + + return "" + str + " \"\""; + }; + + //Components + var pnlWest = new Ext.Panel({ + id: "pnlWest", + + region: "west", + + margins: {top: 10, right: 0, bottom: 10, left: 10}, + border: false, + bodyStyle: "padding: 10px; font: 0.80em arial;", + width: 250, + + html: _("ID_PROCESSMAKER_REQUIREMENTS_DESCRIPTION") + }); + + var frmfsCenter = new Ext.form.FieldSet({ + id: "frmfsCenter", + + region: "center", + + margins: {top: 10, right: 10, bottom: 10, left: 0}, + border: false, + labelWidth: 200, + + items: [ + { + xtype: "displayfield", + id: "php", + fieldLabel: _("ID_PROCESSMAKER_REQUIREMENTS_PHP"), + value: eval("fieldFormatValue(" + SYSINFO_PHP + ");") + }, + { + xtype: "displayfield", + id: "mysql", + fieldLabel: _("ID_PROCESSMAKER_REQUIREMENTS_MYSQL"), + value: eval("fieldFormatValue(" + SYSINFO_MYSQL + ");") + }, + /* + { + xtype: "displayfield", + id: "mssql", + fieldLabel: _("ID_PROCESSMAKER_REQUIREMENTS_MSSQL"), + value: eval("fieldFormatValue(" + SYSINFO_MSSQL + ");") + }, + */ + { + xtype: "displayfield", + id: "curl", + fieldLabel: _("ID_PROCESSMAKER_REQUIREMENTS_CURL"), + value: eval("fieldFormatValue(" + SYSINFO_CURL + ");") + }, + { + xtype: "displayfield", + id: "openssl", + fieldLabel: _("ID_PROCESSMAKER_REQUIREMENTS_OPENSSL"), + value: eval("fieldFormatValue(" + SYSINFO_OPENSSL + ");") + }, + { + xtype: "displayfield", + id: "dom", + fieldLabel: _("ID_PROCESSMAKER_REQUIREMENTS_DOMXML"), + value: eval("fieldFormatValue(" + SYSINFO_DOMXML + ");") + }, + { + xtype: "displayfield", + id: "gd", + fieldLabel: _("ID_PROCESSMAKER_REQUIREMENTS_GD"), + value: eval("fieldFormatValue(" + SYSINFO_GD + ");") + }, + { + xtype: "displayfield", + id: "multibyte", + fieldLabel: _("ID_PROCESSMAKER_REQUIREMENTS_MULTIBYTESTRING"), + value: eval("fieldFormatValue(" + SYSINFO_MULTIBYTESTRING + ");") + }, + { + xtype: "displayfield", + id: "soap", + fieldLabel: _("ID_PROCESSMAKER_REQUIREMENTS_SOAP"), + value: eval("fieldFormatValue(" + SYSINFO_SOAP + ");") + }, + { + xtype: "displayfield", + id: "ldap", + fieldLabel: _("ID_PROCESSMAKER_REQUIREMENTS_LDAP"), + value: eval("fieldFormatValue(" + SYSINFO_LDAP + ");") + }, + { + xtype: "displayfield", + id: "memory", + fieldLabel: _("ID_PROCESSMAKER_REQUIREMENTS_MEMORYLIMIT"), + value: eval("fieldFormatValue(" + SYSINFO_MEMORYLIMIT + ");") + }, + { + xtype: "displayfield", + fieldLabel: "", + }, + new Ext.Button({ + text: _("ID_CHECK_AGAIN"), + handler: function () { + systemInfoProcessAjax("SYS"); + } + }) + ] + }); + + var pnlMain = new Ext.Panel({ + id: "pnlMain", + + layout: "border", + + border: false, + title: _("ID_PROCESSMAKER_REQUIREMENTS_CHECK"), + + items: [pnlWest, frmfsCenter] + }); + + //Load all panels + var viewport = new Ext.Viewport({ + layout: "fit", + items: [pnlMain] + }); + } +} + +Ext.onReady(systemInfo.application.init, systemInfo.application); +