BUG 0000 BUG 0000 User Inbox Simplified (4th commit)

This commit is contained in:
Erik Amaru Ortiz
2012-02-01 17:28:30 -04:00
parent 6fd7841df8
commit 40749dfb74
11 changed files with 840 additions and 903 deletions

View File

@@ -1,56 +0,0 @@
(function($){
$.confirm = function(params){
if($('#confirmOverlay').length){
// A confirm is already shown on the page:
return false;
}
var buttonHTML = '';
$.each(params.buttons,function(name,obj){
// Generating the markup for the buttons:
buttonHTML += '<a href="#" class="button '+obj['class']+'">'+name+'<span></span></a>';
if(!obj.action){
obj.action = function(){};
}
});
var markup = [
'<div id="confirmOverlay">',
'<div id="confirmBox">',
'<h1>',params.title,'</h1>',
'<p>',params.message,'</p>',
'<div id="confirmButtons">',
buttonHTML,
'</div></div></div>'
].join('');
$(markup).hide().appendTo('body').fadeIn();
var buttons = $('#confirmBox .button'),
i = 0;
$.each(params.buttons,function(name,obj){
buttons.eq(i++).click(function(){
// Calling the action attribute when a
// click occurs, and hiding the confirm.
obj.action();
$.confirm.hide();
return false;
});
});
}
$.confirm.hide = function(){
$('#confirmOverlay').fadeOut(function(){
$(this).remove();
});
}
})(jQuery);

File diff suppressed because it is too large Load Diff

View File

@@ -123,22 +123,23 @@ class GroupUser extends BaseGroupUser {
function getAllUserGroups($usrUid)
{
$oCriteria = new Criteria('workflow');
// $oCriteria->addSelectColumn(GroupUserPeer::GRP_UID);
// $oCriteria->addSelectColumn('COUNT(*) AS CNT');
// $oCriteria->addJoin(GroupUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::INNER_JOIN);
$oCriteria->add(GroupUserPeer::USR_UID, $usrUid);
//$oCriteria->add(UsersPeer::USR_STATUS, 'CLOSED', Criteria::NOT_EQUAL);
//$oCriteria->addGroupByColumn(GroupUserPeer::GRP_UID);
$oDataset = GroupUserPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode (ResultSet::FETCHMODE_ASSOC);
$g = new Groupwf();
$rows = Array();
while ($oDataset->next()) {
$row = $oDataset->getRow();
$grpRow = $g->load($row['GRP_UID']);
$row = array_merge($row, $grpRow);
$rows[] = $row;
$g = new Groupwf();
try {
$grpRow = $g->load($row['GRP_UID']);
$row = array_merge($row, $grpRow);
$rows[] = $row;
}
catch (Exception $e){
continue;
}
}
return $rows;

View File

@@ -15,6 +15,9 @@ class Home extends Controller
private $userRolName;
private $userUxType;
private $appListStart = 0;
private $appListLimit = 15;
public function __construct()
{
// setting as using simplified.
@@ -64,6 +67,66 @@ class Home extends Controller
}
public function appList($httpData)
{
$httpData->t = isset($httpData->t)? $httpData->t : 'in';
$title = $httpData->t != 'draft' ? 'My Inbox' : 'My Drafts';
$action = $httpData->t != 'draft' ? 'todo' : 'draft';
//$cases = self::getAppList($httpData->t, $this->appListStart, $this->appListLimit);
G::LoadClass('applications');
$apps = new Applications();
$cases = $apps->getAll($this->appListStart, $this->appListLimit, $action);
// settings html template
$this->setView('home/appList');
// settings vars and rendering
$this->setVar('cases', $cases['data']);
$this->setVar('cases_count', $cases['totalCount']);
$this->setVar('title', $title);
$this->setVar('appListStart', $this->appListLimit);
$this->setVar('appListLimit', 5);
G::RenderPage('publish', 'mvc');
}
public function getApps($httpData)
{
G::LoadClass('applications');
$apps = new Applications();
$cases = $apps->getAll($httpData->start, $httpData->limit);
$this->setView('home/applications');
// settings vars and rendering
$this->setVar('cases', $cases['data']);
G::RenderPage('publish', 'mvc');
}
public function startCase($httpData)
{
G::LoadClass('case');
$case = new Cases();
$aData = $case->startCase($httpData->id, $_SESSION['USER_LOGGED']);
$_SESSION['APPLICATION'] = $aData['APPLICATION'];
$_SESSION['INDEX'] = $aData['INDEX'];
$_SESSION['PROCESS'] = $aData['PROCESS'];
$_SESSION['TASK'] = $httpData->id;
$_SESSION['STEP_POSITION'] = 0;
$_SESSION['CASES_REFRESH'] = true;
$oCase = new Cases();
$aNextStep = $oCase->getNextStep($_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['STEP_POSITION']);
//../cases/cases_Open?APP_UID={$APP.APP_UID}&DEL_INDEX={$APP.DEL_INDEX}&action=todo
$aNextStep['PAGE'] = '../cases/cases_Open?APP_UID='.$aData['APPLICATION'].'&DEL_INDEX='.$aData['INDEX'].'&action=draft';
$_SESSION ['BREAKSTEP'] ['NEXT_STEP'] = $aNextStep;
G::header('Location: ' . $aNextStep['PAGE']);
}
private function getAppList($type, $start=null, $limit=null)
{
require_once ( "classes/model/AppCacheView.php" );
require_once ( "classes/model/Application.php" );
@@ -72,36 +135,30 @@ class Home extends Controller
$appCache = new AppCacheView();
$appNotes = new AppNotes();
$start = 0;
$limit = 100;
$notesStart = 0;
$notesLimit = 4;
$httpData->t = isset($httpData->t)? $httpData->t : 'in';
/**
* Getting the user's applications list
*/
//TODO validate user id
// getting user's cases on inbox
switch ($httpData->t) {
case 'in':
switch ($type) {
case 'inbox': case 'in':
$criteria = $appCache->getToDoListCriteria($this->userID);
$title = 'My Inbox';
break;
case 'draft':
default:
$criteria = $appCache->getDraftListCriteria($this->userID); //fast enough
$title = 'My Drafts';
break;
}
//$criteriac = $oAppCache->getToDoCountCriteria($this->userID);
//$criteria->setLimit($limit);
//$criteria->setOffset($start);
$distinct = $type == 'draft' ? true : false;
$criteriac = $appCache->getToDoCountCriteria($this->userID);
$totalCount = AppCacheViewPeer::doCount( $criteriac, $distinct );
if (isset($start))
$criteria->setOffset($start);
if (isset($limit))
$criteria->setLimit($limit);
$criteria->addDescendingOrderByColumn(AppCacheViewPeer::APP_NUMBER);
$dataset = AppCacheViewPeer::doSelectRS($criteria);
@@ -137,38 +194,8 @@ class Home extends Controller
$row['NOTES_LIST'] = $notes['notes'];
$cases[] = $row;
}
// settings html template
$this->setView('home/appList');
// settings vars and rendering
$this->setVar('cases', $cases);
$this->setVar('title', $title);
G::RenderPage('publish', 'mvc');
}
public function startCase($httpData)
{
G::LoadClass('case');
$case = new Cases();
$aData = $case->startCase($httpData->id, $_SESSION['USER_LOGGED']);
$_SESSION['APPLICATION'] = $aData['APPLICATION'];
$_SESSION['INDEX'] = $aData['INDEX'];
$_SESSION['PROCESS'] = $aData['PROCESS'];
$_SESSION['TASK'] = $httpData->id;
$_SESSION['STEP_POSITION'] = 0;
$_SESSION['CASES_REFRESH'] = true;
$oCase = new Cases();
$aNextStep = $oCase->getNextStep($_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['STEP_POSITION']);
//../cases/cases_Open?APP_UID={$APP.APP_UID}&DEL_INDEX={$APP.DEL_INDEX}&action=todo
$aNextStep['PAGE'] = '../cases/cases_Open?APP_UID='.$aData['APPLICATION'].'&DEL_INDEX='.$aData['INDEX'].'&action=draft';
$_SESSION ['BREAKSTEP'] ['NEXT_STEP'] = $aNextStep;
G::header('Location: ' . $aNextStep['PAGE']);
return array('data' => $cases, 'totalCount' => $totalCount);
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -153,7 +153,13 @@
.content-header {
background-color: #FFFFFF;
border-bottom: 1px solid #E8E8E8;
border-radius: 5px 5px 0 0;
border-radius: 5px 5px 5px 5px;
-webkit-border-bottom-left-radius: 5px;
-webkit-border-bottom-right-radius: 5px;
-moz-border-radius: 5px 5px 5px 5px;
border-radius: 5px 5px 5px 5px;
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.6);
-moz-box-shadow: 0 1px 2px rgba(0,0,0,0.6);
min-height: 20px;
padding: 12px;
}
@@ -179,97 +185,4 @@
.appMessageDate {
font-size: 1p1x;
margin: 10px 0px 0px 0px;
}
/*
* Confirm ui popup window styles
*/
#confirmOverlay{
width:100%;
height:100%;
position:fixed;
top:0;
left:0;
background:url('/images/simplified/ie.png');
background: -moz-linear-gradient(rgba(11,11,11,0.1), rgba(11,11,11,0.6)) repeat-x rgba(11,11,11,0.2);
background:-webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(11,11,11,0.1)), to(rgba(11,11,11,0.6))) repeat-x rgba(11,11,11,0.2);
z-index:100000;
}
#confirmBox{
background:url('/images/simplified/body_bg.jpg') repeat-x left bottom #e5e5e5;
width: 400px;
position:fixed;
left:50%;
top:50%;
margin:-130px 0 0 -230px;
border: 1px solid rgba(33, 33, 33, 0.6);
-moz-box-shadow: 0 0 2px rgba(255, 255, 255, 0.6) inset;
-webkit-box-shadow: 0 0 2px rgba(255, 255, 255, 0.6) inset;
box-shadow: 0 0 2px rgba(255, 255, 255, 0.6) inset;
}
#confirmBox h1,
#confirmBox p{
font: 20px/1 'Cuprum','Lucida Sans Unicode', 'Lucida Grande', sans-serif;
background:url('/images/simplified/header_bg.jpg') repeat-x left bottom #f5f5f5;
padding: 12px 15px;
text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.6);
color:#666;
}
#confirmBox h1{
letter-spacing:0.3px;
color:#888;
}
#confirmBox p{
background:none;
font-size:16px;
line-height:1.4;
padding-top: 10px;
}
#confirmButtons{
padding:15px 0 25px;
text-align:center;
}
#confirmBox .button{
display:inline-block;
background:url('/images/simplified/buttons.png') no-repeat;
color:white;
position:relative;
height: 33px;
font:17px/33px 'Cuprum','Lucida Sans Unicode', 'Lucida Grande', sans-serif;
margin-right: 15px;
padding: 0 35px 0 40px;
text-decoration:none;
border:none;
}
#confirmBox .button:last-child{ margin-right:0;}
#confirmBox .button span{
position:absolute;
top:0;
right:-5px;
background:url('buttons.png') no-repeat;
width:5px;
height:33px
}
#confirmBox .blue{ background-position:left top;text-shadow:1px 1px 0 #5889a2;}
#confirmBox .blue span{ background-position:-195px 0;}
#confirmBox .blue:hover{ background-position:left bottom;}
#confirmBox .blue:hover span{ background-position:-195px bottom;}
#confirmBox .gray{ background-position:-200px top;text-shadow:1px 1px 0 #707070;}
#confirmBox .gray span{ background-position:-395px 0;}
#confirmBox .gray:hover{ background-position:-200px bottom;}
#confirmBox .gray:hover span{ background-position:-395px bottom;}
}

View File

@@ -380,7 +380,7 @@ if (isset($G_ENABLE_BLANK_SKIN) && $G_ENABLE_BLANK_SKIN) {
require_once(PATH_THIRDPARTY . 'smarty/libs/Smarty.class.php');
$smarty = new Smarty();
$smarty->template_dir = PATH_SKINS;
$smarty->template_dir = PATH_TPL;
$smarty->compile_dir = PATH_SMARTY_C;
$smarty->cache_dir = PATH_SMARTY_CACHE;
$smarty->config_dir = PATH_THIRDPARTY . 'smarty/configs';
@@ -550,4 +550,3 @@ if (isset($G_ENABLE_BLANK_SKIN) && $G_ENABLE_BLANK_SKIN) {
}
break;
}
?>

View File

@@ -23,6 +23,15 @@
background-color:#ECECEC;
}
#note_text {
width:100%;
height:52px;
}
.postitem:hover{
/*background:#EFEFEF;*/
}
</style>
<script>
@@ -51,6 +60,7 @@
function addNt(appUid)
{
$('textarea#note_text').val('');
$( "#dialog-add-note" ).dialog({
resizable: false,
height:178,
@@ -105,64 +115,47 @@
);
return true;
}
</script>
$(document).ready(function(){
$("#loadmorebutton").click(function (){
$('#loadmorebutton').html('<img src="/images/ajax-loader.gif" />');
$.ajax({
url: "getApps?start="+appListStart+"&limit="+appListLimit,
success: function(html){
appListStart += appListLimit;
if(html){
$("#commentlist").append(html);
$('#loadmorebutton').html('Load More');
}
else {
$('#loadmorebutton').replaceWith('<center>No more posts to show.</center>');
}
}
});
return false;
});
});
{/literal}
var appListLimit = {$appListLimit};
var appListStart = {$appListStart};
</script>
</head>
<body onload="resize()" onresize="resize()" >
<center>
<div class="content-header" style="text-align:left">
<h1 style="padding: 10px">{$title}</h1>
<h1 style="padding: 10px">{$title} ({$cases_count})</h1>
<ul id="commentlist">
{foreach from=$cases key=id item=APP}
<li>
<!-- <span class="messages-link"></span> -->
<span class="commentnumber">
#{$APP.APP_NUMBER}
</span>
<span id="n_{$APP.APP_UID}" class="notes-link" style="display:{if $APP.NOTES_COUNT neq 0}block{else}none{/if}">
<a href="#" onclick="showNt('{$APP.APP_UID}'); return false;"><img src="/images/simplified/messages-grey.png" height="20" width="20"></a>
</span>
<span class="notes-plus-link">
<a href="#" onclick="addNt('{$APP.APP_UID}', '{$APP.APP_UID}'); return false;"><img src="/images/simplified/messages-grey-plus.png" height="21" width="21"></a>
</span>
<p>
<cite>
<a href="../cases/cases_Open?APP_UID={$APP.APP_UID}&DEL_INDEX={$APP.DEL_INDEX}&action=todo">{$APP.APP_TITLE}</a>
</cite>
</p>
<p class="time">{$APP.DEL_DELEGATE_DATE}<!-- February 8th, 2009 at 5:38 am --></p>
<p>{$APP.APP_PRO_TITLE}
<br/>{$APP.APP_TAS_TITLE}</p>
<div id="m_{$APP.APP_UID}" class="appMessages">
{if $APP.NOTES_COUNT neq 0}
{foreach from=$APP.NOTES_LIST key=k item=NOTE}
<div class="appMessage">
<table border="0">
<tr>
<td width="50" valign="top">
<img border="0" src="../users/users_ViewPhotoGrid?pUID={$NOTE.USR_UID}" width="40" height="40"/>
</td>
<td>
<h3>{$NOTE.USR_FIRSTNAME} {$NOTE.USR_LASTNAME} ({$NOTE.USR_USERNAME})</h3>
<p><pre>{$NOTE.NOTE_CONTENT}</pre>
<div class="appMessageDate">Posted at {$NOTE.NOTE_DATE}</div>
</td>
</tr>
</table>
</div>
{/foreach}
{/if}
</div>
</li>
{/foreach}
{include file='home/applications.html'}
</ul>
<center>
<a href="#" style="color:#1F98C7; font-size:12px; font-weight:bold;" id="loadmorebutton">Load More</a>
</center>
</div>
</center>
@@ -172,6 +165,6 @@
<textarea id="note_text" rows="2" cols="22"></textarea>
</p>
</div>
<br/>
</body>
</html>

View File

@@ -0,0 +1,48 @@
{foreach from=$cases key=id item=APP}
<li class="postitem">
<!-- <span class="messages-link"></span> -->
<span class="commentnumber">
#{$APP.APP_NUMBER}
</span>
<span id="n_{$APP.APP_UID}" class="notes-link" style="display:{if $APP.NOTES_COUNT neq 0}block{else}none{/if}">
<a href="#" onclick="showNt('{$APP.APP_UID}'); return false;"><img src="/images/simplified/messages-grey.png" height="20" width="20"></a>
</span>
<span class="notes-plus-link">
<a href="#" onclick="addNt('{$APP.APP_UID}', '{$APP.APP_UID}'); return false;"><img src="/images/simplified/messages-grey-plus.png" height="21" width="21"></a>
</span>
<p>
<cite>
<a href="../cases/cases_Open?APP_UID={$APP.APP_UID}&DEL_INDEX={$APP.DEL_INDEX}&action=todo">{$APP.APP_TITLE}</a>
</cite>
</p>
<p class="time">{$APP.DEL_DELEGATE_DATE}<!-- February 8th, 2009 at 5:38 am --></p>
<p>{$APP.APP_PRO_TITLE}
<br/>{$APP.APP_TAS_TITLE}</p>
<div id="m_{$APP.APP_UID}" class="appMessages">
{if $APP.NOTES_COUNT neq 0}
{foreach from=$APP.NOTES_LIST key=k item=NOTE}
<div class="appMessage">
<table border="0">
<tr>
<td width="50" valign="top">
<img border="0" src="../users/users_ViewPhotoGrid?pUID={$NOTE.USR_UID}" width="40" height="40"/>
</td>
<td>
<h3>{$NOTE.USR_FIRSTNAME} {$NOTE.USR_LASTNAME} ({$NOTE.USR_USERNAME})</h3>
<p><pre>{$NOTE.NOTE_CONTENT}</pre>
<div class="appMessageDate">Posted at {$NOTE.NOTE_DATE}</div>
</td>
</tr>
</table>
</div>
{/foreach}
{/if}
</div>
</li>
{/foreach}

View File

@@ -9,7 +9,6 @@
<script type="text/javascript" src="/js/jquery/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="/js/jquery/jquery-ui-1.8.17.min.js"></script>
<script type="text/javascript" src="/js/jquery/jquery.confirm.js"></script>
{literal}
<style>
@@ -35,23 +34,6 @@
function appStart(id, title)
{
/*$.confirm({
'title' : 'Start Case Confirmation',
'message' : 'Do you wanna start a new case for:<br /> * <b>"'+title+'"</b>?',
'buttons' : {
'Yes' : {
'class' : 'blue',
'action': function(){
//elem.slideUp();
redirect('home/startCase?id='+id);
}
},
'No' : {
'class' : 'gray',
'action': function(){} // Nothing to do in this case. You can as well omit the action property.
}
}
});*/
$('#startAppTitle').html(title)
$( "#dialog-confirm" ).dialog({
@@ -141,8 +123,9 @@
<iframe id="iframex" name="iframex" src="home/appList" width="100%" height="200" scrolling="yes" frameborder="0"></iframe>
<div id="dialog-confirm" title="Confirm" style="display:none">
<p><span class="ui-icon ui-icon-document" style="float:left; margin:0 7px 20px 0;"></span>
<span id="startAppTitle"/></p>
<p>
Start a new case for:<br/>
<span class="ui-icon ui-icon-document" style="float:left; margin:0 7px 20px 0;"></span><span id="startAppTitle"/></p>
</div>
{literal}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 847 B

After

Width:  |  Height:  |  Size: 4.7 KiB