Commit fcb0f51a8cc3a8fc7a75d4d3050ae2b9a4605663

Authored by Neil Blakey-Milner
1 parent e2e28b3b

Use the new action infrastructure to populate the document actions


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@3562 c91229c3-7414-0410-bfa2-8a42b809f60b
presentation/lookAndFeel/knowledgeTree/documentmanagement/viewUI.inc
... ... @@ -519,168 +519,28 @@ function displayButton($sAction, $sQueryString, $sImageName, $sDisabledText = ""
519 519 }
520 520 }
521 521  
522   -function displayViewButton($oDocument, $bEdit) {
523   - $sQueryString = "fDocumentID=" . $oDocument->getID();
524   - $sViewAlert = _("This will download a copy of the document and is not the same as Checking Out a document. Changes to this downloaded file will not be managed in the DMS.");
525   - $sJS = "onClick=\"alert('$sViewAlert '); return true;\"";
526   - return displayButton("downloadDocument", $sQueryString, "view", $sDisabledText, $sJS);
527   -
528   -}
529   -
530   -function displayCheckInOutButton($oDocument, $bEdit) {
531   -
532   - $sQueryString = "fDocumentID=" . $oDocument->getID();
533   - // display the check in button if the document is checked out and you checked the document out
534   - if ($oDocument->getIsCheckedOut()) {
535   - $sAction = "checkInDocument";
536   - $sImageName = "checkin";
537   - if ($oDocument->getCheckedOutUserID() <> $_SESSION["userID"]) {
538   - $oUser = User::get($oDocument->getCheckedOutUserID());
539   - $sDisabledText = sprintf(_("The document can only be checked back in by %s"), $oUser->getName());
540   - }
541   - // otherwise display the check out button
542   - } else {
543   - $sAction = "checkOutDocument";
544   - $sImageName = "checkout";
545   - // #3481 if the document is published don't allow checkout
546   - if (DocumentCollaboration::documentIsPublished($oDocument->getID())) {
547   - $sDisabledText = _("This document has been published and cannot be checked out");
548   - }
549   - }
550   - if (!$bEdit) {
551   - $sDisabledText = _("You do not have write access to this document");
552   - }
553   - return displayButton($sAction, $sQueryString, $sImageName, $sDisabledText);
554   -}
555   -
556   -function displayEmailButton($oDocument) {
557   - global $default;
558   - return displayButton("emailDocument", "fDocumentID=" . $oDocument->getID(), "email");
559   -}
560   -
561   -function displayDeleteButton($oDocument, $bEdit) {
562   - if ($bEdit) {
563   - $sQueryString = "fDocumentIDs[]=" . $oDocument->getID();
564   - $sQueryString .= "&fReturnDocumentID=" . $oDocument->getID();
565   - if ($oDocument->getIsCheckedOut()) {
566   - $sDisabledText = _("This document can't be deleted because its checked out");
567   - }
568   - } else {
569   - $sDisabledText = _("You do not have write access to this document");
570   - }
571   - return displayButton("deleteDocument", $sQueryString, "delete", $sDisabledText);
572   -}
573   -
574   -function displayHistoryButton($oDocument) {
575   - global $default;
576   - return displayButton("viewHistory", "fDocumentID=" . $oDocument->getID(), "history");
577   -}
578   -function displayMoveButton($oDocument, $bEdit) {
579   - if ($bEdit) {
580   - $sQueryString = "fFolderID=" . $oDocument->getFolderID() . "&fDocumentIDs[]=" . $oDocument->getID();
581   - // documents in collaboration and checked out documents can't be moved
582   - if ($oDocument->getIsCheckedOut()) {
583   - $sDisabledText = _("The document is checked out and cannot be moved.");
584   - }
585   - if (DocumentCollaboration::documentCollaborationStarted($oDocument->getID()) &&
586   - !DocumentCollaboration::documentCollaborationDone($oDocument->getID())) {
587   - $sDisabledText = _("The document is in collaboration and cannot be moved.");
588   - }
589   - } else {
590   - $sDisabledText = _("You do not have write access to this document");
591   - }
592   - return displayButton("moveDocument", $sQueryString, "move", $sDisabledText);
593   -}
  522 +/**
  523 + * Displays document action buttons
  524 + */
594 525  
595   -function displaySubscriptionButton($oDocument) {
596   - // display the unsubscribe button if the user is subscribed to the document
597   - if (Subscription::exists($_SESSION["userID"], $oDocument->getID(), SubscriptionConstants::subscriptionType("DocumentSubscription"))) {
598   - $sAction = "removeSubscription";
599   - $sImageName = "unsubscribe";
600   - // otherwise display the subscribe button
601   - } else {
602   - $sAction = "addSubscription";
603   - $sImageName = "subscribe";
604   - }
605   - return displayButton($sAction, "fDocumentID=" . $oDocument->getID(), $sImageName);
606   -}
  526 +function displayActionButtons($oDocument, $bEdit) {
  527 + require_once(KT_LIB_DIR . '/actions/documentaction.inc.php');
  528 + $oTemplating =& KTTemplating::getSingleton();
  529 + $oTemplate = $oTemplating->loadTemplate('ktcore/document_action');
607 530  
608   -function displayDiscussionButton($oDocument, $bEdit) {
609   - global $default;
610   - return displayButton("viewDiscussion", "fDocumentID=" . $oDocument->getID() . "&fForDiscussion=1", "discussion");
611   -}
612   -
613   -function displayArchiveButton($oDocument, $bEdit) {
614   - // only display the archive button for available documents
615   - // if the document is not checked out
616   - // and if the document is not in collaboration
617   - if ($bEdit) {
618   - if (!$oDocument->getIsCheckedOut()) {
619   - if ($oDocument->hasCollaboration() &&
620   - DocumentCollaboration::documentCollaborationStarted($oDocument->getID()) &&
621   - !DocumentCollaboration::documentCollaborationDone($oDocument->getID())) {
622   - $sDisabledText = _("This document is in collaboration and cannot be archived");
623   - }
624   - } else {
625   - $sDisabledText = _("This document is checked out and cannot be archived.");
626   - }
627   - } else {
628   - $sDisabledText = _("You do not have write access to this document");
629   - }
630   - return displayButton("archiveDocument", "fDocumentID=" . $oDocument->getID(), "archive", $sDisabledText);
631   -}
  531 + $sToRender = "";
632 532  
633   -function displayDependantDocumentButton($oDocument, $bEdit) {
634   - global $default;
635   - return displayButton("createDependantDocument", "fDocumentID=" . $oDocument->getID(), "dependentdoc");
636   -}
  533 + // XXX: Anonymous/Guest interaction
  534 + $oUser =& User::get($_SESSION["userID"]);
637 535  
638   -function displayPublishButton($oDocument, $bEdit) {
639   - // only display the publish button for unpublished documents
640   - if (!DocumentCollaboration::documentIsPublished($oDocument->getID()) &&
641   - !DocumentCollaboration::documentIsPendingWebPublishing($oDocument->getID())) {
642   - // if there is collaboration
643   - if ($oDocument->hasCollaboration()) {
644   - // only display publish button if collaboration is complete and you're the last user in the collaboration process (or a sysadmin)
645   - if (DocumentCollaboration::documentCollaborationDone($oDocument->getID())) {
646   - if ( !($_SESSION["userID"] == DocumentCollaboration::getLastCollaboratorID($oDocument->getID())) && !Permission::userIsSystemAdministrator() ) {
647   - $sDisabledText = _("You are not the last collaborator and hence cannot publish this document");
648   - }
649   - } else {
650   - $sDisabledText = _("You cannot publish this document until collaboration is complete");
651   - }
652   - } else {
653   - // no collaboration, check the user permissions
654   - if ( !($_SESSION["userID"] == $oDocument->getCreatorID()) && !Permission::userIsSystemAdministrator() ) {
655   - $sDisabledText = _("You do not have permission to publish this document.");
656   - }
  536 + foreach (KTDocumentActionUtil::getDocumentActionsForDocument($oDocument, $oUser) as $oAction) {
  537 + $aInfo = $oAction->getInfo();
  538 + if (is_null($aInfo)) {
  539 + continue;
657 540 }
658   - } else {
659   - if (DocumentCollaboration::documentIsPublished($oDocument->getID())) {
660   - $sDisabledText = _("This document is already published.");
661   - } else if (DocumentCollaboration::documentIsPendingWebPublishing($oDocument->getID())) {
662   - $sDisabledText = _("This document has been marked as pending publishing and the web publisher has been notified.");
663   - }
  541 + $sToRender .= $oTemplate->render($aInfo);
664 542 }
665   - return displayButton("viewDocument", "fDocumentID=" . $oDocument->getID() . "&fForPublish=1", "publish", $sDisabledText);
666   -}
667 543  
668   -/**
669   - * Displays document action buttons
670   - */
671   -function displayActionButtons($oDocument, $bEdit) {
672   - $sToRender .= displayViewButton($oDocument, $bEdit);
673   - $sToRender .= displayEmailButton($oDocument);
674   - $sToRender .= displayCheckInOutButton($oDocument, $bEdit);
675   - $sToRender .= displayDeleteButton($oDocument, $bEdit);
676   - $sToRender .= displayHistoryButton($oDocument);
677   - $sToRender .= displayMoveButton($oDocument, $bEdit);
678   - $sToRender .= displaySubscriptionButton($oDocument);
679   - $sToRender .= displayDiscussionButton($oDocument, $bEdit);
680   - $sToRender .= displayArchiveButton($oDocument, $bEdit);
681   - $sToRender .= displayDependantDocumentButton($oDocument, $bEdit);
682   - $sToRender .= displayPublishButton($oDocument, $bEdit);
683   -
684 544 return $sToRender;
685 545 }
686 546  
... ...