mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-12-24 05:48:29 +00:00
Merge branch 'seeddms-6.0.x' into seeddms-6.1.x
This commit is contained in:
commit
dc0d452afe
25
CHANGELOG
25
CHANGELOG
|
|
@ -1,15 +1,25 @@
|
|||
--------------------------------------------------------------------------------
|
||||
Changes in version 6.1.0
|
||||
--------------------------------------------------------------------------------
|
||||
- merge changes up to 6.0.9
|
||||
- merge changes up to 6.0.10
|
||||
- add attribute groups and selective output of attributes
|
||||
- add support for WebAuthn
|
||||
- do not use md5 password hashing anymore, hashes will be updated automatically
|
||||
when passwords are reset
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Changes in version 6.0.10
|
||||
--------------------------------------------------------------------------------
|
||||
- merge changes up to 5.1.17
|
||||
- fix list of previous document versions (Closes: #471)
|
||||
- fix uploading files with fine uploader (Closes: #472)
|
||||
- clear revision date when all revisors have been deleted
|
||||
- improve scheduler task management, tasks can be deleted, fix setting parameters
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Changes in version 6.0.9
|
||||
--------------------------------------------------------------------------------
|
||||
- merge changes up to 5.1.16
|
||||
- fix removal of roles (Closes: #465)
|
||||
- fix password forgotten process
|
||||
- fix setting role of new user and retrieving role of existing user
|
||||
|
|
@ -147,6 +157,19 @@
|
|||
- add document list which can be exported as an archive
|
||||
- search results can be exported
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Changes in version 5.1.17
|
||||
--------------------------------------------------------------------------------
|
||||
- new version 5.16.2 of fine uploader
|
||||
- obey max_upload_size whenever a file is uploaded
|
||||
- do not list documents in task list, if a previous version is still in workflow.
|
||||
Take only the lastest version into account (Closes: #405)
|
||||
- fix moving documents in clipboard into folder by drag&drop
|
||||
- clipboard can be pinned to fixed position
|
||||
- use standard output for document rows on MyDocuments page
|
||||
- new seeddms logo
|
||||
- fix moving clipboard (Closes: #473)
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Changes in version 5.1.16
|
||||
--------------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -906,7 +906,7 @@ class SeedDMS_Core_DMS {
|
|||
foreach($tmp as $group)
|
||||
$groups[] = $group->getID();
|
||||
}
|
||||
$selectStr = "SELECT count(*) c ";
|
||||
$selectStr = "count(distinct ttcontentid.document) c ";
|
||||
$queryStr =
|
||||
"FROM `ttcontentid` ".
|
||||
"LEFT JOIN `tblDocumentStatus` ON `tblDocumentStatus`.`documentID`=`ttcontentid`.`document` AND `tblDocumentStatus`.`version`=`ttcontentid`.`maxVersion` ".
|
||||
|
|
@ -938,10 +938,12 @@ class SeedDMS_Core_DMS {
|
|||
"LEFT JOIN `ttapproveid` ON `ttapproveid`.`approveID` = `tblDocumentApprovers`.`approveID` ".
|
||||
"LEFT JOIN `tblDocumentApproveLog` ON `tblDocumentApproveLog`.`approveLogID`=`ttapproveid`.`maxLogID` ";
|
||||
|
||||
$queryStr .= "WHERE (`tblDocumentApprovers`.`type` = 0 AND `tblDocumentApprovers`.`required` = ".$user->getID()." ";
|
||||
if($groups)
|
||||
$queryStr .= "OR `tblDocumentApprovers`.`type` = 1 AND `tblDocumentApprovers`.`required` IN (".implode(',', $groups).") ";
|
||||
$queryStr .= ") ";
|
||||
if($user) {
|
||||
$queryStr .= "WHERE (`tblDocumentApprovers`.`type` = 0 AND `tblDocumentApprovers`.`required` = ".$user->getID()." ";
|
||||
if($groups)
|
||||
$queryStr .= "OR `tblDocumentApprovers`.`type` = 1 AND `tblDocumentApprovers`.`required` IN (".implode(',', $groups).") ";
|
||||
$queryStr .= ") ";
|
||||
}
|
||||
$queryStr .= "AND `tblDocumentApproveLog`.`status` = 0 ";
|
||||
$queryStr .= "AND `tblDocumentStatusLog`.`status` IN (".S_DRAFT_APP.", ".S_EXPIRED.") ";
|
||||
break; /* }}} */
|
||||
|
|
@ -954,10 +956,12 @@ class SeedDMS_Core_DMS {
|
|||
"LEFT JOIN `ttreceiptid` ON `ttreceiptid`.`receiptID` = `tblDocumentRecipients`.`receiptID` ".
|
||||
"LEFT JOIN `tblDocumentReceiptLog` ON `tblDocumentReceiptLog`.`receiptLogID`=`ttreceiptid`.`maxLogID` ";
|
||||
|
||||
$queryStr .= "WHERE (`tblDocumentRecipients`.`type` = 0 AND `tblDocumentRecipients`.`required` = ".$user->getID()." ";
|
||||
if($groups)
|
||||
$queryStr .= "OR `tblDocumentRecipients`.`type` = 1 AND `tblDocumentRecipients`.`required` IN (".implode(',', $groups).") ";
|
||||
$queryStr .= ") ";
|
||||
if($user) {
|
||||
$queryStr .= "WHERE (`tblDocumentRecipients`.`type` = 0 AND `tblDocumentRecipients`.`required` = ".$user->getID()." ";
|
||||
if($groups)
|
||||
$queryStr .= "OR `tblDocumentRecipients`.`type` = 1 AND `tblDocumentRecipients`.`required` IN (".implode(',', $groups).") ";
|
||||
$queryStr .= ") ";
|
||||
}
|
||||
$queryStr .= "AND `tblDocumentReceiptLog`.`status` = 0 ";
|
||||
$queryStr .= "AND `tblDocumentStatusLog`.`status` IN (".S_RELEASED.") ";
|
||||
break; /* }}} */
|
||||
|
|
@ -970,51 +974,40 @@ class SeedDMS_Core_DMS {
|
|||
"LEFT JOIN `ttrevisionid` ON `ttrevisionid`.`revisionID` = `tblDocumentRevisors`.`revisionID` ".
|
||||
"LEFT JOIN `tblDocumentRevisionLog` ON `tblDocumentRevisionLog`.`revisionLogID`=`ttrevisionid`.`maxLogID` ";
|
||||
|
||||
$queryStr .= "WHERE (`tblDocumentRevisors`.`type` = 0 AND `tblDocumentRevisors`.`required` = ".$user->getID()." ";
|
||||
if($groups)
|
||||
$queryStr .= "OR `tblDocumentRevisors`.`type` = 1 AND `tblDocumentRevisors`.`required` IN (".implode(',', $groups).") ";
|
||||
$queryStr .= ") ";
|
||||
if($user) {
|
||||
$queryStr .= "WHERE (`tblDocumentRevisors`.`type` = 0 AND `tblDocumentRevisors`.`required` = ".$user->getID()." ";
|
||||
if($groups)
|
||||
$queryStr .= "OR `tblDocumentRevisors`.`type` = 1 AND `tblDocumentRevisors`.`required` IN (".implode(',', $groups).") ";
|
||||
$queryStr .= ") ";
|
||||
}
|
||||
$queryStr .= "AND `tblDocumentRevisionLog`.`status` = 0 ";
|
||||
$queryStr .= "AND `tblDocumentStatusLog`.`status` IN (".S_IN_REVISION.") ";
|
||||
break; /* }}} */
|
||||
case 'NeedsCorrectionOwner':
|
||||
case 'NeedsCorrectionOwner': // Documents that need to be corrected {{{
|
||||
$queryStr .=
|
||||
"LEFT JOIN `tblDocuments` ON `tblDocuments`.`id` = `ttcontentid`.`document` ";
|
||||
$queryStr .= "WHERE `tblDocuments`.`owner` = '".$user->getID()."' ".
|
||||
"AND `tblDocumentStatusLog`.`status` IN (".S_NEEDS_CORRECTION.") ";
|
||||
break; /* }}} */
|
||||
case 'WorkflowByMe':
|
||||
// Get document list for the current user.
|
||||
$workflowStatus = $user->getWorkflowStatus();
|
||||
case 'WorkflowByMe': // Documents which need my workflow action {{{
|
||||
|
||||
// Create a comma separated list of all the documentIDs whose information is
|
||||
// required.
|
||||
$dList = array();
|
||||
foreach ($workflowStatus["u"] as $st) {
|
||||
if (!in_array($st["document"], $dList)) {
|
||||
$dList[] = $st["document"];
|
||||
}
|
||||
}
|
||||
foreach ($workflowStatus["g"] as $st) {
|
||||
if (!in_array($st["document"], $dList)) {
|
||||
$dList[] = $st["document"];
|
||||
}
|
||||
}
|
||||
$docCSV = "";
|
||||
foreach ($dList as $d) {
|
||||
$docCSV .= (strlen($docCSV)==0 ? "" : ", ")."'".$d."'";
|
||||
}
|
||||
$queryStr .=
|
||||
"LEFT JOIN `tblWorkflowDocumentContent` on `ttcontentid`.`document`=`tblWorkflowDocumentContent`.`document` AND `ttcontentid`.`maxVersion`=`tblWorkflowDocumentContent`.`version` ".
|
||||
"LEFT JOIN `tblWorkflowTransitions` on `tblWorkflowDocumentContent`.`workflow`=`tblWorkflowTransitions`.`workflow` AND `tblWorkflowDocumentContent`.`state`=`tblWorkflowTransitions`.`state` ".
|
||||
"LEFT JOIN `tblWorkflowTransitionUsers` on `tblWorkflowTransitionUsers`.`transition` = `tblWorkflowTransitions`.`id` ".
|
||||
"LEFT JOIN `tblWorkflowTransitionGroups` on `tblWorkflowTransitionGroups`.`transition` = `tblWorkflowTransitions`.`id` ";
|
||||
|
||||
if ($dList) {
|
||||
$queryStr .=
|
||||
"WHERE `ttcontentid`.`document` IN (" . implode(',', $dList) . ")";
|
||||
} else {
|
||||
$queryStr = '';
|
||||
if($user) {
|
||||
$queryStr .= "WHERE (`tblWorkflowTransitionUsers`.`userid` = ".$user->getID()." ";
|
||||
if($groups)
|
||||
$queryStr .= "OR `tblWorkflowTransitionGroups`.`groupid` IN (".implode(',', $groups).")";
|
||||
$queryStr .= ") ";
|
||||
}
|
||||
break;
|
||||
$queryStr .= "AND `tblDocumentStatusLog`.`status` = ".S_IN_WORKFLOW." ";
|
||||
break; // }}}
|
||||
}
|
||||
if($queryStr) {
|
||||
$resArr = $this->db->getResultArray($selectStr.$queryStr);
|
||||
$resArr = $this->db->getResultArray('SELECT '.$selectStr.$queryStr);
|
||||
if (is_bool($resArr) && !$resArr) {
|
||||
return false;
|
||||
}
|
||||
|
|
@ -1064,8 +1057,8 @@ class SeedDMS_Core_DMS {
|
|||
* 'AppRevOwner', 'ReceiptByMe', 'ReviseByMe', 'LockedByMe', 'MyDocs'
|
||||
* @param SeedDMS_Core_User $param1 user
|
||||
* @param bool $param2 set to true
|
||||
* if 'AppRevByMe', 'ReviseByMe', 'ReceiptByMe' shall return even documents
|
||||
* І have already taken care of.
|
||||
* if 'ReviewByMe', 'ApproveByMe', 'AppRevByMe', 'ReviseByMe', 'ReceiptByMe'
|
||||
* shall return even documents І have already taken care of.
|
||||
* @param string $param3 sort list by this field
|
||||
* @param string $param4 order direction
|
||||
* @return array|bool
|
||||
|
|
@ -1103,7 +1096,7 @@ class SeedDMS_Core_DMS {
|
|||
* It doesn't need the where clause anymore. Hence the statement could be
|
||||
* extended with further left joins.
|
||||
*/
|
||||
$selectStr = "SELECT `tblDocuments`.*, `tblDocumentLocks`.`userID` as `lockUser`, ".
|
||||
$selectStr = "`tblDocuments`.*, `tblDocumentLocks`.`userID` as `lockUser`, ".
|
||||
"`tblDocumentContent`.`version`, `tblDocumentStatus`.*, `tblDocumentStatusLog`.`status`, ".
|
||||
"`tblDocumentStatusLog`.`comment` AS `statusComment`, `tblDocumentStatusLog`.`date` as `statusDate`, ".
|
||||
"`tblDocumentStatusLog`.`userID`, `oTbl`.`fullName` AS `ownerName`, `sTbl`.`fullName` AS `statusName` ";
|
||||
|
|
@ -1178,9 +1171,11 @@ class SeedDMS_Core_DMS {
|
|||
$orderdir = 'ASC';
|
||||
|
||||
$groups = array();
|
||||
$tmp = $user->getGroups();
|
||||
foreach($tmp as $group)
|
||||
$groups[] = $group->getID();
|
||||
if($user) {
|
||||
$tmp = $user->getGroups();
|
||||
foreach($tmp as $group)
|
||||
$groups[] = $group->getID();
|
||||
}
|
||||
|
||||
$selectStr .= ", `tblDocumentReviewLog`.`date` as `duedate` ";
|
||||
$queryStr .=
|
||||
|
|
@ -1189,10 +1184,12 @@ class SeedDMS_Core_DMS {
|
|||
"LEFT JOIN `tblDocumentReviewLog` ON `tblDocumentReviewLog`.`reviewLogID`=`ttreviewid`.`maxLogID` ";
|
||||
|
||||
if(1) {
|
||||
$queryStr .= "WHERE (`tblDocumentReviewers`.`type` = 0 AND `tblDocumentReviewers`.`required` = ".$user->getID()." ";
|
||||
if($groups)
|
||||
$queryStr .= "OR `tblDocumentReviewers`.`type` = 1 AND `tblDocumentReviewers`.`required` IN (".implode(',', $groups).") ";
|
||||
$queryStr .= ") ";
|
||||
if($user) {
|
||||
$queryStr .= "WHERE (`tblDocumentReviewers`.`type` = 0 AND `tblDocumentReviewers`.`required` = ".$user->getID()." ";
|
||||
if($groups)
|
||||
$queryStr .= "OR `tblDocumentReviewers`.`type` = 1 AND `tblDocumentReviewers`.`required` IN (".implode(',', $groups).") ";
|
||||
$queryStr .= ") ";
|
||||
}
|
||||
$queryStr .= "AND `tblDocumentStatusLog`.`status` IN (".S_DRAFT_REV.", ".S_EXPIRED.") ";
|
||||
if(!$param2)
|
||||
$queryStr .= " AND `tblDocumentReviewLog`.`status` = 0 ";
|
||||
|
|
@ -1253,9 +1250,11 @@ class SeedDMS_Core_DMS {
|
|||
$orderdir = 'ASC';
|
||||
|
||||
$groups = array();
|
||||
$tmp = $user->getGroups();
|
||||
foreach($tmp as $group)
|
||||
$groups[] = $group->getID();
|
||||
if($user) {
|
||||
$tmp = $user->getGroups();
|
||||
foreach($tmp as $group)
|
||||
$groups[] = $group->getID();
|
||||
}
|
||||
|
||||
$selectStr .= ", `tblDocumentApproveLog`.`date` as `duedate` ";
|
||||
$queryStr .=
|
||||
|
|
@ -1264,10 +1263,12 @@ class SeedDMS_Core_DMS {
|
|||
"LEFT JOIN `tblDocumentApproveLog` ON `tblDocumentApproveLog`.`approveLogID`=`ttapproveid`.`maxLogID` ";
|
||||
|
||||
if(1) {
|
||||
if($user) {
|
||||
$queryStr .= "WHERE (`tblDocumentApprovers`.`type` = 0 AND `tblDocumentApprovers`.`required` = ".$user->getID()." ";
|
||||
if($groups)
|
||||
$queryStr .= "OR `tblDocumentApprovers`.`type` = 1 AND `tblDocumentApprovers`.`required` IN (".implode(',', $groups).")";
|
||||
$queryStr .= ") ";
|
||||
}
|
||||
$queryStr .= "AND `tblDocumentStatusLog`.`status` IN (".S_DRAFT_APP.", ".S_EXPIRED.") ";
|
||||
if(!$param2)
|
||||
$queryStr .= " AND `tblDocumentApproveLog`.`status` = 0 ";
|
||||
|
|
@ -1485,9 +1486,40 @@ class SeedDMS_Core_DMS {
|
|||
$queryStr .= ", `tblDocumentContent`.`revisiondate` ASC";
|
||||
break; // }}}
|
||||
case 'WorkflowByMe': // Documents I to trigger in Worklflow {{{
|
||||
$queryStr .= "WHERE 1=1 ";
|
||||
|
||||
$user = $param1;
|
||||
$orderby = $param3;
|
||||
if($param4 == 'desc')
|
||||
$orderdir = 'DESC';
|
||||
else
|
||||
$orderdir = 'ASC';
|
||||
|
||||
if(1) {
|
||||
$groups = array();
|
||||
if($user) {
|
||||
$tmp = $user->getGroups();
|
||||
foreach($tmp as $group)
|
||||
$groups[] = $group->getID();
|
||||
}
|
||||
$selectStr = 'distinct '.$selectStr;
|
||||
$queryStr .=
|
||||
"LEFT JOIN `tblWorkflowDocumentContent` on `ttcontentid`.`document`=`tblWorkflowDocumentContent`.`document` AND `ttcontentid`.`maxVersion`=`tblWorkflowDocumentContent`.`version` ".
|
||||
"LEFT JOIN `tblWorkflowTransitions` on `tblWorkflowDocumentContent`.`workflow`=`tblWorkflowTransitions`.`workflow` AND `tblWorkflowDocumentContent`.`state`=`tblWorkflowTransitions`.`state` ".
|
||||
"LEFT JOIN `tblWorkflowTransitionUsers` on `tblWorkflowTransitionUsers`.`transition` = `tblWorkflowTransitions`.`id` ".
|
||||
"LEFT JOIN `tblWorkflowTransitionGroups` on `tblWorkflowTransitionGroups`.`transition` = `tblWorkflowTransitions`.`id` ";
|
||||
|
||||
if($user) {
|
||||
$queryStr .= "WHERE (`tblWorkflowTransitionUsers`.`userid` = ".$user->getID()." ";
|
||||
if($groups)
|
||||
$queryStr .= "OR `tblWorkflowTransitionGroups`.`groupid` IN (".implode(',', $groups).")";
|
||||
$queryStr .= ") ";
|
||||
}
|
||||
$queryStr .= "AND `tblDocumentStatusLog`.`status` = ".S_IN_WORKFLOW." ";
|
||||
// echo 'SELECT '.$selectStr." ".$queryStr;
|
||||
if ($orderby=='e') $queryStr .= "ORDER BY `expires`";
|
||||
else if ($orderby=='u') $queryStr .= "ORDER BY `statusDate`";
|
||||
else $queryStr .= "ORDER BY `name`";
|
||||
} else {
|
||||
$queryStr .= "WHERE 1=1 ";
|
||||
// Get document list for the current user.
|
||||
$workflowStatus = $user->getWorkflowStatus();
|
||||
|
||||
|
|
@ -1517,6 +1549,7 @@ class SeedDMS_Core_DMS {
|
|||
} else {
|
||||
$queryStr = '';
|
||||
}
|
||||
}
|
||||
break; // }}}
|
||||
case 'AppRevOwner': // Documents waiting for review/approval/revision I'm owning {{{
|
||||
$queryStr .= "WHERE 1=1 ";
|
||||
|
|
@ -1806,7 +1839,7 @@ class SeedDMS_Core_DMS {
|
|||
}
|
||||
|
||||
if($queryStr) {
|
||||
$resArr = $this->db->getResultArray($selectStr.$queryStr);
|
||||
$resArr = $this->db->getResultArray('SELECT '.$selectStr.$queryStr);
|
||||
if (is_bool($resArr) && !$resArr) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -879,10 +879,13 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */
|
|||
* Check if latest content of the document has a scheduled
|
||||
* revision workflow.
|
||||
* The method will update the document status log database table
|
||||
* if needed.
|
||||
* if needed and set the revisiondate of the content to $next.
|
||||
*
|
||||
* FIXME: This method does not check if there are any revisors left. Even
|
||||
* if all revisors have been removed, it will still start the revision workflow!
|
||||
* NOTE: This seems not the case anymore. The status of each revision is
|
||||
* checked. Only if at least one status is S_LOG_SLEEPING the revision will be
|
||||
* started. This wouldn't be the case if all revisors had been removed.
|
||||
*
|
||||
* @param object $user user requesting the possible automatic change
|
||||
* @param string $next next date for review
|
||||
|
|
@ -3321,7 +3324,10 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */
|
|||
else $this->setStatus($initialstatus,$msg,$user);
|
||||
} elseif($st["status"]==S_IN_REVISION) {
|
||||
if($needsCorrection) $this->setStatus(S_NEEDS_CORRECTION,$msg,$user);
|
||||
else $this->setStatus(S_RELEASED,$msg,$user);
|
||||
else {
|
||||
$this->finishRevision($user, S_RELEASED, 'Finished revision workflow', $msg);
|
||||
// $this->setStatus(S_RELEASED,$msg,$user);
|
||||
}
|
||||
} elseif($st["status"]==S_EXPIRED) {
|
||||
$this->setStatus(S_RELEASED,$msg,$user);
|
||||
}
|
||||
|
|
@ -3670,21 +3676,31 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */
|
|||
$ddate = $db->qstr($date);
|
||||
else
|
||||
$ddate = $db->getCurrentDatetime();
|
||||
$db->startTransaction();
|
||||
$queryStr = "INSERT INTO `tblDocumentStatusLog` (`statusID`, `status`, `comment`, `date`, `userID`) ".
|
||||
"VALUES ('". $this->_status["statusID"] ."', '". (int) $status ."', ".$db->qstr($comment).", ".$ddate.", '". $updateUser->getID() ."')";
|
||||
$res = $db->getResult($queryStr);
|
||||
if (is_bool($res) && !$res)
|
||||
if (is_bool($res) && !$res) {
|
||||
$db->rollbackTransaction();
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Check if 'onSetStatus' callback is set */
|
||||
if(isset($this->_dms->callbacks['onSetStatus'])) {
|
||||
foreach($this->_dms->callbacks['onSetStatus'] as $callback) {
|
||||
$ret = call_user_func($callback[0], $callback[1], $this, $this->_status["status"], $status);
|
||||
if(is_bool($ret))
|
||||
$ret = call_user_func($callback[0], $callback[1], $this, $updateUser, $this->_status["status"], $status);
|
||||
if(is_bool($ret)) {
|
||||
unset($this->_status);
|
||||
if($ret)
|
||||
$db->commitTransaction();
|
||||
else
|
||||
$db->rollbackTransaction();
|
||||
return $ret;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$db->commitTransaction();
|
||||
unset($this->_status);
|
||||
return true;
|
||||
} /* }}} */
|
||||
|
|
@ -5495,7 +5511,10 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */
|
|||
if ($indstatus["status"] != S_LOG_WAITING && $indstatus["status"] != S_LOG_SLEEPING) {
|
||||
// User has already submitted a revision or has already been deleted;
|
||||
// return an error.
|
||||
return -3;
|
||||
if($indstatus["status"] == S_LOG_USER_REMOVED)
|
||||
return -3;
|
||||
else
|
||||
return -4;
|
||||
}
|
||||
|
||||
$queryStr = "INSERT INTO `tblDocumentRevisionLog` (`revisionID`, `status`, `comment`, `date`, `userID`) ".
|
||||
|
|
|
|||
|
|
@ -12,11 +12,11 @@
|
|||
<email>uwe@steinmann.cx</email>
|
||||
<active>yes</active>
|
||||
</lead>
|
||||
<date>2020-04-14</date>
|
||||
<date>2020-05-14</date>
|
||||
<time>09:43:12</time>
|
||||
<version>
|
||||
<release>6.0.9</release>
|
||||
<api>6.0.9</api>
|
||||
<release>6.0.10</release>
|
||||
<api>6.0.10</api>
|
||||
</version>
|
||||
<stability>
|
||||
<release>stable</release>
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
</stability>
|
||||
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
|
||||
<notes>
|
||||
- no changes, just keep same version as seeddms application
|
||||
SeedDMS_Core_DocumentContent::delRevisor() returns -4 if user has already made a revision
|
||||
</notes>
|
||||
<contents>
|
||||
<dir baseinstalldir="SeedDMS" name="/">
|
||||
|
|
@ -1748,7 +1748,7 @@ add method SeedDMS_Core_DatabaseAccess::setLogFp()
|
|||
</notes>
|
||||
</release>
|
||||
<release>
|
||||
<date>2020-04-02</date>
|
||||
<date>2020-04-14</date>
|
||||
<time>09:43:12</time>
|
||||
<version>
|
||||
<release>5.1.16</release>
|
||||
|
|
@ -1797,6 +1797,22 @@ log entry first
|
|||
- add new method SeedDMS_Core_DMS::getDocumentsExpired()
|
||||
</notes>
|
||||
</release>
|
||||
<release>
|
||||
<date>2020-05-14</date>
|
||||
<time>09:43:12</time>
|
||||
<version>
|
||||
<release>5.1.17</release>
|
||||
<api>5.1.17</api>
|
||||
</version>
|
||||
<stability>
|
||||
<release>stable</release>
|
||||
<api>stable</api>
|
||||
</stability>
|
||||
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
|
||||
<notes>
|
||||
- add new callback onSetStatus
|
||||
</notes>
|
||||
</release>
|
||||
<release>
|
||||
<date>2017-05-28</date>
|
||||
<time>06:34:50</time>
|
||||
|
|
@ -1949,6 +1965,22 @@ remove a user from all its process can also be used to set a new user
|
|||
</stability>
|
||||
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
|
||||
<notes>
|
||||
- no changes, just keep same version as seeddms application
|
||||
</notes>
|
||||
</release>
|
||||
<release>
|
||||
<date>2020-05-14</date>
|
||||
<time>09:43:12</time>
|
||||
<version>
|
||||
<release>6.0.9</release>
|
||||
<api>6.0.9</api>
|
||||
</version>
|
||||
<stability>
|
||||
<release>stable</release>
|
||||
<api>stable</api>
|
||||
</stability>
|
||||
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
|
||||
<notes>
|
||||
- no changes, just keep same version as seeddms application
|
||||
</notes>
|
||||
</release>
|
||||
|
|
|
|||
|
|
@ -186,7 +186,7 @@ class SeedDMS_ExtExample_Task extends SeedDMS_SchedulerTaskBase {
|
|||
* @param $dms dms
|
||||
* @return boolean true if task was executed succesfully, otherwise false
|
||||
*/
|
||||
public function execute($task, $dms) {
|
||||
public function execute($task, $dms, $user) {
|
||||
$taskparams = $task->getParameter();
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -583,7 +583,7 @@ class SeedDMS_Extension_Mgr {
|
|||
public function updateExtensionList($version='', $force=false) { /* {{{ */
|
||||
if($this->reposurl) {
|
||||
if(!file_exists($this->cachedir."/".self::repos_list_file) || $force) {
|
||||
if($file = @file_get_contents($this->reposurl.($version ? '?seeddms_version='.$version : ''), false, $this->getStreamContext())) {
|
||||
if(false !== ($file = @file_get_contents($this->reposurl.($version ? '?seeddms_version='.$version : ''), false, $this->getStreamContext()))) {
|
||||
if(is_array($http_response_header)) {
|
||||
$parts=explode(' ',$http_response_header[0]);
|
||||
if(count($parts)>1) //HTTP/1.0 <code> <text>
|
||||
|
|
@ -592,6 +592,10 @@ class SeedDMS_Extension_Mgr {
|
|||
return false;
|
||||
}
|
||||
}
|
||||
if(!$file) {
|
||||
$this->errmsgs[] = 'Extension list is empty';
|
||||
return false;
|
||||
}
|
||||
file_put_contents($this->cachedir."/".self::repos_list_file, $file);
|
||||
} else {
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -232,14 +232,14 @@ class SeedDMS_SchedulerTask {
|
|||
if (!$res)
|
||||
return false;
|
||||
|
||||
$this->_disabled = $newDisable;
|
||||
$this->_disabled = $newDisabled;
|
||||
return true;
|
||||
} /* }}} */
|
||||
|
||||
public function setParameter($newParams) { /* {{{ */
|
||||
$db = $this->db;
|
||||
|
||||
$queryStr = "UPDATE `tblSchedulerTask` SET `parameter` =".json_encode($newParams)." WHERE `id` = " . $this->_id;
|
||||
$queryStr = "UPDATE `tblSchedulerTask` SET `params` =".$db->qstr(json_encode($newParams))." WHERE `id` = " . $this->_id;
|
||||
$res = $db->getResult($queryStr);
|
||||
if (!$res)
|
||||
return false;
|
||||
|
|
@ -248,7 +248,9 @@ class SeedDMS_SchedulerTask {
|
|||
return true;
|
||||
} /* }}} */
|
||||
|
||||
public function getParameter() {
|
||||
public function getParameter($name = '') {
|
||||
if($name)
|
||||
return isset($this->_params[$name]) ? $this->_params[$name] : null;
|
||||
return $this->_params;
|
||||
}
|
||||
|
||||
|
|
@ -275,4 +277,21 @@ class SeedDMS_SchedulerTask {
|
|||
$this->_lastrun = $lastrun;
|
||||
$this->_nextrun = $nextrun;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete task
|
||||
*
|
||||
* @return boolean true on success or false in case of an error
|
||||
*/
|
||||
function remove() { /* {{{ */
|
||||
$db = $this->db;
|
||||
|
||||
$queryStr = "DELETE FROM `tblSchedulerTask` WHERE `id` = " . $this->_id;
|
||||
if (!$db->getResult($queryStr)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
} /* }}} */
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
* @package SeedDMS
|
||||
*/
|
||||
class SeedDMS_SchedulerTaskBase {
|
||||
public function execute($task, $dms) {
|
||||
public function execute($task, $dms, $user) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -294,7 +294,7 @@ class SeedDMS_Session {
|
|||
function addToClipboard($object) { /* {{{ */
|
||||
/* id is only set if load() was called before */
|
||||
if($this->id) {
|
||||
$dms = $object->_dms;
|
||||
$dms = $object->getDMS();
|
||||
if($object->isType('document')) {
|
||||
if(!in_array($object->getID(), $this->data['clipboard']['docs']))
|
||||
array_push($this->data['clipboard']['docs'], $object->getID());
|
||||
|
|
@ -317,7 +317,7 @@ class SeedDMS_Session {
|
|||
function removeFromClipboard($object) { /* {{{ */
|
||||
/* id is only set if load() was called before */
|
||||
if($this->id) {
|
||||
$dms = $object->_dms;
|
||||
$dms = $object->getDMS();
|
||||
if($object->isType('document')) {
|
||||
$key = array_search($object->getID(), $this->data['clipboard']['docs']);
|
||||
if($key !== false)
|
||||
|
|
|
|||
|
|
@ -137,8 +137,8 @@ class UI extends UI_Default {
|
|||
$view->setParam('enablesessionlist', $settings->_enableSessionList);
|
||||
$view->setParam('workflowmode', $settings->_workflowMode);
|
||||
$view->setParam('checkoutdir', $settings->_checkOutDir);
|
||||
$view->setParam('partitionsize', (int) $settings->_partitionSize);
|
||||
$view->setParam('maxuploadsize', (int) $settings->_maxUploadSize);
|
||||
$view->setParam('partitionsize', SeedDMS_Core_File::parse_filesize( $settings->_partitionSize));
|
||||
$view->setParam('maxuploadsize', SeedDMS_Core_File::parse_filesize($settings->_maxUploadSize));
|
||||
$view->setParam('showmissingtranslations', $settings->_showMissingTranslations);
|
||||
$view->setParam('defaultsearchmethod', $settings->_defaultSearchMethod);
|
||||
$view->setParam('cachedir', $settings->_cacheDir);
|
||||
|
|
|
|||
|
|
@ -69,6 +69,16 @@ class SeedDMS_View_Common {
|
|||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the view has a parameter with the given name
|
||||
*
|
||||
* @param string $name name of parameter
|
||||
* @return boolean true if parameter exists otherwise false
|
||||
*/
|
||||
function hasParam($name) {
|
||||
return isset($this->params[$name]) ? true : false;
|
||||
}
|
||||
|
||||
public function unsetParam($name) {
|
||||
if(isset($this->params[$name]))
|
||||
unset($this->params[$name]);
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (2765), dgrutsch (22)
|
||||
// Translators: Admin (2767), dgrutsch (22)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '2-Faktor Authentifizierung',
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (311)
|
||||
// Translators: Admin (322)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '',
|
||||
|
|
@ -347,7 +347,7 @@ $text = array(
|
|||
'document_is_checked_out' => '',
|
||||
'document_is_not_locked' => '',
|
||||
'document_link_by' => '',
|
||||
'document_link_public' => '',
|
||||
'document_link_public' => 'Δημόσιο',
|
||||
'document_moved_email' => 'Το έγγραφα μετακινήθηκε',
|
||||
'document_moved_email_body' => '',
|
||||
'document_moved_email_subject' => '',
|
||||
|
|
@ -364,7 +364,7 @@ $text = array(
|
|||
'document_updated_email' => '',
|
||||
'document_updated_email_body' => '',
|
||||
'document_updated_email_subject' => '',
|
||||
'does_not_expire' => '',
|
||||
'does_not_expire' => 'Δεν λήγει',
|
||||
'does_not_inherit_access_msg' => '',
|
||||
'download' => 'Λήψη',
|
||||
'download_extension' => '',
|
||||
|
|
@ -467,7 +467,7 @@ $text = array(
|
|||
'expired_at_date' => '',
|
||||
'expired_documents' => '',
|
||||
'expires' => 'Λήγει',
|
||||
'expire_by_date' => '',
|
||||
'expire_by_date' => 'Λήγει στην ημερομηνία',
|
||||
'expire_in_1d' => '',
|
||||
'expire_in_1h' => '',
|
||||
'expire_in_1m' => 'Λήγει σε 1 μήνα',
|
||||
|
|
@ -660,7 +660,7 @@ $text = array(
|
|||
'list_contains_no_access_docs' => '',
|
||||
'list_hooks' => '',
|
||||
'list_tasks' => '',
|
||||
'local_file' => '',
|
||||
'local_file' => 'Τοπικό αρχείο',
|
||||
'locked_by' => '',
|
||||
'lock_document' => 'Κλείδωμα',
|
||||
'lock_message' => '',
|
||||
|
|
@ -689,7 +689,7 @@ $text = array(
|
|||
'mandatory_reviewers' => '',
|
||||
'mandatory_reviewer_no_access' => '',
|
||||
'march' => 'Μάρτιος',
|
||||
'max_upload_size' => '',
|
||||
'max_upload_size' => 'Μέγιστο μέγεθος μεταφόρτωσης',
|
||||
'may' => 'Μάϊος',
|
||||
'menu_dropfolder' => '',
|
||||
'menu_upload_from_dropfolder' => '',
|
||||
|
|
@ -715,7 +715,7 @@ $text = array(
|
|||
'my_documents' => 'Τα έγγραφα μου',
|
||||
'my_transmittals' => '',
|
||||
'name' => 'Όνομα',
|
||||
'nb_NO' => '',
|
||||
'nb_NO' => 'Νορβηγικά',
|
||||
'needs_correction' => '',
|
||||
'needs_workflow_action' => '',
|
||||
'network_drive' => '',
|
||||
|
|
@ -833,7 +833,7 @@ URL: [url]',
|
|||
'personal_default_keywords' => '',
|
||||
'pl_PL' => 'Πολωνικά',
|
||||
'possible_substitutes' => '',
|
||||
'preset_expires' => '',
|
||||
'preset_expires' => 'Λήξη προκαθορισμένης τιμής',
|
||||
'preview' => 'προεπισκόπηση',
|
||||
'preview_converters' => '',
|
||||
'preview_images' => '',
|
||||
|
|
@ -1014,7 +1014,7 @@ URL: [url]',
|
|||
'select_attrdefgrp_show' => '',
|
||||
'select_attribute_value' => '',
|
||||
'select_category' => 'Επιλογή κατηγορίας',
|
||||
'select_group' => '',
|
||||
'select_group' => 'Επιλογή ομάδας',
|
||||
'select_groups' => '',
|
||||
'select_grp_approvers' => '',
|
||||
'select_grp_ind_approvers' => '',
|
||||
|
|
@ -1420,7 +1420,7 @@ URL: [url]',
|
|||
'settings_workflowMode_valtraditional_only_approval' => '',
|
||||
'settings_zendframework' => '',
|
||||
'set_expiry' => '',
|
||||
'set_owner' => '',
|
||||
'set_owner' => 'Θέσε Ιδιοκτήτη',
|
||||
'set_owner_error' => '',
|
||||
'set_password' => '',
|
||||
'set_workflow' => '',
|
||||
|
|
@ -1672,9 +1672,9 @@ URL: [url]',
|
|||
'user_login' => '',
|
||||
'user_management' => 'Διαχείριση χρηστών',
|
||||
'user_name' => 'Πλήρες Όνομα',
|
||||
'use_comment_of_document' => '',
|
||||
'use_comment_of_document' => 'Χρήση σχολίου εγγράφου',
|
||||
'use_default_categories' => '',
|
||||
'use_default_keywords' => '',
|
||||
'use_default_keywords' => 'Χρήση προκαθορισμένων λέξεων κλειδιών',
|
||||
'valid_till' => '',
|
||||
'version' => 'Έκδοση',
|
||||
'versioning_file_creation' => '',
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (1871), archonwang (3), dgrutsch (9), netixw (14)
|
||||
// Translators: Admin (1873), archonwang (3), dgrutsch (9), netixw (14)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '2-factor authentication',
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: acabello (20), Admin (1151), angel (123), francisco (2), jaimem (14)
|
||||
// Translators: acabello (20), Admin (1171), angel (123), francisco (2), jaimem (14)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '',
|
||||
|
|
@ -68,11 +68,11 @@ URL: [url]',
|
|||
'add_receipt' => '',
|
||||
'add_review' => 'Enviar revisión',
|
||||
'add_revision' => '',
|
||||
'add_role' => '',
|
||||
'add_role' => 'Agregar Usuario',
|
||||
'add_subfolder' => 'Añadir subcarpeta',
|
||||
'add_task' => '',
|
||||
'add_to_clipboard' => 'Añadir al portapapeles',
|
||||
'add_to_transmittal' => '',
|
||||
'add_to_transmittal' => 'Añadir a transmisión',
|
||||
'add_transmittal' => '',
|
||||
'add_user' => 'Añadir nuevo usuario',
|
||||
'add_user_to_group' => 'Añadir usuario a grupo',
|
||||
|
|
@ -136,7 +136,7 @@ URL: [url]',
|
|||
'archive_creation_warning' => 'Con esta operación usted puede crear un archivo que contenga los ficheros de las carpetas del DMS completo. Después de crearlo el archivo se guardará en la carpeta de datos de su servidor.<br>CUIDADO: un fichero creado como legible por humanos no podrá usarse como copia de seguridad del servidor.',
|
||||
'ar_EG' => 'Arabe',
|
||||
'assign_approvers' => 'Asignar aprobadores',
|
||||
'assign_recipients' => '',
|
||||
'assign_recipients' => 'Asignar Receptores',
|
||||
'assign_reviewers' => 'Asignar revisores',
|
||||
'assign_user_property_to' => 'Asignar propiedades de usuario a',
|
||||
'assumed_released' => 'Supuestamente publicado',
|
||||
|
|
@ -231,8 +231,8 @@ URL: [url]',
|
|||
'change_assignments' => 'cambiar asignaciones',
|
||||
'change_password' => 'cambiar contraseña',
|
||||
'change_password_message' => 'Su contraseña se ha modificado.',
|
||||
'change_recipients' => '',
|
||||
'change_revisors' => '',
|
||||
'change_recipients' => 'Definir destinatarios',
|
||||
'change_revisors' => 'Definir revisores',
|
||||
'change_status' => 'cambiar estado',
|
||||
'charts' => 'Gráficos',
|
||||
'chart_docsaccumulated_title' => 'Cantidad de documentos',
|
||||
|
|
@ -254,7 +254,7 @@ URL: [url]',
|
|||
'choose_attrdefgroup' => '',
|
||||
'choose_category' => 'Seleccione categoría',
|
||||
'choose_group' => 'Seleccione grupo',
|
||||
'choose_role' => '',
|
||||
'choose_role' => 'Seleccione Usuario',
|
||||
'choose_target_category' => 'Seleccione categoría',
|
||||
'choose_target_document' => 'Seleccione documento',
|
||||
'choose_target_file' => 'Seleccione fichero destino',
|
||||
|
|
@ -442,7 +442,7 @@ URL: [url]',
|
|||
'do_object_setfilesize' => 'Asignar tamaño de fichero',
|
||||
'do_object_setfiletype' => '',
|
||||
'do_object_unlink' => 'Borrar versión del documento',
|
||||
'draft' => '',
|
||||
'draft' => 'Borrador',
|
||||
'draft_pending_approval' => 'Borador - pendiente de aprobación',
|
||||
'draft_pending_review' => 'Borrador - pendiente de revisión',
|
||||
'drag_icon_here' => 'Arrastre carpeta o documento aquí!',
|
||||
|
|
@ -656,7 +656,7 @@ URL: [url]',
|
|||
'index_pending' => '',
|
||||
'index_waiting' => 'Esperando',
|
||||
'individuals' => 'Individuales',
|
||||
'individuals_in_groups' => '',
|
||||
'individuals_in_groups' => 'Miembros del grupo',
|
||||
'info_recipients_tab_not_released' => '',
|
||||
'inherited' => 'heredado',
|
||||
'inherits_access_copy_msg' => 'Copiar lista de acceso heredado',
|
||||
|
|
@ -686,7 +686,7 @@ URL: [url]',
|
|||
'invalid_user_id' => 'ID de usuario no válido',
|
||||
'invalid_version' => 'Versión de documento no válida',
|
||||
'in_folder' => 'En el directorio',
|
||||
'in_revision' => '',
|
||||
'in_revision' => 'En revisión',
|
||||
'in_workflow' => 'En flujo de trabajo',
|
||||
'is_disabled' => 'Deshabilitar cuenta',
|
||||
'is_hidden' => 'Ocultar de la lista de usuarios',
|
||||
|
|
@ -794,7 +794,7 @@ URL: [url]',
|
|||
'my_transmittals' => 'Mi transmision',
|
||||
'name' => 'Nombre',
|
||||
'nb_NO' => 'Noruego (Bokmål)',
|
||||
'needs_correction' => '',
|
||||
'needs_correction' => 'Necesita corrección',
|
||||
'needs_workflow_action' => 'Este documento requiere su atención. Por favor chequee la pestaña de flujo de trabajo.',
|
||||
'network_drive' => '',
|
||||
'never' => 'nunca',
|
||||
|
|
@ -855,7 +855,7 @@ URL: [url]',
|
|||
'no_action' => 'No es necesaria ninguna acción',
|
||||
'no_approval_needed' => 'No hay aprobaciones pendientes.',
|
||||
'no_attached_files' => 'No hay ficheros adjuntos',
|
||||
'no_backup_dir' => '',
|
||||
'no_backup_dir' => 'El directorio de backup no está definido',
|
||||
'no_current_version' => 'Está utilizando una versión desactualizada de este producto. La última versión disponible es [latestversion].',
|
||||
'no_default_keywords' => 'No hay palabras clave disponibles',
|
||||
'no_docs_checked_out' => '',
|
||||
|
|
@ -971,7 +971,7 @@ Si continua teniendo problemas de acceso, por favor contacte con el administrado
|
|||
'receipt_summary' => 'Resumen de recepción',
|
||||
'receipt_update_failed' => '',
|
||||
'recent_uploads' => 'Subidas recientes',
|
||||
'reception' => '',
|
||||
'reception' => 'Recepción',
|
||||
'reception_acknowleged' => '',
|
||||
'reception_noaction' => '',
|
||||
'reception_rejected' => '',
|
||||
|
|
@ -1052,7 +1052,7 @@ URL: [url]',
|
|||
'review_submit_email_subject' => '[sitename]: [name] - Revisión enviada',
|
||||
'review_summary' => 'Resumen de revisión',
|
||||
'review_update_failed' => 'Error actualizando el estado de la revisión. La actualización ha fallado.',
|
||||
'revise_document' => '',
|
||||
'revise_document' => 'Revisar documento',
|
||||
'revise_document_on' => '',
|
||||
'revisions_accepted' => '',
|
||||
'revisions_accepted_latest' => '',
|
||||
|
|
@ -1065,14 +1065,14 @@ URL: [url]',
|
|||
'revisions_without_group' => '',
|
||||
'revisions_without_user' => '',
|
||||
'revision_date' => '',
|
||||
'revision_log' => '',
|
||||
'revision_log' => 'Histórico de revisiones',
|
||||
'revision_request_email_body' => '',
|
||||
'revision_request_email_subject' => '',
|
||||
'revision_status' => '',
|
||||
'revision_submit_email_body' => '',
|
||||
'revision_submit_email_subject' => '',
|
||||
'revision_summary' => 'Resumen de revisión',
|
||||
'revisors' => '',
|
||||
'revisors' => 'Revisores',
|
||||
'revisor_already_assigned' => '',
|
||||
'revisor_already_removed' => '',
|
||||
'rewind_workflow' => 'Retroceso del flujo de trabajo',
|
||||
|
|
@ -1160,16 +1160,16 @@ URL: [url]',
|
|||
'select_grp_approvers' => 'Haga Click para seleccionar grupo de aprobadores',
|
||||
'select_grp_ind_approvers' => '',
|
||||
'select_grp_ind_notification' => '',
|
||||
'select_grp_ind_recipients' => '',
|
||||
'select_grp_ind_reviewers' => '',
|
||||
'select_grp_ind_recipients' => 'Seleccione grupo',
|
||||
'select_grp_ind_reviewers' => 'Dar click para seleccionar el grupo',
|
||||
'select_grp_ind_revisors' => '',
|
||||
'select_grp_notification' => 'Clic para seleccionar la notificación grupal',
|
||||
'select_grp_recipients' => '',
|
||||
'select_grp_recipients' => 'Dar click para selecionar el grupo',
|
||||
'select_grp_reviewers' => 'Haga Click para seleccionar grupo de revisores',
|
||||
'select_grp_revisors' => '',
|
||||
'select_ind_approvers' => 'Haga Click para seleccionar aprobador individual',
|
||||
'select_ind_notification' => 'Clic para seleccionar la notificación individual',
|
||||
'select_ind_recipients' => '',
|
||||
'select_ind_recipients' => 'Dar click para asignar los receptores',
|
||||
'select_ind_reviewers' => 'Haga Click para seleccionar revisor individual',
|
||||
'select_ind_revisors' => '',
|
||||
'select_one' => 'Seleccionar uno',
|
||||
|
|
@ -1660,7 +1660,7 @@ URL: [url]',
|
|||
'status_not_approved' => 'Sin aprobar',
|
||||
'status_not_receipted' => '',
|
||||
'status_not_reviewed' => 'Sin revisar',
|
||||
'status_not_revised' => '',
|
||||
'status_not_revised' => 'No revisado',
|
||||
'status_receipted' => '',
|
||||
'status_receipt_rejected' => '',
|
||||
'status_recipient_removed' => '',
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (1102), jeromerobert (50), lonnnew (9), Oudiceval (922)
|
||||
// Translators: Admin (1102), jeromerobert (50), lonnnew (9), Oudiceval (929)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => 'Authentification forte',
|
||||
|
|
@ -1666,7 +1666,7 @@ Nom : [username]
|
|||
'splash_error_add_to_transmittal' => 'Erreur lors de l’ajout du document à la transmission',
|
||||
'splash_error_rm_download_link' => 'Erreur lors de la suppression du lien de téléchargement',
|
||||
'splash_error_send_download_link' => 'Erreur lors de l’envoi du lien de téléchargement',
|
||||
'splash_extension_getlist' => 'Liste des extensions mises à jour depuis le dépôt',
|
||||
'splash_extension_getlist' => 'Liste des extensions du dépôt actualisée',
|
||||
'splash_extension_import' => 'Extension installée',
|
||||
'splash_extension_refresh' => 'Liste des extensions actualisée',
|
||||
'splash_extension_upload' => 'Extension installée',
|
||||
|
|
@ -1743,8 +1743,8 @@ Nom : [username]
|
|||
'submit_review' => 'Soumettre la vérification',
|
||||
'submit_revision' => 'Soumettre la révision',
|
||||
'submit_userinfo' => 'Soumettre info',
|
||||
'submit_webauthn_login' => '',
|
||||
'submit_webauthn_register' => '',
|
||||
'submit_webauthn_login' => 'Identification',
|
||||
'submit_webauthn_register' => 'Inscription',
|
||||
'subsribe_timelinefeed' => 'S’abonner au flux RSS',
|
||||
'substitute_to_user' => 'Basculer sur \'[username]\'',
|
||||
'substitute_user' => 'Utilisateur de substitution',
|
||||
|
|
@ -1904,10 +1904,10 @@ URL: [url]',
|
|||
'view' => 'Aperçu',
|
||||
'view_online' => 'Aperçu en ligne',
|
||||
'warning' => 'Avertissement',
|
||||
'webauthn_auth' => '',
|
||||
'webauthn_crossplatform_info' => '',
|
||||
'webauthn_info' => '',
|
||||
'webauth_crossplatform' => '',
|
||||
'webauthn_auth' => 'Authentification WebAuthn',
|
||||
'webauthn_crossplatform_info' => 'Choisissez « Oui » lorsque vous avez un périphérique amovible, comme une clé Yubico, que vous souhaitez utiliser pour vous connecter sur différents ordinateurs ; choisissez « Non » lorsque votre appareil est connecté à l\'ordinateur. Le choix affecte le ou les appareils proposés par le navigateur et / ou le système de sécurité informatique.',
|
||||
'webauthn_info' => 'WebAuthn est une authentification sans mot de passe utilisant la cryptographie à clé publique. Une paire de clés privée-publique (connue sous le nom de certificat) est créée pour un site Web. La clé privée est stockée en toute sécurité sur l’appareil de l’utilisateur ; une clé publique et un identifiant généré de manière aléatoire sont envoyés au serveur pour stockage. Le serveur peut ensuite utiliser cette clé publique pour prouver l’identité de l’utilisateur. La clé privée est généralement stockée sur un jeton matériel. Le jeton doit être enregistré avant de pouvoir être utilisé pour l’authentification.',
|
||||
'webauth_crossplatform' => 'Multiplateforme',
|
||||
'wednesday' => 'Mercredi',
|
||||
'wednesday_abbr' => 'Mer.',
|
||||
'weeks' => 'semaines',
|
||||
|
|
|
|||
|
|
@ -23,11 +23,11 @@
|
|||
|
||||
$text = array(
|
||||
'2_factor_auth' => 'Kétfaktoros azonosítás',
|
||||
'2_factor_auth_info' => '',
|
||||
'2_factor_auth_info' => 'A rendszernek két faktoros hitelesítése van. Szükséged lesz a Google Authenticator-ra a mobil telefonodon. Lejebb látható két QR kód. A jobb oldali a saját jelszavát, a baloldali egy új titkos jelszót tartalmaz. Ha új jelszót szeretne beállítani, szkennelje be újra a Goolge Authenticator-al.',
|
||||
'2_fact_auth_secret' => 'Titkos',
|
||||
'accept' => 'Elfogad',
|
||||
'access_control' => '',
|
||||
'access_control_is_off' => '',
|
||||
'access_control' => 'Hozzáférés vezérlés',
|
||||
'access_control_is_off' => 'A speciális vezérlés hozzáférése ki van kapcsolva',
|
||||
'access_denied' => 'Hozzáférés megtagadva.',
|
||||
'access_inheritance' => 'Hozzáférés öröklés',
|
||||
'access_mode' => 'Hozzáférési mód',
|
||||
|
|
@ -54,7 +54,7 @@ URL: [url]',
|
|||
'action_revise' => 'Felülvizsgálat',
|
||||
'add' => 'Hozzáad',
|
||||
'add_approval' => 'Jóváhagyás küldése',
|
||||
'add_attrdefgroup' => '',
|
||||
'add_attrdefgroup' => 'Új tulajdonságcsoport hozzáadása',
|
||||
'add_document' => 'Dokumentum hozzáadása',
|
||||
'add_document_link' => 'Hivatkozás hozzáadása',
|
||||
'add_document_notify' => 'Hozzárendelés értesítés',
|
||||
|
|
@ -67,7 +67,7 @@ URL: [url]',
|
|||
'add_multiple_files' => 'Több állomány hozzáadása (az állomány nevét használja dokumentum névként)',
|
||||
'add_receipt' => '',
|
||||
'add_review' => 'Felülvizsgálat küldése',
|
||||
'add_revision' => '',
|
||||
'add_revision' => 'Felülvizsgálat hozzáadása',
|
||||
'add_role' => 'szerepkör hozzáadása',
|
||||
'add_subfolder' => 'Alkönyvtár hozzáadása',
|
||||
'add_task' => 'Feladat hozzáadása',
|
||||
|
|
@ -103,7 +103,7 @@ URL: [url]',
|
|||
'approval_deletion_email' => 'Jóváhagyási kérelem törölve',
|
||||
'approval_deletion_email_body' => '',
|
||||
'approval_deletion_email_subject' => '',
|
||||
'approval_file' => '',
|
||||
'approval_file' => 'Fájl',
|
||||
'approval_group' => 'Jóváhagyó csoport',
|
||||
'approval_log' => 'Jóváhagyási napló',
|
||||
'approval_request_email' => 'Jóváhagyási kérelem',
|
||||
|
|
@ -115,7 +115,7 @@ Felhasználó: [username]
|
|||
URL: [url]',
|
||||
'approval_request_email_subject' => '[sitename]: [name] - Jóváhagyási kérelem',
|
||||
'approval_status' => 'Jóváhagyási állapot',
|
||||
'approval_submit_email' => '',
|
||||
'approval_submit_email' => 'Fordítás hiányzik',
|
||||
'approval_submit_email_body' => 'Dokumentum jóváhagyása
|
||||
Documentum: [name]
|
||||
Verzió: [version]
|
||||
|
|
@ -143,10 +143,10 @@ URL: [url]',
|
|||
'attrdefgroup_management' => '',
|
||||
'attrdefgrp_show_detail' => '',
|
||||
'attrdefgrp_show_list' => '',
|
||||
'attrdefgrp_show_search' => '',
|
||||
'attrdefgrp_show_search' => 'Keresés',
|
||||
'attrdefgrp_show_searchlist' => '',
|
||||
'attrdef_exists' => 'Jellemző meghatározás már létezik',
|
||||
'attrdef_info' => '',
|
||||
'attrdef_info' => 'Információ',
|
||||
'attrdef_in_use' => 'Jellemző meghatározás még használatban van',
|
||||
'attrdef_management' => 'Jellemző meghatározás kezelése',
|
||||
'attrdef_maxvalues' => 'Legnagyobb érték',
|
||||
|
|
@ -162,11 +162,11 @@ URL: [url]',
|
|||
'attrdef_type' => 'Típus',
|
||||
'attrdef_type_boolean' => 'Logikai',
|
||||
'attrdef_type_date' => 'Dátum',
|
||||
'attrdef_type_email' => '',
|
||||
'attrdef_type_email' => 'Email',
|
||||
'attrdef_type_float' => 'Szám tizedesjeggyel',
|
||||
'attrdef_type_int' => 'Egész szám',
|
||||
'attrdef_type_string' => 'Szöveg',
|
||||
'attrdef_type_url' => '',
|
||||
'attrdef_type_url' => 'URL',
|
||||
'attrdef_valueset' => 'Értékek beállítása',
|
||||
'attributes' => 'Jellemzők',
|
||||
'attribute_changed_email_body' => 'Jellemző módosult
|
||||
|
|
@ -223,7 +223,7 @@ URL: [url]',
|
|||
'category' => 'Kategória',
|
||||
'category_exists' => 'Kategória már létezik',
|
||||
'category_filter' => 'Kizárólag kategóriák',
|
||||
'category_info' => '',
|
||||
'category_info' => 'Információk',
|
||||
'category_in_use' => 'Dokumentumok használják ezt a kategóriát',
|
||||
'category_noname' => 'Nem adott meg kategória nevet.',
|
||||
'ca_ES' => 'Katalán',
|
||||
|
|
@ -299,8 +299,8 @@ URL: [url]',
|
|||
'confirm_update_transmittalitem' => '',
|
||||
'content' => 'Tartalom',
|
||||
'continue' => 'Folytatás',
|
||||
'converter_new_cmd' => '',
|
||||
'converter_new_mimetype' => '',
|
||||
'converter_new_cmd' => 'Új parancs',
|
||||
'converter_new_mimetype' => 'Új mime típus',
|
||||
'copied_to_checkout_as' => '',
|
||||
'create_download_link' => '',
|
||||
'create_fulltext_index' => 'Teljes szöveg index létrehozása',
|
||||
|
|
@ -366,7 +366,7 @@ Szülő mappa: [folder_path]
|
|||
Felhasználó: [username]
|
||||
URL: [url]',
|
||||
'document_comment_changed_email_subject' => '[sitename]: [name] - Megjegyzés módosult',
|
||||
'document_count' => '',
|
||||
'document_count' => 'Dokumentumok száma',
|
||||
'document_deleted' => 'Dokumentum törölve',
|
||||
'document_deleted_email' => 'Dokumentum törölve',
|
||||
'document_deleted_email_body' => 'Dokumentum törölve
|
||||
|
|
@ -457,7 +457,7 @@ URL: [url]',
|
|||
'dump_list' => 'Meglévő adatbázis metések',
|
||||
'dump_remove' => 'Adatbázis mentés eltávolítása',
|
||||
'duplicates' => '',
|
||||
'duplicate_content' => '',
|
||||
'duplicate_content' => 'Duplikált tartalom',
|
||||
'edit' => 'Szerkesztés',
|
||||
'edit_attributes' => 'Jellemzők szerkesztése',
|
||||
'edit_comment' => 'Megjegyzés szerkesztése',
|
||||
|
|
@ -539,7 +539,7 @@ Felhasználó: [username]
|
|||
URL: [url]',
|
||||
'expiry_changed_email_subject' => '[sitename]: [name] - Lejárati dátum módosítva',
|
||||
'export' => 'exportálás',
|
||||
'extension_archive' => '',
|
||||
'extension_archive' => 'Bővítmények',
|
||||
'extension_changelog' => 'Változásnapló',
|
||||
'extension_loading' => 'Kiterjesztések betöltése ...',
|
||||
'extension_manager' => 'Bővítmények kezelése',
|
||||
|
|
@ -630,7 +630,7 @@ URL: [url]',
|
|||
'guest_login_disabled' => 'Vendég bejelentkezés letiltva.',
|
||||
'hash' => 'hash',
|
||||
'help' => 'Segítség',
|
||||
'home_folder' => '',
|
||||
'home_folder' => 'Saját mappa',
|
||||
'hook_name' => '',
|
||||
'hourly' => 'Óra',
|
||||
'hours' => 'óra',
|
||||
|
|
@ -641,14 +641,14 @@ URL: [url]',
|
|||
'identical_version' => 'Az új verzió megegyezik az eredetivel.',
|
||||
'import' => 'Import',
|
||||
'importfs' => '',
|
||||
'import_extension' => '',
|
||||
'import_extension' => 'Kiterjesztés import',
|
||||
'import_fs' => 'Importálás fájlrendszerből',
|
||||
'import_fs_warning' => '',
|
||||
'include_content' => '',
|
||||
'include_documents' => 'Tartalmazó dokumentumok',
|
||||
'include_subdirectories' => 'Tartalmazó alkönyvtárak',
|
||||
'indexing_tasks_in_queue' => 'Indexelés folyamatban',
|
||||
'index_converters' => '',
|
||||
'index_converters' => 'Index konvertáló',
|
||||
'index_done' => '',
|
||||
'index_error' => '',
|
||||
'index_folder' => 'Mappa indexelése',
|
||||
|
|
@ -784,7 +784,7 @@ URL: [url]',
|
|||
'monday_abbr' => 'Hé',
|
||||
'monthly' => 'Havi',
|
||||
'month_view' => 'Havi nézet',
|
||||
'more_objects_loading' => '',
|
||||
'more_objects_loading' => 'További sorok betöltése...',
|
||||
'move' => 'Áthelyez',
|
||||
'move_clipboard' => 'Vágólapra helyez',
|
||||
'move_document' => 'Dokumentum áthelyezése',
|
||||
|
|
@ -929,10 +929,10 @@ Amennyiben problémákba ütközik a bejelentkezés során, kérjük vegye fel a
|
|||
'password_strength' => 'Jelszó erősség',
|
||||
'password_strength_insuffient' => 'Jelszó erőssége elégtelen',
|
||||
'password_wrong' => 'Hibás jelszó',
|
||||
'pdf_converters' => '',
|
||||
'pending_approvals' => '',
|
||||
'pdf_converters' => 'PDF konvertáló',
|
||||
'pending_approvals' => 'Függőben lévő jóváhagyások',
|
||||
'pending_receipt' => '',
|
||||
'pending_reviews' => '',
|
||||
'pending_reviews' => 'Függőben lévő feladatok',
|
||||
'pending_revision' => '',
|
||||
'pending_workflows' => '',
|
||||
'personal_default_keywords' => 'Személyes kulcsszó lista',
|
||||
|
|
@ -940,7 +940,7 @@ Amennyiben problémákba ütközik a bejelentkezés során, kérjük vegye fel a
|
|||
'possible_substitutes' => '',
|
||||
'preset_expires' => 'Érvényesség beállítása',
|
||||
'preview' => 'Előnézet',
|
||||
'preview_converters' => '',
|
||||
'preview_converters' => 'A dokumentum átalakításának előnézete',
|
||||
'preview_images' => 'előnézeti képek',
|
||||
'preview_markdown' => '',
|
||||
'preview_pdf' => '',
|
||||
|
|
@ -948,7 +948,7 @@ Amennyiben problémákba ütközik a bejelentkezés során, kérjük vegye fel a
|
|||
'previous_state' => 'Előző állapot',
|
||||
'previous_versions' => 'Előző változatok',
|
||||
'process' => 'Folyamat',
|
||||
'process_without_user_group' => '',
|
||||
'process_without_user_group' => 'Felhasználó / csoport nélküli folyamatok',
|
||||
'pt_BR' => 'Portugál (BR)',
|
||||
'quota' => 'Kvóta',
|
||||
'quota_exceeded' => 'Túllépte a lemezterület korlátot [bytes].',
|
||||
|
|
@ -1171,7 +1171,7 @@ URL: [url]',
|
|||
'select_ind_recipients' => '',
|
||||
'select_ind_reviewers' => 'Kattintson az önálló felülvizsgáló kijelöléséhez',
|
||||
'select_ind_revisors' => '',
|
||||
'select_one' => 'Vßlasszon egyet',
|
||||
'select_one' => 'Válasszon egyet',
|
||||
'select_user' => 'Felhasználó kiválasztása',
|
||||
'select_users' => 'Kattintson a felhasználó kiválasztásához',
|
||||
'select_value' => 'Érték kiválasztása',
|
||||
|
|
@ -1180,13 +1180,13 @@ URL: [url]',
|
|||
'send_login_data' => '',
|
||||
'send_login_data_body' => '',
|
||||
'send_login_data_subject' => '',
|
||||
'send_test_mail' => 'teszt email küldése',
|
||||
'send_test_mail' => 'Teszt e-mail küldése',
|
||||
'september' => 'September',
|
||||
'sequence' => 'Sorrend',
|
||||
'seq_after' => '"[prevname]" utßn',
|
||||
'seq_end' => 'Vgre',
|
||||
'seq_keep' => 'Pozci megtartßsa',
|
||||
'seq_start' => 'Elejre',
|
||||
'seq_start' => 'Elejére',
|
||||
'sessions' => '',
|
||||
'setDateFromFile' => '',
|
||||
'setDateFromFolder' => '',
|
||||
|
|
@ -1200,16 +1200,16 @@ URL: [url]',
|
|||
'settings_advancedAcl_desc' => '',
|
||||
'settings_allowChangeRevAppInProcess' => '',
|
||||
'settings_allowChangeRevAppInProcess_desc' => '',
|
||||
'settings_allowReviewerOnly' => '',
|
||||
'settings_allowReviewerOnly_desc' => '',
|
||||
'settings_allowReviewerOnly' => 'Engedélyezi, hogy csak az ellenört állítsa be',
|
||||
'settings_allowReviewerOnly_desc' => 'Ha ezt engedélyez, akkor lehetővé válik, hogy a hagyományos munkafolyamat módban csak ellenört állítson be, ne jóváhagyót.',
|
||||
'settings_apache_mod_rewrite' => 'Apache - Rewrite modul',
|
||||
'settings_Authentication' => 'Hitelesítési beállítások',
|
||||
'settings_autoLoginUser' => '',
|
||||
'settings_autoLoginUser_desc' => '',
|
||||
'settings_autoLoginUser' => 'Automatikus bejelentkezés',
|
||||
'settings_autoLoginUser_desc' => 'Használja ezt a felhasználói azonosítót a hozzáférésekhez, ha a felhasználó még nincs bejelentkezve. Az ilyen hozzáférés nem hoz létre munkamenetet.',
|
||||
'settings_available_languages' => 'Elérhető nyelvek',
|
||||
'settings_available_languages_desc' => '',
|
||||
'settings_backupDir' => '',
|
||||
'settings_backupDir_desc' => '',
|
||||
'settings_backupDir' => 'Mentés könyvtára',
|
||||
'settings_backupDir_desc' => 'Könyvtár, ahol a biztonsági mentési eszköz mentéseket készít. Ha ez a könyvtár nincs beállítva vagy nem érhető el, akkor a biztonsági másolatot a tartalom könyvtárba menti.',
|
||||
'settings_cacheDir' => 'Átmeneti állományok könyvtára',
|
||||
'settings_cacheDir_desc' => 'Ahol az előnézeti képek tárolódnak (legjobb olyan könyvtárat választani, amit a web-kiszolgálón keresztül nem lehet elérni)',
|
||||
'settings_Calendar' => 'Naptár beállítások',
|
||||
|
|
@ -1218,14 +1218,14 @@ URL: [url]',
|
|||
'settings_cannot_disable' => 'ENABLE_INSTALL_TOOL állomány nem került törlésre',
|
||||
'settings_checkOutDir' => '',
|
||||
'settings_checkOutDir_desc' => '',
|
||||
'settings_cmdTimeout' => '',
|
||||
'settings_cmdTimeout_desc' => '',
|
||||
'settings_cmdTimeout' => 'Külső parancsok időtúllépése',
|
||||
'settings_cmdTimeout_desc' => 'Ez az időtartam másodpercben határozza meg, hogy mikor fejezik be a külső parancsot (például a teljes szöveg index létrehozásához).',
|
||||
'settings_contentDir' => 'Tartalom könyvtár',
|
||||
'settings_contentDir_desc' => 'Feltöltött állományok tárolási helye (olyan könyvtárat érdemes választani, amelyhez nem lehet a webszerveren keresztül hozzáférni)',
|
||||
'settings_contentOffsetDir' => 'Tartalom eltérési könyvtár',
|
||||
'settings_contentOffsetDir_desc' => 'Az alapul szolgáló fájlrendszer korlátozásainak kikerülésére új könyvtár struktúra került kialakításra amely úgy lett tervezve, hogy létezzen a tároló könyvtárban (Content Directory). Ehhez szükséges egy alap könyvtár ahonnan indul. Általában meg lehet hagyni az alapértelmezett értéket ami 1048576, de megadható bármilyen szám vagy karaktersorozat amely nem létezik a tartalom könyvtárban (Content Directory)',
|
||||
'settings_convertToPdf' => '',
|
||||
'settings_convertToPdf_desc' => '',
|
||||
'settings_convertToPdf' => 'A dokumentum konvertálása PDF-be előnézet céljából',
|
||||
'settings_convertToPdf_desc' => 'Ha a dokumentumot nem tudja megjeleníteni a böngészőben, akkor megjelenik egy pdf-formátumra konvertált változat.',
|
||||
'settings_cookieLifetime' => 'Süti élettartam',
|
||||
'settings_cookieLifetime_desc' => 'A süti élettartama másodpercben. Ha az értéke 0 akkor a süti a böngésző bezárásakor lesz törölve.',
|
||||
'settings_coreDir' => 'Alap SeedDMS könyvtár',
|
||||
|
|
@ -1247,12 +1247,12 @@ URL: [url]',
|
|||
'settings_dbUser' => 'Felhasználónév',
|
||||
'settings_dbUser_desc' => 'Az adatbázis eléréséhez tartozó felhasználónevet a telepítési eljárás során kell megadni. Ne szerkessze ezt a mezőt, csak ha nagyon szükséges, például, ha az adatbázist át kell helyezni egy másik gépre.',
|
||||
'settings_dbVersion' => 'Adatbázis séma túl régi',
|
||||
'settings_defaultAccessDocs' => '',
|
||||
'settings_defaultAccessDocs_desc' => '',
|
||||
'settings_defaultDocPosition' => '',
|
||||
'settings_defaultDocPosition_desc' => '',
|
||||
'settings_defaultDocPosition_val_end' => '',
|
||||
'settings_defaultDocPosition_val_start' => '',
|
||||
'settings_defaultAccessDocs' => 'Alapértelmezett hozzáférés az új dokumentumokhoz',
|
||||
'settings_defaultAccessDocs_desc' => 'Új dokumentum létrehozásakor ez lesz az alapértelmezett hozzáférési jog.',
|
||||
'settings_defaultDocPosition' => 'A dokumentum elhelyezése létrehozáskor',
|
||||
'settings_defaultDocPosition_desc' => 'Ez az alapértelmezett hely egy mappában egy dokumentum létrehozásakor.',
|
||||
'settings_defaultDocPosition_val_end' => 'vége',
|
||||
'settings_defaultDocPosition_val_start' => 'eleje',
|
||||
'settings_defaultSearchMethod' => 'Alapértelmezett keresési módszer',
|
||||
'settings_defaultSearchMethod_desc' => '',
|
||||
'settings_defaultSearchMethod_valdatabase' => 'adatbázis',
|
||||
|
|
@ -1265,8 +1265,8 @@ URL: [url]',
|
|||
'settings_dropFolderDir' => 'Drop mappa könyvtára',
|
||||
'settings_dropFolderDir_desc' => 'Ez a könyvtár használható az importálandó állományok elhelyezésére a fájlrendszeren a böngészővel történő feltöltés helyett. A könyvtárnak tartalmaznia kell alkönyvtárakat minden felhasználóhoz akinek engedélyezett az állományok ilyen módon történő importálása.',
|
||||
'settings_Edition' => 'Kiadás beállítások',
|
||||
'settings_editOnlineFileTypes' => '',
|
||||
'settings_editOnlineFileTypes_desc' => '',
|
||||
'settings_editOnlineFileTypes' => 'Online fájltípusok szerkesztése',
|
||||
'settings_editOnlineFileTypes_desc' => 'Az alábbi végződésekkel vagy mime-típusokkal rendelkező fájlok online szerkeszthetők (CSAK KISBETÜK HASZNÁLHTÓAK!)',
|
||||
'settings_enable2FactorAuthentication' => '',
|
||||
'settings_enable2FactorAuthentication_desc' => '',
|
||||
'settings_enableAcknowledgeWorkflow' => '',
|
||||
|
|
@ -1283,8 +1283,8 @@ URL: [url]',
|
|||
'settings_enableConverting_desc' => 'Engedélyezi/tiltja az állományok konverzióját',
|
||||
'settings_enableDebugMode' => '',
|
||||
'settings_enableDebugMode_desc' => '',
|
||||
'settings_enableDropFolderList' => '',
|
||||
'settings_enableDropFolderList_desc' => '',
|
||||
'settings_enableDropFolderList' => 'Engedélyezzi a fájlok listáját a drop mappa menüben',
|
||||
'settings_enableDropFolderList_desc' => 'Kapcsolja be a Drop mappa-ban lévő fájlok listáját. A lista megjelenik a főmenüben.',
|
||||
'settings_enableDropUpload' => 'Gyorsfeltöltés engedélyezése',
|
||||
'settings_enableDropUpload_desc' => 'Be/Ki kapcsolja a \'Mappa nézet\' oldalon a fogd és vidd feltöltéshez tartozó területetet',
|
||||
'settings_enableDuplicateDocNames' => 'Azonos dokumentum név engedélyezése',
|
||||
|
|
@ -1299,8 +1299,8 @@ URL: [url]',
|
|||
'settings_enableFolderTree_desc' => 'Hamis hogy ne jelenjen meg a mappa fastruktúra',
|
||||
'settings_enableFullSearch' => 'Teljes szöveg keresés engedélyezése',
|
||||
'settings_enableFullSearch_desc' => 'Engedélyezi a teljes szöveg keresést',
|
||||
'settings_enableGuestAutoLogin' => '',
|
||||
'settings_enableGuestAutoLogin_desc' => '',
|
||||
'settings_enableGuestAutoLogin' => 'Engedélyezi az automatikus belépést a Vendég felhasználónak',
|
||||
'settings_enableGuestAutoLogin_desc' => 'Ha a vendég bejelentkezés és az automatikus bejelentkezés engedélyezve van, a vendég automatikusan be lesz jelentkezve.',
|
||||
'settings_enableGuestLogin' => 'Vendég belépésének engedélyezése',
|
||||
'settings_enableGuestLogin_desc' => 'Ha azt szeretné, hogy bárki be tudjon jelentkezni vendégként, jelölje be ezt a lehetőséget. Megjegyzés: vendég bejelentkezés megbízható környezetben használható',
|
||||
'settings_enableHelp' => 'Súgó engedélyezése',
|
||||
|
|
@ -1309,10 +1309,10 @@ URL: [url]',
|
|||
'settings_enableLanguageSelector_desc' => 'Megjelenít egy választást a felhasználói felületen a bejelentkezést követően.',
|
||||
'settings_enableLargeFileUpload' => 'Nagy méretű állományok feltöltésének engedélyezése',
|
||||
'settings_enableLargeFileUpload_desc' => 'Ha beállítja az állományok feltöltése elérhető lesz egy jumploadernek hívott java appleten keresztül a böngészőprogram állomány méret korlátja nélkül. Ez engedélyezi több állomány feltöltését egy lépésben.',
|
||||
'settings_enableMenuTasks' => '',
|
||||
'settings_enableMenuTasks_desc' => '',
|
||||
'settings_enableMultiUpload' => '',
|
||||
'settings_enableMultiUpload_desc' => '',
|
||||
'settings_enableMenuTasks' => 'Feladatok menüpont engedélyezése',
|
||||
'settings_enableMenuTasks_desc' => 'Engedélyezi / letiltja a menüelemet, amely a felhasználó összes feladatát tartalmazza. Ez olyan dokumentumokat tartalmaz, amelyeket felül kell vizsgálni, jóvá kell hagyni stb.',
|
||||
'settings_enableMultiUpload' => 'Több fájl feltöltésének engedélyezése',
|
||||
'settings_enableMultiUpload_desc' => 'Új dokumentum létrehozásakor több fájl feltölthető. Mindegyik létrehoz egy új dokumentumot.',
|
||||
'settings_enableNotificationAppRev' => 'A felülvizsgáló/jóváhagyó értesítés engedélyezése',
|
||||
'settings_enableNotificationAppRev_desc' => 'Ellenőrzi az értesítés küldését a felülvizsgálónak/jóváhagyónak új dokumentum változat hozzáadásakor',
|
||||
'settings_enableNotificationWorkflow' => 'A felhasználó értesítése a következő munkafolyamatnál',
|
||||
|
|
@ -1341,14 +1341,14 @@ URL: [url]',
|
|||
'settings_enableSelfReceipt_desc' => '',
|
||||
'settings_enableSelfRevApp' => 'Engedélyezi a felülvizsgálatot/jóváhagyást a bejelentkezett felhasználó számára',
|
||||
'settings_enableSelfRevApp_desc' => 'Engedélyezze, a azt szeretné, hogy a bejelentkezett felhasználó listázásra kerüljön felülvizsgálóként/jóváhagyóként és a munkamenet átmeneteknél.',
|
||||
'settings_enableSessionList' => '',
|
||||
'settings_enableSessionList_desc' => '',
|
||||
'settings_enableSessionList' => 'Engedélyezi a Felhasználók menüpont megjelenítését',
|
||||
'settings_enableSessionList_desc' => 'Bejelentkezett felhasználók megjelenítése a főmenü / felhasználók menüjében.',
|
||||
'settings_enableThemeSelector' => 'Téma választása',
|
||||
'settings_enableThemeSelector_desc' => 'Kapcsolja be/ki a témaválasztót a bejelentkező oldalon',
|
||||
'settings_enableUpdateReceipt' => '',
|
||||
'settings_enableUpdateReceipt_desc' => '',
|
||||
'settings_enableUpdateRevApp' => '',
|
||||
'settings_enableUpdateRevApp_desc' => '',
|
||||
'settings_enableUpdateRevApp_desc' => 'Engedélyezze ezt, ha a felülvizsgálatot / jóváhagyást megadó felhasználó megváltoztathatja a döntést, amíg a jelenlegi munkafolyamat még nem fejeződött be.',
|
||||
'settings_enableUserImage' => 'Felhasználói kép engedélyezése',
|
||||
'settings_enableUserImage_desc' => 'Engedélyezi a felhasználók képeit',
|
||||
'settings_enableUsersView' => 'Felhasználók nézetének engedélyezése',
|
||||
|
|
@ -1357,10 +1357,10 @@ URL: [url]',
|
|||
'settings_enableVersionDeletion_desc' => 'Engedélyezi/tiltja a korábbi dokumentum verziók törlését az általános felhasználóknak. Adminisztrátor mindig törölheti a korábbi változatokat.',
|
||||
'settings_enableVersionModification' => 'Engedélyezi a verziók módosítását',
|
||||
'settings_enableVersionModification_desc' => 'Engedélyezi/tiltja a dokumentum verziók módosítását az általános felhasználóknak miután a verzió feltöltésre került. Adminisztrátor mindig módosíthatja a verziót feltöltés után.',
|
||||
'settings_enableWebdavReplaceDoc' => '',
|
||||
'settings_enableWebdavReplaceDoc_desc' => '',
|
||||
'settings_enableXsendfile' => '',
|
||||
'settings_enableXsendfile_desc' => '',
|
||||
'settings_enableWebdavReplaceDoc' => 'Dokumentum cseréje mentés után',
|
||||
'settings_enableWebdavReplaceDoc_desc' => 'Ha engedélyezve van, egy dokumentum új verziójának mentése az új verzió létrehozása helyett a régi dokumentumot váltja fel. Ez csak akkor lesz érvényes, ha a felhasználó, a típustípus és a fájlnév megegyezik az utolsó verzióval. Ez hasznos lehet, ha az alkalmazások automatikusan menti a dokumentumot meghatározott időközönként.',
|
||||
'settings_enableXsendfile' => 'Apache xsendfile module használata',
|
||||
'settings_enableXsendfile_desc' => 'Ha ez az opció be van állítva, és az xsendfile apache modul telepítve van, akkor a képeket továbbítja.',
|
||||
'settings_encryptionKey' => 'Titkosító kulcs',
|
||||
'settings_encryptionKey_desc' => 'Ez a karaktersorozat használható egyedi azonosító létrehozásához amely rejtett mezőként lesz hozzáadva az űrlapokhoz a CSRF támadások megelőzésére.',
|
||||
'settings_error' => 'Hiba',
|
||||
|
|
@ -1376,16 +1376,16 @@ URL: [url]',
|
|||
'settings_firstDayOfWeek_desc' => 'A hét első napja',
|
||||
'settings_footNote' => 'Lábjegyzet',
|
||||
'settings_footNote_desc' => 'Minden oldal alján megjelenő üzenet',
|
||||
'settings_fullSearchEngine' => '',
|
||||
'settings_fullSearchEngine_desc' => '',
|
||||
'settings_fullSearchEngine_vallucene' => 'Zend Lucene',
|
||||
'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS',
|
||||
'settings_fullSearchEngine' => 'Szöveg keresési mód',
|
||||
'settings_fullSearchEngine_desc' => 'Állítsa be a kereséséhez használt módot.',
|
||||
'settings_fullSearchEngine_vallucene' => 'Dokumentum tartalom keresés',
|
||||
'settings_fullSearchEngine_valsqlitefts' => 'Adatbázis keresés',
|
||||
'settings_guestID' => 'Vendég azonosító',
|
||||
'settings_guestID_desc' => 'A vendég felhasználó azonosítója ami a vendégként történő bejelentkezéskor lesz használva (általában nem szükséges módosítani)',
|
||||
'settings_httpRoot' => 'Http gyökér',
|
||||
'settings_httpRoot_desc' => 'A relatív elérési út az URL-ben a tartomány rész után. Ne tartalmazza a http:// előtagot vag a web szerver nevét. Pl.: ha a teljes URL http://www.example.com/seeddms/, adja meg \'/seeddms/\'. Ha az URL http://www.example.com/, adja meg \'/\'',
|
||||
'settings_incItemsPerPage' => '',
|
||||
'settings_incItemsPerPage_desc' => '',
|
||||
'settings_incItemsPerPage' => 'Az oldal végén betöltött bejegyzések száma',
|
||||
'settings_incItemsPerPage_desc' => 'Ha a mappák és a dokumentumok száma korlátozott, akkor ez beállítja a kiegészítőként betöltött tételek számát, amikor a nézetmappa oldal aljára görget. Ha ezt 0-ra állítja, akkor nincs megjelenítési korlátozás.',
|
||||
'settings_initialDocumentStatus' => '',
|
||||
'settings_initialDocumentStatus_desc' => '',
|
||||
'settings_initialDocumentStatus_draft' => '',
|
||||
|
|
@ -1416,14 +1416,14 @@ URL: [url]',
|
|||
'settings_maxDirID_desc' => 'Szülő könyvtárban lévő alkönyvtárak maximális mennyisége, Alapérték: 0.',
|
||||
'settings_maxExecutionTime' => 'Maximális végrehajtási idő (s)',
|
||||
'settings_maxExecutionTime_desc' => 'Beállítja a szkript maximális engedélyezett futási idejét másodpercben mielőtt megszakítja az értelmező',
|
||||
'settings_maxItemsPerPage' => '',
|
||||
'settings_maxItemsPerPage_desc' => '',
|
||||
'settings_maxItemsPerPage' => 'Egy oldalon megjeleníthető tételek maximális száma',
|
||||
'settings_maxItemsPerPage_desc' => 'Korlátozza a nézetlistában megjelenő mappák és dokumentumok számát. További tételeket tölt be, amikor az oldal végére görgeti. 0-ra állítva az összes tétel mindig megjelenik.',
|
||||
'settings_maxRecursiveCount' => 'Rekurzív dokumentum/mappa számláló legnagyobb értéke',
|
||||
'settings_maxRecursiveCount_desc' => 'A dokumentumok és mappák maximális mennyisége amelyeken ellenőrizni fogják a hozzáférési jogokat, ha rekurzívan számláló tárgyakat. Ha ezt az értéket túllépik, a dokumentumok számát és mappák a Mappa nézetben is becsülhetők.',
|
||||
'settings_maxSizeForFullText' => '',
|
||||
'settings_maxSizeForFullText_desc' => '',
|
||||
'settings_maxUploadSize' => '',
|
||||
'settings_maxUploadSize_desc' => '',
|
||||
'settings_maxSizeForFullText' => 'Maximális fájlméret az azonnali indexeléshez',
|
||||
'settings_maxSizeForFullText_desc' => 'A beállított méretnél kisebb minden új dokumentum verziót a feltöltés után azonnal teljesen indexeli. Minden más esetben csak a metaadatok kerülnek indexelésre.',
|
||||
'settings_maxUploadSize' => 'Feltölthető állományok maximális mérete',
|
||||
'settings_maxUploadSize_desc' => 'Ez a feltöltött fájlok maximális mérete. A dokumentum verziókra és a mellékletekre is vonatkozik.',
|
||||
'settings_more_settings' => 'További beállítások konfigurálása. Alapértelmezett bejelentkezés: admin/admin',
|
||||
'settings_noDocumentFormFields' => '',
|
||||
'settings_noDocumentFormFields_desc' => '',
|
||||
|
|
@ -1433,8 +1433,8 @@ URL: [url]',
|
|||
'settings_no_content_dir' => 'Tartalom könyvtár',
|
||||
'settings_onePageMode' => '',
|
||||
'settings_onePageMode_desc' => '',
|
||||
'settings_overrideMimeType' => '',
|
||||
'settings_overrideMimeType_desc' => '',
|
||||
'settings_overrideMimeType' => 'A Mime típus felülbírálása',
|
||||
'settings_overrideMimeType_desc' => 'A fájl feltöltése esetén felülbírálja a böngésző által szállított Mime típust. Az új Mime típust maga a SeedDMS határozza meg.',
|
||||
'settings_partitionSize' => 'Részleges fájlméret',
|
||||
'settings_partitionSize_desc' => 'A részleges állományok mérete, amelyek a jumploader segítségével lesznek feltöltve. Ne adjon meg magasabb értéket, mint a szerveren beállított legnagyobb feltölthető állomány méret.',
|
||||
'settings_passwordExpiration' => 'Jelszó lejárat',
|
||||
|
|
@ -1458,14 +1458,14 @@ URL: [url]',
|
|||
'settings_presetExpirationDate_desc' => 'Minden feltöltött dokumentumhoz ezt a lejárati dátumot rendeli hozzá. A PHP strtotime() függvényének formátuma használható, pl.: +5 weeks.',
|
||||
'settings_previewWidthDetail' => 'Előnézeti képek szélessége (részletek)',
|
||||
'settings_previewWidthDetail_desc' => 'A részletek oldalon megjelenő előnézeti képek szélessége',
|
||||
'settings_previewWidthDropFolderList' => '',
|
||||
'settings_previewWidthDropFolderList_desc' => '',
|
||||
'settings_previewWidthDropFolderList' => 'Az előnézeti képek szélessége (drop mappa listában)',
|
||||
'settings_previewWidthDropFolderList_desc' => 'A listában szereplő előnézeti képek szélessége, amikor a fájlt kiválasztja a drop mappából.',
|
||||
'settings_previewWidthList' => 'Előnézeti képek szélessége (lista)',
|
||||
'settings_previewWidthList_desc' => 'A listában megjelenő előnézeti képek szélessége',
|
||||
'settings_previewWidthMenuList' => '',
|
||||
'settings_previewWidthMenuList_desc' => '',
|
||||
'settings_previewWidthMenuList' => 'Az előnézeti képek szélessége (menülista)',
|
||||
'settings_previewWidthMenuList_desc' => 'Az előnézeti képek szélessége, amelyeket tételekként jelennek meg a Drop mappa menüben.',
|
||||
'settings_printDisclaimer' => 'Nyilatkozat nyomtatása',
|
||||
'settings_printDisclaimer_desc' => 'Ha igaz a nyilatkozat üzenet a lang.inc állományok lesznek kiíratva a lap alján',
|
||||
'settings_printDisclaimer_desc' => 'Ha igaz ez a beállítás, akkor s lang.inc-ben a Disclaimer tartalma kerül megjelenítésre a lap alján',
|
||||
'settings_proxyUPassword' => '',
|
||||
'settings_proxyUPassword_desc' => '',
|
||||
'settings_proxyUrl' => '',
|
||||
|
|
@ -1474,10 +1474,10 @@ URL: [url]',
|
|||
'settings_proxyUser_desc' => '',
|
||||
'settings_quota' => 'Felhasználói kvóta',
|
||||
'settings_quota_desc' => 'A felhasználó által a lemezen használható bájtok legnagyobb száma. Állítsa 0-ra a korlátlan lemezterülethez. Ez az érték felülírható valamennyi felhasználó saját profiljában.',
|
||||
'settings_removeFromDropFolder' => '',
|
||||
'settings_removeFromDropFolder_desc' => '',
|
||||
'settings_repositoryUrl' => '',
|
||||
'settings_repositoryUrl_desc' => '',
|
||||
'settings_removeFromDropFolder' => 'A sikeres feltöltés után távolítsa el a fájlt a drop mappából',
|
||||
'settings_removeFromDropFolder_desc' => 'Engedélyezze ezt, ha a drop mappából vett fájlt a sikeres feltöltés után törölhető.',
|
||||
'settings_repositoryUrl' => 'Bővítmények URL-je',
|
||||
'settings_repositoryUrl_desc' => 'A bővítmények tárházának URL-je',
|
||||
'settings_restricted' => 'Korlátozott hozzáférés',
|
||||
'settings_restricted_desc' => 'Kizárólag azok a felhasználók jelentkezhetnek be, akik a helyi adatbázisban vannak (függetlenül a sikeres LDAP azonosítástól)',
|
||||
'settings_rootDir' => 'Gyökérkönyvtár',
|
||||
|
|
@ -1490,8 +1490,8 @@ URL: [url]',
|
|||
'settings_showFullPreview_desc' => '',
|
||||
'settings_showMissingTranslations' => 'Jelenítse meg a hiányzó fordításokat',
|
||||
'settings_showMissingTranslations_desc' => 'Felsorolja az összes hiányzó fordítást a lap alján. A bejelentkezett felhasználó képes lesz arra, hogy javaslatot nyújtson be a hiányzó fordításokra, amelyek egy csv állományba kerülnek mentésre. Ne kapcsolja be ezt a funkciót élse környezetben!',
|
||||
'settings_showSingleSearchHit' => '',
|
||||
'settings_showSingleSearchHit_desc' => '',
|
||||
'settings_showSingleSearchHit' => 'Ugrás egyenesen egyetlen keresési találatra',
|
||||
'settings_showSingleSearchHit_desc' => 'Ha a keresésnek egy találata van, akkor ugorjon a dokumentum tartalmára.',
|
||||
'settings_Site' => 'Webhely',
|
||||
'settings_siteDefaultPage' => 'Webhely kezdőlap',
|
||||
'settings_siteDefaultPage_desc' => 'Alapértelmezett oldal a bejelentkezést követően. Ha üres, akkor az alapértelmezett out/out.ViewFolder.php',
|
||||
|
|
@ -1504,8 +1504,8 @@ URL: [url]',
|
|||
'settings_smtpPort_desc' => 'SMTP kiszolgáló port, alapértelmezett 25',
|
||||
'settings_smtpSendFrom' => 'Feladó',
|
||||
'settings_smtpSendFrom_desc' => 'A levél feladója',
|
||||
'settings_smtpSendTestMail' => '',
|
||||
'settings_smtpSendTestMail_desc' => '',
|
||||
'settings_smtpSendTestMail' => 'Teszt e-mail küldése',
|
||||
'settings_smtpSendTestMail_desc' => 'Tesztlevelet küld az aktuális e-mail konfiguráció ellenőrzéséhez.',
|
||||
'settings_smtpServer' => 'SMTP kiszolgáló gépnév',
|
||||
'settings_smtpServer_desc' => 'SMTP kiszolgáló gépnév',
|
||||
'settings_smtpUser' => 'SMTP kiszolgáló felhasználó',
|
||||
|
|
@ -1551,7 +1551,7 @@ URL: [url]',
|
|||
'settings_versiontolow' => 'túl alacsony verzió',
|
||||
'settings_viewOnlineFileTypes' => 'Online állománytípus nézet',
|
||||
'settings_viewOnlineFileTypes_desc' => 'A következő végződéssel rendelkező állományok megtekinthetők online (KIZÁRÓLAG KISBETŰS KARAKTEREKET HASZNÁLJON)',
|
||||
'settings_webdav' => '',
|
||||
'settings_webdav' => 'WebDAV',
|
||||
'settings_workflowMode' => 'Munkafolyamat mód',
|
||||
'settings_workflowMode_desc' => 'A részletes munkafolyamat engedélyezi saját kiadási munkafolyamat megadását a dokumentum változatokhoz.',
|
||||
'settings_workflowMode_valadvanced' => 'részletes',
|
||||
|
|
@ -1723,7 +1723,7 @@ URL: [url]',
|
|||
'timeline_full_add_file' => '',
|
||||
'timeline_full_add_version' => '',
|
||||
'timeline_full_scheduled_revision' => '',
|
||||
'timeline_full_status_change' => '',
|
||||
'timeline_full_status_change' => '[document]<br />Verzió [version]: [status]',
|
||||
'timeline_scheduled_revision' => '',
|
||||
'timeline_selected_item' => '',
|
||||
'timeline_skip_add_file' => 'melléklet hozzáadva',
|
||||
|
|
@ -1839,7 +1839,7 @@ Szülő mappa: [folder_path]
|
|||
Felhasználó: [username]
|
||||
URL: [url]',
|
||||
'version_deleted_email_subject' => '[sitename]: [name] - Változat törölve',
|
||||
'version_info' => 'Változat információ',
|
||||
'version_info' => 'Verzió információ',
|
||||
'view' => 'Nézet',
|
||||
'view_online' => 'Online megtekintés',
|
||||
'warning' => 'Figyelmeztetés',
|
||||
|
|
@ -1878,7 +1878,7 @@ URL: [url]',
|
|||
'workflow_transition_without_user_group' => '',
|
||||
'workflow_user_summary' => 'Felhasználó áttekintés',
|
||||
'wrong_filetype' => '',
|
||||
'x_more_objects' => '',
|
||||
'x_more_objects' => '[number] további tétel',
|
||||
'year_view' => 'Éves nézet',
|
||||
'yes' => 'Igen',
|
||||
'zh_CN' => 'Kínai (CN)',
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (2020), rickr (144), s.pnt (26)
|
||||
// Translators: Admin (2021), rickr (144), s.pnt (26)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => 'Autorizzazione a due fattori',
|
||||
|
|
@ -803,7 +803,7 @@ URL: [url]',
|
|||
'my_documents' => 'Documenti personali',
|
||||
'my_transmittals' => 'Mie trasmissioni',
|
||||
'name' => 'Nome',
|
||||
'nb_NO' => 'Norvegese',
|
||||
'nb_NO' => 'Norvegiese (Bokmål)',
|
||||
'needs_correction' => 'Necessita correzioni',
|
||||
'needs_workflow_action' => 'Il documento richiede attenzione. Prego controllare il flusso di lavoro.',
|
||||
'network_drive' => 'Network drive',
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (778), gijsbertush (651), pepijn (45), reinoutdijkstra@hotmail.com (270)
|
||||
// Translators: Admin (779), gijsbertush (651), pepijn (45), reinoutdijkstra@hotmail.com (270)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '2-factor-authenticatie',
|
||||
|
|
@ -1100,7 +1100,7 @@ URL: [url]',
|
|||
'revision_status' => 'Status revisie',
|
||||
'revision_submit_email_body' => '',
|
||||
'revision_submit_email_subject' => '',
|
||||
'revision_summary' => '',
|
||||
'revision_summary' => 'Revisie samenvatting',
|
||||
'revisors' => 'Herzieners',
|
||||
'revisor_already_assigned' => 'Gebruiker is reeds herziener',
|
||||
'revisor_already_removed' => 'Herziener reeds verwijderd',
|
||||
|
|
|
|||
|
|
@ -19,14 +19,14 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (867), netixw (84), romi (93), uGn (112)
|
||||
// Translators: Admin (871), netixw (84), romi (93), uGn (112)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '',
|
||||
'2_factor_auth_info' => '',
|
||||
'2_fact_auth_secret' => '',
|
||||
'accept' => 'Akceptuj',
|
||||
'access_control' => '',
|
||||
'access_control' => 'Kontrola dostępu',
|
||||
'access_control_is_off' => '',
|
||||
'access_denied' => 'Dostęp zabroniony.',
|
||||
'access_inheritance' => 'Dziedziczenie dostępu',
|
||||
|
|
@ -1089,7 +1089,7 @@ URL: [url]',
|
|||
'role_admin' => 'Administrator',
|
||||
'role_guest' => 'Gość',
|
||||
'role_info' => '',
|
||||
'role_management' => '',
|
||||
'role_management' => 'Zarządzanie rolam',
|
||||
'role_name' => '',
|
||||
'role_type' => '',
|
||||
'role_user' => 'Użytkownik',
|
||||
|
|
@ -1112,7 +1112,7 @@ URL: [url]',
|
|||
'scheduler_class_description' => '',
|
||||
'scheduler_class_parameter' => '',
|
||||
'scheduler_class_tasks' => '',
|
||||
'scheduler_task_mgr' => '',
|
||||
'scheduler_task_mgr' => 'Zadania',
|
||||
'search' => 'Szukaj',
|
||||
'search_fulltext' => 'Przeszukaj całe teksty',
|
||||
'search_in' => 'Szukaj w',
|
||||
|
|
@ -1810,7 +1810,7 @@ URL: [url]',
|
|||
'versioning_file_creation_warning' => 'Ta operacja utworzy plik zawierający informacje o wersjach plików z całego wskazanego folderu. Po utworzeniu, każdy plik będzie zapisany w folderze odpowiednim dla danego dokumentu.',
|
||||
'versioning_info' => 'Informacje o wersjach',
|
||||
'versiontolow' => 'Za niska wersja',
|
||||
'version_comment' => '',
|
||||
'version_comment' => 'Opis wersji',
|
||||
'version_deleted_email' => 'Wersja usunięta',
|
||||
'version_deleted_email_body' => 'Wersja została usunięta
|
||||
Dokument: [name]
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (1097), balan (87)
|
||||
// Translators: Admin (1099), balan (87)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '',
|
||||
|
|
@ -798,7 +798,7 @@ URL: [url]',
|
|||
'my_documents' => 'Documentele Mele',
|
||||
'my_transmittals' => 'Trimiterile mele',
|
||||
'name' => 'Nume',
|
||||
'nb_NO' => '',
|
||||
'nb_NO' => 'Norvegiana',
|
||||
'needs_correction' => '',
|
||||
'needs_workflow_action' => 'Acest document necesită atenția dumneavoastră. Vă rugăm să verificați tab-ul workflow.',
|
||||
'network_drive' => '',
|
||||
|
|
@ -1195,7 +1195,7 @@ URL: [url]',
|
|||
'select_ind_reviewers' => 'Click pentru a selecta un revizuitor individual',
|
||||
'select_ind_revisors' => 'Faceti click pentru a selecta retrimitori individuali',
|
||||
'select_one' => 'Selectați unul',
|
||||
'select_user' => '',
|
||||
'select_user' => 'Selecteaza utilizator',
|
||||
'select_users' => 'Click pentru a selecta utilizatori',
|
||||
'select_value' => 'Valoare selectata',
|
||||
'select_workflow' => 'Selectați workflow',
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (1678)
|
||||
// Translators: Admin (1681)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => 'Двухфакторная аутентификация',
|
||||
|
|
@ -141,7 +141,7 @@ URL: [url]',
|
|||
'archive_creation_warning' => 'Эта операция создаст архив, содержащий все каталоги. После создания архив будет сохранен в каталоге данных сервера.<br><b>Внимание:</b> архив созданный как понятный человеку, будет непригоден в качестве резервной копии для восстановления!',
|
||||
'ar_EG' => 'Arabic',
|
||||
'assign_approvers' => 'Назначить утверждающих',
|
||||
'assign_recipients' => '',
|
||||
'assign_recipients' => 'Указать получателей',
|
||||
'assign_reviewers' => 'Назначить рецензентов',
|
||||
'assign_user_property_to' => 'Назначить свойства пользователя',
|
||||
'assumed_released' => 'Утверждён',
|
||||
|
|
@ -799,7 +799,7 @@ URL: [url]',
|
|||
'my_transmittals' => 'Мои пересылки',
|
||||
'name' => 'Имя',
|
||||
'nb_NO' => 'Норвежский',
|
||||
'needs_correction' => '',
|
||||
'needs_correction' => 'Нужны правки',
|
||||
'needs_workflow_action' => 'Этот документ требует вашего внимания. См. вкладку «Процесс».',
|
||||
'network_drive' => 'Сетевой диск',
|
||||
'never' => 'никогда',
|
||||
|
|
@ -1189,7 +1189,7 @@ URL: [url]',
|
|||
'select_grp_approvers' => 'Выберите утверждающую группу',
|
||||
'select_grp_ind_approvers' => 'Выберите группу',
|
||||
'select_grp_ind_notification' => 'Выберите группу',
|
||||
'select_grp_ind_recipients' => '',
|
||||
'select_grp_ind_recipients' => 'Щелкните для выбора группы',
|
||||
'select_grp_ind_reviewers' => 'Выберите группу',
|
||||
'select_grp_ind_revisors' => '',
|
||||
'select_grp_notification' => 'Выберите группу для уведомления',
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (1161), MagnusI (649), tmichelfelder (106)
|
||||
// Translators: Admin (1162), MagnusI (649), tmichelfelder (106)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '2-faktors autentisering',
|
||||
|
|
@ -804,7 +804,7 @@ URL: [url]',
|
|||
'my_documents' => 'Mina dokument',
|
||||
'my_transmittals' => 'Mina överföringar',
|
||||
'name' => 'Namn',
|
||||
'nb_NO' => '',
|
||||
'nb_NO' => 'Norska (Bokmål)',
|
||||
'needs_correction' => '',
|
||||
'needs_workflow_action' => 'Detta dokument behöver din uppmärksamhet. Kontrollera inställningarna för arbetsflödet.',
|
||||
'network_drive' => 'Nätverkslagring',
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (1094), aydin (83)
|
||||
// Translators: Admin (1095), aydin (83)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '',
|
||||
|
|
@ -792,7 +792,7 @@ URL: [url]',
|
|||
'my_documents' => 'Dokümanlarım',
|
||||
'my_transmittals' => '',
|
||||
'name' => 'İsim',
|
||||
'nb_NO' => '',
|
||||
'nb_NO' => 'Norveç Havayolları',
|
||||
'needs_correction' => '',
|
||||
'needs_workflow_action' => 'Bu doküman dikkatinizi gerektiriyor. Lütfen iş akış sekmesini kontrol ediniz.',
|
||||
'network_drive' => '',
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (766), archonwang (469), fengjohn (5), yang86 (1)
|
||||
// Translators: Admin (770), archonwang (469), fengjohn (5), yang86 (1)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '双重认证',
|
||||
|
|
@ -517,7 +517,7 @@ URL: [url]',
|
|||
'event_details' => '错误详情',
|
||||
'exclude_items' => '排除项目',
|
||||
'expired' => '过期',
|
||||
'expired_at_date' => '',
|
||||
'expired_at_date' => '过期时间',
|
||||
'expired_documents' => '过期文档',
|
||||
'expires' => '有效限期',
|
||||
'expire_by_date' => '指定过期时间',
|
||||
|
|
@ -786,9 +786,9 @@ URL: [url]',
|
|||
'move_folder' => '移动文件夹',
|
||||
'my_account' => '我的账户',
|
||||
'my_documents' => '我的文档',
|
||||
'my_transmittals' => '',
|
||||
'my_transmittals' => '我的送达函',
|
||||
'name' => '名称',
|
||||
'nb_NO' => '',
|
||||
'nb_NO' => '挪威语(书面挪威语)',
|
||||
'needs_correction' => '',
|
||||
'needs_workflow_action' => '',
|
||||
'network_drive' => '网络驱动器',
|
||||
|
|
@ -1125,7 +1125,7 @@ URL: [url]',
|
|||
'scheduler_class_description' => '',
|
||||
'scheduler_class_parameter' => '',
|
||||
'scheduler_class_tasks' => '',
|
||||
'scheduler_task_mgr' => '',
|
||||
'scheduler_task_mgr' => '排程表',
|
||||
'search' => '搜索',
|
||||
'search_fulltext' => '全文检索',
|
||||
'search_in' => '搜索于',
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ if ($accessop->check_controller_access($controller, array('action'=>'setOwner'))
|
|||
$owner = $user;
|
||||
}
|
||||
$comment = trim($_POST["comment"]);
|
||||
$version_comment = trim($_POST["version_comment"]);
|
||||
$version_comment = !empty($_POST["version_comment"]) ? trim($_POST["version_comment"]) : '';
|
||||
if($version_comment == "" && isset($_POST["use_comment"]))
|
||||
$version_comment = $comment;
|
||||
|
||||
|
|
@ -408,10 +408,14 @@ if(!empty($_POST['notification_groups'])) {
|
|||
}
|
||||
|
||||
/* Check files for Errors first */
|
||||
$maxuploadsize = SeedDMS_Core_File::parse_filesize($settings->_maxUploadSize);
|
||||
for ($file_num=0;$file_num<count($_FILES["userfile"]["tmp_name"]);$file_num++){
|
||||
if ($_FILES["userfile"]["size"][$file_num]==0) {
|
||||
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("uploading_zerosize"));
|
||||
}
|
||||
if ($maxuploadsize && $_FILES["userfile"]["size"][$file_num] > $maxuploadsize) {
|
||||
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("uploading_maxsize"));
|
||||
}
|
||||
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"));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -62,10 +62,14 @@ if(isset($_POST[$prefix.'-fine-uploader-uuids']) && $_POST[$prefix.'-fine-upload
|
|||
}
|
||||
}
|
||||
|
||||
$maxuploadsize = SeedDMS_Core_File::parse_filesize($settings->_maxUploadSize);
|
||||
for ($file_num=0;$file_num<count($_FILES["userfile"]["tmp_name"]);$file_num++){
|
||||
if ($_FILES["userfile"]["size"][$file_num]==0) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("uploading_zerosize"));
|
||||
}
|
||||
if ($maxuploadsize && $_FILES["userfile"]["size"][$file_num] > $maxuploadsize) {
|
||||
UI::exitError(getMLText("folder_title", array("documentname" => $document->getName())),getMLText("uploading_maxsize"));
|
||||
}
|
||||
if (is_uploaded_file($_FILES["userfile"]["tmp_name"][$file_num]) && $_FILES['userfile']['error'][$file_num] != 0){
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("uploading_failed"));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -666,6 +666,13 @@ switch($command) {
|
|||
exit;
|
||||
}
|
||||
|
||||
$maxuploadsize = SeedDMS_Core_File::parse_filesize($settings->_maxUploadSize);
|
||||
if ($maxuploadsize && $_FILES["userfile"]["size"] > $maxuploadsize) {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>false, 'message'=>getMLText("uploading_maxsize")));
|
||||
exit;
|
||||
}
|
||||
|
||||
$userfiletmp = $_FILES["userfile"]["tmp_name"];
|
||||
$userfiletype = $_FILES["userfile"]["type"];
|
||||
$userfilename = $_FILES["userfile"]["name"];
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ if ($action == "addtask") { /* {{{ */
|
|||
add_log_line(".php&action=addtask&name=".$name);
|
||||
} /* }}} */
|
||||
|
||||
// modify transmittal ----------------------------------------------------
|
||||
// modify task ----------------------------------------------------
|
||||
else if ($action == "edittask") { /* {{{ */
|
||||
|
||||
/* Check if the form data comes for a trusted request */
|
||||
|
|
@ -90,7 +90,7 @@ else if ($action == "edittask") { /* {{{ */
|
|||
$frequency = $_POST["frequency"];
|
||||
$disabled = isset($_POST["disabled"]) ? $_POST["disabled"] : 0;
|
||||
$params = $_POST["params"];
|
||||
|
||||
|
||||
if ($editedtask->getName() != $name)
|
||||
$editedtask->setName($name);
|
||||
if ($editedtask->getDescription() != $description)
|
||||
|
|
@ -104,5 +104,40 @@ else if ($action == "edittask") { /* {{{ */
|
|||
add_log_line(".php&action=edittask&taskid=".$taskid);
|
||||
} /* }}} */
|
||||
|
||||
// delete task -------------------------------------------------------------
|
||||
else if ($action == "removetask") { /* {{{ */
|
||||
header('Content-Type: application/json');
|
||||
|
||||
/* Check if the form data comes from a trusted request */
|
||||
if(!checkFormKey('removetask')) {
|
||||
echo json_encode(array('success'=>false, 'message'=>getMLText("invalid_request_token")));
|
||||
exit;
|
||||
}
|
||||
|
||||
if (!isset($_POST["taskid"]) || !is_numeric($_POST["taskid"]) || intval($_POST["taskid"])<1) {
|
||||
echo json_encode(array('success'=>false, 'message'=>getMLText("invalid_task")));
|
||||
exit;
|
||||
}
|
||||
|
||||
$taskid=$_POST["taskid"];
|
||||
$task = $scheduler->getTask($taskid);
|
||||
|
||||
if (!is_object($task)) {
|
||||
echo json_encode(array('success'=>false, 'message'=>getMLText("invalid_task")));
|
||||
exit;
|
||||
}
|
||||
|
||||
if (!$task->remove()) {
|
||||
echo json_encode(array('success'=>false, 'message'=>getMLText("error_occured")));
|
||||
exit;
|
||||
}
|
||||
|
||||
add_log_line("?taskid=".$_POST["taskid"]."&action=removetask");
|
||||
|
||||
echo json_encode(array('success'=>true, 'message'=>getMLText("task_removed")));
|
||||
exit;
|
||||
} /* }}} */
|
||||
|
||||
|
||||
header("Location:../out/out.SchedulerTaskMgr.php");
|
||||
|
||||
|
|
|
|||
|
|
@ -212,7 +212,7 @@ if (count($revisionIndex["i"]) > 0) {
|
|||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("recipient_already_removed"));
|
||||
break;
|
||||
case -4:
|
||||
// email error
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("recipient_was_active"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -315,7 +315,7 @@ if (count($revisionIndex["g"]) > 0) {
|
|||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("recipient_already_removed"));
|
||||
break;
|
||||
case -4:
|
||||
// email error
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("recipient_was_active"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -323,6 +323,11 @@ if (count($revisionIndex["g"]) > 0) {
|
|||
}
|
||||
}
|
||||
|
||||
/* If all revisors has been removed, then clear the next revision date */
|
||||
if(!$pIndRev && !$pGrpRev) {
|
||||
$content->setRevisionDate(false);
|
||||
}
|
||||
|
||||
/* Recheck status, because all revisors could have been removed */
|
||||
$content->verifyStatus(false, $user, getMLText('automatic_status_update'), $settings->_initialDocumentStatus);
|
||||
|
||||
|
|
|
|||
|
|
@ -91,6 +91,11 @@ if (isset($_FILES['userfile']) && $_FILES['userfile']['error'] == 0) {
|
|||
if($_FILES["userfile"]["size"] == 0)
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("uploading_zerosize"));
|
||||
|
||||
$maxuploadsize = SeedDMS_Core_File::parse_filesize($settings->_maxUploadSize);
|
||||
if ($maxuploadsize && $_FILES["userfile"]["size"] > $maxuploadsize) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("uploading_maxsize"));
|
||||
}
|
||||
|
||||
$userfiletmp = $_FILES["userfile"]["tmp_name"];
|
||||
$userfiletype = $_FILES["userfile"]["type"];
|
||||
$userfilename = $_FILES["userfile"]["name"];
|
||||
|
|
|
|||
|
|
@ -91,7 +91,6 @@ if($view) {
|
|||
$view->setParam('presetexpiration', $settings->_presetExpirationDate);
|
||||
$view->setParam('sortusersinlist', $settings->_sortUsersInList);
|
||||
$view->setParam('defaultposition', $settings->_defaultDocPosition);
|
||||
$view->setParam('maxuploadsize', $settings->_maxUploadSize);
|
||||
$view->setParam('orderby', $settings->_sortFoldersDefault);
|
||||
$view->setParam('accessobject', $accessop);
|
||||
$view($_GET);
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ if(isset($_GET['transmittalid']) && $_GET['transmittalid']) {
|
|||
|
||||
if($view) {
|
||||
$view->setParam('seltransmittal', $seltransmittal);
|
||||
$view->setParam('showtree', showtree());
|
||||
$view->setParam('cachedir', $settings->_cacheDir);
|
||||
$view->setParam('timeout', $settings->_cmdTimeout);
|
||||
$view->setParam('previewWidthList', $settings->_previewWidthList);
|
||||
|
|
|
|||
|
|
@ -60,6 +60,10 @@ ul.jqtree-tree li.jqtree-selected > .jqtree-element:hover {
|
|||
font-weight: bold;
|
||||
}
|
||||
|
||||
legend > span {
|
||||
float: right;
|
||||
}
|
||||
|
||||
td.today {
|
||||
background-color: rgb(255, 200, 0);
|
||||
}
|
||||
|
|
@ -158,6 +162,21 @@ div.splash {
|
|||
display: none;
|
||||
}
|
||||
|
||||
div.clipboard-container {
|
||||
position: fixed;
|
||||
left: 10px;
|
||||
top: 40px;
|
||||
width: 29.8%;
|
||||
background: white;
|
||||
border: 1px solid #d4d4d4;
|
||||
border-radius: 5px;
|
||||
padding: 10px;
|
||||
height: 500px;
|
||||
margin: 10px;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
div.statusbar-container {
|
||||
display: none;
|
||||
position: fixed;
|
||||
|
|
|
|||
|
|
@ -166,6 +166,12 @@ $(document).ready( function() {
|
|||
}
|
||||
}); /* }}} */
|
||||
|
||||
$('body').on('click', '#clipboard-float', function(ev) { /* {{{ */
|
||||
ev.preventDefault();
|
||||
ev.stopPropagation();
|
||||
$('#clipboard-container').toggleClass('clipboard-container');
|
||||
}); /* }}} */
|
||||
|
||||
$('body').on('click', 'a.addtoclipboard', function(ev) { /* {{{ */
|
||||
ev.preventDefault();
|
||||
ev.stopPropagation();
|
||||
|
|
@ -178,7 +184,7 @@ $(document).ready( function() {
|
|||
function(data) {
|
||||
if(data.success) {
|
||||
$("#main-clipboard").html('Loading').load('../out/out.Clipboard.php?action=mainclipboard')
|
||||
$("#menu-clipboard").html('Loading').load('../out/out.Clipboard.php?action=menuclipboard')
|
||||
$("#menu-clipboard div").html('Loading').load('../out/out.Clipboard.php?action=menuclipboard')
|
||||
noty({
|
||||
text: attr_msg,
|
||||
type: 'success',
|
||||
|
|
@ -213,7 +219,7 @@ $(document).ready( function() {
|
|||
function(data) {
|
||||
if(data.success) {
|
||||
$("#main-clipboard").html('Loading').load('../out/out.Clipboard.php?action=mainclipboard')
|
||||
$("#menu-clipboard").html('Loading').load('../out/out.Clipboard.php?action=menuclipboard')
|
||||
$("#menu-clipboard div").html('Loading').load('../out/out.Clipboard.php?action=menuclipboard')
|
||||
noty({
|
||||
text: attr_msg,
|
||||
type: 'success',
|
||||
|
|
@ -451,7 +457,7 @@ $(document).ready( function() {
|
|||
if(data.success) {
|
||||
if(element.data('param1') == 'command=clearclipboard') {
|
||||
$("#main-clipboard").html('Loading').load('../out/out.Clipboard.php?action=mainclipboard')
|
||||
$("#menu-clipboard").html('Loading').load('../out/out.Clipboard.php?action=menuclipboard')
|
||||
$("#menu-clipboard div").html('Loading').load('../out/out.Clipboard.php?action=menuclipboard')
|
||||
}
|
||||
noty({
|
||||
text: data.message,
|
||||
|
|
@ -492,7 +498,7 @@ function onAddClipboard(ev) { /* {{{ */
|
|||
function(data) {
|
||||
if(data.success) {
|
||||
$("#main-clipboard").html('Loading').load('../out/out.Clipboard.php?action=mainclipboard')
|
||||
$("#menu-clipboard").html('Loading').load('../out/out.Clipboard.php?action=menuclipboard')
|
||||
$("#menu-clipboard div").html('Loading').load('../out/out.Clipboard.php?action=menuclipboard')
|
||||
noty({
|
||||
text: data.message,
|
||||
type: 'success',
|
||||
|
|
@ -758,18 +764,18 @@ $(document).ready(function() { /* {{{ */
|
|||
attr_rel = $(e.currentTarget).data('droptarget');
|
||||
target_type = attr_rel.split("_")[0];
|
||||
target_id = attr_rel.split("_")[1];
|
||||
target_name = $(e.currentTarget).data('name')
|
||||
target_name = $(e.currentTarget).data('name')+''; // Force this to be a string
|
||||
if(target_type == 'folder') {
|
||||
var files = e.originalEvent.dataTransfer.files;
|
||||
if(files.length > 0) {
|
||||
console.log('Drop '+files.length+' files on '+target_type+' '+target_id);
|
||||
// console.log('Drop '+files.length+' files on '+target_type+' '+target_id);
|
||||
SeedDMSUpload.handleFileUpload(files,$(e.currentTarget),$('div.statusbar-container h1')/*$(e.currentTarget).find("span")*/);
|
||||
} else {
|
||||
var source_info = JSON.parse(e.originalEvent.dataTransfer.getData("text"));
|
||||
source_type = source_info.type;
|
||||
source_id = source_info.id;
|
||||
formtoken = source_info.formtoken;
|
||||
console.log('Drop '+source_type+' '+source_id+' on '+target_type+' '+target_id);
|
||||
// console.log('Drop '+source_type+' '+source_id+' on '+target_type+' '+target_id);
|
||||
if(source_type == 'document') {
|
||||
var bootbox_message = trans.confirm_move_document;
|
||||
if(source_info.name)
|
||||
|
|
@ -863,14 +869,14 @@ $(document).ready(function() { /* {{{ */
|
|||
} else if(target_type == 'document') {
|
||||
var files = e.originalEvent.dataTransfer.files;
|
||||
if(files.length > 0) {
|
||||
console.log('Drop '+files.length+' files on '+target_type+' '+target_id);
|
||||
// console.log('Drop '+files.length+' files on '+target_type+' '+target_id);
|
||||
SeedDMSUpload.handleFileUpload(files,$(e.currentTarget),$('div.statusbar-container h1')/*$(e.currentTarget).find("span")*/);
|
||||
} else {
|
||||
var source_info = JSON.parse(e.originalEvent.dataTransfer.getData("text"));
|
||||
source_type = source_info.type;
|
||||
source_id = source_info.id;
|
||||
formtoken = source_info.formtoken;
|
||||
console.log('Drop '+source_type+' '+source_id+' on '+target_type+' '+target_id);
|
||||
// console.log('Drop '+source_type+' '+source_id+' on '+target_type+' '+target_id);
|
||||
if(source_type == 'document') {
|
||||
if(source_id != target_id) {
|
||||
bootbox.dialog(trans.confirm_transfer_link_document, [{
|
||||
|
|
@ -956,7 +962,7 @@ $(document).ready(function() { /* {{{ */
|
|||
id : attr_rel.split("_")[1],
|
||||
type : "folder",
|
||||
formtoken : $(e.target).attr('formtoken'),
|
||||
name: $(e.target).data('name')
|
||||
name: $(e.target).data('name')+''
|
||||
};
|
||||
/* Currently not used
|
||||
$.ajax({url: '../out/out.ViewFolder.php',
|
||||
|
|
@ -982,7 +988,7 @@ $(document).ready(function() { /* {{{ */
|
|||
id : attr_rel.split("_")[1],
|
||||
type : "document",
|
||||
formtoken : $(e.target).attr('formtoken'),
|
||||
name: $(e.target).data('name')
|
||||
name: $(e.target).data('name')+''
|
||||
};
|
||||
e.originalEvent.dataTransfer.setData("text", JSON.stringify(dragStartInfo));
|
||||
});
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
|
|
@ -1,5 +1,7 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2010-2012, Andrew Valums
|
||||
Copyright (c) 2012-2013, Andrew Valums and Raymond S. Nicholus, III
|
||||
Copyright (c) 2013-present, Widen Enterprises, Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Fine Uploader 5.12.0 - (c) 2013-present Widen Enterprises, Inc. MIT licensed. http://fineuploader.com
|
||||
// Fine Uploader 5.16.2 - MIT licensed. http://fineuploader.com
|
||||
(function(global) {
|
||||
var qq = function(element) {
|
||||
"use strict";
|
||||
|
|
@ -578,7 +578,7 @@
|
|||
global.qq = qq;
|
||||
}
|
||||
})();
|
||||
qq.version = "5.12.0";
|
||||
qq.version = "5.16.2";
|
||||
qq.supportedFeatures = function() {
|
||||
"use strict";
|
||||
var supportsUploading, supportsUploadingBlobs, supportsFileDrop, supportsAjaxFileUploading, supportsFolderDrop, supportsChunking, supportsResume, supportsUploadViaPaste, supportsUploadCors, supportsDeleteFileXdr, supportsDeleteFileCorsXhr, supportsDeleteFileCors, supportsFolderSelection, supportsImagePreviews, supportsUploadProgress;
|
||||
|
|
@ -596,9 +596,6 @@
|
|||
}
|
||||
return supported;
|
||||
}
|
||||
function isChrome21OrHigher() {
|
||||
return (qq.chrome() || qq.opera()) && navigator.userAgent.match(/Chrome\/[2][1-9]|Chrome\/[3-9][0-9]/) !== undefined;
|
||||
}
|
||||
function isChrome14OrHigher() {
|
||||
return (qq.chrome() || qq.opera()) && navigator.userAgent.match(/Chrome\/[1][4-9]|Chrome\/[2-9][0-9]/) !== undefined;
|
||||
}
|
||||
|
|
@ -636,7 +633,11 @@
|
|||
supportsAjaxFileUploading = supportsUploading && qq.isXhrUploadSupported();
|
||||
supportsUploadingBlobs = supportsAjaxFileUploading && !qq.androidStock();
|
||||
supportsFileDrop = supportsAjaxFileUploading && isDragAndDropSupported();
|
||||
supportsFolderDrop = supportsFileDrop && isChrome21OrHigher();
|
||||
supportsFolderDrop = supportsFileDrop && function() {
|
||||
var input = document.createElement("input");
|
||||
input.type = "file";
|
||||
return !!("webkitdirectory" in (input || document.querySelectorAll("input[type=file]")[0]));
|
||||
}();
|
||||
supportsChunking = supportsAjaxFileUploading && qq.isFileChunkingSupported();
|
||||
supportsResume = supportsAjaxFileUploading && supportsChunking && isLocalStorageSupported();
|
||||
supportsUploadViaPaste = supportsAjaxFileUploading && isChrome14OrHigher();
|
||||
|
|
@ -765,12 +766,7 @@
|
|||
var parseEntryPromise = new qq.Promise();
|
||||
if (entry.isFile) {
|
||||
entry.file(function(file) {
|
||||
var name = entry.name, fullPath = entry.fullPath, indexOfNameInFullPath = fullPath.indexOf(name);
|
||||
fullPath = fullPath.substr(0, indexOfNameInFullPath);
|
||||
if (fullPath.charAt(0) === "/") {
|
||||
fullPath = fullPath.substr(1);
|
||||
}
|
||||
file.qqPath = fullPath;
|
||||
file.qqPath = extractDirectoryPath(entry);
|
||||
droppedFiles.push(file);
|
||||
parseEntryPromise.success();
|
||||
}, function(fileError) {
|
||||
|
|
@ -798,6 +794,14 @@
|
|||
}
|
||||
return parseEntryPromise;
|
||||
}
|
||||
function extractDirectoryPath(entry) {
|
||||
var name = entry.name, fullPath = entry.fullPath, indexOfNameInFullPath = fullPath.lastIndexOf(name);
|
||||
fullPath = fullPath.substr(0, indexOfNameInFullPath);
|
||||
if (fullPath.charAt(0) === "/") {
|
||||
fullPath = fullPath.substr(1);
|
||||
}
|
||||
return fullPath;
|
||||
}
|
||||
function getFilesInDirectory(entry, reader, accumEntries, existingPromise) {
|
||||
var promise = existingPromise || new qq.Promise(), dirReader = reader || entry.createReader();
|
||||
dirReader.readEntries(function readSuccess(entries) {
|
||||
|
|
@ -885,9 +889,6 @@
|
|||
return fileDrag;
|
||||
}
|
||||
function leavingDocumentOut(e) {
|
||||
if (qq.firefox()) {
|
||||
return !e.relatedTarget;
|
||||
}
|
||||
if (qq.safari()) {
|
||||
return e.x < 0 || e.y < 0;
|
||||
}
|
||||
|
|
@ -927,8 +928,10 @@
|
|||
maybeHideDropZones();
|
||||
});
|
||||
disposeSupport.attach(document, "drop", function(e) {
|
||||
e.preventDefault();
|
||||
maybeHideDropZones();
|
||||
if (isFileDrag(e)) {
|
||||
e.preventDefault();
|
||||
maybeHideDropZones();
|
||||
}
|
||||
});
|
||||
disposeSupport.attach(document, HIDE_ZONES_EVENT_NAME, maybeHideDropZones);
|
||||
}
|
||||
|
|
@ -953,6 +956,8 @@
|
|||
});
|
||||
}
|
||||
});
|
||||
this._testing = {};
|
||||
this._testing.extractDirectoryPath = extractDirectoryPath;
|
||||
};
|
||||
qq.DragAndDrop.callbacks = function() {
|
||||
"use strict";
|
||||
|
|
@ -1005,7 +1010,7 @@
|
|||
}
|
||||
var effectTest, dt = e.dataTransfer, isSafari = qq.safari();
|
||||
effectTest = qq.ie() && qq.supportedFeatures.fileDrop ? true : dt.effectAllowed !== "none";
|
||||
return dt && effectTest && (dt.files || !isSafari && dt.types.contains && dt.types.contains("Files"));
|
||||
return dt && effectTest && (dt.files && dt.files.length || !isSafari && dt.types.contains && dt.types.contains("Files") || dt.types.includes && dt.types.includes("Files"));
|
||||
}
|
||||
function isOrSetDropDisabled(isDisabled) {
|
||||
if (isDisabled !== undefined) {
|
||||
|
|
@ -1088,6 +1093,8 @@
|
|||
return element;
|
||||
}
|
||||
});
|
||||
this._testing = {};
|
||||
this._testing.isValidFileDrag = isValidFileDrag;
|
||||
};
|
||||
})(window);
|
||||
//# sourceMappingURL=dnd.js.map
|
||||
File diff suppressed because one or more lines are too long
4
styles/bootstrap/fine-uploader/dnd.min.js
vendored
4
styles/bootstrap/fine-uploader/dnd.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
{"version":3,"sources":["_build/fine-uploader-gallery.css"],"names":[],"mappings":"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"}
|
||||
{"version":3,"sources":["_build/fine-uploader-gallery.css"],"names":[],"mappings":"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"}
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +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"}
|
||||
{"version":3,"sources":["_build/fine-uploader-new.css"],"names":[],"mappings":"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"}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
// Fine Uploader 5.12.0 - (c) 2013-present Widen Enterprises, Inc. MIT licensed. http://fineuploader.com
|
||||
// Fine Uploader 5.16.2 - MIT licensed. http://fineuploader.com
|
||||
(function(global) {
|
||||
var qq = function(element) {
|
||||
"use strict";
|
||||
|
|
@ -585,7 +585,7 @@
|
|||
};
|
||||
qq.Error.prototype = new Error();
|
||||
})();
|
||||
qq.version = "5.12.0";
|
||||
qq.version = "5.16.2";
|
||||
qq.supportedFeatures = function() {
|
||||
"use strict";
|
||||
var supportsUploading, supportsUploadingBlobs, supportsFileDrop, supportsAjaxFileUploading, supportsFolderDrop, supportsChunking, supportsResume, supportsUploadViaPaste, supportsUploadCors, supportsDeleteFileXdr, supportsDeleteFileCorsXhr, supportsDeleteFileCors, supportsFolderSelection, supportsImagePreviews, supportsUploadProgress;
|
||||
|
|
@ -603,9 +603,6 @@
|
|||
}
|
||||
return supported;
|
||||
}
|
||||
function isChrome21OrHigher() {
|
||||
return (qq.chrome() || qq.opera()) && navigator.userAgent.match(/Chrome\/[2][1-9]|Chrome\/[3-9][0-9]/) !== undefined;
|
||||
}
|
||||
function isChrome14OrHigher() {
|
||||
return (qq.chrome() || qq.opera()) && navigator.userAgent.match(/Chrome\/[1][4-9]|Chrome\/[2-9][0-9]/) !== undefined;
|
||||
}
|
||||
|
|
@ -643,7 +640,11 @@
|
|||
supportsAjaxFileUploading = supportsUploading && qq.isXhrUploadSupported();
|
||||
supportsUploadingBlobs = supportsAjaxFileUploading && !qq.androidStock();
|
||||
supportsFileDrop = supportsAjaxFileUploading && isDragAndDropSupported();
|
||||
supportsFolderDrop = supportsFileDrop && isChrome21OrHigher();
|
||||
supportsFolderDrop = supportsFileDrop && function() {
|
||||
var input = document.createElement("input");
|
||||
input.type = "file";
|
||||
return !!("webkitdirectory" in (input || document.querySelectorAll("input[type=file]")[0]));
|
||||
}();
|
||||
supportsChunking = supportsAjaxFileUploading && qq.isFileChunkingSupported();
|
||||
supportsResume = supportsAjaxFileUploading && supportsChunking && isLocalStorageSupported();
|
||||
supportsUploadViaPaste = supportsAjaxFileUploading && isChrome14OrHigher();
|
||||
|
|
@ -903,7 +904,8 @@
|
|||
originalName: spec.name,
|
||||
uuid: spec.uuid,
|
||||
size: spec.size == null ? -1 : spec.size,
|
||||
status: status
|
||||
status: status,
|
||||
file: spec.file
|
||||
}) - 1;
|
||||
if (spec.batchId) {
|
||||
data[id].batchId = spec.batchId;
|
||||
|
|
@ -925,6 +927,7 @@
|
|||
byStatus[status] = [];
|
||||
}
|
||||
byStatus[status].push(id);
|
||||
spec.onBeforeStatusChange && spec.onBeforeStatusChange(id);
|
||||
uploaderProxy.onStatusChange(id, null, status);
|
||||
return id;
|
||||
},
|
||||
|
|
@ -941,6 +944,12 @@
|
|||
return qq.extend([], data, true);
|
||||
}
|
||||
},
|
||||
removeFileRef: function(id) {
|
||||
var record = getDataByIds(id);
|
||||
if (record) {
|
||||
delete record.file;
|
||||
}
|
||||
},
|
||||
reset: function() {
|
||||
data = [];
|
||||
byUuid = {};
|
||||
|
|
@ -993,6 +1002,7 @@
|
|||
CANCELED: "canceled",
|
||||
PAUSED: "paused",
|
||||
UPLOADING: "uploading",
|
||||
UPLOAD_FINALIZING: "upload finalizing",
|
||||
UPLOAD_RETRYING: "retrying upload",
|
||||
UPLOAD_SUCCESSFUL: "upload successful",
|
||||
UPLOAD_FAILED: "upload failed",
|
||||
|
|
@ -1073,7 +1083,14 @@
|
|||
}
|
||||
},
|
||||
cancel: function(id) {
|
||||
this._handler.cancel(id);
|
||||
var uploadData = this._uploadData.retrieve({
|
||||
id: id
|
||||
});
|
||||
if (uploadData && uploadData.status === qq.status.UPLOAD_FINALIZING) {
|
||||
this.log(qq.format("Ignoring cancel for file ID {} ({}). Finalizing upload.", id, this.getName(id)), "error");
|
||||
} else {
|
||||
this._handler.cancel(id);
|
||||
}
|
||||
},
|
||||
cancelAll: function() {
|
||||
var storedIdsCopy = [], self = this;
|
||||
|
|
@ -1150,7 +1167,17 @@
|
|||
return this._endpointStore.get(fileId);
|
||||
},
|
||||
getFile: function(fileOrBlobId) {
|
||||
return this._handler.getFile(fileOrBlobId) || null;
|
||||
var file = this._handler.getFile(fileOrBlobId);
|
||||
var uploadDataRecord;
|
||||
if (!file) {
|
||||
uploadDataRecord = this._uploadData.retrieve({
|
||||
id: fileOrBlobId
|
||||
});
|
||||
if (uploadDataRecord) {
|
||||
file = uploadDataRecord.file;
|
||||
}
|
||||
}
|
||||
return file || null;
|
||||
},
|
||||
getInProgress: function() {
|
||||
return this._uploadData.retrieve({
|
||||
|
|
@ -1199,6 +1226,9 @@
|
|||
id: id
|
||||
}).uuid;
|
||||
},
|
||||
isResumable: function(id) {
|
||||
return this._handler.hasResumeRecord(id);
|
||||
},
|
||||
log: function(str, level) {
|
||||
if (this._options.debug && (!level || level === "info")) {
|
||||
qq.log("[Fine Uploader " + qq.version + "] " + str);
|
||||
|
|
@ -1225,6 +1255,10 @@
|
|||
}
|
||||
return false;
|
||||
},
|
||||
removeFileRef: function(id) {
|
||||
this._handler.expunge(id);
|
||||
this._uploadData.removeFileRef(id);
|
||||
},
|
||||
reset: function() {
|
||||
this.log("Resetting uploader...");
|
||||
this._handler.reset();
|
||||
|
|
@ -1247,6 +1281,7 @@
|
|||
this._succeededSinceLastAllComplete = [];
|
||||
this._failedSinceLastAllComplete = [];
|
||||
this._totalProgress && this._totalProgress.reset();
|
||||
this._customResumeDataStore.reset();
|
||||
},
|
||||
retry: function(id) {
|
||||
return this._manualRetry(id);
|
||||
|
|
@ -1262,6 +1297,9 @@
|
|||
setCustomHeaders: function(headers, id) {
|
||||
this._customHeadersStore.set(headers, id);
|
||||
},
|
||||
setCustomResumeData: function(id, data) {
|
||||
this._customResumeDataStore.set(data, id);
|
||||
},
|
||||
setDeleteFileCustomHeaders: function(headers, id) {
|
||||
this._deleteFileCustomHeadersStore.set(headers, id);
|
||||
},
|
||||
|
|
@ -1289,6 +1327,28 @@
|
|||
setUuid: function(id, newUuid) {
|
||||
return this._uploadData.uuidChanged(id, newUuid);
|
||||
},
|
||||
setStatus: function(id, newStatus) {
|
||||
var fileRecord = this.getUploads({
|
||||
id: id
|
||||
});
|
||||
if (!fileRecord) {
|
||||
throw new qq.Error(id + " is not a valid file ID.");
|
||||
}
|
||||
switch (newStatus) {
|
||||
case qq.status.DELETED:
|
||||
this._onDeleteComplete(id, null, false);
|
||||
break;
|
||||
|
||||
case qq.status.DELETE_FAILED:
|
||||
this._onDeleteComplete(id, null, true);
|
||||
break;
|
||||
|
||||
default:
|
||||
var errorMessage = "Method setStatus called on '" + name + "' not implemented yet for " + newStatus;
|
||||
this.log(errorMessage);
|
||||
throw new qq.Error(errorMessage);
|
||||
}
|
||||
},
|
||||
uploadStoredFiles: function() {
|
||||
if (this._storedIds.length === 0) {
|
||||
this._itemError("noFilesError");
|
||||
|
|
@ -1299,20 +1359,22 @@
|
|||
};
|
||||
qq.basePrivateApi = {
|
||||
_addCannedFile: function(sessionData) {
|
||||
var id = this._uploadData.addFile({
|
||||
var self = this;
|
||||
return this._uploadData.addFile({
|
||||
uuid: sessionData.uuid,
|
||||
name: sessionData.name,
|
||||
size: sessionData.size,
|
||||
status: qq.status.UPLOAD_SUCCESSFUL
|
||||
status: qq.status.UPLOAD_SUCCESSFUL,
|
||||
onBeforeStatusChange: function(id) {
|
||||
sessionData.deleteFileEndpoint && self.setDeleteFileEndpoint(sessionData.deleteFileEndpoint, id);
|
||||
sessionData.deleteFileParams && self.setDeleteFileParams(sessionData.deleteFileParams, id);
|
||||
if (sessionData.thumbnailUrl) {
|
||||
self._thumbnailUrls[id] = sessionData.thumbnailUrl;
|
||||
}
|
||||
self._netUploaded++;
|
||||
self._netUploadedOrQueued++;
|
||||
}
|
||||
});
|
||||
sessionData.deleteFileEndpoint && this.setDeleteFileEndpoint(sessionData.deleteFileEndpoint, id);
|
||||
sessionData.deleteFileParams && this.setDeleteFileParams(sessionData.deleteFileParams, id);
|
||||
if (sessionData.thumbnailUrl) {
|
||||
this._thumbnailUrls[id] = sessionData.thumbnailUrl;
|
||||
}
|
||||
this._netUploaded++;
|
||||
this._netUploadedOrQueued++;
|
||||
return id;
|
||||
},
|
||||
_annotateWithButtonId: function(file, associatedInput) {
|
||||
if (qq.isFile(file)) {
|
||||
|
|
@ -1547,17 +1609,28 @@
|
|||
onUploadPrep: qq.bind(this._onUploadPrep, this),
|
||||
onUpload: function(id, name) {
|
||||
self._onUpload(id, name);
|
||||
self._options.callbacks.onUpload(id, name);
|
||||
var onUploadResult = self._options.callbacks.onUpload(id, name);
|
||||
if (qq.isGenericPromise(onUploadResult)) {
|
||||
self.log(qq.format("onUpload for {} returned a Promise - waiting for resolution.", id));
|
||||
return onUploadResult;
|
||||
}
|
||||
return new qq.Promise().success();
|
||||
},
|
||||
onUploadChunk: function(id, name, chunkData) {
|
||||
self._onUploadChunk(id, chunkData);
|
||||
self._options.callbacks.onUploadChunk(id, name, chunkData);
|
||||
var onUploadChunkResult = self._options.callbacks.onUploadChunk(id, name, chunkData);
|
||||
if (qq.isGenericPromise(onUploadChunkResult)) {
|
||||
self.log(qq.format("onUploadChunk for {}.{} returned a Promise - waiting for resolution.", id, chunkData.partIndex));
|
||||
return onUploadChunkResult;
|
||||
}
|
||||
return new qq.Promise().success();
|
||||
},
|
||||
onUploadChunkSuccess: function(id, chunkData, result, xhr) {
|
||||
self._onUploadChunkSuccess(id, chunkData);
|
||||
self._options.callbacks.onUploadChunkSuccess.apply(self, arguments);
|
||||
},
|
||||
onResume: function(id, name, chunkData) {
|
||||
return self._options.callbacks.onResume(id, name, chunkData);
|
||||
onResume: function(id, name, chunkData, customResumeData) {
|
||||
return self._options.callbacks.onResume(id, name, chunkData, customResumeData);
|
||||
},
|
||||
onAutoRetry: function(id, name, responseJSON, xhr) {
|
||||
return self._onAutoRetry.apply(self, arguments);
|
||||
|
|
@ -1582,7 +1655,16 @@
|
|||
return status === qq.status.QUEUED || status === qq.status.SUBMITTED || status === qq.status.UPLOAD_RETRYING || status === qq.status.PAUSED;
|
||||
},
|
||||
getIdsInProxyGroup: self._uploadData.getIdsInProxyGroup,
|
||||
getIdsInBatch: self._uploadData.getIdsInBatch
|
||||
getIdsInBatch: self._uploadData.getIdsInBatch,
|
||||
isInProgress: function(id) {
|
||||
return self.getUploads({
|
||||
id: id
|
||||
}).status === qq.status.UPLOADING;
|
||||
},
|
||||
getCustomResumeData: qq.bind(self._getCustomResumeData, self),
|
||||
setStatus: function(id, status) {
|
||||
self._uploadData.setStatus(id, status);
|
||||
}
|
||||
};
|
||||
qq.each(this._options.request, function(prop, val) {
|
||||
options[prop] = val;
|
||||
|
|
@ -1659,6 +1741,9 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
_getCustomResumeData: function(fileId) {
|
||||
return this._customResumeDataStore.get(fileId);
|
||||
},
|
||||
_getNotFinished: function() {
|
||||
return this._uploadData.retrieve({
|
||||
status: [ qq.status.UPLOADING, qq.status.UPLOAD_RETRYING, qq.status.QUEUED, qq.status.SUBMITTING, qq.status.SUBMITTED, qq.status.PAUSED ]
|
||||
|
|
@ -1760,7 +1845,8 @@
|
|||
uuid: uuid,
|
||||
name: name,
|
||||
size: size,
|
||||
batchId: batchId
|
||||
batchId: batchId,
|
||||
file: file
|
||||
});
|
||||
this._handler.add(id, file);
|
||||
this._trackButton(id);
|
||||
|
|
@ -1781,6 +1867,28 @@
|
|||
blob: blob
|
||||
});
|
||||
},
|
||||
_handleDeleteSuccess: function(id) {
|
||||
if (this.getUploads({
|
||||
id: id
|
||||
}).status !== qq.status.DELETED) {
|
||||
var name = this.getName(id);
|
||||
this._netUploadedOrQueued--;
|
||||
this._netUploaded--;
|
||||
this._handler.expunge(id);
|
||||
this._uploadData.setStatus(id, qq.status.DELETED);
|
||||
this.log("Delete request for '" + name + "' has succeeded.");
|
||||
}
|
||||
},
|
||||
_handleDeleteFailed: function(id, xhrOrXdr) {
|
||||
var name = this.getName(id);
|
||||
this._uploadData.setStatus(id, qq.status.DELETE_FAILED);
|
||||
this.log("Delete request for '" + name + "' has failed.", "error");
|
||||
if (!xhrOrXdr || xhrOrXdr.withCredentials === undefined) {
|
||||
this._options.callbacks.onError(id, name, "Delete request failed", xhrOrXdr);
|
||||
} else {
|
||||
this._options.callbacks.onError(id, name, "Delete request failed with response code " + xhrOrXdr.status, xhrOrXdr);
|
||||
}
|
||||
},
|
||||
_initExtraButton: function(spec) {
|
||||
var button = this._createUploadButton({
|
||||
accept: spec.validation.acceptFiles,
|
||||
|
|
@ -1933,7 +2041,7 @@
|
|||
_onAutoRetry: function(id, name, responseJSON, xhr, callback) {
|
||||
var self = this;
|
||||
self._preventRetries[id] = responseJSON[self._options.retry.preventRetryResponseProperty];
|
||||
if (self._shouldAutoRetry(id, name, responseJSON)) {
|
||||
if (self._shouldAutoRetry(id)) {
|
||||
var retryWaitPeriod = self._options.retry.autoAttemptDelay * 1e3;
|
||||
self._maybeParseAndSendUploadError.apply(self, arguments);
|
||||
self._options.callbacks.onAutoRetry(id, name, self._autoRetries[id]);
|
||||
|
|
@ -2006,19 +2114,9 @@
|
|||
_onDeleteComplete: function(id, xhrOrXdr, isError) {
|
||||
var name = this.getName(id);
|
||||
if (isError) {
|
||||
this._uploadData.setStatus(id, qq.status.DELETE_FAILED);
|
||||
this.log("Delete request for '" + name + "' has failed.", "error");
|
||||
if (xhrOrXdr.withCredentials === undefined) {
|
||||
this._options.callbacks.onError(id, name, "Delete request failed", xhrOrXdr);
|
||||
} else {
|
||||
this._options.callbacks.onError(id, name, "Delete request failed with response code " + xhrOrXdr.status, xhrOrXdr);
|
||||
}
|
||||
this._handleDeleteFailed(id, xhrOrXdr);
|
||||
} else {
|
||||
this._netUploadedOrQueued--;
|
||||
this._netUploaded--;
|
||||
this._handler.expunge(id);
|
||||
this._uploadData.setStatus(id, qq.status.DELETED);
|
||||
this.log("Delete request for '" + name + "' has succeeded.");
|
||||
this._handleDeleteSuccess(id);
|
||||
}
|
||||
},
|
||||
_onInputChange: function(input) {
|
||||
|
|
@ -2078,6 +2176,11 @@
|
|||
this._uploadData.setStatus(id, qq.status.UPLOADING);
|
||||
},
|
||||
_onUploadChunk: function(id, chunkData) {},
|
||||
_onUploadChunkSuccess: function(id, chunkData) {
|
||||
if (!this._preventRetries[id] && this._options.retry.enableAuto) {
|
||||
this._autoRetries[id] = 0;
|
||||
}
|
||||
},
|
||||
_onUploadStatusChange: function(id, oldStatus, newStatus) {
|
||||
if (newStatus === qq.status.PAUSED) {
|
||||
clearTimeout(this._retryTimeouts[id]);
|
||||
|
|
@ -2173,7 +2276,7 @@
|
|||
this._uploadData.updateSize(id, newSize);
|
||||
this._totalProgress && this._totalProgress.onNewSize(id);
|
||||
},
|
||||
_shouldAutoRetry: function(id, name, responseJSON) {
|
||||
_shouldAutoRetry: function(id) {
|
||||
var uploadData = this._uploadData.retrieve({
|
||||
id: id
|
||||
});
|
||||
|
|
@ -2322,6 +2425,7 @@
|
|||
maxConnections: 3,
|
||||
disableCancelForFormUploads: false,
|
||||
autoUpload: true,
|
||||
warnBeforeUnload: true,
|
||||
request: {
|
||||
customHeaders: {},
|
||||
endpoint: "/server/upload",
|
||||
|
|
@ -2329,8 +2433,10 @@
|
|||
forceMultipart: true,
|
||||
inputName: "qqfile",
|
||||
method: "POST",
|
||||
omitDefaultParams: false,
|
||||
params: {},
|
||||
paramsInBody: true,
|
||||
requireSuccessJson: true,
|
||||
totalFileSizeName: "qqtotalfilesize",
|
||||
uuidName: "qquuid"
|
||||
},
|
||||
|
|
@ -2358,7 +2464,7 @@
|
|||
onUpload: function(id, name) {},
|
||||
onUploadChunk: function(id, name, chunkData) {},
|
||||
onUploadChunkSuccess: function(id, chunkData, responseJSON, xhr) {},
|
||||
onResume: function(id, fileName, chunkData) {},
|
||||
onResume: function(id, fileName, chunkData, customResumeData) {},
|
||||
onProgress: function(id, name, loaded, total) {},
|
||||
onTotalProgress: function(loaded, total) {},
|
||||
onError: function(id, name, reason, maybeXhrOrXdr) {},
|
||||
|
|
@ -2411,9 +2517,20 @@
|
|||
totalFileSize: "qqtotalfilesize",
|
||||
totalParts: "qqtotalparts"
|
||||
},
|
||||
partSize: 2e6,
|
||||
partSize: function(id) {
|
||||
return 2e6;
|
||||
},
|
||||
success: {
|
||||
endpoint: null
|
||||
endpoint: null,
|
||||
headers: function(id) {
|
||||
return null;
|
||||
},
|
||||
jsonPayload: false,
|
||||
method: "POST",
|
||||
params: function(id) {
|
||||
return null;
|
||||
},
|
||||
resetOnStatus: []
|
||||
}
|
||||
},
|
||||
resume: {
|
||||
|
|
@ -2421,6 +2538,9 @@
|
|||
recordsExpireIn: 7,
|
||||
paramNames: {
|
||||
resuming: "qqresume"
|
||||
},
|
||||
customKeys: function(fileId) {
|
||||
return [];
|
||||
}
|
||||
},
|
||||
formatFileName: function(fileOrBlobName) {
|
||||
|
|
@ -2519,7 +2639,7 @@
|
|||
this.log("Paste support module not found", "error");
|
||||
}
|
||||
}
|
||||
this._preventLeaveInProgress();
|
||||
this._options.warnBeforeUnload && this._preventLeaveInProgress();
|
||||
this._imageGenerator = qq.ImageGenerator && new qq.ImageGenerator(qq.bind(this.log, this));
|
||||
this._refreshSessionData();
|
||||
this._succeededSinceLastAllComplete = [];
|
||||
|
|
@ -2537,6 +2657,7 @@
|
|||
});
|
||||
}
|
||||
this._currentItemLimit = this._options.validation.itemLimit;
|
||||
this._customResumeDataStore = this._createStore();
|
||||
};
|
||||
qq.FineUploaderBasic.prototype = qq.basePublicApi;
|
||||
qq.extend(qq.FineUploaderBasic.prototype, qq.basePrivateApi);
|
||||
|
|
@ -2606,7 +2727,7 @@
|
|||
return xhrOrXdr;
|
||||
}
|
||||
function getXhrOrXdr(id, suppliedXhr) {
|
||||
var xhrOrXdr = requestData[id].xhr;
|
||||
var xhrOrXdr = requestData[id] && requestData[id].xhr;
|
||||
if (!xhrOrXdr) {
|
||||
if (suppliedXhr) {
|
||||
xhrOrXdr = suppliedXhr;
|
||||
|
|
@ -2869,13 +2990,14 @@
|
|||
onUploadChunk: function(id, fileName, chunkData) {},
|
||||
onUploadChunkSuccess: function(id, chunkData, response, xhr) {},
|
||||
onAutoRetry: function(id, fileName, response, xhr) {},
|
||||
onResume: function(id, fileName, chunkData) {},
|
||||
onResume: function(id, fileName, chunkData, customResumeData) {},
|
||||
onUuidChanged: function(id, newUuid) {},
|
||||
getName: function(id) {},
|
||||
setSize: function(id, newSize) {},
|
||||
isQueued: function(id) {},
|
||||
getIdsInProxyGroup: function(id) {},
|
||||
getIdsInBatch: function(id) {}
|
||||
getIdsInBatch: function(id) {},
|
||||
isInProgress: function(id) {}
|
||||
}, chunked = {
|
||||
done: function(id, chunkIdx, response, xhr) {
|
||||
var chunkData = handler._getChunkData(id, chunkIdx);
|
||||
|
|
@ -2894,13 +3016,13 @@
|
|||
handler._maybeDeletePersistedChunkData(id);
|
||||
upload.cleanup(id, normaizedResponse, xhr);
|
||||
}, function(response, xhr) {
|
||||
var normaizedResponse = upload.normalizeResponse(response, false);
|
||||
log("Problem finalizing chunks for file ID " + id + " - " + normaizedResponse.error, "error");
|
||||
if (normaizedResponse.reset) {
|
||||
var normalizedResponse = upload.normalizeResponse(response, false);
|
||||
log("Problem finalizing chunks for file ID " + id + " - " + normalizedResponse.error, "error");
|
||||
if (normalizedResponse.reset || xhr && options.chunking.success.resetOnStatus.indexOf(xhr.status) >= 0) {
|
||||
chunked.reset(id);
|
||||
}
|
||||
if (!options.onAutoRetry(id, name, normaizedResponse, xhr)) {
|
||||
upload.cleanup(id, normaizedResponse, xhr);
|
||||
if (!options.onAutoRetry(id, name, normalizedResponse, xhr)) {
|
||||
upload.cleanup(id, normalizedResponse, xhr);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
|
@ -2912,7 +3034,8 @@
|
|||
if (responseToReport.reset) {
|
||||
chunked.reset(id);
|
||||
} else {
|
||||
inProgressIdx = qq.indexOf(handler._getFileState(id).chunking.inProgress, chunkIdx);
|
||||
var inProgressChunksArray = handler._getFileState(id).chunking.inProgress;
|
||||
inProgressIdx = inProgressChunksArray ? qq.indexOf(inProgressChunksArray, chunkIdx) : -1;
|
||||
if (inProgressIdx >= 0) {
|
||||
handler._getFileState(id).chunking.inProgress.splice(inProgressIdx, 1);
|
||||
handler._getFileState(id).chunking.remaining.unshift(chunkIdx);
|
||||
|
|
@ -2950,13 +3073,14 @@
|
|||
handler._maybeDeletePersistedChunkData(id);
|
||||
handler.reevaluateChunking(id);
|
||||
handler._getFileState(id).loaded = 0;
|
||||
handler._getFileState(id).attemptingResume = false;
|
||||
},
|
||||
sendNext: function(id) {
|
||||
var size = options.getSize(id), name = options.getName(id), chunkIdx = chunked.nextPart(id), chunkData = handler._getChunkData(id, chunkIdx), resuming = handler._getFileState(id).attemptingResume, inProgressChunks = handler._getFileState(id).chunking.inProgress || [];
|
||||
if (handler._getFileState(id).loaded == null) {
|
||||
handler._getFileState(id).loaded = 0;
|
||||
var size = options.getSize(id), name = options.getName(id), chunkIdx = chunked.nextPart(id), chunkData = handler._getChunkData(id, chunkIdx), fileState = handler._getFileState(id), resuming = fileState.attemptingResume, inProgressChunks = fileState.chunking.inProgress || [];
|
||||
if (fileState.loaded == null) {
|
||||
fileState.loaded = 0;
|
||||
}
|
||||
if (resuming && options.onResume(id, name, chunkData) === false) {
|
||||
if (resuming && options.onResume(id, name, chunkData, fileState.customResumeData) === false) {
|
||||
chunked.reset(id);
|
||||
chunkIdx = chunked.nextPart(id);
|
||||
chunkData = handler._getChunkData(id, chunkIdx);
|
||||
|
|
@ -2965,8 +3089,6 @@
|
|||
if (chunkIdx == null && inProgressChunks.length === 0) {
|
||||
chunked.finalize(id);
|
||||
} else {
|
||||
log(qq.format("Sending chunked upload request for item {}.{}, bytes {}-{} of {}.", id, chunkIdx, chunkData.start + 1, chunkData.end, size));
|
||||
options.onUploadChunk(id, name, handler._getChunkDataForCallback(chunkData));
|
||||
inProgressChunks.push(chunkIdx);
|
||||
handler._getFileState(id).chunking.inProgress = inProgressChunks;
|
||||
if (concurrentChunkingPossible) {
|
||||
|
|
@ -2978,30 +3100,45 @@
|
|||
if (chunkData.blob.size === 0) {
|
||||
log(qq.format("Chunk {} for file {} will not be uploaded, zero sized chunk.", chunkIdx, id), "error");
|
||||
chunked.handleFailure(chunkIdx, id, "File is no longer available", null);
|
||||
} else {
|
||||
handler.uploadChunk(id, chunkIdx, resuming).then(function success(response, xhr) {
|
||||
log("Chunked upload request succeeded for " + id + ", chunk " + chunkIdx);
|
||||
handler.clearCachedChunk(id, chunkIdx);
|
||||
var inProgressChunks = handler._getFileState(id).chunking.inProgress || [], responseToReport = upload.normalizeResponse(response, true), inProgressChunkIdx = qq.indexOf(inProgressChunks, chunkIdx);
|
||||
log(qq.format("Chunk {} for file {} uploaded successfully.", chunkIdx, id));
|
||||
chunked.done(id, chunkIdx, responseToReport, xhr);
|
||||
if (inProgressChunkIdx >= 0) {
|
||||
inProgressChunks.splice(inProgressChunkIdx, 1);
|
||||
}
|
||||
handler._maybePersistChunkedState(id);
|
||||
if (!chunked.hasMoreParts(id) && inProgressChunks.length === 0) {
|
||||
chunked.finalize(id);
|
||||
} else if (chunked.hasMoreParts(id)) {
|
||||
chunked.sendNext(id);
|
||||
} else {
|
||||
log(qq.format("File ID {} has no more chunks to send and these chunk indexes are still marked as in-progress: {}", id, JSON.stringify(inProgressChunks)));
|
||||
}
|
||||
}, function failure(response, xhr) {
|
||||
chunked.handleFailure(chunkIdx, id, response, xhr);
|
||||
}).done(function() {
|
||||
handler.clearXhr(id, chunkIdx);
|
||||
});
|
||||
}
|
||||
var onUploadChunkPromise = options.onUploadChunk(id, name, handler._getChunkDataForCallback(chunkData));
|
||||
onUploadChunkPromise.then(function(requestOverrides) {
|
||||
if (!options.isInProgress(id)) {
|
||||
log(qq.format("Not sending chunked upload request for item {}.{} - no longer in progress.", id, chunkIdx));
|
||||
} else {
|
||||
log(qq.format("Sending chunked upload request for item {}.{}, bytes {}-{} of {}.", id, chunkIdx, chunkData.start + 1, chunkData.end, size));
|
||||
var uploadChunkData = {
|
||||
chunkIdx: chunkIdx,
|
||||
id: id,
|
||||
overrides: requestOverrides,
|
||||
resuming: resuming
|
||||
};
|
||||
handler.uploadChunk(uploadChunkData).then(function success(response, xhr) {
|
||||
log("Chunked upload request succeeded for " + id + ", chunk " + chunkIdx);
|
||||
handler.clearCachedChunk(id, chunkIdx);
|
||||
var inProgressChunks = handler._getFileState(id).chunking.inProgress || [], responseToReport = upload.normalizeResponse(response, true), inProgressChunkIdx = qq.indexOf(inProgressChunks, chunkIdx);
|
||||
log(qq.format("Chunk {} for file {} uploaded successfully.", chunkIdx, id));
|
||||
chunked.done(id, chunkIdx, responseToReport, xhr);
|
||||
if (inProgressChunkIdx >= 0) {
|
||||
inProgressChunks.splice(inProgressChunkIdx, 1);
|
||||
}
|
||||
handler._maybePersistChunkedState(id);
|
||||
if (!chunked.hasMoreParts(id) && inProgressChunks.length === 0) {
|
||||
chunked.finalize(id);
|
||||
} else if (chunked.hasMoreParts(id)) {
|
||||
chunked.sendNext(id);
|
||||
} else {
|
||||
log(qq.format("File ID {} has no more chunks to send and these chunk indexes are still marked as in-progress: {}", id, JSON.stringify(inProgressChunks)));
|
||||
}
|
||||
}, function failure(response, xhr) {
|
||||
chunked.handleFailure(chunkIdx, id, response, xhr);
|
||||
}).done(function() {
|
||||
handler.clearXhr(id, chunkIdx);
|
||||
});
|
||||
}
|
||||
}, function(error) {
|
||||
chunked.handleFailure(chunkIdx, id, error, null);
|
||||
});
|
||||
}
|
||||
}
|
||||
}, connectionManager = {
|
||||
|
|
@ -3077,7 +3214,12 @@
|
|||
}
|
||||
}, simple = {
|
||||
send: function(id, name) {
|
||||
handler._getFileState(id).loaded = 0;
|
||||
var fileState = handler._getFileState(id);
|
||||
if (!fileState) {
|
||||
log("Ignoring send request as this upload may have been cancelled, File ID " + id, "warn");
|
||||
return;
|
||||
}
|
||||
fileState.loaded = 0;
|
||||
log("Sending simple upload request for " + id);
|
||||
handler.uploadFile(id).then(function(response, optXhr) {
|
||||
log("Simple upload request succeeded for " + id);
|
||||
|
|
@ -3113,6 +3255,7 @@
|
|||
initHandler: function() {
|
||||
var handlerType = namespace ? qq[namespace] : qq.traditional, handlerModuleSubtype = qq.supportedFeatures.ajaxUploading ? "Xhr" : "Form";
|
||||
handler = new handlerType[handlerModuleSubtype + "UploadHandler"](options, {
|
||||
getCustomResumeData: options.getCustomResumeData,
|
||||
getDataByUuid: options.getDataByUuid,
|
||||
getName: options.getName,
|
||||
getSize: options.getSize,
|
||||
|
|
@ -3120,7 +3263,10 @@
|
|||
log: log,
|
||||
onCancel: options.onCancel,
|
||||
onProgress: options.onProgress,
|
||||
onUuidChanged: options.onUuidChanged
|
||||
onUuidChanged: options.onUuidChanged,
|
||||
onFinalizing: function(id) {
|
||||
options.setStatus(id, qq.status.UPLOAD_FINALIZING);
|
||||
}
|
||||
});
|
||||
if (handler._removeExpiredChunkingRecords) {
|
||||
handler._removeExpiredChunkingRecords();
|
||||
|
|
@ -3193,12 +3339,26 @@
|
|||
if (!controller.isValid(id)) {
|
||||
throw new qq.Error(id + " is not a valid file ID to upload!");
|
||||
}
|
||||
options.onUpload(id, name);
|
||||
if (chunkingPossible && handler._shouldChunkThisFile(id)) {
|
||||
chunked.sendNext(id);
|
||||
} else {
|
||||
simple.send(id, name);
|
||||
}
|
||||
options.onUpload(id, name).then(function(response) {
|
||||
if (response && response.pause) {
|
||||
options.setStatus(id, qq.status.PAUSED);
|
||||
handler.pause(id);
|
||||
connectionManager.free(id);
|
||||
} else {
|
||||
if (chunkingPossible && handler._shouldChunkThisFile(id)) {
|
||||
chunked.sendNext(id);
|
||||
} else {
|
||||
simple.send(id, name);
|
||||
}
|
||||
}
|
||||
}, function(error) {
|
||||
error = error || {};
|
||||
log(id + " upload start aborted due to rejected onUpload Promise - details: " + error, "error");
|
||||
if (!options.onAutoRetry(id, name, error.responseJSON || {})) {
|
||||
var response = upload.normalizeResponse(error.responseJSON, false);
|
||||
upload.cleanup(id, response);
|
||||
}
|
||||
});
|
||||
},
|
||||
start: function(id) {
|
||||
var blobToUpload = upload.getProxyOrBlob(id);
|
||||
|
|
@ -3277,6 +3437,13 @@
|
|||
isValid: function(id) {
|
||||
return handler.isValid(id);
|
||||
},
|
||||
hasResumeRecord: function(id) {
|
||||
var key = handler.isValid(id) && handler._getLocalStorageId && handler._getLocalStorageId(id);
|
||||
if (key) {
|
||||
return !!localStorage.getItem(key);
|
||||
}
|
||||
return false;
|
||||
},
|
||||
getResumableFilesData: function() {
|
||||
if (handler.getResumableFilesData) {
|
||||
return handler.getResumableFilesData();
|
||||
|
|
@ -3296,6 +3463,9 @@
|
|||
}
|
||||
return false;
|
||||
},
|
||||
isAttemptingResume: function(id) {
|
||||
return !!handler.isAttemptingResume && handler.isAttemptingResume(id);
|
||||
},
|
||||
isResumable: function(id) {
|
||||
return !!handler.isResumable && handler.isResumable(id);
|
||||
}
|
||||
|
|
@ -3486,7 +3656,19 @@
|
|||
};
|
||||
qq.XhrUploadHandler = function(spec) {
|
||||
"use strict";
|
||||
var handler = this, namespace = spec.options.namespace, proxy = spec.proxy, chunking = spec.options.chunking, resume = spec.options.resume, chunkFiles = chunking && spec.options.chunking.enabled && qq.supportedFeatures.chunking, resumeEnabled = resume && spec.options.resume.enabled && chunkFiles && qq.supportedFeatures.resume, getName = proxy.getName, getSize = proxy.getSize, getUuid = proxy.getUuid, getEndpoint = proxy.getEndpoint, getDataByUuid = proxy.getDataByUuid, onUuidChanged = proxy.onUuidChanged, onProgress = proxy.onProgress, log = proxy.log;
|
||||
var handler = this, namespace = spec.options.namespace, proxy = spec.proxy, chunking = spec.options.chunking, getChunkSize = function(id) {
|
||||
var fileState = handler._getFileState(id);
|
||||
if (fileState.chunkSize) {
|
||||
return fileState.chunkSize;
|
||||
} else {
|
||||
var chunkSize = chunking.partSize;
|
||||
if (qq.isFunction(chunkSize)) {
|
||||
chunkSize = chunkSize(id, getSize(id));
|
||||
}
|
||||
fileState.chunkSize = chunkSize;
|
||||
return chunkSize;
|
||||
}
|
||||
}, resume = spec.options.resume, chunkFiles = chunking && spec.options.chunking.enabled && qq.supportedFeatures.chunking, resumeEnabled = resume && spec.options.resume.enabled && chunkFiles && qq.supportedFeatures.resume, getName = proxy.getName, getSize = proxy.getSize, getUuid = proxy.getUuid, getEndpoint = proxy.getEndpoint, getDataByUuid = proxy.getDataByUuid, onUuidChanged = proxy.onUuidChanged, onProgress = proxy.onProgress, log = proxy.log, getCustomResumeData = proxy.getCustomResumeData;
|
||||
function abort(id) {
|
||||
qq.each(handler._getXhrs(id), function(xhrId, xhr) {
|
||||
var ajaxRequester = handler._getAjaxRequester(id, xhrId);
|
||||
|
|
@ -3524,7 +3706,10 @@
|
|||
});
|
||||
qq.extend(this, {
|
||||
clearCachedChunk: function(id, chunkIdx) {
|
||||
delete handler._getFileState(id).temp.cachedChunks[chunkIdx];
|
||||
var fileState = handler._getFileState(id);
|
||||
if (fileState) {
|
||||
delete fileState.temp.cachedChunks[chunkIdx];
|
||||
}
|
||||
},
|
||||
clearXhr: function(id, chunkIdx) {
|
||||
var tempState = handler._getFileState(id).temp;
|
||||
|
|
@ -3561,15 +3746,21 @@
|
|||
if (uploadData.key) {
|
||||
data.key = uploadData.key;
|
||||
}
|
||||
if (uploadData.customResumeData) {
|
||||
data.customResumeData = uploadData.customResumeData;
|
||||
}
|
||||
resumableFilesData.push(data);
|
||||
});
|
||||
return resumableFilesData;
|
||||
},
|
||||
isAttemptingResume: function(id) {
|
||||
return handler._getFileState(id).attemptingResume;
|
||||
},
|
||||
isResumable: function(id) {
|
||||
return !!chunking && handler.isValid(id) && !handler._getFileState(id).notResumable;
|
||||
},
|
||||
moveInProgressToRemaining: function(id, optInProgress, optRemaining) {
|
||||
var inProgress = optInProgress || handler._getFileState(id).chunking.inProgress, remaining = optRemaining || handler._getFileState(id).chunking.remaining;
|
||||
var fileState = handler._getFileState(id) || {}, chunkingState = fileState.chunking || {}, inProgress = optInProgress || chunkingState.inProgress, remaining = optRemaining || chunkingState.remaining;
|
||||
if (inProgress) {
|
||||
log(qq.format("Moving these chunks from in-progress {}, to remaining.", JSON.stringify(inProgress)));
|
||||
inProgress.reverse();
|
||||
|
|
@ -3628,7 +3819,7 @@
|
|||
return handler._getFileState(id).temp.ajaxRequesters[chunkIdx];
|
||||
},
|
||||
_getChunkData: function(id, chunkIndex) {
|
||||
var chunkSize = chunking.partSize, fileSize = getSize(id), fileOrBlob = handler.getFile(id), startBytes = chunkSize * chunkIndex, endBytes = startBytes + chunkSize >= fileSize ? fileSize : startBytes + chunkSize, totalChunks = handler._getTotalChunks(id), cachedChunks = this._getFileState(id).temp.cachedChunks, blob = cachedChunks[chunkIndex] || qq.sliceBlob(fileOrBlob, startBytes, endBytes);
|
||||
var chunkSize = getChunkSize(id), fileSize = getSize(id), fileOrBlob = handler.getFile(id), startBytes = chunkSize * chunkIndex, endBytes = startBytes + chunkSize >= fileSize ? fileSize : startBytes + chunkSize, totalChunks = handler._getTotalChunks(id), cachedChunks = this._getFileState(id).temp.cachedChunks, blob = cachedChunks[chunkIndex] || qq.sliceBlob(fileOrBlob, startBytes, endBytes);
|
||||
cachedChunks[chunkIndex] = blob;
|
||||
return {
|
||||
part: chunkIndex,
|
||||
|
|
@ -3648,8 +3839,11 @@
|
|||
};
|
||||
},
|
||||
_getLocalStorageId: function(id) {
|
||||
var formatVersion = "5.0", name = getName(id), size = getSize(id), chunkSize = chunking.partSize, endpoint = getEndpoint(id);
|
||||
return qq.format("qq{}resume{}-{}-{}-{}-{}", namespace, formatVersion, name, size, chunkSize, endpoint);
|
||||
var formatVersion = "5.0", name = getName(id), size = getSize(id), chunkSize = getChunkSize(id), endpoint = getEndpoint(id), customKeys = resume.customKeys(id), localStorageId = qq.format("qq{}resume{}-{}-{}-{}-{}", namespace, formatVersion, name, size, chunkSize, endpoint);
|
||||
customKeys.forEach(function(key) {
|
||||
localStorageId += "-" + key;
|
||||
});
|
||||
return localStorageId;
|
||||
},
|
||||
_getMimeType: function(id) {
|
||||
return handler.getFile(id).type;
|
||||
|
|
@ -3659,7 +3853,7 @@
|
|||
},
|
||||
_getTotalChunks: function(id) {
|
||||
if (chunking) {
|
||||
var fileSize = getSize(id), chunkSize = chunking.partSize;
|
||||
var fileSize = getSize(id), chunkSize = getChunkSize(id);
|
||||
return Math.ceil(fileSize / chunkSize);
|
||||
}
|
||||
},
|
||||
|
|
@ -3717,6 +3911,7 @@
|
|||
state.key = persistedData.key;
|
||||
state.chunking = persistedData.chunking;
|
||||
state.loaded = persistedData.loaded;
|
||||
state.customResumeData = persistedData.customResumeData;
|
||||
state.attemptingResume = true;
|
||||
handler.moveInProgressToRemaining(id);
|
||||
}
|
||||
|
|
@ -3726,6 +3921,7 @@
|
|||
_maybePersistChunkedState: function(id) {
|
||||
var state = handler._getFileState(id), localStorageId, persistedData;
|
||||
if (resumeEnabled && handler.isResumable(id)) {
|
||||
var customResumeData = getCustomResumeData(id);
|
||||
localStorageId = handler._getLocalStorageId(id);
|
||||
persistedData = {
|
||||
name: getName(id),
|
||||
|
|
@ -3736,6 +3932,9 @@
|
|||
loaded: state.loaded,
|
||||
lastUpdated: Date.now()
|
||||
};
|
||||
if (customResumeData) {
|
||||
persistedData.customResumeData = customResumeData;
|
||||
}
|
||||
try {
|
||||
localStorage.setItem(localStorageId, JSON.stringify(persistedData));
|
||||
} catch (error) {
|
||||
|
|
@ -3792,10 +3991,12 @@
|
|||
},
|
||||
_shouldChunkThisFile: function(id) {
|
||||
var state = handler._getFileState(id);
|
||||
if (!state.chunking) {
|
||||
handler.reevaluateChunking(id);
|
||||
if (state) {
|
||||
if (!state.chunking) {
|
||||
handler.reevaluateChunking(id);
|
||||
}
|
||||
return state.chunking.enabled;
|
||||
}
|
||||
return state.chunking.enabled;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
|
@ -5322,18 +5523,24 @@
|
|||
"use strict";
|
||||
var handler = this, getName = proxy.getName, getSize = proxy.getSize, getUuid = proxy.getUuid, log = proxy.log, multipart = spec.forceMultipart || spec.paramsInBody, addChunkingSpecificParams = function(id, params, chunkData) {
|
||||
var size = getSize(id), name = getName(id);
|
||||
params[spec.chunking.paramNames.partIndex] = chunkData.part;
|
||||
params[spec.chunking.paramNames.partByteOffset] = chunkData.start;
|
||||
params[spec.chunking.paramNames.chunkSize] = chunkData.size;
|
||||
params[spec.chunking.paramNames.totalParts] = chunkData.count;
|
||||
params[spec.totalFileSizeName] = size;
|
||||
if (multipart) {
|
||||
if (!spec.omitDefaultParams) {
|
||||
params[spec.chunking.paramNames.partIndex] = chunkData.part;
|
||||
params[spec.chunking.paramNames.partByteOffset] = chunkData.start;
|
||||
params[spec.chunking.paramNames.chunkSize] = chunkData.size;
|
||||
params[spec.chunking.paramNames.totalParts] = chunkData.count;
|
||||
params[spec.totalFileSizeName] = size;
|
||||
}
|
||||
if (multipart && !spec.omitDefaultParams) {
|
||||
params[spec.filenameParam] = name;
|
||||
}
|
||||
}, allChunksDoneRequester = new qq.traditional.AllChunksDoneAjaxRequester({
|
||||
cors: spec.cors,
|
||||
endpoint: spec.chunking.success.endpoint,
|
||||
log: log
|
||||
headers: spec.chunking.success.headers,
|
||||
jsonPayload: spec.chunking.success.jsonPayload,
|
||||
log: log,
|
||||
method: spec.chunking.success.method,
|
||||
params: spec.chunking.success.params
|
||||
}), createReadyStateChangedHandler = function(id, xhr) {
|
||||
var promise = new qq.Promise();
|
||||
xhr.onreadystatechange = function() {
|
||||
|
|
@ -5355,7 +5562,7 @@
|
|||
params[spec.chunking.paramNames.totalParts] = handler._getTotalChunks(id);
|
||||
return params;
|
||||
}, isErrorUploadResponse = function(xhr, response) {
|
||||
return qq.indexOf([ 200, 201, 202, 203, 204 ], xhr.status) < 0 || !response.success || response.reset;
|
||||
return qq.indexOf([ 200, 201, 202, 203, 204 ], xhr.status) < 0 || spec.requireSuccessJson && !response.success || response.reset;
|
||||
}, onUploadOrChunkComplete = function(id, xhr) {
|
||||
var response;
|
||||
log("xhr - server response received for " + id);
|
||||
|
|
@ -5371,7 +5578,7 @@
|
|||
log(qq.format("Received response status {} with body: {}", xhr.status, xhr.responseText));
|
||||
response = qq.parseJson(xhr.responseText);
|
||||
} catch (error) {
|
||||
upload && log("Error when attempting to parse xhr response text (" + error.message + ")", "error");
|
||||
upload && spec.requireSuccessJson && log("Error when attempting to parse xhr response text (" + error.message + ")", "error");
|
||||
}
|
||||
return response;
|
||||
}, sendChunksCompleteRequest = function(id) {
|
||||
|
|
@ -5382,17 +5589,32 @@
|
|||
promise.failure(parseResponse(false, xhr), xhr);
|
||||
});
|
||||
return promise;
|
||||
}, setParamsAndGetEntityToSend = function(params, xhr, fileOrBlob, id) {
|
||||
var formData = new FormData(), method = spec.method, endpoint = spec.endpointStore.get(id), name = getName(id), size = getSize(id);
|
||||
params[spec.uuidName] = getUuid(id);
|
||||
params[spec.filenameParam] = name;
|
||||
if (multipart) {
|
||||
params[spec.totalFileSizeName] = size;
|
||||
}
|
||||
if (!spec.paramsInBody) {
|
||||
if (!multipart) {
|
||||
}, setParamsAndGetEntityToSend = function(entityToSendParams) {
|
||||
var fileOrBlob = entityToSendParams.fileOrBlob;
|
||||
var id = entityToSendParams.id;
|
||||
var xhr = entityToSendParams.xhr;
|
||||
var xhrOverrides = entityToSendParams.xhrOverrides || {};
|
||||
var customParams = entityToSendParams.customParams || {};
|
||||
var defaultParams = entityToSendParams.params || {};
|
||||
var xhrOverrideParams = xhrOverrides.params || {};
|
||||
var params;
|
||||
var formData = multipart ? new FormData() : null, method = xhrOverrides.method || spec.method, endpoint = xhrOverrides.endpoint || spec.endpointStore.get(id), name = getName(id), size = getSize(id);
|
||||
if (spec.omitDefaultParams) {
|
||||
params = qq.extend({}, customParams);
|
||||
qq.extend(params, xhrOverrideParams);
|
||||
} else {
|
||||
params = qq.extend({}, customParams);
|
||||
qq.extend(params, xhrOverrideParams);
|
||||
qq.extend(params, defaultParams);
|
||||
params[spec.uuidName] = getUuid(id);
|
||||
params[spec.filenameParam] = name;
|
||||
if (multipart) {
|
||||
params[spec.totalFileSizeName] = size;
|
||||
} else if (!spec.paramsInBody) {
|
||||
params[spec.inputName] = name;
|
||||
}
|
||||
}
|
||||
if (!spec.paramsInBody) {
|
||||
endpoint = qq.obj2url(params, endpoint);
|
||||
}
|
||||
xhr.open(method, endpoint, true);
|
||||
|
|
@ -5407,42 +5629,74 @@
|
|||
return formData;
|
||||
}
|
||||
return fileOrBlob;
|
||||
}, setUploadHeaders = function(id, xhr) {
|
||||
var extraHeaders = spec.customHeaders.get(id), fileOrBlob = handler.getFile(id);
|
||||
xhr.setRequestHeader("Accept", "application/json");
|
||||
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
|
||||
xhr.setRequestHeader("Cache-Control", "no-cache");
|
||||
if (!multipart) {
|
||||
xhr.setRequestHeader("Content-Type", "application/octet-stream");
|
||||
xhr.setRequestHeader("X-Mime-Type", fileOrBlob.type);
|
||||
}, setUploadHeaders = function(headersOptions) {
|
||||
var headerOverrides = headersOptions.headerOverrides;
|
||||
var id = headersOptions.id;
|
||||
var xhr = headersOptions.xhr;
|
||||
if (headerOverrides) {
|
||||
qq.each(headerOverrides, function(headerName, headerValue) {
|
||||
xhr.setRequestHeader(headerName, headerValue);
|
||||
});
|
||||
} else {
|
||||
var extraHeaders = spec.customHeaders.get(id), fileOrBlob = handler.getFile(id);
|
||||
xhr.setRequestHeader("Accept", "application/json");
|
||||
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
|
||||
xhr.setRequestHeader("Cache-Control", "no-cache");
|
||||
if (!multipart) {
|
||||
xhr.setRequestHeader("Content-Type", "application/octet-stream");
|
||||
xhr.setRequestHeader("X-Mime-Type", fileOrBlob.type);
|
||||
}
|
||||
qq.each(extraHeaders, function(name, val) {
|
||||
xhr.setRequestHeader(name, val);
|
||||
});
|
||||
}
|
||||
qq.each(extraHeaders, function(name, val) {
|
||||
xhr.setRequestHeader(name, val);
|
||||
});
|
||||
};
|
||||
qq.extend(this, {
|
||||
uploadChunk: function(id, chunkIdx, resuming) {
|
||||
var chunkData = handler._getChunkData(id, chunkIdx), xhr = handler._createXhr(id, chunkIdx), size = getSize(id), promise, toSend, params;
|
||||
uploadChunk: function(uploadChunkParams) {
|
||||
var id = uploadChunkParams.id;
|
||||
var chunkIdx = uploadChunkParams.chunkIdx;
|
||||
var overrides = uploadChunkParams.overrides || {};
|
||||
var resuming = uploadChunkParams.resuming;
|
||||
var chunkData = handler._getChunkData(id, chunkIdx), xhr = handler._createXhr(id, chunkIdx), promise, toSend, customParams, params = {};
|
||||
promise = createReadyStateChangedHandler(id, xhr);
|
||||
handler._registerProgressHandler(id, chunkIdx, chunkData.size);
|
||||
params = spec.paramsStore.get(id);
|
||||
customParams = spec.paramsStore.get(id);
|
||||
addChunkingSpecificParams(id, params, chunkData);
|
||||
if (resuming) {
|
||||
params[spec.resume.paramNames.resuming] = true;
|
||||
}
|
||||
toSend = setParamsAndGetEntityToSend(params, xhr, chunkData.blob, id);
|
||||
setUploadHeaders(id, xhr);
|
||||
toSend = setParamsAndGetEntityToSend({
|
||||
fileOrBlob: chunkData.blob,
|
||||
id: id,
|
||||
customParams: customParams,
|
||||
params: params,
|
||||
xhr: xhr,
|
||||
xhrOverrides: overrides
|
||||
});
|
||||
setUploadHeaders({
|
||||
headerOverrides: overrides.headers,
|
||||
id: id,
|
||||
xhr: xhr
|
||||
});
|
||||
xhr.send(toSend);
|
||||
return promise;
|
||||
},
|
||||
uploadFile: function(id) {
|
||||
var fileOrBlob = handler.getFile(id), promise, xhr, params, toSend;
|
||||
var fileOrBlob = handler.getFile(id), promise, xhr, customParams, toSend;
|
||||
xhr = handler._createXhr(id);
|
||||
handler._registerProgressHandler(id);
|
||||
promise = createReadyStateChangedHandler(id, xhr);
|
||||
params = spec.paramsStore.get(id);
|
||||
toSend = setParamsAndGetEntityToSend(params, xhr, fileOrBlob, id);
|
||||
setUploadHeaders(id, xhr);
|
||||
customParams = spec.paramsStore.get(id);
|
||||
toSend = setParamsAndGetEntityToSend({
|
||||
fileOrBlob: fileOrBlob,
|
||||
id: id,
|
||||
customParams: customParams,
|
||||
xhr: xhr
|
||||
});
|
||||
setUploadHeaders({
|
||||
id: id,
|
||||
xhr: xhr
|
||||
});
|
||||
xhr.send(toSend);
|
||||
return promise;
|
||||
}
|
||||
|
|
@ -5458,6 +5712,7 @@
|
|||
qq.override(this, function(super_) {
|
||||
return {
|
||||
finalizeChunks: function(id) {
|
||||
proxy.onFinalizing(id);
|
||||
if (spec.chunking.success.endpoint) {
|
||||
return sendChunksCompleteRequest(id);
|
||||
} else {
|
||||
|
|
@ -5469,24 +5724,29 @@
|
|||
};
|
||||
qq.traditional.AllChunksDoneAjaxRequester = function(o) {
|
||||
"use strict";
|
||||
var requester, method = "POST", options = {
|
||||
var requester, options = {
|
||||
cors: {
|
||||
allowXdr: false,
|
||||
expected: false,
|
||||
sendCredentials: false
|
||||
},
|
||||
endpoint: null,
|
||||
log: function(str, level) {}
|
||||
log: function(str, level) {},
|
||||
method: "POST"
|
||||
}, promises = {}, endpointHandler = {
|
||||
get: function(id) {
|
||||
if (qq.isFunction(options.endpoint)) {
|
||||
return options.endpoint(id);
|
||||
}
|
||||
return options.endpoint;
|
||||
}
|
||||
};
|
||||
qq.extend(options, o);
|
||||
requester = qq.extend(this, new qq.AjaxRequester({
|
||||
acceptHeader: "application/json",
|
||||
validMethods: [ method ],
|
||||
method: method,
|
||||
contentType: options.jsonPayload ? "application/json" : "application/x-www-form-urlencoded",
|
||||
validMethods: [ options.method ],
|
||||
method: options.method,
|
||||
endpointStore: endpointHandler,
|
||||
allowXRequestedWithAndCacheControl: false,
|
||||
cors: options.cors,
|
||||
|
|
@ -5506,7 +5766,7 @@
|
|||
var promise = new qq.Promise();
|
||||
options.log("Submitting All Chunks Done request for " + id);
|
||||
promises[id] = promise;
|
||||
requester.initTransport(id).withParams(params).withHeaders(headers).send(xhr);
|
||||
requester.initTransport(id).withParams(options.params(id) || params).withHeaders(options.headers(id) || headers).send(xhr);
|
||||
return promise;
|
||||
}
|
||||
});
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
|
@ -1 +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 */
|
||||
.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:1px dotted #000}.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;z-index:-1}.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}.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}.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,.7)}/*# sourceMappingURL=fine-uploader.min.css.map */
|
||||
|
|
@ -1 +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"}
|
||||
{"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,QAAS,IAAI,OAAO,KAExB,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,WAAY,yLACZ,WAAY,wHACZ,WAAY,mHACZ,WAAY,oHACZ,WAAY,sHACZ,MAAO,EACP,OAAQ,KACR,cAAe,IACf,cAAe,IAGnB,uBACI,OAAQ,KACR,cAAe,IAGnB,iCACI,OAAQ,IAGZ,uBACI,SAAU,SACV,QAAS,EAET,QAAS,GAIb,4BACI,OAAQ,QAGZ,mCACI,QAAS,aACT,OAAQ,QAGZ,kCACI,SAAU,OACV,WAAY,KACZ,aAAc,KACd,cAAe,KAEf,QAAS,EAKb,uBACI,QAAS,KACT,WAAY,cACZ,MAAO,KACP,OAAQ,KACR,eAAgB,YAChB,aAAc,IAGlB,SACI,QAAS,KAIb,oBACI,QAAS,KAGb,0BACI,QAAS,MAGb,oBACI,QAAS,KAGb,0BACI,QAAS,MAGb,uCACI,WAAY,OACZ,YAAa,KAGjB,8CACI,YAAa,IACb,aAAc,IAGlB,gDACI,eAAgB,KAGpB,8BACI,iBAAkB"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -68,16 +68,21 @@ $scheduler = new SeedDMS_Scheduler($db);
|
|||
$tasks = $scheduler->getTasks();
|
||||
|
||||
foreach($tasks as $task) {
|
||||
if(is_object($taskobj = $GLOBALS['SEEDDMS_SCHEDULER']['tasks'][$task->getExtension()][$task->getTask()])) {
|
||||
if(isset($GLOBALS['SEEDDMS_SCHEDULER']['tasks'][$task->getExtension()]) && is_object($taskobj = $GLOBALS['SEEDDMS_SCHEDULER']['tasks'][$task->getExtension()][$task->getTask()])) {
|
||||
switch($mode) {
|
||||
case "run":
|
||||
if(method_exists($taskobj, 'execute')) {
|
||||
if(!$task->getDisabled()) {
|
||||
if($taskobj->execute($task, $dms)) {
|
||||
add_log_line("Execution of task ".$task->getExtension()."::".$task->getTask()." successful.");
|
||||
$task->updateLastNextRun();
|
||||
if($user = $dms->getUserByLogin('cli_scheduler')) {
|
||||
if($taskobj->execute($task, $dms, $user)) {
|
||||
add_log_line("Execution of task ".$task->getExtension()."::".$task->getTask()." successful.");
|
||||
$task->updateLastNextRun();
|
||||
} else {
|
||||
add_log_line("Execution of task ".$task->getExtension()."::".$task->getTask()." failed, task has been disabled.", PEAR_LOG_ERR);
|
||||
$task->setDisabled(1);
|
||||
}
|
||||
} else {
|
||||
add_log_line("Execution of task ".$task->getExtension()."::".$task->getTask()." failed, task has been disabled.", PEAR_LOG_ERR);
|
||||
add_log_line("Execution of task ".$task->getExtension()."::".$task->getTask()." failed because of missing user 'cli_scheduler'. Task has been disabled.", PEAR_LOG_ERR);
|
||||
$task->setDisabled(1);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ class SeedDMS_View_AddDocument extends SeedDMS_Bootstrap_Style {
|
|||
header('Content-Type: application/javascript; charset=UTF-8');
|
||||
|
||||
if($enablelargefileupload) {
|
||||
$this->printFineUploaderJs('../op/op.UploadChunks.php', $partitionsize, $maxuploadsize, $enablemultiupload);
|
||||
$this->printFineUploaderJs('../op/op.UploadChunks.php', $partitionsize, $maxuploadsize, $enablemultiupload, 'userfile', 'adddocform');
|
||||
}
|
||||
?>
|
||||
$(document).ready(function() {
|
||||
|
|
@ -158,6 +158,7 @@ $(document).ready(function() {
|
|||
$folder = $this->params['folder'];
|
||||
$enablelargefileupload = $this->params['enablelargefileupload'];
|
||||
$enablemultiupload = $this->params['enablemultiupload'];
|
||||
$maxuploadsize = $this->params['maxuploadsize'];
|
||||
$enableadminrevapp = $this->params['enableadminrevapp'];
|
||||
$enableownerrevapp = $this->params['enableownerrevapp'];
|
||||
$enableselfrevapp = $this->params['enableselfrevapp'];
|
||||
|
|
@ -188,7 +189,11 @@ $(document).ready(function() {
|
|||
$this->contentStart();
|
||||
$this->pageNavigation($this->getFolderPathHTML($folder, true), "view_folder", $folder);
|
||||
|
||||
$msg = getMLText("max_upload_size").": ".ini_get( "upload_max_filesize");
|
||||
$mus2 = SeedDMS_Core_File::parse_filesize(ini_get("upload_max_filesize"));
|
||||
if($maxuploadsize && $maxuploadsize < $mus2)
|
||||
$msg = getMLText("max_upload_size").": ".SeedDMS_Core_File::format_filesize($maxuploadsize);
|
||||
else
|
||||
$msg = getMLText("max_upload_size").": ".SeedDMS_Core_File::format_filesize($mus2);
|
||||
$this->warningMsg($msg);
|
||||
$this->contentHeading(getMLText("add_document"));
|
||||
|
||||
|
|
|
|||
|
|
@ -126,6 +126,7 @@ $(document).ready( function() {
|
|||
$document = $this->params['document'];
|
||||
$strictformcheck = $this->params['strictformcheck'];
|
||||
$enablelargefileupload = $this->params['enablelargefileupload'];
|
||||
$maxuploadsize = $this->params['maxuploadsize'];
|
||||
|
||||
$this->htmlAddHeader('<script type="text/javascript" src="../styles/'.$this->theme.'/validate/jquery.validate.js"></script>'."\n", 'js');
|
||||
if($enablelargefileupload) {
|
||||
|
|
@ -139,16 +140,13 @@ $(document).ready( function() {
|
|||
$this->pageNavigation($this->getFolderPathHTML($folder, true, $document), "view_document", $document);
|
||||
|
||||
$this->contentHeading(getMLText("linked_files"));
|
||||
?>
|
||||
<div class="alert alert-warning">
|
||||
<?php echo getMLText("max_upload_size").": ".ini_get( "upload_max_filesize"); ?>
|
||||
<?php
|
||||
if(0 && $enablelargefileupload) {
|
||||
printf('<p>'.getMLText('link_alt_updatedocument').'</p>', "out.AddFile2.php?documentid=".$document->getId());
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<?php
|
||||
$mus2 = SeedDMS_Core_File::parse_filesize(ini_get("upload_max_filesize"));
|
||||
if($maxuploadsize && $maxuploadsize < $mus2)
|
||||
$msg = getMLText("max_upload_size").": ".SeedDMS_Core_File::format_filesize($maxuploadsize);
|
||||
else
|
||||
$msg = getMLText("max_upload_size").": ".SeedDMS_Core_File::format_filesize($mus2);
|
||||
$this->warningMsg($msg);
|
||||
|
||||
$this->contentContainerStart();
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ class SeedDMS_View_AttributeMgr extends SeedDMS_Bootstrap_Style {
|
|||
function js() { /* {{{ */
|
||||
$selattrdef = $this->params['selattrdef'];
|
||||
header('Content-Type: application/javascript');
|
||||
parent::jsTranslations(array('cancel', 'splash_move_document', 'confirm_move_document', 'move_document', 'confirm_transfer_link_document', 'transfer_content', 'link_document', 'splash_move_folder', 'confirm_move_folder', 'move_folder'));
|
||||
?>
|
||||
|
||||
$(document).ready( function() {
|
||||
|
|
|
|||
|
|
@ -464,7 +464,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
|||
}
|
||||
if($this->params['enableclipboard']) {
|
||||
echo " <div id=\"menu-clipboard\">";
|
||||
echo " <div class=\"ajax\" data-no-spinner=\"true\" data-view=\"Clipboard\" data-action=\"menuClipboard\" data-query=\"folderid=23\"></div>";
|
||||
echo " <div class=\"ajax\" data-no-spinner=\"true\" data-view=\"Clipboard\" data-action=\"menuClipboard\" data-query=\"folderid=".($folder != null ? $folder->getID() : 0)."\"></div>";
|
||||
echo " </div>";
|
||||
}
|
||||
|
||||
|
|
@ -2092,12 +2092,14 @@ $(function() {
|
|||
* @param array clipboard
|
||||
*/
|
||||
function printClipboard($clipboard, $previewer){ /* {{{ */
|
||||
$this->contentHeading(getMLText("clipboard"), true);
|
||||
echo "<div id=\"clipboard-container\" class=\"_clipboard-container\">\n";
|
||||
$this->contentHeading(getMLText("clipboard").'<span id="clipboard-float"><i class="icon-sort"></i></span>', true);
|
||||
echo "<div id=\"main-clipboard\">\n";
|
||||
?>
|
||||
<div class="ajax" data-view="Clipboard" data-action="mainClipboard"></div>
|
||||
<?php
|
||||
echo "</div>\n";
|
||||
echo "</div>\n";
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
|
|
@ -3047,7 +3049,7 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
|
|||
* @param integer $maxfiles maximum number of files allowed to upload
|
||||
* @param array $fields list of post fields
|
||||
*/
|
||||
function printFineUploaderJs($uploadurl, $partsize=0, $maxuploadsize=0, $multiple=true, $prefix='userfile') { /* {{{ */
|
||||
function printFineUploaderJs($uploadurl, $partsize=0, $maxuploadsize=0, $multiple=true, $prefix='userfile', $formname='form1') { /* {{{ */
|
||||
?>
|
||||
$(document).ready(function() {
|
||||
<?php echo $prefix; ?>uploader = new qq.FineUploader({
|
||||
|
|
@ -3086,7 +3088,7 @@ $(document).ready(function() {
|
|||
$('#<?php echo $prefix; ?>-fine-uploader-names').val(names.join(';'));
|
||||
/* Run upload only if all files could be uploaded */
|
||||
if(succeeded.length > 0 && failed.length == 0)
|
||||
document.getElementById('form1').submit();
|
||||
document.getElementById('<?= $formname ?>').submit();
|
||||
},
|
||||
onError: function(id, name, reason, xhr) {
|
||||
noty({
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ class SeedDMS_View_Categories extends SeedDMS_Bootstrap_Style {
|
|||
function js() { /* {{{ */
|
||||
$selcat = $this->params['selcategory'];
|
||||
header('Content-Type: application/javascript');
|
||||
parent::jsTranslations(array('cancel', 'splash_move_document', 'confirm_move_document', 'move_document', 'confirm_transfer_link_document', 'transfer_content', 'link_document', 'splash_move_folder', 'confirm_move_folder', 'move_folder'));
|
||||
?>
|
||||
$(document).ready( function() {
|
||||
$( "#selector" ).change(function() {
|
||||
|
|
|
|||
|
|
@ -57,15 +57,15 @@ class SeedDMS_View_Clipboard extends SeedDMS_Bootstrap_Style {
|
|||
$content .= " <ul class=\"dropdown-menu\" role=\"menu\">\n";
|
||||
foreach($clipboard['folders'] as $folderid) {
|
||||
if($folder = $this->params['dms']->getFolder($folderid))
|
||||
$content .= " <li><a href=\"../out/out.ViewFolder.php?folderid=".$folder->getID()."\" class=\"table-row-folder droptarget\" data-droptarget=\"folder_".$folder->getID()."\" rel=\"folder_".$folder->getID()."\" data-uploadformtoken=\"".createFormKey('')."\" formtoken=\"".createFormKey('')."\"><i class=\"icon-folder-close-alt\"></i> ".htmlspecialchars($folder->getName())."</a></li>\n";
|
||||
$content .= " <li><a href=\"../out/out.ViewFolder.php?folderid=".$folder->getID()."\" class=\"table-row-folder droptarget\" data-droptarget=\"folder_".$folder->getID()."\" rel=\"folder_".$folder->getID()."\" data-name=\"".htmlspecialchars($folder->getName(), ENT_QUOTES)."\" data-uploadformtoken=\"".createFormKey('')."\" formtoken=\"".createFormKey('')."\"><i class=\"icon-folder-close-alt\"></i> ".htmlspecialchars($folder->getName())."</a></li>\n";
|
||||
}
|
||||
foreach($clipboard['docs'] as $docid) {
|
||||
if($document = $this->params['dms']->getDocument($docid))
|
||||
$content .= " <li><a href=\"../out/out.ViewDocument.php?documentid=".$document->getID()."\" class=\"table-row-document droptarget\" data-droptarget=\"document_".$document->getID()."\" rel=\"document_".$document->getID()."\"><i class=\"icon-file\"></i> ".htmlspecialchars($document->getName())."</a></li>\n";
|
||||
$content .= " <li><a href=\"../out/out.ViewDocument.php?documentid=".$document->getID()."\" class=\"table-row-document droptarget\" data-droptarget=\"document_".$document->getID()."\" rel=\"document_".$document->getID()."\" data-name=\"".htmlspecialchars($document->getName(), ENT_QUOTES)."\" formtoken=\"".createFormKey('')."\"><i class=\"icon-file\"></i> ".htmlspecialchars($document->getName())."</a></li>\n";
|
||||
}
|
||||
$content .= " <li class=\"divider\"></li>\n";
|
||||
if(isset($this->params['folder']) && $this->params['folder']->getAccessMode($this->params['user']) >= M_READWRITE) {
|
||||
$content .= " <li><a href=\"../op/op.MoveClipboard.php?targetid=".$this->params['folder']->getID()."&refferer=".urlencode($this->params['refferer'])."\">".getMLText("move_clipboard")."</a></li>\n";
|
||||
$content .= " <li><a href=\"../op/op.MoveClipboard.php?targetid=".$this->params['folder']->getID()."&refferer=".urlencode('../out/out.ViewFolder.php?folderid='.$this->params['folder']->getID())."\">".getMLText("move_clipboard")."</a></li>\n";
|
||||
}
|
||||
// $content .= " <li><a href=\"../op/op.ClearClipboard.php?refferer=".urlencode($this->params['refferer'])."\">".getMLText("clear_clipboard")."</a><a class=\"ajax-click\" data-href=\"../op/op.Ajax.php\" data-param1=\"command=clearclipboard\">kkk</a> </li>\n";
|
||||
// $content .= " <li><a class=\"ajax-click\" data-href=\"../op/op.Ajax.php\" data-param1=\"command=clearclipboard\">".getMLText("clear_clipboard")."</a></li>\n";
|
||||
|
|
@ -181,6 +181,9 @@ class SeedDMS_View_Clipboard extends SeedDMS_Bootstrap_Style {
|
|||
|
||||
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile);
|
||||
$content = '';
|
||||
$txt = $this->callHook('preClipboard', $clipboard);
|
||||
if(is_string($txt))
|
||||
$content .= $txt;
|
||||
$foldercount = $doccount = 0;
|
||||
if($clipboard['folders']) {
|
||||
foreach($clipboard['folders'] as $folderid) {
|
||||
|
|
@ -223,6 +226,9 @@ class SeedDMS_View_Clipboard extends SeedDMS_Bootstrap_Style {
|
|||
} else {
|
||||
}
|
||||
$content .= "<div class=\"alert add-clipboard-area\">".getMLText("drag_icon_here")."</div>";
|
||||
$txt = $this->callHook('postClipboard', $clipboard);
|
||||
if(is_string($txt))
|
||||
$content .= $txt;
|
||||
echo $content;
|
||||
} /* }}} */
|
||||
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ class SeedDMS_View_ErrorDlg extends SeedDMS_Bootstrap_Style {
|
|||
$pagetitle = $this->params['pagetitle'];
|
||||
$errormsg = $this->params['errormsg'];
|
||||
$plain = $this->params['plain'];
|
||||
$showbutton = $this->hasParam('nobackbutton') === false || $this->getParam('nobackbutton') === false;
|
||||
$settings = $this->params['settings'];
|
||||
|
||||
if(!$plain) {
|
||||
|
|
@ -49,7 +50,8 @@ class SeedDMS_View_ErrorDlg extends SeedDMS_Bootstrap_Style {
|
|||
print "<h4>".getMLText('error')."!</h4>";
|
||||
print htmlspecialchars($errormsg);
|
||||
print "</div>";
|
||||
print "<div><button class=\"btn history-back\">".getMLText('back')."</button></div>";
|
||||
if($showbutton)
|
||||
print "<div><button class=\"btn history-back\">".getMLText('back')."</button></div>";
|
||||
|
||||
$this->contentEnd();
|
||||
$this->htmlEndPage();
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ class SeedDMS_View_MyDocuments extends SeedDMS_Bootstrap_Style {
|
|||
|
||||
function js() { /* {{{ */
|
||||
header('Content-Type: application/javascript');
|
||||
parent::jsTranslations(array('cancel', 'splash_move_document', 'confirm_move_document', 'move_document', 'confirm_transfer_link_document', 'transfer_content', 'link_document', 'splash_move_folder', 'confirm_move_folder', 'move_folder'));
|
||||
$this->printClickDocumentJs();
|
||||
?>
|
||||
$(document).ready( function() {
|
||||
|
|
@ -116,6 +117,7 @@ $(document).ready( function() {
|
|||
$timeout = $this->params['timeout'];
|
||||
$xsendfile = $this->params['xsendfile'];
|
||||
|
||||
$db = $dms->getDB();
|
||||
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile);
|
||||
$previewer->setConverters($previewconverters);
|
||||
|
||||
|
|
@ -709,6 +711,8 @@ $(document).ready( function() {
|
|||
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile);
|
||||
$previewer->setConverters($previewconverters);
|
||||
|
||||
$this->htmlAddHeader('<script type="text/javascript" src="../styles/'.$this->theme.'/bootbox/bootbox.min.js"></script>'."\n", 'js');
|
||||
|
||||
$this->htmlStartPage(getMLText("my_documents"));
|
||||
$this->globalNavigation();
|
||||
$this->contentStart();
|
||||
|
|
|
|||
|
|
@ -55,6 +55,8 @@ class SeedDMS_View_ReceiptSummary extends SeedDMS_Bootstrap_Style {
|
|||
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout);
|
||||
$previewer->setConverters($previewconverters);
|
||||
|
||||
$this->htmlAddHeader('<script type="text/javascript" src="../styles/'.$this->theme.'/bootbox/bootbox.min.js"></script>'."\n", 'js');
|
||||
|
||||
$this->htmlStartPage(getMLText("my_documents"));
|
||||
$this->globalNavigation();
|
||||
$this->contentStart();
|
||||
|
|
|
|||
|
|
@ -44,6 +44,52 @@ $(document).ready( function() {
|
|||
$('#editaddtask.ajax').trigger('update', {taskid: $(this).data('id'), action: $(this).data('action')});
|
||||
});
|
||||
$('#listtasks.ajax').trigger('update', {});
|
||||
|
||||
$('body').on('click', '.removetask', function(ev){
|
||||
ev.preventDefault();
|
||||
ev.stopPropagation();
|
||||
id = $(ev.currentTarget).attr('rel');
|
||||
confirmmsg = $(ev.currentTarget).attr('confirmmsg');
|
||||
msg = $(ev.currentTarget).attr('msg');
|
||||
formtoken = '<?= createFormKey('removetask') ?>';
|
||||
bootbox.dialog(confirmmsg, [{
|
||||
"label" : "<i class='icon-remove'></i> <?= getMLText("rm_task") ?>",
|
||||
"class" : "btn-danger",
|
||||
"callback": function() {
|
||||
$.post('../op/op.SchedulerTaskMgr.php',
|
||||
{ action: 'removetask', taskid: id, formtoken: formtoken },
|
||||
function(data) {
|
||||
if(data.success) {
|
||||
$('#table-row-task-'+id).hide('slow');
|
||||
noty({
|
||||
text: msg,
|
||||
type: 'success',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 1500,
|
||||
});
|
||||
} else {
|
||||
noty({
|
||||
text: data.message,
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 3500,
|
||||
});
|
||||
}
|
||||
},
|
||||
'json'
|
||||
);
|
||||
}
|
||||
}, {
|
||||
"label" : "<?= getMLText("cancel") ?>",
|
||||
"class" : "btn-cancel",
|
||||
"callback": function() {
|
||||
}
|
||||
}]);
|
||||
});
|
||||
});
|
||||
<?php
|
||||
} /* }}} */
|
||||
|
|
@ -93,6 +139,19 @@ $(document).ready( function() {
|
|||
if($additionalparams) {
|
||||
foreach($additionalparams as $param) {
|
||||
switch($param['type']) {
|
||||
case 'boolean':
|
||||
$this->formField(
|
||||
getMLText("task_".$extname."_".$taskname."_".$param['name']),
|
||||
array(
|
||||
'element'=>'input',
|
||||
'type'=>'checkbox',
|
||||
'id'=>'params_'.$param['name'],
|
||||
'name'=>'params['.$param['name'].']',
|
||||
'value'=>'1',
|
||||
'checked'=>false,
|
||||
)
|
||||
);
|
||||
break;
|
||||
default:
|
||||
?>
|
||||
<div class="control-group">
|
||||
|
|
@ -125,6 +184,11 @@ $(document).ready( function() {
|
|||
$taskid = $this->params['taskid'];
|
||||
|
||||
$task = $scheduler->getTask($taskid);
|
||||
if(!isset($GLOBALS['SEEDDMS_SCHEDULER']['tasks'][$task->getExtension()])) {
|
||||
$this->errorMsg(getMLText('scheduler_extension_not_available'));
|
||||
return;
|
||||
}
|
||||
|
||||
$taskobj = $GLOBALS['SEEDDMS_SCHEDULER']['tasks'][$task->getExtension()][$task->getTask()];
|
||||
?>
|
||||
<form action="../op/op.SchedulerTaskMgr.php" method="post" class="form-horizontal">
|
||||
|
|
@ -168,6 +232,19 @@ $(document).ready( function() {
|
|||
if($additionalparams = $taskobj->getAdditionalParams()) {
|
||||
foreach($additionalparams as $param) {
|
||||
switch($param['type']) {
|
||||
case 'boolean':
|
||||
$this->formField(
|
||||
getMLText("task_".$task->getExtension()."_".$task->getTask()."_".$param['name']),
|
||||
array(
|
||||
'element'=>'input',
|
||||
'type'=>'checkbox',
|
||||
'id'=>'params_'.$param['name'],
|
||||
'name'=>'params['.$param['name'].']',
|
||||
'value'=>'1',
|
||||
'checked'=>$task->getParameter($param['name']) == 1,
|
||||
)
|
||||
);
|
||||
break;
|
||||
default:
|
||||
?>
|
||||
<div class="control-group">
|
||||
|
|
@ -218,7 +295,11 @@ $(document).ready( function() {
|
|||
print "<th></th>\n";
|
||||
print "</tr></thead><tbody>\n";
|
||||
foreach($tasks as $task) {
|
||||
echo "<tr".(!$task->getDisabled() ? " class=\"success\"" : "").">";
|
||||
if(!isset($GLOBALS['SEEDDMS_SCHEDULER']['tasks'][$task->getExtension()]))
|
||||
$class = 'error';
|
||||
else
|
||||
$class = 'success';
|
||||
echo "<tr id=\"table-row-task-".$task->getID()."\" class=\"".(!$task->getDisabled() ? " ".$class : "")."\">";
|
||||
echo "<td>";
|
||||
echo $task->getExtension()."::".$task->getTask();
|
||||
echo "</td>";
|
||||
|
|
@ -237,9 +318,12 @@ $(document).ready( function() {
|
|||
echo "<td>";
|
||||
echo $task->getLastRun();
|
||||
echo "</td>";
|
||||
echo "<td>";
|
||||
echo "<td nowrap>";
|
||||
print "<div class=\"list-action\">";
|
||||
print "<a class=\"edittask\" data-action=\"edittask\" data-id=\"".$task->getID()."\" href=\"../out/out.SchedulerTaskMgr.php?action=edittask\" title=\"".getMLText("edit_task")."\"><i class=\"icon-edit\"></i></a>";
|
||||
print "<a class=\"removetask\" rel=\"".$task->getID()."\" msg=\"".getMLText('remove_task')."\" confirmmsg=\"".htmlspecialchars(getMLText("confirm_rm_task"), ENT_QUOTES)."\" title=\"".getMLText("remove_task")."\"><i class=\"icon-remove\"></i></a>";
|
||||
if(isset($GLOBALS['SEEDDMS_SCHEDULER']['tasks'][$task->getExtension()])) {
|
||||
print "<a class=\"edittask\" data-action=\"edittask\" data-id=\"".$task->getID()."\" href=\"../out/out.SchedulerTaskMgr.php?action=edittask\" title=\"".getMLText("edit_task")."\"><i class=\"icon-edit\"></i></a>";
|
||||
}
|
||||
print "</div>";
|
||||
echo "</td>";
|
||||
echo "</tr>";
|
||||
|
|
@ -254,6 +338,8 @@ $(document).ready( function() {
|
|||
$taskname = $this->params['taskname'];
|
||||
$scheduler = $this->params['scheduler'];
|
||||
|
||||
$this->htmlAddHeader('<script type="text/javascript" src="../styles/'.$this->theme.'/bootbox/bootbox.min.js"></script>'."\n", 'js');
|
||||
|
||||
$this->htmlStartPage(getMLText("admin_tools"));
|
||||
$this->globalNavigation();
|
||||
$this->contentStart();
|
||||
|
|
@ -283,6 +369,7 @@ $(document).ready( function() {
|
|||
echo "</td>";
|
||||
echo "<td>";
|
||||
$params = $task->getAdditionalParams();
|
||||
$k = array();
|
||||
foreach($params as $param)
|
||||
$k[] = $param['name'];
|
||||
echo implode(', ', $k);
|
||||
|
|
|
|||
|
|
@ -144,6 +144,7 @@ class SeedDMS_View_Timeline extends SeedDMS_Bootstrap_Style {
|
|||
}
|
||||
|
||||
header('Content-Type: application/javascript');
|
||||
parent::jsTranslations(array('cancel', 'splash_move_document', 'confirm_move_document', 'move_document', 'confirm_transfer_link_document', 'transfer_content', 'link_document', 'splash_move_folder', 'confirm_move_folder', 'move_folder'));
|
||||
?>
|
||||
$(document).ready(function () {
|
||||
$('#update').click(function(ev){
|
||||
|
|
|
|||
|
|
@ -32,15 +32,22 @@ require_once("class.Bootstrap.php");
|
|||
class SeedDMS_View_TransmittalMgr extends SeedDMS_Bootstrap_Style {
|
||||
|
||||
function js() { /* {{{ */
|
||||
$showtree = $this->params['showtree'];
|
||||
$onepage = $this->params['onepage'];
|
||||
|
||||
header('Content-Type: application/javascript; charset=UTF-8');
|
||||
parent::jsTranslations(array('cancel', 'splash_move_document', 'confirm_move_document', 'move_document', 'confirm_transfer_link_document', 'transfer_content', 'link_document', 'splash_move_folder', 'confirm_move_folder', 'move_folder'));
|
||||
$this->printDeleteDocumentButtonJs();
|
||||
$this->printDeleteItemButtonJs();
|
||||
$this->printUpdateItemButtonJs();
|
||||
if($onepage)
|
||||
$this->printClickDocumentJs();
|
||||
?>
|
||||
$(document).ready( function() {
|
||||
$('body').on('click', '.selecttransmittal', function(ev){
|
||||
ev.preventDefault();
|
||||
$('div.ajax').trigger('update', {transmittalid: $(ev.currentTarget).data('transmittalid')});
|
||||
window.history.pushState({"html":"","pageTitle":""},"", '../out/out.TransmittalMgr.php?transmittalid=' + $(ev.currentTarget).data('transmittalid'));
|
||||
});
|
||||
});
|
||||
<?php
|
||||
|
|
@ -285,14 +292,15 @@ $(document).ready( function() {
|
|||
$document = $content->getDocument();
|
||||
$latestcontent = $document->getLatestContent();
|
||||
if ($document->getAccessMode($user) >= M_READ) {
|
||||
echo "<tr id=\"table-row-transmittalitem-".$item->getID()."\">";
|
||||
// echo "<tr id=\"table-row-transmittalitem-".$item->getID()."\">";
|
||||
echo $this->documentListRowStart($document);
|
||||
echo $this->documentListRow($document, $previewer, true, $content->getVersion());
|
||||
echo "<td><div class=\"list-action\">";
|
||||
$this->printDeleteItemButton($item, getMLText('transmittalitem_removed'));
|
||||
if($latestcontent->getVersion() != $content->getVersion())
|
||||
$this->printUpdateItemButton($item, getMLText('transmittalitem_updated', array('prevversion'=>$content->getVersion(), 'newversion'=>$latestcontent->getVersion())));
|
||||
echo "</div></td>";
|
||||
echo "</tr>";
|
||||
echo $this->documentListRowEnd($document);
|
||||
}
|
||||
} else {
|
||||
echo "<tr id=\"table-row-transmittalitem-".$item->getID()."\">";
|
||||
|
|
|
|||
|
|
@ -212,6 +212,12 @@ console.log(element);
|
|||
} else {
|
||||
$msg = getMLText("max_upload_size").": ".ini_get( "upload_max_filesize");
|
||||
}
|
||||
$mus2 = SeedDMS_Core_File::parse_filesize(ini_get("upload_max_filesize"));
|
||||
if($maxuploadsize && $maxuploadsize < $mus2)
|
||||
$msg = getMLText("max_upload_size").": ".SeedDMS_Core_File::format_filesize($maxuploadsize);
|
||||
else
|
||||
$msg = getMLText("max_upload_size").": ".SeedDMS_Core_File::format_filesize($mus2);
|
||||
|
||||
if(0 && $enablelargefileupload) {
|
||||
$msg .= "<p>".sprintf(getMLText('link_alt_updatedocument'), "out.AddMultiDocument.php?folderid=".$folder->getID()."&showtree=".showtree())."</p>";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -192,6 +192,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
|
|||
$document = $this->params['document'];
|
||||
|
||||
header('Content-Type: application/javascript');
|
||||
parent::jsTranslations(array('cancel', 'splash_move_document', 'confirm_move_document', 'move_document', 'confirm_transfer_link_document', 'transfer_content', 'link_document', 'splash_move_folder', 'confirm_move_folder', 'move_folder'));
|
||||
if($user->isAdmin()) {
|
||||
$latestContent = $this->callHook('documentLatestContent', $document);
|
||||
if($latestContent === null)
|
||||
|
|
@ -1179,7 +1180,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
|
|||
echo "<td>";
|
||||
if($latestContent->triggerWorkflowTransitionIsAllowed($user, $transition)) {
|
||||
$action = $transition->getAction();
|
||||
print "<form action=\"../out/out.TriggerWorkflow.php\" method=\"get\"><input type=\"hidden\" name=\"documentid\" value=\"".$latestContent->getDocument()->getId()."\" /><input type=\"hidden\" name=\"version\" value=\"".$latestContent->getVersion()."\" /><input type=\"hidden\" name=\"transition\" value=\"".$transition->getID()."\" /><input type=\"submit\" class=\"btn\" value=\"".getMLText('action_'.strtolower($action->getName()), array(), $action->getName())."\" /></form>";
|
||||
print "<form action=\"../out/out.TriggerWorkflow.php\" method=\"get\"><input type=\"hidden\" name=\"documentid\" value=\"".$latestContent->getDocument()->getId()."\" /><input type=\"hidden\" name=\"version\" value=\"".$latestContent->getVersion()."\" /><input type=\"hidden\" name=\"transition\" value=\"".$transition->getID()."\" /><input type=\"submit\" class=\"btn\" value=\"".getMLText('action_'.strtolower($action->getName()), array(), htmlspecialchars($action->getName()))."\" /></form>";
|
||||
$allowedtransitions[] = $transition;
|
||||
}
|
||||
echo "</td>";
|
||||
|
|
@ -1731,7 +1732,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
|
|||
$responsibleUser = $link->getUser();
|
||||
$targetDoc = $link->getTarget();
|
||||
|
||||
echo "<tr id=\"table-row-document-".$targetDoc->getId()."\" class=\"table-row-document\" rel=\"document_".$targetDoc->getId()."\" formtoken=\"".createFormKey('movedocument')."\" draggable=\"true\">";
|
||||
echo $this->documentListRowStart($targetDoc);
|
||||
$targetDoc->verifyLastestContentExpriry();
|
||||
$txt = $this->callHook('documentListItem', $targetDoc, $previewer, false, 'reverselinks');
|
||||
if(is_string($txt))
|
||||
|
|
@ -1746,7 +1747,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
|
|||
if (($user->getID() == $responsibleUser->getID()) || ($document->getAccessMode($user) == M_ALL ))
|
||||
print "<form action=\"../op/op.RemoveDocumentLink.php\" method=\"post\">".createHiddenFieldWithKey('removedocumentlink')."<input type=\"hidden\" name=\"documentid\" value=\"".$documentid."\" /><input type=\"hidden\" name=\"linkid\" value=\"".$link->getID()."\" /><button type=\"submit\" class=\"btn btn-mini\"><i class=\"icon-remove\"></i> ".getMLText("delete")."</button></form>";
|
||||
print "</span></td>";
|
||||
print "</tr>";
|
||||
echo $this->documentListRowEnd($targetDoc);
|
||||
}
|
||||
print "</tbody>\n</table>\n";
|
||||
}
|
||||
|
|
@ -1796,7 +1797,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
|
|||
$responsibleUser = $link->getUser();
|
||||
$sourceDoc = $link->getDocument();
|
||||
|
||||
echo "<tr id=\"table-row-document-".$sourceDoc->getId()."\" class=\"table-row-document\" rel=\"document_".$sourceDoc->getId()."\" formtoken=\"".createFormKey('movedocument')."\" draggable=\"true\">";
|
||||
echo $this->documentListRowStart($sourceDoc);
|
||||
$sourceDoc->verifyLastestContentExpriry();
|
||||
$txt = $this->callHook('documentListItem', $sourceDoc, $previewer, false, 'reverselinks');
|
||||
if(is_string($txt))
|
||||
|
|
@ -1811,7 +1812,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
|
|||
print "<br />".getMLText("document_link_public").": ".(($link->isPublic()) ? getMLText("yes") : getMLText("no"));
|
||||
print "<form action=\"../op/op.RemoveDocumentLink.php\" method=\"post\">".createHiddenFieldWithKey('removedocumentlink')."<input type=\"hidden\" name=\"documentid\" value=\"".$sourceDoc->getId()."\" /><input type=\"hidden\" name=\"linkid\" value=\"".$link->getID()."\" /><button type=\"submit\" class=\"btn btn-mini\"><i class=\"icon-remove\"></i> ".getMLText("delete")."</button></form>";
|
||||
print "</span></td>";
|
||||
print "</tr>";
|
||||
echo $this->documentListRowEnd($sourceDoc);
|
||||
}
|
||||
print "</tbody>\n</table>\n";
|
||||
// $this->contentContainerEnd();
|
||||
|
|
|
|||
|
|
@ -109,6 +109,7 @@ class SeedDMS_View_ViewFolder extends SeedDMS_Bootstrap_Style {
|
|||
$expandFolderTree = $this->params['expandFolderTree'];
|
||||
$enableDropUpload = $this->params['enableDropUpload'];
|
||||
$maxItemsPerPage = $this->params['maxItemsPerPage'];
|
||||
$maxuploadsize = $this->params['maxuploadsize'];
|
||||
$showtree = $this->params['showtree'];
|
||||
$onepage = $this->params['onepage'];
|
||||
$sitename = trim(strip_tags($this->params['sitename']));
|
||||
|
|
@ -214,7 +215,11 @@ $('body').on('click', '.order-btn', function(ev) {
|
|||
echo "SeedDMSUpload.setUrl('../op/op.Ajax.php');";
|
||||
echo "SeedDMSUpload.setAbortBtnLabel('".getMLText("cancel")."');";
|
||||
echo "SeedDMSUpload.setEditBtnLabel('".getMLText("edit_document_props")."');";
|
||||
echo "SeedDMSUpload.setMaxFileSize(".SeedDMS_Core_File::parse_filesize(ini_get("upload_max_filesize")).");";
|
||||
$mus2 = SeedDMS_Core_File::parse_filesize(ini_get("upload_max_filesize"));
|
||||
if($maxuploadsize && $maxuploadsize < $mus2)
|
||||
echo "SeedDMSUpload.setMaxFileSize($maxuploadsize);";
|
||||
else
|
||||
echo "SeedDMSUpload.setMaxFileSize($mus2);";
|
||||
echo "SeedDMSUpload.setMaxFileSizeMsg('".getMLText("uploading_maxsize")."');";
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user