mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-05-31 22:17:33 +00:00
Merge branch 'seeddms-5.1.x' into seeddms-6.0.x
This commit is contained in:
commit
904e4b8657
|
@ -1014,6 +1014,8 @@ class Settings { /* {{{ */
|
|||
if (is_null($configFilePath))
|
||||
$configFilePath = $this->_configFilePath;
|
||||
|
||||
// copy($configFilePath, $configFilePath.'.'.time());
|
||||
|
||||
// Load
|
||||
$xml = simplexml_load_string(file_get_contents($configFilePath));
|
||||
$this->getXMLNode($xml, '/', 'configuration');
|
||||
|
@ -1354,9 +1356,9 @@ class Settings { /* {{{ */
|
|||
*/
|
||||
foreach($extension as $fieldname=>$confvalue) {
|
||||
if($fieldname != '___disable__' && $confvalue) {
|
||||
$parameter = $extnode->addChild('parameter');
|
||||
$parameter[0] = isset($extension[$fieldname]) ? (is_array($extension[$fieldname]) ? implode(',', $extension[$fieldname]) : $extension[$fieldname]) : '';
|
||||
$this->setXMLAttributValue($parameter, 'name', $fieldname);
|
||||
$parameter = $extnode->addChild('parameter');
|
||||
$parameter[0] = isset($extension[$fieldname]) ? (is_array($extension[$fieldname]) ? implode(',', $extension[$fieldname]) : $extension[$fieldname]) : '';
|
||||
$this->setXMLAttributValue($parameter, 'name', $fieldname);
|
||||
}
|
||||
}
|
||||
/* Old code saves those parameters listed in the configuration
|
||||
|
|
|
@ -29,17 +29,6 @@ include("../inc/inc.DBInit.php");
|
|||
include("../inc/inc.ClassUI.php");
|
||||
include("../inc/inc.Authentication.php");
|
||||
|
||||
|
||||
function getBoolValue($post_name)
|
||||
{
|
||||
$out = false;
|
||||
if (isset($_POST[$post_name]))
|
||||
if ($_POST[$post_name]=="on")
|
||||
$out = true;
|
||||
|
||||
return $out;
|
||||
}
|
||||
|
||||
if (!$user->isAdmin()) {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("access_denied"));
|
||||
}
|
||||
|
@ -68,10 +57,12 @@ if ($action == "saveSettings")
|
|||
function setBoolValue($name) {
|
||||
global $_POST, $settings;
|
||||
if(!in_array($name, $settings->_hiddenConfFields)) {
|
||||
if (isset($_POST[$name]) && $_POST[$name]=="on")
|
||||
$settings->{"_".$name} = true;
|
||||
else
|
||||
$settings->{"_".$name} = false;
|
||||
if (isset($_POST[$name])) {
|
||||
if ($_POST[$name]=="on")
|
||||
$settings->{"_".$name} = true;
|
||||
else
|
||||
$settings->{"_".$name} = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
function setIntValue($name) {
|
||||
|
@ -81,11 +72,13 @@ if ($action == "saveSettings")
|
|||
}
|
||||
function setArrayValue($name) {
|
||||
global $_POST, $settings;
|
||||
if(!in_array($name, $settings->_hiddenConfFields)) {
|
||||
if(isset($_POST[$name]) && $_POST[$name])
|
||||
$settings->{"_".$name} = $_POST[$name];
|
||||
else
|
||||
$settings->{"_".$name} = array();
|
||||
if (!in_array($name, $settings->_hiddenConfFields)) {
|
||||
if (isset($_POST[$name])) {
|
||||
if ($_POST[$name])
|
||||
$settings->{"_".$name} = $_POST[$name];
|
||||
else
|
||||
$settings->{"_".$name} = array();
|
||||
}
|
||||
}
|
||||
}
|
||||
function setDirValue($name) {
|
||||
|
@ -348,15 +341,21 @@ if ($action == "saveSettings")
|
|||
// -------------------------------------------------------------------------
|
||||
// save
|
||||
// -------------------------------------------------------------------------
|
||||
if (!$settings->save())
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("settings_SaveError"));
|
||||
if (!$settings->save()) {
|
||||
if(isAjax()) {
|
||||
echo json_encode(array('success'=>false, 'msg'=>getMLText('settings_SaveError')));
|
||||
exit;
|
||||
} else {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("settings_SaveError"));
|
||||
}
|
||||
}
|
||||
|
||||
add_log_line(".php&action=savesettings");
|
||||
}
|
||||
|
||||
$session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_settings_saved')));
|
||||
|
||||
|
||||
header("Location:../out/out.Settings.php?currenttab=".$_POST['currenttab']);
|
||||
|
||||
?>
|
||||
if(isAjax()) {
|
||||
echo json_encode(array('success'=>true, 'msg'=>getMLText('splash_settings_saved')));
|
||||
} else {
|
||||
$session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_settings_saved')));
|
||||
header("Location:../out/out.Settings.php?currenttab=".$_POST['currenttab']);
|
||||
}
|
||||
|
|
|
@ -42,6 +42,7 @@ if($view) {
|
|||
$view->setParam('settings', $settings);
|
||||
$view->setParam('extmgr', $extMgr);
|
||||
$view->setParam('currenttab', (isset($_REQUEST['currenttab']) ? $_REQUEST['currenttab'] : ''));
|
||||
$view->setParam('extname', (isset($_REQUEST['extensionname']) ? $_REQUEST['extensionname'] : ''));
|
||||
$view->setParam('allusers', $users);
|
||||
$view->setParam('allgroups', $groups);
|
||||
$view->setParam('accessobject', $accessop);
|
||||
|
|
|
@ -1631,9 +1631,9 @@ function getOverallStatusIcon($status) { /* {{{ */
|
|||
*/
|
||||
function getModalBox($config) { /* {{{ */
|
||||
$content = '
|
||||
<div class="modal modal-wide hide" id="'.$config['id'].'" tabindex="-1" role="dialog" aria-labelledby="'.$config['id'].'Label" aria-hidden="true">
|
||||
<div class="modal modal-wide hide" id="'.$config['id'].'" tabindex="-1" role="dialog" aria-labelledby="'.$config['id'].'Label">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<button type="button" class="close" data-dismiss="modal">×</button>
|
||||
<h3 id="'.$config['id'].'Label">'.$config['title'].'</h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
|
@ -1648,7 +1648,7 @@ function getOverallStatusIcon($status) { /* {{{ */
|
|||
';
|
||||
if($config['buttons']) {
|
||||
foreach($config['buttons'] as $button)
|
||||
$content .= '<button class="btn'.(!empty($button['id']) ? ' btn-primary" id="'.$button['id'].'"': '" ').'data-dismiss="modal" aria-hidden="true">'.$button['title'].'</button>';
|
||||
$content .= '<button class="btn'.(!empty($button['id']) ? ' btn-primary" id="'.$button['id'].'"': '" ').'data-dismiss="modal">'.$button['title'].'</button>';
|
||||
}
|
||||
$content .= '
|
||||
</div>
|
||||
|
|
|
@ -55,6 +55,25 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Theme_Style {
|
|||
});
|
||||
*/
|
||||
});
|
||||
$('body').on('click', '#btn_save_config', function(ev){
|
||||
var element = $(this);
|
||||
ev.preventDefault();
|
||||
$.ajax({url: '../op/op.Settings.php',
|
||||
type: 'POST',
|
||||
dataType: "json",
|
||||
data: data = $('#formconfig').serializeArray(),
|
||||
success: function(data) {
|
||||
noty({
|
||||
text: data.msg,
|
||||
type: (data.error) ? 'error' : 'success',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 1500,
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
$('body').on('click', 'a.toggle', function(ev){
|
||||
// $('a.toggle').click(function(ev){
|
||||
var element = $(this);
|
||||
|
@ -247,8 +266,10 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Theme_Style {
|
|||
if(!empty($extconf['changelog']) && file_exists($extdir."/".$extname."/".$extconf['changelog'])) {
|
||||
echo $this->getModalBoxLink(array('target'=>'extensionChangelog', 'remote'=>'out.ExtensionMgr.php?action=changelog&extensionname='.$extname, 'class'=>'', 'title'=>'<i class="fa fa-reorder"></i>', 'attributes'=>array('title'=>getMLText('show_extension_changelog'))));
|
||||
}
|
||||
if($extconf['config'])
|
||||
echo "<a href=\"../out/out.Settings.php?currenttab=extensions#".$extname."\" title=\"".getMLText('configure_extension')."\"><i class=\"fa fa-cogs\"></i></a>";
|
||||
if($extconf['config']) {
|
||||
// echo "<a href=\"../out/out.Settings.php?currenttab=extensions#".$extname."\" title=\"".getMLText('configure_extension')."\"><i class=\"fa fa-cogs\"></i></a>";
|
||||
echo $this->getModalBoxLink(array('target'=>'extensionConfig', 'remote'=>'out.Settings.php?action=extension&extensionname='.$extname, 'class'=>'', 'title'=>'<i class="fa fa-cogs"></i>', 'attributes'=>array('title'=>getMLText('show_extension_changelog'), 'data-modal-title'=>'<i class=\'fa fa-circle'.(isset($settings->_extensions[$extname]["__disable__"]) && $settings->_extensions[$extname]["__disable__"] ? ' disabled' : ' enabled').'\'></i> '.$extconf['title'])));
|
||||
}
|
||||
if($settings->_enableExtensionDownload)
|
||||
echo "<form style=\"display: inline-block; margin: 0px;\" method=\"post\" action=\"../op/op.ExtensionMgr.php\" id=\"".$extname."-download\">".createHiddenFieldWithKey('extensionmgr')."<input type=\"hidden\" name=\"action\" value=\"download\" /><input type=\"hidden\" name=\"extname\" value=\"".$extname."\" /><a class=\"download\" data-extname=\"".$extname."\" title=\"".getMLText('download_extension')."\"><i class=\"fa fa-download\"></i></a></form>";
|
||||
if(is_writeable($settings->_configFilePath) && $check) {
|
||||
|
@ -392,6 +413,7 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Theme_Style {
|
|||
echo $this->getModalBox(array('id'=>'extensionInfo', 'title'=>getMLText('extension_version_list'), 'content'=>'<p>'.getMLText('extension_loading').'</p>', 'buttons'=>array(array('title'=>getMLText('close')))));
|
||||
echo $this->getModalBox(array('id'=>'extensionChangelog', 'title'=>getMLText('extension_changelog'), 'content'=>'<p>'.getMLText('changelog_loading').'</p>', 'buttons'=>array(array('title'=>getMLText('close')))));
|
||||
echo $this->getModalBox(array('id'=>'extensionReadme', 'title'=>getMLText('extension_readme'), 'content'=>'<p>'.getMLText('readme_loading').'</p>', 'buttons'=>array(array('title'=>getMLText('close')))));
|
||||
echo $this->getModalBox(array('id'=>'extensionConfig', 'title'=>getMLText('extension_config'), 'content'=>'<p>'.getMLText('readme_loading').'</p>', 'buttons'=>array(array('title'=>getMLText('close')), array('id'=>'btn_save_config', 'title'=>getMLText('save')))));
|
||||
$this->contentEnd();
|
||||
$this->htmlEndPage();
|
||||
} /* }}} */
|
||||
|
|
|
@ -189,9 +189,10 @@ class SeedDMS_View_Settings extends SeedDMS_Theme_Style {
|
|||
<td><?= getMLText($title) ?></td>
|
||||
<td>
|
||||
<?php
|
||||
if($this->isVisible($name))
|
||||
if($this->isVisible($name)) {
|
||||
echo '<input name="'.$name.'" type="hidden" vaule="" />';
|
||||
echo '<input name="'.$name.'" type="checkbox" '.($settings->{"_".$name} ? "checked" : '').' />';
|
||||
else
|
||||
} else
|
||||
echo getMLText('settings_conf_field_not_editable');
|
||||
echo "</td>\n";
|
||||
?>
|
||||
|
@ -331,6 +332,183 @@ class SeedDMS_View_Settings extends SeedDMS_Theme_Style {
|
|||
<?php
|
||||
} /* }}} */
|
||||
|
||||
protected function showExtensionConfig($extname, $extconf) { /* {{{ */
|
||||
$dms = $this->params['dms'];
|
||||
$settings = $this->params['settings'];
|
||||
|
||||
foreach($extconf['config'] as $confkey=>$conf) {
|
||||
ob_start();
|
||||
if($this->isVisible($extname.'|'.$confkey)) {
|
||||
switch($conf['type']) {
|
||||
case 'checkbox':
|
||||
?>
|
||||
<input type="hidden" name="<?php echo "extensions[".$extname."][".$confkey."]"; ?>" value=""><input type="checkbox" id="extension_<?= $extname ?>_<?= $confkey ?>" name="<?php echo "extensions[".$extname."][".$confkey."]"; ?>" value="1" <?php if(isset($settings->_extensions[$extname][$confkey]) && $settings->_extensions[$extname][$confkey]) echo 'checked'; ?> />
|
||||
<?php
|
||||
break;
|
||||
case 'select':
|
||||
$allowempty = empty($conf['allow_empty']) ? false : $conf['allow_empty'];
|
||||
$multiple = empty($conf['multiple']) ? false : $conf['multiple'];
|
||||
$order = empty($conf['order']) ? '' : $conf['order'];
|
||||
if(!empty($conf['options'])) {
|
||||
$selections = empty($settings->_extensions[$extname][$confkey]) ? array() : explode(",", $settings->_extensions[$extname][$confkey]);
|
||||
echo "<select id=\"extension_".$extname."_".$confkey."\" class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "").($order ? " order=\"".$order."\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".($multiple ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_option")."\" style=\"width: 100%;\">";
|
||||
if(is_array($conf['options'])) {
|
||||
$options = $conf['options'];
|
||||
} elseif(is_string($conf['options']) && $conf['options'] == 'hook') {
|
||||
$options = $this->callHook('getOptions', $confkey, $extname, $extconf);
|
||||
} else {
|
||||
$options = [];
|
||||
}
|
||||
if($allowempty)
|
||||
echo "<option value=\"\"></option>";
|
||||
foreach($options as $key=>$opt) {
|
||||
echo "<option value=\"".$key."\"";
|
||||
if(in_array($key, $selections))
|
||||
echo " selected";
|
||||
if(is_array($opt)) {
|
||||
echo " data-subtitle=\"".htmlspecialchars($opt['subtitle'])."\">".htmlspecialchars($opt['value']);
|
||||
} else {
|
||||
echo ">".htmlspecialchars(getMLText($extname.'_'.$opt, array(), $opt));
|
||||
}
|
||||
echo "</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
} elseif(!empty($conf['internal'])) {
|
||||
$selections = empty($settings->_extensions[$extname][$confkey]) ? array() : explode(",", $settings->_extensions[$extname][$confkey]);
|
||||
switch($conf['internal']) {
|
||||
case "categories":
|
||||
$categories = $dms->getDocumentCategories();
|
||||
if($categories) {
|
||||
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".($multiple ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_category")."\" style=\"width: 100%;\">";
|
||||
if($allowempty)
|
||||
echo "<option value=\"\"></option>";
|
||||
foreach($categories as $category) {
|
||||
echo "<option value=\"".$category->getID()."\"";
|
||||
if(in_array($category->getID(), $selections))
|
||||
echo " selected";
|
||||
echo ">".htmlspecialchars($category->getName())."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
}
|
||||
break;
|
||||
case "users":
|
||||
$users = $dms->getAllUsers();
|
||||
if($users) {
|
||||
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".(!empty($conf['multiple']) ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_user")."\" style=\"width: 100%;\">";
|
||||
if($allowempty)
|
||||
echo "<option value=\"\"></option>";
|
||||
foreach($users as $curuser) {
|
||||
echo "<option value=\"".$curuser->getID()."\"";
|
||||
if(in_array($curuser->getID(), $selections))
|
||||
echo " selected";
|
||||
echo ">".htmlspecialchars($curuser->getLogin()." - ".$curuser->getFullName())."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
}
|
||||
break;
|
||||
case "groups":
|
||||
$recs = $dms->getAllGroups();
|
||||
if($recs) {
|
||||
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".(!empty($conf['multiple']) ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_group")."\" style=\"width: 100%;\">";
|
||||
if($allowempty)
|
||||
echo "<option value=\"\"></option>";
|
||||
foreach($recs as $rec) {
|
||||
echo "<option value=\"".$rec->getID()."\"";
|
||||
if(in_array($rec->getID(), $selections))
|
||||
echo " selected";
|
||||
echo ">".htmlspecialchars($rec->getName())."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
}
|
||||
break;
|
||||
case "attributedefinitions":
|
||||
$objtype = empty($conf['objtype']) ? 0 : $conf['objtype'];
|
||||
$attrtype = empty($conf['attrtype']) ? 0 : $conf['attrtype'];
|
||||
$order = empty($conf['order']) ? '' : $conf['order'];
|
||||
$recs = $dms->getAllAttributeDefinitions($objtype, $attrtype);
|
||||
if($recs) {
|
||||
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "").($order ? " order=\"".$order."\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".(!empty($conf['multiple']) ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_attrdef")."\" data-no_results_text=\"".getMLText('unknown_attrdef')."\" style=\"width: 100%;\">";
|
||||
if($allowempty)
|
||||
echo "<option value=\"\"></option>";
|
||||
if($order == 'keep') {
|
||||
foreach($selections as $selid) {
|
||||
if($rec = $dms->getAttributeDefinition($selid)) {
|
||||
echo "<option value=\"".$rec->getID()."\" selected data-subtitle=\"".htmlspecialchars(getAttributeObjectTypeText($rec).", ".getAttributeTypeText($rec))."\">".htmlspecialchars($rec->getName())."</option>";
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach($recs as $rec) {
|
||||
if($order == 'keep' && in_array($rec->getID(), $selections))
|
||||
continue;
|
||||
echo "<option value=\"".$rec->getID()."\"";
|
||||
if(in_array($rec->getID(), $selections))
|
||||
echo " selected";
|
||||
echo " data-subtitle=\"".htmlspecialchars(getAttributeObjectTypeText($rec).", ".getAttributeTypeText($rec))."\">".htmlspecialchars($rec->getName())."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
} else {
|
||||
printMLText('no_attribute_definitions');
|
||||
}
|
||||
break;
|
||||
case "workflows":
|
||||
$recs = $dms->getAllWorkflows();
|
||||
if($recs) {
|
||||
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".(!empty($conf['multiple']) ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_attribute_value")."\" style=\"width: 100%;\">";
|
||||
if($allowempty)
|
||||
echo "<option value=\"\"></option>";
|
||||
foreach($recs as $rec) {
|
||||
echo "<option value=\"".$rec->getID()."\"";
|
||||
if(in_array($rec->getID(), $selections))
|
||||
echo " selected";
|
||||
echo ">".htmlspecialchars($rec->getName())."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
} else {
|
||||
printMLText('no_workflows');
|
||||
}
|
||||
break;
|
||||
case "folders":
|
||||
$this->formField(null, $this->getFolderChooserHtml("form".$extname.$confkey, M_READ, -1, $selections ? $dms->getFolder($selections[0]) : 0, 'extensions['.$extname."][".$confkey."]"));
|
||||
break;
|
||||
case "folderlist":
|
||||
echo "<select class=\"chzn-select-folder\"".($allowempty ? " data-allow-clear=\"true\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".(!empty($conf['multiple']) ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_attribute_value")."\" style=\"width: 100%;\">";
|
||||
if($selections) {
|
||||
foreach ($selections as $selid) {
|
||||
if ($f = $dms->getFolder($selid)) {
|
||||
echo "<option value=\"".$f->getID()."\"";
|
||||
echo " selected";
|
||||
echo ">".htmlspecialchars($f->getName())."</option>";
|
||||
}
|
||||
}
|
||||
}
|
||||
echo "</select>";
|
||||
break;
|
||||
case "documents":
|
||||
$this->formField(null, $this->getDocumentChooserHtml("form".$extname.$confkey, M_READ, -1, $selections ? $dms->getDocument($selections[0]) : 0, 'extensions['.$extname."][".$confkey."]"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'hook':
|
||||
echo $this->callHook('showConfig', $confkey, $extname, $extconf);
|
||||
break;
|
||||
case "date":
|
||||
$this->formField(
|
||||
null,
|
||||
$this->getDateChooser((isset($settings->_extensions[$extname][$confkey]) ? getReadableDate($settings->_extensions[$extname][$confkey]) : ''), "extensions[".$extname."][".$confkey."]", $this->params['session']->getLanguage())
|
||||
);
|
||||
break;
|
||||
default:
|
||||
$this->showTextField("extensions[".$extname."][".$confkey."]", isset($settings->_extensions[$extname][$confkey]) ? $settings->_extensions[$extname][$confkey] : '', isset($conf['type']) ? $conf['type'] : '', isset($conf['placeholder']) ? $conf['placeholder'] : '');
|
||||
}
|
||||
} else {
|
||||
echo getMLText('settings_conf_field_not_editable');
|
||||
}
|
||||
$html = ob_get_clean();
|
||||
$this->showConfigPlain($conf['title'], isset($conf['help']) ? $conf['help'] : '', $html);
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
public function js() { /* {{{ */
|
||||
$extmgr = $this->params['extmgr'];
|
||||
|
||||
|
@ -385,9 +563,36 @@ console.log($(event.currentTarget).data('target').substring(1));
|
|||
public function extension() { /* {{{ */
|
||||
$dms = $this->params['dms'];
|
||||
$user = $this->params['user'];
|
||||
$extname = $this->params['extname'];
|
||||
$settings = $this->params['settings'];
|
||||
$extmgr = $this->params['extmgr'];
|
||||
|
||||
$extconf = $extmgr->getExtensionConfiguration()[$extname];
|
||||
?>
|
||||
<form action="../op/op.Settings.php" method="post" enctype="multipart/form-data" id="formconfig" name="formconfig" >
|
||||
<?php echo createHiddenFieldWithKey('savesettings'); ?>
|
||||
<input type="hidden" name="action" value="saveSettings" />
|
||||
<?php
|
||||
if($this->hasHook('processConfig')) {
|
||||
$ttt = $this->callHook('processConfig', $extname, $extconf);
|
||||
if($ttt)
|
||||
$extconf = $ttt;
|
||||
}
|
||||
if($this->isVisible($extname.'|')) {
|
||||
if($extconf['config']) {
|
||||
// $this->showRawConfigHeadline("<p><a id=\"".$extname."\" name=\"".$extname."\"></a>".'<input type="hidden" name="extensions['.$extname.'][__disable__]" value="'.(isset($settings->_extensions[$extname]["__disable__"]) && $settings->_extensions[$extname]["__disable__"] ? '1' : '').'" /><i class="fa fa-circle'.(isset($settings->_extensions[$extname]["__disable__"]) && $settings->_extensions[$extname]["__disable__"] ? ' disabled' : ' enabled').'"></i> <span title="'.$extname.'">'.$extconf['title'].'</span></p>');
|
||||
$this->showExtensionConfig($extname, $extconf);
|
||||
} else {
|
||||
/* Even no configuration exists, output the input field to enable/disable
|
||||
* the extension. Otherwise it will be enabled each time the config is
|
||||
* saved.
|
||||
*/
|
||||
echo '<input type="hidden" name="extensions['.$extname.'][__disable__]" value="'.(isset($settings->_extensions[$extname]["__disable__"]) && $settings->_extensions[$extname]["__disable__"] ? '1' : '').'" />'."\n";
|
||||
}
|
||||
}
|
||||
?>
|
||||
</form>
|
||||
<?php
|
||||
} /* }}} */
|
||||
|
||||
public function show() { /* {{{ */
|
||||
|
@ -726,177 +931,7 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk))
|
|||
if($this->isVisible($extname.'|')) {
|
||||
if($extconf['config']) {
|
||||
$this->showRawConfigHeadline("<a id=\"".$extname."\" name=\"".$extname."\"></a>".'<input type="hidden" name="extensions['.$extname.'][__disable__]" value="'.(isset($settings->_extensions[$extname]["__disable__"]) && $settings->_extensions[$extname]["__disable__"] ? '1' : '').'" /><i class="fa fa-circle'.(isset($settings->_extensions[$extname]["__disable__"]) && $settings->_extensions[$extname]["__disable__"] ? ' disabled' : ' enabled').'"></i> <span title="'.$extname.'">'.$extconf['title'].'</span>');
|
||||
foreach($extconf['config'] as $confkey=>$conf) {
|
||||
ob_start();
|
||||
if($this->isVisible($extname.'|'.$confkey)) {
|
||||
switch($conf['type']) {
|
||||
case 'checkbox':
|
||||
?>
|
||||
<input type="hidden" name="<?php echo "extensions[".$extname."][".$confkey."]"; ?>" value=""><input type="checkbox" id="extension_<?= $extname ?>_<?= $confkey ?>" name="<?php echo "extensions[".$extname."][".$confkey."]"; ?>" value="1" <?php if(isset($settings->_extensions[$extname][$confkey]) && $settings->_extensions[$extname][$confkey]) echo 'checked'; ?> />
|
||||
<?php
|
||||
break;
|
||||
case 'select':
|
||||
$allowempty = empty($conf['allow_empty']) ? false : $conf['allow_empty'];
|
||||
$multiple = empty($conf['multiple']) ? false : $conf['multiple'];
|
||||
$order = empty($conf['order']) ? '' : $conf['order'];
|
||||
if(!empty($conf['options'])) {
|
||||
$selections = empty($settings->_extensions[$extname][$confkey]) ? array() : explode(",", $settings->_extensions[$extname][$confkey]);
|
||||
echo "<select id=\"extension_".$extname."_".$confkey."\" class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "").($order ? " order=\"".$order."\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".($multiple ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_option")."\" style=\"width: 100%;\">";
|
||||
if(is_array($conf['options'])) {
|
||||
$options = $conf['options'];
|
||||
} elseif(is_string($conf['options']) && $conf['options'] == 'hook') {
|
||||
$options = $this->callHook('getOptions', $confkey, $extname, $extconf);
|
||||
} else {
|
||||
$options = [];
|
||||
}
|
||||
if($allowempty)
|
||||
echo "<option value=\"\"></option>";
|
||||
foreach($options as $key=>$opt) {
|
||||
echo "<option value=\"".$key."\"";
|
||||
if(in_array($key, $selections))
|
||||
echo " selected";
|
||||
if(is_array($opt)) {
|
||||
echo " data-subtitle=\"".htmlspecialchars($opt['subtitle'])."\">".htmlspecialchars($opt['value']);
|
||||
} else {
|
||||
echo ">".htmlspecialchars(getMLText($extname.'_'.$opt, array(), $opt));
|
||||
}
|
||||
echo "</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
} elseif(!empty($conf['internal'])) {
|
||||
$selections = empty($settings->_extensions[$extname][$confkey]) ? array() : explode(",", $settings->_extensions[$extname][$confkey]);
|
||||
switch($conf['internal']) {
|
||||
case "categories":
|
||||
$categories = $dms->getDocumentCategories();
|
||||
if($categories) {
|
||||
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".($multiple ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_category")."\" style=\"width: 100%;\">";
|
||||
if($allowempty)
|
||||
echo "<option value=\"\"></option>";
|
||||
foreach($categories as $category) {
|
||||
echo "<option value=\"".$category->getID()."\"";
|
||||
if(in_array($category->getID(), $selections))
|
||||
echo " selected";
|
||||
echo ">".htmlspecialchars($category->getName())."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
}
|
||||
break;
|
||||
case "users":
|
||||
$users = $dms->getAllUsers();
|
||||
if($users) {
|
||||
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".(!empty($conf['multiple']) ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_user")."\" style=\"width: 100%;\">";
|
||||
if($allowempty)
|
||||
echo "<option value=\"\"></option>";
|
||||
foreach($users as $curuser) {
|
||||
echo "<option value=\"".$curuser->getID()."\"";
|
||||
if(in_array($curuser->getID(), $selections))
|
||||
echo " selected";
|
||||
echo ">".htmlspecialchars($curuser->getLogin()." - ".$curuser->getFullName())."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
}
|
||||
break;
|
||||
case "groups":
|
||||
$recs = $dms->getAllGroups();
|
||||
if($recs) {
|
||||
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".(!empty($conf['multiple']) ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_group")."\" style=\"width: 100%;\">";
|
||||
if($allowempty)
|
||||
echo "<option value=\"\"></option>";
|
||||
foreach($recs as $rec) {
|
||||
echo "<option value=\"".$rec->getID()."\"";
|
||||
if(in_array($rec->getID(), $selections))
|
||||
echo " selected";
|
||||
echo ">".htmlspecialchars($rec->getName())."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
}
|
||||
break;
|
||||
case "attributedefinitions":
|
||||
$objtype = empty($conf['objtype']) ? 0 : $conf['objtype'];
|
||||
$attrtype = empty($conf['attrtype']) ? 0 : $conf['attrtype'];
|
||||
$order = empty($conf['order']) ? '' : $conf['order'];
|
||||
$recs = $dms->getAllAttributeDefinitions($objtype, $attrtype);
|
||||
if($recs) {
|
||||
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "").($order ? " order=\"".$order."\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".(!empty($conf['multiple']) ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_attrdef")."\" data-no_results_text=\"".getMLText('unknown_attrdef')."\" style=\"width: 100%;\">";
|
||||
if($allowempty)
|
||||
echo "<option value=\"\"></option>";
|
||||
if($order == 'keep') {
|
||||
foreach($selections as $selid) {
|
||||
if($rec = $dms->getAttributeDefinition($selid)) {
|
||||
echo "<option value=\"".$rec->getID()."\" selected data-subtitle=\"".htmlspecialchars(getAttributeObjectTypeText($rec).", ".getAttributeTypeText($rec))."\">".htmlspecialchars($rec->getName())."</option>";
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach($recs as $rec) {
|
||||
if($order == 'keep' && in_array($rec->getID(), $selections))
|
||||
continue;
|
||||
echo "<option value=\"".$rec->getID()."\"";
|
||||
if(in_array($rec->getID(), $selections))
|
||||
echo " selected";
|
||||
echo " data-subtitle=\"".htmlspecialchars(getAttributeObjectTypeText($rec).", ".getAttributeTypeText($rec))."\">".htmlspecialchars($rec->getName())."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
} else {
|
||||
printMLText('no_attribute_definitions');
|
||||
}
|
||||
break;
|
||||
case "workflows":
|
||||
$recs = $dms->getAllWorkflows();
|
||||
if($recs) {
|
||||
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".(!empty($conf['multiple']) ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_attribute_value")."\" style=\"width: 100%;\">";
|
||||
if($allowempty)
|
||||
echo "<option value=\"\"></option>";
|
||||
foreach($recs as $rec) {
|
||||
echo "<option value=\"".$rec->getID()."\"";
|
||||
if(in_array($rec->getID(), $selections))
|
||||
echo " selected";
|
||||
echo ">".htmlspecialchars($rec->getName())."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
} else {
|
||||
printMLText('no_workflows');
|
||||
}
|
||||
break;
|
||||
case "folders":
|
||||
$this->formField(null, $this->getFolderChooserHtml("form".$extname.$confkey, M_READ, -1, $selections ? $dms->getFolder($selections[0]) : 0, 'extensions['.$extname."][".$confkey."]"));
|
||||
break;
|
||||
case "folderlist":
|
||||
echo "<select class=\"chzn-select-folder\"".($allowempty ? " data-allow-clear=\"true\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".(!empty($conf['multiple']) ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_attribute_value")."\" style=\"width: 100%;\">";
|
||||
if($selections) {
|
||||
foreach ($selections as $selid) {
|
||||
if ($f = $dms->getFolder($selid)) {
|
||||
echo "<option value=\"".$f->getID()."\"";
|
||||
echo " selected";
|
||||
echo ">".htmlspecialchars($f->getName())."</option>";
|
||||
}
|
||||
}
|
||||
}
|
||||
echo "</select>";
|
||||
break;
|
||||
case "documents":
|
||||
$this->formField(null, $this->getDocumentChooserHtml("form".$extname.$confkey, M_READ, -1, $selections ? $dms->getDocument($selections[0]) : 0, 'extensions['.$extname."][".$confkey."]"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'hook':
|
||||
echo $this->callHook('showConfig', $confkey, $extname, $extconf);
|
||||
break;
|
||||
case "date":
|
||||
$this->formField(
|
||||
null,
|
||||
$this->getDateChooser((isset($settings->_extensions[$extname][$confkey]) ? getReadableDate($settings->_extensions[$extname][$confkey]) : ''), "extensions[".$extname."][".$confkey."]", $this->params['session']->getLanguage())
|
||||
);
|
||||
break;
|
||||
default:
|
||||
$this->showTextField("extensions[".$extname."][".$confkey."]", isset($settings->_extensions[$extname][$confkey]) ? $settings->_extensions[$extname][$confkey] : '', isset($conf['type']) ? $conf['type'] : '', isset($conf['placeholder']) ? $conf['placeholder'] : '');
|
||||
}
|
||||
} else {
|
||||
echo getMLText('settings_conf_field_not_editable');
|
||||
}
|
||||
$html = ob_get_clean();
|
||||
$this->showConfigPlain($conf['title'], isset($conf['help']) ? $conf['help'] : '', $html);
|
||||
}
|
||||
$this->showExtensionConfig($extname, $extconf);
|
||||
} else {
|
||||
/* Even no configuration exists, output the input field to enable/disable
|
||||
* the extension. Otherwise it will be enabled each time the config is
|
||||
|
|
|
@ -363,6 +363,7 @@ $(document).ready( function() {
|
|||
}); /* }}} */
|
||||
|
||||
$('body').on('click', '[data-toggle="modal"]', function(ev){ /* {{{ */
|
||||
setTimeout(function(){initMost();}, 500);
|
||||
/* Also set the title */
|
||||
if($(this).data("modal-title"))
|
||||
$($(this).data("target")+' .modal-header h3').html($(this).data("modal-title"));
|
||||
|
|
|
@ -1547,12 +1547,12 @@ function getOverallStatusIcon($status) { /* {{{ */
|
|||
function getModalBox($config) { /* {{{ */
|
||||
$content = '';
|
||||
$content .= '
|
||||
<div class="modal fade" id="'.$config['id'].'" tabindex="-1" role="dialog" aria-labelledby="'.$config['id'].'Label" aria-hidden="true">
|
||||
<div class="modal fade" id="'.$config['id'].'" tabindex="-1" role="dialog" aria-labelledby="'.$config['id'].'Label">
|
||||
<div class="modal-dialog modal-lg" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h3 id="'.$config['id'].'Label">'.$config['title'].'</h3>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<button type="button" class="close" data-dismiss="modal">×</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
';
|
||||
|
@ -1566,7 +1566,7 @@ function getOverallStatusIcon($status) { /* {{{ */
|
|||
';
|
||||
if($config['buttons']) {
|
||||
foreach($config['buttons'] as $button)
|
||||
$content .= '<button class="btn'.(!empty($button['id']) ? ' btn-primary" id="'.$button['id'].'"': ' btn-secondary" ').' data-dismiss="modal" aria-hidden="true">'.$button['title'].'</button>';
|
||||
$content .= '<button class="btn'.(!empty($button['id']) ? ' btn-primary" id="'.$button['id'].'"': ' btn-secondary" ').' data-dismiss="modal">'.$button['title'].'</button>';
|
||||
}
|
||||
$content .= '
|
||||
</div>
|
||||
|
|
|
@ -396,7 +396,7 @@ $(document).ready( function() {
|
|||
$('body').on('click', '[data-toggle="modal"]', function(ev){ /* {{{ */
|
||||
ev.preventDefault();
|
||||
if($(this).data("remote"))
|
||||
$($(this).data("target")+' .modal-body').load($(this).data("remote"));
|
||||
$($(this).data("target")+' .modal-body').load($(this).data("remote"), function() {setTimeout(function(){initMost();}, 500);});
|
||||
/* Also set the title */
|
||||
if($(this).data("modal-title"))
|
||||
$($(this).data("target")+' .modal-header h3').html($(this).data("modal-title"));
|
||||
|
|
Loading…
Reference in New Issue
Block a user