コード例 #1
0
 public function start(WorkflowProgress $wp)
 {
     $req = $wp->getWorkflowRequestObject();
     $wpr = $req->approve($wp);
     $wp->delete();
     return $wpr;
 }
コード例 #2
0
 public function getWorkflowProgressCurrentStatusNum(WorkflowProgress $wp)
 {
     $req = $wp->getWorkflowRequestObject();
     if (is_object($req)) {
         return $req->getWorkflowRequestStatusNum();
     }
 }
コード例 #3
0
 public function clearNotification(Progress $progress)
 {
     $r = $this->entityManager->getRepository('Concrete\\Core\\Entity\\Notification\\WorkflowProgressNotification');
     $notification = $r->findOneBy(array('wpID' => $progress->getWorkflowProgressID()));
     if (is_object($notification)) {
         $this->entityManager->remove($notification);
         $this->entityManager->flush();
     }
 }
コード例 #4
0
ファイル: History.php プロジェクト: ceko/concrete5-1
 public static function getList(Progress $wp)
 {
     $db = Loader::db();
     $r = $db->Execute('select wphID from WorkflowProgressHistory where wpID = ? order by timestamp desc', array($wp->getWorkflowProgressID()));
     $list = array();
     while ($row = $r->FetchRow()) {
         $obj = $wp->getWorkflowProgressHistoryObjectByID($row['wphID']);
         if (is_object($obj)) {
             $list[] = $obj;
         }
     }
     return $list;
 }
コード例 #5
0
 public function getWorkflowProgressObject()
 {
     if (!isset($this->progressObject)) {
         $this->progressObject = Progress::getByID($this->wpID);
     }
     return $this->progressObject;
 }
コード例 #6
0
 public static function add(Workflow $wf, UserRequest $wr)
 {
     $wp = parent::add('user', $wf, $wr);
     $db = Loader::db();
     $db->Replace('UserWorkflowProgress', array('uID' => $wr->getRequestedUserID(), 'wpID' => $wp->getWorkflowProgressID()), array('uID', 'wpID'), true);
     $wp->uID = $wr->getRequestedUserID();
     return $wp;
 }
コード例 #7
0
 public function getWorkflowRequestAdditionalActions(WorkflowProgress $wp)
 {
     $buttons = array();
     $w = $wp->getWorkflowObject();
     if ($w->canApproveWorkflowProgressObject($wp)) {
         $c = Page::getByID($this->cID, 'ACTIVE');
         $button = new WorkflowProgressAction();
         $button->setWorkflowProgressActionLabel(t('View Pending Permissions'));
         $button->addWorkflowProgressActionButtonParameter('dialog-title', t('Pending Permissions'));
         $button->addWorkflowProgressActionButtonParameter('dialog-width', '400');
         $button->addWorkflowProgressActionButtonParameter('dialog-height', '360');
         $button->setWorkflowProgressActionStyleInnerButtonLeftHTML('<i class="icon-eye-open"></i>');
         $button->setWorkflowProgressActionURL(REL_DIR_FILES_TOOLS_REQUIRED . '/workflow/dialogs/change_page_permissions?wpID=' . $wp->getWorkflowProgressID());
         $button->setWorkflowProgressActionStyleClass('dialog-launch');
         $buttons[] = $button;
     }
     return $buttons;
 }
コード例 #8
0
 public function getWorkflowRequestAdditionalActions(WorkflowProgress $wp)
 {
     $buttons = array();
     $c = Page::getByID($this->cID, 'ACTIVE');
     $cp = new Permissions($c);
     if ($cp->canViewPageVersions()) {
         $button = new WorkflowProgressAction();
         $button->setWorkflowProgressActionLabel(t('Compare Versions'));
         $button->addWorkflowProgressActionButtonParameter('dialog-title', t('Compare Versions'));
         $button->addWorkflowProgressActionButtonParameter('dialog-width', '90%');
         $button->addWorkflowProgressActionButtonParameter('dialog-height', '70%');
         $button->addWorkflowProgressActionButtonParameter('data-dismiss-alert', 'page-alert');
         $button->addWorkflowProgressActionButtonParameter('dialog-height', '70%');
         $button->setWorkflowProgressActionStyleInnerButtonLeftHTML('<i class="fa fa-eye"></i>');
         $button->setWorkflowProgressActionURL(REL_DIR_FILES_TOOLS_REQUIRED . '/workflow/dialogs/approve_page_preview?wpID=' . $wp->getWorkflowProgressID());
         $button->setWorkflowProgressActionStyleClass('btn-default dialog-launch');
         $buttons[] = $button;
     }
     return $buttons;
 }
コード例 #9
0
ファイル: PageProgress.php プロジェクト: ceko/concrete5-1
 public function delete()
 {
     parent::delete();
     $db = Loader::db();
     $db->Execute('delete from PageWorkflowProgress where wpID = ?', array($this->wpID));
 }
コード例 #10
0
 public function getWorkflowProgressStatusDescription(WorkflowProgress $wp)
 {
     $req = $wp->getWorkflowRequestObject();
     return $req->getWorkflowRequestDescriptionObject()->getShortStatus();
 }
コード例 #11
0
<?php

defined('C5_EXECUTE') or die("Access Denied.");
$wp = \Concrete\Core\Workflow\Progress\Progress::getByID($_REQUEST['wpID']);
$ih = Loader::helper('concrete/ui');
$wf = $wp->getWorkflowObject();
$req = $wp->getWorkflowRequestObject();
if ($wp instanceof \Concrete\Core\Workflow\Progress\PageProgress) {
    $rvc = Page::getByID($req->getRequestedPageID(), $req->getRequestedVersionID());
    $rvcp = new Permissions($rvc);
    if ($rvcp->canViewPageVersions()) {
        $rv = $rvc->getVersionObject();
        $rvl = Page::getByID($req->getRequestedPageID(), 'ACTIVE');
        $rvr = Page::getByID($req->getRequestedPageID(), 'RECENT');
        $liveCVID = $rvl->getVersionID();
        $recentCVID = $rvr->getVersionID();
        $tabs = array(array('requested-version', t('Requested Version: %s', $rv->getVersionComments()), true), array('live-version', t('Live Version')));
        if ($liveCVID != $recentCVID) {
            $tabs[] = array('recent-version', t('Most Recent Version'));
        }
        ?>
		
		<div class="ccm-ui" style="height: 100%">
		
		<?php 
        echo $ih->tabs($tabs);
        ?>
		
		<div style="display: block; height: 100%" id="ccm-tab-content-requested-version">
			<iframe border="0" id="v<?php 
        echo time();
コード例 #12
0
ファイル: Request.php プロジェクト: ceko/concrete5-1
 public function runTask($task, WorkflowProgress $wp)
 {
     if (method_exists($this, $task)) {
         if ($task == 'approve') {
             // we check to see if any other outstanding workflowprogress requests have this id
             // if they don't we proceed
             $db = Database::connection();
             $num = $db->GetOne('select count(wpID) as total from WorkflowProgress where wpID <> ? and wrID = ? and wpIsCompleted = 0', array($wp->getWorkflowProgressID(), $this->getWorkflowRequestID()));
             if ($num == 0) {
                 $wpr = call_user_func_array(array($this, $task), array($wp));
                 return $wpr;
             }
         } else {
             $wpr = call_user_func_array(array($this, $task), array($wp));
             return $wpr;
         }
     }
 }
コード例 #13
0
ファイル: PageProgress.php プロジェクト: digideskio/concrete5
 public function delete()
 {
     parent::delete();
     $db = Database::connection();
     $db->Execute('delete from PageWorkflowProgress where wpID = ?', array($this->wpID));
 }
コード例 #14
0
ファイル: user.php プロジェクト: ppiedaderawnet/concrete5
defined('C5_EXECUTE') or die("Access Denied.");
$u = User::getByUserID($_REQUEST['uID']);
$obj = new stdClass();
$obj->tableData = t('None');
use Concrete\Core\Workflow\Progress\Response as WorkflowProgressResponse;
use Concrete\Core\Workflow\Progress\Progress as WorkflowProgress;
use Concrete\Core\Workflow\Progress\UserProgress as UserWorkflowProgress;
use Concrete\Core\Workflow\Progress\Category as WorkflowProgressCategory;
if ($_REQUEST['task'] == 'save_user_workflow_progress' && Loader::helper("validation/token")->validate('save_user_workflow_progress')) {
    $wp = UserWorkflowProgress::getByID($_REQUEST['wpID']);
    if (is_object($wp)) {
        $wf = $wp->getWorkflowObject();
        $form = Loader::helper('form');
        $obj->wpID = $wp->getWorkflowProgressID();
        if ($wf->canApproveWorkflowProgressObject($wp)) {
            $task = WorkflowProgress::getRequestedTask();
            if ($task) {
                $r = $wp->runTask($task, $_POST);
                if ($r instanceof WorkflowProgressResponse && $r->getWorkflowProgressResponseURL() != '') {
                    $obj->redirect = $r->getWorkflowProgressResponseURL();
                    $obj->message = $r->message;
                } else {
                    $obj->redirect = BASE_URL . View::url('/dashboard/users/search') . '?uID=' . $_REQUEST['uID'];
                }
                $category = WorkflowProgressCategory::getByID($wp->getWorkflowProgressCategoryID());
                $list = $category->getPendingWorkflowProgressList();
                $items = $list->get();
                // start a new buffer
                ob_start();
                Loader::element('workflow/progress/categories/user/table_data', array('items' => $items, 'list' => $list));
                $obj->tableData = ob_get_contents();