Merge branch 'seeddms-5.1.x' into seeddms-6.0.x

This commit is contained in:
Uwe Steinmann 2020-08-31 14:47:09 +02:00
commit ee656527c2
6 changed files with 110 additions and 83 deletions

View File

@ -177,7 +177,7 @@
- open the right page or tab after a document version has been removed - open the right page or tab after a document version has been removed
(go to folder page if the whole document was removed, go to previous tab (go to folder page if the whole document was removed, go to previous tab
if an old version was removed and there are other older version, otherwise if an old version was removed and there are other older version, otherwise
to to current tab) go to current tab)
- expiration of document can be set through webdav - expiration of document can be set through webdav
- prefix each attribute with 'attr_' when read through webdav - prefix each attribute with 'attr_' when read through webdav
- actually set owner as notified user, not the logged in user, - actually set owner as notified user, not the logged in user,

View File

@ -1,205 +1,191 @@
module.exports = function (grunt) { module.exports = function (grunt) {
'use strict'; 'use strict';
var vendorDir = 'views/bootstrap/vendors', var bootstrapDir = 'views/bootstrap/vendors',
tdkDir = 'views/tdk/vendors',
nodeDir = 'node_modules'; nodeDir = 'node_modules';
grunt.initConfig({ grunt.initConfig({
clean: { clean: {
vendors: [ vendorDir ] vendors: [ bootstrapDir ]
}, },
copy: { copy: {
'jquery': { 'bootstrap': {
files: [{ files: [{
expand: true, expand: true,
src: [ src: [
nodeDir + '/jquery/dist/*' nodeDir + '/jquery/dist/*'
], ],
dest: vendorDir + '/jquery', dest: bootstrapDir + '/jquery',
flatten: true flatten: true
}] }, {
},
'chartjs': {
files: [{
expand: true, expand: true,
src: [ src: [
nodeDir + '/chartjs/chart.js', nodeDir + '/chartjs/chart.js',
nodeDir + '/chartjs/README.md', nodeDir + '/chartjs/README.md',
nodeDir + '/chartjs/LICENSE' nodeDir + '/chartjs/LICENSE'
], ],
dest: vendorDir + '/chartjs', dest: bootstrapDir + '/chartjs',
flatten: true flatten: true
}] },{
},
'cytoscape': {
files: [{
expand: true, expand: true,
src: [ src: [
nodeDir + '/cytoscape/dist/*', nodeDir + '/cytoscape/dist/*',
nodeDir + '/cytoscape-grid-guide/cytoscape-grid-guide.js' nodeDir + '/cytoscape-grid-guide/cytoscape-grid-guide.js'
], ],
dest: vendorDir + '/cytoscape', dest: bootstrapDir + '/cytoscape',
flatten: true flatten: true
}] },{
},
'jqtree': {
files: [{
expand: true, expand: true,
src: [ src: [
nodeDir + '/jqtree/tree.jquery.js', nodeDir + '/jqtree/tree.jquery.js',
nodeDir + '/jqtree/jqtree.css' nodeDir + '/jqtree/jqtree.css'
], ],
dest: vendorDir + '/jqtree', dest: bootstrapDir + '/jqtree',
flatten: true flatten: true
}] },{
},
'noty': {
files: [{
expand: true, expand: true,
src: [ src: [
nodeDir + '/noty/js/noty/jquery.noty.js' nodeDir + '/noty/js/noty/jquery.noty.js'
], ],
dest: vendorDir + '/noty', dest: bootstrapDir + '/noty',
flatten: true flatten: true
},{ },{
expand: true, expand: true,
src: [ src: [
nodeDir + '/noty/js/noty/themes/*' nodeDir + '/noty/js/noty/themes/*'
], ],
dest: vendorDir + '/noty/themes', dest: bootstrapDir + '/noty/themes',
flatten: true flatten: true
},{ },{
expand: true, expand: true,
src: [ src: [
nodeDir + '/noty/js/noty/layouts/*' nodeDir + '/noty/js/noty/layouts/*'
], ],
dest: vendorDir + '/noty/layouts', dest: bootstrapDir + '/noty/layouts',
flatten: true flatten: true
}] },{
},
'select2': {
files: [{
expand: true, expand: true,
src: [ src: [
nodeDir + '/select2/dist/js/*' nodeDir + '/select2/dist/js/*'
], ],
dest: vendorDir + '/select2/js', dest: bootstrapDir + '/select2/js',
flatten: true flatten: true
},{ },{
expand: true, expand: true,
src: [ src: [
nodeDir + '/select2/dist/css/*' nodeDir + '/select2/dist/css/*'
], ],
dest: vendorDir + '/select2/css', dest: bootstrapDir + '/select2/css',
flatten: true flatten: true
}] },{
},
'fine-uploader': {
files: [{
expand: true, expand: true,
src: [ src: [
nodeDir + '/fine-uploader/jquery.fine-uploader/*' nodeDir + '/fine-uploader/jquery.fine-uploader/*'
], ],
dest: vendorDir + '/fine-uploader', dest: bootstrapDir + '/fine-uploader',
flatten: true flatten: true
}] },{
},
'jquery-validation': {
files: [{
expand: true, expand: true,
src: [ src: [
nodeDir + '/jquery-validation/dist/*' nodeDir + '/jquery-validation/dist/*'
], ],
dest: vendorDir + '/jquery-validation', dest: bootstrapDir + '/jquery-validation',
flatten: true flatten: true
}] },{
},
'flot': {
files: [{
expand: true, expand: true,
src: [ src: [
nodeDir + '/flot/source/jquery.canvaswrapper.js', nodeDir + '/flot/source/jquery.canvaswrapper.js',
nodeDir + '/flot/source/jquery.colorhelpers.js', nodeDir + '/flot/source/jquery.colorhelpers.js',
nodeDir + '/flot/source/jquery.flot.*' nodeDir + '/flot/source/jquery.flot.*'
], ],
dest: vendorDir + '/flot', dest: bootstrapDir + '/flot',
flatten: true flatten: true
}] },{
},
'font-awesome': {
files: [{
expand: true, expand: true,
src: [ src: [
nodeDir + '/font-awesome/fonts/*' nodeDir + '/font-awesome/fonts/*'
], ],
dest: vendorDir + '/font-awesome/fonts', dest: bootstrapDir + '/font-awesome/fonts',
flatten: true flatten: true
},{ },{
expand: true, expand: true,
src: [ src: [
nodeDir + '/font-awesome/css/*' nodeDir + '/font-awesome/css/*'
], ],
dest: vendorDir + '/font-awesome/css', dest: bootstrapDir + '/font-awesome/css',
flatten: true flatten: true
}] },{
},
'fullcalendar': {
files: [{
expand: true, expand: true,
src: [ src: [
nodeDir + '/fullcalendar/LICENSE.txt', nodeDir + '/fullcalendar/LICENSE.txt',
nodeDir + '/fullcalendar/dist/*' nodeDir + '/fullcalendar/dist/*'
], ],
dest: vendorDir + '/fullcalendar', dest: bootstrapDir + '/fullcalendar',
flatten: true flatten: true
},{ },{
expand: true, expand: true,
src: [ src: [
nodeDir + '/fullcalendar/dist/locale/*' nodeDir + '/fullcalendar/dist/locale/*'
], ],
dest: vendorDir + '/fullcalendar/locale', dest: bootstrapDir + '/fullcalendar/locale',
flatten: true flatten: true
}] },{
},
'moment': {
files: [{
expand: true, expand: true,
src: [ src: [
nodeDir + '/moment/LICENSE.txt', nodeDir + '/moment/LICENSE.txt',
nodeDir + '/moment/min/*' nodeDir + '/moment/min/*'
], ],
dest: vendorDir + '/moment', dest: bootstrapDir + '/moment',
flatten: true flatten: true
},{ },{
expand: true, expand: true,
src: [ src: [
nodeDir + '/moment/dist/locale/*' nodeDir + '/moment/dist/locale/*'
], ],
dest: vendorDir + '/moment/locale', dest: bootstrapDir + '/moment/locale',
flatten: true flatten: true
}] },{
}, expand: true,
'bootstrap-datepicker': { src: [
files: [{ nodeDir + '/perfect-scrollbar/dist/*'
],
dest: bootstrapDir + '/perfect-scrollbar',
flatten: true
},{
expand: true, expand: true,
src: [ src: [
nodeDir + '/bootstrap-datepicker/dist/js/*' nodeDir + '/bootstrap-datepicker/dist/js/*'
], ],
dest: vendorDir + '/bootstrap-datepicker/js', dest: bootstrapDir + '/bootstrap-datepicker/js',
flatten: true flatten: true
},{ },{
expand: true, expand: true,
src: [ src: [
nodeDir + '/bootstrap-datepicker/dist/css/*' nodeDir + '/bootstrap-datepicker/dist/css/*'
], ],
dest: vendorDir + '/bootstrap-datepicker/css', dest: bootstrapDir + '/bootstrap-datepicker/css',
flatten: true flatten: true
},{ },{
expand: true, expand: true,
src: [ src: [
nodeDir + '/bootstrap-datepicker/dist/locales/*' nodeDir + '/bootstrap-datepicker/dist/locales/*'
], ],
dest: vendorDir + '/bootstrap-datepicker/locales', dest: bootstrapDir + '/bootstrap-datepicker/locales',
flatten: true
},{
expand: true,
src: [
nodeDir + '/@coreui/coreui/dist/js/*'
],
dest: bootstrapDir + '/coreui/js',
flatten: true
},{
expand: true,
src: [
nodeDir + '/@coreui/coreui/dist/css/*'
],
dest: bootstrapDir + '/coreui/css',
flatten: true flatten: true
}] }]
}, },
@ -209,29 +195,64 @@ module.exports = function (grunt) {
src: [ src: [
nodeDir + '/@coreui/coreui/dist/js/*' nodeDir + '/@coreui/coreui/dist/js/*'
], ],
dest: vendorDir + '/coreui/js', dest: tdkDir + '/coreui/js',
flatten: true flatten: true
},{ },{
expand: true, expand: true,
src: [ src: [
nodeDir + '/@coreui/coreui/dist/css/*' nodeDir + '/@coreui/coreui/dist/css/*'
], ],
dest: vendorDir + '/coreui/css', dest: tdkDir + '/coreui/css',
flatten: true
},{
expand: true,
src: [
nodeDir + '/perfect-scrollbar/dist/*'
],
dest: tdkDir + '/perfect-scrollbar',
flatten: true
},{
expand: true,
src: [
nodeDir + '/bootstrap/dist/js/*'
],
dest: tdkDir + '/bootstrap/js',
flatten: true
},{
expand: true,
src: [
nodeDir + '/bootstrap/dist/css/*'
],
dest: tdkDir + '/bootstrap/css',
flatten: true
},{
expand: true,
src: [
nodeDir + '/font-awesome/fonts/*'
],
dest: tdkDir + '/font-awesome/fonts',
flatten: true
},{
expand: true,
src: [
nodeDir + '/font-awesome/css/*'
],
dest: tdkDir + '/font-awesome/css',
flatten: true flatten: true
}] }]
} },
} }
}); });
grunt.registerTask('createVendorDir', 'Creates the necessary vendor directory', function() { grunt.registerTask('createVendorDir', 'Creates the necessary vendor directory', function() {
// Create the vendorDir when it doesn't exists. // Create the bootstrapDir when it doesn't exists.
if (!grunt.file.isDir(vendorDir)) { if (!grunt.file.isDir(bootstrapDir)) {
grunt.file.mkdir(vendorDir); grunt.file.mkdir(bootstrapDir);
// Output a success message // Output a success message
grunt.log.oklns(grunt.template.process( grunt.log.oklns(grunt.template.process(
'Directory "<%= directory %>" was created successfully.', 'Directory "<%= directory %>" was created successfully.',
{ data: { directory: vendorDir } } { data: { directory: bootstrapDir } }
)); ));
} }
}); });

View File

@ -94,7 +94,7 @@ if (isset($_COOKIE["mydms_session"])) {
*/ */
header("Cache-Control: no-cache,no-store"); header("Cache-Control: no-cache,no-store");
$command = $_REQUEST["command"]; $command = isset($_REQUEST["command"]) ? $_REQUEST["command"] : '';
switch($command) { switch($command) {
case 'checkpwstrength': /* {{{ */ case 'checkpwstrength': /* {{{ */
$ps = new Password_Strength(); $ps = new Password_Strength();

View File

@ -36,7 +36,7 @@ if (!$settings->_backupDir) {
} }
$v = new SeedDMS_Version; $v = new SeedDMS_Version;
$dump_name = addDirSep($settings->_backupDir).date('Y-m-d\TH-i-s')."_".$v->_number.".sql"; $dump_name = addDirSep($settings->_backupDir).date('Y-m-d\TH-i-s')."_".$v->version().".sql";
if(!$dms->createDump($dump_name)) if(!$dms->createDump($dump_name))
UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); UI::exitError(getMLText("admin_tools"),getMLText("error_occured"));

View File

@ -10,6 +10,8 @@
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"@coreui/coreui": "^3.2.2", "@coreui/coreui": "^3.2.2",
"@popperjs/core": "^2.4.4",
"bootstrap": "^4.5.2",
"bootstrap-datepicker": "^1.9.0", "bootstrap-datepicker": "^1.9.0",
"chartjs": "^0.3.24", "chartjs": "^0.3.24",
"cytoscape": "^3.15.2", "cytoscape": "^3.15.2",
@ -26,6 +28,7 @@
"jquery-validation": "^1.19.2", "jquery-validation": "^1.19.2",
"moment": "^2.17.1", "moment": "^2.17.1",
"noty": "^2.4.1", "noty": "^2.4.1",
"perfect-scrollbar": "^1.5.0",
"select2": "^4.0.13" "select2": "^4.0.13"
} }
} }

View File

@ -411,7 +411,10 @@ console.log(element);
} }
} }
if($tmp) { if($tmp) {
$fieldwrap[1] .= '<div class="mandatories"><span>'.getMLText('mandatory_reviewers').':</span> '.implode(', ', $tmp)."</div>\n"; if(isset($fieldwrap[1]))
$fieldwrap[1] .= '<div class="mandatories"><span>'.getMLText('mandatory_reviewers').':</span> '.implode(', ', $tmp)."</div>\n";
else
$fieldwrap[1] = '<div class="mandatories"><span>'.getMLText('mandatory_reviewers').':</span> '.implode(', ', $tmp)."</div>\n";
} }
} }