Merge branch 'seeddms-4.3.9' into develop

Conflicts:
	views/bootstrap/class.Search.php
	views/bootstrap/class.ViewFolder.php
This commit is contained in:
Uwe Steinmann 2014-06-04 21:25:30 +02:00
commit aa6bdf000b
27 changed files with 245 additions and 134 deletions

View File

@ -14,6 +14,8 @@
- admins can edit their account details even if 'self edit' is turned off
- consistent handling of document locking
- op/op.ViewOnline.php returns the latest version if version<1
- delete document with ajax call when clicking on cross-icon in document list
- critical ajax calls require form token to be set
--------------------------------------------------------------------------------
Changes in version 4.3.8

View File

@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (1061)
// Translators: Admin (1064)
$text = array(
'accept' => 'وافق',
@ -76,7 +76,7 @@ URL: [url]',
'apply' => 'تطبيق',
'approval_deletion_email' => 'طلب الموافقة تم الغاؤه',
'approval_group' => 'مجموعة الموافقة',
'approval_log' => '',
'approval_log' => 'ﺲﺠﻟ ﺎﻠﻣﻭﺎﻔﻗﺓ',
'approval_request_email' => 'طلب الموافقة',
'approval_request_email_body' => 'طلب الموافقة
Document: [name]
@ -86,7 +86,6 @@ User: [username]
URL: [url]',
'approval_request_email_subject' => '[sitename]: [name] - طلب الموافقة',
'approval_status' => 'حالة الموافقة',
'approval_submit_email' => 'تم ارسال الموافقة',
'approval_submit_email_body' => '',
'approval_submit_email_subject' => 'تم ارسال الموافقة',
'approval_summary' => 'ملخص الموافقة',
@ -159,7 +158,7 @@ URL: [url]',
'change_password' => 'تغيير كلمة السر',
'change_password_message' => 'تم تغيير كلمة السر.',
'change_status' => 'تغيير الحالة',
'charts' => '',
'charts' => 'ﺝﺩﺍﻮﻟ',
'chart_docsaccumulated_title' => '',
'chart_docspercategory_title' => '',
'chart_docspermimetype_title' => '',
@ -670,7 +669,7 @@ URL: [url]',
'reviewer_already_removed' => 'بالفعل تم ازالته من عملية المراجعة او تم تقديمه للمراجعة',
'review_deletion_email' => 'طلب المراجعة تم مسحه',
'review_group' => 'مجموعة المراجعة',
'review_log' => '',
'review_log' => 'ﺲﺠﻟ ﺎﻠﻣﺭﺎﺠﻋﺓ',
'review_request_email' => 'طلب مراجعة',
'review_status' => 'حالة المراجعة:',
'review_submit_email' => 'تم تقديم المراجعة',

View File

@ -77,7 +77,6 @@ $text = array(
'approval_request_email_body' => '',
'approval_request_email_subject' => '',
'approval_status' => 'Estat d\'aprovació',
'approval_submit_email' => '',
'approval_submit_email_body' => '',
'approval_submit_email_subject' => 'Aprovació enviada',
'approval_summary' => 'Resum d\'aprovació',

View File

@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (610), kreml (419)
// Translators: Admin (610), kreml (429)
$text = array(
'accept' => 'Přijmout',
@ -86,7 +86,6 @@ Uživatel: [username]
URL: [url]',
'approval_request_email_subject' => '[sitename]: [name] - Žádost o schválení',
'approval_status' => 'Stav schválení',
'approval_submit_email' => '',
'approval_submit_email_body' => 'Schválení dokumentu
Dokument: [name]
Verze: [version]
@ -135,7 +134,7 @@ URL: [url]',
'attr_no_regex_match' => 'Hodnota atributu nesouhlasí s regulárním výrazem',
'at_least_n_users_of_group' => 'Alespoň [number_of_users] uživatelů z [group]',
'august' => 'Srpen',
'authentication' => '',
'authentication' => 'Autentizace',
'automatic_status_update' => 'Automatická změna stavu',
'back' => 'Přejít zpět',
'backup_list' => 'Existující záložní seznam',
@ -143,7 +142,7 @@ URL: [url]',
'backup_remove' => 'Odstranit soubor zálohy',
'backup_tools' => 'Nástroje pro zálohování',
'between' => 'mezi',
'browse' => '',
'browse' => 'Prohlížet',
'calendar' => 'Kalendář',
'calendar_week' => 'Kaledářní týden',
'cancel' => 'Zrušit',
@ -211,7 +210,7 @@ URL: [url]',
'creation_date' => 'Vytvořeno',
'cs_CZ' => 'Čeština',
'current_password' => 'Současné heslo',
'current_quota' => '',
'current_quota' => 'Systém kvót je nastaven na [quota].',
'current_state' => 'Současný stav',
'current_version' => 'Aktuální verze',
'daily' => 'Denně',
@ -227,7 +226,7 @@ URL: [url]',
'details_version' => 'Podrobnosti verze: [version]',
'de_DE' => 'Němčina',
'disclaimer' => 'Toto je neveřejná oblast. Přístup povolen pouze oprávněným uživatelům. Jakékoliv narušení bude stíháno podle platných právních norem.',
'discspace' => '',
'discspace' => 'Místo na disku',
'document' => 'Dokument',
'documents' => 'Dokumenty',
'documents_in_process' => 'Zpracovávané dokumenty',
@ -472,12 +471,12 @@ URL: [url]',
'js_select_user_or_group' => 'Vyberte aspoň uživatele nebo skupinu',
'july' => 'Červenec',
'june' => 'Červen',
'keep' => '',
'keep' => 'Neměňte',
'keep_doc_status' => 'Zachovat stav dokumentu',
'keywords' => 'Klíčová slova',
'keyword_exists' => 'Klíčové slovo už existuje',
'language' => 'Jazyk',
'lastaccess' => '',
'lastaccess' => 'Poslední přístup',
'last_update' => 'Naposledy aktualizoval',
'legend' => 'Popisek',
'linked_documents' => 'Související dokumenty',
@ -615,8 +614,8 @@ URL: [url]',
'password_already_used' => 'Heslo již použité',
'password_expiration' => 'Vypršení platnosti hesla',
'password_expiration_text' => 'Vašemu heslu vypšela platnost. Zvolte nové, než budete pokračovat v práci.',
'password_expired' => '',
'password_expires_in_days' => '',
'password_expired' => 'Heslo expirovalo',
'password_expires_in_days' => 'Heslo expiruje za %s dnů.',
'password_forgotten' => 'Zapomenuté heslo',
'password_forgotten_email_body' => 'Uživateli Sportplex DMS,nnobdrželi jsme vaši žádost o změnu hesla.nnToto bude učiněno kliknutím na následující odkaz:
@ -640,7 +639,7 @@ Pokud budete mít problém s přihlášením i po změně hesla, kontaktujte Adm
'pt_BR' => 'Portugalština (BR)',
'quota' => 'Kvóta',
'quota_exceeded' => 'Vaše kvóta disku je překročena o [bytes].',
'quota_is_disabled' => '',
'quota_is_disabled' => 'Podpora kvót je v současné době zakázána v nastavení. Nastavení uživatelských kvót nebude mít žádný vliv, dokud se znovu neaktivuje.',
'quota_warning' => 'Vaše maximální využití disku je překročeno o [bajtů]. Prosím, odstraňte dokumenty nebo předchozí verze.',
'refresh' => 'Obnovit',
'rejected' => 'Odmítnuto',
@ -680,7 +679,7 @@ URL: [url]',
'reviewer_already_removed' => 'už byl odstraněn z procesu kontroly nebo poslal kontrolu',
'review_deletion_email' => 'Žádost na revizi odstraněn',
'review_group' => 'Skupina kontroly',
'review_log' => '',
'review_log' => 'Přezkum logu',
'review_request_email' => 'Požadavek na kontrolu',
'review_status' => 'Stav kontroly',
'review_submit_email' => 'Předložit ke kontrole',

View File

@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (1887)
// Translators: Admin (1888)
$text = array(
'accept' => 'Übernehmen',
@ -76,7 +76,7 @@ URL: [url]',
'apply' => 'Anwenden',
'approval_deletion_email' => 'Genehmigungsaufforderung gelöscht',
'approval_group' => 'Berechtigungsgruppe',
'approval_log' => '',
'approval_log' => 'Freigabeprotokoll',
'approval_request_email' => 'Aufforderung zur Genehmigung',
'approval_request_email_body' => 'Aufforderung zur Genehmigung
Dokument: [name]
@ -86,7 +86,6 @@ Benutzer: [username]
URL: [url]',
'approval_request_email_subject' => '[sitename]: [name] - Aufforderung zur Genehmigung',
'approval_status' => 'Freigabestatus',
'approval_submit_email' => '',
'approval_submit_email_body' => 'Genehmigung erteilen
Dokument: [name]
Version: [version]

View File

@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (1027), netixw (14)
// Translators: Admin (1028), netixw (14)
$text = array(
'accept' => 'Accept',
@ -76,7 +76,7 @@ URL: [url]',
'apply' => 'Apply',
'approval_deletion_email' => 'Approval request deleted',
'approval_group' => 'Approval Group',
'approval_log' => '',
'approval_log' => 'Approval Log',
'approval_request_email' => 'Approval request',
'approval_request_email_body' => 'Approval request
Document: [name]
@ -86,7 +86,6 @@ User: [username]
URL: [url]',
'approval_request_email_subject' => '[sitename]: [name] - Approval request',
'approval_status' => 'Approval Status',
'approval_submit_email' => '',
'approval_submit_email_body' => 'Approval of document
Document: [name]
Version: [version]

View File

@ -86,7 +86,6 @@ Usuario: [username]
URL: [url]',
'approval_request_email_subject' => '[sitename]: [name] - Petición de aprobación',
'approval_status' => 'Estado de aprobación',
'approval_submit_email' => '',
'approval_submit_email_body' => 'Aprobación del documento
Documento: [name]
Versión: [version]

View File

@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (889), jeromerobert (50), lonnnew (9)
// Translators: Admin (899), jeromerobert (50), lonnnew (9)
$text = array(
'accept' => 'Accepter',
@ -86,7 +86,6 @@ Utilisateur: [username]
URL: [url]',
'approval_request_email_subject' => '[sitename]: [name] - Demande d\'approbation',
'approval_status' => 'Statut d\'approbation',
'approval_submit_email' => '',
'approval_submit_email_body' => '',
'approval_submit_email_subject' => 'Approbation soumise',
'approval_summary' => 'Sommaire d\'approbation',
@ -105,11 +104,11 @@ URL: [url]',
'attrdef_management' => 'Gestion des définitions d\'attributs',
'attrdef_maxvalues' => 'Nombre maximum de valeurs',
'attrdef_minvalues' => 'Nombre minimum de valeurs',
'attrdef_min_greater_max' => '',
'attrdef_min_greater_max' => 'Le nombre minimum de valeurs est supérieur au maximum',
'attrdef_multiple' => 'Permettre des valeurs multiples',
'attrdef_must_be_multiple' => '',
'attrdef_must_be_multiple' => 'L\'attribut a plusieurs valeurs mais n\'est pas définit comme possédant des valeurs multiples',
'attrdef_name' => 'Nom',
'attrdef_noname' => '',
'attrdef_noname' => 'Le nom d\'attribut est manquant',
'attrdef_objtype' => 'Type objet',
'attrdef_regex' => 'Expression régulière',
'attrdef_type' => 'Type',
@ -162,12 +161,12 @@ URL: [url]',
'charts' => 'Graphiques',
'chart_docsaccumulated_title' => 'Nombre de documents',
'chart_docspercategory_title' => 'Documents par catégorie',
'chart_docspermimetype_title' => '',
'chart_docspermimetype_title' => 'Documents par type',
'chart_docspermonth_title' => 'Nouveau document par mois',
'chart_docsperstatus_title' => 'Documents par status',
'chart_docsperuser_title' => '',
'chart_docsperuser_title' => 'Documents par utilisateur',
'chart_selection' => 'Sélectionnez un graphique',
'chart_sizeperuser_title' => '',
'chart_sizeperuser_title' => 'Volume par utilisateur',
'choose_attrdef' => 'Choisissez une définition d\'attribut',
'choose_category' => 'SVP choisir',
'choose_group' => 'Choisir un groupe',
@ -205,7 +204,7 @@ URL: [url]',
'cs_CZ' => 'Tchèque',
'current_password' => 'Mot de passe actuel',
'current_quota' => '',
'current_state' => '',
'current_state' => 'Etat actuel',
'current_version' => 'Version actuelle',
'daily' => 'Journalier',
'databasesearch' => 'Recherche dans la base de données',
@ -1007,7 +1006,7 @@ URL: [url]',
'splash_switched_back_user' => 'Revenu à l\'utilisateur initial',
'splash_toogle_group_manager' => 'Responsable de groupe changé',
'state_and_next_state' => '',
'statistic' => '',
'statistic' => 'Statistiques',
'status' => 'Statut',
'status_approval_rejected' => 'Approbation rejeté',
'status_approved' => 'Approuvé',
@ -1029,7 +1028,7 @@ URL: [url]',
'sunday' => 'Dimanche',
'sunday_abbr' => 'Dim.',
'sv_SE' => 'Suédois',
'switched_to' => '',
'switched_to' => 'Connexion provisoire sous',
'testmail_body' => '',
'testmail_subject' => '',
'theme' => 'Thème',

View File

@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (537), ribaz (978)
// Translators: Admin (538), ribaz (978)
$text = array(
'accept' => 'Elfogad',
@ -86,7 +86,6 @@ Felhasználó: [username]
URL: [url]',
'approval_request_email_subject' => '[sitename]: [name] - Jóváhagyási kérelem',
'approval_status' => 'Jóváhagyási állapot',
'approval_submit_email' => '',
'approval_submit_email_body' => '',
'approval_submit_email_subject' => 'Beküldött jóváhagyás',
'approval_summary' => 'Jóváhagyási összesítő',
@ -416,7 +415,7 @@ URL: [url]',
'include_documents' => 'Tartalmazó dokumentumok',
'include_subdirectories' => 'Tartalmazó alkönyvtárak',
'index_converters' => 'Index dokumentum konverzió',
'index_folder' => '',
'index_folder' => 'Mappa indexelése',
'individuals' => 'Egyedek',
'inherited' => 'örökölt',
'inherits_access_copy_msg' => 'Örökített hozzáférési lista másolása',

View File

@ -77,7 +77,6 @@ $text = array(
'approval_request_email_body' => '',
'approval_request_email_subject' => '',
'approval_status' => 'Stato approvazione',
'approval_submit_email' => '',
'approval_submit_email_body' => '',
'approval_submit_email_subject' => 'Sottoposta approvazione',
'approval_summary' => 'Dettaglio approvazioni',

View File

@ -86,7 +86,6 @@ User: [username]
URL: [url]',
'approval_request_email_subject' => '[Naam site]: [naam] - Toestemming vereist',
'approval_status' => 'Goedkeuring Status',
'approval_submit_email' => '',
'approval_submit_email_body' => '',
'approval_submit_email_subject' => 'Uitgevoerde [Goedkeuring]',
'approval_summary' => 'Goedkeuring Samenvatting',

View File

@ -86,7 +86,6 @@ Użytkownik: [username]
URL: [url]',
'approval_request_email_subject' => '[sitename]: [name] - Prośba o zatwierdzenie',
'approval_status' => 'Status akceptacji',
'approval_submit_email' => '',
'approval_submit_email_body' => '',
'approval_submit_email_subject' => 'Prośba o akceptację',
'approval_summary' => 'Podsumowanie akceptacji',

View File

@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (540), flaviove (627), lfcristofoli (334)
// Translators: Admin (545), flaviove (627), lfcristofoli (334)
$text = array(
'accept' => 'Aceitar',
@ -86,7 +86,6 @@ Usuário: [username]
URL: [url]',
'approval_request_email_subject' => '[sitename]: [name] - Solicitação de aprovação',
'approval_status' => 'Estado da Aprovação',
'approval_submit_email' => 'Aprovação enviada',
'approval_submit_email_body' => 'Aprovação do documento
Documento: [name]
Versão: [version]
@ -135,7 +134,7 @@ URL: [url]',
'attr_no_regex_match' => 'O valor do atributo não corresponde à expressão regular',
'at_least_n_users_of_group' => 'Pelo menos [nuber_of_users] usuários de [group]',
'august' => 'Agosto',
'authentication' => '',
'authentication' => 'Autenticação',
'automatic_status_update' => 'Mudança de status automático',
'back' => 'Voltar',
'backup_list' => 'Lista de backup existente',
@ -143,7 +142,7 @@ URL: [url]',
'backup_remove' => 'Excluir backup',
'backup_tools' => 'Backup',
'between' => 'entre',
'browse' => '',
'browse' => 'Procurar',
'calendar' => 'Calendário',
'calendar_week' => 'Calendário semanal',
'cancel' => 'Cancelar',
@ -227,7 +226,7 @@ URL: [url]',
'details_version' => 'Info. da versão: [version]',
'de_DE' => 'Alemão',
'disclaimer' => 'Esta é uma área classificada. O acesso é permitido apenas ao pessoal autorizado. Qualquer violação será processado de acordo com leis internacionais.',
'discspace' => '',
'discspace' => 'Espaço em Disco',
'document' => 'Documento',
'documents' => 'Documentos',
'documents_in_process' => 'Documentos em Processo',
@ -476,7 +475,7 @@ URL: [url]',
'keywords' => 'Palavras-chaves',
'keyword_exists' => 'Palavra-chave já existe',
'language' => 'Linguagem',
'lastaccess' => '',
'lastaccess' => 'Último acesso',
'last_update' => 'Última versƒão',
'legend' => 'Legenda',
'linked_documents' => 'Documentos relacionados',
@ -642,7 +641,7 @@ Se você ainda tiver problemas para fazer o login, por favor, contate o administ
'pt_BR' => 'Português (BR)',
'quota' => 'Quota',
'quota_exceeded' => 'Sua quota de disco foi ultrapassada em [bytes].',
'quota_is_disabled' => '',
'quota_is_disabled' => 'Suporte a cota está desativado nas configurações. A definição de cota do usuário não terá efeito até que seja habilitada novamente.',
'quota_warning' => 'Seu uso máximo do disco foi ultrapassado em [bytes]. Por favor, remova documentos ou versões anteriores.',
'refresh' => 'Atualizar',
'rejected' => 'Rejeitado',

View File

@ -86,7 +86,6 @@ URL: [url]',
URL: [url]',
'approval_request_email_subject' => '[sitename]: запрос на утверждение «[name]»',
'approval_status' => 'Статус утверждения',
'approval_submit_email' => '',
'approval_submit_email_body' => '',
'approval_submit_email_subject' => 'Утверждено',
'approval_summary' => 'Сводка по утверждению',

View File

@ -77,7 +77,6 @@ $text = array(
'approval_request_email_body' => '',
'approval_request_email_subject' => '',
'approval_status' => 'Stav schválenia',
'approval_submit_email' => '',
'approval_submit_email_body' => '',
'approval_submit_email_subject' => 'Poslane schvalenie',
'approval_summary' => 'Zhrnutie schválenia',

View File

@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (1074), tmichelfelder (106)
// Translators: Admin (1075), tmichelfelder (106)
$text = array(
'accept' => 'Godkänn',
@ -86,7 +86,6 @@ Användare: [username]
URL: [url]',
'approval_request_email_subject' => '[sitename]: [name] - Begäran om godkännande',
'approval_status' => 'Status för godkännande',
'approval_submit_email' => '',
'approval_submit_email_body' => '',
'approval_submit_email_subject' => 'Skicka godkännande',
'approval_summary' => 'Sammanfattning av godkännande',
@ -136,7 +135,7 @@ URL: [url]',
'backup_remove' => 'Ta bort backup-fil',
'backup_tools' => 'Backup-verktyg',
'between' => 'mellan',
'browse' => '',
'browse' => 'Bläddra',
'calendar' => 'Kalender',
'calendar_week' => 'Kalender vecka',
'cancel' => 'Avbryt',

View File

@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (508), fengjohn (5)
// Translators: Admin (511), fengjohn (5)
$text = array(
'accept' => '接受',
@ -81,7 +81,6 @@ URL: [url]',
'approval_request_email_body' => '',
'approval_request_email_subject' => '',
'approval_status' => '审核状态',
'approval_submit_email' => '',
'approval_submit_email_body' => '',
'approval_submit_email_subject' => '提交审核',
'approval_summary' => '审核汇总',
@ -281,7 +280,7 @@ URL: [url]',
'email_footer' => '您可以用我的账户选项来改变您的e-mail设置',
'email_header' => '这是来自于DMS(文档管理系统)的自动发送消息',
'email_not_given' => '',
'empty_folder_list' => '',
'empty_folder_list' => '没有文件或子目录',
'empty_notify_list' => '没有条目',
'en_GB' => '英语',
'equal_transition_states' => '',
@ -353,7 +352,7 @@ URL: [url]',
'include_documents' => '包含文档',
'include_subdirectories' => '包含子目录',
'index_converters' => '索引文件转换',
'index_folder' => '',
'index_folder' => '索引目录',
'individuals' => '个人',
'inherited' => '继承',
'inherits_access_copy_msg' => '复制继承访问权限列表',
@ -414,7 +413,7 @@ URL: [url]',
'linked_files' => '附件',
'link_alt_updatedocument' => '超过20M大文件请选择<a href="%s">上传大文件</a>.',
'local_file' => '本地文件',
'locked_by' => '',
'locked_by' => '锁定人',
'lock_document' => '锁定',
'lock_message' => '此文档已被 <a href="mailto:[email]">[username]</a>锁定. 只有授权用户才能解锁.',
'lock_status' => '锁定状态',

View File

@ -77,7 +77,6 @@ $text = array(
'approval_request_email_body' => '',
'approval_request_email_subject' => '',
'approval_status' => '',
'approval_submit_email' => '',
'approval_submit_email_body' => '',
'approval_submit_email_subject' => '',
'approval_summary' => '',

View File

@ -201,66 +201,104 @@ switch($command) {
case 'movefolder': /* {{{ */
if($user) {
$mfolder = $dms->getFolder($_REQUEST['folderid']);
if($mfolder) {
if ($mfolder->getAccessMode($user) >= M_READ) {
if($folder = $dms->getFolder($_REQUEST['targetfolderid'])) {
if($folder->getAccessMode($user) >= M_READWRITE) {
if($mfolder->setParent($folder)) {
header('Content-Type', 'application/json');
echo json_encode(array('success'=>true, 'message'=>'Folder moved', 'data'=>''));
if(!checkFormKey('movefolder', 'GET')) {
header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>getMLText('invalid_request_token'), 'data'=>''));
} else {
$mfolder = $dms->getFolder($_REQUEST['folderid']);
if($mfolder) {
if ($mfolder->getAccessMode($user) >= M_READ) {
if($folder = $dms->getFolder($_REQUEST['targetfolderid'])) {
if($folder->getAccessMode($user) >= M_READWRITE) {
if($mfolder->setParent($folder)) {
header('Content-Type', 'application/json');
echo json_encode(array('success'=>true, 'message'=>'Folder moved', 'data'=>''));
} else {
header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>'Error moving folder', 'data'=>''));
}
} else {
header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>'Error moving folder', 'data'=>''));
echo json_encode(array('success'=>false, 'message'=>'No access on destination folder', 'data'=>''));
}
} else {
header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>'No access on destination folder', 'data'=>''));
echo json_encode(array('success'=>false, 'message'=>'No destination folder', 'data'=>''));
}
} else {
header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>'No destination folder', 'data'=>''));
echo json_encode(array('success'=>false, 'message'=>'No access', 'data'=>''));
}
} else {
header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>'No access', 'data'=>''));
echo json_encode(array('success'=>false, 'message'=>'No folder', 'data'=>''));
}
} else {
header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>'No folder', 'data'=>''));
}
}
break; /* }}} */
case 'movedocument': /* {{{ */
if($user) {
$mdocument = $dms->getDocument($_REQUEST['docid']);
if($mdocument) {
if ($mdocument->getAccessMode($user) >= M_READ) {
if($folder = $dms->getFolder($_REQUEST['targetfolderid'])) {
if($folder->getAccessMode($user) >= M_READWRITE) {
if($mdocument->setFolder($folder)) {
header('Content-Type', 'application/json');
echo json_encode(array('success'=>true, 'message'=>'Document moved', 'data'=>''));
if(!checkFormKey('movedocument', 'GET')) {
header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>getMLText('invalid_request_token'), 'data'=>''));
} else {
$mdocument = $dms->getDocument($_REQUEST['docid']);
if($mdocument) {
if ($mdocument->getAccessMode($user) >= M_READ) {
if($folder = $dms->getFolder($_REQUEST['targetfolderid'])) {
if($folder->getAccessMode($user) >= M_READWRITE) {
if($mdocument->setFolder($folder)) {
header('Content-Type', 'application/json');
echo json_encode(array('success'=>true, 'message'=>'Document moved', 'data'=>''));
} else {
header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>'Error moving folder', 'data'=>''));
}
} else {
header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>'Error moving folder', 'data'=>''));
echo json_encode(array('success'=>false, 'message'=>'No access on destination folder', 'data'=>''));
}
} else {
header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>'No access on destination folder', 'data'=>''));
echo json_encode(array('success'=>false, 'message'=>'No destination folder', 'data'=>''));
}
} else {
header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>'No destination folder', 'data'=>''));
echo json_encode(array('success'=>false, 'message'=>'No access', 'data'=>''));
}
} else {
header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>'No access', 'data'=>''));
echo json_encode(array('success'=>false, 'message'=>'No folder', 'data'=>''));
}
} else {
}
}
break; /* }}} */
case 'deletedocument': /* {{{ */
if($user) {
if(!checkFormKey('removedocument', 'GET')) {
header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>'No folder', 'data'=>''));
echo json_encode(array('success'=>false, 'message'=>getMLText('invalid_request_token'), 'data'=>''));
} else {
$document = $dms->getDocument($_REQUEST['id']);
if($document) {
if ($document->getAccessMode($user) >= M_READWRITE) {
if($document->remove()) {
header('Content-Type', 'application/json');
echo json_encode(array('success'=>true, 'message'=>'', 'data'=>''.$_REQUEST['formtoken']));
} else {
header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>'Error removing document', 'data'=>''));
}
} else {
header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>'No access', 'data'=>''));
}
} else {
header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>'No document', 'data'=>''));
}
}
}
break; /* }}} */

View File

@ -90,6 +90,8 @@ if ($notifier){
foreach ($nl["groups"] as $grp) {
$notifier->toGroup($user, $grp, $subject, $message, $params);
}
$session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_rm_document')));
}
add_log_line("?documentid=".$documentid);

View File

@ -23,6 +23,7 @@ include("../inc/inc.Utils.php");
include("../inc/inc.DBInit.php");
include("../inc/inc.Language.php");
include("../inc/inc.ClassUI.php");
include("../inc/inc.ClassAccessOperation.php");
include("../inc/inc.Authentication.php");
if (!isset($_GET["documentid"]) || !is_numeric($_GET["documentid"]) || intval($_GET["documentid"])<1) {
@ -56,9 +57,13 @@ if (!is_object($version)) {
$folder = $document->getFolder();
/* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($document, $user, $settings);
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$version));
if($view) {
$view->setParam('accessobject', $accessop);
$view->show();
exit;
}

View File

@ -16,6 +16,7 @@ img.mimeicon {
text-decoration: none;
color: #333;
padding: 2px;
cursor: pointer;
}
#admin-tools i {

View File

@ -119,6 +119,41 @@ $(document).ready( function() {
}
});
$('body').on('click', 'button.removedocument', function(ev){
ev.preventDefault();
attr_rel = $(ev.currentTarget).attr('rel');
attr_msg = $(ev.currentTarget).attr('msg');
attr_formtoken = $(ev.currentTarget).attr('formtoken');
id = attr_rel;
$.get('../op/op.Ajax.php',
{ command: 'deletedocument', id: id, formtoken: attr_formtoken },
function(data) {
// console.log(data);
if(data.success) {
$('#table-row-document-'+id).hide('slow');
noty({
text: attr_msg,
type: 'success',
dismissQueue: true,
layout: 'topRight',
theme: 'defaultTheme',
timeout: 1500,
});
} else {
noty({
text: data.message,
type: 'error',
dismissQueue: true,
layout: 'topRight',
theme: 'defaultTheme',
timeout: 3500,
});
}
},
'json'
);
});
$('a.addtoclipboard').click(function(ev){
ev.preventDefault();
attr_rel = $(ev.currentTarget).attr('rel');
@ -128,18 +163,21 @@ $(document).ready( function() {
$.get('../op/op.Ajax.php',
{ command: 'addtoclipboard', type: type, id: id },
function(data) {
console.log(data);
$('#menu-clipboard ul').remove();
$(data).appendTo('#menu-clipboard');
noty({
text: attr_msg,
type: 'success',
dismissQueue: true,
layout: 'topRight',
theme: 'defaultTheme',
timeout: 1500,
});
}
if(data.success) {
console.log(data);
$('#menu-clipboard ul').remove();
$(data).appendTo('#menu-clipboard');
noty({
text: attr_msg,
type: 'success',
dismissQueue: true,
layout: 'topRight',
theme: 'defaultTheme',
timeout: 1500,
});
}
},
'json'
);
});
$('a.sendtestmail').click(function(ev){
@ -167,19 +205,23 @@ $(document).ready( function() {
attr_source = $(ev.currentTarget).attr('source');
attr_dest = $(ev.currentTarget).attr('dest');
attr_msg = $(ev.currentTarget).attr('msg');
attr_formtoken = $(ev.currentTarget).attr('formtoken');
$.get('../op/op.Ajax.php',
{ command: 'movefolder', folderid: attr_source, targetfolderid: attr_dest },
{ command: 'movefolder', folderid: attr_source, targetfolderid: attr_dest, formtoken: attr_formtoken },
function(data) {
console.log(data);
noty({
text: data.msg,
type: data.success ? 'success' : 'error',
dismissQueue: true,
layout: 'topRight',
theme: 'defaultTheme',
timeout: 1500,
});
}
if(data.success) {
console.log(data);
noty({
text: data.msg,
type: data.success ? 'success' : 'error',
dismissQueue: true,
layout: 'topRight',
theme: 'defaultTheme',
timeout: 1500,
});
}
},
'json'
);
});
@ -188,19 +230,23 @@ $(document).ready( function() {
attr_source = $(ev.currentTarget).attr('source');
attr_dest = $(ev.currentTarget).attr('dest');
attr_msg = $(ev.currentTarget).attr('msg');
attr_formtoken = $(ev.currentTarget).attr('formtoken');
$.get('../op/op.Ajax.php',
{ command: 'movedocument', docid: attr_source, targetfolderid: attr_dest },
{ command: 'movedocument', docid: attr_source, targetfolderid: attr_dest, formtoken: attr_formtoken },
function(data) {
console.log(data);
noty({
text: data.msg,
type: data.success ? 'success' : 'error',
dismissQueue: true,
layout: 'topRight',
theme: 'defaultTheme',
timeout: 1500,
});
}
if(data.success) {
console.log(data);
noty({
text: data.msg,
type: data.success ? 'success' : 'error',
dismissQueue: true,
layout: 'topRight',
theme: 'defaultTheme',
timeout: 1500,
});
}
},
'json'
);
});

View File

@ -29,8 +29,19 @@ class SeedDMS_Bootstrap_Style extends SeedDMS_View_Common {
$this->params = $params;
$this->imgpath = '../views/'.$theme.'/images/';
$this->extraheader = '';
$this->footerjs = array();
}
/**
* Add javascript to an internal array which is output at the
* end of the page within a document.ready() function.
*
* @param string $script javascript to be added
*/
function addFooterJS($script) { /* {{{ */
$this->footerjs[] = $script;
} /* }}} */
function htmlStartPage($title="", $bodyClass="") { /* {{{ */
echo "<!DOCTYPE html>\n";
echo "<html lang=\"en\">\n<head>\n";
@ -101,6 +112,18 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
echo '<script src="../styles/'.$this->theme.'/datepicker/js/locales/bootstrap-datepicker.'.$lang.'.js"></script>'."\n";
echo '<script src="../styles/'.$this->theme.'/chosen/js/chosen.jquery.min.js"></script>'."\n";
echo '<script src="../styles/'.$this->theme.'/application.js"></script>'."\n";
if($this->footerjs) {
echo "<script type=\"text/javascript\">
//<![CDATA[
$(document).ready(function () {
";
foreach($this->footerjs as $script) {
echo $script."\n";
}
echo "});
//]]>
</script>";
}
echo "</body>\n</html>\n";
} /* }}} */
@ -1299,6 +1322,20 @@ $(function() {
echo "</div>\n";
} /* }}} */
function printDeleteDocumentButton($document, $msg){ /* {{{ */
$docid = $document->getID();
?>
<a id="delete-btn-<?php echo $docid; ?>" rel="<?php echo $docid; ?>" msg="<?php printMLText($msg); ?>"><i class="icon-remove"></i></a>
<?php
$this->addFooterJS("
$('#delete-btn-".$docid."').popover({
title: '".getMLText("rm_document")."',
placement: 'left',
html: true,
content: '<div>".getMLText("confirm_rm_document", array ("documentname" => htmlspecialchars($document->getName())))."</div><!-- div><form action=\"../op/op.RemoveDocument.php\" name=\"form1\" method=\"post\"><input type=\"hidden\" name=\"documentid\" value=\"".$docid."\">".createHiddenFieldWithKey('removedocument')."<button type=\"submit\" class=\"btn btn-danger\" style=\"float: right; margin:10px 0px;\"><i class=\"icon-remove\"></i> ".getMLText("rm_document")."</button></form --><button class=\"btn btn-danger removedocument\" style=\"float: right; margin:10px 0px;\" rel=\"".$docid."\" msg=\"".getMLText($msg)."\" formtoken=\"".createFormKey('removedocument')."\" id=\"confirm-delete-btn-".$docid."\"><i class=\"icon-remove\"></i> ".getMLText("rm_document")."</button></div>'});
");
} /* }}} */
/**
* Output HTML Code for jumploader
*

View File

@ -222,7 +222,7 @@ class SeedDMS_View_ObjectCheck extends SeedDMS_Bootstrap_Style {
echo "<td>".$error['id']."</td>";
echo "<td>".$error['parent']."</td>";
echo "<td>".$error['msg']."</td>";
echo "<td><a class=\"btn movefolder\" source=\"".$error['id']."\" dest=\"".$rootfolder->getID()."\">Move</a> </td>";
echo "<td><a class=\"btn movefolder\" source=\"".$error['id']."\" dest=\"".$rootfolder->getID()."\" formtoken=\"".createFormKey('movefolder')."\">Move</a> </td>";
echo "</tr>";
}
print "</tbody></table>\n";
@ -246,7 +246,7 @@ class SeedDMS_View_ObjectCheck extends SeedDMS_Bootstrap_Style {
echo "<td>".$error['id']."</td>";
echo "<td>".$error['parent']."</td>";
echo "<td>".$error['msg']."</td>";
echo "<td><a class=\"btn movedocument\" source=\"".$error['id']."\" dest=\"".$rootfolder->getID()."\">Move</a> </td>";
echo "<td><a class=\"btn movedocument\" source=\"".$error['id']."\" dest=\"".$rootfolder->getID()."\" formtoken=\"".createFormKey('movedocument')."\">Move</a> </td>";
echo "</tr>";
}
print "</tbody></table>\n";

View File

@ -343,7 +343,7 @@ class SeedDMS_View_Search extends SeedDMS_Bootstrap_Style {
else
$comment = htmlspecialchars($document->getComment());
if (strlen($comment) > 150) $comment = substr($comment, 0, 147) . "...";
print "<tr>";
print "<tr id=\"table-row-document-".$document->getID()."\">";
//print "<td><img src=\"../out/images/file.gif\" class=\"mimeicon\"></td>";
if (in_array(2, $searchin)) {
$docName = $this->markQuery(htmlspecialchars($document->getName()), "i");
@ -397,9 +397,7 @@ class SeedDMS_View_Search extends SeedDMS_Bootstrap_Style {
print "<td>";
print "<div class=\"list-action\">";
if($document->getAccessMode($user) >= M_ALL) {
?>
<a class_="btn btn-mini" href="../out/out.RemoveDocument.php?documentid=<?php echo $document->getID(); ?>"><i class="icon-remove"></i></a>
<?php
$this->printDeleteDocumentButton($document, 'splash_rm_document');
} else {
?>
<span style="padding: 2px; color: #CCC;"><i class="icon-remove"></i></span>

View File

@ -217,7 +217,7 @@ class SeedDMS_View_ViewFolder extends SeedDMS_Bootstrap_Style {
if(is_string($txt))
echo $txt;
else {
print "<table class=\"table\">";
print "<table id=\"viewfolder-table\" class=\"table\">";
print "<thead>\n<tr>\n";
print "<th></th>\n";
print "<th><a href=\"../out/out.ViewFolder.php?folderid=". $folderid .($orderby=="n"?"&orderby=s":"&orderby=n")."\">".getMLText("name")."</a></th>\n";
@ -304,6 +304,7 @@ class SeedDMS_View_ViewFolder extends SeedDMS_Bootstrap_Style {
}
}
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth);
foreach($documents as $document) {
$txt = $this->callHook('documentListItem', $document, $previewer);
@ -333,7 +334,7 @@ class SeedDMS_View_ViewFolder extends SeedDMS_Bootstrap_Style {
$links = $document->getDocumentLinks();
$links = SeedDMS_Core_DMS::filterDocumentLinks($user, $links);
print "<tr>";
print "<tr id=\"table-row-document-".$docID."\">";
if (file_exists($dms->contentDir . $latestContent->getPath())) {
print "<td><a rel=\"document_".$docID."\" draggable=\"true\" ondragstart=\"onDragStartDocument(event);\" href=\"../op/op.Download.php?documentid=".$docID."&version=".$version."\">";
@ -373,9 +374,7 @@ class SeedDMS_View_ViewFolder extends SeedDMS_Bootstrap_Style {
print "<td>";
print "<div class=\"list-action\">";
if($document->getAccessMode($user) >= M_ALL) {
?>
<a class_="btn btn-mini" href="../out/out.RemoveDocument.php?documentid=<?php echo $docID; ?>"><i class="icon-remove"></i></a>
<?php
$this->printDeleteDocumentButton($document, 'splash_rm_document');
} else {
?>
<span style="padding: 2px; color: #CCC;"><i class="icon-remove"></i></span>