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

This commit is contained in:
Uwe Steinmann 2024-09-01 09:53:29 +02:00
commit dcf448072d
49 changed files with 1023 additions and 45 deletions

View File

@ -298,6 +298,11 @@
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
Changes in version 5.1.36 Changes in version 5.1.36
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
- add new page for send test notification
- remove deprecated function formatted_size()
- fix bugs when importing files from filesystem with metadata, better logging
- fix potential xss attack when showing log file
- support for different storage of documents (not yet used)
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
Changes in version 5.1.35 Changes in version 5.1.35

View File

@ -78,6 +78,14 @@ message/rfc822
text/plain text/plain
iconv -c -f utf-8 -t latin1 '%f' | a2ps -1 -q -a1 -R -B -o - - | ps2pdf - - iconv -c -f utf-8 -t latin1 '%f' | a2ps -1 -q -a1 -R -B -o - - | ps2pdf - -
application/x-xopp
xournalpp -p "%o" "%f"
Converting from application/x-xopp to pdf only works if the xopp file
does not use a pdf document as a background, because this pdf is not
stored in the xopp fіle.
Conversion to png for preview images Conversion to png for preview images
===================================== =====================================
@ -111,7 +119,12 @@ application/pdf
convert -density 100 -resize %wx '%f[0]' 'png:%o' convert -density 100 -resize %wx '%f[0]' 'png:%o'
mutool draw -F png -w %w -q -N -o %o %f 1 mutool draw -F png -w %w -q -N -o '%o' '%f' 1
pdftocairo '%f' -png -singlefile -scale-to-x %w -scale-to-y -1 - > '%o'
pdftocairo needs to output to stdout because the output file name passed
to pdftocairo will be suffixed with png
application/postscript application/postscript
convert -density 100 -resize %wx '%f[0]' 'png:%o' convert -density 100 -resize %wx '%f[0]' 'png:%o'
@ -150,3 +163,10 @@ video/mp4
audio/mpeg audio/mpeg
sox "%f" -n spectrogram -x 600 -Y 550 -r -l -o - | convert -resize %wx png:- "png:%o" sox "%f" -n spectrogram -x 600 -Y 550 -r -l -o - | convert -resize %wx png:- "png:%o"
application/x-xopp
xournalpp -i "%o" --export-png-width=%w "%f"
Converting from application/x-xopp to png only works if the xopp file
does not use a pdf document as a background, because this pdf is not
stored in the xopp fіle.

View File

@ -30,7 +30,7 @@ class Controller {
* @return object an object of a class implementing the view * @return object an object of a class implementing the view
*/ */
static function factory($class, $params=array()) { /* {{{ */ static function factory($class, $params=array()) { /* {{{ */
global $settings, $session, $extMgr, $request, $logger; global $settings, $session, $extMgr, $request, $logger, $notifier;
if(!$class) { if(!$class) {
return null; return null;
} }
@ -60,6 +60,7 @@ class Controller {
$controller->setParam('request', $request); $controller->setParam('request', $request);
$controller->setParam('settings', $settings); $controller->setParam('settings', $settings);
$controller->setParam('logger', $logger); $controller->setParam('logger', $logger);
$controller->setParam('notifier', $notifier);
return $controller; return $controller;
} }
return null; return null;

View File

@ -197,7 +197,7 @@ class SeedDMS_EmailNotify extends SeedDMS_Notify {
$headers['Return-Path'] = $returnpath; $headers['Return-Path'] = $returnpath;
$headers['To'] = $to; $headers['To'] = $to;
$preferences = array("input-charset" => "UTF-8", "output-charset" => "UTF-8"); $preferences = array("input-charset" => "UTF-8", "output-charset" => "UTF-8");
$encoded_subject = iconv_mime_encode("Subject", getMLText($subject, $params, "", $lang), $preferences); $encoded_subject = iconv_mime_encode("Subject", getMLText($subject, $params, null, $lang), $preferences);
$headers['Subject'] = substr($encoded_subject, strlen('Subject: ')); $headers['Subject'] = substr($encoded_subject, strlen('Subject: '));
$headers['Date'] = date('r', time()); $headers['Date'] = date('r', time());
$headers['MIME-Version'] = "1.0"; $headers['MIME-Version'] = "1.0";

View File

@ -46,7 +46,7 @@ class UI extends UI_Default {
* @return object an object of a class implementing the view * @return object an object of a class implementing the view
*/ */
static function factory($theme, $class='', $params=array()) { /* {{{ */ static function factory($theme, $class='', $params=array()) { /* {{{ */
global $settings, $dms, $user, $session, $extMgr, $request, $logger; global $settings, $dms, $user, $session, $extMgr, $request, $logger, $notifier;
if(!$class) { if(!$class) {
$class = 'Bootstrap'; $class = 'Bootstrap';
$class = 'Style'; $class = 'Style';
@ -129,6 +129,7 @@ class UI extends UI_Default {
$view = new $classname($params, $theme); $view = new $classname($params, $theme);
/* Set some configuration parameters */ /* Set some configuration parameters */
$view->setParam('accessobject', new SeedDMS_AccessOperation($dms, $user, $settings)); $view->setParam('accessobject', new SeedDMS_AccessOperation($dms, $user, $settings));
$view->setParam('referer', isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '');
$view->setParam('refferer', $_SERVER['REQUEST_URI']); $view->setParam('refferer', $_SERVER['REQUEST_URI']);
$view->setParam('absbaseprefix', $settings->_httpRoot.$httpbasedir); $view->setParam('absbaseprefix', $settings->_httpRoot.$httpbasedir);
$view->setParam('theme', $theme); $view->setParam('theme', $theme);
@ -136,6 +137,7 @@ class UI extends UI_Default {
$view->setParam('session', $session); $view->setParam('session', $session);
$view->setParam('request', $request); $view->setParam('request', $request);
$view->setParam('logger', $logger); $view->setParam('logger', $logger);
$view->setParam('notifier', $notifier);
// $view->setParam('settings', $settings); // $view->setParam('settings', $settings);
$view->setParam('sitename', $settings->_siteName); $view->setParam('sitename', $settings->_siteName);
$view->setParam('rootfolderid', $settings->_rootFolderID); $view->setParam('rootfolderid', $settings->_rootFolderID);

View File

@ -45,7 +45,22 @@ if(isset($GLOBALS['SEEDDMS_HOOKS']['initDMS'])) {
} }
} }
$storage = null;
if(isset($GLOBALS['SEEDDMS_HOOKS']['initStorage'])) {
foreach($GLOBALS['SEEDDMS_HOOKS']['initStorage'] as $hookObj) {
if (method_exists($hookObj, 'getStorage')) {
$storage = $hookObj->getStorage(array('db'=>$db, 'settings'=>$settings, 'logger'=>$logger));
}
}
}
if($storage) {
$dms = new SeedDMS_Core_DMS($db, $storage);
} else {
// $storage = new SeedDMS_Core_Storage_File($settings->_contentDir.$settings->_contentOffsetDir);
// $dms = new SeedDMS_Core_DMS($db, $storage);
$dms = new SeedDMS_Core_DMS($db, $settings->_contentDir.$settings->_contentOffsetDir); $dms = new SeedDMS_Core_DMS($db, $settings->_contentDir.$settings->_contentOffsetDir);
}
if(!$settings->_doNotCheckDBVersion && !$dms->checkVersion()) { if(!$settings->_doNotCheckDBVersion && !$dms->checkVersion()) {
echo "Database update needed."; echo "Database update needed.";

View File

@ -18,14 +18,6 @@
// along with this program; if not, write to the Free Software // along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
/* deprecated! use SeedDMS_Core_File::format_filesize() instead */
function formatted_size($size_bytes) { /* {{{ */
if ($size_bytes>1000000000) return number_format($size_bytes/1000000000,1,".","")." GBytes";
else if ($size_bytes>1000000) return number_format($size_bytes/1000000,1,".","")." MBytes";
else if ($size_bytes>1000) return number_format($size_bytes/1000,1,".","")." KBytes";
return number_format($size_bytes,0,"","")." Bytes";
} /* }}} */
/* Date picker needs a different syntax for date formats using /* Date picker needs a different syntax for date formats using
* yyyy for %Y * yyyy for %Y
* yy for %y * yy for %y
@ -726,6 +718,7 @@ function get_extension($mimetype) { /* {{{ */
case 'image/gif': return '.gif'; case 'image/gif': return '.gif';
case 'image/ief': return '.ief'; case 'image/ief': return '.ief';
case 'image/jpeg': return '.jpg'; case 'image/jpeg': return '.jpg';
case 'image/jpg': return '.jpg';
case 'image/pipeg': return '.jfif'; case 'image/pipeg': return '.jfif';
case 'image/tiff': return '.tif'; case 'image/tiff': return '.tif';
case 'image/x-cmu-raster': return '.ras'; case 'image/x-cmu-raster': return '.ras';
@ -752,6 +745,7 @@ function get_extension($mimetype) { /* {{{ */
case 'application/x-gzip': return '.gz'; case 'application/x-gzip': return '.gz';
case 'application/x-rar': return '.rar'; case 'application/x-rar': return '.rar';
case 'application/x-compressed-tar': return '.tgz'; case 'application/x-compressed-tar': return '.tgz';
case 'application/x-xopp': return '.xopp';
case 'application/pdf': return '.pdf'; case 'application/pdf': return '.pdf';
case 'application/dxf': return '.dxf'; case 'application/dxf': return '.dxf';
case 'application/msword': return '.doc'; case 'application/msword': return '.doc';

View File

@ -283,6 +283,7 @@ URL: [url]',
'checkout_is_disabled' => 'السحب معطل', 'checkout_is_disabled' => 'السحب معطل',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => 'من فضلك اختر تعريف السمة', 'choose_attrdef' => 'من فضلك اختر تعريف السمة',
@ -304,6 +305,7 @@ URL: [url]',
'clear_cache' => 'مسح المحفوظات', 'clear_cache' => 'مسح المحفوظات',
'clear_clipboard' => 'مسح الحافظة', 'clear_clipboard' => 'مسح الحافظة',
'clear_password' => 'مسح الرقم السري', 'clear_password' => 'مسح الرقم السري',
'click_to_expand_filter_results' => '',
'clipboard' => 'لوحة القصاصات', 'clipboard' => 'لوحة القصاصات',
'close' => 'إغلاق', 'close' => 'إغلاق',
'color' => '', 'color' => '',
@ -1093,6 +1095,17 @@ URL: [url]',
'nl_NL' => 'الهولندي', 'nl_NL' => 'الهولندي',
'no' => 'لا', 'no' => 'لا',
'notification' => '', 'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '', 'not_subscribed' => '',
'november' => 'نوفمبر', 'november' => 'نوفمبر',
'now' => 'الان', 'now' => 'الان',
@ -1479,6 +1492,7 @@ URL: [url]',
'send_login_data' => 'ارسل بيانات تسجيل الدخول', 'send_login_data' => 'ارسل بيانات تسجيل الدخول',
'send_login_data_body' => 'ارسل محتوى بيانات تسجيل الدخول', 'send_login_data_body' => 'ارسل محتوى بيانات تسجيل الدخول',
'send_login_data_subject' => 'ارسل موضوع بيانات تسجيل الدخول', 'send_login_data_subject' => 'ارسل موضوع بيانات تسجيل الدخول',
'send_notification' => '',
'send_test_mail' => 'ارسل رسالة تجريبية', 'send_test_mail' => 'ارسل رسالة تجريبية',
'september' => 'سبتمبر', 'september' => 'سبتمبر',
'sequence' => 'تتابع', 'sequence' => 'تتابع',

View File

@ -270,6 +270,7 @@ $text = array(
'checkout_is_disabled' => '', 'checkout_is_disabled' => '',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => 'Изберете attribute definition', 'choose_attrdef' => 'Изберете attribute definition',
@ -291,6 +292,7 @@ $text = array(
'clear_cache' => 'Изчистване на кеша', 'clear_cache' => 'Изчистване на кеша',
'clear_clipboard' => '', 'clear_clipboard' => '',
'clear_password' => '', 'clear_password' => '',
'click_to_expand_filter_results' => '',
'clipboard' => 'Клипборд', 'clipboard' => 'Клипборд',
'close' => 'Затвори', 'close' => 'Затвори',
'color' => '', 'color' => '',
@ -971,6 +973,17 @@ $text = array(
'nl_NL' => 'Холандски', 'nl_NL' => 'Холандски',
'no' => 'Не', 'no' => 'Не',
'notification' => '', 'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '', 'not_subscribed' => '',
'november' => 'ноември', 'november' => 'ноември',
'now' => 'сега', 'now' => 'сега',
@ -1321,6 +1334,7 @@ $text = array(
'send_login_data' => '', 'send_login_data' => '',
'send_login_data_body' => '', 'send_login_data_body' => '',
'send_login_data_subject' => '', 'send_login_data_subject' => '',
'send_notification' => '',
'send_test_mail' => '', 'send_test_mail' => '',
'september' => 'септември', 'september' => 'септември',
'sequence' => 'Последователност', 'sequence' => 'Последователност',

View File

@ -275,6 +275,7 @@ URL: [url]',
'checkout_is_disabled' => '', 'checkout_is_disabled' => '',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => '', 'choose_attrdef' => '',
@ -296,6 +297,7 @@ URL: [url]',
'clear_cache' => 'Neteja memòria cau', 'clear_cache' => 'Neteja memòria cau',
'clear_clipboard' => '', 'clear_clipboard' => '',
'clear_password' => '', 'clear_password' => '',
'click_to_expand_filter_results' => '',
'clipboard' => 'Portapapers', 'clipboard' => 'Portapapers',
'close' => 'Tancar', 'close' => 'Tancar',
'color' => '', 'color' => '',
@ -976,6 +978,17 @@ URL: [url]',
'nl_NL' => 'Holandès', 'nl_NL' => 'Holandès',
'no' => 'No', 'no' => 'No',
'notification' => '', 'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '', 'not_subscribed' => '',
'november' => 'Novembre', 'november' => 'Novembre',
'now' => '', 'now' => '',
@ -1326,6 +1339,7 @@ URL: [url]',
'send_login_data' => '', 'send_login_data' => '',
'send_login_data_body' => '', 'send_login_data_body' => '',
'send_login_data_subject' => '', 'send_login_data_subject' => '',
'send_notification' => '',
'send_test_mail' => '', 'send_test_mail' => '',
'september' => 'Setembre', 'september' => 'Setembre',
'sequence' => 'Seqüència', 'sequence' => 'Seqüència',

View File

@ -295,6 +295,7 @@ URL: [url]',
'checkout_is_disabled' => 'Kontrola dokumentů je zakázána v konfiguraci.', 'checkout_is_disabled' => 'Kontrola dokumentů je zakázána v konfiguraci.',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => 'Zvolte definici atributů', 'choose_attrdef' => 'Zvolte definici atributů',
@ -316,6 +317,7 @@ URL: [url]',
'clear_cache' => 'Vymazat vyrovnávací paměť', 'clear_cache' => 'Vymazat vyrovnávací paměť',
'clear_clipboard' => 'Vyčistit schránku', 'clear_clipboard' => 'Vyčistit schránku',
'clear_password' => 'Vymazat heslo', 'clear_password' => 'Vymazat heslo',
'click_to_expand_filter_results' => '',
'clipboard' => 'Schránka', 'clipboard' => 'Schránka',
'close' => 'Zavřít', 'close' => 'Zavřít',
'color' => '', 'color' => '',
@ -1124,6 +1126,17 @@ URL: [url]',
'nl_NL' => 'Holandština', 'nl_NL' => 'Holandština',
'no' => 'Ne', 'no' => 'Ne',
'notification' => '', 'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '', 'not_subscribed' => '',
'november' => 'Listopad', 'november' => 'Listopad',
'now' => 'nyní', 'now' => 'nyní',
@ -1551,6 +1564,7 @@ Jméno: [username]
[comment]', [comment]',
'send_login_data_subject' => '[sitename]: [login] - Přihlašovací údaje', 'send_login_data_subject' => '[sitename]: [login] - Přihlašovací údaje',
'send_notification' => '',
'send_test_mail' => 'Poslat zkušební zprávu', 'send_test_mail' => 'Poslat zkušební zprávu',
'september' => 'Září', 'september' => 'Září',
'sequence' => 'Posloupnost', 'sequence' => 'Posloupnost',

View File

@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software // along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
// //
// Translators: Admin (3381), dgrutsch (22) // Translators: Admin (3395), dgrutsch (22)
$text = array( $text = array(
'2_factor_auth' => '2-Faktor Authentifizierung', '2_factor_auth' => '2-Faktor Authentifizierung',
@ -328,6 +328,7 @@ URL: [url]</p>',
'checkout_is_disabled' => 'Auschecken von Dokumenten ist in der Konfiguration ausgeschaltet.', 'checkout_is_disabled' => 'Auschecken von Dokumenten ist in der Konfiguration ausgeschaltet.',
'check_directory_layout' => 'Prüfe Verzeichnise', 'check_directory_layout' => 'Prüfe Verzeichnise',
'check_failed' => 'fehlgeschlagen', 'check_failed' => 'fehlgeschlagen',
'check_notification_filter' => 'Prüfe Benachrichtigungsfilter',
'check_passed' => 'erfolgreich', 'check_passed' => 'erfolgreich',
'check_secure_installation' => 'Prüfe auf sichere Installation', 'check_secure_installation' => 'Prüfe auf sichere Installation',
'choose_attrdef' => 'Attributdefinition wählen', 'choose_attrdef' => 'Attributdefinition wählen',
@ -349,6 +350,7 @@ URL: [url]</p>',
'clear_cache' => 'Cache löschen', 'clear_cache' => 'Cache löschen',
'clear_clipboard' => 'Zwischenablage leeren', 'clear_clipboard' => 'Zwischenablage leeren',
'clear_password' => 'Passwort löschen', 'clear_password' => 'Passwort löschen',
'click_to_expand_filter_results' => 'Klicken zum Ausklappen der Filterprüfung',
'clipboard' => 'Zwischenablage', 'clipboard' => 'Zwischenablage',
'close' => 'Schließen', 'close' => 'Schließen',
'color' => 'Farbe', 'color' => 'Farbe',
@ -1357,6 +1359,17 @@ URL: [url]</p>',
'nl_NL' => 'Niederländisch', 'nl_NL' => 'Niederländisch',
'no' => 'Nein', 'no' => 'Nein',
'notification' => 'Beobachter', 'notification' => 'Beobachter',
'notification_msg_tmpl' => 'Schablone',
'notification_recvtype' => 'Empfängertyp',
'notification_recv_any' => 'Jeder',
'notification_recv_approver' => 'Freigeber',
'notification_recv_notification' => 'Beobachter',
'notification_recv_owner' => 'Besitzer',
'notification_recv_reviewer' => 'Prüfer',
'notification_recv_uploader' => 'Hochlader',
'notification_recv_workflow' => 'Workflow',
'notification_service_no_filter' => 'Dieser Benachrichtigungsdienst hat keinen Filter.',
'notification_tmpl' => 'Schablone',
'not_subscribed' => 'Nicht abonniert', 'not_subscribed' => 'Nicht abonniert',
'november' => 'November', 'november' => 'November',
'now' => 'sofort', 'now' => 'sofort',
@ -1942,6 +1955,7 @@ Name: [username]
Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Vergessen-Funktion auf der Anmeldeseite, um ein neues Passwort zu setzen.', Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Vergessen-Funktion auf der Anmeldeseite, um ein neues Passwort zu setzen.',
'send_login_data_subject' => '[sitename]: [login] - Ihre Login-Daten', 'send_login_data_subject' => '[sitename]: [login] - Ihre Login-Daten',
'send_notification' => 'Benachrichtigung verschicken',
'send_test_mail' => 'Sende Test-E-mail', 'send_test_mail' => 'Sende Test-E-mail',
'september' => 'September', 'september' => 'September',
'sequence' => 'Reihenfolge', 'sequence' => 'Reihenfolge',

View File

@ -270,6 +270,7 @@ $text = array(
'checkout_is_disabled' => '', 'checkout_is_disabled' => '',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => '', 'choose_attrdef' => '',
@ -291,6 +292,7 @@ $text = array(
'clear_cache' => 'Εκκαθάριση στιγμιαίας μνήμης', 'clear_cache' => 'Εκκαθάριση στιγμιαίας μνήμης',
'clear_clipboard' => '', 'clear_clipboard' => '',
'clear_password' => '', 'clear_password' => '',
'click_to_expand_filter_results' => '',
'clipboard' => 'Πρόχειρο', 'clipboard' => 'Πρόχειρο',
'close' => 'Κλέισιμο', 'close' => 'Κλέισιμο',
'color' => '', 'color' => '',
@ -982,6 +984,17 @@ URL: [url]',
'nl_NL' => 'Δανέζικα', 'nl_NL' => 'Δανέζικα',
'no' => 'Όχι', 'no' => 'Όχι',
'notification' => '', 'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '', 'not_subscribed' => '',
'november' => 'Νοέμβριος', 'november' => 'Νοέμβριος',
'now' => 'τώρα', 'now' => 'τώρα',
@ -1332,6 +1345,7 @@ URL: [url]',
'send_login_data' => '', 'send_login_data' => '',
'send_login_data_body' => '', 'send_login_data_body' => '',
'send_login_data_subject' => '', 'send_login_data_subject' => '',
'send_notification' => '',
'send_test_mail' => '', 'send_test_mail' => '',
'september' => 'Σεπτέμβριος', 'september' => 'Σεπτέμβριος',
'sequence' => 'Σειρά', 'sequence' => 'Σειρά',

View File

@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software // along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
// //
// Translators: Admin (2481), archonwang (3), dgrutsch (9), netixw (14) // Translators: Admin (2495), archonwang (3), dgrutsch (9), netixw (14)
$text = array( $text = array(
'2_factor_auth' => '2-factor authentication', '2_factor_auth' => '2-factor authentication',
@ -328,6 +328,7 @@ URL: [url]</p>',
'checkout_is_disabled' => 'Check out of documents is disabled in the configuration.', 'checkout_is_disabled' => 'Check out of documents is disabled in the configuration.',
'check_directory_layout' => 'Check directory layout', 'check_directory_layout' => 'Check directory layout',
'check_failed' => 'failed', 'check_failed' => 'failed',
'check_notification_filter' => 'Check notification filter',
'check_passed' => 'passed', 'check_passed' => 'passed',
'check_secure_installation' => 'Check for a secure installation', 'check_secure_installation' => 'Check for a secure installation',
'choose_attrdef' => 'Please choose attribute definition', 'choose_attrdef' => 'Please choose attribute definition',
@ -349,6 +350,7 @@ URL: [url]</p>',
'clear_cache' => 'Clear cache', 'clear_cache' => 'Clear cache',
'clear_clipboard' => 'Clear clipboard', 'clear_clipboard' => 'Clear clipboard',
'clear_password' => 'Clear password', 'clear_password' => 'Clear password',
'click_to_expand_filter_results' => 'Click to expand filter check',
'clipboard' => 'Clipboard', 'clipboard' => 'Clipboard',
'close' => 'Close', 'close' => 'Close',
'color' => 'Color', 'color' => 'Color',
@ -1359,6 +1361,17 @@ URL: [url]</p>',
'nl_NL' => 'Dutch', 'nl_NL' => 'Dutch',
'no' => 'No', 'no' => 'No',
'notification' => 'Notification', 'notification' => 'Notification',
'notification_msg_tmpl' => 'Template',
'notification_recvtype' => 'Type of receiver',
'notification_recv_any' => 'Any',
'notification_recv_approver' => 'Approver',
'notification_recv_notification' => 'Notifier',
'notification_recv_owner' => 'Owner',
'notification_recv_reviewer' => 'Reviewer',
'notification_recv_uploader' => 'Uploader',
'notification_recv_workflow' => 'Workflow',
'notification_service_no_filter' => 'This notification services does not have a filter.',
'notification_tmpl' => 'Template',
'not_subscribed' => 'Not subscribed', 'not_subscribed' => 'Not subscribed',
'november' => 'November', 'november' => 'November',
'now' => 'now', 'now' => 'now',
@ -1944,6 +1957,7 @@ Name: [username]
If you did not receive a password, please use the password forgotten function on the login page to set a new password.', If you did not receive a password, please use the password forgotten function on the login page to set a new password.',
'send_login_data_subject' => '[sitename]: [login] - Your login data', 'send_login_data_subject' => '[sitename]: [login] - Your login data',
'send_notification' => 'Send notification',
'send_test_mail' => 'Send test mail', 'send_test_mail' => 'Send test mail',
'september' => 'September', 'september' => 'September',
'sequence' => 'Sequence', 'sequence' => 'Sequence',

View File

@ -290,6 +290,7 @@ URL: [url]',
'checkout_is_disabled' => '', 'checkout_is_disabled' => '',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => 'Por favor, seleccione definición de atributo', 'choose_attrdef' => 'Por favor, seleccione definición de atributo',
@ -311,6 +312,7 @@ URL: [url]',
'clear_cache' => 'Borrar cache', 'clear_cache' => 'Borrar cache',
'clear_clipboard' => 'Limpiar portapapeles', 'clear_clipboard' => 'Limpiar portapapeles',
'clear_password' => '', 'clear_password' => '',
'click_to_expand_filter_results' => '',
'clipboard' => 'Portapapeles', 'clipboard' => 'Portapapeles',
'close' => 'Cerrar', 'close' => 'Cerrar',
'color' => '', 'color' => '',
@ -1108,6 +1110,17 @@ URL: [url]',
'nl_NL' => 'Holandes', 'nl_NL' => 'Holandes',
'no' => 'No', 'no' => 'No',
'notification' => 'Notificación', 'notification' => 'Notificación',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '', 'not_subscribed' => '',
'november' => 'Noviembre', 'november' => 'Noviembre',
'now' => 'ahora', 'now' => 'ahora',
@ -1502,6 +1515,7 @@ URL: [url]',
'send_login_data' => '', 'send_login_data' => '',
'send_login_data_body' => '', 'send_login_data_body' => '',
'send_login_data_subject' => '', 'send_login_data_subject' => '',
'send_notification' => '',
'send_test_mail' => 'Enviar correo de prueba', 'send_test_mail' => 'Enviar correo de prueba',
'september' => 'Septiembre', 'september' => 'Septiembre',
'sequence' => 'Secuencia', 'sequence' => 'Secuencia',

View File

@ -319,6 +319,7 @@ URL : [url]</p>',
'checkout_is_disabled' => 'Le blocage (check-out) de documents est désactivé dans la configuration.', 'checkout_is_disabled' => 'Le blocage (check-out) de documents est désactivé dans la configuration.',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => 'Choisissez une définition d\'attribut', 'choose_attrdef' => 'Choisissez une définition d\'attribut',
@ -340,6 +341,7 @@ URL : [url]</p>',
'clear_cache' => 'Vider le cache', 'clear_cache' => 'Vider le cache',
'clear_clipboard' => 'Vider le presse-papier', 'clear_clipboard' => 'Vider le presse-papier',
'clear_password' => 'Sans mot de passe', 'clear_password' => 'Sans mot de passe',
'click_to_expand_filter_results' => '',
'clipboard' => 'Presse-papier', 'clipboard' => 'Presse-papier',
'close' => 'Fermer', 'close' => 'Fermer',
'color' => 'Couleur', 'color' => 'Couleur',
@ -1314,6 +1316,17 @@ URL : [url]</p>',
'nl_NL' => 'Danois', 'nl_NL' => 'Danois',
'no' => 'Non', 'no' => 'Non',
'notification' => 'Notification', 'notification' => 'Notification',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => 'Non inscrit', 'not_subscribed' => 'Non inscrit',
'november' => 'Novembre', 'november' => 'Novembre',
'now' => 'Maintenant', 'now' => 'Maintenant',
@ -1889,6 +1902,7 @@ Nom : [username]
[comment]', [comment]',
'send_login_data_subject' => '[sitename] : [login] - Vos informations de connexion', 'send_login_data_subject' => '[sitename] : [login] - Vos informations de connexion',
'send_notification' => '',
'send_test_mail' => 'Envoyer un e-mail test', 'send_test_mail' => 'Envoyer un e-mail test',
'september' => 'Septembre', 'september' => 'Septembre',
'sequence' => 'Position dans le dossier', 'sequence' => 'Position dans le dossier',

View File

@ -295,6 +295,7 @@ Internet poveznica: [url]',
'checkout_is_disabled' => 'Odjava dokumenata je onemogućena u konfiguraciji.', 'checkout_is_disabled' => 'Odjava dokumenata je onemogućena u konfiguraciji.',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => 'Molim odaberite definiciju atributa', 'choose_attrdef' => 'Molim odaberite definiciju atributa',
@ -316,6 +317,7 @@ Internet poveznica: [url]',
'clear_cache' => 'Obriši keš', 'clear_cache' => 'Obriši keš',
'clear_clipboard' => 'Očistite međuspremnik', 'clear_clipboard' => 'Očistite međuspremnik',
'clear_password' => '', 'clear_password' => '',
'click_to_expand_filter_results' => '',
'clipboard' => 'Međuspremnik', 'clipboard' => 'Međuspremnik',
'close' => 'Zatvori', 'close' => 'Zatvori',
'color' => '', 'color' => '',
@ -1104,6 +1106,17 @@ Internet poveznica: [url]',
'nl_NL' => 'Nizozemski', 'nl_NL' => 'Nizozemski',
'no' => 'Ne', 'no' => 'Ne',
'notification' => '', 'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '', 'not_subscribed' => '',
'november' => 'Studeni', 'november' => 'Studeni',
'now' => 'sada', 'now' => 'sada',
@ -1515,6 +1528,7 @@ Internet poveznica: [url]',
'send_login_data' => '', 'send_login_data' => '',
'send_login_data_body' => '', 'send_login_data_body' => '',
'send_login_data_subject' => '', 'send_login_data_subject' => '',
'send_notification' => '',
'send_test_mail' => '', 'send_test_mail' => '',
'september' => 'Rujan', 'september' => 'Rujan',
'sequence' => 'Redoslijed', 'sequence' => 'Redoslijed',

View File

@ -290,6 +290,7 @@ URL: [url]',
'checkout_is_disabled' => '', 'checkout_is_disabled' => '',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => 'Kérem válasszon jellemző meghatározást', 'choose_attrdef' => 'Kérem válasszon jellemző meghatározást',
@ -311,6 +312,7 @@ URL: [url]',
'clear_cache' => 'Gyorsítótár törlése', 'clear_cache' => 'Gyorsítótár törlése',
'clear_clipboard' => 'Vágólap törlése', 'clear_clipboard' => 'Vágólap törlése',
'clear_password' => 'jelszó törlése', 'clear_password' => 'jelszó törlése',
'click_to_expand_filter_results' => '',
'clipboard' => 'Vágólap', 'clipboard' => 'Vágólap',
'close' => 'Bezár', 'close' => 'Bezár',
'color' => '', 'color' => '',
@ -1099,6 +1101,17 @@ URL: [url]',
'nl_NL' => 'Holland', 'nl_NL' => 'Holland',
'no' => 'Nem', 'no' => 'Nem',
'notification' => '', 'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '', 'not_subscribed' => '',
'november' => 'November', 'november' => 'November',
'now' => 'most', 'now' => 'most',
@ -1492,6 +1505,7 @@ URL: [url]',
'send_login_data' => '', 'send_login_data' => '',
'send_login_data_body' => '', 'send_login_data_body' => '',
'send_login_data_subject' => '', 'send_login_data_subject' => '',
'send_notification' => '',
'send_test_mail' => 'Teszt e-mail küldése', 'send_test_mail' => 'Teszt e-mail küldése',
'september' => 'September', 'september' => 'September',
'sequence' => 'Sorrend', 'sequence' => 'Sorrend',

View File

@ -299,6 +299,7 @@ URL: [url]</p>',
'checkout_is_disabled' => 'Check out dokumen dinonaktifkan dalam konfigurasi', 'checkout_is_disabled' => 'Check out dokumen dinonaktifkan dalam konfigurasi',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => 'Harap memilih definisi label', 'choose_attrdef' => 'Harap memilih definisi label',
@ -320,6 +321,7 @@ URL: [url]</p>',
'clear_cache' => 'Hapus cache', 'clear_cache' => 'Hapus cache',
'clear_clipboard' => 'Hapus Papan klip', 'clear_clipboard' => 'Hapus Papan klip',
'clear_password' => 'Hapus kata sandi', 'clear_password' => 'Hapus kata sandi',
'click_to_expand_filter_results' => '',
'clipboard' => 'Papan klip', 'clipboard' => 'Papan klip',
'close' => 'Tutup', 'close' => 'Tutup',
'color' => 'Warna', 'color' => 'Warna',
@ -1192,6 +1194,17 @@ URL: [url]',
'nl_NL' => 'Belanda', 'nl_NL' => 'Belanda',
'no' => 'Tidak', 'no' => 'Tidak',
'notification' => 'Notifikasi', 'notification' => 'Notifikasi',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => 'Tidak berlangganan', 'not_subscribed' => 'Tidak berlangganan',
'november' => 'November', 'november' => 'November',
'now' => 'sekarang', 'now' => 'sekarang',
@ -1582,6 +1595,7 @@ Nama: [username]
Jika Anda tidak menerima kata sandi, silakan gunakan fitur lupa kata sandi di halaman login untuk mengatur kata sandi baru.', Jika Anda tidak menerima kata sandi, silakan gunakan fitur lupa kata sandi di halaman login untuk mengatur kata sandi baru.',
'send_login_data_subject' => '[sitename]: [login] - Data login anda', 'send_login_data_subject' => '[sitename]: [login] - Data login anda',
'send_notification' => '',
'send_test_mail' => 'Kirim surel percobaan', 'send_test_mail' => 'Kirim surel percobaan',
'september' => 'September', 'september' => 'September',
'sequence' => 'Urutan', 'sequence' => 'Urutan',

View File

@ -295,6 +295,7 @@ URL: [url]',
'checkout_is_disabled' => 'Approvazione dei documenti disabilitata', 'checkout_is_disabled' => 'Approvazione dei documenti disabilitata',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => 'Seleziona l\'Attributo', 'choose_attrdef' => 'Seleziona l\'Attributo',
@ -316,6 +317,7 @@ URL: [url]',
'clear_cache' => 'Pulisci cache', 'clear_cache' => 'Pulisci cache',
'clear_clipboard' => 'Cancella appunti', 'clear_clipboard' => 'Cancella appunti',
'clear_password' => 'Cancella la password', 'clear_password' => 'Cancella la password',
'click_to_expand_filter_results' => '',
'clipboard' => 'Appunti', 'clipboard' => 'Appunti',
'close' => 'Chiudi', 'close' => 'Chiudi',
'color' => '', 'color' => '',
@ -1106,6 +1108,17 @@ URL: [url]',
'nl_NL' => 'Olandese', 'nl_NL' => 'Olandese',
'no' => 'No', 'no' => 'No',
'notification' => 'Notifica', 'notification' => 'Notifica',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '', 'not_subscribed' => '',
'november' => 'Novembre', 'november' => 'Novembre',
'now' => 'Adesso', 'now' => 'Adesso',
@ -1538,6 +1551,7 @@ Name: [username]
[comment]', [comment]',
'send_login_data_subject' => '[sitename]: [login] - I tuoi dati di login', 'send_login_data_subject' => '[sitename]: [login] - I tuoi dati di login',
'send_notification' => '',
'send_test_mail' => 'Invia messagio di prova', 'send_test_mail' => 'Invia messagio di prova',
'september' => 'Settembre', 'september' => 'Settembre',
'sequence' => 'Posizione', 'sequence' => 'Posizione',

View File

@ -297,6 +297,7 @@ URL: [url]',
'checkout_is_disabled' => '체크아웃된 문서는 설정에서 비활성화됩니다.', 'checkout_is_disabled' => '체크아웃된 문서는 설정에서 비활성화됩니다.',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => '속성의 정의를 선택하세요', 'choose_attrdef' => '속성의 정의를 선택하세요',
@ -318,6 +319,7 @@ URL: [url]',
'clear_cache' => '캐시 비우기', 'clear_cache' => '캐시 비우기',
'clear_clipboard' => '클립 보드 제거', 'clear_clipboard' => '클립 보드 제거',
'clear_password' => '암호 비우기', 'clear_password' => '암호 비우기',
'click_to_expand_filter_results' => '',
'clipboard' => '클립보드', 'clipboard' => '클립보드',
'close' => '닫기', 'close' => '닫기',
'color' => '', 'color' => '',
@ -1106,6 +1108,17 @@ URL [url]',
'nl_NL' => '네덜란드', 'nl_NL' => '네덜란드',
'no' => '아니오', 'no' => '아니오',
'notification' => '', 'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '', 'not_subscribed' => '',
'november' => '11월', 'november' => '11월',
'now' => '지금', 'now' => '지금',
@ -1509,6 +1522,7 @@ URL : [url]',
'send_login_data' => '', 'send_login_data' => '',
'send_login_data_body' => '', 'send_login_data_body' => '',
'send_login_data_subject' => '', 'send_login_data_subject' => '',
'send_notification' => '',
'send_test_mail' => '테스트 메일', 'send_test_mail' => '테스트 메일',
'september' => '9월', 'september' => '9월',
'sequence' => '순서', 'sequence' => '순서',

View File

@ -293,6 +293,7 @@ URL: [url]',
'checkout_is_disabled' => 'ໃນການກຳນົດຄ່າເຊັກເອົາເອກະສານໄດ້ຖືກປິດໄຊ້ງານ', 'checkout_is_disabled' => 'ໃນການກຳນົດຄ່າເຊັກເອົາເອກະສານໄດ້ຖືກປິດໄຊ້ງານ',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => 'ກະລຸນາເລືອກນິຍາມແອັດທິບິວ', 'choose_attrdef' => 'ກະລຸນາເລືອກນິຍາມແອັດທິບິວ',
@ -314,6 +315,7 @@ URL: [url]',
'clear_cache' => 'ລ້າງແຄຣ', 'clear_cache' => 'ລ້າງແຄຣ',
'clear_clipboard' => 'ລ້າງຄິບບອສ', 'clear_clipboard' => 'ລ້າງຄິບບອສ',
'clear_password' => 'ລ້າງລະຫັດ', 'clear_password' => 'ລ້າງລະຫັດ',
'click_to_expand_filter_results' => '',
'clipboard' => 'ຄິບບອດ', 'clipboard' => 'ຄິບບອດ',
'close' => 'ປຶດ', 'close' => 'ປຶດ',
'color' => '', 'color' => '',
@ -1103,6 +1105,17 @@ URL: [url]',
'nl_NL' => 'ດັສ', 'nl_NL' => 'ດັສ',
'no' => 'ບໍ່', 'no' => 'ບໍ່',
'notification' => '', 'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '', 'not_subscribed' => '',
'november' => 'ເດືອນພະຈິກ', 'november' => 'ເດືອນພະຈິກ',
'now' => 'ຕອນນີ້', 'now' => 'ຕອນນີ້',
@ -1535,6 +1548,7 @@ URL: [url]',
[comment]', [comment]',
'send_login_data_subject' => '[sitename]:[login] - ຂໍ້ມູນການເຂົ້າສູ້ລະບົບຂອງເຈົ້າ', 'send_login_data_subject' => '[sitename]:[login] - ຂໍ້ມູນການເຂົ້າສູ້ລະບົບຂອງເຈົ້າ',
'send_notification' => '',
'send_test_mail' => 'ສົ່ງອີເມວທົດສອບ', 'send_test_mail' => 'ສົ່ງອີເມວທົດສອບ',
'september' => 'ເດືອນກັນຍາ', 'september' => 'ເດືອນກັນຍາ',
'sequence' => 'ລຳດັບ', 'sequence' => 'ລຳດັບ',

View File

@ -295,6 +295,7 @@ URL: [url]',
'checkout_is_disabled' => 'Sjekk ut av dokumentene er deaktivert i konfigurasjonen.', 'checkout_is_disabled' => 'Sjekk ut av dokumentene er deaktivert i konfigurasjonen.',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => 'Velg egenskaps definition', 'choose_attrdef' => 'Velg egenskaps definition',
@ -316,6 +317,7 @@ URL: [url]',
'clear_cache' => 'Tøm cache', 'clear_cache' => 'Tøm cache',
'clear_clipboard' => 'Tøm utklippstavle', 'clear_clipboard' => 'Tøm utklippstavle',
'clear_password' => 'Slett passord', 'clear_password' => 'Slett passord',
'click_to_expand_filter_results' => '',
'clipboard' => 'Utklippstavle', 'clipboard' => 'Utklippstavle',
'close' => 'Lukk', 'close' => 'Lukk',
'color' => '', 'color' => '',
@ -1124,6 +1126,17 @@ URL: [url]',
'nl_NL' => 'Nederland', 'nl_NL' => 'Nederland',
'no' => 'Nei', 'no' => 'Nei',
'notification' => 'Melding', 'notification' => 'Melding',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '', 'not_subscribed' => '',
'november' => 'November', 'november' => 'November',
'now' => 'nå', 'now' => 'nå',
@ -1548,6 +1561,7 @@ Loginn: [login]
Bruker: [username] Bruker: [username]
[comment]', [comment]',
'send_login_data_subject' => '[sitename]: [login] - Dine innloggingsdata', 'send_login_data_subject' => '[sitename]: [login] - Dine innloggingsdata',
'send_notification' => '',
'send_test_mail' => 'Send test mail', 'send_test_mail' => 'Send test mail',
'september' => 'September', 'september' => 'September',
'sequence' => 'Sekvens', 'sequence' => 'Sekvens',

View File

@ -288,6 +288,7 @@ URL: [url]',
'checkout_is_disabled' => 'Checkout is niet mogelijk', 'checkout_is_disabled' => 'Checkout is niet mogelijk',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => 'Kies een attribuutdefinitie', 'choose_attrdef' => 'Kies een attribuutdefinitie',
@ -309,6 +310,7 @@ URL: [url]',
'clear_cache' => 'Cache leegmaken', 'clear_cache' => 'Cache leegmaken',
'clear_clipboard' => 'Vrijgeven klembord', 'clear_clipboard' => 'Vrijgeven klembord',
'clear_password' => 'Verwijder het wachtwoord', 'clear_password' => 'Verwijder het wachtwoord',
'click_to_expand_filter_results' => '',
'clipboard' => 'Klembord', 'clipboard' => 'Klembord',
'close' => 'Sluiten', 'close' => 'Sluiten',
'color' => '', 'color' => '',
@ -1116,6 +1118,17 @@ URL: [url]',
'nl_NL' => 'Nederlands', 'nl_NL' => 'Nederlands',
'no' => 'Nee', 'no' => 'Nee',
'notification' => 'Bericht', 'notification' => 'Bericht',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '', 'not_subscribed' => '',
'november' => 'november', 'november' => 'november',
'now' => 'nu', 'now' => 'nu',
@ -1547,6 +1560,7 @@ Name: [username]
[comment]', [comment]',
'send_login_data_subject' => 'Onderwerp', 'send_login_data_subject' => 'Onderwerp',
'send_notification' => '',
'send_test_mail' => 'Testmail versturen', 'send_test_mail' => 'Testmail versturen',
'september' => 'september', 'september' => 'september',
'sequence' => 'Volgorde', 'sequence' => 'Volgorde',

View File

@ -283,6 +283,7 @@ URL: [url]',
'checkout_is_disabled' => 'Wyewidencjonowywanie dokumentów jest wyłączone w konfiguracji.', 'checkout_is_disabled' => 'Wyewidencjonowywanie dokumentów jest wyłączone w konfiguracji.',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => 'Proszę wybrać definicję atrybutu', 'choose_attrdef' => 'Proszę wybrać definicję atrybutu',
@ -304,6 +305,7 @@ URL: [url]',
'clear_cache' => 'Wyczyść cache', 'clear_cache' => 'Wyczyść cache',
'clear_clipboard' => 'Oczyść schowek', 'clear_clipboard' => 'Oczyść schowek',
'clear_password' => 'Wyczyść hasło', 'clear_password' => 'Wyczyść hasło',
'click_to_expand_filter_results' => '',
'clipboard' => 'Schowek', 'clipboard' => 'Schowek',
'close' => 'Zamknij', 'close' => 'Zamknij',
'color' => 'Kolor', 'color' => 'Kolor',
@ -1093,6 +1095,17 @@ URL: [url]',
'nl_NL' => 'holenderski', 'nl_NL' => 'holenderski',
'no' => 'Nie', 'no' => 'Nie',
'notification' => 'Powiadomienie', 'notification' => 'Powiadomienie',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '', 'not_subscribed' => '',
'november' => 'Listopad', 'november' => 'Listopad',
'now' => 'teraz', 'now' => 'teraz',
@ -1478,6 +1491,7 @@ Name: [username]
[comment]', [comment]',
'send_login_data_subject' => '[sitename]: [login] - Twoje dane logowania', 'send_login_data_subject' => '[sitename]: [login] - Twoje dane logowania',
'send_notification' => '',
'send_test_mail' => 'Wyślij wiadomość testową', 'send_test_mail' => 'Wyślij wiadomość testową',
'september' => 'Wrzesień', 'september' => 'Wrzesień',
'sequence' => 'Kolejność', 'sequence' => 'Kolejność',

View File

@ -295,6 +295,7 @@ URL: [url]',
'checkout_is_disabled' => 'A retirada de documentos está desativada na configuração.', 'checkout_is_disabled' => 'A retirada de documentos está desativada na configuração.',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => 'Por favor escolha a definição de atributo', 'choose_attrdef' => 'Por favor escolha a definição de atributo',
@ -316,6 +317,7 @@ URL: [url]',
'clear_cache' => 'Limpar o Cache', 'clear_cache' => 'Limpar o Cache',
'clear_clipboard' => 'Limpar área de transferência', 'clear_clipboard' => 'Limpar área de transferência',
'clear_password' => 'Limpar senha', 'clear_password' => 'Limpar senha',
'click_to_expand_filter_results' => '',
'clipboard' => 'Área de transferência', 'clipboard' => 'Área de transferência',
'close' => 'Fechar', 'close' => 'Fechar',
'color' => '', 'color' => '',
@ -1123,6 +1125,17 @@ URL: [url]',
'nl_NL' => 'Holandês', 'nl_NL' => 'Holandês',
'no' => 'Não', 'no' => 'Não',
'notification' => 'Notificação', 'notification' => 'Notificação',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '', 'not_subscribed' => '',
'november' => 'Novembro', 'november' => 'Novembro',
'now' => 'agora', 'now' => 'agora',
@ -1554,6 +1567,7 @@ Nome: [username]
[comment]', [comment]',
'send_login_data_subject' => '[sitename]: [login] - Suas informações para login', 'send_login_data_subject' => '[sitename]: [login] - Suas informações para login',
'send_notification' => '',
'send_test_mail' => 'Enviar email de teste', 'send_test_mail' => 'Enviar email de teste',
'september' => 'Setembro', 'september' => 'Setembro',
'sequence' => 'Sequência', 'sequence' => 'Sequência',

View File

@ -295,6 +295,7 @@ URL: [url]',
'checkout_is_disabled' => 'Verificarea documentelor este dezactivata in configurari.', 'checkout_is_disabled' => 'Verificarea documentelor este dezactivata in configurari.',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => 'Vă rugăm să alegeți definiția atributului', 'choose_attrdef' => 'Vă rugăm să alegeți definiția atributului',
@ -316,6 +317,7 @@ URL: [url]',
'clear_cache' => 'Sterge cache', 'clear_cache' => 'Sterge cache',
'clear_clipboard' => 'Goleste clipboard', 'clear_clipboard' => 'Goleste clipboard',
'clear_password' => '', 'clear_password' => '',
'click_to_expand_filter_results' => '',
'clipboard' => 'Clipboard', 'clipboard' => 'Clipboard',
'close' => 'Inchide', 'close' => 'Inchide',
'color' => '', 'color' => '',
@ -1105,6 +1107,17 @@ URL: [url]',
'nl_NL' => 'Olandeză', 'nl_NL' => 'Olandeză',
'no' => 'Nu', 'no' => 'Nu',
'notification' => '', 'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '', 'not_subscribed' => '',
'november' => 'Noiembrie', 'november' => 'Noiembrie',
'now' => 'nou', 'now' => 'nou',
@ -1516,6 +1529,7 @@ URL: [url]',
'send_login_data' => '', 'send_login_data' => '',
'send_login_data_body' => '', 'send_login_data_body' => '',
'send_login_data_subject' => '', 'send_login_data_subject' => '',
'send_notification' => '',
'send_test_mail' => 'Trimite e-mail de test', 'send_test_mail' => 'Trimite e-mail de test',
'september' => 'Septembrie', 'september' => 'Septembrie',
'sequence' => 'Poziție', 'sequence' => 'Poziție',

View File

@ -295,6 +295,7 @@ URL: [url]',
'checkout_is_disabled' => 'Загрузка отключена.', 'checkout_is_disabled' => 'Загрузка отключена.',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => 'Выберите атрибут', 'choose_attrdef' => 'Выберите атрибут',
@ -316,6 +317,7 @@ URL: [url]',
'clear_cache' => 'Очистить кэш', 'clear_cache' => 'Очистить кэш',
'clear_clipboard' => 'Очистить буфер обмена', 'clear_clipboard' => 'Очистить буфер обмена',
'clear_password' => 'Сбросить пароль', 'clear_password' => 'Сбросить пароль',
'click_to_expand_filter_results' => '',
'clipboard' => 'Буфер обмена', 'clipboard' => 'Буфер обмена',
'close' => 'Закрыть', 'close' => 'Закрыть',
'color' => '', 'color' => '',
@ -1104,6 +1106,17 @@ URL: [url]',
'nl_NL' => 'Dutch', 'nl_NL' => 'Dutch',
'no' => 'Нет', 'no' => 'Нет',
'notification' => 'Уведомление', 'notification' => 'Уведомление',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '', 'not_subscribed' => '',
'november' => 'Ноябрь', 'november' => 'Ноябрь',
'now' => 'сейчас', 'now' => 'сейчас',
@ -1523,6 +1536,7 @@ URL: [url]',
'send_login_data' => '', 'send_login_data' => '',
'send_login_data_body' => '', 'send_login_data_body' => '',
'send_login_data_subject' => '', 'send_login_data_subject' => '',
'send_notification' => '',
'send_test_mail' => 'Отправить тестовое сообщение', 'send_test_mail' => 'Отправить тестовое сообщение',
'september' => 'Сентябрь', 'september' => 'Сентябрь',
'sequence' => 'Позиция', 'sequence' => 'Позиция',

View File

@ -295,6 +295,7 @@ URL: [url]',
'checkout_is_disabled' => 'Kontrola dokumentov je zakázaná v konfigurácii.', 'checkout_is_disabled' => 'Kontrola dokumentov je zakázaná v konfigurácii.',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => 'Vyberte prosím definíciu atribútu', 'choose_attrdef' => 'Vyberte prosím definíciu atribútu',
@ -316,6 +317,7 @@ URL: [url]',
'clear_cache' => 'Vyčistiť pamäť cache', 'clear_cache' => 'Vyčistiť pamäť cache',
'clear_clipboard' => 'Vymazať schránku', 'clear_clipboard' => 'Vymazať schránku',
'clear_password' => 'Vymazať heslo', 'clear_password' => 'Vymazať heslo',
'click_to_expand_filter_results' => '',
'clipboard' => 'Schránka', 'clipboard' => 'Schránka',
'close' => 'Zavrieť', 'close' => 'Zavrieť',
'color' => '', 'color' => '',
@ -1124,6 +1126,17 @@ URL: [url]',
'nl_NL' => 'Holandština', 'nl_NL' => 'Holandština',
'no' => 'Nie', 'no' => 'Nie',
'notification' => '', 'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '', 'not_subscribed' => '',
'november' => 'November', 'november' => 'November',
'now' => 'teraz', 'now' => 'teraz',
@ -1556,6 +1569,7 @@ Meno: [username]
[comment]', [comment]',
'send_login_data_subject' => '[sitename]: [login] - Vaše prihlasovacie údaje', 'send_login_data_subject' => '[sitename]: [login] - Vaše prihlasovacie údaje',
'send_notification' => '',
'send_test_mail' => 'Poslať testovací E-mail', 'send_test_mail' => 'Poslať testovací E-mail',
'september' => 'September', 'september' => 'September',
'sequence' => 'Postupnosť', 'sequence' => 'Postupnosť',

View File

@ -296,6 +296,7 @@ URL: [url]',
'checkout_is_disabled' => 'Utcheckning av dokument är invaktiverad i systemets inställningar.', 'checkout_is_disabled' => 'Utcheckning av dokument är invaktiverad i systemets inställningar.',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => 'Välj attributdefinition', 'choose_attrdef' => 'Välj attributdefinition',
@ -317,6 +318,7 @@ URL: [url]',
'clear_cache' => 'Rensa cache', 'clear_cache' => 'Rensa cache',
'clear_clipboard' => 'Rensa urklipp', 'clear_clipboard' => 'Rensa urklipp',
'clear_password' => 'Ta bort lösenord', 'clear_password' => 'Ta bort lösenord',
'click_to_expand_filter_results' => '',
'clipboard' => 'Urklipp', 'clipboard' => 'Urklipp',
'close' => 'Stäng', 'close' => 'Stäng',
'color' => '', 'color' => '',
@ -1111,6 +1113,17 @@ URL: [url]',
'nl_NL' => 'Holländska', 'nl_NL' => 'Holländska',
'no' => 'Nej', 'no' => 'Nej',
'notification' => '', 'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '', 'not_subscribed' => '',
'november' => 'November', 'november' => 'November',
'now' => 'nu', 'now' => 'nu',
@ -1529,6 +1542,7 @@ Namn: [username]
Kommentar: [comment]', Kommentar: [comment]',
'send_login_data_subject' => '[sitename]: [login] - Dina inloggningsuppgifter', 'send_login_data_subject' => '[sitename]: [login] - Dina inloggningsuppgifter',
'send_notification' => '',
'send_test_mail' => 'Skicka testmail', 'send_test_mail' => 'Skicka testmail',
'september' => 'September', 'september' => 'September',
'sequence' => 'Position', 'sequence' => 'Position',

View File

@ -290,6 +290,7 @@ URL: [url]',
'checkout_is_disabled' => '', 'checkout_is_disabled' => '',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => 'Lütfen nitelik tanımını seçiniz', 'choose_attrdef' => 'Lütfen nitelik tanımını seçiniz',
@ -311,6 +312,7 @@ URL: [url]',
'clear_cache' => 'Ön belleği temizle', 'clear_cache' => 'Ön belleği temizle',
'clear_clipboard' => 'Panoyu temizle', 'clear_clipboard' => 'Panoyu temizle',
'clear_password' => '', 'clear_password' => '',
'click_to_expand_filter_results' => '',
'clipboard' => 'Pano', 'clipboard' => 'Pano',
'close' => 'Kapat', 'close' => 'Kapat',
'color' => '', 'color' => '',
@ -1097,6 +1099,17 @@ URL: [url]',
'nl_NL' => 'Hollandaca', 'nl_NL' => 'Hollandaca',
'no' => 'Hayır', 'no' => 'Hayır',
'notification' => 'Notlar', 'notification' => 'Notlar',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '', 'not_subscribed' => '',
'november' => 'Kasım', 'november' => 'Kasım',
'now' => 'şimdi', 'now' => 'şimdi',
@ -1493,6 +1506,7 @@ URL: [url]',
'send_login_data' => '', 'send_login_data' => '',
'send_login_data_body' => '', 'send_login_data_body' => '',
'send_login_data_subject' => '', 'send_login_data_subject' => '',
'send_notification' => '',
'send_test_mail' => 'Test maili gönder', 'send_test_mail' => 'Test maili gönder',
'september' => 'Eylül', 'september' => 'Eylül',
'sequence' => 'Sıralama', 'sequence' => 'Sıralama',

View File

@ -295,6 +295,7 @@ URL: [url]',
'checkout_is_disabled' => 'Завантаження відключене', 'checkout_is_disabled' => 'Завантаження відключене',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => 'Оберіть атрибут', 'choose_attrdef' => 'Оберіть атрибут',
@ -316,6 +317,7 @@ URL: [url]',
'clear_cache' => 'Очистити кеш', 'clear_cache' => 'Очистити кеш',
'clear_clipboard' => 'Очистити буфер обміну', 'clear_clipboard' => 'Очистити буфер обміну',
'clear_password' => '', 'clear_password' => '',
'click_to_expand_filter_results' => '',
'clipboard' => 'Буфер обміну', 'clipboard' => 'Буфер обміну',
'close' => 'Закрити', 'close' => 'Закрити',
'color' => '', 'color' => '',
@ -1103,6 +1105,17 @@ URL: [url]',
'nl_NL' => 'Dutch', 'nl_NL' => 'Dutch',
'no' => 'Ні', 'no' => 'Ні',
'notification' => '', 'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '', 'not_subscribed' => '',
'november' => 'Листопад', 'november' => 'Листопад',
'now' => 'зараз', 'now' => 'зараз',
@ -1515,6 +1528,7 @@ URL: [url]',
'send_login_data' => '', 'send_login_data' => '',
'send_login_data_body' => '', 'send_login_data_body' => '',
'send_login_data_subject' => '', 'send_login_data_subject' => '',
'send_notification' => '',
'send_test_mail' => 'Надіслати тестове повідомлення', 'send_test_mail' => 'Надіслати тестове повідомлення',
'september' => 'Вересень', 'september' => 'Вересень',
'sequence' => 'Позиція', 'sequence' => 'Позиція',

View File

@ -287,6 +287,7 @@ URL: [url]',
'checkout_is_disabled' => '不允许签出', 'checkout_is_disabled' => '不允许签出',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => '请选择属性', 'choose_attrdef' => '请选择属性',
@ -308,6 +309,7 @@ URL: [url]',
'clear_cache' => '清除缓存', 'clear_cache' => '清除缓存',
'clear_clipboard' => '清除粘贴板', 'clear_clipboard' => '清除粘贴板',
'clear_password' => '清除密码', 'clear_password' => '清除密码',
'click_to_expand_filter_results' => '',
'clipboard' => '剪切板', 'clipboard' => '剪切板',
'close' => '关闭', 'close' => '关闭',
'color' => '', 'color' => '',
@ -1107,6 +1109,17 @@ URL: [url]',
'nl_NL' => '荷兰语', 'nl_NL' => '荷兰语',
'no' => '否', 'no' => '否',
'notification' => '', 'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '', 'not_subscribed' => '',
'november' => '十一月', 'november' => '十一月',
'now' => '现在', 'now' => '现在',
@ -1503,6 +1516,7 @@ URL: [url]',
[comment]', [comment]',
'send_login_data_subject' => '[sitename]: [login] - 您的登录数据', 'send_login_data_subject' => '[sitename]: [login] - 您的登录数据',
'send_notification' => '',
'send_test_mail' => '发送测试邮件', 'send_test_mail' => '发送测试邮件',
'september' => '九 月', 'september' => '九 月',
'sequence' => '次序', 'sequence' => '次序',

View File

@ -295,6 +295,7 @@ $text = array(
'checkout_is_disabled' => '在配置中禁用了簽出文件功能。', 'checkout_is_disabled' => '在配置中禁用了簽出文件功能。',
'check_directory_layout' => '', 'check_directory_layout' => '',
'check_failed' => '', 'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '', 'check_passed' => '',
'check_secure_installation' => '', 'check_secure_installation' => '',
'choose_attrdef' => '請選擇屬性', 'choose_attrdef' => '請選擇屬性',
@ -316,6 +317,7 @@ $text = array(
'clear_cache' => '清除緩存', 'clear_cache' => '清除緩存',
'clear_clipboard' => '清除剪貼簿', 'clear_clipboard' => '清除剪貼簿',
'clear_password' => '清除密碼', 'clear_password' => '清除密碼',
'click_to_expand_filter_results' => '',
'clipboard' => '剪貼簿', 'clipboard' => '剪貼簿',
'close' => '關閉', 'close' => '關閉',
'color' => '', 'color' => '',
@ -1124,6 +1126,17 @@ URL: [url]',
'nl_NL' => '荷蘭語', 'nl_NL' => '荷蘭語',
'no' => '否', 'no' => '否',
'notification' => '通知', 'notification' => '通知',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '', 'not_subscribed' => '',
'november' => '十一月', 'november' => '十一月',
'now' => '現在', 'now' => '現在',
@ -1554,6 +1567,7 @@ URL: [url]',
[comment]', [comment]',
'send_login_data_subject' => '[sitename]: [login] - 您的登入資料', 'send_login_data_subject' => '[sitename]: [login] - 您的登入資料',
'send_notification' => '',
'send_test_mail' => '寄送測試信件', 'send_test_mail' => '寄送測試信件',
'september' => '九 月', 'september' => '九 月',
'sequence' => '次序', 'sequence' => '次序',

View File

@ -667,7 +667,7 @@ switch($command) {
if($content) { if($content) {
$document = $content->getDocument(); $document = $content->getDocument();
if ($document->getAccessMode($user) >= M_READWRITE) { if ($document->getAccessMode($user) >= M_READWRITE) {
$realmimetype = SeedDMS_Core_File::mimetype($dms->contentDir . $content->getPath()); $realmimetype = $content->getRealMimeType();
if (!$content->setMimeType($realmimetype)) { if (!$content->setMimeType($realmimetype)) {
header('Content-Type: application/json'); header('Content-Type: application/json');
echo json_encode(array('success'=>false, 'message'=>'Error setting mimetype', 'data'=>'')); echo json_encode(array('success'=>false, 'message'=>'Error setting mimetype', 'data'=>''));

View File

@ -61,7 +61,7 @@ function getAttributeData($attrdef, $coldata, $objdata) { /* {{{ */
function getCategoryData($colname, $coldata, $objdata) { /* {{{ */ function getCategoryData($colname, $coldata, $objdata) { /* {{{ */
global $catids; global $catids;
$kk = explode(',', $coldata); $kk = explode(',', $coldata);
$objdata['category'][] = array(); $objdata['category'] = array();
foreach($kk as $k) { foreach($kk as $k) {
if(isset($catids[$k])) if(isset($catids[$k]))
$objdata['category'][] = $catids[$k]; $objdata['category'][] = $catids[$k];
@ -90,7 +90,7 @@ if(!empty($_GET["dropfolderfileform2"])) {
$colmap[$i] = array("getCategoryData", $colname); $colmap[$i] = array("getCategoryData", $colname);
} elseif(in_array($colname, array('owner'))) { } elseif(in_array($colname, array('owner'))) {
$colmap[$i] = array("getUserData", $colname); $colmap[$i] = array("getUserData", $colname);
} elseif(in_array($colname, array('filename', 'category', 'name', 'comment'))) { } elseif(in_array($colname, array('filename', 'keywords', 'name', 'comment'))) {
$colmap[$i] = array("getBaseData", $colname); $colmap[$i] = array("getBaseData", $colname);
} elseif(substr($colname, 0, 5) == 'attr:') { } elseif(substr($colname, 0, 5) == 'attr:') {
$kk = explode(':', $colname, 2); $kk = explode(':', $colname, 2);
@ -100,7 +100,7 @@ if(!empty($_GET["dropfolderfileform2"])) {
} }
} }
} }
// echo "<pre>";print_r($colmap);echo "</pre>"; // echo "<pre>";var_dump($colmap);echo "</pre>";exit;
if(count($colmap) > 1) { if(count($colmap) > 1) {
$nameprefix = dirname($dirname).'/'; $nameprefix = dirname($dirname).'/';
$allcats = $dms->getDocumentCategories(); $allcats = $dms->getDocumentCategories();
@ -113,8 +113,6 @@ if(!empty($_GET["dropfolderfileform2"])) {
$userids[$muser->getLogin()] = $muser; $userids[$muser->getLogin()] = $muser;
while(!feof($fp)) { while(!feof($fp)) {
if($data = fgetcsv($fp, 0, $csvdelim, $csvencl)) { if($data = fgetcsv($fp, 0, $csvdelim, $csvencl)) {
$mi = $nameprefix.$data[$colmap['filename']];
// $metadata[$mi] = array('category'=>array());
$md = array(); $md = array();
$md['attributes'] = array(); $md['attributes'] = array();
foreach($data as $i=>$coldata) { foreach($data as $i=>$coldata) {
@ -130,7 +128,6 @@ if(!empty($_GET["dropfolderfileform2"])) {
} }
} }
//echo "<pre>";print_r($metadata);echo "</pre>"; //echo "<pre>";print_r($metadata);echo "</pre>";
//exit;
$setfiledate = false; $setfiledate = false;
if(isset($_GET['setfiledate']) && $_GET["setfiledate"]) { if(isset($_GET['setfiledate']) && $_GET["setfiledate"]) {
@ -143,7 +140,7 @@ if(isset($_GET['setfolderdate']) && $_GET["setfolderdate"]) {
} }
function import_folder($dirname, $folder, $setfiledate, $setfolderdate, $metadata) { /* {{{ */ function import_folder($dirname, $folder, $setfiledate, $setfolderdate, $metadata) { /* {{{ */
global $user, $doccount, $foldercount; global $user, $doccount, $foldercount, $logger;
$d = dir($dirname); $d = dir($dirname);
$sequence = 1; $sequence = 1;
@ -172,7 +169,9 @@ function import_folder($dirname, $folder, $setfiledate, $setfolderdate, $metadat
$comment = !empty($metadata[$path]['comment']) ? $metadata[$path]['comment'] : ''; $comment = !empty($metadata[$path]['comment']) ? $metadata[$path]['comment'] : '';
$owner = !empty($metadata[$path]['owner']) ? $metadata[$path]['owner'] : $user; $owner = !empty($metadata[$path]['owner']) ? $metadata[$path]['owner'] : $user;
echo $mimetype." - ".$filetype." - ".$path."<br />\n"; // echo $mimetype." - ".$filetype." - ".$path."<br />\n";
if($logger)
$logger->log('ImportFS: importing \''.$path.'\' '.(!empty($metadata[$path]['attributes']) ? 'with' : 'without').' metadata', PEAR_LOG_INFO);
if($res = $folder->addDocument($docname, $comment, $expires, $owner, $keywords, if($res = $folder->addDocument($docname, $comment, $expires, $owner, $keywords,
!empty($metadata[$path]['category']) ? $metadata[$path]['category'] : array(), $filetmp, $name, !empty($metadata[$path]['category']) ? $metadata[$path]['category'] : array(), $filetmp, $name,
$filetype, $mimetype, $sequence, $reviewers, $filetype, $mimetype, $sequence, $reviewers,
@ -185,10 +184,11 @@ function import_folder($dirname, $folder, $setfiledate, $setfolderdate, $metadat
$lc = $newdoc->getLatestContent(); $lc = $newdoc->getLatestContent();
$lc->setDate(filemtime($path)); $lc->setDate(filemtime($path));
} }
if($logger)
$logger->log('ImportFS: imported \''.$path.'\' as document '.$res[0]->getId(), PEAR_LOG_INFO);
} else { } else {
echo "Error importing ".$path."<br />"; if($logger)
echo "<pre>".print_r($res, true)."</pre>"; $logger->log('ImportFS: importing \''.$path.'\' failed.', PEAR_LOG_ERR);
// return false;
} }
set_time_limit(30); set_time_limit(30);
} elseif(is_dir($path)) { } elseif(is_dir($path)) {
@ -198,10 +198,13 @@ function import_folder($dirname, $folder, $setfiledate, $setfolderdate, $metadat
if($setfolderdate) { if($setfolderdate) {
$newfolder->setDate(filemtime($path)); $newfolder->setDate(filemtime($path));
} }
if($logger)
$logger->log('ImportFS: creating folder \''.$path.'\' as folder '.$newfolder->getId(), PEAR_LOG_INFO);
if(!import_folder($path, $newfolder, $setfiledate, $setfolderdate, $metadata)) if(!import_folder($path, $newfolder, $setfiledate, $setfolderdate, $metadata))
return false; return false;
} else { } else {
// return false; if($logger)
$logger->log('ImportFS: creating folder \''.$path.'\' failed.', PEAR_LOG_ERR);
} }
} }
$sequence++; $sequence++;
@ -211,10 +214,27 @@ function import_folder($dirname, $folder, $setfiledate, $setfolderdate, $metadat
} /* }}} */ } /* }}} */
$foldercount = $doccount = 0; $foldercount = $doccount = 0;
if(!empty($_GET['createfolder'])) {
if($newfolder = $folder->addSubFolder($_GET["dropfolderfileform1"], '', $user, 1)) { if($newfolder = $folder->addSubFolder($_GET["dropfolderfileform1"], '', $user, 1)) {
if($setfolderdate) { if($setfolderdate) {
$newfolder->setDate(filemtime($dirname)); $newfolder->setDate(filemtime($dirname));
} }
if($logger)
$logger->log('ImportFS: creating folder \''.$_GET["dropfolderfileform1"].'\' as folder '.$newfolder->getId(), PEAR_LOG_INFO);
} else {
if($logger)
$logger->log('ImportFS: creating folder \''.$_GET["dropfolderfileform1"].'\' failed.', PEAR_LOG_ERR);
}
} else {
$newfolder = $folder;
}
if($newfolder) {
if($logger) {
$logger->log('ImportFS: importing into folder '.$newfolder->getId(), PEAR_LOG_INFO);
if($metadata)
$logger->log('ImportFS: using metadata for '.count($metadata).' files from file \''.$metadatafile.'\'', PEAR_LOG_INFO);
}
if(!import_folder($dirname, $newfolder, $setfiledate, $setfolderdate, $metadata)) if(!import_folder($dirname, $newfolder, $setfiledate, $setfolderdate, $metadata))
$session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('error_importfs'))); $session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('error_importfs')));
else { else {

View File

@ -0,0 +1,78 @@
<?php
// MyDMS. Document Management System
// Copyright (C) 2002-2005 Markus Westphal
// Copyright (C) 2006-2008 Malcolm Cowe
// Copyright (C) 2010-2016 Uwe Steinmann
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
include("../inc/inc.Settings.php");
include("../inc/inc.Utils.php");
include("../inc/inc.LogInit.php");
include("../inc/inc.Language.php");
include("../inc/inc.Init.php");
include("../inc/inc.Extension.php");
include("../inc/inc.DBInit.php");
include("../inc/inc.Authentication.php");
include("../inc/inc.ClassUI.php");
include("../inc/inc.ClassController.php");
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$controller = Controller::factory($tmp[1], array('dms'=>$dms, 'user'=>$user));
$accessop = new SeedDMS_AccessOperation($dms, null, $user, $settings);
if (!$accessop->check_controller_access($controller, $_GET)) {
header('Content-Type: application/json');
echo json_encode(array('success'=>false, 'message'=>getMLText('access_denied')));
exit;
}
/* Check if the form data comes from a trusted request */
if(!checkFormKey('sendnotification', 'GET')) {
header('Content-Type: application/json');
echo json_encode(array('success'=>false, 'message'=>getMLText('invalid_request_token')));
exit;
}
if (!isset($_GET["userid"]) || !is_numeric($_GET["userid"]) || intval($_GET["userid"])<1) {
header('Content-Type: application/json');
echo json_encode(array('success'=>false, 'message'=>getMLText('invalid_user_id')));
}
$userid = $_GET["userid"];
$newuser = $dms->getUser($userid);
if (!is_object($newuser)) {
header('Content-Type: application/json');
echo json_encode(array('success'=>false, 'message'=>getMLText('invalid_user_id')));
exit;
}
$recvtype = 1;
if (isset($_GET["recvtype"])) {
$recvtype = (int) $_GET["recvtype"];
}
$template = 'send_notification';
if (isset($_GET["template"])) {
$template = $_GET["template"];
}
if($notifier) {
header('Content-Type: application/json');
if($notifier->toIndividual($user, $newuser, $template.'_email_subject', $template.'_email_body', [], $recvtype)) {
echo json_encode(array('success'=>true, 'message'=>getMLText('splash_send_notification')));
} else {
echo json_encode(array('success'=>false, 'message'=>getMLText('error_send_notification')));
}
}

View File

@ -0,0 +1,60 @@
<?php
// MyDMS. Document Management System
// Copyright (C) 2010 Matteo Lucarelli
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
if(!isset($settings))
require_once("../inc/inc.Settings.php");
require_once("inc/inc.Utils.php");
require_once("inc/inc.LogInit.php");
require_once("inc/inc.Language.php");
require_once("inc/inc.Init.php");
require_once("inc/inc.Extension.php");
require_once("inc/inc.DBInit.php");
require_once("inc/inc.ClassUI.php");
require_once("inc/inc.Authentication.php");
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user));
$accessop = new SeedDMS_AccessOperation($dms, null, $user, $settings);
if (!$settings->_enableDebugMode) {
UI::exitError(getMLText("admin_tools"),getMLText("access_denied"));
}
if (!$accessop->check_view_access($view, $_GET)) {
UI::exitError(getMLText("admin_tools"),getMLText("access_denied"));
}
$seluser = null;
if(!empty($_GET['userid'])) {
$userid = (int) $_GET['userid'];
$seluser = $dms->getUser($userid);
} else {
$seluser = $user;
}
$allusers = $dms->getAllUsers($settings->_sortUsersInList);
if($view) {
$view->setParam('settings', $settings);
$view->setParam('accessobject', $accessop);
$view->setParam('notifier', $notifier);
$view->setParam('allusers', $allusers);
$view->setParam('seluser', $seluser);
$view($_GET);
exit;
}

View File

@ -233,7 +233,7 @@ function import_folder($dirname, $folder, $setfiledate, $setfolderdate, $metadat
$sequence = 1; $sequence = 1;
while(false !== ($entry = $d->read())) { while(false !== ($entry = $d->read())) {
$path = $dirname.'/'.$entry; $path = $dirname.'/'.$entry;
if($entry != '.' && $entry != '..' && $entry != '.svn') { if(!in_array($entry, $excludefiles)) {
if(is_file($path)) { if(is_file($path)) {
$name = utf8_basename($path); $name = utf8_basename($path);
$filetmp = $path; $filetmp = $path;

View File

@ -1086,6 +1086,8 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
$menuitems['debug']['children']['hooks'] = array('link'=>$this->params['settings']->_httpRoot."out/out.Hooks.php", 'label'=>getMLText('list_hooks')); $menuitems['debug']['children']['hooks'] = array('link'=>$this->params['settings']->_httpRoot."out/out.Hooks.php", 'label'=>getMLText('list_hooks'));
if ($accessobject->check_view_access('NotificationServices')) if ($accessobject->check_view_access('NotificationServices'))
$menuitems['debug']['children']['notification_services'] = array('link'=>$this->params['settings']->_httpRoot."out/out.NotificationServices.php", 'label'=>getMLText('list_notification_services')); $menuitems['debug']['children']['notification_services'] = array('link'=>$this->params['settings']->_httpRoot."out/out.NotificationServices.php", 'label'=>getMLText('list_notification_services'));
if ($accessobject->check_view_access('SendNotification'))
$menuitems['debug']['children']['send_notification'] = array('link'=>$this->params['settings']->_httpRoot."out/out.SendNotification.php", 'label'=>getMLText('send_notification'));
if ($accessobject->check_view_access('ConversionServices')) if ($accessobject->check_view_access('ConversionServices'))
$menuitems['debug']['children']['conversion_services'] = array('link'=>$this->params['settings']->_httpRoot."out/out.ConversionServices.php", 'label'=>getMLText('list_conversion_services')); $menuitems['debug']['children']['conversion_services'] = array('link'=>$this->params['settings']->_httpRoot."out/out.ConversionServices.php", 'label'=>getMLText('list_conversion_services'));
} }

View File

@ -90,6 +90,48 @@ if(in_array($type, array('docspermonth'))) {
} }
}); });
<?php <?php
} elseif(in_array($type, array('sizepermonth'))) {
?>
var data = [
<?php
if($data) {
foreach($data as $i=>$rec) {
$key = mktime(12, 0, 0, substr($rec['key'], 5, 2), 1, substr($rec['key'], 0, 4)) * 1000;
echo '["'.$rec['key'].'",'.$rec['total'].'],'."\n";
}
}
?>
];
$.plot("#chart", [data], {
xaxis: {
mode: "categories",
tickLength: 0,
},
series: {
bars: {
show: true,
align: "center",
barWidth: 0.8,
},
},
grid: {
hoverable: true,
clickable: true
}
});
$("#chart").bind("plothover", function (event, pos, item) {
if(item) {
var x = item.datapoint[0];//.toFixed(2),
y = item.datapoint[1];//.toFixed(2);
$("#tooltip").html(item.series.xaxis.ticks[x].label + ": " + formatFileSize(y, false, 2))
.css({top: pos.pageY-35, left: pos.pageX+5})
.fadeIn(200);
} else {
$("#tooltip").hide();
}
});
<?php
} elseif(in_array($type, array('docsaccumulated'))) { } elseif(in_array($type, array('docsaccumulated'))) {
?> ?>
var data = [ var data = [
@ -208,7 +250,7 @@ $(document).ready( function() {
$this->columnStart(3); $this->columnStart(3);
$this->contentHeading(getMLText("chart_selection")); $this->contentHeading(getMLText("chart_selection"));
$this->contentContainerStart(); $this->contentContainerStart();
foreach(array('docsperuser', 'foldersperuser', 'sizeperuser', 'docspermimetype', 'docspercategory', 'docsperstatus', 'docspermonth', 'docsaccumulated') as $atype) { foreach(array('docsperuser', 'foldersperuser', 'sizeperuser', 'sizepermonth','docspermimetype', 'docspercategory', 'docsperstatus', 'docspermonth', 'docsaccumulated') as $atype) {
echo "<div><a href=\"?type=".$atype."\">".getMLText('chart_'.$atype.'_title')."</a></div>\n"; echo "<div><a href=\"?type=".$atype."\">".getMLText('chart_'.$atype.'_title')."</a></div>\n";
} }
$this->contentContainerEnd(); $this->contentContainerEnd();
@ -265,6 +307,7 @@ $(document).ready( function() {
} }
break; break;
case 'sizeperuser': case 'sizeperuser':
case 'sizepermonth':
foreach($data as $item) { foreach($data as $item) {
echo "<tr><td>".htmlspecialchars($item['key'])."</td><td>".SeedDMS_Core_File::format_filesize((int) $item['total'])."</td></tr>"; echo "<tr><td>".htmlspecialchars($item['key'])."</td><td>".SeedDMS_Core_File::format_filesize((int) $item['total'])."</td></tr>";
$total += $item['total']; $total += $item['total'];

View File

@ -63,6 +63,17 @@ class SeedDMS_View_ImportFS extends SeedDMS_Theme_Style {
getMLText("dropfolder_metadata"), getMLText("dropfolder_metadata"),
$this->getDropFolderChooserHtml("form2", "", 0, 1) $this->getDropFolderChooserHtml("form2", "", 0, 1)
); );
$this->formField(
getMLText("createSubFolderForImportedFiles"),
array(
'element'=>'input',
'type'=>'checkbox',
'name'=>'createfolder',
'value'=>'1',
), array(
'help'=>getMLText('createSubFolderForImportedFiles_desc'),
)
);
$this->formField( $this->formField(
getMLText("removeFolderFromDropFolder"), getMLText("removeFolderFromDropFolder"),
array( array(
@ -70,6 +81,8 @@ class SeedDMS_View_ImportFS extends SeedDMS_Theme_Style {
'type'=>'checkbox', 'type'=>'checkbox',
'name'=>'remove', 'name'=>'remove',
'value'=>'1' 'value'=>'1'
), array(
'help'=>getMLText('removeFolderFromDropFolder_desc'),
) )
); );
$this->formField( $this->formField(
@ -79,6 +92,8 @@ class SeedDMS_View_ImportFS extends SeedDMS_Theme_Style {
'type'=>'checkbox', 'type'=>'checkbox',
'name'=>'setfiledate', 'name'=>'setfiledate',
'value'=>'1' 'value'=>'1'
), array(
'help'=>getMLText('setDateFromFile_desc'),
) )
); );
$this->formField( $this->formField(
@ -88,6 +103,8 @@ class SeedDMS_View_ImportFS extends SeedDMS_Theme_Style {
'type'=>'checkbox', 'type'=>'checkbox',
'name'=>'setfolderdate', 'name'=>'setfolderdate',
'value'=>'1' 'value'=>'1'
), array(
'help'=>getMLText('setDateFromFolder_desc'),
) )
); );
$this->contentContainerEnd(); $this->contentContainerEnd();

View File

@ -157,7 +157,7 @@ $("input[type=checkbox]").each(function () { this.checked = !this.checked; });
$this->htmlEndPage(); $this->htmlEndPage();
} elseif(file_exists($this->logdir.$logname)){ } elseif(file_exists($this->logdir.$logname)){
echo $logname."<pre>\n"; echo $logname."<pre>\n";
readfile($this->logdir.$logname); echo htmlspecialchars(file_get_contents($this->logdir.$logname));
echo "</pre>\n"; echo "</pre>\n";
} else { } else {
UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); UI::exitError(getMLText("admin_tools"),getMLText("access_denied"));

View File

@ -0,0 +1,278 @@
<?php
/**
* Implementation of Send Notification view
*
* @category DMS
* @package SeedDMS
* @license GPL 2
* @version @version@
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright Copyright (C) 2002-2005 Markus Westphal,
* 2006-2008 Malcolm Cowe, 2010 Matteo Lucarelli,
* 2010-2024 Uwe Steinmann
* @version Release: @package_version@
*/
/**
* Class which outputs the html page for sending a notification
*
* @category DMS
* @package SeedDMS
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright Copyright (C) 2016 Uwe Steinmann
* @version Release: @package_version@
*/
class SeedDMS_View_SendNotification extends SeedDMS_Theme_Style {
var $subjects;
var $recvtypes;
public function __construct($params, $theme) { /* {{{ */
parent::__construct($params, $theme);
$this->subjects = array();
$this->subjects[] = 'review_request';
$this->subjects[] = 'approval_request';
$this->subjects[] = 'new_document';
$this->subjects[] = 'document_updated';
$this->subjects[] = 'document_deleted';
$this->subjects[] = 'version_deleted';
$this->subjects[] = 'new_subfolder';
$this->subjects[] = 'folder_deleted';
$this->subjects[] = 'new_file';
$this->subjects[] = 'replace_content';
$this->subjects[] = 'remove_file';
$this->subjects[] = 'document_attribute_changed';
$this->subjects[] = 'document_attribute_added';
$this->subjects[] = 'folder_attribute_changed';
$this->subjects[] = 'folder_attribute_added';
$this->subjects[] = 'document_comment_changed';
$this->subjects[] = 'folder_comment_changed';
$this->subjects[] = 'version_comment_changed';
$this->subjects[] = 'document_renamed';
$this->subjects[] = 'folder_renamed';
$this->subjects[] = 'document_moved';
$this->subjects[] = 'folder_moved';
$this->subjects[] = 'document_transfered';
$this->subjects[] = 'document_status_changed';
$this->subjects[] = 'document_notify_added';
$this->subjects[] = 'folder_notify_added';
$this->subjects[] = 'document_notify_deleted';
$this->subjects[] = 'folder_notify_deleted';
$this->subjects[] = 'review_submit';
$this->subjects[] = 'approval_submit';
$this->subjects[] = 'review_deletion';
$this->subjects[] = 'approval_deletion';
$this->subjects[] = 'review_request';
$this->subjects[] = 'approval_request';
$this->subjects[] = 'document_ownership_changed';
$this->subjects[] = 'folder_ownership_changed';
$this->subjects[] = 'document_access_permission_changed';
$this->subjects[] = 'folder_access_permission_changed';
$this->subjects[] = 'transition_triggered';
$this->subjects[] = 'request_workflow_action';
$this->subjects[] = 'rewind_workflow';
$this->subjects[] = 'rewind_workflow';
$this->recvtypes = array();
$this->recvtypes[] = array(SeedDMS_NotificationService::RECV_ANY, getMLText('notification_recv_any'));
$this->recvtypes[] = array(SeedDMS_NotificationService::RECV_NOTIFICATION, getMLText('notification_recv_notification'));
$this->recvtypes[] = array(SeedDMS_NotificationService::RECV_OWNER, getMLText('notification_recv_owner'));
$this->recvtypes[] = array(SeedDMS_NotificationService::RECV_REVIEWER, getMLText('notification_recv_reviewer'));
$this->recvtypes[] = array(SeedDMS_NotificationService::RECV_APPROVER, getMLText('notification_recv_approver'));
$this->recvtypes[] = array(SeedDMS_NotificationService::RECV_WORKFLOW, getMLText('notification_recv_workflow'));
$this->recvtypes[] = array(SeedDMS_NotificationService::RECV_UPLOADER, getMLText('notification_recv_uploader'));
} /* }}} */
public function js() { /* {{{ */
header('Content-Type: application/javascript; charset=UTF-8');
?>
$(document).ready( function() {
$('body').on('click', '#send_notification', function(ev){
ev.preventDefault();
var data = $('#form1').serializeArray().reduce(function(obj, item) {
obj[item.name] = item.value;
return obj;
}, {});
$.get("../op/op.SendNotification.php", $('#form1').serialize()+"&formtoken=<?= createFormKey('sendnotification'); ?>", function(response) {
noty({
text: response.message,
type: response.success === true ? 'success' : 'error',
dismissQueue: true,
layout: 'topRight',
theme: 'defaultTheme',
timeout: 1500,
});
});
});
});
<?php
} /* }}} */
public function checkfilter() { /* {{{ */
$dms = $this->params['dms'];
$user = $this->params['user'];
$notifier = $this->params['notifier'];
$allusers = $this->params['allusers'];
$seluser = $this->params['seluser'];
$services = $notifier->getServices();
foreach($services as $name => $service) {
$this->contentHeading($name);
if(is_callable([$service, 'filter'])) {
$content = '';
$content .= "<table class=\"table table-condensed table-sm\">";
$content .= "<tr><th>".getMLText('notification_msg_tmpl')."/".getMLText('notification_recvtype')."</th>";
array_shift($this->recvtypes);
foreach($this->recvtypes as $recvtype) {
$content .= "<th>".$recvtype[1]."</th>";
}
$content .= "</tr>";
foreach($this->subjects as $subject) {
$content .= "<tr><td>".$subject."</td>";
foreach($this->recvtypes as $recvtype) {
if($service->filter($user, $seluser, $subject.'_email_subject', $subject.'_email_body', [], $recvtype[0])) {
$content .= "<td><i class=\"fa fa-check success\"></i></td>";
} else {
$content .= "<td><i class=\"fa fa-minus error\"></i></td>";
}
}
$content .= "</tr>";
}
$content .= "</table>";
$this->printAccordion(getMLText('click_to_expand_filter_results'), $content);
} else {
$this->infoMsg(getMLText('notification_service_no_filter'));
}
}
} /* }}} */
public function show() { /* {{{ */
$dms = $this->params['dms'];
$user = $this->params['user'];
$notifier = $this->params['notifier'];
$allusers = $this->params['allusers'];
$seluser = $this->params['seluser'];
$this->htmlStartPage(getMLText("admin_tools"));
$this->globalNavigation();
$this->contentStart();
$this->pageNavigation(getMLText("admin_tools"), "admin_tools");
$this->contentHeading(getMLText("send_notification"));
$this->rowStart();
$this->columnStart(4);
?>
<form class="form-horizontal" name="form1" id="form1" method="get">
<?php
$this->contentContainerStart();
$options = array();
foreach ($allusers as $currUser) {
if ($currUser->isGuest() )
continue;
$options[] = array($currUser->getID(), htmlspecialchars($currUser->getLogin()." - ".$currUser->getFullName()), $seluser && $seluser->getId() == $currUser->getId());
}
$this->formField(
getMLText("user"),
array(
'element'=>'select',
'name'=>'userid',
'class'=>'chzn-select',
'options'=>$options
)
);
$options = array();
$options[] = array(SeedDMS_NotificationService::RECV_ANY, getMLText('notification_recv_any'));
$options[] = array(SeedDMS_NotificationService::RECV_NOTIFICATION, getMLText('notification_recv_notification'));
$options[] = array(SeedDMS_NotificationService::RECV_OWNER, getMLText('notification_recv_owner'));
$options[] = array(SeedDMS_NotificationService::RECV_REVIEWER, getMLText('notification_recv_reviewer'));
$options[] = array(SeedDMS_NotificationService::RECV_APPROVER, getMLText('notification_recv_approver'));
$options[] = array(SeedDMS_NotificationService::RECV_WORKFLOW, getMLText('notification_recv_workflow'));
$options[] = array(SeedDMS_NotificationService::RECV_UPLOADER, getMLText('notification_recv_uploader'));
$this->formField(
getMLText("notification_recvtype"),
array(
'element'=>'select',
'name'=>'recvtype',
'class'=>'chzn-select',
'options'=>$options
)
);
$options = array();
$options[] = array('review_request', 'review_request');
$options[] = array('approval_request', 'approval_request');
$options[] = array('new_document', 'new_document');
$options[] = array('document_updated', 'document_updated');
$options[] = array('document_deleted', 'document_deleted');
$options[] = array('version_deleted', 'version_deleted');
$options[] = array('new_subfolder', 'new_subfolder');
$options[] = array('folder_deleted', 'folder_deleted');
$options[] = array('new_file', 'new_file');
$options[] = array('replace_content', 'replace_content');
$options[] = array('remove_file', 'remove_file');
$options[] = array('document_attribute_changed', 'document_attribute_changed');
$options[] = array('document_attribute_added', 'document_attribute_added');
$options[] = array('folder_attribute_changed', 'folder_attribute_changed');
$options[] = array('folder_attribute_added', 'folder_attribute_added');
$options[] = array('document_comment_changed', 'document_comment_changed');
$options[] = array('folder_comment_changed', 'folder_comment_changed');
$options[] = array('version_comment_changed', 'version_comment_changed');
$options[] = array('document_renamed', 'document_renamed');
$options[] = array('folder_renamed', 'folder_renamed');
$options[] = array('document_moved', 'document_moved');
$options[] = array('folder_moved', 'folder_moved');
$options[] = array('document_transfered', 'document_transfered');
$options[] = array('document_status_changed', 'document_status_changed');
$options[] = array('document_notify_added', 'document_notify_added');
$options[] = array('folder_notify_added', 'folder_notify_added');
$options[] = array('document_notify_deleted', 'document_notify_deleted');
$options[] = array('folder_notify_deleted', 'folder_notify_deleted');
$options[] = array('review_submit', 'review_submit');
$options[] = array('approval_submit', 'approval_submit');
$options[] = array('review_deletion', 'review_deletion');
$options[] = array('approval_deletion', 'approval_deletion');
$options[] = array('review_request', 'review_request');
$options[] = array('approval_request', 'approval_request');
$options[] = array('document_ownership_changed', 'document_ownership_changed');
$options[] = array('folder_ownership_changed', 'folder_ownership_changed');
$options[] = array('document_access_permission_changed', 'document_access_permission_changed');
$options[] = array('folder_access_permission_changed', 'folder_access_permission_changed');
$options[] = array('transition_triggered', 'transition_triggered');
$options[] = array('request_workflow_action', 'request_workflow_action');
$options[] = array('rewind_workflow', 'rewind_workflow');
$this->formField(
getMLText("notification_msg_tmpl"),
array(
'element'=>'select',
'name'=>'template',
'class'=>'chzn-select',
'options'=>$options
)
);
$this->contentContainerEnd();
$buttons = [];
$names = [];
$buttons[] = '<i class="fa fa-rotate-left"></i> '.getMLText('send_notification');
$names[] = "send_notification";
$buttons[] = '<i class="fa fa-rotate-left"></i> '.getMLText('check_notification_filter');
$names[] = "check_filter";
$this->formSubmit($buttons, $names);
?>
</form>
<?php
$this->columnEnd();
$this->columnStart(8);
?>
<div class="ajax" style="margin-bottom: 15px;" data-view="SendNotification" data-action="checkfilter" data-query="userid=<?= $seluser ? $seluser->getId() : $user->getId() ?>"></div>
<?php
$this->columnEnd();
$this->rowEnd();
$this->contentEnd();
$this->htmlEndPage();
} /* }}} */
}

View File

@ -222,7 +222,7 @@ class SeedDMS_View_Settings extends SeedDMS_Theme_Style {
$selections = $settings->{"_".$name}; $selections = $settings->{"_".$name};
else else
$selections = explode(',', $settings->{"_".$name}); $selections = explode(',', $settings->{"_".$name});
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")."\" name=\"".$name.($multiple ? "[]" : "")."\"".($multiple ? " multiple" : "").($size ? " size=\"".$size."\"" : "")." data-placeholder=\"".getMLText("select_user")."\" style=\"width: 100%;\">"; echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")." name=\"".$name.($multiple ? "[]" : "")."\"".($multiple ? " multiple" : "").($size ? " size=\"".$size."\"" : "")." data-placeholder=\"".getMLText("select_user")."\" style=\"width: 100%;\">";
if($allowempty) if($allowempty)
echo "<option value=\"\"></option>"; echo "<option value=\"\"></option>";
foreach($users as $curuser) { foreach($users as $curuser) {
@ -253,7 +253,7 @@ class SeedDMS_View_Settings extends SeedDMS_Theme_Style {
$selections = $settings->{"_".$name}; $selections = $settings->{"_".$name};
else else
$selections = explode(',', $settings->{"_".$name}); $selections = explode(',', $settings->{"_".$name});
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")."\" name=\"".$name.($multiple ? "[]" : "")."\"".($multiple ? " multiple" : "").($size ? " size=\"".$size."\"" : "")." data-placeholder=\"".getMLText("select_group")."\" style=\"width: 100%;\">"; echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")." name=\"".$name.($multiple ? "[]" : "")."\"".($multiple ? " multiple" : "").($size ? " size=\"".$size."\"" : "")." data-placeholder=\"".getMLText("select_group")."\" style=\"width: 100%;\">";
if($allowempty) if($allowempty)
echo "<option value=\"\"></option>"; echo "<option value=\"\"></option>";
foreach($groups as $curgroup) { foreach($groups as $curgroup) {
@ -696,7 +696,7 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk))
case "categories": case "categories":
$categories = $dms->getDocumentCategories(); $categories = $dms->getDocumentCategories();
if($categories) { if($categories) {
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_category")."\" style=\"width: 100%;\">"; 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_category")."\" style=\"width: 100%;\">";
if($allowempty) if($allowempty)
echo "<option value=\"\"></option>"; echo "<option value=\"\"></option>";
foreach($categories as $category) { foreach($categories as $category) {
@ -711,7 +711,7 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk))
case "users": case "users":
$users = $dms->getAllUsers(); $users = $dms->getAllUsers();
if($users) { 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%;\">"; 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) if($allowempty)
echo "<option value=\"\"></option>"; echo "<option value=\"\"></option>";
foreach($users as $curuser) { foreach($users as $curuser) {
@ -726,7 +726,7 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk))
case "groups": case "groups":
$recs = $dms->getAllGroups(); $recs = $dms->getAllGroups();
if($recs) { 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%;\">"; 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) if($allowempty)
echo "<option value=\"\"></option>"; echo "<option value=\"\"></option>";
foreach($recs as $rec) { foreach($recs as $rec) {
@ -743,7 +743,7 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk))
$attrtype = empty($conf['attrtype']) ? 0 : $conf['attrtype']; $attrtype = empty($conf['attrtype']) ? 0 : $conf['attrtype'];
$recs = $dms->getAllAttributeDefinitions($objtype, $attrtype); $recs = $dms->getAllAttributeDefinitions($objtype, $attrtype);
if($recs) { 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_attrdef")."\" data-no_results_text=\"".getMLText('unknown_attrdef')."\" style=\"width: 100%;\">"; 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_attrdef")."\" data-no_results_text=\"".getMLText('unknown_attrdef')."\" style=\"width: 100%;\">";
if($allowempty) if($allowempty)
echo "<option value=\"\"></option>"; echo "<option value=\"\"></option>";
foreach($recs as $rec) { foreach($recs as $rec) {
@ -760,7 +760,7 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk))
case "workflows": case "workflows":
$recs = $dms->getAllWorkflows(); $recs = $dms->getAllWorkflows();
if($recs) { 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%;\">"; 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) if($allowempty)
echo "<option value=\"\"></option>"; echo "<option value=\"\"></option>";
foreach($recs as $rec) { foreach($recs as $rec) {

View File

@ -356,7 +356,7 @@ $(document).ready( function() {
if($file->getName() != $file->getOriginalFileName()) if($file->getName() != $file->getOriginalFileName())
print "<li>".htmlspecialchars($file->getOriginalFileName())."</li>\n"; print "<li>".htmlspecialchars($file->getOriginalFileName())."</li>\n";
if ($file_exists) { if ($file_exists) {
$realmimetype = SeedDMS_Core_File::mimetype($dms->contentDir . $file->getPath()); $realmimetype = $file->getRealMimeType();
print "<li>".SeedDMS_Core_File::format_filesize(filesize($dms->contentDir . $file->getPath())) ." bytes, ".htmlspecialchars($file->getMimeType())."</li>"; print "<li>".SeedDMS_Core_File::format_filesize(filesize($dms->contentDir . $file->getPath())) ." bytes, ".htmlspecialchars($file->getMimeType())."</li>";
} else print "<li>".htmlspecialchars($file->getMimeType())." - <span class=\"warning\">".getMLText("document_deleted")."</span></li>"; } else print "<li>".htmlspecialchars($file->getMimeType())." - <span class=\"warning\">".getMLText("document_deleted")."</span></li>";
@ -777,7 +777,7 @@ $(document).ready( function() {
print "<li>". SeedDMS_Core_File::format_filesize($latestContent->getFileSize()) .", "; print "<li>". SeedDMS_Core_File::format_filesize($latestContent->getFileSize()) .", ";
print htmlspecialchars($latestContent->getMimeType()); print htmlspecialchars($latestContent->getMimeType());
if($user->isAdmin()) { if($user->isAdmin()) {
$realmimetype = SeedDMS_Core_File::mimetype($dms->contentDir . $latestContent->getPath()); $realmimetype = $latestContent->getRealMimeType();
if($realmimetype != $latestContent->getMimeType()) if($realmimetype != $latestContent->getMimeType())
echo " <i class=\"fa fa-exclamation-triangle ajax-click\" data-param1=\"command=setmimetype\" data-param2=\"contentid=".$latestContent->getId()."\" data-param3=\"formtoken=".createFormKey('setmimetype')."\" title=\"".htmlspecialchars($realmimetype)."\"></i> "; echo " <i class=\"fa fa-exclamation-triangle ajax-click\" data-param1=\"command=setmimetype\" data-param2=\"contentid=".$latestContent->getId()."\" data-param3=\"formtoken=".createFormKey('setmimetype')."\" title=\"".htmlspecialchars($realmimetype)."\"></i> ";
} }
@ -1077,7 +1077,7 @@ $(document).ready( function() {
exit; exit;
} }
$checksum = SeedDMS_Core_File::checksum($dms->contentDir.$latestContent->getPath()); $checksum = $latestContent->getRealChecksum($latestContent);
if($checksum != $latestContent->getChecksum()) { if($checksum != $latestContent->getChecksum()) {
$this->errorMsg(getMLText('wrong_checksum')); $this->errorMsg(getMLText('wrong_checksum'));
} }

View File

@ -38,6 +38,38 @@ function escapeHtml(text) {
return text.replace(/[&<>"']/g, function(m) { return map[m]; }); return text.replace(/[&<>"']/g, function(m) { return map[m]; });
} }
/**
* Format bytes as human-readable text.
*
* @param bytes Number of bytes.
* @param si True to use metric (SI) units, aka powers of 1000. False to use
* binary (IEC), aka powers of 1024.
* @param dp Number of decimal places to display.
*
* @return Formatted string.
*/
function formatFileSize(bytes, si=false, dp=1) {
const thresh = si ? 1000 : 1024;
if (Math.abs(bytes) < thresh) {
return bytes + ' B';
}
const units = si
? ['kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']
: ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];
let u = -1;
const r = 10**dp;
do {
bytes /= thresh;
++u;
} while (Math.round(Math.abs(bytes) * r) / r >= thresh && u < units.length - 1);
return bytes.toFixed(dp) + ' ' + units[u];
}
function treeFolderSelected(formid, nodeid, nodename) { function treeFolderSelected(formid, nodeid, nodename) {
$('#'+formid).val(nodeid); $('#'+formid).val(nodeid);
$('#choosefoldersearch'+formid).val(nodename); $('#choosefoldersearch'+formid).val(nodename);

View File

@ -1002,6 +1002,8 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
$menuitems['debug']['children']['hooks'] = array('link'=>$this->params['settings']->_httpRoot."out/out.Hooks.php", 'label'=>getMLText('list_hooks')); $menuitems['debug']['children']['hooks'] = array('link'=>$this->params['settings']->_httpRoot."out/out.Hooks.php", 'label'=>getMLText('list_hooks'));
if ($accessobject->check_view_access('NotificationServices')) if ($accessobject->check_view_access('NotificationServices'))
$menuitems['debug']['children']['notification_services'] = array('link'=>$this->params['settings']->_httpRoot."out/out.NotificationServices.php", 'label'=>getMLText('list_notification_services')); $menuitems['debug']['children']['notification_services'] = array('link'=>$this->params['settings']->_httpRoot."out/out.NotificationServices.php", 'label'=>getMLText('list_notification_services'));
if ($accessobject->check_view_access('SendNotification'))
$menuitems['debug']['children']['send_notification'] = array('link'=>$this->params['settings']->_httpRoot."out/out.SendNotification.php", 'label'=>getMLText('send_notification'));
if ($accessobject->check_view_access('ConversionServices')) if ($accessobject->check_view_access('ConversionServices'))
$menuitems['debug']['children']['conversion_services'] = array('link'=>$this->params['settings']->_httpRoot."out/out.ConversionServices.php", 'label'=>getMLText('list_conversion_services')); $menuitems['debug']['children']['conversion_services'] = array('link'=>$this->params['settings']->_httpRoot."out/out.ConversionServices.php", 'label'=>getMLText('list_conversion_services'));
} }
@ -2407,7 +2409,6 @@ $(document).ready(function() {
} else { } else {
$tree[] = $node; $tree[] = $node;
} }
} else { } else {
if($root = $this->params['dms']->getFolder($this->params['rootfolderid'])) if($root = $this->params['dms']->getFolder($this->params['rootfolderid']))
$tree = array(array('label'=>$root->getName(), 'id'=>$root->getID(), 'load_on_demand'=>false, 'is_folder'=>true)); $tree = array(array('label'=>$root->getName(), 'id'=>$root->getID(), 'load_on_demand'=>false, 'is_folder'=>true));

View File

@ -38,6 +38,38 @@ function escapeHtml(text) {
return text.replace(/[&<>"']/g, function(m) { return map[m]; }); return text.replace(/[&<>"']/g, function(m) { return map[m]; });
} }
/**
* Format bytes as human-readable text.
*
* @param bytes Number of bytes.
* @param si True to use metric (SI) units, aka powers of 1000. False to use
* binary (IEC), aka powers of 1024.
* @param dp Number of decimal places to display.
*
* @return Formatted string.
*/
function formatFileSize(bytes, si=false, dp=1) {
const thresh = si ? 1000 : 1024;
if (Math.abs(bytes) < thresh) {
return bytes + ' B';
}
const units = si
? ['kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']
: ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];
let u = -1;
const r = 10**dp;
do {
bytes /= thresh;
++u;
} while (Math.round(Math.abs(bytes) * r) / r >= thresh && u < units.length - 1);
return bytes.toFixed(dp) + ' ' + units[u];
}
function treeFolderSelected(formid, nodeid, nodename) { function treeFolderSelected(formid, nodeid, nodename) {
$('#'+formid).val(nodeid); $('#'+formid).val(nodeid);
$('#choosefoldersearch'+formid).val(nodename); $('#choosefoldersearch'+formid).val(nodename);