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

This commit is contained in:
Uwe Steinmann 2021-01-13 09:05:39 +01:00
commit df76dbf35a
8 changed files with 37 additions and 15 deletions

View File

@ -191,6 +191,7 @@
- remove document/folder from index before adding a new one after editing the
meta data
- fix potential clickjacking attack with manipulated email address of a user
- loading more items on ViewFolder page obeys sort order
--------------------------------------------------------------------------------
Changes in version 5.1.21

View File

@ -30,8 +30,10 @@
*/
class SeedDMS_ExtBase {
var $settings;
var $dms;
public function __construct($settings) {
public function __construct($settings, $dms) {
$this->settings = $settings;
$this->dms = $dms;
}
}

View File

@ -308,19 +308,21 @@ class SeedDMS_Extension_Mgr {
* @param SeedDMS_Core_DMS $dms
* @return boolean true on success, false on error
*/
public function migrate($extname, $dms) { /* {{{ */
public function migrate($extname, $settings, $dms) { /* {{{ */
if(!isset($this->extconf[$extname]))
return false;
$extconf = $this->extconf[$extname];
$ret = null;
if(isset($extconf['class']) && isset($extconf['class']['file']) && isset($extconf['class']['name'])) {
$classfile = $settings->_rootDir."/ext/".$extname."/".$extconf['class']['file'];
if(file_exists($classfile)) {
include($classfile);
$obj = new $extconf['class']['name']($settings);
require_once($classfile);
$obj = new $extconf['class']['name']($settings, $dms);
if(method_exists($obj, 'migrate'))
$obj->migrate(isset($settings->_extensions[$extname]) ? $settings->_extensions[$extname] : null);
$ret = $obj->migrate();
}
}
return $ret;
} /* }}} */
/**

View File

@ -88,6 +88,10 @@ class SeedDMS_View_Common {
$this->baseurl = $baseurl;
}
public function getTheme() {
return $this->theme;
}
public function show() {
}

View File

@ -44,9 +44,9 @@ foreach($extMgr->getExtensionConfiguration() as $extname=>$extconf) {
$classfile = $settings->_rootDir."/ext/".$extname."/".$extconf['class']['file'];
if(file_exists($classfile)) {
include($classfile);
$obj = new $extconf['class']['name']($settings);
$obj = new $extconf['class']['name']($settings, null);
if(method_exists($obj, 'init'))
$obj->init(isset($settings->_extensions[$extname]) ? $settings->_extensions[$extname] : null);
$obj->init();
}
}
if(isset($extconf['language']['file'])) {

View File

@ -131,7 +131,7 @@ elseif ($action == "getlist") { /* {{{ */
} /* }}} */
elseif ($action == "toggle") { /* {{{ */
if (!isset($_POST["extname"])) {
echo json_encode(array('success'=>false, 'msg'=>'Could not toggle extension'));
echo json_encode(array('success'=>false, 'msg'=>getMLText('extension_missing_name')));
}
$extname = trim($_POST["extname"]);
if (!file_exists($settings->_rootDir.'/ext/'.$extname) ) {
@ -140,9 +140,21 @@ elseif ($action == "toggle") { /* {{{ */
$controller->setParam('extmgr', $extMgr);
$controller->setParam('extname', $extname);
if (!$controller($_POST)) {
echo json_encode(array('success'=>false, 'msg'=>'Could not toggle extension'));
echo json_encode(array('success'=>false, 'msg'=>getMLText('extinsion_toggle_error')));
} else {
echo json_encode(array('success'=>true, 'msg'=>'Operation succeded'));
if($settings->extensionIsDisabled($extname))
echo json_encode(array('success'=>true, 'msg'=>getMLText('extension_is_off_now')));
else {
$ret = $extMgr->migrate($extname, $settings, $dms);
if($ret !== null) {
if($ret === true)
echo json_encode(array('success'=>true, 'msg'=>getMLText('extension_migration_success')));
else
echo json_encode(array('success'=>true, 'msg'=>getMLText('extension_migration_error')));
} else {
echo json_encode(array('success'=>true, 'msg'=>getMLText('extension_is_on_now')));
}
}
}
add_log_line();
} /* }}} */

View File

@ -1239,6 +1239,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
$icons["zip"] = "package.svg";
$icons["rar"] = "package.svg";
$icons["mpg"] = "video.svg";
$icons["mp4"] = "video.svg";
$icons["avi"] = "video.svg";
$icons["webm"] = "video.svg";
$icons["mkv"] = "video.svg";

View File

@ -130,7 +130,7 @@ function folderSelectedmaintree(id, name) {
<?php } ?>
}
<?php if($maxItemsPerPage) { ?>
function loadMoreObjects(element, limit) {
function loadMoreObjects(element, limit, orderby) {
if(!$(element).is(":visible"))
return;
element.text('<?= getMLText('more_objects_loading') ?>');
@ -138,7 +138,7 @@ function loadMoreObjects(element, limit) {
var folder = element.data('folder')
var offset = element.data('offset')
// var limit = element.data('limit')
url = seeddms_webroot+"out/out.ViewFolder.php?action=entries&folderid="+folder+"&offset="+offset+"&limit="+limit<?= $orderby ? '+"&orderby='.$orderby.'"' : "" ?>;
url = seeddms_webroot+"out/out.ViewFolder.php?action=entries&folderid="+folder+"&offset="+offset+"&limit="+limit+"&orderby="+orderby;
$.ajax({
type: 'GET',
url: url,
@ -158,11 +158,11 @@ function loadMoreObjects(element, limit) {
}
$(window).scroll(function() {
if($(window).scrollTop() + $(window).height() == $(document).height()) {
loadMoreObjects($('#loadmore'), $('#loadmore').data('limit'));
loadMoreObjects($('#loadmore'), $('#loadmore').data('limit'), $('#loadmore').data('orderby'));
}
});
$('body').on('click', '#loadmore', function(e) {
loadMoreObjects($(this), $(this).data('all'));
loadMoreObjects($(this), $(this).data('all'), $(this).data('orderby'));
});
<?php } ?>
@ -426,7 +426,7 @@ $('body').on('click', '.order-btn', function(ev) {
echo "</tbody>\n</table>\n";
if($maxItemsPerPage && $i > $maxItemsPerPage)
echo "<button id=\"loadmore\" style=\"width: 100%; margin-bottom: 20px;\" class=\"btn btn-secondary\" data-folder=\"".$folder->getId()."\"data-offset=\"".$maxItemsPerPage."\" data-limit=\"".$incItemsPerPage."\" data-all=\"".($i-$maxItemsPerPage)."\">".getMLText('x_more_objects', array('number'=>($i-$maxItemsPerPage)))."</button>";
echo "<button id=\"loadmore\" style=\"width: 100%; margin-bottom: 20px;\" class=\"btn btn-secondary\" data-folder=\"".$folder->getId()."\"data-offset=\"".$maxItemsPerPage."\" data-limit=\"".$incItemsPerPage."\" data-orderby=\"".$orderby."\" data-all=\"".($i-$maxItemsPerPage)."\">".getMLText('x_more_objects', array('number'=>($i-$maxItemsPerPage)))."</button>";
}
else printMLText("empty_folder_list");