Merge branch 'seeddms-4.3.16' into develop

Conflicts:
	Makefile
	views/bootstrap/class.UsrMgr.php
This commit is contained in:
Uwe Steinmann 2015-03-20 08:32:29 +01:00
commit cb81eb7db4
39 changed files with 563 additions and 681 deletions

View File

@ -1,3 +1,11 @@
--------------------------------------------------------------------------------
Changes in version 4.3.16
--------------------------------------------------------------------------------
- propperly take new workflow mode 'traditional without review' into
account
- fix bug in calculating pages for page browser
- updated italian and german translation
--------------------------------------------------------------------------------
Changes in version 4.3.15
--------------------------------------------------------------------------------

View File

@ -1,4 +1,4 @@
VERSION=4.3.15
VERSION=4.3.16
SRC=CHANGELOG inc conf utils index.php languages views op out controllers README.md README.Notification README.Ubuntu drop-tables-innodb.sql styles js TODO LICENSE Makefile webdav install restapi
# webapp

View File

@ -193,6 +193,25 @@ class SeedDMS_Core_DMS {
return true;
} /* }}} */
/**
* Checks if a list of objects contains a single object
*
* The regular php check done by '==' compares all attributes of
* two objects, which isn't required. The method will first check
* if the objects are instances of the same class.
*
* @param object $object1 object to look for (needle)
* @param array $list list of objects (haystack)
* @return boolean true if object was found, otherwise false
*/
static function inList($object, $list) { /* {{{ */
foreach($list as $item) {
if(get_class($item) == get_class($object) && $item->getID() == $object->getID())
return true;
}
return false;
} /* }}} */
/**
* Filter objects out which are not accessible in a given mode by a user.
*
@ -276,7 +295,7 @@ class SeedDMS_Core_DMS {
$this->classnames['group'] = 'SeedDMS_Core_Group';
$this->version = '@package_version@';
if($this->version[0] == '@')
$this->version = '4.3.14';
$this->version = '4.3.16';
} /* }}} */
/**

View File

@ -12,11 +12,11 @@
<email>uwe@steinmann.cx</email>
<active>yes</active>
</lead>
<date>2015-02-12</date>
<time>18:23:24</time>
<date>2015-03-20</date>
<time>08:02:04</time>
<version>
<release>4.3.15</release>
<api>4.3.15</api>
<release>4.3.16</release>
<api>4.3.16</api>
</version>
<stability>
<release>stable</release>
@ -24,7 +24,7 @@
</stability>
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
<notes>
users returned by SeedDMS_Core_DMS::getAllUsers() have language and theme set again
no changes
</notes>
<contents>
<dir baseinstalldir="SeedDMS" name="/">
@ -783,5 +783,21 @@ new release
- SeedDMD_Core_Folder::isSubFolder() doesn't compare object instances anymore (Bug #194)
</notes>
</release>
<release>
<date>2015-02-12</date>
<time>18:23:24</time>
<version>
<release>4.3.15</release>
<api>4.3.15</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
<notes>
users returned by SeedDMS_Core_DMS::getAllUsers() have language and theme set again
</notes>
</release>
</changelog>
</package>

View File

@ -98,7 +98,7 @@ class SeedDMS_AccessOperation {
if(get_class($this->obj) == 'SeedDMS_Core_Document') {
$latestContent = $this->obj->getLatestContent();
$status = $latestContent->getStatus();
if ((($this->settings->_enableVersionModification && ($this->obj->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && ($status["status"]==S_DRAFT_REV)) {
if ((($this->settings->_enableVersionModification && ($this->obj->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && ($status["status"]==S_DRAFT_REV || $status["status"]==S_DRAFT_APP && $this->settings->_workflowMode == 'traditional_only_approval')) {
return true;
}
}

View File

@ -20,7 +20,7 @@
class SeedDMS_Version {
public $_number = "4.3.15";
public $_number = "4.3.16";
private $_string = "SeedDMS";
function SeedDMS_Version() {

View File

@ -119,7 +119,7 @@ function fileExistsInIncludePath($file) { /* {{{ */
* Load default settings + set
*/
define("SEEDDMS_INSTALL", "on");
define("SEEDDMS_VERSION", "4.3.15");
define("SEEDDMS_VERSION", "4.3.16");
require_once('../inc/inc.ClassSettings.php');

View File

@ -942,8 +942,6 @@ URL: [url]',
'settings_passwordStrengthAlgorithm_valadvanced' => '',
'settings_passwordStrengthAlgorithm_valsimple' => '',
'settings_passwordStrength_desc' => '',
'settings_passwordЅtrength_desc' => '',
'settings_passwordР…trength_desc' => '',
'settings_pear_log' => '',
'settings_pear_webdav' => '',
'settings_perms' => '',

View File

@ -807,8 +807,6 @@ $text = array(
'settings_passwordStrengthAlgorithm_valadvanced' => 'advanced',
'settings_passwordStrengthAlgorithm_valsimple' => 'simple',
'settings_passwordStrength_desc' => '',
'settings_passwordЅtrength_desc' => '',
'settings_passwordР…trength_desc' => 'Минималната устойчивост на парола е цяло число от 0 до 100. 0 ще изключи проверката за минимална устойчивост.',
'settings_pear_log' => 'Пакет Pear : Log',
'settings_pear_webdav' => 'Пакет Pear : HTTP_WebDAV_Server',
'settings_perms' => 'Разрешения',

View File

@ -812,8 +812,6 @@ URL: [url]',
'settings_passwordStrengthAlgorithm_valadvanced' => '',
'settings_passwordStrengthAlgorithm_valsimple' => '',
'settings_passwordStrength_desc' => '',
'settings_passwordЅtrength_desc' => '',
'settings_passwordР…trength_desc' => '',
'settings_pear_log' => '',
'settings_pear_webdav' => '',
'settings_perms' => '',

View File

@ -950,9 +950,7 @@ URL: [url]',
'settings_passwordStrengthAlgorithm_desc' => 'Algoritmus použitý pro výpočet síly hesla."Jednoduchý" algoritmus pouze zkontroluje nejméně osm znaků celkem, malé písmeno, velké písmeno, číslo a speciální znak. Jsou-li tyto podmínky splněny, vrátí skóre 100 jinak 0.',
'settings_passwordStrengthAlgorithm_valadvanced' => 'pokročilý',
'settings_passwordStrengthAlgorithm_valsimple' => 'jednoduchý',
'settings_passwordStrength_desc' => '',
'settings_passwordЅtrength_desc' => 'Minimální síla hesla je celočíselná hodnota od 0 do 100. Nastavení na 0 vypne kontrolu minimální síly hesla.',
'settings_passwordР…trength_desc' => '',
'settings_passwordStrength_desc' => 'Minimální síla hesla je celočíselná hodnota od 0 do 100. Nastavení na 0 vypne kontrolu minimální síly hesla.',
'settings_pear_log' => 'Pear package : Log',
'settings_pear_webdav' => 'Pear package : HTTP_WebDAV_Server',
'settings_perms' => '',

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 (1939), dgrutsch (18)
// Translators: Admin (1955), dgrutsch (18)
$text = array(
'accept' => 'Übernehmen',
@ -76,27 +76,27 @@ URL: [url]',
'already_subscribed' => 'Bereits aboniert',
'and' => 'und',
'apply' => 'Anwenden',
'approval_deletion_email' => 'Genehmigungsaufforderung gelöscht',
'approval_deletion_email_body' => 'Genehmigungsaufforderung gelöscht
'approval_deletion_email' => 'Freigabeaufforderung gelöscht',
'approval_deletion_email_body' => 'Freigabeaufforderung gelöscht
Dokument: [name]
Version: [version]
Elternordner: [folder_path]
Benutzer: [username]
URL: [url]',
'approval_deletion_email_subject' => '[sitename]: [name] - Genehmigungsaufforderung gelöscht',
'approval_deletion_email_subject' => '[sitename]: [name] - Freigabeaufforderung gelöscht',
'approval_group' => 'Berechtigungsgruppe',
'approval_log' => 'Freigabeprotokoll',
'approval_request_email' => 'Aufforderung zur Genehmigung',
'approval_request_email_body' => 'Aufforderung zur Genehmigung
'approval_request_email' => 'Aufforderung zur Freigabe',
'approval_request_email_body' => 'Aufforderung zur Freigabe
Dokument: [name]
Version: [version]
Elternordner: [folder_path]
Benutzer: [username]
URL: [url]',
'approval_request_email_subject' => '[sitename]: [name] - Aufforderung zur Genehmigung',
'approval_request_email_subject' => '[sitename]: [name] - Aufforderung zur Freigabe',
'approval_status' => 'Freigabestatus',
'approval_submit_email' => '',
'approval_submit_email_body' => 'Genehmigung erteilen
'approval_submit_email_body' => 'Freigabe erteilen
Dokument: [name]
Version: [version]
Elternordner: [folder_path]
@ -104,7 +104,7 @@ Status: [status]
Kommentar: [comment]
Benutzer: [username]
URL: [url]',
'approval_submit_email_subject' => 'Genehmigung erteilen',
'approval_submit_email_subject' => 'Freigabe erteilen',
'approval_summary' => 'Übersicht Freigaben',
'approval_update_failed' => 'Störung bei der Aktualisierung des Berechtigungsstatus. Aktualisierung gescheitert',
'approvers' => 'Freigebender',
@ -329,13 +329,13 @@ URL: [url]',
'edit_comment' => 'Kommentar bearbeiten',
'edit_default_keywords' => 'Schlüsselworte bearbeiten',
'edit_document_access' => 'Zugriffsrechte bearbeiten',
'edit_document_notify' => 'Benachrichtigungen',
'edit_document_notify' => 'Beobachtung von Dokumenten',
'edit_document_props' => 'Bearbeiten',
'edit_event' => 'Ereignis editieren',
'edit_existing_access' => 'Bestehende Berechtigungen bearbeiten',
'edit_existing_notify' => 'Benachrichtigungen bearbeiten',
'edit_existing_notify' => 'Beobachter bearbeiten',
'edit_folder_access' => 'Zugriffsrechte bearbeiten',
'edit_folder_notify' => 'Ordner Benachrichtigungen bearbeiten',
'edit_folder_notify' => 'Beobachtung von Ordnern',
'edit_folder_props' => 'Bearbeiten',
'edit_group' => 'Gruppe bearbeiten',
'edit_user' => 'Benutzer bearbeiten',
@ -346,7 +346,7 @@ URL: [url]',
'email_header' => 'Dies ist eine automatische Nachricht des DMS-Servers.',
'email_not_given' => 'Bitte geben Sie eine gültige E-Mail-Adresse ein.',
'empty_folder_list' => 'Keine Dokumente oder Ordner',
'empty_notify_list' => 'Keine Benachrichtigungen',
'empty_notify_list' => 'Keine Beobachter',
'en_GB' => 'Englisch (GB)',
'equal_transition_states' => 'Start- und Endstatus ѕind gleich',
'error' => 'Fehler',
@ -592,7 +592,7 @@ Elternordner: [folder_path]
Benutzer: [username]
URL: [url]',
'notify_added_email_subject' => '[sitename]: [name] - Added to notification list',
'notify_deleted_email' => 'Sie wurden von der Liste der Benachrichtigungen entfernt.',
'notify_deleted_email' => 'Sie wurden von der Liste der Beobachter entfernt.',
'notify_deleted_email_body' => 'Removed from notification list
Name: [name]
Elternordner: [folder_path]
@ -861,7 +861,7 @@ URL: [url]',
'settings_dropFolderDir' => 'Verzeichnis für Ablageordner',
'settings_dropFolderDir_desc' => 'Dieses Verzeichnis kann dazu benutzt werden Dokumente auf dem Server abzulegen und von dort zu importieren anstatt sie über den Browser hochzuladen. Das Verzeichnis muss ein Unterverzeichnis mit dem Login-Namen des angemeldeten Benutzers beinhalten.',
'settings_Edition' => 'Funktions-Einstellungen',
'settings_enableAdminRevApp' => 'Admin darf genehmigen/prüfen',
'settings_enableAdminRevApp' => 'Admin darf freigeben/prüfen',
'settings_enableAdminRevApp_desc' => 'Anwählen, um Administratoren in der Liste der Prüfer und Freigeber auszugeben',
'settings_enableCalendar' => 'Kalender einschalten',
'settings_enableCalendar_desc' => 'Kalender ein/ausschalten',
@ -970,9 +970,7 @@ URL: [url]',
'settings_passwordStrengthAlgorithm_desc' => 'Der Algorithmus zur Berechnung der Passwortstärke. Der \'einfache\' Algorithmus überprüft lediglich auf mindestens einen Kleinbuchstaben, einen Großbuchstaben, eine Zahl, ein Sonderzeichen und eine Mindestlänge von 8.',
'settings_passwordStrengthAlgorithm_valadvanced' => 'komplex',
'settings_passwordStrengthAlgorithm_valsimple' => 'einfach',
'settings_passwordStrength_desc' => '',
'settings_passwordЅtrength_desc' => 'Die minimale Passwortstärke ist ein ganzzahliger werden zwischen 0 und 100. Ein Wert von 0 schaltet die Überprüfung auf starke Passwörter aus.',
'settings_passwordР…trength_desc' => '',
'settings_passwordStrength_desc' => 'Die minimale Passwortstärke ist ein ganzzahliger werden zwischen 0 und 100. Ein Wert von 0 schaltet die Überprüfung auf starke Passwörter aus.',
'settings_pear_log' => 'Pear package : Log',
'settings_pear_webdav' => 'Pear package : HTTP_WebDAV_Server',
'settings_perms' => 'Berechtigungen',

View File

@ -977,9 +977,7 @@ URL: [url]',
'settings_passwordStrengthAlgorithm_desc' => 'The algorithm used for calculating the password strength. The \'simple\' algorithm just checks for at least eight chars total, a lower case letter, an upper case letter, a number and a special char. If those conditions are met the returned score is 100 otherwise 0.',
'settings_passwordStrengthAlgorithm_valadvanced' => 'advanced',
'settings_passwordStrengthAlgorithm_valsimple' => 'simple',
'settings_passwordStrength_desc' => '',
'settings_passwordЅtrength_desc' => 'The minimum password strength is an integer value from 0 to 100. Setting it to 0 will turn off checking for the minimum password strength.',
'settings_passwordР…trength_desc' => '',
'settings_passwordStrength_desc' => 'The minimum password strength is an integer value from 0 to 100. Setting it to 0 will turn off checking for the minimum password strength.',
'settings_pear_log' => 'Pear package : Log',
'settings_pear_webdav' => 'Pear package : HTTP_WebDAV_Server',
'settings_perms' => 'Permissions',

View File

@ -956,9 +956,7 @@ URL: [url]',
'settings_passwordStrengthAlgorithm_desc' => 'El algoritmo utilizado para calcular la fortaleza de contraseña. El algoritmo «simple» solo chequea que haya al menos 8 caracteres en total, una letra minúscula y una mayúscula, un número y un caracter especial. Si se cumplen estas condiciones la puntuación devuelta es 100 de otro modo es 0.',
'settings_passwordStrengthAlgorithm_valadvanced' => 'avanzada',
'settings_passwordStrengthAlgorithm_valsimple' => 'simple',
'settings_passwordStrength_desc' => '',
'settings_passwordЅtrength_desc' => 'La fortaleza mínima de contraseña es un valor numérico de 0 a 100. Configurándolo a 0 deshabilita la validación de fortaleza mínima.',
'settings_passwordР…trength_desc' => '',
'settings_passwordStrength_desc' => 'La fortaleza mínima de contraseña es un valor numérico de 0 a 100. Configurándolo a 0 deshabilita la validación de fortaleza mínima.',
'settings_pear_log' => 'Paquete Pear : Log',
'settings_pear_webdav' => 'Paquete Pear : HTTP_WebDAV_Server',
'settings_perms' => 'Permisos',

View File

@ -932,9 +932,7 @@ URL: [url]',
'settings_passwordStrengthAlgorithm_desc' => 'L\'algorithme utilisé pour le calcul de robustesse du mot de passe. L\'algorithme \'simple\' vérifie juste pour au moins huit caractères, une lettre minuscule, une lettre majuscule, un chiffre et un caractère spécial. Si ces conditions sont remplies, le résultat retourné est de 100, sinon 0.',
'settings_passwordStrengthAlgorithm_valadvanced' => 'avancé',
'settings_passwordStrengthAlgorithm_valsimple' => 'simple',
'settings_passwordStrength_desc' => '',
'settings_passwordЅtrength_desc' => 'La résistance minimale du mot est une valeur entière de 0 à 100. Un réglage à 0 désactive la vérification de la force minimale du mot de passe.',
'settings_passwordР…trength_desc' => '',
'settings_passwordStrength_desc' => 'La résistance minimale du mot est une valeur entière de 0 à 100. Un réglage à 0 désactive la vérification de la force minimale du mot de passe.',
'settings_pear_log' => 'Pear package : Log',
'settings_pear_webdav' => 'Pear package : HTTP_WebDAV_Server',
'settings_perms' => 'Permissions',

View File

@ -955,9 +955,7 @@ URL: [url]',
'settings_passwordStrengthAlgorithm_desc' => 'Algoritmus a jelszó erősségének vizsgálatához. A \'simple\' algoritmus ellenőrzi a legalább nyolc karaktert, egy nagybetűt, egy számot és egy különleges karaktert. Ha ezek a feltételek megfelelnek, a visszatérési érték 100 egyébként 0.',
'settings_passwordStrengthAlgorithm_valadvanced' => 'részletes',
'settings_passwordStrengthAlgorithm_valsimple' => 'egyszerű',
'settings_passwordStrength_desc' => '',
'settings_passwordЅtrength_desc' => 'A legkisebb jelszó erősség integer értékben megadva 0 és 100 között. A 0 érték megadása kikapcsolja a legkisebb jelszó erősséget.',
'settings_passwordР…trength_desc' => '',
'settings_passwordStrength_desc' => 'A legkisebb jelszó erősség integer értékben megadva 0 és 100 között. A 0 érték megadása kikapcsolja a legkisebb jelszó erősséget.',
'settings_pear_log' => 'Pear csomag : Log',
'settings_pear_webdav' => 'Pear csomag : HTTP_WebDAV_Server',
'settings_perms' => 'Jogosultságok',

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 (1360)
// Translators: Admin (1360), s.pnt (26)
$text = array(
'accept' => 'Accetta',
@ -76,9 +76,14 @@ URL: [url]',
'already_subscribed' => 'L\'oggetto è già stato sottoscritto',
'and' => 'e',
'apply' => 'Applica',
'approval_deletion_email' => 'Cancellata la richiesta di approvazione',
'approval_deletion_email_body' => '',
'approval_deletion_email_subject' => '',
'approval_deletion_email' => 'Richiesta di approvazione cancellata',
'approval_deletion_email_body' => 'Richiesta di approvazione cancellata.
Documento: [name]
Versione: [version]
Cartella: [folder_path]
Utente: [username]
URL: [url]',
'approval_deletion_email_subject' => '[sitename]: [name] - Richiesta di approvazione cancellata',
'approval_group' => 'Gruppo di approvazione',
'approval_log' => 'Registro delle approvazioni',
'approval_request_email' => 'Richiesta di approvazione',
@ -89,7 +94,7 @@ Cartella: [folder_path]
Utente: [username]
URL: [url]',
'approval_request_email_subject' => '[sitename]: [name] - Richiesta di approvazione',
'approval_status' => 'Stato approvazione',
'approval_status' => 'Stato di approvazione',
'approval_submit_email' => '',
'approval_submit_email_body' => 'Documento approvato
Documento: [name]
@ -150,7 +155,7 @@ URL: [url]',
'backup_remove' => 'Elimina file di backup',
'backup_tools' => 'Strumenti di backup',
'between' => 'tra',
'bg_BG' => '',
'bg_BG' => 'Bulgaro',
'browse' => 'Scegli file',
'calendar' => 'Calendario',
'calendar_week' => 'Calendario Settimanale',
@ -185,7 +190,7 @@ URL: [url]',
'chart_sizeperuser_title' => 'Spazio su disco per utente',
'choose_attrdef' => 'Seleziona l\'Attributo',
'choose_category' => 'Seleziona',
'choose_group' => 'Seleziona gruppo',
'choose_group' => 'Seleziona il gruppo',
'choose_target_category' => 'Seleziona la categoria',
'choose_target_document' => 'Seleziona il documento',
'choose_target_file' => 'Scegli il file',
@ -203,7 +208,7 @@ URL: [url]',
'confirm_create_fulltext_index' => 'Sì, desidero ricreare l\'indice fulltext!',
'confirm_pwd' => 'Conferma la password',
'confirm_rm_backup' => 'Vuoi davvero rimuovere il file "[arkname]"?<br>Attenzione: questa operazione non può essere annullata.',
'confirm_rm_document' => 'Vuoi veramente eliminare il documento "[documentname]"?<br>Attenzione: questa operazione non può essere annullata',
'confirm_rm_document' => 'Vuoi veramente eliminare il documento "[documentname]"?<br>Attenzione: questa operazione non può essere annullata.',
'confirm_rm_dump' => 'Vuoi davvero rimuovere il file "[dumpname]"?<br>Attenzione: questa operazione non può essere annullata.',
'confirm_rm_event' => 'Vuoi davvero rimuovere l\'evento "[name]"?<br>Attenzione: questa operazione non può essere annullata.',
'confirm_rm_file' => 'Vuoi veramente eliminare il file "[name]" del documento "[documentname]"?<br>Attenzione: questa operazione non può essere annullata.',
@ -439,7 +444,7 @@ URL: [url]',
'include_documents' => 'Includi documenti',
'include_subdirectories' => 'Includi sottocartelle',
'index_converters' => 'Indice di conversione documenti',
'index_folder' => 'Indice cartelle',
'index_folder' => 'Indicizza cartella',
'individuals' => 'Singoli',
'inherited' => 'ereditato',
'inherits_access_copy_msg' => 'Copia la lista degli accessi ereditati',
@ -616,7 +621,7 @@ URL: [url]',
'no_update_cause_locked' => 'Non è quindi possible aggiornare il documento. Prego contattare l\'utente che l\'ha bloccato.',
'no_user_image' => 'Nessuna immagine trovata',
'no_version_check' => 'Il controllo per una nuova versione di SeedDMS è fallito! Questo può essere causato da allow_url_fopen settato a 0 nella tua configurazione php.',
'no_workflow_available' => '',
'no_workflow_available' => 'Nessun flusso di lavoro disponibile',
'objectcheck' => 'Controllo cartelle o documenti',
'obsolete' => 'Obsoleto',
'october' => 'Ottobre',
@ -690,8 +695,15 @@ URL: [url]',
'remove_marked_files' => 'Rimuovi i files contrassegnati',
'repaired' => 'riparato',
'repairing_objects' => 'Riparazione documenti e cartelle in corso...',
'request_workflow_action_email_body' => '',
'request_workflow_action_email_subject' => '',
'request_workflow_action_email_body' => 'Il flusso di lavoro richiede che tu esegua un\'azione.
Documento: [name]
Versione: [version]
Flusso di lavoro: [workflow]
Stato attuale: [current_state]
Cartella: [folder_path]
Utente: [username]
URL: [url]',
'request_workflow_action_email_subject' => 'Richiesta di azione in un flusso di lavoro',
'results_page' => 'Pagina dei risultati',
'return_from_subworkflow' => 'Ritorno dal sotto-flusso di lavoro',
'return_from_subworkflow_email_body' => 'Ritorno dal sotto-flusso di lavoro
@ -708,13 +720,23 @@ URL: [url]',
'reviewer_already_assigned' => 'è già assegnato come revisore',
'reviewer_already_removed' => 'è già stato rimosso dal processo di revisione oppure ha già inserito una revisione.',
'review_deletion_email' => 'Richiesta di revisione cancellata',
'review_deletion_email_body' => '',
'review_deletion_email_subject' => '',
'review_deletion_email_body' => 'Richiesta di revisione cancellata.
Documento: [name]
Versione: [version]
Cartella: [folder_path]
Utente: [username]
URL: [url]',
'review_deletion_email_subject' => '[sitename]: [name] - Richiesta di revisione cancellata',
'review_group' => 'Gruppo revisori',
'review_log' => 'Rivedi log',
'review_request_email' => 'Richiesta di revisione',
'review_request_email_body' => '',
'review_request_email_subject' => '',
'review_request_email_body' => 'Richiesta di revisione
Documento: [name]
Versione: [version]
Cartella: [folder_path]
Utente: [username]
URL: [url]',
'review_request_email_subject' => '[sitename]: [name] - Richiesta di revisione',
'review_status' => 'Stato revisioni:',
'review_submit_email' => 'Sottoposta revisione',
'review_submit_email_body' => 'Sottoposta revisione
@ -873,8 +895,8 @@ URL: [url]',
'settings_enableLargeFileUpload_desc' => 'Se selezionato, il caricamento (upload) dei files può essere effettuato anche attraverso un\'applet Java chiamata Jumploader evitando il limite di dimensioni file imposto dal browser; Jumploader permette anche il caricamento di diversi files contemporaneamente.',
'settings_enableNotificationAppRev' => 'Abilita/disabilita notifica a revisore/approvatore',
'settings_enableNotificationAppRev_desc' => 'Spuntare per inviare una notifica al revisore/approvatore nel momento in cui viene aggiunta una nuova versione del documento.',
'settings_enableNotificationWorkflow' => '',
'settings_enableNotificationWorkflow_desc' => '',
'settings_enableNotificationWorkflow' => 'Invia notifiche ai partecipanti al flusso di lavoro',
'settings_enableNotificationWorkflow_desc' => 'Se questa opzione è selezionata, gli utenti o i gruppi che sono coinvolti nella successiva transizione del flusso di lavoro riceveranno un avviso, anche se non hanno impostato notifiche riguardanti il documento.',
'settings_enableOwnerNotification' => 'Abilita/disabilita notifica al proprietario',
'settings_enableOwnerNotification_desc' => 'Spuntare per inviare una notifica al proprietario del documento nel momento in cui questo viene aggiunto.',
'settings_enableOwnerRevApp' => 'Permetti la revisione/approvazione per il proprietario',
@ -956,9 +978,7 @@ URL: [url]',
'settings_passwordStrengthAlgorithm_desc' => 'Algoritmo utilizzato per valutare la sicurezza di una password. Quello \'semplice\' si limita a controllare che siano utilizzati otto o più caratteri di cui almeno uno minuscolo, uno maiuscolo, un numero ed un carattere speciale. Nel caso in cui tutte queste condizioni siano rispettate il risultato è 100, altrimenti 0.',
'settings_passwordStrengthAlgorithm_valadvanced' => 'avanzato',
'settings_passwordStrengthAlgorithm_valsimple' => 'semplice',
'settings_passwordStrength_desc' => '',
'settings_passwordЅtrength_desc' => 'La sicurezza minima di una password è un numero intero compreso tra 0 e 100. Impostare il valore 0 disabilita il controllo per il valore di sicurezza minimo della password.',
'settings_passwordР…trength_desc' => '',
'settings_passwordStrength_desc' => 'La sicurezza minima di una password è un numero intero compreso tra 0 e 100. Impostare il valore 0 disabilita il controllo per il valore di sicurezza minimo della password.',
'settings_pear_log' => 'Pacchetto Pear: registro',
'settings_pear_webdav' => 'Pacchetto Pear: HTTP_WebDAV_Server',
'settings_perms' => 'Permessi',
@ -966,8 +986,8 @@ URL: [url]',
'settings_php_gd2' => 'Estensione PHP: php_gd2',
'settings_php_mbstring' => 'Estensione PHP: php_mbstring',
'settings_php_version' => 'Versione PHP',
'settings_presetExpirationDate' => '',
'settings_presetExpirationDate_desc' => '',
'settings_presetExpirationDate' => 'Data di scadenza predefinita',
'settings_presetExpirationDate_desc' => 'Tutti i nuovi documenti caricati avranno la data di scadenza impostata su questo valore. La data inserita può essere specificata nel formato accettato dalla funzione strtotime() di PHP, ad esempio +5 settimane.',
'settings_previewWidthDetail' => 'Larghezza immagini di anteprima (dettagli)',
'settings_previewWidthDetail_desc' => 'Larghezza delle immagini di anteprima mostrate nella pagina dei dettagli',
'settings_previewWidthList' => 'Larghezza delle immagini di anteprima (lista)',
@ -1039,7 +1059,7 @@ URL: [url]',
'settings_workflowMode_desc' => 'Il flusso di lavoro \'avanzato\' permette di rilasciare un proprio flusso di lavoro per le versioni dei documenti',
'settings_workflowMode_valadvanced' => 'Avanzato',
'settings_workflowMode_valtraditional' => 'Tradizionale',
'settings_workflowMode_valtraditional_only_approval' => '',
'settings_workflowMode_valtraditional_only_approval' => 'tradizionale (senza revisione)',
'settings_zendframework' => 'Framework Zend',
'set_expiry' => 'Imposta scadenza',
'set_owner' => 'Conferma proprietario',
@ -1104,10 +1124,10 @@ URL: [url]',
'sunday_abbr' => 'Dom',
'sv_SE' => 'Svedese',
'switched_to' => 'Passato a',
'takeOverGrpApprover' => '',
'takeOverGrpReviewer' => '',
'takeOverIndApprover' => '',
'takeOverIndReviewer' => '',
'takeOverGrpApprover' => 'Riprendi il gruppo degli approvatori dall\'ultima versione.',
'takeOverGrpReviewer' => 'Riprendi il gruppo dei revisori dall\'ultima versione.',
'takeOverIndApprover' => 'Riprendi l\'approvatore dall\'ultima versione.',
'takeOverIndReviewer' => 'Riprendi il revisore dall\'ultima versione.',
'testmail_body' => 'Questo messaggio di posta elettronica è solo un test per verificare la configurazione del repository',
'testmail_subject' => 'Messaggio di test',
'theme' => 'Tema',

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 (692), pepijn (45), reinoutdijkstra@hotmail.com (270)
// Translators: Admin (693), pepijn (45), reinoutdijkstra@hotmail.com (270)
$text = array(
'accept' => 'Accept',
@ -143,7 +143,7 @@ URL: [url]',
'backup_remove' => 'Verwijder backup bestand',
'backup_tools' => 'Backup gereedschap',
'between' => 'tussen',
'bg_BG' => '',
'bg_BG' => 'Bulgaars',
'browse' => 'Browse',
'calendar' => 'Kalender',
'calendar_week' => 'Weekkalender',
@ -947,9 +947,7 @@ URL: [url]',
'settings_passwordStrengthAlgorithm_desc' => 'Het algoritme gebruikt om de wachtwoord sterkte te berekenen. Het \'simpele\' algoritme controleert alleen op minimaal 8 karakters, een kleine letter, een nummer en een speciaal karakter. Als aan deze condities wordt voldaan is er een resultaat van 100 anders 0.',
'settings_passwordStrengthAlgorithm_valadvanced' => 'uitgebreid',
'settings_passwordStrengthAlgorithm_valsimple' => 'simpel',
'settings_passwordStrength_desc' => '',
'settings_passwordЅtrength_desc' => 'De sterkte van het wachtwoord is valide van 0 tot 100. Het op 0 zetten zal de controle voor de minimale wachtwoordsterkte uitschakelen.',
'settings_passwordР…trength_desc' => '',
'settings_passwordStrength_desc' => 'De sterkte van het wachtwoord is valide van 0 tot 100. Het op 0 zetten zal de controle voor de minimale wachtwoordsterkte uitschakelen.',
'settings_pear_log' => 'Pear package : Log',
'settings_pear_webdav' => 'Pear package : HTTP_WebDAV_Server',
'settings_perms' => 'Machtigingen',

View File

@ -935,9 +935,7 @@ URL: [url]',
'settings_passwordStrengthAlgorithm_desc' => 'Algorytm używany do obliczania siły hasła. Algorytm \'prosty\' sprawdza tylko czy hasło ma minimum 8 znaków, czy zawiera małe i wielkie litery, cyfry i znaki specjalne. Jeśli te wymagania są spełnione zwracany jest wynik 100, jeśli nie, zwracany jest wynik 0.',
'settings_passwordStrengthAlgorithm_valadvanced' => 'zaawansowany',
'settings_passwordStrengthAlgorithm_valsimple' => 'prosty',
'settings_passwordStrength_desc' => '',
'settings_passwordЅtrength_desc' => 'Minimalna siła hasła jest liczbą całkowitą o wartości między 0, a 100. Ustawienie wartości 0 wyłącza sprawdzanie siły hasła.',
'settings_passwordР…trength_desc' => '',
'settings_passwordStrength_desc' => 'Minimalna siła hasła jest liczbą całkowitą o wartości między 0, a 100. Ustawienie wartości 0 wyłącza sprawdzanie siły hasła.',
'settings_pear_log' => 'Pakiet Pear: Log',
'settings_pear_webdav' => 'Pakiet Pear: HTTP_WebDAV_Server',
'settings_perms' => 'Uprawnienia',

View File

@ -953,9 +953,7 @@ URL: [url]',
'settings_passwordStrengthAlgorithm_desc' => 'O algoritmo utilizado para o cálculo da força da senha. O algoritmo "simples" apenas verifica se há pelo menos oito caracteres totais, uma letra minúscula, uma letra maiúscula, um número e um caractere especial. Se essas condições forem satisfeitas a pontuação retornada é 100 caso contrário 0.',
'settings_passwordStrengthAlgorithm_valadvanced' => 'avançada',
'settings_passwordStrengthAlgorithm_valsimple' => 'simples',
'settings_passwordStrength_desc' => '',
'settings_passwordЅtrength_desc' => 'A força mínima de senha é um valor inteiro de 0 a 100. Defini-lo para 0 irá desativar a verificação para a força mínima senha.',
'settings_passwordР…trength_desc' => '',
'settings_passwordStrength_desc' => 'A força mínima de senha é um valor inteiro de 0 a 100. Defini-lo para 0 irá desativar a verificação para a força mínima senha.',
'settings_pear_log' => 'Pacote pear : Log',
'settings_pear_webdav' => 'Pacote pear : HTTP_WebDAV_Server',
'settings_perms' => 'Permissões',

View File

@ -956,9 +956,7 @@ URL: [url]',
'settings_passwordStrengthAlgorithm_desc' => 'Algoritmul folosit pentru calculul siguranței parolei. Algoritmul \'simplu\' doar verifică să contină cel puțin opt caractere totale, o literă mică, o literă mare, un număr și un caracter special. Dacă aceste condiții sunt îndeplinite atunci scorul întors este 100 altfel 0.',
'settings_passwordStrengthAlgorithm_valadvanced' => 'avansat',
'settings_passwordStrengthAlgorithm_valsimple' => 'simplu',
'settings_passwordStrength_desc' => '',
'settings_passwordЅtrength_desc' => 'Siguranța minimă a parolei este o valoare întregă de la 0 la 100. Setarea pe 0 va opri verificarea pentru Siguranța minimă a parolei.',
'settings_passwordР…trength_desc' => '',
'settings_passwordStrength_desc' => 'Siguranța minimă a parolei este o valoare întregă de la 0 la 100. Setarea pe 0 va opri verificarea pentru Siguranța minimă a parolei.',
'settings_pear_log' => 'Pear package : Log',
'settings_pear_webdav' => 'Pear package : HTTP_WebDAV_Server',
'settings_perms' => 'Permisiuni',

View File

@ -946,9 +946,7 @@ URL: [url]',
'settings_passwordStrengthAlgorithm_desc' => 'Алгоритм для расчёта сложности пароля. «Простой» проверяет, что длина пароля не менее восьми символов, буквы нижнего и верхнего регистров, цифры и специального символа. Если эти условия соблюдены возвращается 100 очков, иначе 0.',
'settings_passwordStrengthAlgorithm_valadvanced' => 'повышенный',
'settings_passwordStrengthAlgorithm_valsimple' => 'простой',
'settings_passwordStrength_desc' => '',
'settings_passwordЅtrength_desc' => 'Минимальная сложность пароля — это целое число от 0 до 100. При значении равном 0 проверка сложности пароля будет отключена.',
'settings_passwordР…trength_desc' => '',
'settings_passwordStrength_desc' => 'Минимальная сложность пароля — это целое число от 0 до 100. При значении равном 0 проверка сложности пароля будет отключена.',
'settings_pear_log' => 'Пакет Pear : Log',
'settings_pear_webdav' => 'Пакет Pear : HTTP_WebDAV_Server',
'settings_perms' => 'Разрешения',

View File

@ -807,8 +807,6 @@ $text = array(
'settings_passwordStrengthAlgorithm_valadvanced' => '',
'settings_passwordStrengthAlgorithm_valsimple' => '',
'settings_passwordStrength_desc' => '',
'settings_passwordЅtrength_desc' => '',
'settings_passwordР…trength_desc' => '',
'settings_pear_log' => '',
'settings_pear_webdav' => '',
'settings_perms' => '',

View File

@ -941,9 +941,7 @@ URL: [url]',
'settings_passwordStrengthAlgorithm_desc' => 'Algoritmen används för att beräkna lösenordets kvalitet. Den \'enkla\' algoritmen kollar att det finns minst 8 tecken, minst en liten bokstav, minst en stor bokstav, en siffra och ett specialtecken. Om alla dessa delar används, räknas kvaliteten som 100, annars 0.',
'settings_passwordStrengthAlgorithm_valadvanced' => 'avancerad',
'settings_passwordStrengthAlgorithm_valsimple' => 'enkel',
'settings_passwordStrength_desc' => '',
'settings_passwordЅtrength_desc' => 'Den lägsta kvaliteten som ett lösenord måste ha. Det är ett värde från 0 till 100. Inställningen 0 stränger av övervakningen av lösenordets minimala kvalitet.',
'settings_passwordР…trength_desc' => '',
'settings_passwordStrength_desc' => 'Den lägsta kvaliteten som ett lösenord måste ha. Det är ett värde från 0 till 100. Inställningen 0 stränger av övervakningen av lösenordets minimala kvalitet.',
'settings_pear_log' => 'Pear-paketet : Logg',
'settings_pear_webdav' => 'Pear-paketet : HTTP_WebDAV_Server',
'settings_perms' => 'Behörigheter',

View File

@ -957,9 +957,7 @@ URL: [url]',
'settings_passwordStrengthAlgorithm_desc' => 'Algoritma, parola güvenliğinin hesaplanmasında kullanılır. \'Basit\' algoritma toplamda en az sekiz karakter, bir küçük harf, bir büyük harf, bir rakam ve bir özel karakter olup olmadığını kontrol eder. Bu koşullar sağlanırsa puan 100 olur, aksi takdirde 0 olur.',
'settings_passwordStrengthAlgorithm_valadvanced' => 'gelişmiş',
'settings_passwordStrengthAlgorithm_valsimple' => 'basit',
'settings_passwordStrength_desc' => 'Minimum parola güvenliği değeri 0 ile 100 arasında bir tam sayıdır. 0 yaparsanız minimum parola güvenliğini kapatmış olursunuz.',
'settings_passwordЅtrength_desc' => 'En düşük şifre dayanıklılığı 0 ile 100 arasındaki bir tam sayıdır. Bu sayıyı 0 yapmak şifre dayanıklılığı kontrolünü devre dışı bırakır.',
'settings_passwordР…trength_desc' => '',
'settings_passwordStrength_desc' => 'En düşük şifre dayanıklılığı 0 ile 100 arasındaki bir tam sayıdır. Bu sayıyı 0 yapmak şifre dayanıklılığı kontrolünü devre dışı bırakır.',
'settings_pear_log' => 'Pear paket : Log',
'settings_pear_webdav' => 'Pear paket : HTTP_WebDAV_Server',
'settings_perms' => 'İzinler',

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 (550), fengjohn (5)
// Translators: Admin (551), fengjohn (5)
$text = array(
'accept' => '接受',
@ -132,7 +132,7 @@ URL: [url]',
'backup_remove' => '删除备份',
'backup_tools' => '备份工具',
'between' => '时间段',
'bg_BG' => '',
'bg_BG' => '保加利亚语',
'browse' => '浏览',
'calendar' => '日历',
'calendar_week' => '',
@ -813,8 +813,6 @@ URL: [url]',
'settings_passwordStrengthAlgorithm_valadvanced' => '',
'settings_passwordStrengthAlgorithm_valsimple' => '',
'settings_passwordStrength_desc' => '',
'settings_passwordЅtrength_desc' => '',
'settings_passwordР…trength_desc' => '',
'settings_pear_log' => '',
'settings_pear_webdav' => '',
'settings_perms' => '',

View File

@ -811,8 +811,6 @@ URL: [url]',
'settings_passwordStrengthAlgorithm_valadvanced' => '',
'settings_passwordStrengthAlgorithm_valsimple' => '',
'settings_passwordStrength_desc' => '',
'settings_passwordЅtrength_desc' => '',
'settings_passwordР…trength_desc' => '',
'settings_pear_log' => '',
'settings_pear_webdav' => '',
'settings_perms' => '',

View File

@ -108,13 +108,16 @@ if (($oldname = $document->getName()) != $name) {
$params['url'] = "http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'].$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID();
$params['sitename'] = $settings->_siteName;
$params['http_root'] = $settings->_httpRoot;
// if user is not owner send notification to owner
if ($user->getID() != $document->getOwner()->getID() &&
!SeedDMS_Core_DMS::inList($document->getOwner(), $notifyList['users'])) {
$notifyList['users'][] = $document->getOwner();
}
$notifier->toList($user, $notifyList["users"], $subject, $message, $params);
foreach ($notifyList["groups"] as $grp) {
$notifier->toGroup($user, $grp, $subject, $message, $params);
}
// if user is not owner send notification to owner
if ($user->getID() != $document->getOwner()->getID())
$notifier->toIndividual($user, $document->getOwner(), $subject, $message, $params);
}
}
@ -159,14 +162,16 @@ if (($oldcomment = $document->getComment()) != $comment) {
$params['url'] = "http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'].$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID();
$params['sitename'] = $settings->_siteName;
$params['http_root'] = $settings->_httpRoot;
// if user is not owner send notification to owner
if ($user->getID() != $document->getOwner()->getID() &&
!SeedDMS_Core_DMS::inList($document->getOwner(), $notifyList['users'])) {
$notifyList['users'][] = $document->getOwner();
}
$notifier->toList($user, $notifyList["users"], $subject, $message, $params);
foreach ($notifyList["groups"] as $grp) {
$notifier->toGroup($user, $grp, $subject, $message, $params);
}
// if user is not owner send notification to owner
if ($user->getID() != $document->getOwner()->getID())
$notifier->toIndividual($user, $document->getOwner(), $subject, $message, $params);
}
}
else {
@ -184,7 +189,7 @@ if ($_POST["expires"] != "false") {
}
}
//if ($expires) {
if ($expires != $document->getExpires()) {
if($document->setExpires($expires)) {
if($notifier) {
$notifyList = $document->getNotifyList();
@ -199,6 +204,12 @@ if ($_POST["expires"] != "false") {
$params['url'] = "http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'].$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID();
$params['sitename'] = $settings->_siteName;
$params['http_root'] = $settings->_httpRoot;
// if user is not owner send notification to owner
if ($user->getID() != $document->getOwner()->getID() &&
!SeedDMS_Core_DMS::inList($document->getOwner(), $notifyList['users'])) {
$notifyList['users'][] = $document->getOwner();
}
$notifier->toList($user, $notifyList["users"], $subject, $message, $params);
foreach ($notifyList["groups"] as $grp) {
$notifier->toGroup($user, $grp, $subject, $message, $params);
@ -207,7 +218,7 @@ if ($_POST["expires"] != "false") {
} else {
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured"));
}
//}
}
if (($oldkeywords = $document->getKeywords()) != $keywords) {
if($document->setKeywords($keywords)) {

View File

@ -408,7 +408,7 @@ if(isset($_GET["fullsearch"]) && $_GET["fullsearch"]) {
}
}
}
$totalPages = count($entries)/$limit;
$totalPages = (int) (count($entries)/$limit);
if(count($entries)%$limit)
$totalPages++;
if($limit > 0)

View File

@ -679,7 +679,7 @@ function doSearch() { /* {{{ */
$querystr = $app->request()->get('query');
$mode = $app->request()->get('mode');
if(!$limit = $app->request()->get('limit'))
$limit = 8;
$limit = 5;
$resArr = $dms->search($querystr);
$entries = array();
$count = 0;

View File

@ -222,7 +222,7 @@ $(document).ready(function() {
<?php
}
}
if($workflowmode != 'traditional') {
if($workflowmode == 'advanced') {
?>
<tr>
<td>
@ -262,6 +262,7 @@ $(document).ready(function() {
</tr>
<?php
} else {
if($workflowmode == 'traditional') {
?>
<tr>
<td>
@ -372,7 +373,7 @@ $(document).ready(function() {
?>
</td>
</tr>
<?php } ?>
<tr>
<td>
<?php $this->contentSubHeading(getMLText("assign_approvers")); ?>

View File

@ -62,7 +62,7 @@ class SeedDMS_View_AdminTools extends SeedDMS_Bootstrap_Style {
<a href="../out/out.AttributeMgr.php" class="span3 btn btn-medium"><i class="icon-tags"></i><br /><?php echo getMLText("global_attributedefinitions")?></a>
</div>
<?php
if($this->params['workflowmode'] != 'traditional') {
if($this->params['workflowmode'] == 'advanced') {
?>
<div class="row-fluid">
<a href="../out/out.WorkflowMgr.php" class="span3 btn btn-medium"><i class="icon-sitemap"></i><br /><?php echo getMLText("global_workflows"); ?></a>

View File

@ -505,8 +505,9 @@ $(document).ready(function () {
echo "<li><a href=\"../out/out.MyDocuments.php?inProcess=1\">".getMLText("documents_in_process")."</a></li>\n";
echo "<li><a href=\"../out/out.MyDocuments.php\">".getMLText("all_documents")."</a></li>\n";
if($this->params['workflowmode'] == 'traditional') {
echo "<li><a href=\"../out/out.ReviewSummary.php\">".getMLText("review_summary")."</a></li>\n";
if($this->params['workflowmode'] == 'traditional' || $this->params['workflowmode'] == 'traditional_only_approval') {
if($this->params['workflowmode'] == 'traditional')
echo "<li><a href=\"../out/out.ReviewSummary.php\">".getMLText("review_summary")."</a></li>\n";
echo "<li><a href=\"../out/out.ApprovalSummary.php\">".getMLText("approval_summary")."</a></li>\n";
} else {
echo "<li><a href=\"../out/out.WorkflowSummary.php\">".getMLText("workflow_summary")."</a></li>\n";
@ -538,7 +539,7 @@ $(document).ready(function () {
echo " <li><a href=\"../out/out.DefaultKeywords.php\">".getMLText("global_default_keywords")."</a></li>\n";
echo " <li><a href=\"../out/out.Categories.php\">".getMLText("global_document_categories")."</a></li>\n";
echo " <li><a href=\"../out/out.AttributeMgr.php\">".getMLText("global_attributedefinitions")."</a></li>\n";
if($this->params['workflowmode'] != 'traditional') {
if($this->params['workflowmode'] == 'advanced') {
echo " <li><a href=\"../out/out.WorkflowMgr.php\">".getMLText("global_workflows")."</a></li>\n";
echo " <li><a href=\"../out/out.WorkflowStatesMgr.php\">".getMLText("global_workflow_states")."</a></li>\n";
echo " <li><a href=\"../out/out.WorkflowActionsMgr.php\">".getMLText("global_workflow_actions")."</a></li>\n";

View File

@ -49,7 +49,7 @@ class SeedDMS_View_EditDocument extends SeedDMS_Bootstrap_Style {
function checkForm()
{
msg = new Array();
if (document.form1.name.value == "") msg.push("<?php printMLText("js_no_name");?>)";
if (document.form1.name.value == "") msg.push("<?php printMLText("js_no_name");?>");
<?php
if ($strictformcheck) {
?>

View File

@ -57,7 +57,7 @@ class SeedDMS_View_MyDocuments extends SeedDMS_Bootstrap_Style {
exit;
}
if($workflowmode == 'traditional') {
if($workflowmode == 'traditional' || $workflowmode == 'traditional_only_approval') {
// Get document list for the current user.
$reviewStatus = $user->getReviewStatus();
$approvalStatus = $user->getApprovalStatus();
@ -137,91 +137,93 @@ class SeedDMS_View_MyDocuments extends SeedDMS_Bootstrap_Style {
}
// List the documents where a review has been requested.
$this->contentHeading(getMLText("documents_to_review"));
$this->contentContainerStart();
$printheader=true;
$iRev = array();
$dList = array();
foreach ($reviewStatus["indstatus"] as $st) {
if ( $st["status"]==0 && isset($docIdx[$st["documentID"]][$st["version"]]) && !in_array($st["documentID"], $dList) ) {
$dList[] = $st["documentID"];
$document = $dms->getDocument($st["documentID"]);
if($workflowmode == 'traditional') {
$this->contentHeading(getMLText("documents_to_review"));
$this->contentContainerStart();
$printheader=true;
$iRev = array();
$dList = array();
foreach ($reviewStatus["indstatus"] as $st) {
if ($printheader){
print "<table class=\"table table-condensed\">";
print "<thead>\n<tr>\n";
print "<th></th>\n";
print "<th>".getMLText("name")."</th>\n";
print "<th>".getMLText("owner")."</th>\n";
print "<th>".getMLText("version")."</th>\n";
print "<th>".getMLText("last_update")."</th>\n";
print "<th>".getMLText("expires")."</th>\n";
print "</tr>\n</thead>\n<tbody>\n";
$printheader=false;
if ( $st["status"]==0 && isset($docIdx[$st["documentID"]][$st["version"]]) && !in_array($st["documentID"], $dList) ) {
$dList[] = $st["documentID"];
$document = $dms->getDocument($st["documentID"]);
if ($printheader){
print "<table class=\"table table-condensed\">";
print "<thead>\n<tr>\n";
print "<th></th>\n";
print "<th>".getMLText("name")."</th>\n";
print "<th>".getMLText("owner")."</th>\n";
print "<th>".getMLText("version")."</th>\n";
print "<th>".getMLText("last_update")."</th>\n";
print "<th>".getMLText("expires")."</th>\n";
print "</tr>\n</thead>\n<tbody>\n";
$printheader=false;
}
print "<tr>\n";
$latestContent = $document->getLatestContent();
$previewer->createPreview($latestContent);
print "<td><a href=\"../op/op.Download.php?documentid=".$st["documentID"]."&version=".$st["version"]."\">";
if($previewer->hasPreview($latestContent)) {
print "<img class=\"mimeicon\" width=\"".$previewwidth."\"src=\"../op/op.Preview.php?documentid=".$document->getID()."&version=".$latestContent->getVersion()."&width=".$previewwidth."\" title=\"".htmlspecialchars($latestContent->getMimeType())."\">";
} else {
print "<img class=\"mimeicon\" src=\"".$this->getMimeIcon($latestContent->getFileType())."\" title=\"".htmlspecialchars($latestContent->getMimeType())."\">";
}
print "</a></td>";
print "<td><a href=\"out.ViewDocument.php?documentid=".$st["documentID"]."\">".htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["name"])."</a></td>";
print "<td>".htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["ownerName"])."</td>";
print "<td>".$st["version"]."</td>";
print "<td>".$st["date"]." ". htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["statusName"]) ."</td>";
print "<td".($docIdx[$st["documentID"]][$st["version"]]['status']!=S_EXPIRED?"":" class=\"warning\"").">".(!$docIdx[$st["documentID"]][$st["version"]]["expires"] ? "-":getReadableDate($docIdx[$st["documentID"]][$st["version"]]["expires"]))."</td>";
print "</tr>\n";
}
}
foreach ($reviewStatus["grpstatus"] as $st) {
print "<tr>\n";
$latestContent = $document->getLatestContent();
$previewer->createPreview($latestContent);
print "<td><a href=\"../op/op.Download.php?documentid=".$st["documentID"]."&version=".$st["version"]."\">";
if($previewer->hasPreview($latestContent)) {
print "<img class=\"mimeicon\" width=\"".$previewwidth."\"src=\"../op/op.Preview.php?documentid=".$document->getID()."&version=".$latestContent->getVersion()."&width=".$previewwidth."\" title=\"".htmlspecialchars($latestContent->getMimeType())."\">";
} else {
print "<img class=\"mimeicon\" src=\"".$this->getMimeIcon($latestContent->getFileType())."\" title=\"".htmlspecialchars($latestContent->getMimeType())."\">";
}
print "</a></td>";
print "<td><a href=\"out.ViewDocument.php?documentid=".$st["documentID"]."\">".htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["name"])."</a></td>";
print "<td>".htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["ownerName"])."</td>";
print "<td>".$st["version"]."</td>";
print "<td>".$st["date"]." ". htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["statusName"]) ."</td>";
print "<td".($docIdx[$st["documentID"]][$st["version"]]['status']!=S_EXPIRED?"":" class=\"warning\"").">".(!$docIdx[$st["documentID"]][$st["version"]]["expires"] ? "-":getReadableDate($docIdx[$st["documentID"]][$st["version"]]["expires"]))."</td>";
print "</tr>\n";
}
}
foreach ($reviewStatus["grpstatus"] as $st) {
if (!in_array($st["documentID"], $iRev) && $st["status"]==0 && isset($docIdx[$st["documentID"]][$st["version"]]) && !in_array($st["documentID"], $dList) && $docIdx[$st["documentID"]][$st["version"]]['owner'] != $user->getId()) {
$dList[] = $st["documentID"];
$document = $dms->getDocument($st["documentID"]);
if (!in_array($st["documentID"], $iRev) && $st["status"]==0 && isset($docIdx[$st["documentID"]][$st["version"]]) && !in_array($st["documentID"], $dList) && $docIdx[$st["documentID"]][$st["version"]]['owner'] != $user->getId()) {
$dList[] = $st["documentID"];
$document = $dms->getDocument($st["documentID"]);
if ($printheader){
print "<table class=\"table table-condensed\">";
print "<thead>\n<tr>\n";
print "<th></th>\n";
print "<th>".getMLText("name")."</th>\n";
print "<th>".getMLText("owner")."</th>\n";
print "<th>".getMLText("version")."</th>\n";
print "<th>".getMLText("last_update")."</th>\n";
print "<th>".getMLText("expires")."</th>\n";
print "</tr>\n</thead>\n<tbody>\n";
$printheader=false;
}
if ($printheader){
print "<table class=\"table table-condensed\">";
print "<thead>\n<tr>\n";
print "<th></th>\n";
print "<th>".getMLText("name")."</th>\n";
print "<th>".getMLText("owner")."</th>\n";
print "<th>".getMLText("version")."</th>\n";
print "<th>".getMLText("last_update")."</th>\n";
print "<th>".getMLText("expires")."</th>\n";
print "</tr>\n</thead>\n<tbody>\n";
$printheader=false;
}
print "<tr>\n";
$latestContent = $document->getLatestContent();
$previewer->createPreview($latestContent);
print "<td><a href=\"../op/op.Download.php?documentid=".$st["documentID"]."&version=".$st["version"]."\">";
if($previewer->hasPreview($latestContent)) {
print "<img class=\"mimeicon\" width=\"".$previewwidth."\"src=\"../op/op.Preview.php?documentid=".$document->getID()."&version=".$latestContent->getVersion()."&width=".$previewwidth."\" title=\"".htmlspecialchars($latestContent->getMimeType())."\">";
} else {
print "<img class=\"mimeicon\" src=\"".$this->getMimeIcon($latestContent->getFileType())."\" title=\"".htmlspecialchars($latestContent->getMimeType())."\">";
print "<tr>\n";
$latestContent = $document->getLatestContent();
$previewer->createPreview($latestContent);
print "<td><a href=\"../op/op.Download.php?documentid=".$st["documentID"]."&version=".$st["version"]."\">";
if($previewer->hasPreview($latestContent)) {
print "<img class=\"mimeicon\" width=\"".$previewwidth."\"src=\"../op/op.Preview.php?documentid=".$document->getID()."&version=".$latestContent->getVersion()."&width=".$previewwidth."\" title=\"".htmlspecialchars($latestContent->getMimeType())."\">";
} else {
print "<img class=\"mimeicon\" src=\"".$this->getMimeIcon($latestContent->getFileType())."\" title=\"".htmlspecialchars($latestContent->getMimeType())."\">";
}
print "</a></td>";
print "<td><a href=\"out.ViewDocument.php?documentid=".$st["documentID"]."\">".htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["name"])."</a></td>";
print "<td>".htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["ownerName"])."</td>";
print "<td>".$st["version"]."</td>";
print "<td>".$st["date"]." ". htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["statusName"])."</td>";
print "<td".($docIdx[$st["documentID"]][$st["version"]]['status']!=S_EXPIRED?"":" class=\"warning\"").">".(!$docIdx[$st["documentID"]][$st["version"]]["expires"] ? "-":getReadableDate($docIdx[$st["documentID"]][$st["version"]]["expires"]))."</td>";
print "</tr>\n";
}
print "</a></td>";
print "<td><a href=\"out.ViewDocument.php?documentid=".$st["documentID"]."\">".htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["name"])."</a></td>";
print "<td>".htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["ownerName"])."</td>";
print "<td>".$st["version"]."</td>";
print "<td>".$st["date"]." ". htmlspecialchars($docIdx[$st["documentID"]][$st["version"]]["statusName"])."</td>";
print "<td".($docIdx[$st["documentID"]][$st["version"]]['status']!=S_EXPIRED?"":" class=\"warning\"").">".(!$docIdx[$st["documentID"]][$st["version"]]["expires"] ? "-":getReadableDate($docIdx[$st["documentID"]][$st["version"]]["expires"]))."</td>";
print "</tr>\n";
}
if (!$printheader){
echo "</tbody>\n</table>";
}else{
printMLText("no_docs_to_review");
}
$this->contentContainerEnd();
}
if (!$printheader){
echo "</tbody>\n</table>";
}else{
printMLText("no_docs_to_review");
}
$this->contentContainerEnd();
// List the documents where an approval has been requested.
$this->contentHeading(getMLText("documents_to_approve"));
@ -306,11 +308,12 @@ class SeedDMS_View_MyDocuments extends SeedDMS_Bootstrap_Style {
$this->contentContainerEnd();
}
else {
$this->contentHeading(getMLText("documents_to_review"));
$this->contentContainerStart();
printMLText("no_review_needed");
$this->contentContainerEnd();
if($workflowmode == 'traditional') {
$this->contentHeading(getMLText("documents_to_review"));
$this->contentContainerStart();
printMLText("no_review_needed");
$this->contentContainerEnd();
}
$this->contentHeading(getMLText("documents_to_approve"));
$this->contentContainerStart();
printMLText("no_approval_needed");

View File

@ -241,8 +241,10 @@ class SeedDMS_View_Search extends SeedDMS_Bootstrap_Style {
<tr>
<td><?php printMLText("status");?>:</td>
<td>
<?php if($workflowmode == 'traditional' || $workflowmode == 'traditional_only_approval') { ?>
<?php if($workflowmode == 'traditional') { ?>
<label class="checkbox" for='pendingReview'><input type="checkbox" id="pendingReview" name="pendingReview" value="1" <?php echo in_array(S_DRAFT_REV, $status) ? "checked" : ""; ?>><?php printOverallStatusText(S_DRAFT_REV);?></label>
<?php } ?>
<label class="checkbox" for='pendingApproval'><input type="checkbox" id="pendingApproval" name="pendingApproval" value="1" <?php echo in_array(S_DRAFT_APP, $status) ? "checked" : ""; ?>><?php printOverallStatusText(S_DRAFT_APP);?></label>
<?php } else { ?>
<label class="checkbox" for='inWorkflow'><input type="checkbox" id="inWorkflow" name="inWorkflow" value="1" <?php echo in_array(S_IN_WORKFLOW, $status) ? "checked" : ""; ?>><?php printOverallStatusText(S_IN_WORKFLOW);?></label>

View File

@ -335,7 +335,7 @@ if(!is_writeable($settings->_configFilePath)) {
<td><?php printMLText("settings_enablePasswordForgotten");?>:</td>
<td><input name="enablePasswordForgotten" type="checkbox" <?php if ($settings->_enablePasswordForgotten) echo "checked" ?> /></td>
</tr>
<tr title="<?php printMLText("settings_passwordЅtrength_desc");?>">
<tr title="<?php printMLText("settings_passwordStrength_desc");?>">
<td><?php printMLText("settings_passwordStrength");?>:</td>
<td><input type="text" name="passwordStrength" value="<?php echo $settings->_passwordStrength; ?>" size="2" /></td>
</tr>

View File

@ -31,6 +31,300 @@ require_once("class.Bootstrap.php");
*/
class SeedDMS_View_UsrMgr extends SeedDMS_Bootstrap_Style {
function showUserForm($currUser) { /* {{{ */
$dms = $this->params['dms'];
$user = $this->params['user'];
$seluser = $this->params['seluser'];
$groups = $this->params['allgroups'];
$passwordstrength = $this->params['passwordstrength'];
$passwordexpiration = $this->params['passwordexpiration'];
$httproot = $this->params['httproot'];
$enableuserimage = $this->params['enableuserimage'];
$undeluserids = $this->params['undeluserids'];
$workflowmode = $this->params['workflowmode'];
$quota = $this->params['quota'];
?>
<form action="../op/op.UsrMgr.php" method="post" enctype="multipart/form-data" name="form<?php print $currUser ? $currUser->getID() : '0';?>" onsubmit="return checkForm('<?php print $currUser ? $currUser->getID() : '0';?>');">
<?php
if($currUser) {
echo createHiddenFieldWithKey('edituser');
?>
<input type="hidden" name="userid" value="<?php print $currUser->getID();?>">
<input type="hidden" name="action" value="edituser">
<?php
} else {
echo createHiddenFieldWithKey('adduser');
?>
<input type="hidden" name="action" value="adduser">
<?php
}
?>
<table class="table-condensed">
<?php
if($currUser && !in_array($currUser->getID(), $undeluserids)) {
?>
<tr>
<td></td>
<td><a class="standardText btn" href="../out/out.RemoveUser.php?userid=<?php print $currUser->getID();?>"><i class="icon-remove"></i> <?php printMLText("rm_user");?></a></td>
</tr>
<?php
}
?>
<tr>
<td><?php printMLText("user_login");?>:</td>
<td><input type="text" name="login" value="<?php print $currUser ? htmlspecialchars($currUser->getLogin()) : "";?>"></td>
</tr>
<tr>
<td><?php printMLText("password");?>:</td>
<td><input type="password" class="pwd" rel="strengthbar<?php echo $currUser ? $currUser->getID() : "0"; ?>" name="pwd"></td>
</tr>
<?php
if($passwordstrength > 0) {
?>
<tr>
<td><?php printMLText("password_strength");?>:</td>
<td>
<div id="strengthbar<?php echo $currUser ? $currUser->getID() : "0"; ?>" class="progress" style="width: 220px; height: 30px; margin-bottom: 8px;"><div class="bar bar-danger" style="width: 0%;"></div></div>
</td>
</tr>
<?php
}
?>
<tr>
<td><?php printMLText("confirm_pwd");?>:</td>
<td><input type="Password" name="pwdconf"></td>
</tr>
<?php
if($passwordexpiration > 0) {
?>
<tr>
<td><?php printMLText("password_expiration");?>:</td>
<td><select name="pwdexpiration"><?php if($currUser) { ?><option value=""><?php printMLText("keep");?></option><?php } ?><option value="<?php echo date('Y-m-d H:i:s'); ?>"><?php printMLText("now");?></option><option value="<?php echo date('Y-m-d H:i:s', time()+$passwordexpiration*86400); ?>"><?php printMLText("according_settings");?></option><option value="0000-00-00"><?php printMLText("never");?></option></select> <?php echo $currUser ? $currUser->getPwdExpiration() : ""; ?></td>
</tr>
<?php
}
?>
<tr>
<td><?php printMLText("user_name");?>:</td>
<td><input type="text" name="name" value="<?php print $currUser ? htmlspecialchars($currUser->getFullName()) : "";?>"></td>
</tr>
<tr>
<td><?php printMLText("email");?>:</td>
<td><input type="text" name="email" value="<?php print $currUser ? htmlspecialchars($currUser->getEmail()) : "";?>"></td>
</tr>
<tr>
<td><?php printMLText("comment");?>:</td>
<td><textarea name="comment" rows="4" cols="50"><?php print $currUser ? htmlspecialchars($currUser->getComment()) : "";?></textarea></td>
</tr>
<tr>
<td><?php printMLText("role");?>:</td>
<td><select name="role"><option value="<?php echo SeedDMS_Core_User::role_user ?>"><?php printMLText("role_user"); ?></option><option value="<?php echo SeedDMS_Core_User::role_admin ?>" <?php if($currUser && $currUser->getRole() == SeedDMS_Core_User::role_admin) echo "selected"; ?>><?php printMLText("role_admin"); ?></option><option value="<?php echo SeedDMS_Core_User::role_guest ?>" <?php if($currUser && $currUser->getRole() == SeedDMS_Core_User::role_guest) echo "selected"; ?>><?php printMLText("role_guest"); ?></option></select></td>
</tr>
<tr>
<td><?php printMLText("groups");?>:</td>
<td><select class="chzn-select" multiple="multiple" name="groups[]" data-placeholder="<?php printMLText('select_groups'); ?>">
<?php
foreach($groups as $group) {
echo '<option value="'.$group->getID().'"'.($currUser && $group->isMember($currUser) ? ' selected' : '').'>'.$group->getName().'</option>';
}
?>
</select></td>
</tr>
<tr>
<td><?php printMLText("home_folder")?>:</td>
<td><?php $this->printFolderChooser("form".$currUser->getId(), M_READ, -1, $dms->getFolder($currUser->getHomeFolder()), 'homefolder');?></td>
</tr>
<tr>
<td><?php printMLText("quota");?>:</td>
<td><input type="text" name="quota" value="<?php echo $currUser ? $currUser->getQuota() : ""; ?>">
<?php
if($quota > 0)
echo $this->warningMsg(getMLText('current_quota', array('quota'=>SeedDMS_Core_File::format_filesize($quota))));
else
echo $this->warningMsg(getMLText('quota_is_disabled'));
?>
</td>
</tr>
<tr>
<td><?php printMLText("is_hidden");?>:</td>
<td><input type="checkbox" name="ishidden" value="1"<?php print ($currUser && $currUser->isHidden() ? " checked='checked'" : "");?>></td>
</tr>
<tr>
<td><?php printMLText("is_disabled");?>:</td>
<td><input type="checkbox" name="isdisabled" value="1"<?php print ($currUser && $currUser->isDisabled() ? " checked='checked'" : "");?>></td>
</tr>
<?php if ($enableuserimage){ ?>
<?php if ($currUser) { ?>
<tr>
<td><?php printMLText("user_image");?>:</td>
<td>
<?php
if ($currUser->hasImage())
print "<img src=\"".$httproot . "out/out.UserImage.php?userid=".$currUser->getId()."\">";
else
printMLText("no_user_image");
?>
</td>
</tr>
<tr>
<td><?php printMLText("new_user_image");?>:</td>
<td>
<?php
$this->printFileChooser('userfile', false, "image/jpeg");
?>
</td>
</tr>
<?php } else { ?>
<tr>
<td><?php printMLText("user_image");?>:</td>
<td>
<?php
$this->printFileChooser('userfile', false, 'image/jpeg');
?>
</td>
</tr>
<?php } ?>
<?php
}
if($workflowmode == "traditional" || $workflowmode == 'traditional_only_approval') {
if($workflowmode == "traditional") {
?>
<tr>
<td colspan="2"><?php printMLText("reviewers");?>:</td>
</tr>
<tr>
<td>
<div class="cbSelectTitle"><?php printMLText("individuals");?>:</div>
</td>
<td>
<select class="chzn-select" name="usrReviewers[]" multiple="multiple">
<?php
if($currUser)
$res=$currUser->getMandatoryReviewers();
else
$res = array();
foreach ($users as $usr) {
if ($usr->isGuest() || ($currUser && $usr->getID() == $currUser->getID()))
continue;
$checked=false;
foreach ($res as $r) if ($r['reviewerUserID']==$usr->getID()) $checked=true;
print "<option value=\"".$usr->getID()."\" ".($checked?"selected='selected' ":"").">". htmlspecialchars($usr->getLogin()." - ".$usr->getFullName())."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td>
<div class="cbSelectTitle"><?php printMLText("groups");?>:</div>
</td>
<td>
<select class="chzn-select" name="grpReviewers[]" multiple="multiple" data-placeholder="<?php printMLText('select_groups'); ?>">
<?php
foreach ($groups as $grp) {
$checked=false;
foreach ($res as $r) if ($r['reviewerGroupID']==$grp->getID()) $checked=true;
print "<option value=\"".$grp->getID()."\" ".($checked?"selected='selected' ":"").">". htmlspecialchars($grp->getName())."</option>";
}
?>
</select>
</td>
</tr>
<?php
}
?>
<tr>
<td colspan="2"><?php printMLText("approvers");?>:</td>
</tr>
<tr>
<td>
<div class="cbSelectTitle"><?php printMLText("individuals");?>:</div>
</td>
<td>
<select class="chzn-select" name="usrApprovers[]" multiple="multiple" data-placeholder="<?php printMLText('select_users'); ?>">
<?php
if($currUser)
$res=$currUser->getMandatoryApprovers();
else
$res = array();
foreach ($users as $usr) {
if ($usr->isGuest() || ($currUser && $usr->getID() == $currUser->getID()))
continue;
$checked=false;
foreach ($res as $r) if ($r['approverUserID']==$usr->getID()) $checked=true;
print "<option value=\"".$usr->getID()."\" ".($checked?"selected='selected' ":"").">". htmlspecialchars($usr->getLogin()." - ".$usr->getFullName())."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td>
<div class="cbSelectTitle"><?php printMLText("groups");?>:</div>
</td>
<td>
<select class="chzn-select" name="grpApprovers[]" multiple="multiple" data-placeholder="<?php printMLText('select_groups'); ?>">
<?php
foreach ($groups as $grp) {
$checked=false;
foreach ($res as $r) if ($r['approverGroupID']==$grp->getID()) $checked=true;
print "<option value=\"".$grp->getID()."\" ".($checked?"selected='selected' ":"").">". htmlspecialchars($grp->getName())."</option>";
}
?>
</select>
</td>
</tr>
<?php
} else {
$workflows = $dms->getAllWorkflows();
if($workflows) {
?>
<tr>
<td>
<div class="cbSelectTitle"><?php printMLText("workflow");?>:</div>
</td>
<td>
<select name="workflow" data-placeholder="<?php printMLText('select_workflow'); ?>">
<?php
print "<option value=\"\">"."</option>";
foreach ($workflows as $workflow) {
print "<option value=\"".$workflow->getID()."\"";
if($currUser && $currUser->getMandatoryWorkflow() && $currUser->getMandatoryWorkflow()->getID() == $workflow->getID())
echo " selected=\"selected\"";
print ">". htmlspecialchars($workflow->getName())."</option>";
}
?>
</select>
</td>
</tr>
<?php
}
}
?>
<tr>
<td></td>
<td><button type="submit" class="btn"><i class="icon-save"></i> <?php printMLText($currUser ? "save" : "add_user")?></button></td>
</tr>
</table>
</form>
<?php
} /* }}} */
function show() { /* {{{ */
$dms = $this->params['dms'];
$user = $this->params['user'];
@ -102,7 +396,7 @@ function showUser(selectObj) {
<div class="span4">
<div class="well">
<?php echo getMLText("selection")?>:
<select onchange="showUser(this)" id="selector" class="span9">
<select class="chzn-select" onchange="showUser(this)" id="selector" class="span9">
<option value="-1"><?php echo getMLText("choose_user")?>
<option value="0"><?php echo getMLText("add_user")?>
<?php
@ -119,477 +413,20 @@ function showUser(selectObj) {
</div>
<div class="span8">
<div class="well">
<table class="table-condensed">
<tr>
<td id="keywords0" style="display : none;">
<form action="../op/op.UsrMgr.php" method="post" enctype="multipart/form-data" name="form0" onsubmit="return checkForm('0');">
<?php echo createHiddenFieldWithKey('adduser'); ?>
<input type="Hidden" name="action" value="adduser">
<table class="table-condensed">
<tr>
<td><?php printMLText("user_login");?>:</td>
<td><input type="text" name="login"></td>
</tr>
<tr>
<td><?php printMLText("password");?>:</td>
<td><input class="pwd" type="password" rel="strengthbar" name="pwd" id="password"></td>
</tr>
<?php
if($passwordstrength > 0) {
?>
<tr>
<td><?php printMLText("password_strength");?>:</td>
<td>
<div id="strengthbar" class="progress" style="width: 220px; height: 30px; margin-bottom: 8px;"><div class="bar bar-danger" style="width: 0%;"></div></div>
</td>
</tr>
<?php
}
?>
<tr>
<td><?php printMLText("confirm_pwd");?>:</td>
<td><input type="password" name="pwdconf"></td>
</tr>
<?php
if($passwordexpiration > 0) {
?>
<tr>
<td><?php printMLText("password_expiration");?>:</td>
<td><select name="pwdexpiration"><option value="<?php echo date('Y-m-d H:i:s'); ?>"><?php printMLText("now");?></option><option value="<?php echo date('Y-m-d H:i:s', time()+$passwordexpiration*86400); ?>"><?php printMLText("according_settings");?></option><option value="0000-00-00"><?php printMLText("never");?></option></select></td>
</tr>
<?php
}
?>
<tr>
<td><?php printMLText("user_name");?>:</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td><?php printMLText("email");?>:</td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td><?php printMLText("comment");?>:</td>
<td><textarea name="comment" rows="4" cols="50"></textarea></td>
</tr>
<tr>
<td><?php printMLText("role");?>:</td>
<td><select name="role"><option value="<?php echo SeedDMS_Core_User::role_user ?>"><?php printMLText("role_user"); ?></option><option value="<?php echo SeedDMS_Core_User::role_admin ?>"><?php printMLText("role_admin"); ?></option><option value="<?php echo SeedDMS_Core_User::role_guest ?>"><?php printMLText("role_guest"); ?></option></select></td>
</tr>
<tr>
<td><?php printMLText("groups");?>:</td>
<td><select class="chzn-select" multiple="multiple" name="groups[]" data-placeholder="<?php printMLText('select_groups'); ?>">
<?php
foreach($groups as $group) {
echo '<option value="'.$group->getID().'">'.$group->getName().'</option>';
}
?>
</select></td>
</tr>
<tr>
<td><?php printMLText("home_folder")?>:</td>
<td><?php $this->printFolderChooser("form0", M_READ, -1, false, 'homefolder');?></td>
</tr>
<tr>
<td><?php printMLText("quota");?>:</td>
<td><input type="text" name="quota">
<?php
if($quota > 0)
echo $this->warningMsg(getMLText('current_quota', array('quota'=>SeedDMS_Core_File::format_filesize($quota))));
else
echo $this->warningMsg(getMLText('quota_is_disabled'));
?>
</td>
</tr>
<tr>
<td><?php printMLText("is_hidden");?>:</td>
<td><input type="checkbox" name="ishidden" value="1"></td>
</tr>
<tr>
<td><?php printMLText("is_disabled");?>:</td>
<td><input type="checkbox" name="isdisabled" value="1"></td>
</tr>
<?php if ($enableuserimage){ ?>
<tr>
<td><?php printMLText("user_image");?>:</td>
<td>
<?php
$this->printFileChooser('userfile', false, 'image/jpeg');
?>
</td>
</tr>
<?php
}
if($workflowmode == "traditional") {
?>
<tr>
<td colspan="2"><?php printMLText("reviewers");?>:</td>
</tr>
<tr>
<td>
<div class="cbSelectTitle"><?php printMLText("individuals");?>:</div>
</td>
<td>
<select class="chzn-select" name="usrReviewers[]" multiple="multiple" data-placeholder="<?php printMLText('select_users'); ?>">
<?php
foreach ($users as $usr) {
if ($usr->isGuest()) continue;
print "<option value=\"".$usr->getID()."\">". htmlspecialchars($usr->getLogin()." - ".$usr->getFullName())."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td>
<div class="cbSelectTitle"><?php printMLText("groups");?>:</div>
</td>
<td>
<select class="chzn-select" name="grpReviewers[]" multiple="multiple">
<?php
foreach ($groups as $grp) {
print "<option value=\"".$grp->getID()."\">". htmlspecialchars($grp->getName())."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td colspan="2"><?php printMLText("approvers");?>:</td>
</tr>
<tr>
<td>
<div class="cbSelectTitle"><?php printMLText("individuals");?>:</div>
</td>
<td>
<select class="chzn-select" name="usrApprovers[]" multiple="multiple">
<?php
foreach ($users as $usr) {
if ($usr->isGuest()) continue;
print "<option value=\"".$usr->getID()."\">". htmlspecialchars($usr->getLogin()." - ".$usr->getFullName())."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td>
<div class="cbSelectTitle"><?php printMLText("groups");?>:</div>
</td>
<td>
<select class="chzn-select" name="grpApprovers[]" multiple="multiple">
<?php
foreach ($groups as $grp) {
print "<option value=\"".$grp->getID()."\">". htmlspecialchars($grp->getName())."</option>";
}
?>
</select>
</td>
</tr>
<?php
} else {
$workflows = $dms->getAllWorkflows();
if($workflows) {
?>
<tr>
<td>
<div class="cbSelectTitle"><?php printMLText("workflow");?>:</div>
</td>
<td>
<select name="workflow" data-placeholder="<?php printMLText('select_workflow'); ?>">
<?php
$workflows = $dms->getAllWorkflows();
print "<option value=\"\">"."</option>";
foreach ($workflows as $workflow) {
print "<option value=\"".$workflow->getID()."\">". htmlspecialchars($workflow->getName())."</option>";
}
?>
</select>
</td>
</tr>
<?php
}
}
?>
<tr>
<td></td>
<td><input type="submit" class="btn" value="<?php printMLText("add_user");?>"></td>
</tr>
</table>
</form>
</td>
<div class="well">
<div id="keywords0" style="display : none;">
<?php $this->showUserForm(false); ?>
</div>
<?php
foreach ($users as $currUser) {
print "<td id=\"keywords".$currUser->getID()."\" style=\"display : none;\">";
?>
<form action="../op/op.UsrMgr.php" method="post" enctype="multipart/form-data" name="form<?php print $currUser->getID();?>" onsubmit="return checkForm('<?php print $currUser->getID();?>');">
<?php echo createHiddenFieldWithKey('edituser'); ?>
<input type="hidden" name="userid" value="<?php print $currUser->getID();?>">
<input type="hidden" name="action" value="edituser">
<table class="table-condensed">
<?php
if(!in_array($currUser->getID(), $undeluserids)) {
?>
<tr>
<td></td>
<td><a class="standardText btn" href="../out/out.RemoveUser.php?userid=<?php print $currUser->getID();?>"><i class="icon-remove"></i> <?php printMLText("rm_user");?></a></td>
</tr>
<?php
}
?>
<tr>
<td><?php printMLText("user_login");?>:</td>
<td><input type="text" name="login" value="<?php print htmlspecialchars($currUser->getLogin());?>"></td>
</tr>
<tr>
<td><?php printMLText("password");?>:</td>
<td><input type="password" class="pwd" rel="strengthbar<?php echo $currUser->getID(); ?>" name="pwd"></td>
</tr>
<?php
if($passwordstrength > 0) {
?>
<tr>
<td><?php printMLText("password_strength");?>:</td>
<td>
<div id="strengthbar<?php echo $currUser->getID(); ?>" class="progress" style="width: 220px; height: 30px; margin-bottom: 8px;"><div class="bar bar-danger" style="width: 0%;"></div></div>
</td>
</tr>
<?php
print "<div id=\"keywords".$currUser->getID()."\" style=\"display : none;\">";
$this->showUserForm($currUser);
print "</div>\n";
}
?>
<tr>
<td><?php printMLText("confirm_pwd");?>:</td>
<td><input type="Password" name="pwdconf"></td>
</tr>
<?php
if($passwordexpiration > 0) {
?>
<tr>
<td><?php printMLText("password_expiration");?>:</td>
<td><select name="pwdexpiration"><option value=""><?php printMLText("keep");?></option><option value="<?php echo date('Y-m-d H:i:s'); ?>"><?php printMLText("now");?></option><option value="<?php echo date('Y-m-d H:i:s', time()+$passwordexpiration*86400); ?>"><?php printMLText("according_settings");?></option><option value="0000-00-00"><?php printMLText("never");?></option></select> <?php echo $currUser->getPwdExpiration(); ?></td>
</tr>
<?php
}
?>
<tr>
<td><?php printMLText("user_name");?>:</td>
<td><input type="text" name="name" value="<?php print htmlspecialchars($currUser->getFullName());?>"></td>
</tr>
<tr>
<td><?php printMLText("email");?>:</td>
<td><input type="text" name="email" value="<?php print htmlspecialchars($currUser->getEmail()) ;?>"></td>
</tr>
<tr>
<td><?php printMLText("comment");?>:</td>
<td><textarea name="comment" rows="4" cols="50"><?php print htmlspecialchars($currUser->getComment());?></textarea></td>
</tr>
<tr>
<td><?php printMLText("role");?>:</td>
<td><select name="role"><option value="<?php echo SeedDMS_Core_User::role_user ?>"><?php printMLText("role_user"); ?></option><option value="<?php echo SeedDMS_Core_User::role_admin ?>" <?php if($currUser->getRole() == SeedDMS_Core_User::role_admin) echo "selected"; ?>><?php printMLText("role_admin"); ?></option><option value="<?php echo SeedDMS_Core_User::role_guest ?>" <?php if($currUser->getRole() == SeedDMS_Core_User::role_guest) echo "selected"; ?>><?php printMLText("role_guest"); ?></option></select></td>
</tr>
<tr>
<td><?php printMLText("groups");?>:</td>
<td><select class="chzn-select" multiple="multiple" name="groups[]" data-placeholder="<?php printMLText('select_groups'); ?>">
<?php
foreach($groups as $group) {
echo '<option value="'.$group->getID().'"'.($group->isMember($currUser) ? ' selected' : '').'>'.$group->getName().'</option>';
}
?>
</select></td>
</tr>
<tr>
<td><?php printMLText("home_folder")?>:</td>
<td><?php $this->printFolderChooser("form".$currUser->getId(), M_READ, -1, $dms->getFolder($currUser->getHomeFolder()), 'homefolder');?></td>
</tr>
<tr>
<td><?php printMLText("quota");?>:</td>
<td><input type="text" name="quota" value="<?php print $currUser->getQuota(); ?>">
<?php
if($quota > 0)
echo $this->warningMsg(getMLText('current_quota', array('quota'=>SeedDMS_Core_File::format_filesize($quota))));
else
echo $this->warningMsg(getMLText('quota_is_disabled'));
?>
</td>
</tr>
<tr>
<td><?php printMLText("is_hidden");?>:</td>
<td><input type="checkbox" name="ishidden" value="1"<?php print ($currUser->isHidden() ? " checked='checked'" : "");?>></td>
</tr>
<tr>
<td><?php printMLText("is_disabled");?>:</td>
<td><input type="checkbox" name="isdisabled" value="1"<?php print ($currUser->isDisabled() ? " checked='checked'" : "");?>></td>
</tr>
<?php if ($enableuserimage){ ?>
<tr>
<td><?php printMLText("user_image");?>:</td>
<td>
<?php
if ($currUser->hasImage())
print "<img src=\"".$httproot . "out/out.UserImage.php?userid=".$currUser->getId()."\">";
else
printMLText("no_user_image");
?>
</td>
</tr>
<tr>
<td><?php printMLText("new_user_image");?>:</td>
<td>
<?php
$this->printFileChooser('userfile', false, "image/jpeg");
?>
</td>
</tr>
<?php
}
if($workflowmode == "traditional") {
?>
<tr>
<td colspan="2"><?php printMLText("reviewers");?>:</td>
</tr>
<tr>
<td>
<div class="cbSelectTitle"><?php printMLText("individuals");?>:</div>
</td>
<td>
<select class="chzn-select" name="usrReviewers[]" multiple="multiple">
<?php
$res=$currUser->getMandatoryReviewers();
foreach ($users as $usr) {
if ($usr->isGuest() || ($usr->getID() == $currUser->getID()))
continue;
$checked=false;
foreach ($res as $r) if ($r['reviewerUserID']==$usr->getID()) $checked=true;
print "<option value=\"".$usr->getID()."\" ".($checked?"selected='selected' ":"").">". htmlspecialchars($usr->getLogin()." - ".$usr->getFullName())."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td>
<div class="cbSelectTitle"><?php printMLText("groups");?>:</div>
</td>
<td>
<select class="chzn-select" name="grpReviewers[]" multiple="multiple" data-placeholder="<?php printMLText('select_groups'); ?>">
<?php
foreach ($groups as $grp) {
$checked=false;
foreach ($res as $r) if ($r['reviewerGroupID']==$grp->getID()) $checked=true;
print "<option value=\"".$grp->getID()."\" ".($checked?"selected='selected' ":"").">". htmlspecialchars($grp->getName())."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td colspan="2"><?php printMLText("approvers");?>:</td>
</tr>
<tr>
<td>
<div class="cbSelectTitle"><?php printMLText("individuals");?>:</div>
</td>
<td>
<select class="chzn-select" name="usrApprovers[]" multiple="multiple" data-placeholder="<?php printMLText('select_users'); ?>">
<?php
$res=$currUser->getMandatoryApprovers();
foreach ($users as $usr) {
if ($usr->isGuest() || ($usr->getID() == $currUser->getID()))
continue;
$checked=false;
foreach ($res as $r) if ($r['approverUserID']==$usr->getID()) $checked=true;
print "<option value=\"".$usr->getID()."\" ".($checked?"selected='selected' ":"").">". htmlspecialchars($usr->getLogin()." - ".$usr->getFullName())."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td>
<div class="cbSelectTitle"><?php printMLText("groups");?>:</div>
</td>
<td>
<select class="chzn-select" name="grpApprovers[]" multiple="multiple" data-placeholder="<?php printMLText('select_groups'); ?>">
<?php
foreach ($groups as $grp) {
$checked=false;
foreach ($res as $r) if ($r['approverGroupID']==$grp->getID()) $checked=true;
print "<option value=\"".$grp->getID()."\" ".($checked?"selected='selected' ":"").">". htmlspecialchars($grp->getName())."</option>";
}
?>
</select>
</td>
</tr>
<?php
} else {
$workflows = $dms->getAllWorkflows();
if($workflows) {
?>
<tr>
<td>
<div class="cbSelectTitle"><?php printMLText("workflow");?>:</div>
</td>
<td>
<select name="workflow" data-placeholder="<?php printMLText('select_workflow'); ?>">
<?php
print "<option value=\"\">"."</option>";
foreach ($workflows as $workflow) {
print "<option value=\"".$workflow->getID()."\"";
if($currUser->getMandatoryWorkflow() && $currUser->getMandatoryWorkflow()->getID() == $workflow->getID())
echo " selected=\"selected\"";
print ">". htmlspecialchars($workflow->getName())."</option>";
}
?>
</select>
</td>
</tr>
<?php
}
}
?>
<tr>
<td></td>
<td><button type="submit" class="btn"><i class="icon-save"></i> <?php printMLText("save")?></button></td>
</tr>
</table>
</form>
</td>
<?php } ?>
</tr></table>
</div>
</div>
</div>
</div>
</div>
<script language="JavaScript">

View File

@ -598,8 +598,11 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
$this->contentContainerEnd();
?>
<div class="row-fluid">
<?php
if($workflowmode != 'traditional_only_approval') {
?>
<div class="span6">
<legend><?php printMLText('approval_log'); ?></legend>
<legend><?php printMLText('review_log'); ?></legend>
<table class="table condensed">
<tr><th><?php printMLText('name'); ?></th><th><?php printMLText('last_update'); ?>/<?php printMLText('comment'); ?></th><th><?php printMLText('status'); ?></th></tr>
<?php
@ -649,10 +652,10 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
</table>
</div>
<?php
if($workflowmode != 'traditional_only_approval') {
}
?>
<div class="span6">
<legend><?php printMLText('review_log'); ?></legend>
<legend><?php printMLText('approval_log'); ?></legend>
<table class="table condensed">
<tr><th><?php printMLText('name'); ?></th><th><?php printMLText('last_update'); ?>/<?php printMLText('comment'); ?></th><th><?php printMLText('status'); ?></th></tr>
<?php
@ -702,7 +705,6 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
</table>
</div>
<?php
}
}
?>
</div>