Merge branch 'seeddms-4.3.x' into seeddms-5.0.x
|
@ -63,6 +63,12 @@
|
||||||
- add .xml to online file types by default
|
- add .xml to online file types by default
|
||||||
- add home folder for users
|
- 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
|
Changes in version 4.3.32
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
|
@ -551,7 +551,7 @@ CREATE TABLE `tblEvents` (
|
||||||
-- Table structure for workflow states
|
-- Table structure for workflow states
|
||||||
--
|
--
|
||||||
|
|
||||||
CREATE TABLE tblWorkflowStates (
|
CREATE TABLE `tblWorkflowStates` (
|
||||||
`id` int(11) NOT NULL auto_increment,
|
`id` int(11) NOT NULL auto_increment,
|
||||||
`name` text NOT NULL,
|
`name` text NOT NULL,
|
||||||
`visibility` smallint(5) DEFAULT 0,
|
`visibility` smallint(5) DEFAULT 0,
|
||||||
|
@ -567,7 +567,7 @@ CREATE TABLE tblWorkflowStates (
|
||||||
-- Table structure for workflow actions
|
-- Table structure for workflow actions
|
||||||
--
|
--
|
||||||
|
|
||||||
CREATE TABLE tblWorkflowActions (
|
CREATE TABLE `tblWorkflowActions` (
|
||||||
`id` int(11) NOT NULL auto_increment,
|
`id` int(11) NOT NULL auto_increment,
|
||||||
`name` text NOT NULL,
|
`name` text NOT NULL,
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
|
@ -579,7 +579,7 @@ CREATE TABLE tblWorkflowActions (
|
||||||
-- Table structure for workflows
|
-- Table structure for workflows
|
||||||
--
|
--
|
||||||
|
|
||||||
CREATE TABLE tblWorkflows (
|
CREATE TABLE `tblWorkflows` (
|
||||||
`id` int(11) NOT NULL auto_increment,
|
`id` int(11) NOT NULL auto_increment,
|
||||||
`name` text NOT NULL,
|
`name` text NOT NULL,
|
||||||
`initstate` int(11) NOT NULL,
|
`initstate` int(11) NOT NULL,
|
||||||
|
@ -593,7 +593,7 @@ CREATE TABLE tblWorkflows (
|
||||||
-- Table structure for workflow transitions
|
-- Table structure for workflow transitions
|
||||||
--
|
--
|
||||||
|
|
||||||
CREATE TABLE tblWorkflowTransitions (
|
CREATE TABLE `tblWorkflowTransitions` (
|
||||||
`id` int(11) NOT NULL auto_increment,
|
`id` int(11) NOT NULL auto_increment,
|
||||||
`workflow` int(11) default NULL,
|
`workflow` int(11) default NULL,
|
||||||
`state` int(11) default NULL,
|
`state` int(11) default NULL,
|
||||||
|
@ -613,7 +613,7 @@ CREATE TABLE tblWorkflowTransitions (
|
||||||
-- Table structure for workflow transition users
|
-- Table structure for workflow transition users
|
||||||
--
|
--
|
||||||
|
|
||||||
CREATE TABLE tblWorkflowTransitionUsers (
|
CREATE TABLE `tblWorkflowTransitionUsers` (
|
||||||
`id` int(11) NOT NULL auto_increment,
|
`id` int(11) NOT NULL auto_increment,
|
||||||
`transition` int(11) default NULL,
|
`transition` int(11) default NULL,
|
||||||
`userid` int(11) default NULL,
|
`userid` int(11) default NULL,
|
||||||
|
@ -628,7 +628,7 @@ CREATE TABLE tblWorkflowTransitionUsers (
|
||||||
-- Table structure for workflow transition groups
|
-- Table structure for workflow transition groups
|
||||||
--
|
--
|
||||||
|
|
||||||
CREATE TABLE tblWorkflowTransitionGroups (
|
CREATE TABLE `tblWorkflowTransitionGroups` (
|
||||||
`id` int(11) NOT NULL auto_increment,
|
`id` int(11) NOT NULL auto_increment,
|
||||||
`transition` int(11) default NULL,
|
`transition` int(11) default NULL,
|
||||||
`groupid` int(11) default NULL,
|
`groupid` int(11) default NULL,
|
||||||
|
@ -644,7 +644,7 @@ CREATE TABLE tblWorkflowTransitionGroups (
|
||||||
-- Table structure for workflow log
|
-- Table structure for workflow log
|
||||||
--
|
--
|
||||||
|
|
||||||
CREATE TABLE tblWorkflowLog (
|
CREATE TABLE `tblWorkflowLog` (
|
||||||
`id` int(11) NOT NULL auto_increment,
|
`id` int(11) NOT NULL auto_increment,
|
||||||
`document` int(11) default NULL,
|
`document` int(11) default NULL,
|
||||||
`version` smallint(5) default NULL,
|
`version` smallint(5) default NULL,
|
||||||
|
@ -666,7 +666,7 @@ CREATE TABLE tblWorkflowLog (
|
||||||
-- Table structure for workflow document relation
|
-- Table structure for workflow document relation
|
||||||
--
|
--
|
||||||
|
|
||||||
CREATE TABLE tblWorkflowDocumentContent (
|
CREATE TABLE `tblWorkflowDocumentContent` (
|
||||||
`parentworkflow` int(11) DEFAULT 0,
|
`parentworkflow` int(11) DEFAULT 0,
|
||||||
`workflow` int(11) DEFAULT NULL,
|
`workflow` int(11) DEFAULT NULL,
|
||||||
`document` int(11) DEFAULT NULL,
|
`document` int(11) DEFAULT NULL,
|
||||||
|
@ -684,7 +684,7 @@ CREATE TABLE tblWorkflowDocumentContent (
|
||||||
-- Table structure for mandatory workflows
|
-- Table structure for mandatory workflows
|
||||||
--
|
--
|
||||||
|
|
||||||
CREATE TABLE tblWorkflowMandatoryWorkflow (
|
CREATE TABLE `tblWorkflowMandatoryWorkflow` (
|
||||||
`userid` int(11) default NULL,
|
`userid` int(11) default NULL,
|
||||||
`workflow` int(11) default NULL,
|
`workflow` int(11) default NULL,
|
||||||
UNIQUE(userid, workflow),
|
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 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 tblFolders VALUES (1, 'DMS', 0, '', 'DMS root', UNIX_TIMESTAMP(), 1, 0, 2, 0);
|
||||||
INSERT INTO tblVersion VALUES (NOW(), 5, 0, 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`
|
-- 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`
|
-- Table structure for table `tblDocumentStatus`
|
||||||
--
|
--
|
||||||
|
@ -481,13 +481,13 @@ CREATE TABLE `tblEvents` (
|
||||||
-- Table structure for workflow states
|
-- Table structure for workflow states
|
||||||
--
|
--
|
||||||
|
|
||||||
CREATE TABLE tblWorkflowStates (
|
CREATE TABLE `tblWorkflowStates` (
|
||||||
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
`name` text NOT NULL,
|
`name` text NOT NULL,
|
||||||
`visibility` smallint(5) DEFAULT 0,
|
`visibility` INTEGER DEFAULT 0,
|
||||||
`maxtime` INTEGER DEFAULT 0,
|
`maxtime` INTEGER DEFAULT 0,
|
||||||
`precondfunc` text DEFAULT NULL,
|
`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
|
-- Table structure for workflow actions
|
||||||
--
|
--
|
||||||
|
|
||||||
CREATE TABLE tblWorkflowActions (
|
CREATE TABLE `tblWorkflowActions` (
|
||||||
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
`name` text NOT NULL
|
`name` text NOT NULL
|
||||||
) ;
|
) ;
|
||||||
|
@ -507,7 +507,7 @@ CREATE TABLE tblWorkflowActions (
|
||||||
-- Table structure for workflows
|
-- Table structure for workflows
|
||||||
--
|
--
|
||||||
|
|
||||||
CREATE TABLE tblWorkflows (
|
CREATE TABLE `tblWorkflows` (
|
||||||
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
`name` text NOT NULL,
|
`name` text NOT NULL,
|
||||||
`initstate` INTEGER NOT NULL REFERENCES `tblWorkflowStates` (`id`) ON DELETE CASCADE
|
`initstate` INTEGER NOT NULL REFERENCES `tblWorkflowStates` (`id`) ON DELETE CASCADE
|
||||||
|
@ -519,7 +519,7 @@ CREATE TABLE tblWorkflows (
|
||||||
-- Table structure for workflow transitions
|
-- Table structure for workflow transitions
|
||||||
--
|
--
|
||||||
|
|
||||||
CREATE TABLE tblWorkflowTransitions (
|
CREATE TABLE `tblWorkflowTransitions` (
|
||||||
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
`workflow` INTEGER default NULL REFERENCES `tblWorkflows` (`id`) ON DELETE CASCADE,
|
`workflow` INTEGER default NULL REFERENCES `tblWorkflows` (`id`) ON DELETE CASCADE,
|
||||||
`state` INTEGER default NULL REFERENCES `tblWorkflowStates` (`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
|
-- Table structure for workflow transition users
|
||||||
--
|
--
|
||||||
|
|
||||||
CREATE TABLE tblWorkflowTransitionUsers (
|
CREATE TABLE `tblWorkflowTransitionUsers` (
|
||||||
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
`transition` INTEGER default NULL REFERENCES `tblWorkflowTransitions` (`id`) ON DELETE CASCADE,
|
`transition` INTEGER default NULL REFERENCES `tblWorkflowTransitions` (`id`) ON DELETE CASCADE,
|
||||||
`userid` INTEGER default NULL REFERENCES `tblUsers` (`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
|
-- Table structure for workflow transition groups
|
||||||
--
|
--
|
||||||
|
|
||||||
CREATE TABLE tblWorkflowTransitionGroups (
|
CREATE TABLE `tblWorkflowTransitionGroups` (
|
||||||
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
`transition` INTEGER default NULL REFERENCES `tblWorkflowTransitions` (`id`) ON DELETE CASCADE,
|
`transition` INTEGER default NULL REFERENCES `tblWorkflowTransitions` (`id`) ON DELETE CASCADE,
|
||||||
`groupid` INTEGER default NULL REFERENCES `tblGroups` (`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
|
-- Table structure for workflow log
|
||||||
--
|
--
|
||||||
|
|
||||||
CREATE TABLE tblWorkflowLog (
|
CREATE TABLE `tblWorkflowLog` (
|
||||||
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
`document` INTEGER default NULL REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
|
`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,
|
`workflow` INTEGER default NULL REFERENCES `tblWorkflows` (`id`) ON DELETE CASCADE,
|
||||||
`userid` INTEGER default NULL REFERENCES `tblUsers` (`id`) ON DELETE CASCADE,
|
`userid` INTEGER default NULL REFERENCES `tblUsers` (`id`) ON DELETE CASCADE,
|
||||||
`transition` INTEGER default NULL REFERENCES `tblWorkflowTransitions` (`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
|
-- Table structure for workflow document relation
|
||||||
--
|
--
|
||||||
|
|
||||||
CREATE TABLE tblWorkflowDocumentContent (
|
CREATE TABLE `tblWorkflowDocumentContent` (
|
||||||
`parentworkflow` INTEGER DEFAULT 0,
|
`parentworkflow` INTEGER DEFAULT 0,
|
||||||
`workflow` INTEGER DEFAULT NULL REFERENCES `tblWorkflows` (`id`) ON DELETE CASCADE,
|
`workflow` INTEGER DEFAULT NULL REFERENCES `tblWorkflows` (`id`) ON DELETE CASCADE,
|
||||||
`document` INTEGER DEFAULT NULL REFERENCES `tblDocuments` (`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,
|
`state` INTEGER DEFAULT NULL REFERENCES `tblWorkflowStates` (`id`) ON DELETE CASCADE,
|
||||||
`date` datetime NOT NULL default '0000-00-00 00:00:00'
|
`date` datetime NOT NULL default '0000-00-00 00:00:00'
|
||||||
) ;
|
) ;
|
||||||
|
@ -591,7 +591,7 @@ CREATE TABLE tblWorkflowDocumentContent (
|
||||||
-- Table structure for mandatory workflows
|
-- Table structure for mandatory workflows
|
||||||
--
|
--
|
||||||
|
|
||||||
CREATE TABLE tblWorkflowMandatoryWorkflow (
|
CREATE TABLE `tblWorkflowMandatoryWorkflow` (
|
||||||
`userid` INTEGER default NULL REFERENCES `tblUsers` (`id`) ON DELETE CASCADE,
|
`userid` INTEGER default NULL REFERENCES `tblUsers` (`id`) ON DELETE CASCADE,
|
||||||
`workflow` INTEGER default NULL REFERENCES `tblWorkflows` (`id`) ON DELETE CASCADE,
|
`workflow` INTEGER default NULL REFERENCES `tblWorkflows` (`id`) ON DELETE CASCADE,
|
||||||
UNIQUE(userid, workflow)
|
UNIQUE(userid, workflow)
|
||||||
|
@ -605,9 +605,9 @@ CREATE TABLE tblWorkflowMandatoryWorkflow (
|
||||||
|
|
||||||
CREATE TABLE `tblVersion` (
|
CREATE TABLE `tblVersion` (
|
||||||
`date` TEXT NOT NULL default '0000-00-00 00:00:00',
|
`date` TEXT NOT NULL default '0000-00-00 00:00:00',
|
||||||
`major` smallint,
|
`major` INTEGER,
|
||||||
`minor` smallint,
|
`minor` INTEGER,
|
||||||
`subminor` smallint
|
`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 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 tblFolders VALUES (1, 'DMS', 0, '', 'DMS root', strftime('%s','now'), 1, 0, 2, 0);
|
||||||
INSERT INTO tblVersion VALUES (DATETIME(), 5, 0, 0);
|
INSERT INTO tblVersion VALUES (DATETIME(), 5, 0, 0);
|
||||||
INSERT INTO tblCategory VALUES (0, '');
|
|
||||||
|
|
|
@ -842,6 +842,7 @@ Parent folder: [folder_path]
|
||||||
مستخدم: [username]
|
مستخدم: [username]
|
||||||
URL: [url]',
|
URL: [url]',
|
||||||
'removed_workflow_email_subject' => '[sitename]: [name] - تم ازالة مسار العمل من اصدار المستند',
|
'removed_workflow_email_subject' => '[sitename]: [name] - تم ازالة مسار العمل من اصدار المستند',
|
||||||
|
'removeFolderFromDropFolder' => '',
|
||||||
'remove_marked_files' => 'ازالة الملفات المختارة',
|
'remove_marked_files' => 'ازالة الملفات المختارة',
|
||||||
'repaired' => 'تم اصلاحه',
|
'repaired' => 'تم اصلاحه',
|
||||||
'repairing_objects' => 'تحضير المستندات والمجلدات.',
|
'repairing_objects' => 'تحضير المستندات والمجلدات.',
|
||||||
|
|
|
@ -734,6 +734,7 @@ $text = array(
|
||||||
'removed_revispr' => '',
|
'removed_revispr' => '',
|
||||||
'removed_workflow_email_body' => '',
|
'removed_workflow_email_body' => '',
|
||||||
'removed_workflow_email_subject' => '',
|
'removed_workflow_email_subject' => '',
|
||||||
|
'removeFolderFromDropFolder' => '',
|
||||||
'remove_marked_files' => '',
|
'remove_marked_files' => '',
|
||||||
'repaired' => '',
|
'repaired' => '',
|
||||||
'repairing_objects' => 'Поправка на папки и документи',
|
'repairing_objects' => 'Поправка на папки и документи',
|
||||||
|
|
|
@ -739,6 +739,7 @@ URL: [url]',
|
||||||
'removed_revispr' => '',
|
'removed_revispr' => '',
|
||||||
'removed_workflow_email_body' => '',
|
'removed_workflow_email_body' => '',
|
||||||
'removed_workflow_email_subject' => '',
|
'removed_workflow_email_subject' => '',
|
||||||
|
'removeFolderFromDropFolder' => '',
|
||||||
'remove_marked_files' => '',
|
'remove_marked_files' => '',
|
||||||
'repaired' => '',
|
'repaired' => '',
|
||||||
'repairing_objects' => '',
|
'repairing_objects' => '',
|
||||||
|
|
|
@ -852,6 +852,7 @@ Nadřazená složka: [folder_path]
|
||||||
Uživatel: [username]
|
Uživatel: [username]
|
||||||
URL: [url]',
|
URL: [url]',
|
||||||
'removed_workflow_email_subject' => '[sitename]: [name] - Odstraněn průběh práce z verze dokumentu',
|
'removed_workflow_email_subject' => '[sitename]: [name] - Odstraněn průběh práce z verze dokumentu',
|
||||||
|
'removeFolderFromDropFolder' => '',
|
||||||
'remove_marked_files' => 'Odstranit označené soubory',
|
'remove_marked_files' => 'Odstranit označené soubory',
|
||||||
'repaired' => 'opraveno',
|
'repaired' => 'opraveno',
|
||||||
'repairing_objects' => 'Opravuji dokumenty a složky.',
|
'repairing_objects' => 'Opravuji dokumenty a složky.',
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
// along with this program; if not, write to the Free Software
|
// along with this program; if not, write to the Free Software
|
||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// Translators: Admin (2366), dgrutsch (22)
|
// Translators: Admin (2367), dgrutsch (22)
|
||||||
|
|
||||||
$text = array(
|
$text = array(
|
||||||
'2_factor_auth' => '2-Faktor Authentifizierung',
|
'2_factor_auth' => '2-Faktor Authentifizierung',
|
||||||
|
@ -872,6 +872,7 @@ Elternordner: [folder_path]
|
||||||
Benutzer: [username]
|
Benutzer: [username]
|
||||||
URL: [url]',
|
URL: [url]',
|
||||||
'removed_workflow_email_subject' => '[sitename]: [name] - Workflow von Dokumentenversion',
|
'removed_workflow_email_subject' => '[sitename]: [name] - Workflow von Dokumentenversion',
|
||||||
|
'removeFolderFromDropFolder' => 'Ordner nach Import entfernen',
|
||||||
'remove_marked_files' => 'Markierte Dateien löschen',
|
'remove_marked_files' => 'Markierte Dateien löschen',
|
||||||
'repaired' => 'repariert',
|
'repaired' => 'repariert',
|
||||||
'repairing_objects' => 'Repariere Dokumente und Ordner.',
|
'repairing_objects' => 'Repariere Dokumente und Ordner.',
|
||||||
|
|
|
@ -745,6 +745,7 @@ URL: [url]',
|
||||||
'removed_revispr' => '',
|
'removed_revispr' => '',
|
||||||
'removed_workflow_email_body' => '',
|
'removed_workflow_email_body' => '',
|
||||||
'removed_workflow_email_subject' => '',
|
'removed_workflow_email_subject' => '',
|
||||||
|
'removeFolderFromDropFolder' => '',
|
||||||
'remove_marked_files' => '',
|
'remove_marked_files' => '',
|
||||||
'repaired' => '',
|
'repaired' => '',
|
||||||
'repairing_objects' => '',
|
'repairing_objects' => '',
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
// along with this program; if not, write to the Free Software
|
// along with this program; if not, write to the Free Software
|
||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// Translators: Admin (1493), dgrutsch (9), netixw (14)
|
// Translators: Admin (1494), dgrutsch (9), netixw (14)
|
||||||
|
|
||||||
$text = array(
|
$text = array(
|
||||||
'2_factor_auth' => '2-factor authentication',
|
'2_factor_auth' => '2-factor authentication',
|
||||||
|
@ -873,6 +873,7 @@ Parent folder: [folder_path]
|
||||||
User: [username]
|
User: [username]
|
||||||
URL: [url]',
|
URL: [url]',
|
||||||
'removed_workflow_email_subject' => '[sitename]: [name] - Removed workflow from document version',
|
'removed_workflow_email_subject' => '[sitename]: [name] - Removed workflow from document version',
|
||||||
|
'removeFolderFromDropFolder' => 'Remove folder after import',
|
||||||
'remove_marked_files' => 'Remove marked files',
|
'remove_marked_files' => 'Remove marked files',
|
||||||
'repaired' => 'repaired',
|
'repaired' => 'repaired',
|
||||||
'repairing_objects' => 'Repairing documents and folders.',
|
'repairing_objects' => 'Repairing documents and folders.',
|
||||||
|
|
|
@ -857,6 +857,7 @@ Carpeta principal: [folder_path]
|
||||||
Usuario: [username]
|
Usuario: [username]
|
||||||
nURL: [url]',
|
nURL: [url]',
|
||||||
'removed_workflow_email_subject' => '[sitename]: [name] - Eliminar flujo de trabajo de la versión del documento',
|
'removed_workflow_email_subject' => '[sitename]: [name] - Eliminar flujo de trabajo de la versión del documento',
|
||||||
|
'removeFolderFromDropFolder' => '',
|
||||||
'remove_marked_files' => 'Eliminar ficheros marcados',
|
'remove_marked_files' => 'Eliminar ficheros marcados',
|
||||||
'repaired' => 'Reparado',
|
'repaired' => 'Reparado',
|
||||||
'repairing_objects' => 'Reparando documentos y carpetas.',
|
'repairing_objects' => 'Reparando documentos y carpetas.',
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
// along with this program; if not, write to the Free Software
|
// along with this program; if not, write to the Free Software
|
||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// Translators: Admin (1058), jeromerobert (50), lonnnew (9), Oudiceval (171)
|
// Translators: Admin (1058), jeromerobert (50), lonnnew (9), Oudiceval (175)
|
||||||
|
|
||||||
$text = array(
|
$text = array(
|
||||||
'2_factor_auth' => 'Authentification forte',
|
'2_factor_auth' => 'Authentification forte',
|
||||||
|
@ -859,6 +859,7 @@ Répertoire: [folder_path]
|
||||||
Utilisateur: [username]
|
Utilisateur: [username]
|
||||||
URL: [url]',
|
URL: [url]',
|
||||||
'removed_workflow_email_subject' => '',
|
'removed_workflow_email_subject' => '',
|
||||||
|
'removeFolderFromDropFolder' => '',
|
||||||
'remove_marked_files' => 'Supprimer les fichiers sélectionnés',
|
'remove_marked_files' => 'Supprimer les fichiers sélectionnés',
|
||||||
'repaired' => 'réparé',
|
'repaired' => 'réparé',
|
||||||
'repairing_objects' => 'Réparation des documents et des dossiers.',
|
'repairing_objects' => 'Réparation des documents et des dossiers.',
|
||||||
|
@ -1044,8 +1045,8 @@ URL: [url]',
|
||||||
'settings_dbUser' => 'Nom d\'utilisateur',
|
'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_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_dbVersion' => 'Schéma de base de données trop ancien',
|
||||||
'settings_defaultAccessDocs' => '',
|
'settings_defaultAccessDocs' => 'Accès par défaut des nouveaux documents',
|
||||||
'settings_defaultAccessDocs_desc' => '',
|
'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' => '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_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',
|
'settings_defaultSearchMethod_valdatabase' => 'base de données',
|
||||||
|
@ -1156,7 +1157,7 @@ URL: [url]',
|
||||||
'settings_initialDocumentStatus_draft' => 'Brouillon',
|
'settings_initialDocumentStatus_draft' => 'Brouillon',
|
||||||
'settings_initialDocumentStatus_released' => 'publié',
|
'settings_initialDocumentStatus_released' => 'publié',
|
||||||
'settings_installADOdb' => 'Installer ADOdb',
|
'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_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_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',
|
'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_printDisclaimer_desc' => 'Si activé, le message d’avertissement sera affiché en bas de chaque page.',
|
||||||
'settings_quota' => 'Quota de l\'utilisateur',
|
'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_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_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' => '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)',
|
'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
|
// along with this program; if not, write to the Free Software
|
||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// Translators: Admin (1191), marbanas (16)
|
// Translators: Admin (1195), marbanas (16)
|
||||||
|
|
||||||
$text = array(
|
$text = array(
|
||||||
'2_factor_auth' => '',
|
'2_factor_auth' => '',
|
||||||
|
@ -861,6 +861,7 @@ Glavna mapa: [folder_path]
|
||||||
Korisnik: [username]
|
Korisnik: [username]
|
||||||
Internet poveznica: [url]',
|
Internet poveznica: [url]',
|
||||||
'removed_workflow_email_subject' => '[sitename]: [name] - Uklonjeni tok rada iz ove verzije dokumenta',
|
'removed_workflow_email_subject' => '[sitename]: [name] - Uklonjeni tok rada iz ove verzije dokumenta',
|
||||||
|
'removeFolderFromDropFolder' => '',
|
||||||
'remove_marked_files' => 'Ukloni označene datoteke',
|
'remove_marked_files' => 'Ukloni označene datoteke',
|
||||||
'repaired' => 'popravljeno',
|
'repaired' => 'popravljeno',
|
||||||
'repairing_objects' => 'Popravljanje dokumenata ili mapa.',
|
'repairing_objects' => 'Popravljanje dokumenata ili mapa.',
|
||||||
|
@ -1042,7 +1043,7 @@ Internet poveznica: [url]',
|
||||||
'settings_Authentication' => 'Postavke autentifikacije',
|
'settings_Authentication' => 'Postavke autentifikacije',
|
||||||
'settings_autoLoginUser' => 'Automatska prijava',
|
'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_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_available_languages_desc' => '',
|
||||||
'settings_backupDir' => 'Mapa za sigurnosnu kopiju',
|
'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.',
|
'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_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' => '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_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_convertToPdf_desc' => '',
|
||||||
'settings_cookieLifetime' => 'Životni vijek kolačića',
|
'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č.',
|
'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_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' => '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_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_maxSizeForFullText_desc' => '',
|
||||||
'settings_more_settings' => 'Konfiguriraj više postavki. Zadana prijava: admin/admin',
|
'settings_more_settings' => 'Konfiguriraj više postavki. Zadana prijava: admin/admin',
|
||||||
'settings_notfound' => 'Nije pronađeno',
|
'settings_notfound' => 'Nije pronađeno',
|
||||||
|
@ -1270,7 +1271,7 @@ Internet poveznica: [url]',
|
||||||
'settings_rootFolderID_desc' => 'ID root mape (većinom ne treba mijenjati)',
|
'settings_rootFolderID_desc' => 'ID root mape (većinom ne treba mijenjati)',
|
||||||
'settings_SaveError' => 'Greška pri spremanju datoteke konfiguracije',
|
'settings_SaveError' => 'Greška pri spremanju datoteke konfiguracije',
|
||||||
'settings_Server' => 'Postavke servera',
|
'settings_Server' => 'Postavke servera',
|
||||||
'settings_showFullPreview' => '',
|
'settings_showFullPreview' => 'Prikaži cijeli dokument',
|
||||||
'settings_showFullPreview_desc' => '',
|
'settings_showFullPreview_desc' => '',
|
||||||
'settings_showMissingTranslations' => 'Prikaži prijevode koji nedostaju',
|
'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!',
|
'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]
|
Felhasználó: [username]
|
||||||
URL: [url]',
|
URL: [url]',
|
||||||
'removed_workflow_email_subject' => '[sitename]: [name] - Dokumentum változatból eltávolított munkafolyamat',
|
'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',
|
'remove_marked_files' => 'Megjelölt állományok eltávolítása',
|
||||||
'repaired' => 'javított',
|
'repaired' => 'javított',
|
||||||
'repairing_objects' => 'Dokumentumok és mappák helyreállítása',
|
'repairing_objects' => 'Dokumentumok és mappák helyreállítása',
|
||||||
|
|
|
@ -868,6 +868,7 @@ Cartella: [folder_path]
|
||||||
Utente: [username]
|
Utente: [username]
|
||||||
URL: [url]',
|
URL: [url]',
|
||||||
'removed_workflow_email_subject' => '[sitename]: [name] - Flusso di lavoro rimosso dalla versione del documento',
|
'removed_workflow_email_subject' => '[sitename]: [name] - Flusso di lavoro rimosso dalla versione del documento',
|
||||||
|
'removeFolderFromDropFolder' => '',
|
||||||
'remove_marked_files' => 'Rimuovi i files contrassegnati',
|
'remove_marked_files' => 'Rimuovi i files contrassegnati',
|
||||||
'repaired' => 'riparato',
|
'repaired' => 'riparato',
|
||||||
'repairing_objects' => 'Riparazione documenti e cartelle in corso...',
|
'repairing_objects' => 'Riparazione documenti e cartelle in corso...',
|
||||||
|
|
|
@ -854,6 +854,7 @@ URL : [url]',
|
||||||
사용자: [username]
|
사용자: [username]
|
||||||
URL: [url]',
|
URL: [url]',
|
||||||
'removed_workflow_email_subject' => '[sitename] : [name] - 문서 버전에서 제거 된 워크플로우',
|
'removed_workflow_email_subject' => '[sitename] : [name] - 문서 버전에서 제거 된 워크플로우',
|
||||||
|
'removeFolderFromDropFolder' => '',
|
||||||
'remove_marked_files' => '마크 파일을 제거',
|
'remove_marked_files' => '마크 파일을 제거',
|
||||||
'repaired' => '복구',
|
'repaired' => '복구',
|
||||||
'repairing_objects' => '문서 및 폴더 복구',
|
'repairing_objects' => '문서 및 폴더 복구',
|
||||||
|
|
|
@ -859,6 +859,7 @@ Bovenliggende map: [folder_path]
|
||||||
Gebruiker: [username]
|
Gebruiker: [username]
|
||||||
URL: [url]',
|
URL: [url]',
|
||||||
'removed_workflow_email_subject' => '[sitename]: [name] - Workflow verwijderd van document versie',
|
'removed_workflow_email_subject' => '[sitename]: [name] - Workflow verwijderd van document versie',
|
||||||
|
'removeFolderFromDropFolder' => '',
|
||||||
'remove_marked_files' => 'Geselecteerde bestanden zijn verwijderd',
|
'remove_marked_files' => 'Geselecteerde bestanden zijn verwijderd',
|
||||||
'repaired' => 'Gerepareerd',
|
'repaired' => 'Gerepareerd',
|
||||||
'repairing_objects' => 'Documenten en mappen repareren.',
|
'repairing_objects' => 'Documenten en mappen repareren.',
|
||||||
|
|
|
@ -850,6 +850,7 @@ Folder nadrzędny: [folder_path]
|
||||||
Użytkownik: [username]
|
Użytkownik: [username]
|
||||||
URL: [url]',
|
URL: [url]',
|
||||||
'removed_workflow_email_subject' => '[sitename]: [name] - Usunięty workflow z wersji dokumentu',
|
'removed_workflow_email_subject' => '[sitename]: [name] - Usunięty workflow z wersji dokumentu',
|
||||||
|
'removeFolderFromDropFolder' => '',
|
||||||
'remove_marked_files' => 'Usuń zaznaczone pliki',
|
'remove_marked_files' => 'Usuń zaznaczone pliki',
|
||||||
'repaired' => 'naprawiony',
|
'repaired' => 'naprawiony',
|
||||||
'repairing_objects' => 'Naprawa dokumentów i katalogów.',
|
'repairing_objects' => 'Naprawa dokumentów i katalogów.',
|
||||||
|
|
|
@ -855,6 +855,7 @@ Pasta mãe: [folder_path]
|
||||||
Usuário: [username]
|
Usuário: [username]
|
||||||
URL: [url]',
|
URL: [url]',
|
||||||
'removed_workflow_email_subject' => '[sitename]: [name] - Fluxo de trabalho removido da versão do documento',
|
'removed_workflow_email_subject' => '[sitename]: [name] - Fluxo de trabalho removido da versão do documento',
|
||||||
|
'removeFolderFromDropFolder' => '',
|
||||||
'remove_marked_files' => 'Remover arquivos marcados',
|
'remove_marked_files' => 'Remover arquivos marcados',
|
||||||
'repaired' => 'reparado',
|
'repaired' => 'reparado',
|
||||||
'repairing_objects' => 'Reparando documentos e pastas',
|
'repairing_objects' => 'Reparando documentos e pastas',
|
||||||
|
|
|
@ -862,6 +862,7 @@ Folder parinte: [folder_path]
|
||||||
Utilizator: [username]
|
Utilizator: [username]
|
||||||
URL: [url]',
|
URL: [url]',
|
||||||
'removed_workflow_email_subject' => '[sitename]: [name] - Workflow eliminat din versiunea documentului',
|
'removed_workflow_email_subject' => '[sitename]: [name] - Workflow eliminat din versiunea documentului',
|
||||||
|
'removeFolderFromDropFolder' => '',
|
||||||
'remove_marked_files' => 'Eliminați fișierele marcate',
|
'remove_marked_files' => 'Eliminați fișierele marcate',
|
||||||
'repaired' => 'reparat',
|
'repaired' => 'reparat',
|
||||||
'repairing_objects' => 'Reparare documente și foldere.',
|
'repairing_objects' => 'Reparare documente și foldere.',
|
||||||
|
|
|
@ -864,6 +864,7 @@ URL: [url]',
|
||||||
Пользователь: [username]
|
Пользователь: [username]
|
||||||
URL: [url]',
|
URL: [url]',
|
||||||
'removed_workflow_email_subject' => '[sitename]: удалён процесс из версии документа «[name]»',
|
'removed_workflow_email_subject' => '[sitename]: удалён процесс из версии документа «[name]»',
|
||||||
|
'removeFolderFromDropFolder' => '',
|
||||||
'remove_marked_files' => 'Удалить выбранные файлы',
|
'remove_marked_files' => 'Удалить выбранные файлы',
|
||||||
'repaired' => 'исправлено',
|
'repaired' => 'исправлено',
|
||||||
'repairing_objects' => 'Восстановление каталогов и документов',
|
'repairing_objects' => 'Восстановление каталогов и документов',
|
||||||
|
|
|
@ -738,6 +738,7 @@ URL: [url]',
|
||||||
'removed_revispr' => '',
|
'removed_revispr' => '',
|
||||||
'removed_workflow_email_body' => '',
|
'removed_workflow_email_body' => '',
|
||||||
'removed_workflow_email_subject' => '',
|
'removed_workflow_email_subject' => '',
|
||||||
|
'removeFolderFromDropFolder' => '',
|
||||||
'remove_marked_files' => 'Zrušiť označenie súborov',
|
'remove_marked_files' => 'Zrušiť označenie súborov',
|
||||||
'repaired' => '',
|
'repaired' => '',
|
||||||
'repairing_objects' => '',
|
'repairing_objects' => '',
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
// along with this program; if not, write to the Free Software
|
// along with this program; if not, write to the Free Software
|
||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// Translators: Admin (1136), tmichelfelder (106)
|
// Translators: Admin (1138), tmichelfelder (106)
|
||||||
|
|
||||||
$text = array(
|
$text = array(
|
||||||
'2_factor_auth' => '',
|
'2_factor_auth' => '',
|
||||||
|
@ -603,7 +603,7 @@ URL: [url]',
|
||||||
'keep' => '',
|
'keep' => '',
|
||||||
'keep_doc_status' => 'Bibehåll dokumentstatus',
|
'keep_doc_status' => 'Bibehåll dokumentstatus',
|
||||||
'keywords' => 'Nyckelord',
|
'keywords' => 'Nyckelord',
|
||||||
'keywords_loading' => '',
|
'keywords_loading' => 'Vänta till nyckelordlistan har laddats',
|
||||||
'keyword_exists' => 'Nyckelordet finns redan',
|
'keyword_exists' => 'Nyckelordet finns redan',
|
||||||
'ko_KR' => 'Koreanska',
|
'ko_KR' => 'Koreanska',
|
||||||
'language' => 'Språk',
|
'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_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_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_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' => '',
|
'no_workflow_available' => '',
|
||||||
'objectcheck' => 'Katalog/Dokument-kontroll',
|
'objectcheck' => 'Katalog/Dokument-kontroll',
|
||||||
'object_check_critical' => '',
|
'object_check_critical' => '',
|
||||||
|
@ -842,6 +842,7 @@ Arbetsflöde: [workflow]
|
||||||
Användare: [username]
|
Användare: [username]
|
||||||
URL: [url]',
|
URL: [url]',
|
||||||
'removed_workflow_email_subject' => '[sitename]: [name] - Arbetsflöde borttagen från dokument version',
|
'removed_workflow_email_subject' => '[sitename]: [name] - Arbetsflöde borttagen från dokument version',
|
||||||
|
'removeFolderFromDropFolder' => '',
|
||||||
'remove_marked_files' => 'Ta bort markerade filer',
|
'remove_marked_files' => 'Ta bort markerade filer',
|
||||||
'repaired' => 'repaired',
|
'repaired' => 'repaired',
|
||||||
'repairing_objects' => 'Förbereder dokument och kataloger.',
|
'repairing_objects' => 'Förbereder dokument och kataloger.',
|
||||||
|
|
|
@ -858,6 +858,7 @@ Klasör: [folder_path]
|
||||||
Kullanıcı: [username]
|
Kullanıcı: [username]
|
||||||
URL: [url]',
|
URL: [url]',
|
||||||
'removed_workflow_email_subject' => '[sitename]: [name] - Doküman versiyonundan iş akışı silindi',
|
'removed_workflow_email_subject' => '[sitename]: [name] - Doküman versiyonundan iş akışı silindi',
|
||||||
|
'removeFolderFromDropFolder' => '',
|
||||||
'remove_marked_files' => 'İşaretli dosyaları sil',
|
'remove_marked_files' => 'İşaretli dosyaları sil',
|
||||||
'repaired' => 'onarıldı',
|
'repaired' => 'onarıldı',
|
||||||
'repairing_objects' => 'Doküman ve klasörler onarılıyor.',
|
'repairing_objects' => 'Doküman ve klasörler onarılıyor.',
|
||||||
|
|
|
@ -864,6 +864,7 @@ URL: [url]',
|
||||||
Користувач: [username]
|
Користувач: [username]
|
||||||
URL: [url]',
|
URL: [url]',
|
||||||
'removed_workflow_email_subject' => '[sitename]: видалено процес з версії документа «[name]»',
|
'removed_workflow_email_subject' => '[sitename]: видалено процес з версії документа «[name]»',
|
||||||
|
'removeFolderFromDropFolder' => '',
|
||||||
'remove_marked_files' => 'Видалити обрані файли',
|
'remove_marked_files' => 'Видалити обрані файли',
|
||||||
'repaired' => 'виправлено',
|
'repaired' => 'виправлено',
|
||||||
'repairing_objects' => 'Відновлення каталогів і документів',
|
'repairing_objects' => 'Відновлення каталогів і документів',
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
// along with this program; if not, write to the Free Software
|
// along with this program; if not, write to the Free Software
|
||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// Translators: Admin (652), fengjohn (5)
|
// Translators: Admin (654), fengjohn (5)
|
||||||
|
|
||||||
$text = array(
|
$text = array(
|
||||||
'2_factor_auth' => '',
|
'2_factor_auth' => '',
|
||||||
|
@ -694,7 +694,7 @@ URL: [url]',
|
||||||
'password_send' => '',
|
'password_send' => '',
|
||||||
'password_send_text' => '',
|
'password_send_text' => '',
|
||||||
'password_strength' => '密码强度',
|
'password_strength' => '密码强度',
|
||||||
'password_strength_insuffient' => '',
|
'password_strength_insuffient' => '密码强度不够',
|
||||||
'password_wrong' => '',
|
'password_wrong' => '',
|
||||||
'pending_approvals' => '',
|
'pending_approvals' => '',
|
||||||
'pending_reviews' => '',
|
'pending_reviews' => '',
|
||||||
|
@ -740,6 +740,7 @@ URL: [url]',
|
||||||
'removed_revispr' => '',
|
'removed_revispr' => '',
|
||||||
'removed_workflow_email_body' => '',
|
'removed_workflow_email_body' => '',
|
||||||
'removed_workflow_email_subject' => '',
|
'removed_workflow_email_subject' => '',
|
||||||
|
'removeFolderFromDropFolder' => '',
|
||||||
'remove_marked_files' => '删除选中的文件',
|
'remove_marked_files' => '删除选中的文件',
|
||||||
'repaired' => '',
|
'repaired' => '',
|
||||||
'repairing_objects' => '',
|
'repairing_objects' => '',
|
||||||
|
@ -1169,7 +1170,7 @@ URL: [url]',
|
||||||
'set_expiry' => '设置截止日期',
|
'set_expiry' => '设置截止日期',
|
||||||
'set_owner' => '设置所有者',
|
'set_owner' => '设置所有者',
|
||||||
'set_owner_error' => '错误 设置所有者',
|
'set_owner_error' => '错误 设置所有者',
|
||||||
'set_password' => '',
|
'set_password' => '设定密码',
|
||||||
'set_workflow' => '',
|
'set_workflow' => '',
|
||||||
'signed_in_as' => '登录为',
|
'signed_in_as' => '登录为',
|
||||||
'sign_in' => '',
|
'sign_in' => '',
|
||||||
|
|
|
@ -738,6 +738,7 @@ URL: [url]',
|
||||||
'removed_revispr' => '',
|
'removed_revispr' => '',
|
||||||
'removed_workflow_email_body' => '',
|
'removed_workflow_email_body' => '',
|
||||||
'removed_workflow_email_subject' => '',
|
'removed_workflow_email_subject' => '',
|
||||||
|
'removeFolderFromDropFolder' => '',
|
||||||
'remove_marked_files' => '刪除勾選的檔案',
|
'remove_marked_files' => '刪除勾選的檔案',
|
||||||
'repaired' => '',
|
'repaired' => '',
|
||||||
'repairing_objects' => '',
|
'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 */
|
/* Check files for Errors first */
|
||||||
for ($file_num=0;$file_num<count($_FILES["userfile"]["tmp_name"]);$file_num++){
|
for ($file_num=0;$file_num<count($_FILES["userfile"]["tmp_name"]);$file_num++){
|
||||||
if ($_FILES["userfile"]["size"][$file_num]==0) {
|
if ($_FILES["userfile"]["size"][$file_num]==0) {
|
||||||
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("uploading_zerosize"));
|
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"));
|
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"));
|
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){
|
if(isset($_POST['fineuploaderuuids']) && $_POST['fineuploaderuuids']) {
|
||||||
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("uploading_failed"));
|
$uuids = explode(';', $_POST['fineuploaderuuids']);
|
||||||
}
|
$names = explode(';', $_POST['fineuploadernames']);
|
||||||
|
foreach($uuids as $i=>$uuid) {
|
||||||
$name = $_POST["name"];
|
$fullfile = $settings->_stagingDir.'/'.basename($uuid);
|
||||||
$comment = $_POST["comment"];
|
if(file_exists($fullfile)) {
|
||||||
|
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||||
if($_FILES["userfile"]["error"]) {
|
$mimetype = finfo_file($finfo, $fullfile);
|
||||||
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("error_occured"));
|
$_FILES["userfile"]['tmp_name'][] = $fullfile;
|
||||||
}
|
$_FILES["userfile"]['type'][] = $mimetype;
|
||||||
|
$_FILES["userfile"]['name'][] = isset($names[$i]) ? $names[$i] : $uuid;
|
||||||
$userfiletmp = $_FILES["userfile"]["tmp_name"];
|
$_FILES["userfile"]['size'][] = filesize($fullfile);
|
||||||
$userfiletype = $_FILES["userfile"]["type"];
|
$_FILES["userfile"]['error'][] = 0;
|
||||||
$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);
|
|
||||||
}
|
}
|
||||||
*/
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$subject = "new_file_email_subject";
|
for ($file_num=0;$file_num<count($_FILES["userfile"]["tmp_name"]);$file_num++){
|
||||||
$message = "new_file_email_body";
|
if ($_FILES["userfile"]["size"][$file_num]==0) {
|
||||||
$params = array();
|
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("uploading_zerosize"));
|
||||||
$params['name'] = $name;
|
}
|
||||||
$params['document'] = $document->getName();
|
if (is_uploaded_file($_FILES["userfile"]["tmp_name"][$file_num]) && $_FILES['userfile']['error'][$file_num] != 0){
|
||||||
$params['username'] = $user->getFullName();
|
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("uploading_failed"));
|
||||||
$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();
|
if($_FILES["userfile"]["error"][$file_num]) {
|
||||||
$params['sitename'] = $settings->_siteName;
|
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured"));
|
||||||
$params['http_root'] = $settings->_httpRoot;
|
}
|
||||||
$notifier->toList($user, $notifyList["users"], $subject, $message, $params);
|
|
||||||
foreach ($notifyList["groups"] as $grp) {
|
if(count($_FILES["userfile"]["tmp_name"]) == 1 && !empty($_POST['name']))
|
||||||
$notifier->toGroup($user, $grp, $subject, $message, $params);
|
$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"])) {
|
if (empty($_GET["dropfolderfileform1"])) {
|
||||||
UI::exitError(getMLText("admin_tools"),getMLText("invalid_target_folder"));
|
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"));
|
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($newfolder = $folder->addSubFolder($_GET["dropfolderfileform1"], '', $user, 1)) {
|
||||||
if(!import_folder($dirname, $newfolder))
|
if(!import_folder($dirname, $newfolder))
|
||||||
$session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('error_importfs')));
|
$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))));
|
$session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_importfs', array('docs'=>$doccount, 'folders'=>$foldercount))));
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('error_importfs')));
|
$session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('error_importfs')));
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,14 +58,30 @@ if ($document->isLocked()) {
|
||||||
else $document->setLocked(false);
|
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"]))
|
if(isset($_POST["comment"]))
|
||||||
$comment = $_POST["comment"];
|
$comment = $_POST["comment"];
|
||||||
else
|
else
|
||||||
$comment = "";
|
$comment = "";
|
||||||
|
|
||||||
if ($_FILES['userfile']['error'] == 0) {
|
if ($_FILES['userfile']['error'] == 0) {
|
||||||
if(!is_uploaded_file($_FILES["userfile"]["tmp_name"]))
|
// if(!is_uploaded_file($_FILES["userfile"]["tmp_name"]))
|
||||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured"));
|
// UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")."lsajdflk");
|
||||||
|
|
||||||
if($_FILES["userfile"]["size"] == 0)
|
if($_FILES["userfile"]["size"] == 0)
|
||||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("uploading_zerosize"));
|
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']));
|
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
|
||||||
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user));
|
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user));
|
||||||
if($view) {
|
if($view) {
|
||||||
|
$view->setParam('strictformcheck', $settings->_strictFormCheck);
|
||||||
$view($_GET);
|
$view($_GET);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
|
@ -206,6 +206,45 @@ div.popupbox span.closepopupbox {
|
||||||
top: 0px;
|
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) {
|
@media (max-width: 480px) {
|
||||||
.nav-tabs > li {
|
.nav-tabs > li {
|
||||||
float:none;
|
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":"AAOA,oBAEI,MAAO,MACP,YACA,QAAS,EACT,OAAQ,EACR,WAAY,KAKhB,8BACI,QAAS,OACT,MAAO,MACP,QAAS,IAAI,KACb,MAAO,KACP,WAAY,OACZ,WAAY,QACZ,MAAO,KACP,cAAe,IACf,OAAQ,IAAI,MAAM,QAClB,WAAY,EAAE,IAAI,IAAI,sBAA0B,MAAO,IAAI,EAAE,IAAI,sBAA0B,MAAO,EAAE,IAAI,EAAE,gBAAqB,EAAE,KAAK,KAAK,gBAAoB,MAEnK,oCACI,WAAY,QAEhB,oCACI,QAAoB,KAAP,OAAJ,IAMb,wBACI,SAAU,SACV,WAAY,MACZ,WAAY,MACZ,WAAY,OACZ,MAAO,QACP,cAAe,IACf,OAAQ,IAAI,OAAO,KACnB,iBAAkB,QAClB,QAAS,KAEb,+BACI,QAAS,wBAAwB,IACjC,SAAU,SACV,UAAW,KACX,KAAM,EACN,MAAO,KACP,WAAY,OACZ,IAAK,IACL,QAAS,IACT,OAAQ,kBAEZ,iCAAkC,2BAC9B,SAAU,SACV,IAAK,EACL,KAAM,EACN,MAAO,KACP,OAAQ,KACR,WAAY,KACZ,QAAS,EACT,WAAY,QACZ,cAAe,IACf,WAAY,OAEhB,sCACI,QAAS,MACT,SAAU,SACV,IAAK,IACL,MAAO,KACP,WAAY,KACZ,UAAW,KAEf,uCACI,SAAU,SACV,WAAY,KACZ,UAAW,KACX,YAAa,KACb,OAAQ,KACR,WAAY,KAEhB,wCACI,WAAY,QACZ,cAAe,IAEnB,4BACI,OAAQ,EACR,QAAS,KAAK,EAAE,EAChB,WAAY,KACZ,WAAY,MACZ,WAAY,KACZ,MAAO,KACP,WAAY,KAMhB,+BACI,QAAS,aACT,SAAU,SACV,UAAW,MACX,OAAQ,EAAE,KAAK,KAAK,EACpB,QAAS,EACT,YAAa,KACb,UAAW,KACX,MAAO,QACP,iBAAkB,KAClB,cAAe,IACf,WAAY,EAAE,IAAI,IAAI,EAAE,gBACxB,eAAgB,IAGhB,OAA8J,MASlK,gCAFA,8BADA,mCAEA,6BAHA,6BADA,4BADA,+BAOI,QAAS,OAKb,sCAFA,oCACA,mCAFA,mCAII,iBAAkB,YAKtB,8BADA,gCAFA,8BACA,6BAGI,OAAQ,QAIZ,gCAFA,8BACA,6BAEI,YACA,eACA,MAAO,QACP,UAAW,KACX,QAAS,EAGb,mCACI,MAAO,KACP,UAAW,KACX,aAAc,IACd,YAAa,IAEb,QAAS,KACT,MAAO,MAEX,mDACI,cAAe,SACf,YAAa,OACb,WAAY,OACZ,QAAS,MAEb,uDACI,QAAS,aAEb,2DACI,QAAS,KAGb,8BACI,iBAAkB,QAClB,MAAO,QACP,YAAa,IACb,YAAa,MAAO,UAAW,WAC/B,cAAe,KACf,YACA,OAAQ,KACR,MAAO,KACP,QAAS,IACT,SAAU,SACV,MAAO,KACP,IAAK,KACL,OAAQ,EACR,YAAa,KAEjB,oCACI,iBAAkB,QAEtB,6BACI,OAAQ,QACR,SAAU,SACV,IAAK,KACL,KAAM,IACN,YAAa,MACb,WAAY,EAAE,IAAI,IAAI,sBAA0B,MAAO,IAAI,EAAE,IAAI,sBAA0B,MAAO,EAAE,IAAI,IAAI,eAAoB,EAAE,KAAK,KAAK,gBAAoB,MAChK,QAAS,IAAI,IACb,OAAQ,IAAI,MAAM,QAClB,cAAe,IACf,MAAO,QACP,iBAAkB,QAClB,QAAS,EAEb,mCACI,iBAAkB,QAGtB,0BACI,QAAS,KAAK,IAAI,IAClB,WAAY,KACZ,cAAe,EAAE,EAAE,IAAI,IACvB,WAAY,KACZ,SAAU,OAGd,wCACI,SAAU,SAGd,4BACI,QAAS,MACT,aAAc,EACd,cAAe,IACf,MAAO,KAGP,cAAqV,SACrV,YAAa,OACb,WAAY,OAEhB,+BACI,QAAS,aACT,WAAY,iBACZ,SAAU,SACV,KAAM,IACN,YAAa,KACb,IAAK,KACL,MAAO,KACP,OAAQ,KACR,eAAgB,YAEpB,gCACI,QAAS,MAEb,wCACI,QAAS,aACT,WAAY,oBACZ,MAAO,KACP,OAAQ,KACR,eAAgB,YAEpB,mCACI,QAAS,KACT,WAAY,OACZ,YAAa,IAEjB,mCACI,QAAQ,KACR,MAAM,KACN,OAAO,KACP,eAAe,YAEnB,mDAGA,uDAFI,QAAS,OAKb,iDACI,iBAAkB,QAEtB,8CACI,iBAAkB,QAClB,WAAY,EAAE,EAAE,IAAI,EAAE,IACtB,OAAQ,EAEZ,6BACI,QAAS,MACT,WAAY,QACZ,MAAO,EACP,OAAQ,KACR,cAAe,IACf,cAAe,IAGnB,mCACI,OAAQ,KACR,cAAe,IAGnB,6CACI,YAAa,IACb,QAAS,OACT,MAAO,MACP,MAAO,MAGX,4BACI,MAAO,KACP,UAAW,KACX,MAAO,QACP,cAAe,IACf,aAAc,EACd,QAAS,aAGb,mCACI,SAAU,SACV,QAAS,EACT,OAAQ,iBACR,QAAS,GACT,WAAY,qDAGhB,wCACI,OAAQ,QACR,aAAc,KAGlB,+CACI,QAAS,aACT,OAAQ,QACR,SAAU,SACV,MAAO,EACP,IAAK,EAGT,8CACI,SAAU,OACV,OAAQ,KACR,MAAO,KACP,MAAO,eACP,QAAS,EAAE,IACX,cAAe,IACf,OAAQ,IAAI,MAAM,KAClB,cAAe,IACf,UAAW,KAEX,QAAS,EACT,OAAQ,mBACR,WAAY,uDAGhB,mCACI,QAAS,KACT,WAAY,cACZ,MAAO,KACP,OAAQ,KACR,eAAgB,YAiBpB,8BAfA,4BAsBA,2BAfA,2BAiBI,MAAO,KACP,OAAQ,KACR,eAAgB,IAChB,QAAS,aA3Bb,4BACI,WAAY,eAMhB,2BACI,WAAY,eAKZ,MAAO,KAEX,8BACI,WAAY,kBAMhB,2BACI,WAAY,eAOhB,qBACI,QAAS,KAMb,kDAEI,QAAmH,GACnH,OAAQ,kBAEZ,kCACI,SAAU,OACV,SAAU,SAGV,OAA2O,MAC3O,MAAO,MAEX,mCACI,cAAe,IAAI,IAAI,EAAE,EACzB,OAAQ,EAGR,IAA+V,EAG/V,OAAiZ,KACjZ,QAAS,MAIb,2CAEI,SAAikB,SACjkB,IAAK,IACL,UAAW,iBACX,eAAgB,iBAChB,cAAe,iBACf,kBAAmB,iBAYvB,+BACI,QAAS,KAGb,qCACI,QAAS,MAGb,kDACI,WAAY,OACZ,YAAa,KAGjB,yDACI,YAAa,IACb,aAAc,IAGlB,2DACI,eAAgB,KAGpB,0CACI,iBAAkB"}
|
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":"AAMA,QAkDA,kBAWI,WAAY,EAAE,IAAI,IAAI,sBAA0B,MAAO,IAAI,EAAE,IAAI,sBAA0B,MAAO,EAAE,IAAI,EAAE,gBAAqB,EAAE,KAAK,KAAK,gBAAoB,MA7DnK,QAGI,QAAS,IAAI,IACb,OAAQ,IAAI,MAAM,KAClB,cAAe,IACf,MAAO,QACP,iBAAkB,KAKtB,kBAEI,iBAAkB,QAClB,MAAO,QACP,aAAc,QACd,YAAa,EAAE,IAAI,IAAI,gBAE3B,wBACI,iBAAkB,QAEtB,kBAEI,iBAAkB,QAClB,aAAc,QAElB,wBACI,iBAAkB,QAEtB,iBAEI,iBAAkB,QAClB,aAAc,QAElB,uBACI,iBAAkB,QAEJ,oBAAlB,iBACI,iBAAkB,QAClB,MAAO,QACP,aAAc,QACd,YAAa,EAAE,IAAI,IAAI,gBAEH,0BAAxB,uBACI,iBAAkB,QAKtB,kBACI,QAAS,OACT,MAAO,MACP,cAAe,KACf,QAAS,IAAI,KACb,WAAY,OACZ,MAAO,KACP,WAAY,QACZ,MAAO,KACP,cAAe,IACf,OAAQ,IAAI,MAAM,QAGtB,wBACI,WAAY,QAEhB,wBACI,QAAoB,KAAP,OAAJ,IAMb,aACI,SAAU,SACV,WAAY,MACZ,WAAY,MACZ,WAAY,OACZ,MAAO,QACP,cAAe,IACf,iBAAkB,QAClB,OAAQ,IAAI,OAAO,KACnB,QAAS,KAEb,oBACI,QAAS,wBAAwB,IACjC,SAAU,SACV,UAAW,KACX,KAAM,EACN,MAAO,KACP,WAAY,OACZ,IAAK,IACL,QAAS,IAEb,qBAAsB,2BAClB,SAAU,SACV,IAAK,EACL,KAAM,EACN,MAAO,KACP,OAAQ,KACR,WAAY,KACZ,QAAS,EACT,WAAY,QACZ,cAAe,IACf,OAAQ,IAAI,OAAO,KACnB,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,QACZ,cAAe,IACf,OAAQ,IAAI,OAAO,KAEvB,gBACI,OAAQ,EACR,QAAS,EACT,WAAY,KACZ,WAAY,MACZ,WAAY,KACZ,WAAY,EAAI,IAAI,EAAI,mBACxB,MAAO,KAMX,mBACI,OAAQ,EACR,QAAS,IACT,YAAa,KACb,UAAW,KACX,MAAO,QACP,iBAAkB,QAClB,WAAY,IAAI,MAAM,KACtB,cAAe,IAAI,MAAM,KAE7B,+BACI,WAAY,KAEhB,8BACI,cAAe,KAInB,kBACqC,oBAArC,kBADqC,uBADrC,gBAEmB,iBADA,iBADkB,gBAApB,mBAGb,aAAc,KACd,QAAS,OAEb,gBACI,eAAgB,OAChB,QAAS,aACT,MAAO,MACP,cAAe,SACf,YAAa,OACb,WAAY,OACZ,OAAQ,KAEZ,mBACI,QAAS,aACT,WAAY,iBACZ,MAAO,KACP,OAAQ,KACR,eAAgB,YAEpB,oBACI,QAAS,MAEb,4BACI,QAAS,aACT,WAAY,oBACZ,MAAO,KACP,OAAQ,KACR,eAAgB,YAEH,kBACoB,oBAArC,kBAAmB,iBADiB,iBAApC,gBAEI,UAAW,KACX,YAAa,IACb,OAAQ,QACR,eAAgB,OAEpB,uBACI,UAAW,KACX,YAAa,IACb,QAAS,MAEb,uBACI,QAAS,KACT,WAAY,OACZ,YAAa,IAEjB,uBACI,QAAQ,KACR,MAAM,KACN,OAAO,KACP,eAAe,YAEnB,uCAGA,2CAFI,QAAS,OAKb,qCACI,iBAAkB,QAClB,MAAO,QACP,cAAe,IAAI,MAAM,QACzB,WAAY,IAAI,MAAM,QAE1B,kCACI,iBAAkB,QAClB,MAAO,QACP,cAAe,IAAI,MAAM,QACzB,WAAY,IAAI,MAAM,QAE1B,iBACI,QAAS,MAET,WAAY,QACZ,MAAO,EACP,OAAQ,KACR,cAAe,IACf,cAAe,IAGnB,uBACI,OAAQ,KACR,cAAe,IAGnB,iCACI,YAAa,IACb,QAAS,OACT,MAAO,MACP,MAAO,MAGX,uBACI,SAAU,SACV,QAAS,EACT,OAAQ,iBACR,QAAS,GACT,WAAY,qDAGhB,4BACI,OAAQ,QACR,aAAc,IAGlB,mCACI,QAAS,aACT,OAAQ,QA2BZ,SAsBA,oBACI,QAAS,KA/Cb,kCACI,SAAU,OACV,OAAQ,KACR,QAAS,EAAE,IACX,aAAc,KACd,cAAe,KACf,OAAQ,IAAI,MAAM,KAClB,cAAe,IACf,UAAW,KAEX,QAAS,EACT,OAAQ,mBACR,WAAY,uDAGhB,uBACI,QAAS,KACT,WAAY,cACZ,MAAO,KACP,OAAQ,KACR,eAAgB,YAChB,aAAc,KAUlB,uBACI,eAAgB,OAChB,aAAc,KAiBlB,0BACI,QAAS,MAGb,uCACI,WAAY,OACZ,YAAa,KAGjB,8CACI,YAAa,IACb,aAAc,IAGlB,gDACI,eAAgB,KAGpB,8BACI,iBAAkB"}
|
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 {
|
class SeedDMS_View_AddDocument extends SeedDMS_Bootstrap_Style {
|
||||||
|
|
||||||
function js() { /* {{{ */
|
function js() { /* {{{ */
|
||||||
$strictformcheck = $this->params['strictformcheck'];
|
|
||||||
$dropfolderdir = $this->params['dropfolderdir'];
|
$dropfolderdir = $this->params['dropfolderdir'];
|
||||||
|
$partitionsize = $this->params['partitionsize'];
|
||||||
|
$enablelargefileupload = $this->params['enablelargefileupload'];
|
||||||
header('Content-Type: application/javascript; charset=UTF-8');
|
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($enablelargefileupload)
|
||||||
if ($strictformcheck) {
|
$this->printFineUploaderJs('../op/op.UploadChunks.php', $partitionsize);
|
||||||
?>
|
?>
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$('body').on('submit', '#form1', function(ev){
|
|
||||||
if(checkForm()) return;
|
|
||||||
ev.preventDefault();
|
|
||||||
});
|
|
||||||
$('#new-file').click(function(event) {
|
$('#new-file').click(function(event) {
|
||||||
$("#upload-file").clone().appendTo("#upload-files").removeAttr("id").children('div').children('input').val('');
|
$("#upload-file").clone().appendTo("#upload-files").removeAttr("id").children('div').children('input').val('');
|
||||||
});
|
});
|
||||||
|
@ -80,7 +50,25 @@ $(document).ready(function() {
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
}, "<?php printMLText("js_no_file");?>");
|
}, "<?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({
|
$("#form1").validate({
|
||||||
|
debug: false,
|
||||||
|
ignore: ":hidden:not(.do_validate)",
|
||||||
invalidHandler: function(e, validator) {
|
invalidHandler: function(e, validator) {
|
||||||
noty({
|
noty({
|
||||||
text: (validator.numberOfInvalids() == 1) ? "<?php printMLText("js_form_error");?>".replace('#', validator.numberOfInvalids()) : "<?php printMLText("js_form_errors");?>".replace('#', validator.numberOfInvalids()),
|
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,
|
timeout: 1500,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
<?php
|
||||||
|
if($enablelargefileupload) {
|
||||||
|
?>
|
||||||
|
submitHandler: function(form) {
|
||||||
|
manualuploader.uploadStoredFiles();
|
||||||
|
},
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
rules: {
|
rules: {
|
||||||
|
<?php
|
||||||
|
if($enablelargefileupload) {
|
||||||
|
?>
|
||||||
|
fineuploaderuuids: {
|
||||||
|
fineuploader: [ manualuploader, $('#dropfolderfileform1') ]
|
||||||
|
}
|
||||||
|
<?php
|
||||||
|
} else {
|
||||||
|
?>
|
||||||
'userfile[]': {
|
'userfile[]': {
|
||||||
alternatives: $('#dropfolderfileform1')
|
alternatives: $('#dropfolderfileform1')
|
||||||
},
|
},
|
||||||
dropfolderfileform1: {
|
dropfolderfileform1: {
|
||||||
alternatives: $(".btn-file input")
|
alternatives: $(".btn-file input")
|
||||||
}
|
}
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
},
|
},
|
||||||
messages: {
|
messages: {
|
||||||
name: "<?php printMLText("js_no_name");?>",
|
name: "<?php printMLText("js_no_name");?>",
|
||||||
|
@ -107,7 +116,6 @@ $(document).ready(function() {
|
||||||
errorPlacement: function( error, element ) {
|
errorPlacement: function( error, element ) {
|
||||||
if ( element.is( ":file" ) ) {
|
if ( element.is( ":file" ) ) {
|
||||||
error.appendTo( element.parent().parent().parent());
|
error.appendTo( element.parent().parent().parent());
|
||||||
console.log(element);
|
|
||||||
} else {
|
} else {
|
||||||
error.appendTo( element.parent());
|
error.appendTo( element.parent());
|
||||||
}
|
}
|
||||||
|
@ -138,6 +146,8 @@ console.log(element);
|
||||||
$folderid = $folder->getId();
|
$folderid = $folder->getId();
|
||||||
|
|
||||||
$this->htmlAddHeader('<script type="text/javascript" src="../styles/'.$this->theme.'/validate/jquery.validate.js"></script>'."\n", 'js');
|
$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->htmlStartPage(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName()))));
|
||||||
$this->globalNavigation($folder);
|
$this->globalNavigation($folder);
|
||||||
|
@ -145,7 +155,7 @@ console.log(element);
|
||||||
$this->pageNavigation($this->getFolderPathHTML($folder, true), "view_folder", $folder);
|
$this->pageNavigation($this->getFolderPathHTML($folder, true), "view_folder", $folder);
|
||||||
|
|
||||||
$msg = getMLText("max_upload_size").": ".ini_get( "upload_max_filesize");
|
$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>";
|
$msg .= "<p>".sprintf(getMLText('link_alt_updatedocument'), "out.AddMultiDocument.php?folderid=".$folderid."&showtree=".showtree())."</p>";
|
||||||
}
|
}
|
||||||
$this->warningMsg($msg);
|
$this->warningMsg($msg);
|
||||||
|
@ -273,9 +283,15 @@ console.log(element);
|
||||||
</ol>
|
</ol>
|
||||||
-->
|
-->
|
||||||
<?php
|
<?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>
|
<a class="" id="new-file"><?php printMLtext("add_multiple_files") ?></a>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php if($dropfolderdir) { ?>
|
<?php if($dropfolderdir) { ?>
|
||||||
|
|
|
@ -32,6 +32,7 @@ require_once("class.Bootstrap.php");
|
||||||
class SeedDMS_View_AddEvent extends SeedDMS_Bootstrap_Style {
|
class SeedDMS_View_AddEvent extends SeedDMS_Bootstrap_Style {
|
||||||
|
|
||||||
function js() { /* {{{ */
|
function js() { /* {{{ */
|
||||||
|
$strictformcheck = $this->params['strictformcheck'];
|
||||||
header('Content-Type: application/javascript; charset=UTF-8');
|
header('Content-Type: application/javascript; charset=UTF-8');
|
||||||
?>
|
?>
|
||||||
function checkForm()
|
function checkForm()
|
||||||
|
@ -39,7 +40,7 @@ function checkForm()
|
||||||
msg = new Array();
|
msg = new Array();
|
||||||
if (document.form1.name.value == "") msg.push("<?php printMLText("js_no_name");?>");
|
if (document.form1.name.value == "") msg.push("<?php printMLText("js_no_name");?>");
|
||||||
<?php
|
<?php
|
||||||
if (isset($settings->_strictFormCheck) && $settings->_strictFormCheck) {
|
if ($strictformcheck) {
|
||||||
?>
|
?>
|
||||||
if (document.form1.comment.value == "") msg.push("<?php printMLText("js_no_comment");?>");
|
if (document.form1.comment.value == "") msg.push("<?php printMLText("js_no_comment");?>");
|
||||||
<?php
|
<?php
|
||||||
|
|
|
@ -32,40 +32,79 @@ require_once("class.Bootstrap.php");
|
||||||
class SeedDMS_View_AddFile extends SeedDMS_Bootstrap_Style {
|
class SeedDMS_View_AddFile extends SeedDMS_Bootstrap_Style {
|
||||||
|
|
||||||
function js() { /* {{{ */
|
function js() { /* {{{ */
|
||||||
|
$enablelargefileupload = $this->params['enablelargefileupload'];
|
||||||
|
$partitionsize = $this->params['partitionsize'];
|
||||||
header('Content-Type: application/javascript');
|
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() {
|
$(document).ready( function() {
|
||||||
$('body').on('submit', '#fileupload', function(ev){
|
/* The fineuploader validation is actually checking all fields that can contain
|
||||||
if(checkForm()) return;
|
* a file to be uploaded. First checks if an alternative input field is set,
|
||||||
ev.preventDefault();
|
* 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
|
<?php
|
||||||
|
@ -79,6 +118,10 @@ $(document).ready( function() {
|
||||||
$strictformcheck = $this->params['strictformcheck'];
|
$strictformcheck = $this->params['strictformcheck'];
|
||||||
$enablelargefileupload = $this->params['enablelargefileupload'];
|
$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->htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))));
|
||||||
$this->globalNavigation($folder);
|
$this->globalNavigation($folder);
|
||||||
$this->contentStart();
|
$this->contentStart();
|
||||||
|
@ -89,7 +132,7 @@ $(document).ready( function() {
|
||||||
<div class="alert alert-warning">
|
<div class="alert alert-warning">
|
||||||
<?php echo getMLText("max_upload_size").": ".ini_get( "upload_max_filesize"); ?>
|
<?php echo getMLText("max_upload_size").": ".ini_get( "upload_max_filesize"); ?>
|
||||||
<?php
|
<?php
|
||||||
if($enablelargefileupload) {
|
if(0 && $enablelargefileupload) {
|
||||||
printf('<p>'.getMLText('link_alt_updatedocument').'</p>', "out.AddFile2.php?documentid=".$document->getId());
|
printf('<p>'.getMLText('link_alt_updatedocument').'</p>', "out.AddFile2.php?documentid=".$document->getId());
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -98,13 +141,18 @@ $(document).ready( function() {
|
||||||
$this->contentContainerStart();
|
$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(); ?>">
|
<input type="hidden" name="documentid" value="<?php print $document->getId(); ?>">
|
||||||
|
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label"><?php printMLText("local_file");?>:</label>
|
<label class="control-label"><?php printMLText("local_file");?>:</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<?php $this->printFileChooser('userfile', false); ?>
|
<?php
|
||||||
|
if($enablelargefileupload)
|
||||||
|
$this->printFineUploaderHtml();
|
||||||
|
else
|
||||||
|
$this->printFileChooser('userfile[]', false);
|
||||||
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -120,7 +168,7 @@ $(document).ready( function() {
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label"><?php printMLText("comment");?>:</label>
|
<label class="control-label"><?php printMLText("comment");?>:</label>
|
||||||
<div class="controls">
|
<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>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -457,7 +457,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
||||||
else if ($accessMode >= M_READWRITE) {
|
else if ($accessMode >= M_READWRITE) {
|
||||||
$menuitems['add_subfolder'] = array('link'=>"../out/out.AddSubFolder.php?folderid=". $folderID ."&showtree=".showtree(), 'label'=>'add_subfolder');
|
$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');
|
$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['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');
|
$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())
|
if ($folderID != $this->params['rootfolderid'] && $folder->getParent())
|
||||||
|
@ -2371,6 +2371,130 @@ mayscript>
|
||||||
parent::show();
|
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
|
* 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 */
|
/* Setting drop folder dir to "" will force to take the default from settings.xml */
|
||||||
$this->printDropFolderChooserHtml("form1", "", 1);
|
$this->printDropFolderChooserHtml("form1", "", 1);
|
||||||
print "</div></div>";
|
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 "<div class=\"control-group\"><label class=\"control-label\">";
|
||||||
print "</label><div class=\"controls\">";
|
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 "</div></div>";
|
||||||
print "</form>\n";
|
print "</form>\n";
|
||||||
$this->contentContainerEnd();
|
$this->contentContainerEnd();
|
||||||
|
|
|
@ -34,55 +34,38 @@ class SeedDMS_View_UpdateDocument extends SeedDMS_Bootstrap_Style {
|
||||||
function js() { /* {{{ */
|
function js() { /* {{{ */
|
||||||
$strictformcheck = $this->params['strictformcheck'];
|
$strictformcheck = $this->params['strictformcheck'];
|
||||||
$dropfolderdir = $this->params['dropfolderdir'];
|
$dropfolderdir = $this->params['dropfolderdir'];
|
||||||
|
$enablelargefileupload = $this->params['enablelargefileupload'];
|
||||||
|
$partitionsize = $this->params['partitionsize'];
|
||||||
header('Content-Type: application/javascript');
|
header('Content-Type: application/javascript');
|
||||||
$this->printDropFolderChooserJs("form1");
|
$this->printDropFolderChooserJs("form1");
|
||||||
$this->printSelectPresetButtonJs();
|
$this->printSelectPresetButtonJs();
|
||||||
$this->printInputPresetButtonJs();
|
$this->printInputPresetButtonJs();
|
||||||
$this->printCheckboxPresetButtonJs();
|
$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() {
|
$(document).ready( function() {
|
||||||
/*
|
|
||||||
$('body').on('submit', '#form1', function(ev){
|
|
||||||
if(checkForm()) return;
|
|
||||||
ev.preventDefault();
|
|
||||||
});
|
|
||||||
*/
|
|
||||||
jQuery.validator.addMethod("alternatives", function(value, element, params) {
|
jQuery.validator.addMethod("alternatives", function(value, element, params) {
|
||||||
if(value == '' && params.val() == '')
|
if(value == '' && params.val() == '')
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
}, "<?php printMLText("js_no_file");?>");
|
}, "<?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({
|
$("#form1").validate({
|
||||||
invalidHandler: function(e, validator) {
|
invalidHandler: function(e, validator) {
|
||||||
noty({
|
noty({
|
||||||
|
@ -94,13 +77,34 @@ $(document).ready( function() {
|
||||||
timeout: 1500,
|
timeout: 1500,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
<?php
|
||||||
|
if($enablelargefileupload) {
|
||||||
|
?>
|
||||||
|
submitHandler: function(form) {
|
||||||
|
manualuploader.uploadStoredFiles();
|
||||||
|
},
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
rules: {
|
rules: {
|
||||||
|
<?php
|
||||||
|
if($enablelargefileupload) {
|
||||||
|
?>
|
||||||
|
fineuploaderuuids: {
|
||||||
|
fineuploader: [ manualuploader, $('#dropfolderfileform1') ]
|
||||||
|
}
|
||||||
|
<?php
|
||||||
|
} else {
|
||||||
|
?>
|
||||||
userfile: {
|
userfile: {
|
||||||
alternatives: $('#dropfolderfileform1')
|
alternatives: $('#dropfolderfileform1')
|
||||||
},
|
},
|
||||||
dropfolderfileform1: {
|
dropfolderfileform1: {
|
||||||
alternatives: $('#userfile')
|
alternatives: $('#userfile')
|
||||||
}
|
}
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
},
|
},
|
||||||
messages: {
|
messages: {
|
||||||
comment: "<?php printMLText("js_no_comment");?>",
|
comment: "<?php printMLText("js_no_comment");?>",
|
||||||
|
@ -134,6 +138,8 @@ console.log(element);
|
||||||
$documentid = $document->getId();
|
$documentid = $document->getId();
|
||||||
|
|
||||||
$this->htmlAddHeader('<script type="text/javascript" src="../styles/'.$this->theme.'/validate/jquery.validate.js"></script>'."\n", 'js');
|
$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->htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))));
|
||||||
$this->globalNavigation($folder);
|
$this->globalNavigation($folder);
|
||||||
|
@ -190,9 +196,12 @@ console.log(element);
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td><?php printMLText("local_file");?>:</td>
|
<td><?php printMLText("local_file");?>:</td>
|
||||||
<td><!-- input type="File" name="userfile" size="60" -->
|
<td>
|
||||||
<?php
|
<?php
|
||||||
$this->printFileChooser('userfile', false);
|
if($enablelargefileupload)
|
||||||
|
$this->printFineUploaderHtml();
|
||||||
|
else
|
||||||
|
$this->printFileChooser('userfile', false);
|
||||||
?>
|
?>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</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>";
|
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))
|
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>";
|
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\">";
|
echo "</ul><ul class=\"unstyled actions\">";
|
||||||
if (($document->getAccessMode($user) == M_ALL)||($file->getUserID()==$user->getID()))
|
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>";
|
print "<li><a href=\"out.RemoveDocumentFile.php?documentid=".$documentid."&fileid=".$file->getID()."\"><i class=\"icon-remove\"></i>".getMLText("delete")."</a></li>";
|
||||||
|
|