BUG 8344 I add permissions to cases notes

I add permissions to cases notes
This commit is contained in:
Brayan Osmar Pereyra Suxo
2012-10-05 12:29:55 -04:00
parent 65e75911c9
commit ff3e21cf40
7 changed files with 137 additions and 26 deletions

View File

@@ -4752,10 +4752,15 @@ class Cases
$RESULT_OBJECTS['OUTPUT_DOCUMENTS'] = array_merge_recursive( $RESULT_OBJECTS['OUTPUT_DOCUMENTS'] = array_merge_recursive(
G::arrayDiff($MAIN_OBJECTS['VIEW']['OUTPUT_DOCUMENTS'],$MAIN_OBJECTS['BLOCK']['OUTPUT_DOCUMENTS']), G::arrayDiff($MAIN_OBJECTS['VIEW']['OUTPUT_DOCUMENTS'],$MAIN_OBJECTS['BLOCK']['OUTPUT_DOCUMENTS']),
G::arrayDiff($MAIN_OBJECTS['DELETE']['OUTPUT_DOCUMENTS'],$MAIN_OBJECTS['BLOCK']['OUTPUT_DOCUMENTS']) G::arrayDiff($MAIN_OBJECTS['DELETE']['OUTPUT_DOCUMENTS'],$MAIN_OBJECTS['BLOCK']['OUTPUT_DOCUMENTS'])
); );
$RESULT_OBJECTS['CASES_NOTES'] = G::arrayDiff(
$MAIN_OBJECTS['VIEW']['CASES_NOTES'], $MAIN_OBJECTS['BLOCK']['CASES_NOTES']
);
array_push($RESULT_OBJECTS['DYNAFORMS'], -1); array_push($RESULT_OBJECTS['DYNAFORMS'], -1);
array_push($RESULT_OBJECTS['INPUT_DOCUMENTS'], -1); array_push($RESULT_OBJECTS['INPUT_DOCUMENTS'], -1);
array_push($RESULT_OBJECTS['OUTPUT_DOCUMENTS'], -1); array_push($RESULT_OBJECTS['OUTPUT_DOCUMENTS'], -1);
array_push($RESULT_OBJECTS['CASES_NOTES'], -1);
return $RESULT_OBJECTS; return $RESULT_OBJECTS;
} }
@@ -4773,7 +4778,7 @@ class Cases
$aCase = $this->loadCase($APP_UID); $aCase = $this->loadCase($APP_UID);
$USER_PERMISSIONS = Array(); $USER_PERMISSIONS = Array();
$GROUP_PERMISSIONS = Array(); $GROUP_PERMISSIONS = Array();
$RESULT = Array("DYNAFORM" => Array(), "INPUT" => Array(), "OUTPUT" => Array()); $RESULT = Array("DYNAFORM" => Array(), "INPUT" => Array(), "OUTPUT" => Array(), "CASES_NOTES" => 0);
//permissions per user //permissions per user
$oCriteria = new Criteria('workflow'); $oCriteria = new Criteria('workflow');
@@ -4841,7 +4846,6 @@ class Cases
} }
} }
$PERMISSIONS = array_merge($USER_PERMISSIONS, $GROUP_PERMISSIONS); $PERMISSIONS = array_merge($USER_PERMISSIONS, $GROUP_PERMISSIONS);
foreach ($PERMISSIONS as $row) { foreach ($PERMISSIONS as $row) {
$USER = $row['USR_UID']; $USER = $row['USR_UID'];
$USER_RELATION = $row['OP_USER_RELATION']; $USER_RELATION = $row['OP_USER_RELATION'];
@@ -4927,6 +4931,7 @@ class Cases
} }
$oDataset->next(); $oDataset->next();
} }
$RESULT['CASES_NOTES'] = 1;
break; break;
case 'DYNAFORM': case 'DYNAFORM':
$oCriteria = new Criteria('workflow'); $oCriteria = new Criteria('workflow');
@@ -5000,13 +5005,17 @@ class Cases
$oDataset->next(); $oDataset->next();
} }
break; break;
case 'CASES_NOTES':
$RESULT['CASES_NOTES'] = 1;
break;
} }
} }
} }
return Array( return Array(
"DYNAFORMS" => $RESULT['DYNAFORM'], "DYNAFORMS" => $RESULT['DYNAFORM'],
"INPUT_DOCUMENTS" => $RESULT['INPUT'], "INPUT_DOCUMENTS" => $RESULT['INPUT'],
"OUTPUT_DOCUMENTS" => $RESULT['OUTPUT'] "OUTPUT_DOCUMENTS" => $RESULT['OUTPUT'],
"CASES_NOTES" => $RESULT['CASES_NOTES']
); );
} }

View File

@@ -3364,6 +3364,10 @@ class processMap {
$sObject = G::LoadTranslation('ID_ALL'); $sObject = G::LoadTranslation('ID_ALL');
} }
break; break;
case 'CASES_NOTES' :
$sObjectType = G::LoadTranslation('ID_CASES_NOTES');
$sObject = G::LoadTranslation('ID_ALL');
break;
default : default :
$sObjectType = G::LoadTranslation('ID_ALL'); $sObjectType = G::LoadTranslation('ID_ALL');
$sObject = G::LoadTranslation('ID_ALL'); $sObject = G::LoadTranslation('ID_ALL');

View File

@@ -17,7 +17,6 @@ class AppProxy extends HttpProxyController
*/ */
function getNotesList($httpData) function getNotesList($httpData)
{ {
require_once ( "classes/model/AppNotes.php" );
$appUid = null; $appUid = null;
if (isset($httpData->appUid) && trim($httpData->appUid) != "") { if (isset($httpData->appUid) && trim($httpData->appUid) != "") {
@@ -29,6 +28,22 @@ class AppProxy extends HttpProxyController
} }
} }
G::LoadClass('case');
$case = new Cases();
$proUid = ($httpData->pro == '') ? $_SESSION['PROCESS'] : $httpData->pro;
$tasUid = ($httpData->tas == '') ? $_SESSION['TASK'] : $httpData->tas;
$usrUid = $_SESSION['USER_LOGGED'];
$respView = $case->getAllObjectsFrom($proUid, $appUid, $tasUid, $usrUid, 'VIEW');
$respBlock = $case->getAllObjectsFrom($proUid, $appUid, $tasUid, $usrUid, 'BLOCK');
if ($respView['CASES_NOTES'] == 0 && $respBlock['CASES_NOTES'] == 0) {
return array('totalCount' => 0, 'notes' => array(), 'noPerms' => 1);
}
require_once ( "classes/model/AppNotes.php" );
if (!isset($appUid)) { if (!isset($appUid)) {
throw new Exception('Can\'t resolve the Apllication ID for this request.'); throw new Exception('Can\'t resolve the Apllication ID for this request.');
} }

View File

@@ -13,16 +13,28 @@ function closeCaseNotesWindow(){
} }
} }
function openCaseNotesWindow(appUid1, modalSw, appTitle) function openCaseNotesWindow(appUid1, modalSw, appTitle, proUid, taskUid)
{ {
Ext.MessageBox.show({
msg: _('ID_CASE_NOTES_LOADING'),
progressText: 'Saving...',
width:300,
wait:true,
waitConfig: {interval:200},
animEl: 'mb7'
});
Ext.QuickTips.init(); Ext.QuickTips.init();
appUid = !appUid1 ? "": appUid1; appUid = !appUid1 ? "": appUid1;
title = appTitle; proUid = !proUid ? "": proUid;
taskUid = !taskUid ? "": taskUid;
title = appTitle;
var startRecord=0; var startRecord=0;
var loadSize=10; var loadSize=10;
storeNotes = new Ext.data.JsonStore({ storeNotes = new Ext.data.JsonStore({
url : '../appProxy/getNotesList?appUid='+appUid, url : '../appProxy/getNotesList?appUid='+appUid+'&pro='+proUid+'&tas='+taskUid,
root: 'notes', root: 'notes',
totalProperty: 'totalCount', totalProperty: 'totalCount',
fields: ['USR_USERNAME','USR_FIRSTNAME','USR_LASTNAME','USR_FULL_NAME','NOTE_DATE','NOTE_CONTENT', 'USR_UID', 'user'], fields: ['USR_USERNAME','USR_FIRSTNAME','USR_LASTNAME','USR_FULL_NAME','NOTE_DATE','NOTE_CONTENT', 'USR_UID', 'user'],
@@ -32,7 +44,22 @@ function openCaseNotesWindow(appUid1, modalSw, appTitle)
}, },
listeners:{ listeners:{
load:function(){ load:function(){
Ext.MessageBox.hide();
if ( typeof(storeNotes.reader.jsonData.noPerms != 'undefined') &&
(storeNotes.reader.jsonData.noPerms == '1') ) {
Ext.MessageBox.show({
title: _('ID_WARNING'),
msg: _('ID_CASES_NOTES_NO_PERMISSIONS'),
buttons: Ext.MessageBox.OK,
animEl: 'mb9',
icon: Ext.MessageBox.WARNING
});
return false;
}
caseNotesWindow.show();
newNoteAreaActive = false;
newNoteHandler();
caseNotesWindow.setTitle(_('ID_CASES_NOTES') + ' (' + storeNotes.data.items.length + ')'); caseNotesWindow.setTitle(_('ID_CASES_NOTES') + ' (' + storeNotes.data.items.length + ')');
if(storeNotes.getCount()<storeNotes.getTotalCount()){ if(storeNotes.getCount()<storeNotes.getTotalCount()){
@@ -135,7 +162,7 @@ function openCaseNotesWindow(appUid1, modalSw, appTitle)
constrain: true, constrain: true,
keys: { keys: {
key: 27, key: 27,
fn : function(){ fn : function(){
caseNotesWindow.hide(); caseNotesWindow.hide();
} }
}, },
@@ -151,22 +178,22 @@ function openCaseNotesWindow(appUid1, modalSw, appTitle)
], ],
tbar:[ tbar:[
new Ext.form.TextArea({ new Ext.form.TextArea({
text : _('ID_NEW_NOTE'), text : _('ID_NEW_NOTE'),
xtype : 'textarea', xtype : 'textarea',
id : 'caseNoteText', id : 'caseNoteText',
name : 'caseNoteText', name : 'caseNoteText',
width : 330, width : 330,
grow : true, grow : true,
height : 40, height : 40,
growMin: 40, growMin: 40,
growMax: 80, growMax: 80,
maxLengthText : 500, maxLengthText : 500,
allowBlank :true, allowBlank :true,
selectOnFocus :true, selectOnFocus :true,
enableKeyEvents: true, enableKeyEvents: true,
listeners : { listeners : {
scope : this, scope : this,
keyup : updateTextCtr, keyup : updateTextCtr,
keydown: updateTextCtr keydown: updateTextCtr
} }
}) })
@@ -236,10 +263,6 @@ function openCaseNotesWindow(appUid1, modalSw, appTitle)
//text: "", //text: "",
width: 200 width: 200
}); });
newNoteAreaActive = false;
caseNotesWindow.show();
newNoteHandler();
} }
function updateTextCtr(body, event) { function updateTextCtr(body, event) {

View File

@@ -36,6 +36,7 @@ var caseSummary = function() {
function caseNotes(){ function caseNotes(){
var rowModel = grid.getSelectionModel().getSelected(); var rowModel = grid.getSelectionModel().getSelected();
if(rowModel){ if(rowModel){
console.log(rowModel.data);
var appUid = rowModel.data.APP_UID; var appUid = rowModel.data.APP_UID;
var delIndex = rowModel.data.DEL_INDEX; var delIndex = rowModel.data.DEL_INDEX;
var caseTitle = (rowModel.data.APP_TITLE) ? rowModel.data.APP_TITLE : rowModel.data.APP_UID; var caseTitle = (rowModel.data.APP_TITLE) ? rowModel.data.APP_TITLE : rowModel.data.APP_UID;
@@ -477,9 +478,12 @@ Ext.onReady ( function() {
}; };
function renderNote(val,p,r) { function renderNote(val,p,r) {
pro = r.json.PRO_UID;
tas = r.json.TAS_UID;
appUid = r.data['APP_UID']; appUid = r.data['APP_UID'];
title = r.data['APP_TITLE']; title = r.data['APP_TITLE'];
return '<img src="/images/ext/default/s.gif" class="x-tree-node-icon ICON_CASES_NOTES" unselectable="off" id="extdd-17" onClick="openCaseNotesWindow(\''+appUid+'\', true, \''+title+'\')">'; return '<img src="/images/ext/default/s.gif" class="x-tree-node-icon ICON_CASES_NOTES" unselectable="off" id="extdd-17" onClick="openCaseNotesWindow(\''+appUid+'\', true, \''+title+'\', \''+pro+'\', \''+tas+'\')">';
} }
//Render Full Name //Render Full Name

View File

@@ -43,6 +43,7 @@
<option name="DYNAFORM">Dynaform</option> <option name="DYNAFORM">Dynaform</option>
<option name="INPUT">Input Document</option> <option name="INPUT">Input Document</option>
<option name="OUTPUT">Output Document</option> <option name="OUTPUT">Output Document</option>
<option name="CASES_NOTES">Cases Notes</option>
</en> </en>
</OP_OBJ_TYPE> </OP_OBJ_TYPE>
<ALL type="dropdown" mode="edit" sqlConnection="dbarray"> <ALL type="dropdown" mode="edit" sqlConnection="dbarray">
@@ -163,22 +164,33 @@ if(getField('OP_OBJ_TYPE').value=='ANY')
hideRowById( 'DYNAFORMS' ); hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' ); hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' ); hideRowById( 'OUTPUTS' );
showRowById( 'OP_ACTION' );
} }
if(getField('OP_OBJ_TYPE').value=='DYNAFORM') if(getField('OP_OBJ_TYPE').value=='DYNAFORM')
{ hideRowById( 'ALL' ); { hideRowById( 'ALL' );
hideRowById( 'INPUTS' ); hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' ); hideRowById( 'OUTPUTS' );
showRowById( 'OP_ACTION' );
} }
if(getField('OP_OBJ_TYPE').value=='INPUT') if(getField('OP_OBJ_TYPE').value=='INPUT')
{ hideRowById( 'ALL' ); { hideRowById( 'ALL' );
hideRowById( 'DYNAFORMS' ); hideRowById( 'DYNAFORMS' );
hideRowById( 'OUTPUTS' ); hideRowById( 'OUTPUTS' );
showRowById( 'OP_ACTION' );
} }
if(getField('OP_OBJ_TYPE').value=='OUTPUT') if(getField('OP_OBJ_TYPE').value=='OUTPUT')
{ hideRowById( 'ALL' ); { hideRowById( 'ALL' );
hideRowById( 'DYNAFORMS' ); hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' ); hideRowById( 'INPUTS' );
showRowById( 'OP_ACTION' );
} }
if(getField('OP_OBJ_TYPE').value=='CASES_NOTES')
{ hideRowById( 'ALL' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' );
hideRowById( 'OP_ACTION' );
}
getOptions(); getOptions();
rebuildOptionsWhenLoad(getField('OP_OBJ_TYPE').value); rebuildOptionsWhenLoad(getField('OP_OBJ_TYPE').value);
@@ -188,24 +200,35 @@ leimnud.event.add(document.getElementById('form[OP_OBJ_TYPE]'), 'change', functi
hideRowById( 'INPUTS' ); hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' ); hideRowById( 'OUTPUTS' );
showRowById( 'DYNAFORMS' ); showRowById( 'DYNAFORMS' );
showRowById( 'OP_ACTION' );
} }
if(getField('OP_OBJ_TYPE').value=='INPUT') if(getField('OP_OBJ_TYPE').value=='INPUT')
{ hideRowById( 'ALL' ); { hideRowById( 'ALL' );
hideRowById( 'DYNAFORMS' ); hideRowById( 'DYNAFORMS' );
hideRowById( 'OUTPUTS' ); hideRowById( 'OUTPUTS' );
showRowById( 'INPUTS' ); showRowById( 'INPUTS' );
showRowById( 'OP_ACTION' );
} }
if(getField('OP_OBJ_TYPE').value=='OUTPUT') if(getField('OP_OBJ_TYPE').value=='OUTPUT')
{ hideRowById( 'ALL' ); { hideRowById( 'ALL' );
hideRowById( 'DYNAFORMS' ); hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' ); hideRowById( 'INPUTS' );
showRowById( 'OUTPUTS' ); showRowById( 'OUTPUTS' );
showRowById( 'OP_ACTION' );
} }
if(getField('OP_OBJ_TYPE').value=='CASES_NOTES')
{ hideRowById( 'ALL' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' );
hideRowById( 'OP_ACTION' );
}
if(getField('OP_OBJ_TYPE').value=='ANY') if(getField('OP_OBJ_TYPE').value=='ANY')
{ hideRowById('ALL' ); { hideRowById('ALL' );
hideRowById( 'DYNAFORMS' ); hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' ); hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' ); hideRowById( 'OUTPUTS' );
showRowById( 'OP_ACTION' );
} }
rebuildOptions(getField('OP_OBJ_TYPE').value); rebuildOptions(getField('OP_OBJ_TYPE').value);
}); });

View File

@@ -43,6 +43,7 @@
<option name="DYNAFORM">Dynaform</option> <option name="DYNAFORM">Dynaform</option>
<option name="INPUT">Input Document</option> <option name="INPUT">Input Document</option>
<option name="OUTPUT">Output Document</option> <option name="OUTPUT">Output Document</option>
<option name="CASES_NOTES">Cases Notes</option>
</en> </en>
</OP_OBJ_TYPE> </OP_OBJ_TYPE>
<ALL type="dropdown" mode="edit" sqlConnection="dbarray"> <ALL type="dropdown" mode="edit" sqlConnection="dbarray">
@@ -131,6 +132,7 @@ leimnud.event.add(getField('OP_OBJ_TYPE'), 'change', function() {
hideRowById('DYNAFORMS'); hideRowById('DYNAFORMS');
hideRowById('INPUTS'); hideRowById('INPUTS');
hideRowById('OUTPUTS'); hideRowById('OUTPUTS');
showRowById('OP_ACTION');
break; break;
case 'DYNAFORM': case 'DYNAFORM':
getField('ALL').value = ''; getField('ALL').value = '';
@@ -141,6 +143,7 @@ leimnud.event.add(getField('OP_OBJ_TYPE'), 'change', function() {
showRowById('DYNAFORMS'); showRowById('DYNAFORMS');
hideRowById('INPUTS'); hideRowById('INPUTS');
hideRowById('OUTPUTS'); hideRowById('OUTPUTS');
showRowById('OP_ACTION');
break; break;
case 'INPUT': case 'INPUT':
getField('ALL').value = ''; getField('ALL').value = '';
@@ -151,6 +154,7 @@ leimnud.event.add(getField('OP_OBJ_TYPE'), 'change', function() {
hideRowById('DYNAFORMS'); hideRowById('DYNAFORMS');
showRowById('INPUTS'); showRowById('INPUTS');
hideRowById('OUTPUTS'); hideRowById('OUTPUTS');
showRowById('OP_ACTION');
break; break;
case 'OUTPUT': case 'OUTPUT':
getField('ALL').value = ''; getField('ALL').value = '';
@@ -161,6 +165,19 @@ leimnud.event.add(getField('OP_OBJ_TYPE'), 'change', function() {
hideRowById('DYNAFORMS'); hideRowById('DYNAFORMS');
hideRowById('INPUTS'); hideRowById('INPUTS');
showRowById('OUTPUTS'); showRowById('OUTPUTS');
showRowById('OP_ACTION');
break;
case 'CASES_NOTES':
getField('ALL').value = '';
getField('DYNAFORMS').value = '';
getField('INPUTS').value = '';
getField('OUTPUTS').value = '';
getField('OP_ACTION').value = 'VIEW';
hideRowById('ALL');
hideRowById('DYNAFORMS');
hideRowById('INPUTS');
hideRowById('OUTPUTS');
hideRowById('OP_ACTION');
break; break;
} }
rebuildOptions(vValue); rebuildOptions(vValue);
@@ -179,6 +196,7 @@ switch (vValue) {
hideRowById('DYNAFORMS'); hideRowById('DYNAFORMS');
hideRowById('INPUTS'); hideRowById('INPUTS');
hideRowById('OUTPUTS'); hideRowById('OUTPUTS');
showRowById('OP_ACTION');
break; break;
case 'DYNAFORM': case 'DYNAFORM':
getField('ALL').value = ''; getField('ALL').value = '';
@@ -189,6 +207,7 @@ switch (vValue) {
showRowById('DYNAFORMS'); showRowById('DYNAFORMS');
hideRowById('INPUTS'); hideRowById('INPUTS');
hideRowById('OUTPUTS'); hideRowById('OUTPUTS');
showRowById('OP_ACTION');
break; break;
case 'INPUT': case 'INPUT':
getField('ALL').value = ''; getField('ALL').value = '';
@@ -199,6 +218,7 @@ switch (vValue) {
hideRowById('DYNAFORMS'); hideRowById('DYNAFORMS');
hideRowById('INPUTS'); hideRowById('INPUTS');
showRowById('OUTPUTS'); showRowById('OUTPUTS');
showRowById('OP_ACTION');
break; break;
case 'OUTPUT': case 'OUTPUT':
getField('ALL').value = ''; getField('ALL').value = '';
@@ -209,7 +229,20 @@ switch (vValue) {
hideRowById('DYNAFORMS'); hideRowById('DYNAFORMS');
hideRowById('INPUTS'); hideRowById('INPUTS');
showRowById('OUTPUTS'); showRowById('OUTPUTS');
showRowById('OP_ACTION');
break; break;
case 'CASES_NOTES':
getField('ALL').value = '';
getField('DYNAFORMS').value = '';
getField('INPUTS').value = '';
getField('OUTPUTS').value = '';
getField('OP_ACTION').value = 'VIEW';
hideRowById('ALL');
hideRowById('DYNAFORMS');
hideRowById('INPUTS');
hideRowById('OUTPUTS');
hideRowById('OP_ACTION');
break;
} }
getOptions(); getOptions();
rebuildOptions(vValue); rebuildOptions(vValue);