Merge branch 'seeddms-4.3.x' into seeddms-5.0.x
|
@ -63,6 +63,12 @@
|
|||
- add .xml to online file types by default
|
||||
- add home folder for users
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Changes in version 4.3.33
|
||||
--------------------------------------------------------------------------------
|
||||
- add support for fine-uploader as a replacement for the old jumploader
|
||||
- when importing from filesystem, the imported folder can be deleted afterwards
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Changes in version 4.3.32
|
||||
--------------------------------------------------------------------------------
|
||||
|
|
|
@ -551,7 +551,7 @@ CREATE TABLE `tblEvents` (
|
|||
-- Table structure for workflow states
|
||||
--
|
||||
|
||||
CREATE TABLE tblWorkflowStates (
|
||||
CREATE TABLE `tblWorkflowStates` (
|
||||
`id` int(11) NOT NULL auto_increment,
|
||||
`name` text NOT NULL,
|
||||
`visibility` smallint(5) DEFAULT 0,
|
||||
|
@ -567,7 +567,7 @@ CREATE TABLE tblWorkflowStates (
|
|||
-- Table structure for workflow actions
|
||||
--
|
||||
|
||||
CREATE TABLE tblWorkflowActions (
|
||||
CREATE TABLE `tblWorkflowActions` (
|
||||
`id` int(11) NOT NULL auto_increment,
|
||||
`name` text NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
|
@ -579,7 +579,7 @@ CREATE TABLE tblWorkflowActions (
|
|||
-- Table structure for workflows
|
||||
--
|
||||
|
||||
CREATE TABLE tblWorkflows (
|
||||
CREATE TABLE `tblWorkflows` (
|
||||
`id` int(11) NOT NULL auto_increment,
|
||||
`name` text NOT NULL,
|
||||
`initstate` int(11) NOT NULL,
|
||||
|
@ -593,7 +593,7 @@ CREATE TABLE tblWorkflows (
|
|||
-- Table structure for workflow transitions
|
||||
--
|
||||
|
||||
CREATE TABLE tblWorkflowTransitions (
|
||||
CREATE TABLE `tblWorkflowTransitions` (
|
||||
`id` int(11) NOT NULL auto_increment,
|
||||
`workflow` int(11) default NULL,
|
||||
`state` int(11) default NULL,
|
||||
|
@ -613,7 +613,7 @@ CREATE TABLE tblWorkflowTransitions (
|
|||
-- Table structure for workflow transition users
|
||||
--
|
||||
|
||||
CREATE TABLE tblWorkflowTransitionUsers (
|
||||
CREATE TABLE `tblWorkflowTransitionUsers` (
|
||||
`id` int(11) NOT NULL auto_increment,
|
||||
`transition` int(11) default NULL,
|
||||
`userid` int(11) default NULL,
|
||||
|
@ -628,7 +628,7 @@ CREATE TABLE tblWorkflowTransitionUsers (
|
|||
-- Table structure for workflow transition groups
|
||||
--
|
||||
|
||||
CREATE TABLE tblWorkflowTransitionGroups (
|
||||
CREATE TABLE `tblWorkflowTransitionGroups` (
|
||||
`id` int(11) NOT NULL auto_increment,
|
||||
`transition` int(11) default NULL,
|
||||
`groupid` int(11) default NULL,
|
||||
|
@ -644,7 +644,7 @@ CREATE TABLE tblWorkflowTransitionGroups (
|
|||
-- Table structure for workflow log
|
||||
--
|
||||
|
||||
CREATE TABLE tblWorkflowLog (
|
||||
CREATE TABLE `tblWorkflowLog` (
|
||||
`id` int(11) NOT NULL auto_increment,
|
||||
`document` int(11) default NULL,
|
||||
`version` smallint(5) default NULL,
|
||||
|
@ -666,7 +666,7 @@ CREATE TABLE tblWorkflowLog (
|
|||
-- Table structure for workflow document relation
|
||||
--
|
||||
|
||||
CREATE TABLE tblWorkflowDocumentContent (
|
||||
CREATE TABLE `tblWorkflowDocumentContent` (
|
||||
`parentworkflow` int(11) DEFAULT 0,
|
||||
`workflow` int(11) DEFAULT NULL,
|
||||
`document` int(11) DEFAULT NULL,
|
||||
|
@ -684,7 +684,7 @@ CREATE TABLE tblWorkflowDocumentContent (
|
|||
-- Table structure for mandatory workflows
|
||||
--
|
||||
|
||||
CREATE TABLE tblWorkflowMandatoryWorkflow (
|
||||
CREATE TABLE `tblWorkflowMandatoryWorkflow` (
|
||||
`userid` int(11) default NULL,
|
||||
`workflow` int(11) default NULL,
|
||||
UNIQUE(userid, workflow),
|
||||
|
@ -715,4 +715,3 @@ INSERT INTO tblUsers VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Ad
|
|||
INSERT INTO tblUsers VALUES (2, 'guest', NULL, 'Guest User', NULL, '', '', '', 2, 0, '0000-00-00 00:00:00', 0, 0, 0, NULL);
|
||||
INSERT INTO tblFolders VALUES (1, 'DMS', 0, '', 'DMS root', UNIX_TIMESTAMP(), 1, 0, 2, 0);
|
||||
INSERT INTO tblVersion VALUES (NOW(), 5, 0, 0);
|
||||
INSERT INTO tblCategory VALUES (0, '');
|
||||
|
|
|
@ -286,21 +286,6 @@ CREATE TABLE `tblDocumentLocks` (
|
|||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `tblDocumentReviewLog`
|
||||
--
|
||||
|
||||
CREATE TABLE `tblDocumentReviewLog` (
|
||||
`reviewLogID` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
`reviewID` INTEGER NOT NULL default 0 REFERENCES `tblDocumentReviewers` (`reviewID`) ON DELETE CASCADE,
|
||||
`status` INTEGER NOT NULL default 0,
|
||||
`comment` TEXT NOT NULL,
|
||||
`date` TEXT NOT NULL default '0000-00-00 00:00:00',
|
||||
`userID` INTEGER NOT NULL default 0 REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
|
||||
) ;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `tblDocumentReviewers`
|
||||
--
|
||||
|
@ -316,6 +301,21 @@ CREATE TABLE `tblDocumentReviewers` (
|
|||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `tblDocumentReviewLog`
|
||||
--
|
||||
|
||||
CREATE TABLE `tblDocumentReviewLog` (
|
||||
`reviewLogID` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
`reviewID` INTEGER NOT NULL default 0 REFERENCES `tblDocumentReviewers` (`reviewID`) ON DELETE CASCADE,
|
||||
`status` INTEGER NOT NULL default 0,
|
||||
`comment` TEXT NOT NULL,
|
||||
`date` TEXT NOT NULL default '0000-00-00 00:00:00',
|
||||
`userID` INTEGER NOT NULL default 0 REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
|
||||
) ;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `tblDocumentStatus`
|
||||
--
|
||||
|
@ -481,13 +481,13 @@ CREATE TABLE `tblEvents` (
|
|||
-- Table structure for workflow states
|
||||
--
|
||||
|
||||
CREATE TABLE tblWorkflowStates (
|
||||
CREATE TABLE `tblWorkflowStates` (
|
||||
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
`name` text NOT NULL,
|
||||
`visibility` smallint(5) DEFAULT 0,
|
||||
`visibility` INTEGER DEFAULT 0,
|
||||
`maxtime` INTEGER DEFAULT 0,
|
||||
`precondfunc` text DEFAULT NULL,
|
||||
`documentstatus` smallint(5) DEFAULT NULL
|
||||
`documentstatus` INTEGER DEFAULT NULL
|
||||
) ;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
@ -496,7 +496,7 @@ CREATE TABLE tblWorkflowStates (
|
|||
-- Table structure for workflow actions
|
||||
--
|
||||
|
||||
CREATE TABLE tblWorkflowActions (
|
||||
CREATE TABLE `tblWorkflowActions` (
|
||||
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
`name` text NOT NULL
|
||||
) ;
|
||||
|
@ -507,7 +507,7 @@ CREATE TABLE tblWorkflowActions (
|
|||
-- Table structure for workflows
|
||||
--
|
||||
|
||||
CREATE TABLE tblWorkflows (
|
||||
CREATE TABLE `tblWorkflows` (
|
||||
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
`name` text NOT NULL,
|
||||
`initstate` INTEGER NOT NULL REFERENCES `tblWorkflowStates` (`id`) ON DELETE CASCADE
|
||||
|
@ -519,7 +519,7 @@ CREATE TABLE tblWorkflows (
|
|||
-- Table structure for workflow transitions
|
||||
--
|
||||
|
||||
CREATE TABLE tblWorkflowTransitions (
|
||||
CREATE TABLE `tblWorkflowTransitions` (
|
||||
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
`workflow` INTEGER default NULL REFERENCES `tblWorkflows` (`id`) ON DELETE CASCADE,
|
||||
`state` INTEGER default NULL REFERENCES `tblWorkflowStates` (`id`) ON DELETE CASCADE,
|
||||
|
@ -534,7 +534,7 @@ CREATE TABLE tblWorkflowTransitions (
|
|||
-- Table structure for workflow transition users
|
||||
--
|
||||
|
||||
CREATE TABLE tblWorkflowTransitionUsers (
|
||||
CREATE TABLE `tblWorkflowTransitionUsers` (
|
||||
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
`transition` INTEGER default NULL REFERENCES `tblWorkflowTransitions` (`id`) ON DELETE CASCADE,
|
||||
`userid` INTEGER default NULL REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
|
||||
|
@ -546,7 +546,7 @@ CREATE TABLE tblWorkflowTransitionUsers (
|
|||
-- Table structure for workflow transition groups
|
||||
--
|
||||
|
||||
CREATE TABLE tblWorkflowTransitionGroups (
|
||||
CREATE TABLE `tblWorkflowTransitionGroups` (
|
||||
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
`transition` INTEGER default NULL REFERENCES `tblWorkflowTransitions` (`id`) ON DELETE CASCADE,
|
||||
`groupid` INTEGER default NULL REFERENCES `tblGroups` (`id`) ON DELETE CASCADE,
|
||||
|
@ -559,10 +559,10 @@ CREATE TABLE tblWorkflowTransitionGroups (
|
|||
-- Table structure for workflow log
|
||||
--
|
||||
|
||||
CREATE TABLE tblWorkflowLog (
|
||||
CREATE TABLE `tblWorkflowLog` (
|
||||
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
`document` INTEGER default NULL REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
|
||||
`version` smallint default NULL,
|
||||
`version` INTEGER default NULL,
|
||||
`workflow` INTEGER default NULL REFERENCES `tblWorkflows` (`id`) ON DELETE CASCADE,
|
||||
`userid` INTEGER default NULL REFERENCES `tblUsers` (`id`) ON DELETE CASCADE,
|
||||
`transition` INTEGER default NULL REFERENCES `tblWorkflowTransitions` (`id`) ON DELETE CASCADE,
|
||||
|
@ -576,11 +576,11 @@ CREATE TABLE tblWorkflowLog (
|
|||
-- Table structure for workflow document relation
|
||||
--
|
||||
|
||||
CREATE TABLE tblWorkflowDocumentContent (
|
||||
CREATE TABLE `tblWorkflowDocumentContent` (
|
||||
`parentworkflow` INTEGER DEFAULT 0,
|
||||
`workflow` INTEGER DEFAULT NULL REFERENCES `tblWorkflows` (`id`) ON DELETE CASCADE,
|
||||
`document` INTEGER DEFAULT NULL REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
|
||||
`version` smallint DEFAULT NULL,
|
||||
`version` INTEGER DEFAULT NULL,
|
||||
`state` INTEGER DEFAULT NULL REFERENCES `tblWorkflowStates` (`id`) ON DELETE CASCADE,
|
||||
`date` datetime NOT NULL default '0000-00-00 00:00:00'
|
||||
) ;
|
||||
|
@ -591,7 +591,7 @@ CREATE TABLE tblWorkflowDocumentContent (
|
|||
-- Table structure for mandatory workflows
|
||||
--
|
||||
|
||||
CREATE TABLE tblWorkflowMandatoryWorkflow (
|
||||
CREATE TABLE `tblWorkflowMandatoryWorkflow` (
|
||||
`userid` INTEGER default NULL REFERENCES `tblUsers` (`id`) ON DELETE CASCADE,
|
||||
`workflow` INTEGER default NULL REFERENCES `tblWorkflows` (`id`) ON DELETE CASCADE,
|
||||
UNIQUE(userid, workflow)
|
||||
|
@ -605,9 +605,9 @@ CREATE TABLE tblWorkflowMandatoryWorkflow (
|
|||
|
||||
CREATE TABLE `tblVersion` (
|
||||
`date` TEXT NOT NULL default '0000-00-00 00:00:00',
|
||||
`major` smallint,
|
||||
`minor` smallint,
|
||||
`subminor` smallint
|
||||
`major` INTEGER,
|
||||
`minor` INTEGER,
|
||||
`subminor` INTEGER
|
||||
) ;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
@ -620,4 +620,3 @@ INSERT INTO tblUsers VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Ad
|
|||
INSERT INTO tblUsers VALUES (2, 'guest', NULL, 'Guest User', NULL, '', '', '', 2, 0, '', 0, 0, 0, 0);
|
||||
INSERT INTO tblFolders VALUES (1, 'DMS', 0, '', 'DMS root', strftime('%s','now'), 1, 0, 2, 0);
|
||||
INSERT INTO tblVersion VALUES (DATETIME(), 5, 0, 0);
|
||||
INSERT INTO tblCategory VALUES (0, '');
|
||||
|
|
|
@ -842,6 +842,7 @@ Parent folder: [folder_path]
|
|||
مستخدم: [username]
|
||||
URL: [url]',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - تم ازالة مسار العمل من اصدار المستند',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'remove_marked_files' => 'ازالة الملفات المختارة',
|
||||
'repaired' => 'تم اصلاحه',
|
||||
'repairing_objects' => 'تحضير المستندات والمجلدات.',
|
||||
|
|
|
@ -734,6 +734,7 @@ $text = array(
|
|||
'removed_revispr' => '',
|
||||
'removed_workflow_email_body' => '',
|
||||
'removed_workflow_email_subject' => '',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'remove_marked_files' => '',
|
||||
'repaired' => '',
|
||||
'repairing_objects' => 'Поправка на папки и документи',
|
||||
|
|
|
@ -739,6 +739,7 @@ URL: [url]',
|
|||
'removed_revispr' => '',
|
||||
'removed_workflow_email_body' => '',
|
||||
'removed_workflow_email_subject' => '',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'remove_marked_files' => '',
|
||||
'repaired' => '',
|
||||
'repairing_objects' => '',
|
||||
|
|
|
@ -852,6 +852,7 @@ Nadřazená složka: [folder_path]
|
|||
Uživatel: [username]
|
||||
URL: [url]',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Odstraněn průběh práce z verze dokumentu',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'remove_marked_files' => 'Odstranit označené soubory',
|
||||
'repaired' => 'opraveno',
|
||||
'repairing_objects' => 'Opravuji dokumenty a složky.',
|
||||
|
|
|
@ -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 (2366), dgrutsch (22)
|
||||
// Translators: Admin (2367), dgrutsch (22)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '2-Faktor Authentifizierung',
|
||||
|
@ -872,6 +872,7 @@ Elternordner: [folder_path]
|
|||
Benutzer: [username]
|
||||
URL: [url]',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Workflow von Dokumentenversion',
|
||||
'removeFolderFromDropFolder' => 'Ordner nach Import entfernen',
|
||||
'remove_marked_files' => 'Markierte Dateien löschen',
|
||||
'repaired' => 'repariert',
|
||||
'repairing_objects' => 'Repariere Dokumente und Ordner.',
|
||||
|
|
|
@ -745,6 +745,7 @@ URL: [url]',
|
|||
'removed_revispr' => '',
|
||||
'removed_workflow_email_body' => '',
|
||||
'removed_workflow_email_subject' => '',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'remove_marked_files' => '',
|
||||
'repaired' => '',
|
||||
'repairing_objects' => '',
|
||||
|
|
|
@ -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 (1493), dgrutsch (9), netixw (14)
|
||||
// Translators: Admin (1494), dgrutsch (9), netixw (14)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '2-factor authentication',
|
||||
|
@ -873,6 +873,7 @@ Parent folder: [folder_path]
|
|||
User: [username]
|
||||
URL: [url]',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Removed workflow from document version',
|
||||
'removeFolderFromDropFolder' => 'Remove folder after import',
|
||||
'remove_marked_files' => 'Remove marked files',
|
||||
'repaired' => 'repaired',
|
||||
'repairing_objects' => 'Repairing documents and folders.',
|
||||
|
|
|
@ -857,6 +857,7 @@ Carpeta principal: [folder_path]
|
|||
Usuario: [username]
|
||||
nURL: [url]',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Eliminar flujo de trabajo de la versión del documento',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'remove_marked_files' => 'Eliminar ficheros marcados',
|
||||
'repaired' => 'Reparado',
|
||||
'repairing_objects' => 'Reparando documentos y carpetas.',
|
||||
|
|
|
@ -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 (1058), jeromerobert (50), lonnnew (9), Oudiceval (171)
|
||||
// Translators: Admin (1058), jeromerobert (50), lonnnew (9), Oudiceval (175)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => 'Authentification forte',
|
||||
|
@ -859,6 +859,7 @@ Répertoire: [folder_path]
|
|||
Utilisateur: [username]
|
||||
URL: [url]',
|
||||
'removed_workflow_email_subject' => '',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'remove_marked_files' => 'Supprimer les fichiers sélectionnés',
|
||||
'repaired' => 'réparé',
|
||||
'repairing_objects' => 'Réparation des documents et des dossiers.',
|
||||
|
@ -1044,8 +1045,8 @@ URL: [url]',
|
|||
'settings_dbUser' => 'Nom d\'utilisateur',
|
||||
'settings_dbUser_desc' => 'Le nom d\'utilisateur pour l\'accès à votre base de données entré pendant le processus d\'installation. Ne pas modifier le champ sauf si vraiment nécessaire, par exemple pour le transfert de la base de données vers un nouvel hébergement.',
|
||||
'settings_dbVersion' => 'Schéma de base de données trop ancien',
|
||||
'settings_defaultAccessDocs' => '',
|
||||
'settings_defaultAccessDocs_desc' => '',
|
||||
'settings_defaultAccessDocs' => 'Accès par défaut des nouveaux documents',
|
||||
'settings_defaultAccessDocs_desc' => 'Lors de la création d’un nouveau document, ce droit d’accès sera appliqué par défaut.',
|
||||
'settings_defaultSearchMethod' => 'Méthode de recherche par défaut',
|
||||
'settings_defaultSearchMethod_desc' => 'Méthode de recherche par défaut, lorsque la recherche est exécutée depuis le moteur de recherche du menu principal',
|
||||
'settings_defaultSearchMethod_valdatabase' => 'base de données',
|
||||
|
@ -1156,7 +1157,7 @@ URL: [url]',
|
|||
'settings_initialDocumentStatus_draft' => 'Brouillon',
|
||||
'settings_initialDocumentStatus_released' => 'publié',
|
||||
'settings_installADOdb' => 'Installer ADOdb',
|
||||
'settings_install_disabled' => 'Le fichier ENABLE_INSTALL_TOOL a été supprimé. ous pouvez maintenant vous connecter à SeedDMS et poursuivre la configuration.',
|
||||
'settings_install_disabled' => 'Le fichier ENABLE_INSTALL_TOOL a été supprimé. Vous pouvez maintenant vous connecter à SeedDMS et poursuivre la configuration.',
|
||||
'settings_install_pear_package_log' => 'Installer le paquet Pear \'Log\'',
|
||||
'settings_install_pear_package_webdav' => 'Installer le paquet Pear \'HTTP_WebDAV_Server\', si vous avez l\'intention d\'utiliser l\'interface webdav',
|
||||
'settings_install_success' => 'L\'installation est terminée avec succès',
|
||||
|
@ -1221,7 +1222,7 @@ URL: [url]',
|
|||
'settings_printDisclaimer_desc' => 'Si activé, le message d’avertissement sera affiché en bas de chaque page.',
|
||||
'settings_quota' => 'Quota de l\'utilisateur',
|
||||
'settings_quota_desc' => 'Le maximum de bytes qu\'un utilisateur peut utiliser sur le disque. Définir à 0 pour un espace illimité. Cette valeur peut être outrepasser pour chaque utilisation dans son profile.',
|
||||
'settings_removeFromDropFolder' => 'Supprimer le fichier du dossier de dépôt après un upload résussi',
|
||||
'settings_removeFromDropFolder' => 'Supprimer le fichier du dossier de dépôt après un chargement réussi',
|
||||
'settings_removeFromDropFolder_desc' => 'Activez ceci si un fichier pris du dossier de dépôt doit être supprimé après un upload réussi.',
|
||||
'settings_restricted' => 'Accès restreint',
|
||||
'settings_restricted_desc' => 'Autoriser les utilisateurs à se connecter seulement s\'ils ont une entrée dans la BD locale (independamment d\'une authentification réussie avec LDAP)',
|
||||
|
|
|
@ -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 (1191), marbanas (16)
|
||||
// Translators: Admin (1195), marbanas (16)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '',
|
||||
|
@ -861,6 +861,7 @@ Glavna mapa: [folder_path]
|
|||
Korisnik: [username]
|
||||
Internet poveznica: [url]',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Uklonjeni tok rada iz ove verzije dokumenta',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'remove_marked_files' => 'Ukloni označene datoteke',
|
||||
'repaired' => 'popravljeno',
|
||||
'repairing_objects' => 'Popravljanje dokumenata ili mapa.',
|
||||
|
@ -1042,7 +1043,7 @@ Internet poveznica: [url]',
|
|||
'settings_Authentication' => 'Postavke autentifikacije',
|
||||
'settings_autoLoginUser' => 'Automatska prijava',
|
||||
'settings_autoLoginUser_desc' => 'Koristite ovaj korisnički ID za pristup ukoliko korisnik već nije prijavljen. Takav pristup neće otvoriti sesiju.',
|
||||
'settings_available_languages' => '',
|
||||
'settings_available_languages' => 'Dostupni jezici',
|
||||
'settings_available_languages_desc' => '',
|
||||
'settings_backupDir' => 'Mapa za sigurnosnu kopiju',
|
||||
'settings_backupDir_desc' => 'Mapa gdje alat za sigurnosne kopije sprema podatke. Ako ova mapa nije postavljena ili joj se ne može pristupiti, tada se sigurnosne kopije spremaju u mapu sadržaja.',
|
||||
|
@ -1060,7 +1061,7 @@ Internet poveznica: [url]',
|
|||
'settings_contentDir_desc' => 'Gdje se spremaju učitane datoteke (najbolje da odaberete mapu koja nije dostupna kroz vaš web-server)',
|
||||
'settings_contentOffsetDir' => 'Offset mapa sadržaja',
|
||||
'settings_contentOffsetDir_desc' => 'Za zaobilaželje ograničenja unutar datotečnog sustava, nova struktura mapa je a new directory structure je zasnovana i nalazi se unutar mape sadržaja. Ovo zahtjeva baznu mapu od koje se kreće. Uobičajeno da se ostavlja zadana postavka, 1048576, ali može biti bilo koji niz koji se već ne nalazi unutar mape sadržaja',
|
||||
'settings_convertToPdf' => '',
|
||||
'settings_convertToPdf' => 'Pretvori dokument u PDF format za brzi prikaz',
|
||||
'settings_convertToPdf_desc' => '',
|
||||
'settings_cookieLifetime' => 'Životni vijek kolačića',
|
||||
'settings_cookieLifetime_desc' => 'Životni vijek kolačića u sekundama. Ako je postavljeno na 0, kolačić će biti uklonjen kada se zatvori pretraživač.',
|
||||
|
@ -1222,7 +1223,7 @@ Internet poveznica: [url]',
|
|||
'settings_maxExecutionTime_desc' => 'Ovo postavlja maksimalno vrijeme u sekundama u kojem je skripti dopušteno da se pokrene prije nego se prekine rasčlanjivanjem',
|
||||
'settings_maxRecursiveCount' => 'Max. broj rekurzivnog dokumenta/mape',
|
||||
'settings_maxRecursiveCount_desc' => 'To je maksimalni broj dokumenata ili mapa koji će biti označen pristupnim pravima, pri rekurzivnom brojanju objekata. Ako se taj broj premaši, broj dokumenata i mapa u pregledu mape će biti procjenjen.',
|
||||
'settings_maxSizeForFullText' => '',
|
||||
'settings_maxSizeForFullText' => 'Maksimalna veličina dokumenta za instant indeksiranje',
|
||||
'settings_maxSizeForFullText_desc' => '',
|
||||
'settings_more_settings' => 'Konfiguriraj više postavki. Zadana prijava: admin/admin',
|
||||
'settings_notfound' => 'Nije pronađeno',
|
||||
|
@ -1270,7 +1271,7 @@ Internet poveznica: [url]',
|
|||
'settings_rootFolderID_desc' => 'ID root mape (većinom ne treba mijenjati)',
|
||||
'settings_SaveError' => 'Greška pri spremanju datoteke konfiguracije',
|
||||
'settings_Server' => 'Postavke servera',
|
||||
'settings_showFullPreview' => '',
|
||||
'settings_showFullPreview' => 'Prikaži cijeli dokument',
|
||||
'settings_showFullPreview_desc' => '',
|
||||
'settings_showMissingTranslations' => 'Prikaži prijevode koji nedostaju',
|
||||
'settings_showMissingTranslations_desc' => 'Navedi sve prijevode koji nedostaju na stranici na dnu stranice. Prijavljeni korisnik će moći podnijeti prijedlog za prijevode koji nedostaju koji će biti pohranjen u csv datoteku. Ne uključujte ovu funkciju ako ste u proizvodnoj okolini!',
|
||||
|
|
|
@ -857,6 +857,7 @@ Szülő mappa: [folder_path]
|
|||
Felhasználó: [username]
|
||||
URL: [url]',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Dokumentum változatból eltávolított munkafolyamat',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'remove_marked_files' => 'Megjelölt állományok eltávolítása',
|
||||
'repaired' => 'javított',
|
||||
'repairing_objects' => 'Dokumentumok és mappák helyreállítása',
|
||||
|
|
|
@ -868,6 +868,7 @@ Cartella: [folder_path]
|
|||
Utente: [username]
|
||||
URL: [url]',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Flusso di lavoro rimosso dalla versione del documento',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'remove_marked_files' => 'Rimuovi i files contrassegnati',
|
||||
'repaired' => 'riparato',
|
||||
'repairing_objects' => 'Riparazione documenti e cartelle in corso...',
|
||||
|
|
|
@ -854,6 +854,7 @@ URL : [url]',
|
|||
사용자: [username]
|
||||
URL: [url]',
|
||||
'removed_workflow_email_subject' => '[sitename] : [name] - 문서 버전에서 제거 된 워크플로우',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'remove_marked_files' => '마크 파일을 제거',
|
||||
'repaired' => '복구',
|
||||
'repairing_objects' => '문서 및 폴더 복구',
|
||||
|
|
|
@ -859,6 +859,7 @@ Bovenliggende map: [folder_path]
|
|||
Gebruiker: [username]
|
||||
URL: [url]',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Workflow verwijderd van document versie',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'remove_marked_files' => 'Geselecteerde bestanden zijn verwijderd',
|
||||
'repaired' => 'Gerepareerd',
|
||||
'repairing_objects' => 'Documenten en mappen repareren.',
|
||||
|
|
|
@ -850,6 +850,7 @@ Folder nadrzędny: [folder_path]
|
|||
Użytkownik: [username]
|
||||
URL: [url]',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Usunięty workflow z wersji dokumentu',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'remove_marked_files' => 'Usuń zaznaczone pliki',
|
||||
'repaired' => 'naprawiony',
|
||||
'repairing_objects' => 'Naprawa dokumentów i katalogów.',
|
||||
|
|
|
@ -855,6 +855,7 @@ Pasta mãe: [folder_path]
|
|||
Usuário: [username]
|
||||
URL: [url]',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Fluxo de trabalho removido da versão do documento',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'remove_marked_files' => 'Remover arquivos marcados',
|
||||
'repaired' => 'reparado',
|
||||
'repairing_objects' => 'Reparando documentos e pastas',
|
||||
|
|
|
@ -862,6 +862,7 @@ Folder parinte: [folder_path]
|
|||
Utilizator: [username]
|
||||
URL: [url]',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Workflow eliminat din versiunea documentului',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'remove_marked_files' => 'Eliminați fișierele marcate',
|
||||
'repaired' => 'reparat',
|
||||
'repairing_objects' => 'Reparare documente și foldere.',
|
||||
|
|
|
@ -864,6 +864,7 @@ URL: [url]',
|
|||
Пользователь: [username]
|
||||
URL: [url]',
|
||||
'removed_workflow_email_subject' => '[sitename]: удалён процесс из версии документа «[name]»',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'remove_marked_files' => 'Удалить выбранные файлы',
|
||||
'repaired' => 'исправлено',
|
||||
'repairing_objects' => 'Восстановление каталогов и документов',
|
||||
|
|
|
@ -738,6 +738,7 @@ URL: [url]',
|
|||
'removed_revispr' => '',
|
||||
'removed_workflow_email_body' => '',
|
||||
'removed_workflow_email_subject' => '',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'remove_marked_files' => 'Zrušiť označenie súborov',
|
||||
'repaired' => '',
|
||||
'repairing_objects' => '',
|
||||
|
|
|
@ -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 (1136), tmichelfelder (106)
|
||||
// Translators: Admin (1138), tmichelfelder (106)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '',
|
||||
|
@ -603,7 +603,7 @@ URL: [url]',
|
|||
'keep' => '',
|
||||
'keep_doc_status' => 'Bibehåll dokumentstatus',
|
||||
'keywords' => 'Nyckelord',
|
||||
'keywords_loading' => '',
|
||||
'keywords_loading' => 'Vänta till nyckelordlistan har laddats',
|
||||
'keyword_exists' => 'Nyckelordet finns redan',
|
||||
'ko_KR' => 'Koreanska',
|
||||
'language' => 'Språk',
|
||||
|
@ -750,7 +750,7 @@ URL: [url]',
|
|||
'no_update_cause_locked' => 'Därför kan du inte uppdatera detta dokument. Ta kontakt med användaren som låst dokumentet.',
|
||||
'no_user_image' => 'Ingen bild hittades',
|
||||
'no_version_check' => 'Fel vid sökning efter ny version av SeedDMS! Ursaken kan vara att allow_url_fopen i din php konfiguration är satt till 0.',
|
||||
'no_version_modification' => '',
|
||||
'no_version_modification' => 'Inga andra versioner finns',
|
||||
'no_workflow_available' => '',
|
||||
'objectcheck' => 'Katalog/Dokument-kontroll',
|
||||
'object_check_critical' => '',
|
||||
|
@ -842,6 +842,7 @@ Arbetsflöde: [workflow]
|
|||
Användare: [username]
|
||||
URL: [url]',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Arbetsflöde borttagen från dokument version',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'remove_marked_files' => 'Ta bort markerade filer',
|
||||
'repaired' => 'repaired',
|
||||
'repairing_objects' => 'Förbereder dokument och kataloger.',
|
||||
|
|
|
@ -858,6 +858,7 @@ Klasör: [folder_path]
|
|||
Kullanıcı: [username]
|
||||
URL: [url]',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Doküman versiyonundan iş akışı silindi',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'remove_marked_files' => 'İşaretli dosyaları sil',
|
||||
'repaired' => 'onarıldı',
|
||||
'repairing_objects' => 'Doküman ve klasörler onarılıyor.',
|
||||
|
|
|
@ -864,6 +864,7 @@ URL: [url]',
|
|||
Користувач: [username]
|
||||
URL: [url]',
|
||||
'removed_workflow_email_subject' => '[sitename]: видалено процес з версії документа «[name]»',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'remove_marked_files' => 'Видалити обрані файли',
|
||||
'repaired' => 'виправлено',
|
||||
'repairing_objects' => 'Відновлення каталогів і документів',
|
||||
|
|
|
@ -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 (652), fengjohn (5)
|
||||
// Translators: Admin (654), fengjohn (5)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '',
|
||||
|
@ -694,7 +694,7 @@ URL: [url]',
|
|||
'password_send' => '',
|
||||
'password_send_text' => '',
|
||||
'password_strength' => '密码强度',
|
||||
'password_strength_insuffient' => '',
|
||||
'password_strength_insuffient' => '密码强度不够',
|
||||
'password_wrong' => '',
|
||||
'pending_approvals' => '',
|
||||
'pending_reviews' => '',
|
||||
|
@ -740,6 +740,7 @@ URL: [url]',
|
|||
'removed_revispr' => '',
|
||||
'removed_workflow_email_body' => '',
|
||||
'removed_workflow_email_subject' => '',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'remove_marked_files' => '删除选中的文件',
|
||||
'repaired' => '',
|
||||
'repairing_objects' => '',
|
||||
|
@ -1169,7 +1170,7 @@ URL: [url]',
|
|||
'set_expiry' => '设置截止日期',
|
||||
'set_owner' => '设置所有者',
|
||||
'set_owner_error' => '错误 设置所有者',
|
||||
'set_password' => '',
|
||||
'set_password' => '设定密码',
|
||||
'set_workflow' => '',
|
||||
'signed_in_as' => '登录为',
|
||||
'sign_in' => '',
|
||||
|
|
|
@ -738,6 +738,7 @@ URL: [url]',
|
|||
'removed_revispr' => '',
|
||||
'removed_workflow_email_body' => '',
|
||||
'removed_workflow_email_subject' => '',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'remove_marked_files' => '刪除勾選的檔案',
|
||||
'repaired' => '',
|
||||
'repairing_objects' => '',
|
||||
|
|
|
@ -240,12 +240,29 @@ if($settings->_dropFolderDir) {
|
|||
}
|
||||
}
|
||||
|
||||
if(isset($_POST['fineuploaderuuids']) && $_POST['fineuploaderuuids']) {
|
||||
$uuids = explode(';', $_POST['fineuploaderuuids']);
|
||||
$names = explode(';', $_POST['fineuploadernames']);
|
||||
foreach($uuids as $i=>$uuid) {
|
||||
$fullfile = $settings->_stagingDir.'/'.basename($uuid);
|
||||
if(file_exists($fullfile)) {
|
||||
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||
$mimetype = finfo_file($finfo, $fullfile);
|
||||
$_FILES["userfile"]['tmp_name'][] = $fullfile;
|
||||
$_FILES["userfile"]['type'][] = $mimetype;
|
||||
$_FILES["userfile"]['name'][] = isset($names[$i]) ? $names[$i] : $uuid;
|
||||
$_FILES["userfile"]['size'][] = filesize($fullfile);
|
||||
$_FILES["userfile"]['error'][] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Check files for Errors first */
|
||||
for ($file_num=0;$file_num<count($_FILES["userfile"]["tmp_name"]);$file_num++){
|
||||
if ($_FILES["userfile"]["size"][$file_num]==0) {
|
||||
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("uploading_zerosize"));
|
||||
}
|
||||
if (is_uploaded_file($_FILES["userfile"]["tmp_name"][$file_num]) && $_FILES['userfile']['error'][$file_num]!=0){
|
||||
if (/* is_uploaded_file($_FILES["userfile"]["tmp_name"][$file_num]) && */$_FILES['userfile']['error'][$file_num]!=0){
|
||||
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("uploading_failed"));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,69 +44,75 @@ if ($document->getAccessMode($user) < M_READWRITE) {
|
|||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied"));
|
||||
}
|
||||
|
||||
if (is_uploaded_file($_FILES["userfile"]["tmp_name"]) && $_FILES["userfile"]["size"] > 0 && $_FILES['userfile']['error']!=0){
|
||||
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("uploading_failed"));
|
||||
}
|
||||
|
||||
$name = $_POST["name"];
|
||||
$comment = $_POST["comment"];
|
||||
|
||||
if($_FILES["userfile"]["error"]) {
|
||||
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("error_occured"));
|
||||
}
|
||||
|
||||
$userfiletmp = $_FILES["userfile"]["tmp_name"];
|
||||
$userfiletype = $_FILES["userfile"]["type"];
|
||||
$userfilename = $_FILES["userfile"]["name"];
|
||||
|
||||
$fileType = ".".pathinfo($userfilename, PATHINFO_EXTENSION);
|
||||
|
||||
if($settings->_overrideMimeType) {
|
||||
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||
$userfiletype = finfo_file($finfo, $userfiletmp);
|
||||
}
|
||||
|
||||
$res = $document->addDocumentFile($name, $comment, $user, $userfiletmp,
|
||||
basename($userfilename),$fileType, $userfiletype );
|
||||
|
||||
if (is_bool($res) && !$res) {
|
||||
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("error_occured"));
|
||||
} else {
|
||||
// Send notification to subscribers.
|
||||
if($notifier) {
|
||||
$notifyList = $document->getNotifyList();
|
||||
|
||||
/*
|
||||
$subject = "###SITENAME###: ".$document->getName()." - ".getMLText("new_file_email");
|
||||
$message = getMLText("new_file_email")."\r\n";
|
||||
$message .=
|
||||
getMLText("name").": ".$name."\r\n".
|
||||
getMLText("comment").": ".$comment."\r\n".
|
||||
getMLText("user").": ".$user->getFullName()." <". $user->getEmail() .">\r\n".
|
||||
"URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."\r\n";
|
||||
|
||||
$subject=$subject;
|
||||
$message=$message;
|
||||
|
||||
$notifier->toList($user, $document->_notifyList["users"], $subject, $message);
|
||||
foreach ($document->_notifyList["groups"] as $grp) {
|
||||
$notifier->toGroup($user, $grp, $subject, $message);
|
||||
if(isset($_POST['fineuploaderuuids']) && $_POST['fineuploaderuuids']) {
|
||||
$uuids = explode(';', $_POST['fineuploaderuuids']);
|
||||
$names = explode(';', $_POST['fineuploadernames']);
|
||||
foreach($uuids as $i=>$uuid) {
|
||||
$fullfile = $settings->_stagingDir.'/'.basename($uuid);
|
||||
if(file_exists($fullfile)) {
|
||||
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||
$mimetype = finfo_file($finfo, $fullfile);
|
||||
$_FILES["userfile"]['tmp_name'][] = $fullfile;
|
||||
$_FILES["userfile"]['type'][] = $mimetype;
|
||||
$_FILES["userfile"]['name'][] = isset($names[$i]) ? $names[$i] : $uuid;
|
||||
$_FILES["userfile"]['size'][] = filesize($fullfile);
|
||||
$_FILES["userfile"]['error'][] = 0;
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
$subject = "new_file_email_subject";
|
||||
$message = "new_file_email_body";
|
||||
$params = array();
|
||||
$params['name'] = $name;
|
||||
$params['document'] = $document->getName();
|
||||
$params['username'] = $user->getFullName();
|
||||
$params['comment'] = $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;
|
||||
$notifier->toList($user, $notifyList["users"], $subject, $message, $params);
|
||||
foreach ($notifyList["groups"] as $grp) {
|
||||
$notifier->toGroup($user, $grp, $subject, $message, $params);
|
||||
for ($file_num=0;$file_num<count($_FILES["userfile"]["tmp_name"]);$file_num++){
|
||||
if ($_FILES["userfile"]["size"][$file_num]==0) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("uploading_zerosize"));
|
||||
}
|
||||
if (is_uploaded_file($_FILES["userfile"]["tmp_name"][$file_num]) && $_FILES['userfile']['error'][$file_num] != 0){
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("uploading_failed"));
|
||||
}
|
||||
if($_FILES["userfile"]["error"][$file_num]) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured"));
|
||||
}
|
||||
|
||||
if(count($_FILES["userfile"]["tmp_name"]) == 1 && !empty($_POST['name']))
|
||||
$name = $_POST["name"];
|
||||
else
|
||||
$name = $_FILES["userfile"]['name'][$file_num];
|
||||
$comment = $_POST["comment"];
|
||||
|
||||
$userfiletmp = $_FILES["userfile"]["tmp_name"][$file_num];
|
||||
$userfiletype = $_FILES["userfile"]["type"][$file_num];
|
||||
$userfilename = $_FILES["userfile"]["name"][$file_num];
|
||||
|
||||
$fileType = ".".pathinfo($userfilename, PATHINFO_EXTENSION);
|
||||
|
||||
if($settings->_overrideMimeType) {
|
||||
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||
$userfiletype = finfo_file($finfo, $userfiletmp);
|
||||
}
|
||||
|
||||
$res = $document->addDocumentFile($name, $comment, $user, $userfiletmp,
|
||||
basename($userfilename),$fileType, $userfiletype );
|
||||
|
||||
if (is_bool($res) && !$res) {
|
||||
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("error_occured"));
|
||||
} else {
|
||||
// Send notification to subscribers.
|
||||
if($notifier) {
|
||||
$notifyList = $document->getNotifyList();
|
||||
|
||||
$subject = "new_file_email_subject";
|
||||
$message = "new_file_email_body";
|
||||
$params = array();
|
||||
$params['name'] = $name;
|
||||
$params['document'] = $document->getName();
|
||||
$params['username'] = $user->getFullName();
|
||||
$params['comment'] = $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;
|
||||
$notifier->toList($user, $notifyList["users"], $subject, $message, $params);
|
||||
foreach ($notifyList["groups"] as $grp) {
|
||||
$notifier->toGroup($user, $grp, $subject, $message, $params);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,8 +42,9 @@ if ($folder->getAccessMode($user) < M_READWRITE) {
|
|||
if (empty($_GET["dropfolderfileform1"])) {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("invalid_target_folder"));
|
||||
}
|
||||
$dirname = $settings->_dropFolderDir.'/'.$user->getLogin()."/".$_GET["dropfolderfileform1"];
|
||||
if(!is_dir($dirname)) {
|
||||
|
||||
$dirname = realpath($settings->_dropFolderDir.'/'.$user->getLogin()."/".$_GET["dropfolderfileform1"]);
|
||||
if(strpos($dirname, realpath($settings->_dropFolderDir.'/'.$user->getLogin().'/')) !== 0 || !is_dir($dirname)) {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("invalid_dropfolder_folder"));
|
||||
}
|
||||
|
||||
|
@ -104,8 +105,14 @@ $foldercount = $doccount = 0;
|
|||
if($newfolder = $folder->addSubFolder($_GET["dropfolderfileform1"], '', $user, 1)) {
|
||||
if(!import_folder($dirname, $newfolder))
|
||||
$session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('error_importfs')));
|
||||
else
|
||||
else {
|
||||
if(isset($_GET['remove']) && $_GET["remove"]) {
|
||||
$cmd = 'rm -rf '.$dirname;
|
||||
$ret = null;
|
||||
system($cmd, $ret);
|
||||
}
|
||||
$session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_importfs', array('docs'=>$doccount, 'folders'=>$foldercount))));
|
||||
}
|
||||
} else {
|
||||
$session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('error_importfs')));
|
||||
}
|
||||
|
|
|
@ -58,14 +58,30 @@ if ($document->isLocked()) {
|
|||
else $document->setLocked(false);
|
||||
}
|
||||
|
||||
if(isset($_POST['fineuploaderuuids']) && $_POST['fineuploaderuuids']) {
|
||||
$uuids = explode(';', $_POST['fineuploaderuuids']);
|
||||
$names = explode(';', $_POST['fineuploadernames']);
|
||||
$uuid = $uuids[0];
|
||||
$fullfile = $settings->_stagingDir.'/'.basename($uuid);
|
||||
if(file_exists($fullfile)) {
|
||||
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||
$mimetype = finfo_file($finfo, $fullfile);
|
||||
$_FILES["userfile"]['tmp_name'] = $fullfile;
|
||||
$_FILES["userfile"]['type'] = $mimetype;
|
||||
$_FILES["userfile"]['name'] = isset($names[0]) ? $names[0] : $uuid;
|
||||
$_FILES["userfile"]['size'] = filesize($fullfile);
|
||||
$_FILES["userfile"]['error'] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($_POST["comment"]))
|
||||
$comment = $_POST["comment"];
|
||||
else
|
||||
$comment = "";
|
||||
|
||||
if ($_FILES['userfile']['error'] == 0) {
|
||||
if(!is_uploaded_file($_FILES["userfile"]["tmp_name"]))
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured"));
|
||||
// if(!is_uploaded_file($_FILES["userfile"]["tmp_name"]))
|
||||
// UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")."lsajdflk");
|
||||
|
||||
if($_FILES["userfile"]["size"] == 0)
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("uploading_zerosize"));
|
||||
|
|
64
op/op.UploadChunks.php
Normal file
|
@ -0,0 +1,64 @@
|
|||
<?php
|
||||
// MyDMS. Document Management System
|
||||
// Copyright (C) 2002-2005 Markus Westphal
|
||||
// Copyright (C) 2006-2008 Malcolm Cowe
|
||||
// Copyright (C) 2010 Matteo Lucarelli
|
||||
// Copyright (C) 2010-2106 Uwe Steinmann
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation; either version 2 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
include("../inc/inc.Settings.php");
|
||||
include("../inc/inc.LogInit.php");
|
||||
include("../inc/inc.Utils.php");
|
||||
include("../inc/inc.DBInit.php");
|
||||
include("../inc/inc.Language.php");
|
||||
include("../inc/inc.Authentication.php");
|
||||
|
||||
//print_r($_FILES);
|
||||
//print_r($_POST);
|
||||
//exit;
|
||||
|
||||
$file_param_name = 'qqfile';
|
||||
$file_name = $_FILES[ $file_param_name ][ 'name' ];
|
||||
$source_file_path = $_FILES[ $file_param_name ][ 'tmp_name' ];
|
||||
$fileId = $_POST['qquuid'];
|
||||
$partitionIndex = (int) $_POST['qqpartindex'];
|
||||
$totalparts = (int) $_POST['qqtotalparts'];
|
||||
$target_file_path =$settings->_stagingDir.$fileId."-".$partitionIndex;
|
||||
if( move_uploaded_file( $source_file_path, $target_file_path ) ) {
|
||||
if($partitionIndex+1 == $totalparts) {
|
||||
if($fpnew = fopen($settings->_stagingDir.$fileId, 'w+')) {
|
||||
for($i=0; $i<$totalparts; $i++) {
|
||||
$content = file_get_contents($settings->_stagingDir.$fileId."-".$i, 'r');
|
||||
fwrite($fpnew, $content);
|
||||
unlink($settings->_stagingDir.$fileId."-".$i);
|
||||
}
|
||||
fclose($fpnew);
|
||||
header("Content-Type: text/plain");
|
||||
echo json_encode(array('success'=>true));
|
||||
exit;
|
||||
} else {
|
||||
header("Content-Type: text/plain");
|
||||
echo json_encode(array('success'=>false, 'error'=>'Could not upload file'));
|
||||
exit;
|
||||
}
|
||||
}
|
||||
header("Content-Type: text/plain");
|
||||
echo json_encode(array('success'=>true));
|
||||
exit;
|
||||
}
|
||||
header("Content-Type: text/plain");
|
||||
echo json_encode(array('success'=>false, 'error'=>'Could not upload file'));
|
||||
?>
|
|
@ -32,6 +32,7 @@ if ($user->isGuest()) {
|
|||
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
|
||||
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user));
|
||||
if($view) {
|
||||
$view->setParam('strictformcheck', $settings->_strictFormCheck);
|
||||
$view($_GET);
|
||||
exit;
|
||||
}
|
||||
|
|
|
@ -206,6 +206,45 @@ div.popupbox span.closepopupbox {
|
|||
top: 0px;
|
||||
}
|
||||
|
||||
ul.qq-upload-list {
|
||||
/*
|
||||
background-color: #fff;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #cccccc;
|
||||
*/
|
||||
}
|
||||
|
||||
ul.qq-upload-list li {
|
||||
display: inline-block;
|
||||
margin: 5px 5px 5px 0;
|
||||
padding: 5px;
|
||||
background-color: #fff;
|
||||
border: 1px solid #cccccc;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
ul.qq-upload-list li img {
|
||||
display: block;
|
||||
}
|
||||
|
||||
ul.qq-upload-list li span {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.qq-upload-button {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.qq-upload-drop-area {
|
||||
display: inline-block;
|
||||
width: 200px;
|
||||
height: 22px;
|
||||
padding: 3px;
|
||||
background-color: #fff;
|
||||
border: 1px solid #cccccc;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
.nav-tabs > li {
|
||||
float:none;
|
||||
|
|
21
styles/bootstrap/fine-uploader/LICENSE
Normal file
|
@ -0,0 +1,21 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2013-present, Widen Enterprises, Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
BIN
styles/bootstrap/fine-uploader/continue.gif
Normal file
After Width: | Height: | Size: 221 B |
1093
styles/bootstrap/fine-uploader/dnd.js
Normal file
1
styles/bootstrap/fine-uploader/dnd.js.map
Normal file
3
styles/bootstrap/fine-uploader/dnd.min.js
vendored
Normal file
1
styles/bootstrap/fine-uploader/dnd.min.js.map
Normal file
BIN
styles/bootstrap/fine-uploader/edit.gif
Normal file
After Width: | Height: | Size: 150 B |
471
styles/bootstrap/fine-uploader/fine-uploader-gallery.css
Normal file
|
@ -0,0 +1,471 @@
|
|||
/* ---------------------------------------
|
||||
/* Fine Uploader Gallery View Styles
|
||||
/* ---------------------------------------
|
||||
|
||||
|
||||
/* Buttons
|
||||
------------------------------------------ */
|
||||
.qq-gallery .qq-btn
|
||||
{
|
||||
float: right;
|
||||
border: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* Upload Button
|
||||
------------------------------------------ */
|
||||
.qq-gallery .qq-upload-button {
|
||||
display: inline;
|
||||
width: 105px;
|
||||
padding: 7px 10px;
|
||||
float: left;
|
||||
text-align: center;
|
||||
background: #00ABC7;
|
||||
color: #FFFFFF;
|
||||
border-radius: 2px;
|
||||
border: 1px solid #37B7CC;
|
||||
box-shadow: 0 1px 1px rgba(255, 255, 255, 0.37) inset,
|
||||
1px 0 1px rgba(255, 255, 255, 0.07) inset,
|
||||
0 1px 0 rgba(0, 0, 0, 0.36),
|
||||
0 -2px 12px rgba(0, 0, 0, 0.08) inset
|
||||
}
|
||||
.qq-gallery .qq-upload-button-hover {
|
||||
background: #33B6CC;
|
||||
}
|
||||
.qq-gallery .qq-upload-button-focus {
|
||||
outline: 1px dotted #000000;
|
||||
}
|
||||
|
||||
|
||||
/* Drop Zone
|
||||
------------------------------------------ */
|
||||
.qq-gallery.qq-uploader {
|
||||
position: relative;
|
||||
min-height: 200px;
|
||||
max-height: 490px;
|
||||
overflow-y: hidden;
|
||||
width: inherit;
|
||||
border-radius: 6px;
|
||||
border: 1px dashed #CCCCCC;
|
||||
background-color: #FAFAFA;
|
||||
padding: 20px;
|
||||
}
|
||||
.qq-gallery.qq-uploader:before {
|
||||
content: attr(qq-drop-area-text) " ";
|
||||
position: absolute;
|
||||
font-size: 200%;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
top: 45%;
|
||||
opacity: 0.25;
|
||||
filter: alpha(opacity=25);
|
||||
}
|
||||
.qq-gallery .qq-upload-drop-area, .qq-upload-extra-drop-area {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
min-height: 30px;
|
||||
z-index: 2;
|
||||
background: #F9F9F9;
|
||||
border-radius: 4px;
|
||||
text-align: center;
|
||||
}
|
||||
.qq-gallery .qq-upload-drop-area span {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: 100%;
|
||||
margin-top: -8px;
|
||||
font-size: 16px;
|
||||
}
|
||||
.qq-gallery .qq-upload-extra-drop-area {
|
||||
position: relative;
|
||||
margin-top: 50px;
|
||||
font-size: 16px;
|
||||
padding-top: 30px;
|
||||
height: 20px;
|
||||
min-height: 40px;
|
||||
}
|
||||
.qq-gallery .qq-upload-drop-area-active {
|
||||
background: #FDFDFD;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.qq-gallery .qq-upload-list {
|
||||
margin: 0;
|
||||
padding: 10px 0 0;
|
||||
list-style: none;
|
||||
max-height: 450px;
|
||||
overflow-y: auto;
|
||||
clear: both;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
|
||||
/* Uploaded Elements
|
||||
------------------------------------------ */
|
||||
.qq-gallery .qq-upload-list li {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
max-width: 120px;
|
||||
margin: 0 25px 25px 0;
|
||||
padding: 0;
|
||||
line-height: 16px;
|
||||
font-size: 13px;
|
||||
color: #424242;
|
||||
background-color: #FFFFFF;
|
||||
border-radius: 2px;
|
||||
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.22);
|
||||
vertical-align: top;
|
||||
|
||||
/* to ensure consistent size of tiles - may need to change if qq-max-size attr on preview img changes */
|
||||
height: 186px;
|
||||
}
|
||||
|
||||
.qq-gallery .qq-upload-spinner,
|
||||
.qq-gallery .qq-upload-size,
|
||||
.qq-gallery .qq-upload-retry,
|
||||
.qq-gallery .qq-upload-failed-text,
|
||||
.qq-gallery .qq-upload-delete,
|
||||
.qq-gallery .qq-upload-pause,
|
||||
.qq-gallery .qq-upload-continue {
|
||||
display: inline;
|
||||
}
|
||||
.qq-gallery .qq-upload-retry:hover,
|
||||
.qq-gallery .qq-upload-delete:hover,
|
||||
.qq-gallery .qq-upload-pause:hover,
|
||||
.qq-gallery .qq-upload-continue:hover {
|
||||
background-color: transparent;
|
||||
}
|
||||
.qq-gallery .qq-upload-delete,
|
||||
.qq-gallery .qq-upload-pause,
|
||||
.qq-gallery .qq-upload-continue,
|
||||
.qq-gallery .qq-upload-cancel {
|
||||
cursor: pointer;
|
||||
}
|
||||
.qq-gallery .qq-upload-delete,
|
||||
.qq-gallery .qq-upload-pause,
|
||||
.qq-gallery .qq-upload-continue {
|
||||
border:none;
|
||||
background: none;
|
||||
color: #00A0BA;
|
||||
font-size: 12px;
|
||||
padding: 0;
|
||||
}
|
||||
/* to ensure consistent size of tiles - only display status text before auto-retry or after failure */
|
||||
.qq-gallery .qq-upload-status-text {
|
||||
color: #333333;
|
||||
font-size: 12px;
|
||||
padding-left: 3px;
|
||||
padding-top: 2px;
|
||||
width: inherit;
|
||||
display: none;
|
||||
width: 108px;
|
||||
}
|
||||
.qq-gallery .qq-upload-fail .qq-upload-status-text {
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow-x: hidden;
|
||||
display: block;
|
||||
}
|
||||
.qq-gallery .qq-upload-retrying .qq-upload-status-text {
|
||||
display: inline-block;
|
||||
}
|
||||
.qq-gallery .qq-upload-retrying .qq-progress-bar-container {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.qq-gallery .qq-upload-cancel {
|
||||
background-color: #525252;
|
||||
color: #F7F7F7;
|
||||
font-weight: bold;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
border-radius: 12px;
|
||||
border: none;
|
||||
height: 22px;
|
||||
width: 22px;
|
||||
padding: 4px;
|
||||
position: absolute;
|
||||
right: -5px;
|
||||
top: -6px;
|
||||
margin: 0;
|
||||
line-height: 17px;
|
||||
}
|
||||
.qq-gallery .qq-upload-cancel:hover {
|
||||
background-color: #525252;
|
||||
}
|
||||
.qq-gallery .qq-upload-retry {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
left: 50%;
|
||||
margin-left: -31px;
|
||||
box-shadow: 0 1px 1px rgba(255, 255, 255, 0.37) inset,
|
||||
1px 0 1px rgba(255, 255, 255, 0.07) inset,
|
||||
0 4px 4px rgba(0, 0, 0, 0.5),
|
||||
0 -2px 12px rgba(0, 0, 0, 0.08) inset;
|
||||
padding: 3px 4px;
|
||||
border: 1px solid #d2ddc7;
|
||||
border-radius: 2px;
|
||||
color: inherit;
|
||||
background-color: #EBF6E0;
|
||||
z-index: 1;
|
||||
}
|
||||
.qq-gallery .qq-upload-retry:hover {
|
||||
background-color: #f7ffec;
|
||||
}
|
||||
|
||||
.qq-gallery .qq-file-info {
|
||||
padding: 10px 6px 4px;
|
||||
margin-top: -3px;
|
||||
border-radius: 0 0 2px 2px;
|
||||
text-align: left;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.qq-gallery .qq-file-info .qq-file-name {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.qq-gallery .qq-upload-file {
|
||||
display: block;
|
||||
margin-right: 0;
|
||||
margin-bottom: 3px;
|
||||
width: auto;
|
||||
|
||||
/* to ensure consistent size of tiles - constrain text to single line */
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
.qq-gallery .qq-upload-spinner {
|
||||
display: inline-block;
|
||||
background: url("loading.gif");
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
margin-left: -7px;
|
||||
top: 53px;
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
.qq-gallery .qq-drop-processing {
|
||||
display: block;
|
||||
}
|
||||
.qq-gallery .qq-drop-processing-spinner {
|
||||
display: inline-block;
|
||||
background: url("processing.gif");
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
.qq-gallery .qq-upload-failed-text {
|
||||
display: none;
|
||||
font-style: italic;
|
||||
font-weight: bold;
|
||||
}
|
||||
.qq-gallery .qq-upload-failed-icon {
|
||||
display:none;
|
||||
width:15px;
|
||||
height:15px;
|
||||
vertical-align:text-bottom;
|
||||
}
|
||||
.qq-gallery .qq-upload-fail .qq-upload-failed-text {
|
||||
display: inline;
|
||||
}
|
||||
.qq-gallery .qq-upload-retrying .qq-upload-failed-text {
|
||||
display: inline;
|
||||
}
|
||||
.qq-gallery .qq-upload-list li.qq-upload-success {
|
||||
background-color: #F2F7ED;
|
||||
}
|
||||
.qq-gallery .qq-upload-list li.qq-upload-fail {
|
||||
background-color: #F5EDED;
|
||||
box-shadow: 0 0 1px 0 red;
|
||||
border: 0;
|
||||
}
|
||||
.qq-gallery .qq-progress-bar {
|
||||
display: block;
|
||||
background: #00abc7;
|
||||
width: 0%;
|
||||
height: 15px;
|
||||
border-radius: 6px;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
.qq-gallery .qq-total-progress-bar {
|
||||
height: 25px;
|
||||
border-radius: 9px;
|
||||
}
|
||||
|
||||
.qq-gallery .qq-total-progress-bar-container {
|
||||
margin-left: 9px;
|
||||
display: inline;
|
||||
float: right;
|
||||
width: 500px;
|
||||
}
|
||||
|
||||
.qq-gallery .qq-upload-size {
|
||||
float: left;
|
||||
font-size: 11px;
|
||||
color: #929292;
|
||||
margin-bottom: 3px;
|
||||
margin-right: 0;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.qq-gallery INPUT.qq-edit-filename {
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
filter: alpha(opacity=0);
|
||||
z-index: -1;
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
|
||||
}
|
||||
|
||||
.qq-gallery .qq-upload-file.qq-editable {
|
||||
cursor: pointer;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.qq-gallery .qq-edit-filename-icon.qq-editable {
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.qq-gallery INPUT.qq-edit-filename.qq-editing {
|
||||
position: static;
|
||||
height: 28px;
|
||||
width: 90px;
|
||||
width: -moz-available;
|
||||
padding: 0 8px;
|
||||
margin-bottom: 3px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 2px;
|
||||
font-size: 13px;
|
||||
|
||||
opacity: 1;
|
||||
filter: alpha(opacity=100);
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
|
||||
}
|
||||
|
||||
.qq-gallery .qq-edit-filename-icon {
|
||||
display: none;
|
||||
background: url("edit.gif");
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
.qq-gallery .qq-delete-icon {
|
||||
background: url("trash.gif");
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
vertical-align: sub;
|
||||
display: inline-block;
|
||||
}
|
||||
.qq-gallery .qq-retry-icon {
|
||||
background: url("retry.gif");
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
vertical-align: sub;
|
||||
display: inline-block;
|
||||
float: none;
|
||||
}
|
||||
.qq-gallery .qq-continue-icon {
|
||||
background: url("continue.gif");
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
vertical-align: sub;
|
||||
display: inline-block;
|
||||
}
|
||||
.qq-gallery .qq-pause-icon {
|
||||
background: url("pause.gif");
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
vertical-align: sub;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.qq-gallery .qq-hide {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
/* Thumbnail
|
||||
------------------------------------------ */
|
||||
.qq-gallery .qq-in-progress .qq-thumbnail-wrapper {
|
||||
/* makes the spinner on top of the thumbnail more visible */
|
||||
opacity: 0.5;
|
||||
filter: alpha(opacity=50);
|
||||
}
|
||||
.qq-gallery .qq-thumbnail-wrapper {
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
|
||||
/* to ensure consistent size of tiles - should match qq-max-size attribute value on qq-thumbnail-selector IMG element */
|
||||
height: 120px;
|
||||
width: 120px;
|
||||
}
|
||||
.qq-gallery .qq-thumbnail-selector {
|
||||
border-radius: 2px 2px 0 0;
|
||||
bottom: 0;
|
||||
|
||||
/* we will override this in the :root thumbnail selector (to help center the preview) for everything other than IE8 */
|
||||
top: 0;
|
||||
|
||||
/* center the thumb horizontally in the tile */
|
||||
margin:auto;
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* hack to ensure we don't try to center preview in IE8, since -ms-filter doesn't mimic translateY as expected in all cases */
|
||||
:root *> .qq-gallery .qq-thumbnail-selector {
|
||||
/* vertically center preview image on tile */
|
||||
position: relative;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
-moz-transform: translateY(-50%);
|
||||
-ms-transform: translateY(-50%);
|
||||
-webkit-transform: translateY(-50%);
|
||||
}
|
||||
|
||||
/* <dialog> element styles */
|
||||
.qq-gallery.qq-uploader DIALOG {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.qq-gallery.qq-uploader DIALOG[open] {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.qq-gallery.qq-uploader DIALOG {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.qq-gallery.qq-uploader DIALOG[open] {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.qq-gallery.qq-uploader DIALOG .qq-dialog-buttons {
|
||||
text-align: center;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.qq-gallery.qq-uploader DIALOG .qq-dialog-buttons BUTTON {
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.qq-gallery.qq-uploader DIALOG .qq-dialog-message-selector {
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.qq-gallery .qq-uploader DIALOG::backdrop {
|
||||
background-color: rgba(0, 0, 0, 0.7);
|
||||
}
|
1
styles/bootstrap/fine-uploader/fine-uploader-gallery.min.css
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"sources":["_build/fine-uploader-gallery.css"],"names":[],"mappings":"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"}
|
354
styles/bootstrap/fine-uploader/fine-uploader-new.css
Normal file
|
@ -0,0 +1,354 @@
|
|||
/* ---------------------------------------
|
||||
/* Fine Uploader Styles
|
||||
/* ---------------------------------------
|
||||
|
||||
/* Buttons
|
||||
------------------------------------------ */
|
||||
.qq-btn
|
||||
{
|
||||
box-shadow: 0 1px 1px rgba(255, 255, 255, 0.37) inset,
|
||||
1px 0 1px rgba(255, 255, 255, 0.07) inset,
|
||||
0 1px 0 rgba(0, 0, 0, 0.36),
|
||||
0 -2px 12px rgba(0, 0, 0, 0.08) inset;
|
||||
padding: 3px 4px;
|
||||
border: 1px solid #CCCCCC;
|
||||
border-radius: 2px;
|
||||
color: inherit;
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
.qq-upload-delete, .qq-upload-pause, .qq-upload-continue {
|
||||
display: inline;
|
||||
}
|
||||
.qq-upload-delete
|
||||
{
|
||||
background-color: #e65c47;
|
||||
color: #FAFAFA;
|
||||
border-color: #dc523d;
|
||||
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.55);
|
||||
}
|
||||
.qq-upload-delete:hover {
|
||||
background-color: #f56b56;
|
||||
}
|
||||
.qq-upload-cancel
|
||||
{
|
||||
background-color: #F5D7D7;
|
||||
border-color: #e6c8c8;
|
||||
}
|
||||
.qq-upload-cancel:hover {
|
||||
background-color: #ffe1e1;
|
||||
}
|
||||
.qq-upload-retry
|
||||
{
|
||||
background-color: #EBF6E0;
|
||||
border-color: #d2ddc7;
|
||||
}
|
||||
.qq-upload-retry:hover {
|
||||
background-color: #f7ffec;
|
||||
}
|
||||
.qq-upload-pause, .qq-upload-continue {
|
||||
background-color: #00ABC7;
|
||||
color: #FAFAFA;
|
||||
border-color: #2dadc2;
|
||||
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.55);
|
||||
}
|
||||
.qq-upload-pause:hover, .qq-upload-continue:hover {
|
||||
background-color: #0fbad6;
|
||||
}
|
||||
|
||||
/* Upload Button
|
||||
------------------------------------------ */
|
||||
.qq-upload-button {
|
||||
display: inline;
|
||||
width: 105px;
|
||||
margin-bottom: 10px;
|
||||
padding: 7px 10px;
|
||||
text-align: center;
|
||||
float: left;
|
||||
background: #00ABC7;
|
||||
color: #FFFFFF;
|
||||
border-radius: 2px;
|
||||
border: 1px solid #2dadc2;
|
||||
box-shadow: 0 1px 1px rgba(255, 255, 255, 0.37) inset,
|
||||
1px 0 1px rgba(255, 255, 255, 0.07) inset,
|
||||
0 1px 0 rgba(0, 0, 0, 0.36),
|
||||
0 -2px 12px rgba(0, 0, 0, 0.08) inset;
|
||||
}
|
||||
.qq-upload-button-hover {
|
||||
background: #33B6CC;
|
||||
}
|
||||
.qq-upload-button-focus {
|
||||
outline: 1px dotted #000000;
|
||||
}
|
||||
|
||||
|
||||
/* Drop Zone
|
||||
------------------------------------------ */
|
||||
.qq-uploader {
|
||||
position: relative;
|
||||
min-height: 200px;
|
||||
max-height: 490px;
|
||||
overflow-y: hidden;
|
||||
width: inherit;
|
||||
border-radius: 6px;
|
||||
background-color: #FDFDFD;
|
||||
border: 1px dashed #CCCCCC;
|
||||
padding: 20px;
|
||||
}
|
||||
.qq-uploader:before {
|
||||
content: attr(qq-drop-area-text) " ";
|
||||
position: absolute;
|
||||
font-size: 200%;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
top: 45%;
|
||||
opacity: 0.25;
|
||||
}
|
||||
.qq-upload-drop-area, .qq-upload-extra-drop-area {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
min-height: 30px;
|
||||
z-index: 2;
|
||||
background: #F9F9F9;
|
||||
border-radius: 4px;
|
||||
border: 1px dashed #CCCCCC;
|
||||
text-align: center;
|
||||
}
|
||||
.qq-upload-drop-area span {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: 100%;
|
||||
margin-top: -8px;
|
||||
font-size: 16px;
|
||||
}
|
||||
.qq-upload-extra-drop-area {
|
||||
position: relative;
|
||||
margin-top: 50px;
|
||||
font-size: 16px;
|
||||
padding-top: 30px;
|
||||
height: 20px;
|
||||
min-height: 40px;
|
||||
}
|
||||
.qq-upload-drop-area-active {
|
||||
background: #FDFDFD;
|
||||
border-radius: 4px;
|
||||
border: 1px dashed #CCCCCC;
|
||||
}
|
||||
.qq-upload-list {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
max-height: 450px;
|
||||
overflow-y: auto;
|
||||
box-shadow: 0px 1px 0px rgba(15, 15, 50, 0.14);
|
||||
clear: both;
|
||||
}
|
||||
|
||||
|
||||
/* Uploaded Elements
|
||||
------------------------------------------ */
|
||||
.qq-upload-list li {
|
||||
margin: 0;
|
||||
padding: 9px;
|
||||
line-height: 15px;
|
||||
font-size: 16px;
|
||||
color: #424242;
|
||||
background-color: #F6F6F6;
|
||||
border-top: 1px solid #FFFFFF;
|
||||
border-bottom: 1px solid #DDDDDD;
|
||||
}
|
||||
.qq-upload-list li:first-child {
|
||||
border-top: none;
|
||||
}
|
||||
.qq-upload-list li:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.qq-upload-file, .qq-upload-spinner, .qq-upload-size,
|
||||
.qq-upload-cancel, .qq-upload-retry, .qq-upload-failed-text,
|
||||
.qq-upload-delete, .qq-upload-pause, .qq-upload-continue {
|
||||
margin-right: 12px;
|
||||
display: inline;
|
||||
}
|
||||
.qq-upload-file {
|
||||
vertical-align: middle;
|
||||
display: inline-block;
|
||||
width: 300px;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow-x: hidden;
|
||||
height: 18px;
|
||||
}
|
||||
.qq-upload-spinner {
|
||||
display: inline-block;
|
||||
background: url("loading.gif");
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
.qq-drop-processing {
|
||||
display: block;
|
||||
}
|
||||
.qq-drop-processing-spinner {
|
||||
display: inline-block;
|
||||
background: url("processing.gif");
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
.qq-upload-size, .qq-upload-cancel, .qq-upload-retry,
|
||||
.qq-upload-delete, .qq-upload-pause, .qq-upload-continue {
|
||||
font-size: 12px;
|
||||
font-weight: normal;
|
||||
cursor: pointer;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.qq-upload-status-text {
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
display: block;
|
||||
}
|
||||
.qq-upload-failed-text {
|
||||
display: none;
|
||||
font-style: italic;
|
||||
font-weight: bold;
|
||||
}
|
||||
.qq-upload-failed-icon {
|
||||
display:none;
|
||||
width:15px;
|
||||
height:15px;
|
||||
vertical-align:text-bottom;
|
||||
}
|
||||
.qq-upload-fail .qq-upload-failed-text {
|
||||
display: inline;
|
||||
}
|
||||
.qq-upload-retrying .qq-upload-failed-text {
|
||||
display: inline;
|
||||
}
|
||||
.qq-upload-list li.qq-upload-success {
|
||||
background-color: #EBF6E0;
|
||||
color: #424242;
|
||||
border-bottom: 1px solid #D3DED1;
|
||||
border-top: 1px solid #F7FFF5;
|
||||
}
|
||||
.qq-upload-list li.qq-upload-fail {
|
||||
background-color: #F5D7D7;
|
||||
color: #424242;
|
||||
border-bottom: 1px solid #DECACA;
|
||||
border-top: 1px solid #FCE6E6;
|
||||
}
|
||||
.qq-progress-bar {
|
||||
display: block;
|
||||
display: block;
|
||||
background: #00abc7;
|
||||
width: 0%;
|
||||
height: 15px;
|
||||
border-radius: 6px;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
.qq-total-progress-bar {
|
||||
height: 25px;
|
||||
border-radius: 9px;
|
||||
}
|
||||
|
||||
.qq-total-progress-bar-container {
|
||||
margin-left: 9px;
|
||||
display: inline;
|
||||
float: right;
|
||||
width: 500px;
|
||||
}
|
||||
|
||||
INPUT.qq-edit-filename {
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
filter: alpha(opacity=0);
|
||||
z-index: -1;
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
|
||||
}
|
||||
|
||||
.qq-upload-file.qq-editable {
|
||||
cursor: pointer;
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
.qq-edit-filename-icon.qq-editable {
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
INPUT.qq-edit-filename.qq-editing {
|
||||
position: static;
|
||||
height: 28px;
|
||||
padding: 0 8px;
|
||||
margin-right: 10px;
|
||||
margin-bottom: -5px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 2px;
|
||||
font-size: 16px;
|
||||
|
||||
opacity: 1;
|
||||
filter: alpha(opacity=100);
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
|
||||
}
|
||||
|
||||
.qq-edit-filename-icon {
|
||||
display: none;
|
||||
background: url("edit.gif");
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
vertical-align: text-bottom;
|
||||
margin-right: 16px;
|
||||
}
|
||||
|
||||
.qq-hide {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
/* Thumbnail
|
||||
------------------------------------------ */
|
||||
.qq-thumbnail-selector {
|
||||
vertical-align: middle;
|
||||
margin-right: 12px;
|
||||
}
|
||||
|
||||
|
||||
/* <dialog> element styles */
|
||||
.qq-uploader DIALOG {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.qq-uploader DIALOG[open] {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.qq-uploader DIALOG {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.qq-uploader DIALOG[open] {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.qq-uploader DIALOG .qq-dialog-buttons {
|
||||
text-align: center;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.qq-uploader DIALOG .qq-dialog-buttons BUTTON {
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.qq-uploader DIALOG .qq-dialog-message-selector {
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.qq-uploader DIALOG::backdrop {
|
||||
background-color: rgba(0, 0, 0, 0.7);
|
||||
}
|
1
styles/bootstrap/fine-uploader/fine-uploader-new.min.css
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"sources":["_build/fine-uploader-new.css"],"names":[],"mappings":"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"}
|
5515
styles/bootstrap/fine-uploader/fine-uploader.core.js
Normal file
1
styles/bootstrap/fine-uploader/fine-uploader.core.js.map
Normal file
6
styles/bootstrap/fine-uploader/fine-uploader.core.min.js
vendored
Normal file
225
styles/bootstrap/fine-uploader/fine-uploader.css
Normal file
|
@ -0,0 +1,225 @@
|
|||
.qq-uploader {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
}
|
||||
.qq-upload-button {
|
||||
display: block;
|
||||
width: 105px;
|
||||
padding: 7px 0;
|
||||
text-align: center;
|
||||
background: #880000;
|
||||
border-bottom: 1px solid #DDD;
|
||||
color: #FFF;
|
||||
}
|
||||
.qq-upload-button-hover {
|
||||
background: #CC0000;
|
||||
}
|
||||
.qq-upload-button-focus {
|
||||
outline: 1px dotted #000000;
|
||||
}
|
||||
.qq-upload-drop-area, .qq-upload-extra-drop-area {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
min-height: 30px;
|
||||
z-index: 2;
|
||||
background: #FF9797;
|
||||
text-align: center;
|
||||
}
|
||||
.qq-upload-drop-area span {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: 100%;
|
||||
margin-top: -8px;
|
||||
font-size: 16px;
|
||||
}
|
||||
.qq-upload-extra-drop-area {
|
||||
position: relative;
|
||||
margin-top: 50px;
|
||||
font-size: 16px;
|
||||
padding-top: 30px;
|
||||
height: 20px;
|
||||
min-height: 40px;
|
||||
}
|
||||
.qq-upload-drop-area-active {
|
||||
background: #FF7171;
|
||||
}
|
||||
.qq-upload-list {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
.qq-upload-list li {
|
||||
margin: 0;
|
||||
padding: 9px;
|
||||
line-height: 15px;
|
||||
font-size: 16px;
|
||||
background-color: #FFF0BD;
|
||||
}
|
||||
.qq-upload-file, .qq-upload-spinner, .qq-upload-size,
|
||||
.qq-upload-cancel, .qq-upload-retry, .qq-upload-failed-text,
|
||||
.qq-upload-delete, .qq-upload-pause, .qq-upload-continue {
|
||||
margin-right: 12px;
|
||||
display: inline;
|
||||
}
|
||||
.qq-upload-file {
|
||||
}
|
||||
.qq-upload-spinner {
|
||||
display: inline-block;
|
||||
background: url("loading.gif");
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
.qq-drop-processing {
|
||||
display: block;
|
||||
}
|
||||
.qq-drop-processing-spinner {
|
||||
display: inline-block;
|
||||
background: url("processing.gif");
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
|
||||
.qq-upload-delete, .qq-upload-pause, .qq-upload-continue {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.qq-upload-retry, .qq-upload-delete, .qq-upload-cancel,
|
||||
.qq-upload-pause, .qq-upload-continue {
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
.qq-upload-size, .qq-upload-cancel, .qq-upload-retry,
|
||||
.qq-upload-delete, .qq-upload-pause, .qq-upload-continue {
|
||||
font-size: 12px;
|
||||
font-weight: normal;
|
||||
}
|
||||
.qq-upload-failed-text {
|
||||
display: none;
|
||||
font-style: italic;
|
||||
font-weight: bold;
|
||||
}
|
||||
.qq-upload-failed-icon {
|
||||
display:none;
|
||||
width:15px;
|
||||
height:15px;
|
||||
vertical-align:text-bottom;
|
||||
}
|
||||
.qq-upload-fail .qq-upload-failed-text {
|
||||
display: inline;
|
||||
}
|
||||
.qq-upload-retrying .qq-upload-failed-text {
|
||||
display: inline;
|
||||
color: #D60000;
|
||||
}
|
||||
.qq-upload-list li.qq-upload-success {
|
||||
background-color: #5DA30C;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
.qq-upload-list li.qq-upload-fail {
|
||||
background-color: #D60000;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
.qq-progress-bar {
|
||||
display: block;
|
||||
background: -moz-linear-gradient(top, rgba(30,87,153,1) 0%, rgba(41,137,216,1) 50%, rgba(32,124,202,1) 51%, rgba(125,185,232,1) 100%); /* FF3.6+ */
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(30,87,153,1)), color-stop(50%,rgba(41,137,216,1)), color-stop(51%,rgba(32,124,202,1)), color-stop(100%,rgba(125,185,232,1))); /* Chrome,Safari4+ */
|
||||
background: -webkit-linear-gradient(top, rgba(30,87,153,1) 0%,rgba(41,137,216,1) 50%,rgba(32,124,202,1) 51%,rgba(125,185,232,1) 100%); /* Chrome10+,Safari5.1+ */
|
||||
background: -o-linear-gradient(top, rgba(30,87,153,1) 0%,rgba(41,137,216,1) 50%,rgba(32,124,202,1) 51%,rgba(125,185,232,1) 100%); /* Opera 11.10+ */
|
||||
background: -ms-linear-gradient(top, rgba(30,87,153,1) 0%,rgba(41,137,216,1) 50%,rgba(32,124,202,1) 51%,rgba(125,185,232,1) 100%); /* IE10+ */
|
||||
background: linear-gradient(to bottom, rgba(30,87,153,1) 0%,rgba(41,137,216,1) 50%,rgba(32,124,202,1) 51%,rgba(125,185,232,1) 100%); /* W3C */
|
||||
width: 0%;
|
||||
height: 15px;
|
||||
border-radius: 6px;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
.qq-total-progress-bar {
|
||||
height: 25px;
|
||||
border-radius: 9px;
|
||||
}
|
||||
|
||||
.qq-total-progress-bar-container {
|
||||
margin: 9px;
|
||||
}
|
||||
|
||||
INPUT.qq-edit-filename {
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
filter: alpha(opacity=0);
|
||||
z-index: -1;
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
|
||||
}
|
||||
|
||||
.qq-upload-file.qq-editable {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.qq-edit-filename-icon.qq-editable {
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
INPUT.qq-edit-filename.qq-editing {
|
||||
position: static;
|
||||
margin-top: -5px;
|
||||
margin-right: 10px;
|
||||
margin-bottom: -5px;
|
||||
|
||||
opacity: 1;
|
||||
filter: alpha(opacity=100);
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
|
||||
}
|
||||
|
||||
.qq-edit-filename-icon {
|
||||
display: none;
|
||||
background: url("edit.gif");
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
vertical-align: text-bottom;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.qq-hide {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* <dialog> element styles */
|
||||
.qq-uploader DIALOG {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.qq-uploader DIALOG[open] {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.qq-uploader DIALOG {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.qq-uploader DIALOG[open] {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.qq-uploader DIALOG .qq-dialog-buttons {
|
||||
text-align: center;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.qq-uploader DIALOG .qq-dialog-buttons BUTTON {
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.qq-uploader DIALOG .qq-dialog-message-selector {
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.qq-uploader DIALOG::backdrop {
|
||||
background-color: rgba(0, 0, 0, 0.7);
|
||||
}
|
7414
styles/bootstrap/fine-uploader/fine-uploader.js
Normal file
1
styles/bootstrap/fine-uploader/fine-uploader.js.map
Normal file
1
styles/bootstrap/fine-uploader/fine-uploader.min.css
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
.qq-uploader{position:relative;width:100%}.qq-upload-button{display:block;width:105px;padding:7px 0;text-align:center;background:#800;border-bottom:1px solid #DDD;color:#FFF}.qq-upload-button-hover{background:#C00}.qq-upload-button-focus{outline:#000 dotted 1px}.qq-upload-drop-area,.qq-upload-extra-drop-area{position:absolute;top:0;left:0;width:100%;height:100%;min-height:30px;z-index:2;background:#FF9797;text-align:center}.qq-upload-drop-area span{display:block;position:absolute;top:50%;width:100%;margin-top:-8px;font-size:16px}.qq-upload-extra-drop-area{position:relative;margin-top:50px;font-size:16px;padding-top:30px;height:20px;min-height:40px}.qq-upload-drop-area-active{background:#FF7171}.qq-upload-list{margin:0;padding:0;list-style:none}.qq-upload-list li{margin:0;padding:9px;line-height:15px;font-size:16px;background-color:#FFF0BD}.qq-upload-cancel,.qq-upload-continue,.qq-upload-delete,.qq-upload-failed-text,.qq-upload-file,.qq-upload-pause,.qq-upload-retry,.qq-upload-size,.qq-upload-spinner{margin-right:12px;display:inline}.qq-upload-spinner{display:inline-block;background:url(loading.gif);width:15px;height:15px;vertical-align:text-bottom}.qq-drop-processing{display:block}.qq-drop-processing-spinner{display:inline-block;background:url(processing.gif);width:24px;height:24px;vertical-align:text-bottom}.qq-upload-continue,.qq-upload-delete,.qq-upload-pause{display:inline}.qq-upload-cancel,.qq-upload-continue,.qq-upload-delete,.qq-upload-pause,.qq-upload-retry{color:#000}.qq-upload-cancel,.qq-upload-continue,.qq-upload-delete,.qq-upload-pause,.qq-upload-retry,.qq-upload-size{font-size:12px;font-weight:400}.qq-upload-failed-text{display:none;font-style:italic;font-weight:700}.qq-upload-failed-icon{display:none;width:15px;height:15px;vertical-align:text-bottom}.qq-upload-fail .qq-upload-failed-text{display:inline}.qq-upload-retrying .qq-upload-failed-text{display:inline;color:#D60000}.qq-upload-list li.qq-upload-success{background-color:#5DA30C;color:#FFF}.qq-upload-list li.qq-upload-fail{background-color:#D60000;color:#FFF}.qq-progress-bar{display:block;background:-moz-linear-gradient(top,rgba(30,87,153,1) 0,rgba(41,137,216,1) 50%,rgba(32,124,202,1) 51%,rgba(125,185,232,1) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(30,87,153,1)),color-stop(50%,rgba(41,137,216,1)),color-stop(51%,rgba(32,124,202,1)),color-stop(100%,rgba(125,185,232,1)));background:-webkit-linear-gradient(top,rgba(30,87,153,1) 0,rgba(41,137,216,1) 50%,rgba(32,124,202,1) 51%,rgba(125,185,232,1) 100%);background:-o-linear-gradient(top,rgba(30,87,153,1) 0,rgba(41,137,216,1) 50%,rgba(32,124,202,1) 51%,rgba(125,185,232,1) 100%);background:-ms-linear-gradient(top,rgba(30,87,153,1) 0,rgba(41,137,216,1) 50%,rgba(32,124,202,1) 51%,rgba(125,185,232,1) 100%);background:linear-gradient(to bottom,rgba(30,87,153,1) 0,rgba(41,137,216,1) 50%,rgba(32,124,202,1) 51%,rgba(125,185,232,1) 100%);width:0;height:15px;border-radius:6px;margin-bottom:3px}.qq-total-progress-bar{height:25px;border-radius:9px}.qq-total-progress-bar-container{margin:9px}INPUT.qq-edit-filename{position:absolute;opacity:0;filter:alpha(opacity=0);z-index:-1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"}.qq-upload-file.qq-editable{cursor:pointer}.qq-edit-filename-icon.qq-editable{display:inline-block;cursor:pointer}.qq-hide,.qq-uploader DIALOG{display:none}INPUT.qq-edit-filename.qq-editing{position:static;margin-top:-5px;margin-right:10px;margin-bottom:-5px;opacity:1;filter:alpha(opacity=100);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}.qq-edit-filename-icon{display:none;background:url(edit.gif);width:15px;height:15px;vertical-align:text-bottom;margin-right:5px}.qq-uploader DIALOG[open]{display:block}.qq-uploader DIALOG .qq-dialog-buttons{text-align:center;padding-top:10px}.qq-uploader DIALOG .qq-dialog-buttons BUTTON{margin-left:5px;margin-right:5px}.qq-uploader DIALOG .qq-dialog-message-selector{padding-bottom:10px}.qq-uploader DIALOG::backdrop{background-color:rgba(0,0,0,.7)}/*# sourceMappingURL=fine-uploader.min.css.map */
|
1
styles/bootstrap/fine-uploader/fine-uploader.min.css.map
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"sources":["_build/fine-uploader.css"],"names":[],"mappings":"AAAA,aACI,SAAU,SACV,MAAO,KAEX,kBACI,QAAS,MACT,MAAO,MACP,QAAS,IAAI,EACb,WAAY,OACZ,WAAY,KACZ,cAAe,IAAI,MAAM,KACzB,MAAO,KAEX,wBACI,WAAY,KAEhB,wBACI,QAAoB,KAAP,OAAJ,IAEb,qBAAsB,2BAClB,SAAU,SACV,IAAK,EACL,KAAM,EACN,MAAO,KACP,OAAQ,KACR,WAAY,KACZ,QAAS,EACT,WAAY,QACZ,WAAY,OAEhB,0BACI,QAAS,MACT,SAAU,SACV,IAAK,IACL,MAAO,KACP,WAAY,KACZ,UAAW,KAEf,2BACI,SAAU,SACV,WAAY,KACZ,UAAW,KACX,YAAa,KACb,OAAQ,KACR,WAAY,KAEhB,4BACI,WAAY,QAEhB,gBACI,OAAQ,EACR,QAAS,EACT,WAAY,KAEhB,mBACI,OAAQ,EACR,QAAS,IACT,YAAa,KACb,UAAW,KACX,iBAAkB,QAGtB,kBACqC,oBAArC,kBADqC,uBADrC,gBAEmB,iBADA,iBADkB,gBAApB,mBAGb,aAAc,KACd,QAAS,OAIb,mBACI,QAAS,aACT,WAAY,iBACZ,MAAO,KACP,OAAQ,KACR,eAAgB,YAEpB,oBACI,QAAS,MAEb,4BACI,QAAS,aACT,WAAY,oBACZ,MAAO,KACP,OAAQ,KACR,eAAgB,YAGiB,oBAArC,kBAAmB,iBACf,QAAS,OAGwB,kBACnB,oBADA,kBAClB,iBADA,iBAEI,MAAO,KAGM,kBACoB,oBAArC,kBAAmB,iBADiB,iBAApC,gBAEI,UAAW,KACX,YAAa,IAEjB,uBACI,QAAS,KACT,WAAY,OACZ,YAAa,IAEjB,uBACI,QAAQ,KACR,MAAM,KACN,OAAO,KACP,eAAe,YAEnB,uCACI,QAAS,OAEb,2CACI,QAAS,OACT,MAAO,QAEX,qCACI,iBAAkB,QAClB,MAAO,KAEX,kCACI,iBAAkB,QAClB,MAAO,KAEX,iBACI,QAAS,MACT,WAAY,qHACZ,WAAwB,yLACxB,WAA8C,wHAC9C,WAAyE,mHACzE,WAA4F,oHAC5F,WAAwG,sHACxG,MAA6G,EAC7G,OAAQ,KACR,cAAe,IACf,cAAe,IAGnB,uBACI,OAAQ,KACR,cAAe,IAGnB,iCACI,OAAQ,IAGZ,uBACI,SAAU,SACV,QAAS,EACT,OAAQ,iBACR,QAAS,GACT,WAAY,qDAGhB,4BACI,OAAQ,QAGZ,mCACI,QAAS,aACT,OAAQ,QAuBZ,SAaA,oBACI,QAAS,KAlCb,kCACI,SAAU,OACV,WAAY,KACZ,aAAc,KACd,cAAe,KAEf,QAAS,EACT,OAAQ,mBACR,WAAY,uDAGhB,uBACI,QAAS,KACT,WAAY,cACZ,MAAO,KACP,OAAQ,KACR,eAAgB,YAChB,aAAc,IAoBlB,0BACI,QAAS,MAGb,uCACI,WAAY,OACZ,YAAa,KAGjB,8CACI,YAAa,IACb,aAAc,IAGlB,gDACI,eAAgB,KAGpB,8BACI,iBAAkB"}
|
7
styles/bootstrap/fine-uploader/fine-uploader.min.js
vendored
Normal file
1
styles/bootstrap/fine-uploader/fine-uploader.min.js.map
Normal file
7671
styles/bootstrap/fine-uploader/jquery.fine-uploader.js
Normal file
7
styles/bootstrap/fine-uploader/jquery.fine-uploader.min.js
vendored
Normal file
BIN
styles/bootstrap/fine-uploader/loading.gif
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
styles/bootstrap/fine-uploader/pause.gif
Normal file
After Width: | Height: | Size: 142 B |
BIN
styles/bootstrap/fine-uploader/placeholders/not_available-generic.png
Executable file
After Width: | Height: | Size: 3.9 KiB |
BIN
styles/bootstrap/fine-uploader/placeholders/waiting-generic.png
Executable file
After Width: | Height: | Size: 5.6 KiB |
BIN
styles/bootstrap/fine-uploader/processing.gif
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
styles/bootstrap/fine-uploader/retry.gif
Normal file
After Width: | Height: | Size: 173 B |
62
styles/bootstrap/fine-uploader/templates/default.html
Normal file
|
@ -0,0 +1,62 @@
|
|||
<!--
|
||||
This is a legacy template and is not meant to be used in new Fine Uploader integrated projects.
|
||||
Read the "Getting Started Guide" at http://docs.fineuploader.com/quickstart/01-getting-started.html
|
||||
if you are not yet familiar with Fine Uploader UI.
|
||||
-->
|
||||
<script type="text/template" id="qq-template">
|
||||
<div class="qq-uploader-selector qq-uploader" qq-drop-area-text="Drop files here">
|
||||
<div class="qq-total-progress-bar-container-selector qq-total-progress-bar-container">
|
||||
<div role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" class="qq-total-progress-bar-selector qq-progress-bar qq-total-progress-bar"></div>
|
||||
</div>
|
||||
<div class="qq-upload-drop-area-selector qq-upload-drop-area" qq-hide-dropzone>
|
||||
<span class="qq-upload-drop-area-text-selector"></span>
|
||||
</div>
|
||||
<div class="qq-upload-button-selector qq-upload-button">
|
||||
<div>Upload a file</div>
|
||||
</div>
|
||||
<span class="qq-drop-processing-selector qq-drop-processing">
|
||||
<span>Processing dropped files...</span>
|
||||
<span class="qq-drop-processing-spinner-selector qq-drop-processing-spinner"></span>
|
||||
</span>
|
||||
<ul class="qq-upload-list-selector qq-upload-list" aria-live="polite" aria-relevant="additions removals">
|
||||
<li>
|
||||
<div class="qq-progress-bar-container-selector">
|
||||
<div role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" class="qq-progress-bar-selector qq-progress-bar"></div>
|
||||
</div>
|
||||
<span class="qq-upload-spinner-selector qq-upload-spinner"></span>
|
||||
<span class="qq-upload-file-selector qq-upload-file"></span>
|
||||
<span class="qq-edit-filename-icon-selector qq-edit-filename-icon" aria-label="Edit filename"></span>
|
||||
<input class="qq-edit-filename-selector qq-edit-filename" tabindex="0" type="text">
|
||||
<span class="qq-upload-size-selector qq-upload-size"></span>
|
||||
<button type="button" class="qq-btn qq-upload-cancel-selector qq-upload-cancel">Cancel</button>
|
||||
<button type="button" class="qq-btn qq-upload-retry-selector qq-upload-retry">Retry</button>
|
||||
<button type="button" class="qq-btn qq-upload-delete-selector qq-upload-delete">Delete</button>
|
||||
<span role="status" class="qq-upload-status-text-selector qq-upload-status-text"></span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<dialog class="qq-alert-dialog-selector">
|
||||
<div class="qq-dialog-message-selector"></div>
|
||||
<div class="qq-dialog-buttons">
|
||||
<button type="button" class="qq-cancel-button-selector">Close</button>
|
||||
</div>
|
||||
</dialog>
|
||||
|
||||
<dialog class="qq-confirm-dialog-selector">
|
||||
<div class="qq-dialog-message-selector"></div>
|
||||
<div class="qq-dialog-buttons">
|
||||
<button type="button" class="qq-cancel-button-selector">No</button>
|
||||
<button type="button" class="qq-ok-button-selector">Yes</button>
|
||||
</div>
|
||||
</dialog>
|
||||
|
||||
<dialog class="qq-prompt-dialog-selector">
|
||||
<div class="qq-dialog-message-selector"></div>
|
||||
<input type="text">
|
||||
<div class="qq-dialog-buttons">
|
||||
<button type="button" class="qq-cancel-button-selector">Cancel</button>
|
||||
<button type="button" class="qq-ok-button-selector">Ok</button>
|
||||
</div>
|
||||
</dialog>
|
||||
</div>
|
||||
</script>
|
82
styles/bootstrap/fine-uploader/templates/gallery.html
Normal file
|
@ -0,0 +1,82 @@
|
|||
<!--
|
||||
Read the "Getting Started Guide" at http://docs.fineuploader.com/quickstart/01-getting-started.html
|
||||
if you are not yet familiar with Fine Uploader UI.
|
||||
Please see http://docs.fineuploader.com/features/styling.html for information
|
||||
on how to customize this template.
|
||||
-->
|
||||
<script type="text/template" id="qq-template">
|
||||
<div class="qq-uploader-selector qq-uploader qq-gallery" qq-drop-area-text="Drop files here">
|
||||
<div class="qq-total-progress-bar-container-selector qq-total-progress-bar-container">
|
||||
<div role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" class="qq-total-progress-bar-selector qq-progress-bar qq-total-progress-bar"></div>
|
||||
</div>
|
||||
<div class="qq-upload-drop-area-selector qq-upload-drop-area" qq-hide-dropzone>
|
||||
<span class="qq-upload-drop-area-text-selector"></span>
|
||||
</div>
|
||||
<div class="qq-upload-button-selector qq-upload-button">
|
||||
<div>Upload a file</div>
|
||||
</div>
|
||||
<span class="qq-drop-processing-selector qq-drop-processing">
|
||||
<span>Processing dropped files...</span>
|
||||
<span class="qq-drop-processing-spinner-selector qq-drop-processing-spinner"></span>
|
||||
</span>
|
||||
<ul class="qq-upload-list-selector qq-upload-list" role="region" aria-live="polite" aria-relevant="additions removals">
|
||||
<li>
|
||||
<span role="status" class="qq-upload-status-text-selector qq-upload-status-text"></span>
|
||||
<div class="qq-progress-bar-container-selector qq-progress-bar-container">
|
||||
<div role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" class="qq-progress-bar-selector qq-progress-bar"></div>
|
||||
</div>
|
||||
<span class="qq-upload-spinner-selector qq-upload-spinner"></span>
|
||||
<div class="qq-thumbnail-wrapper">
|
||||
<img class="qq-thumbnail-selector" qq-max-size="120" qq-server-scale>
|
||||
</div>
|
||||
<button type="button" class="qq-upload-cancel-selector qq-upload-cancel">X</button>
|
||||
<button type="button" class="qq-upload-retry-selector qq-upload-retry">
|
||||
<span class="qq-btn qq-retry-icon" aria-label="Retry"></span>
|
||||
Retry
|
||||
</button>
|
||||
|
||||
<div class="qq-file-info">
|
||||
<div class="qq-file-name">
|
||||
<span class="qq-upload-file-selector qq-upload-file"></span>
|
||||
<span class="qq-edit-filename-icon-selector qq-btn qq-edit-filename-icon" aria-label="Edit filename"></span>
|
||||
</div>
|
||||
<input class="qq-edit-filename-selector qq-edit-filename" tabindex="0" type="text">
|
||||
<span class="qq-upload-size-selector qq-upload-size"></span>
|
||||
<button type="button" class="qq-btn qq-upload-delete-selector qq-upload-delete">
|
||||
<span class="qq-btn qq-delete-icon" aria-label="Delete"></span>
|
||||
</button>
|
||||
<button type="button" class="qq-btn qq-upload-pause-selector qq-upload-pause">
|
||||
<span class="qq-btn qq-pause-icon" aria-label="Pause"></span>
|
||||
</button>
|
||||
<button type="button" class="qq-btn qq-upload-continue-selector qq-upload-continue">
|
||||
<span class="qq-btn qq-continue-icon" aria-label="Continue"></span>
|
||||
</button>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<dialog class="qq-alert-dialog-selector">
|
||||
<div class="qq-dialog-message-selector"></div>
|
||||
<div class="qq-dialog-buttons">
|
||||
<button type="button" class="qq-cancel-button-selector">Close</button>
|
||||
</div>
|
||||
</dialog>
|
||||
|
||||
<dialog class="qq-confirm-dialog-selector">
|
||||
<div class="qq-dialog-message-selector"></div>
|
||||
<div class="qq-dialog-buttons">
|
||||
<button type="button" class="qq-cancel-button-selector">No</button>
|
||||
<button type="button" class="qq-ok-button-selector">Yes</button>
|
||||
</div>
|
||||
</dialog>
|
||||
|
||||
<dialog class="qq-prompt-dialog-selector">
|
||||
<div class="qq-dialog-message-selector"></div>
|
||||
<input type="text">
|
||||
<div class="qq-dialog-buttons">
|
||||
<button type="button" class="qq-cancel-button-selector">Cancel</button>
|
||||
<button type="button" class="qq-ok-button-selector">Ok</button>
|
||||
</div>
|
||||
</dialog>
|
||||
</div>
|
||||
</script>
|
|
@ -0,0 +1,64 @@
|
|||
<!--
|
||||
Read the "Getting Started Guide" at http://docs.fineuploader.com/quickstart/01-getting-started.html
|
||||
if you are not yet familiar with Fine Uploader UI.
|
||||
Please see http://docs.fineuploader.com/features/styling.html for information
|
||||
on how to customize this template.
|
||||
-->
|
||||
<script type="text/template" id="qq-simple-thumbnails-template">
|
||||
<div class="qq-uploader-selector qq-uploader" qq-drop-area-text="Drop files here">
|
||||
<div class="qq-total-progress-bar-container-selector qq-total-progress-bar-container">
|
||||
<div role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" class="qq-total-progress-bar-selector qq-progress-bar qq-total-progress-bar"></div>
|
||||
</div>
|
||||
<div class="qq-upload-drop-area-selector qq-upload-drop-area" qq-hide-dropzone>
|
||||
<span class="qq-upload-drop-area-text-selector"></span>
|
||||
</div>
|
||||
<div class="qq-upload-button-selector qq-upload-button">
|
||||
<div>Upload a file</div>
|
||||
</div>
|
||||
<span class="qq-drop-processing-selector qq-drop-processing">
|
||||
<span>Processing dropped files...</span>
|
||||
<span class="qq-drop-processing-spinner-selector qq-drop-processing-spinner"></span>
|
||||
</span>
|
||||
<ul class="qq-upload-list-selector qq-upload-list" aria-live="polite" aria-relevant="additions removals">
|
||||
<li>
|
||||
<div class="qq-progress-bar-container-selector">
|
||||
<div role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" class="qq-progress-bar-selector qq-progress-bar"></div>
|
||||
</div>
|
||||
<span class="qq-upload-spinner-selector qq-upload-spinner"></span>
|
||||
<img class="qq-thumbnail-selector" qq-max-size="100" qq-server-scale>
|
||||
<span class="qq-upload-file-selector qq-upload-file"></span>
|
||||
<span class="qq-edit-filename-icon-selector qq-edit-filename-icon" aria-label="Edit filename"></span>
|
||||
<input class="qq-edit-filename-selector qq-edit-filename" tabindex="0" type="text">
|
||||
<span class="qq-upload-size-selector qq-upload-size"></span>
|
||||
<button type="button" class="qq-btn qq-upload-cancel-selector qq-upload-cancel">Cancel</button>
|
||||
<button type="button" class="qq-btn qq-upload-retry-selector qq-upload-retry">Retry</button>
|
||||
<button type="button" class="qq-btn qq-upload-delete-selector qq-upload-delete">Delete</button>
|
||||
<span role="status" class="qq-upload-status-text-selector qq-upload-status-text"></span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<dialog class="qq-alert-dialog-selector">
|
||||
<div class="qq-dialog-message-selector"></div>
|
||||
<div class="qq-dialog-buttons">
|
||||
<button type="button" class="qq-cancel-button-selector">Close</button>
|
||||
</div>
|
||||
</dialog>
|
||||
|
||||
<dialog class="qq-confirm-dialog-selector">
|
||||
<div class="qq-dialog-message-selector"></div>
|
||||
<div class="qq-dialog-buttons">
|
||||
<button type="button" class="qq-cancel-button-selector">No</button>
|
||||
<button type="button" class="qq-ok-button-selector">Yes</button>
|
||||
</div>
|
||||
</dialog>
|
||||
|
||||
<dialog class="qq-prompt-dialog-selector">
|
||||
<div class="qq-dialog-message-selector"></div>
|
||||
<input type="text">
|
||||
<div class="qq-dialog-buttons">
|
||||
<button type="button" class="qq-cancel-button-selector">Cancel</button>
|
||||
<button type="button" class="qq-ok-button-selector">Ok</button>
|
||||
</div>
|
||||
</dialog>
|
||||
</div>
|
||||
</script>
|
BIN
styles/bootstrap/fine-uploader/trash.gif
Normal file
After Width: | Height: | Size: 159 B |
|
@ -32,45 +32,15 @@ require_once("class.Bootstrap.php");
|
|||
class SeedDMS_View_AddDocument extends SeedDMS_Bootstrap_Style {
|
||||
|
||||
function js() { /* {{{ */
|
||||
$strictformcheck = $this->params['strictformcheck'];
|
||||
$dropfolderdir = $this->params['dropfolderdir'];
|
||||
$partitionsize = $this->params['partitionsize'];
|
||||
$enablelargefileupload = $this->params['enablelargefileupload'];
|
||||
header('Content-Type: application/javascript; charset=UTF-8');
|
||||
?>
|
||||
function checkForm()
|
||||
{
|
||||
msg = new Array();
|
||||
//if (document.form1.userfile[].value == "") msg += "<?php printMLText("js_no_file");?>\n";
|
||||
|
||||
<?php
|
||||
if ($strictformcheck) {
|
||||
?>
|
||||
if(!document.form1.name.disabled){
|
||||
if (document.form1.name.value == "") msg.push("<?php printMLText("js_no_name");?>");
|
||||
}
|
||||
if (document.form1.comment.value == "") msg.push("<?php printMLText("js_no_comment");?>");
|
||||
if (document.form1.keywords.value == "") msg.push("<?php printMLText("js_no_keywords");?>");
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
if (msg != ""){
|
||||
noty({
|
||||
text: msg.join('<br />'),
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
_timeout: 1500,
|
||||
});
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
if($enablelargefileupload)
|
||||
$this->printFineUploaderJs('../op/op.UploadChunks.php', $partitionsize);
|
||||
?>
|
||||
$(document).ready(function() {
|
||||
$('body').on('submit', '#form1', function(ev){
|
||||
if(checkForm()) return;
|
||||
ev.preventDefault();
|
||||
});
|
||||
$('#new-file').click(function(event) {
|
||||
$("#upload-file").clone().appendTo("#upload-files").removeAttr("id").children('div').children('input').val('');
|
||||
});
|
||||
|
@ -80,7 +50,25 @@ $(document).ready(function() {
|
|||
return false;
|
||||
return true;
|
||||
}, "<?php printMLText("js_no_file");?>");
|
||||
/* The fineuploader validation is actually checking all fields that can contain
|
||||
* a file to be uploaded. First checks if an alternative input field is set,
|
||||
* second loops through the list of scheduled uploads, checking if at least one
|
||||
* file will be submitted.
|
||||
*/
|
||||
jQuery.validator.addMethod("fineuploader", function(value, element, params) {
|
||||
if(params[1].val() != '')
|
||||
return true;
|
||||
uploader = params[0];
|
||||
arr = uploader.getUploads();
|
||||
for(var i in arr) {
|
||||
if(arr[i].status == 'submitted')
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}, "<?php printMLText("js_no_file");?>");
|
||||
$("#form1").validate({
|
||||
debug: false,
|
||||
ignore: ":hidden:not(.do_validate)",
|
||||
invalidHandler: function(e, validator) {
|
||||
noty({
|
||||
text: (validator.numberOfInvalids() == 1) ? "<?php printMLText("js_form_error");?>".replace('#', validator.numberOfInvalids()) : "<?php printMLText("js_form_errors");?>".replace('#', validator.numberOfInvalids()),
|
||||
|
@ -91,13 +79,34 @@ $(document).ready(function() {
|
|||
timeout: 1500,
|
||||
});
|
||||
},
|
||||
<?php
|
||||
if($enablelargefileupload) {
|
||||
?>
|
||||
submitHandler: function(form) {
|
||||
manualuploader.uploadStoredFiles();
|
||||
},
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
rules: {
|
||||
<?php
|
||||
if($enablelargefileupload) {
|
||||
?>
|
||||
fineuploaderuuids: {
|
||||
fineuploader: [ manualuploader, $('#dropfolderfileform1') ]
|
||||
}
|
||||
<?php
|
||||
} else {
|
||||
?>
|
||||
'userfile[]': {
|
||||
alternatives: $('#dropfolderfileform1')
|
||||
},
|
||||
dropfolderfileform1: {
|
||||
alternatives: $(".btn-file input")
|
||||
}
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
},
|
||||
messages: {
|
||||
name: "<?php printMLText("js_no_name");?>",
|
||||
|
@ -107,7 +116,6 @@ $(document).ready(function() {
|
|||
errorPlacement: function( error, element ) {
|
||||
if ( element.is( ":file" ) ) {
|
||||
error.appendTo( element.parent().parent().parent());
|
||||
console.log(element);
|
||||
} else {
|
||||
error.appendTo( element.parent());
|
||||
}
|
||||
|
@ -138,6 +146,8 @@ console.log(element);
|
|||
$folderid = $folder->getId();
|
||||
|
||||
$this->htmlAddHeader('<script type="text/javascript" src="../styles/'.$this->theme.'/validate/jquery.validate.js"></script>'."\n", 'js');
|
||||
if($enablelargefileupload)
|
||||
$this->htmlAddHeader('<script type="text/javascript" src="../styles/'.$this->theme.'/fine-uploader/jquery.fine-uploader.min.js"></script>'."\n", 'js');
|
||||
|
||||
$this->htmlStartPage(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName()))));
|
||||
$this->globalNavigation($folder);
|
||||
|
@ -145,7 +155,7 @@ console.log(element);
|
|||
$this->pageNavigation($this->getFolderPathHTML($folder, true), "view_folder", $folder);
|
||||
|
||||
$msg = getMLText("max_upload_size").": ".ini_get( "upload_max_filesize");
|
||||
if($enablelargefileupload) {
|
||||
if(0 && $enablelargefileupload) {
|
||||
$msg .= "<p>".sprintf(getMLText('link_alt_updatedocument'), "out.AddMultiDocument.php?folderid=".$folderid."&showtree=".showtree())."</p>";
|
||||
}
|
||||
$this->warningMsg($msg);
|
||||
|
@ -273,9 +283,15 @@ console.log(element);
|
|||
</ol>
|
||||
-->
|
||||
<?php
|
||||
$this->printFileChooser('userfile[]', false);
|
||||
if($enablelargefileupload)
|
||||
$this->printFineUploaderHtml();
|
||||
else {
|
||||
$this->printFileChooser('userfile[]', false);
|
||||
?>
|
||||
<a class="" id="new-file"><?php printMLtext("add_multiple_files") ?></a>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php if($dropfolderdir) { ?>
|
||||
|
|
|
@ -32,6 +32,7 @@ require_once("class.Bootstrap.php");
|
|||
class SeedDMS_View_AddEvent extends SeedDMS_Bootstrap_Style {
|
||||
|
||||
function js() { /* {{{ */
|
||||
$strictformcheck = $this->params['strictformcheck'];
|
||||
header('Content-Type: application/javascript; charset=UTF-8');
|
||||
?>
|
||||
function checkForm()
|
||||
|
@ -39,7 +40,7 @@ function checkForm()
|
|||
msg = new Array();
|
||||
if (document.form1.name.value == "") msg.push("<?php printMLText("js_no_name");?>");
|
||||
<?php
|
||||
if (isset($settings->_strictFormCheck) && $settings->_strictFormCheck) {
|
||||
if ($strictformcheck) {
|
||||
?>
|
||||
if (document.form1.comment.value == "") msg.push("<?php printMLText("js_no_comment");?>");
|
||||
<?php
|
||||
|
|
|
@ -32,40 +32,79 @@ require_once("class.Bootstrap.php");
|
|||
class SeedDMS_View_AddFile extends SeedDMS_Bootstrap_Style {
|
||||
|
||||
function js() { /* {{{ */
|
||||
$enablelargefileupload = $this->params['enablelargefileupload'];
|
||||
$partitionsize = $this->params['partitionsize'];
|
||||
header('Content-Type: application/javascript');
|
||||
if($enablelargefileupload)
|
||||
$this->printFineUploaderJs('../op/op.UploadChunks.php', $partitionsize);
|
||||
?>
|
||||
function checkForm()
|
||||
{
|
||||
msg = new Array();
|
||||
if ($("#userfile").val() == "") msg.push("<?php printMLText("js_no_file");?>");
|
||||
if ($("#name").val() == "") msg.push("<?php printMLText("js_no_name");?>");
|
||||
<?php
|
||||
if (isset($settings->_strictFormCheck) && $settings->_strictFormCheck) {
|
||||
?>
|
||||
if ($("#comment").val() == "") msg.push("<?php printMLText("js_no_comment");?>");
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
if (msg != "")
|
||||
{
|
||||
noty({
|
||||
text: msg.join('<br />'),
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
_timeout: 1500,
|
||||
});
|
||||
return false;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
$(document).ready( function() {
|
||||
$('body').on('submit', '#fileupload', function(ev){
|
||||
if(checkForm()) return;
|
||||
ev.preventDefault();
|
||||
/* The fineuploader validation is actually checking all fields that can contain
|
||||
* a file to be uploaded. First checks if an alternative input field is set,
|
||||
* second loops through the list of scheduled uploads, checking if at least one
|
||||
* file will be submitted.
|
||||
*/
|
||||
jQuery.validator.addMethod("fineuploader", function(value, element, params) {
|
||||
uploader = params[0];
|
||||
arr = uploader.getUploads();
|
||||
for(var i in arr) {
|
||||
if(arr[i].status == 'submitted')
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}, "<?php printMLText("js_no_file");?>");
|
||||
$("#form1").validate({
|
||||
debug: false,
|
||||
ignore: ":hidden:not(.do_validate)",
|
||||
invalidHandler: function(e, validator) {
|
||||
noty({
|
||||
text: (validator.numberOfInvalids() == 1) ? "<?php printMLText("js_form_error");?>".replace('#', validator.numberOfInvalids()) : "<?php printMLText("js_form_errors");?>".replace('#', validator.numberOfInvalids()),
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 1500,
|
||||
});
|
||||
},
|
||||
<?php
|
||||
if($enablelargefileupload) {
|
||||
?>
|
||||
submitHandler: function(form) {
|
||||
manualuploader.uploadStoredFiles();
|
||||
},
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
rules: {
|
||||
<?php
|
||||
if($enablelargefileupload) {
|
||||
?>
|
||||
fineuploaderuuids: {
|
||||
fineuploader: [ manualuploader ]
|
||||
}
|
||||
<?php
|
||||
} else {
|
||||
?>
|
||||
'userfile[]': {
|
||||
required: true
|
||||
}
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
},
|
||||
messages: {
|
||||
name: "<?php printMLText("js_no_name");?>",
|
||||
comment: "<?php printMLText("js_no_comment");?>",
|
||||
'userfile[]': "<?php printMLText("js_no_file");?>"
|
||||
},
|
||||
errorPlacement: function( error, element ) {
|
||||
if ( element.is( ":file" ) ) {
|
||||
error.appendTo( element.parent().parent().parent());
|
||||
} else {
|
||||
error.appendTo( element.parent());
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
<?php
|
||||
|
@ -79,6 +118,10 @@ $(document).ready( function() {
|
|||
$strictformcheck = $this->params['strictformcheck'];
|
||||
$enablelargefileupload = $this->params['enablelargefileupload'];
|
||||
|
||||
$this->htmlAddHeader('<script type="text/javascript" src="../styles/'.$this->theme.'/validate/jquery.validate.js"></script>'."\n", 'js');
|
||||
if($enablelargefileupload)
|
||||
$this->htmlAddHeader('<script type="text/javascript" src="../styles/'.$this->theme.'/fine-uploader/jquery.fine-uploader.min.js"></script>'."\n", 'js');
|
||||
|
||||
$this->htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))));
|
||||
$this->globalNavigation($folder);
|
||||
$this->contentStart();
|
||||
|
@ -89,7 +132,7 @@ $(document).ready( function() {
|
|||
<div class="alert alert-warning">
|
||||
<?php echo getMLText("max_upload_size").": ".ini_get( "upload_max_filesize"); ?>
|
||||
<?php
|
||||
if($enablelargefileupload) {
|
||||
if(0 && $enablelargefileupload) {
|
||||
printf('<p>'.getMLText('link_alt_updatedocument').'</p>', "out.AddFile2.php?documentid=".$document->getId());
|
||||
}
|
||||
?>
|
||||
|
@ -98,13 +141,18 @@ $(document).ready( function() {
|
|||
$this->contentContainerStart();
|
||||
?>
|
||||
|
||||
<form class="form-horizontal" action="../op/op.AddFile.php" enctype="multipart/form-data" method="post" name="form1" id="fileupload">
|
||||
<form class="form-horizontal" action="../op/op.AddFile.php" enctype="multipart/form-data" method="post" name="form1" id="form1">
|
||||
<input type="hidden" name="documentid" value="<?php print $document->getId(); ?>">
|
||||
|
||||
<div class="control-group">
|
||||
<label class="control-label"><?php printMLText("local_file");?>:</label>
|
||||
<div class="controls">
|
||||
<?php $this->printFileChooser('userfile', false); ?>
|
||||
<?php
|
||||
if($enablelargefileupload)
|
||||
$this->printFineUploaderHtml();
|
||||
else
|
||||
$this->printFileChooser('userfile[]', false);
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -120,7 +168,7 @@ $(document).ready( function() {
|
|||
<div class="control-group">
|
||||
<label class="control-label"><?php printMLText("comment");?>:</label>
|
||||
<div class="controls">
|
||||
<textarea name="comment" id="comment" rows="4" cols="80"></textarea>
|
||||
<textarea name="comment" id="comment" rows="4" cols="80"<?php echo $strictformcheck ? ' required' : ''; ?>></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -457,7 +457,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
|||
else if ($accessMode >= M_READWRITE) {
|
||||
$menuitems['add_subfolder'] = array('link'=>"../out/out.AddSubFolder.php?folderid=". $folderID ."&showtree=".showtree(), 'label'=>'add_subfolder');
|
||||
$menuitems['add_document'] = array('link'=>"../out/out.AddDocument.php?folderid=". $folderID ."&showtree=".showtree(), 'label'=>'add_document');
|
||||
if($this->params['enablelargefileupload'])
|
||||
if(0 && $this->params['enablelargefileupload'])
|
||||
$menuitems['add_multiple_documents'] = array('link'=>"../out/out.AddMultiDocument.php?folderid=". $folderID ."&showtree=".showtree(), 'label'=>'add_multiple_documents');
|
||||
$menuitems['edit_folder_props'] = array('link'=>"../out/out.EditFolder.php?folderid=". $folderID ."&showtree=".showtree(), 'label'=>'edit_folder_props');
|
||||
if ($folderID != $this->params['rootfolderid'] && $folder->getParent())
|
||||
|
@ -2371,6 +2371,130 @@ mayscript>
|
|||
parent::show();
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Output HTML Code for jumploader
|
||||
*
|
||||
* @param string $uploadurl URL where post data is send
|
||||
* @param integer $folderid id of folder where document is saved
|
||||
* @param integer $maxfiles maximum number of files allowed to upload
|
||||
* @param array $fields list of post fields
|
||||
*/
|
||||
function printFineUploaderHtml() { /* {{{ */
|
||||
?>
|
||||
<script type="text/template" id="qq-template">
|
||||
<div class="qq-uploader-selector qq-uploader" qq-drop-area-text="">
|
||||
<div class="qq-total-progress-bar-container-selector qq-total-progress-bar-container">
|
||||
<div role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" class="qq-total-progress-bar-selector qq-progress-bar qq-total-progress-bar"></div>
|
||||
</div>
|
||||
<div class="input-append">
|
||||
<div class="qq-upload-drop-area-selector qq-upload-drop-area" _qq-hide-dropzone>Drop files here
|
||||
<span class="qq-upload-drop-area-text-selector"></span>
|
||||
</div>
|
||||
<button class="btn qq-upload-button-selector qq-upload-button"><?php printMLText('browse'); ?>…</button>
|
||||
</div>
|
||||
<span class="qq-drop-processing-selector qq-drop-processing">
|
||||
<span class="qq-drop-processing-spinner-selector qq-drop-processing-spinner"></span>
|
||||
</span>
|
||||
<ul class="qq-upload-list-selector qq-upload-list unstyled" aria-live="polite" aria-relevant="additions removals">
|
||||
<li>
|
||||
<div class="progress qq-progress-bar-container-selector">
|
||||
<div class="bar qq-progress-bar-selector qq-progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
<span class="qq-upload-spinner-selector qq-upload-spinner"></span>
|
||||
<img class="qq-thumbnail-selector" qq-max-size="100" qq-server-scale>
|
||||
<span class="qq-upload-file-selector qq-upload-file"></span>
|
||||
<span class="qq-upload-size-selector qq-upload-size"></span>
|
||||
<button class="btn btn-mini qq-btn qq-upload-cancel-selector qq-upload-cancel">Cancel</button>
|
||||
<span role="status" class="qq-upload-status-text-selector qq-upload-status-text"></span>
|
||||
</li>
|
||||
</ul>
|
||||
<dialog class="qq-alert-dialog-selector">
|
||||
<div class="qq-dialog-message-selector"></div>
|
||||
<div class="qq-dialog-buttons">
|
||||
<button class="btn qq-cancel-button-selector">Cancel</button>
|
||||
</div>
|
||||
</dialog>
|
||||
|
||||
<dialog class="qq-confirm-dialog-selector">
|
||||
<div class="qq-dialog-message-selector"></div>
|
||||
<div class="qq-dialog-buttons">
|
||||
<button class="btn qq-cancel-button-selector">Cancel</button>
|
||||
<button class="btn qq-ok-button-selector">Ok</button>
|
||||
</div>
|
||||
</dialog>
|
||||
|
||||
<dialog class="qq-prompt-dialog-selector">
|
||||
<div class="qq-dialog-message-selector"></div>
|
||||
<input type="text">
|
||||
<div class="qq-dialog-buttons">
|
||||
<button class="btn qq-cancel-button-selector">Cancel</button>
|
||||
<button class="btn qq-ok-button-selector">Ok</button>
|
||||
</div>
|
||||
</dialog>
|
||||
</div>
|
||||
</script>
|
||||
<div id="manual-fine-uploader"></div>
|
||||
<input type="hidden" class="do_validate" id="fineuploaderuuids" name="fineuploaderuuids" value="" />
|
||||
<input type="hidden" id="fineuploadernames" name="fineuploadernames" value="" />
|
||||
<?php
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Output Javascript Code for fine uploader
|
||||
*
|
||||
* @param string $uploadurl URL where post data is send
|
||||
* @param integer $folderid id of folder where document is saved
|
||||
* @param integer $maxfiles maximum number of files allowed to upload
|
||||
* @param array $fields list of post fields
|
||||
*/
|
||||
function printFineUploaderJs($uploadurl, $partsize=0, $multiple=true) { /* {{{ */
|
||||
?>
|
||||
$(document).ready(function() {
|
||||
manualuploader = new qq.FineUploader({
|
||||
debug: true,
|
||||
autoUpload: false,
|
||||
multiple: <?php echo ($multiple ? 'true' : 'false'); ?>,
|
||||
element: $('#manual-fine-uploader')[0],
|
||||
request: {
|
||||
endpoint: '<?php echo $uploadurl; ?>'
|
||||
},
|
||||
chunking: {
|
||||
enabled: true,
|
||||
<?php echo $partsize ? 'partSize: '.(int)$partsize.",\n" : ''; ?>
|
||||
mandatory: true
|
||||
},
|
||||
callbacks: {
|
||||
onComplete: function(id, name, json, xhr) {
|
||||
},
|
||||
onAllComplete: function(succeeded, failed) {
|
||||
var uuids = Array();
|
||||
var names = Array();
|
||||
for (var i = 0; i < succeeded.length; i++) {
|
||||
uuids.push(this.getUuid(succeeded[i]))
|
||||
names.push(this.getName(succeeded[i]))
|
||||
}
|
||||
$('#fineuploaderuuids').val(uuids.join(';'));
|
||||
$('#fineuploadernames').val(names.join(';'));
|
||||
/* Run upload only if all files could be uploaded */
|
||||
if(succeeded.length > 0 && failed.length == 0)
|
||||
document.getElementById('form1').submit();
|
||||
},
|
||||
onError: function(id, name, reason, xhr) {
|
||||
noty({
|
||||
text: reason,
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 3500,
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
<?php
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Output a protocol
|
||||
*
|
||||
|
|
|
@ -66,9 +66,14 @@ class SeedDMS_View_ImportFS extends SeedDMS_Bootstrap_Style {
|
|||
/* Setting drop folder dir to "" will force to take the default from settings.xml */
|
||||
$this->printDropFolderChooserHtml("form1", "", 1);
|
||||
print "</div></div>";
|
||||
|
||||
print "<div class=\"control-group\"><label class=\"control-label\">".getMLText('removeFolderFromDropFolder')."</label><div class=\"controls\">";
|
||||
print "<input type='checkbox' name='remove' value='1'/>";
|
||||
print "</div></div>";
|
||||
|
||||
print "<div class=\"control-group\"><label class=\"control-label\">";
|
||||
print "</label><div class=\"controls\">";
|
||||
print "<input type='submit' class='btn' name='' value='".getMLText("import")."'/><br />";
|
||||
print "<input type='submit' class='btn' name='' value='".getMLText("import")."'/>";
|
||||
print "</div></div>";
|
||||
print "</form>\n";
|
||||
$this->contentContainerEnd();
|
||||
|
|
|
@ -34,55 +34,38 @@ class SeedDMS_View_UpdateDocument extends SeedDMS_Bootstrap_Style {
|
|||
function js() { /* {{{ */
|
||||
$strictformcheck = $this->params['strictformcheck'];
|
||||
$dropfolderdir = $this->params['dropfolderdir'];
|
||||
$enablelargefileupload = $this->params['enablelargefileupload'];
|
||||
$partitionsize = $this->params['partitionsize'];
|
||||
header('Content-Type: application/javascript');
|
||||
$this->printDropFolderChooserJs("form1");
|
||||
$this->printSelectPresetButtonJs();
|
||||
$this->printInputPresetButtonJs();
|
||||
$this->printCheckboxPresetButtonJs();
|
||||
if($enablelargefileupload)
|
||||
$this->printFineUploaderJs('../op/op.UploadChunks.php', $partitionsize, false);
|
||||
?>
|
||||
function checkForm()
|
||||
{
|
||||
msg = new Array();
|
||||
<?php if($dropfolderdir) { ?>
|
||||
if ($("#userfile").val() == "" && $("#dropfolderfileform1").val() == "") msg.push("<?php printMLText("js_no_file");?>");
|
||||
<?php } else { ?>
|
||||
if ($("#userfile").val() == "") msg.push("<?php printMLText("js_no_file");?>");
|
||||
<?php } ?>
|
||||
<?php
|
||||
if ($strictformcheck) {
|
||||
?>
|
||||
if ($("#comment").val() == "") msg.push("<?php printMLText("js_no_comment");?>");
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
if (msg != "")
|
||||
{
|
||||
noty({
|
||||
text: msg.join('<br />'),
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
_timeout: 1500,
|
||||
});
|
||||
return false;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
$(document).ready( function() {
|
||||
/*
|
||||
$('body').on('submit', '#form1', function(ev){
|
||||
if(checkForm()) return;
|
||||
ev.preventDefault();
|
||||
});
|
||||
*/
|
||||
jQuery.validator.addMethod("alternatives", function(value, element, params) {
|
||||
if(value == '' && params.val() == '')
|
||||
return false;
|
||||
return true;
|
||||
}, "<?php printMLText("js_no_file");?>");
|
||||
/* The fineuploader validation is actually checking all fields that can contain
|
||||
* a file to be uploaded. First checks if an alternative input field is set,
|
||||
* second loops through the list of scheduled uploads, checking if at least one
|
||||
* file will be submitted.
|
||||
*/
|
||||
jQuery.validator.addMethod("fineuploader", function(value, element, params) {
|
||||
if(params[1].val() != '')
|
||||
return true;
|
||||
uploader = params[0];
|
||||
arr = uploader.getUploads();
|
||||
for(var i in arr) {
|
||||
if(arr[i].status == 'submitted')
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}, "<?php printMLText("js_no_file");?>");
|
||||
$("#form1").validate({
|
||||
invalidHandler: function(e, validator) {
|
||||
noty({
|
||||
|
@ -94,13 +77,34 @@ $(document).ready( function() {
|
|||
timeout: 1500,
|
||||
});
|
||||
},
|
||||
<?php
|
||||
if($enablelargefileupload) {
|
||||
?>
|
||||
submitHandler: function(form) {
|
||||
manualuploader.uploadStoredFiles();
|
||||
},
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
rules: {
|
||||
<?php
|
||||
if($enablelargefileupload) {
|
||||
?>
|
||||
fineuploaderuuids: {
|
||||
fineuploader: [ manualuploader, $('#dropfolderfileform1') ]
|
||||
}
|
||||
<?php
|
||||
} else {
|
||||
?>
|
||||
userfile: {
|
||||
alternatives: $('#dropfolderfileform1')
|
||||
},
|
||||
dropfolderfileform1: {
|
||||
alternatives: $('#userfile')
|
||||
}
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
},
|
||||
messages: {
|
||||
comment: "<?php printMLText("js_no_comment");?>",
|
||||
|
@ -134,6 +138,8 @@ console.log(element);
|
|||
$documentid = $document->getId();
|
||||
|
||||
$this->htmlAddHeader('<script type="text/javascript" src="../styles/'.$this->theme.'/validate/jquery.validate.js"></script>'."\n", 'js');
|
||||
if($enablelargefileupload)
|
||||
$this->htmlAddHeader('<script type="text/javascript" src="../styles/'.$this->theme.'/fine-uploader/jquery.fine-uploader.min.js"></script>'."\n", 'js');
|
||||
|
||||
$this->htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))));
|
||||
$this->globalNavigation($folder);
|
||||
|
@ -190,9 +196,12 @@ console.log(element);
|
|||
|
||||
<tr>
|
||||
<td><?php printMLText("local_file");?>:</td>
|
||||
<td><!-- input type="File" name="userfile" size="60" -->
|
||||
<td>
|
||||
<?php
|
||||
$this->printFileChooser('userfile', false);
|
||||
if($enablelargefileupload)
|
||||
$this->printFineUploaderHtml();
|
||||
else
|
||||
$this->printFileChooser('userfile', false);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -1221,7 +1221,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
|
|||
print "<li><a href=\"../op/op.Download.php?documentid=".$documentid."&file=".$file->getID()."\"><i class=\"icon-download\"></i>".getMLText('download')."</a>";
|
||||
if ($viewonlinefiletypes && in_array(strtolower($file->getFileType()), $viewonlinefiletypes))
|
||||
print "<li><a target=\"_blank\" href=\"../op/op.ViewOnline.php?documentid=".$documentid."&file=". $file->getID()."\"><i class=\"icon-star\"></i>" . getMLText("view_online") . "</a></li>";
|
||||
} else print "<li><img class=\"mimeicon\" src=\"images/icons/".$this->getMimeIcon($file->getFileType())."\" title=\"".htmlspecialchars($file->getMimeType())."\">";
|
||||
}
|
||||
echo "</ul><ul class=\"unstyled actions\">";
|
||||
if (($document->getAccessMode($user) == M_ALL)||($file->getUserID()==$user->getID()))
|
||||
print "<li><a href=\"out.RemoveDocumentFile.php?documentid=".$documentid."&fileid=".$file->getID()."\"><i class=\"icon-remove\"></i>".getMLText("delete")."</a></li>";
|
||||
|
|