GI-130 Add files bookmark

Add field scritp mysql

Change output format Endpoint
This commit is contained in:
Marco A. Nina Mena
2015-11-05 14:56:45 -04:00
parent 29582243fb
commit 3f9e40986c
10 changed files with 372 additions and 13 deletions

View File

@@ -2288,4 +2288,134 @@ class Cases
throw $e;
}
}
/**
* Get process list for start case
*
* @param string $usrUid id of user
* @param string $typeView type of view
*
* return array Return an array with process list that the user can start.
*/
public function getCasesListStarCase($usrUid, $typeView)
{
try {
Validator::usrUid($usrUid, '$usr_uid');
$case = new \Cases();
$response = $case->getProcessListStartCase($usrUid, $typeView);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* Get process list bookmark for start case
*
* @param string $usrUid id of user
* @param string $typeView type of view
*
* return array Return an array with process list that the user can start.
*/
public function getCasesListBookmarkStarCase($usrUid, $typeView)
{
try {
Validator::usrUid($usrUid, '$usr_uid');
$user = new \Users();
$fields = $user->load($usrUid);
$bookmark = empty($fields['USR_BOOKMARK_START_CASES']) ? array() : unserialize($fields['USR_BOOKMARK_START_CASES']);
//Getting group id and adding the user id
$group = new \Groups();
$groups = $group->getActiveGroupsForAnUser($usrUid);
$groups[] = $usrUid;
$c = new \Criteria();
$c->clearSelectColumns();
$c->addSelectColumn(\TaskPeer::TAS_UID);
$c->addSelectColumn(\TaskPeer::PRO_UID);
$c->addJoin(\TaskPeer::PRO_UID, \ProcessPeer::PRO_UID, \Criteria::LEFT_JOIN);
$c->addJoin(\TaskPeer::TAS_UID, \TaskUserPeer::TAS_UID, \Criteria::LEFT_JOIN);
$c->add(\ProcessPeer::PRO_STATUS, 'ACTIVE');
$c->add(\TaskPeer::TAS_START, 'TRUE');
$c->add(\TaskUserPeer::USR_UID, $groups, \Criteria::IN);
$c->add(\TaskPeer::TAS_UID, $bookmark, \Criteria::IN);
$c->addAsColumn('TAS_TITLE', 'C1.CON_VALUE');
$c->addAlias("C1", 'CONTENT');
$tasTitleConds = array();
$tasTitleConds[] = array(\TaskPeer::TAS_UID, 'C1.CON_ID');
$tasTitleConds[] = array(
'C1.CON_CATEGORY',
\DBAdapter::getStringDelimiter() . 'TAS_TITLE' . \DBAdapter::getStringDelimiter()
);
$tasTitleConds[] = array(
'C1.CON_LANG',
\DBAdapter::getStringDelimiter() . SYS_LANG . \DBAdapter::getStringDelimiter()
);
$c->addJoinMC( $tasTitleConds, \Criteria::LEFT_JOIN );
$c->addAsColumn('PRO_TITLE', 'C2.CON_VALUE');
$c->addAlias("C2", 'CONTENT');
$proTitleConds = array();
$proTitleConds[] = array(\ProcessPeer::PRO_UID, 'C2.CON_ID');
$proTitleConds[] = array(
'C2.CON_CATEGORY',
\DBAdapter::getStringDelimiter() . 'PRO_TITLE' . \DBAdapter::getStringDelimiter()
);
$proTitleConds[] = array(
'C2.CON_LANG',
\DBAdapter::getStringDelimiter() . SYS_LANG . \DBAdapter::getStringDelimiter()
);
$c->addJoinMC( $proTitleConds, \Criteria::LEFT_JOIN );
if ($typeView == 'category') {
$c->addAsColumn('PRO_CATEGORY', 'PCS.PRO_CATEGORY');
$c->addAsColumn('CATEGORY_NAME', 'PCSCAT.CATEGORY_NAME');
$c->addAlias('PCS', 'PROCESS');
$c->addAlias('PCSCAT', 'PROCESS_CATEGORY');
$aConditions = array();
$aConditions[] = array(\TaskPeer::PRO_UID, 'PCS.PRO_UID');
$c->addJoinMC( $aConditions, \Criteria::LEFT_JOIN );
$aConditions = array();
$aConditions[] = array('PCS.PRO_CATEGORY', 'PCSCAT.CATEGORY_UID');
$c->addJoinMC( $aConditions, \Criteria::LEFT_JOIN );
}
$rs = \TaskPeer::doSelectRS($c);
$rs->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$processList = array();
while ($rs->next()) {
$row = $rs->getRow();
if ($typeView == 'category') {
$processList[] = array(
'tas_uid' => $row['TAS_UID'],
'pro_title' => $row['PRO_TITLE'] . '(' . $row['TAS_TITLE'] . ')',
'pro_uid' => $row['PRO_UID'],
'pro_category' => $row['PRO_CATEGORY'],
'category_name' => $row['CATEGORY_NAME']
);
} else {
$processList[] = array(
'tas_uid' => $row['TAS_UID'],
'pro_title' => $row['PRO_TITLE'] . '(' . $row['TAS_TITLE'] . ')',
'pro_uid' => $row['PRO_UID']
);
}
}
if (count($processList) == 0) {
$processList['success'] = 'failure';
$processList['message'] = G::LoadTranslation('ID_USER_PROCESS_NOT_START');
}
return $processList;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
}

View File

@@ -1193,6 +1193,31 @@ class User
}
}
/**
* change Bookmarks of an user
*
* @access public
* @param $userUID
* @param $tasUid
* @param $type
* @return void
*/
public function updateBookmark($userUID, $tasUid, $type)
{
$this->userObj = new \Users();
$fields = $this->userObj->load($userUID);
$bookmark = empty($fields['USR_BOOKMARK_START_CASES']) ? array() : unserialize($fields['USR_BOOKMARK_START_CASES']);
$position = array_search($tasUid, $bookmark);
if ($type === 'INSERT' and $position === false) {
$bookmark[] = $tasUid;
} elseif ($type === 'DELETE' and $position !== false) {
unset($bookmark[$position]);
}
$fields['USR_BOOKMARK_START_CASES'] = serialize($bookmark);
$this->userObj->update($fields);
}
/**
* Check permission
*

View File

@@ -4,7 +4,6 @@ namespace ProcessMaker\Services\Api;
use \ProcessMaker\Services\Api;
use \Luracast\Restler\RestException;
/**
* Cases Api Controller
*
@@ -1045,5 +1044,52 @@ class Cases extends Api
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
}
}
}
/**
* Get process list for start case
*
* @url GET /start-cases
*
* @param string $type_view {@from path}
* @return array
*
*/
public function doGetCasesListStarCase(
$type_view = ''
) {
try {
$usr_uid = $this->getUserId();
$case = new \ProcessMaker\BusinessModel\Cases();
$response = $case->getCasesListStarCase($usr_uid, $type_view);
return $response;
} catch (\Exception $e) {
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
}
}
/**
* Get process list bookmark for start case
*
* @url GET /bookmark-start-cases
*
* @param string $type_view {@from path}
* @return array
*
*/
public function doGetCasesListBookmarkStarCase(
$type_view = ''
) {
try {
$usr_uid = $this->getUserId();
$case = new \ProcessMaker\BusinessModel\Cases();
$response = $case->getCasesListBookmarkStarCase($usr_uid, $type_view);
return $response;
} catch (\Exception $e) {
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
}
}
}

View File

@@ -137,5 +137,41 @@ class User extends Api
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
}
}
/**
* Save Bookmark start case
* @url POST /bookmark/:tas_uid
*
* @param string $tas_uid {@min 32}{@max 32}
*
*/
public function doPostBookmarkStartCase($tas_uid)
{
try {
$userLoggedUid = $this->getUserId();
$user = new \ProcessMaker\BusinessModel\User();
$user->updateBookmark($userLoggedUid, $tas_uid, 'INSERT');
} catch (\Exception $e) {
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
}
}
/**
* Delete Bookmark start case
* @url DELETE /bookmark/:tas_uid
*
* @param string $tas_uid {@min 32}{@max 32}
*
*/
public function doDeleteBookmarkStartCase($tas_uid)
{
try {
$userLoggedUid = $this->getUserId();
$user = new \ProcessMaker\BusinessModel\User();
$user->updateBookmark($userLoggedUid, $tas_uid, 'DELETE');
} catch (\Exception $e) {
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
}
}
}