From c3f07f08e3197cfe445f965b8e05b67e4f6b49df Mon Sep 17 00:00:00 2001 From: Erik Amaru Ortiz Date: Sun, 27 Feb 2011 23:43:27 +0000 Subject: [PATCH] first commit to assign ad hoc actors to tasks --- workflow/engine/controllers/processProxy.php | 8 +- workflow/engine/templates/bpmn/designer.js | 41 ++++++--- workflow/engine/templates/bpmn/processmap.js | 85 ++++++++++++++++-- workflow/public_html/images/cases-folders.png | Bin 693 -> 762 bytes 4 files changed, 112 insertions(+), 22 deletions(-) diff --git a/workflow/engine/controllers/processProxy.php b/workflow/engine/controllers/processProxy.php index f8db952cc..8c9d7e27a 100644 --- a/workflow/engine/controllers/processProxy.php +++ b/workflow/engine/controllers/processProxy.php @@ -203,13 +203,9 @@ class ProcessProxy extends HttpProxyController function getActorsTask($httpData) { require_once 'classes/model/TaskUser.php'; - G::LoadClass('configuration'); $usersTaskList = Array(); - $task = new TaskUser; - $conf = new Configurations; - $TU_TYPE = 1; - - $usersTask = $task->getUsersTask($httpData->tas_uid, $TU_TYPE); + $task = new TaskUser(); + $usersTask = $task->getUsersTask($httpData->tas_uid, $httpData->tu_type); foreach($usersTask->data as $userTask) { $usersTaskListItem['TAS_UID'] = $userTask['TAS_UID']; diff --git a/workflow/engine/templates/bpmn/designer.js b/workflow/engine/templates/bpmn/designer.js index 45b227975..fb125b02c 100755 --- a/workflow/engine/templates/bpmn/designer.js +++ b/workflow/engine/templates/bpmn/designer.js @@ -2,6 +2,7 @@ var saveProcess; var usersPanel; var _TAS_UID; +var _TU_TYPE; var processObj; var ProcessMapObj; @@ -266,7 +267,7 @@ Ext.onReady ( function() { usersPanelStart = 0; usersPanelLimit = 1000; - var usersStore = new Ext.data.Store( { + var usersStore = new Ext.data.Store({ autoLoad: false, proxy : new Ext.data.HttpProxy({ url: '../processProxy/getUsers?start='+usersPanelStart+'&limit='+usersPanelLimit @@ -457,6 +458,21 @@ Ext.onReady ( function() { ] }) ], + tbar:[ + { + text: 'AD HOC', + icon:'/images/cases-folders.png', + id: 'adHocPress', + enableToggle: true, + toggleHandler: function(item, pressed){ + ///alert(item.id); + }, + allowDepress: true, + pressed: false, + handler: function(){ + //alert(Ext.getCmp('adHocPress').pressed); + } + }], tools: [ /*{ id:'help', @@ -485,20 +501,20 @@ Ext.onReady ( function() { usersPanel._targetTask = null; usersPanel._onDrop = function(ddSource, e, data) { + var type = Ext.getCmp('usersPanelTabs').getActiveTab().id == 'usersGrid' ? 1 : 2; + var records = ddSource.dragData.selections; + var uids = Array(); _TAS_UID = Ext.getCmp('usersPanel')._targetTask.id; + _TU_TYPE = Ext.getCmp('adHocPress').pressed ? 2 : 1; + if( typeof parent != 'undefined' ) { parent._TAS_UID = _TAS_UID; } - var type = Ext.getCmp('usersPanelTabs').getActiveTab().id == 'usersGrid' ? 1 : 2; - var records = ddSource.dragData.selections; - var uids = Array(); Ext.each(records, function(gridRow){ if( type == 1 ) {//some users grid items were dropped - //alert('usr_uid ->'+gridRow.data.USR_UID); uids.push(gridRow.data.USR_UID); } else { //some groups grid items were dropped - //alert('grp_uid ->'+gridRow.data.GRP_UID); uids.push(gridRow.data.GRP_UID); } }); @@ -519,11 +535,16 @@ Ext.onReady ( function() { PMExt.notify(_('ID_RESPONSABILITIES_ASSIGNMENT'), result.msg); if( typeof parent != 'undefined' ) { - var tu_type = ''; parent.Ext.getCmp('eastPanel').show(); parent.Ext.getCmp('usersPanelTabs').getTabEl('usersTaskGrid').style.display = ''; - parent.Ext.getCmp('usersPanelTabs').setActiveTab(1); - parent.Ext.getCmp('usersTaskGrid').store.reload({params:{tas_uid: _TAS_UID, tu_type: tu_type}}); + parent.Ext.getCmp('usersPanelTabs').getTabEl('usersTaskAdHocGrid').style.display = ''; + if( _TU_TYPE == 1 ) { + parent.Ext.getCmp('usersPanelTabs').setActiveTab(1); + parent.Ext.getCmp('usersTaskGrid').store.reload({params:{tas_uid: _TAS_UID, tu_type: 1}}); + } else { + parent.Ext.getCmp('usersPanelTabs').setActiveTab(2); + parent.Ext.getCmp('usersTaskAdHocGrid').store.reload({params:{tas_uid: _TAS_UID, tu_type: 2}}); + } } } else { PMExt.error(_('ID_ERROR'), result.msg) @@ -532,8 +553,8 @@ Ext.onReady ( function() { failure: function(){}, params: { TAS_UID : _TAS_UID, + TU_TYPE : _TU_TYPE, TU_RELATION : type, - TU_TYPE : 1, UIDS : uids } }); diff --git a/workflow/engine/templates/bpmn/processmap.js b/workflow/engine/templates/bpmn/processmap.js index cd509c877..c9ebb5265 100755 --- a/workflow/engine/templates/bpmn/processmap.js +++ b/workflow/engine/templates/bpmn/processmap.js @@ -1,6 +1,8 @@ var _TAS_UID; +var updateActorsGrids; var processObj; + Ext.onReady ( function() { new Ext.KeyMap(document, { key: Ext.EventObject.F5, @@ -107,10 +109,72 @@ Ext.onReady ( function() { usersTaskGrid.on('contextmenu', function (evt) { evt.preventDefault(); }, this); + + //AD HOC + var usersTaskAdHocStore = new Ext.data.GroupingStore( { + autoLoad: false, + url: '../processProxy/getActorsTask', + reader : new Ext.data.JsonReader({ + totalProperty: 'totalCount', + root: 'data', + fields : [ + {name : 'USR_UID'}, + {name : 'USR_USERNAME'}, + {name : 'USR_FIRSTNAME'}, + {name : 'USR_LASTNAME'}, + {name : 'NAME'}, + {name : 'TU_RELATION'} + ] + }), + baseParams: {tas_uid: '', tu_type: ''}, + groupField: 'TU_RELATION' + }); - usersTaskGrid.on('keypress', function (e) { - alert(e.getKey()); - }, this); + var usersTaskAdHocGrid = new Ext.grid.GridPanel({ + id : 'usersTaskAdHocGrid', + title : _('ID_AD_HOC_ACTORS'), + height : 180, + stateful : true, + stateId : 'usersTaskAdHocGrid', + sortable:false, + view: new Ext.grid.GroupingView({ + forceFit:true, + groupTextTpl: '{[values.rs.length]} {[values.rs[0].data["TU_RELATION"] == 1 ? "Users" : "Groups"]}' + }), + cm : new Ext.grid.ColumnModel({ + defaults: { + width: 300, + sortable: true + }, + columns : [ + {id:'USR_UID', dataIndex: 'USR_UID', hidden:true, hideable:false}, + {header: 'Assigned', id:'TU_RELATION', dataIndex: 'TU_RELATION', hidden:true, hideable:false}, + {header: 'User', dataIndex: 'USER', width: 249, renderer:function(v,p,r){ + return _FNF(r.data.USR_USERNAME, r.data.USR_FIRSTNAME, r.data.USR_LASTNAME); + }} + ] + }), + store: usersTaskAdHocStore, + listeners: { + render: function(){ + this.loadMask = new Ext.LoadMask(this.body, {msg:_('ID_LOADING')}); + } + }/*, + tbar:[ + '->', { + text: _('ID_REMOVE'), + iconCls: 'button_menu_ext ss_sprite ss_delete', + handler: removeUsersTask + } + ]*/, + bbar: [new Ext.PagingToolbar({ + pageSize : 10, + store : usersTaskStore, + displayInfo: true, + displayMsg : '{2} Users', + emptyMsg : '' + })] + }); function onDynaformsContextMenu(grid, rowIndex, e) { @@ -128,6 +192,10 @@ Ext.onReady ( function() { } ] }); + + updateActorsGrids = function(){ + + } function removeUsersTask(){ @@ -200,13 +268,15 @@ Ext.onReady ( function() { eastPanelTree.getSelectionModel().on('selectionchange', function(tree, node){ if( node.attributes.type == 'task') { _TAS_UID = node.attributes.id; - tu_type = ''; Ext.getCmp('usersPanelTabs').getTabEl('usersTaskGrid').style.display = ''; - Ext.getCmp('usersTaskGrid').store.reload({params: {tas_uid: _TAS_UID, tu_type: tu_type}}); + Ext.getCmp('usersPanelTabs').getTabEl('usersTaskAdHocGrid').style.display = ''; + Ext.getCmp('usersTaskGrid').store.reload({params: {tas_uid: _TAS_UID, tu_type: 1}}); + Ext.getCmp('usersTaskAdHocGrid').store.reload({params: {tas_uid: _TAS_UID, tu_type: 2}}); } else { Ext.getCmp('usersPanelTabs').setActiveTab(0); Ext.getCmp('usersPanelTabs').getTabEl('usersTaskGrid').style.display = 'none'; + Ext.getCmp('usersPanelTabs').getTabEl('usersTaskAdHocGrid').style.display = 'none'; } propertyStore.reload({params: { action : 'getProperties', @@ -417,7 +487,8 @@ Ext.onReady ( function() { //height : 318, items : [ propertiesGrid, - usersTaskGrid + usersTaskGrid, + usersTaskAdHocGrid ] }) ] @@ -638,7 +709,9 @@ Ext.onReady ( function() { items:[main] }); Ext.getCmp('usersPanelTabs').getTabEl('usersTaskGrid').style.display = 'none'; + Ext.getCmp('usersPanelTabs').getTabEl('usersTaskAdHocGrid').style.display = 'none'; //Ext.getCmp('eastPanel').hide(); //Ext.getCmp('eastPanel').ownerCt.doLayout(); }); + diff --git a/workflow/public_html/images/cases-folders.png b/workflow/public_html/images/cases-folders.png index 9e1508fc366701c6497dbad737c64d409f6672c6..fd7dde2c42aebcc394241135a52ec818b4ce5792 100755 GIT binary patch delta 723 zcmV;^0xbQt1^NY$87Bq+002AIl}Z2r00DDSM?wIu&K&6g000JJOGiWi{{a60|De66 zlaVeSf7=2Z5+y2SAFG`J00MeRL_t(2&vnqxYg|B41k<3He5=&mb8tS(xAfCw&3iy##-CX%LU(wW=& zan5;P7jC4%2cG4J2Oi9f|Le`$*Qxb@pfgemf226YY(z3e)etk|{%qX)j!(b1U{l*> zxijSa={IDxbqXJj;xhv`$MA>oYwy3p?+;zGR=-KNf~pf)DoRc)yeu!QeMm_cvWOYD z`&X}if7R~(;c#(;b32qpgS_3~X8o4lf ze*|y}*kK%#5GbjOeRB5k1ZIsI)0$ixi>gLYMa}&OoAT$6mw5N&P#$i!DPx;iF~YJ) zK3Zq@)*1Qg*ZsZSl<*D&{r9lHu6@Q&7eBJ4R!uROFkV|`XJL)s`V)5SBv-CHz@+;) z@xdOe)s(kRJt=2bRvz;|e}0+EAG~SLe^!oZ7wQsL$Gfbw?=W2cSe|?P8>`lj5z0Wv zrtIl}i`VBijem5V$?O2v zAW@QGnlsCUqAJO$5p6(rln?^Gm{8|?EcE*1a)gl-#H@i=6+(0<9snVdv_;J#f4M8r z`4p9eiK3!3G~q*}mY#bDiwiIr@X+d~)GEo~|mI<3J{3 zmeLll##?fxzlcm#@j79DbCVlCd}#}vy9`d8lipxR?s70=>(1!X*Bcw>x92lXKk<}2 zGw9Lq9?_IQ1Q1d*kbwAt1mp^kArLW=MKomOKF6G4z(0~4IJ2^dDKY>6002ovPDHLk FV1iORSy})9 delta 653 zcmV;80&@NO1+@i`85IHm006YK0v!MV00DDSM?wIu&K&8HKpubE2LTf;H}e|IRR912 zM@d9MR4C5{!8>adQ5Xi`_dA!F+0AW7H*q&=!eWAv6u}!35X4I%Scsy(KtZt-3qi54 z690f;VQZzeh}x(qh@B<~UJ!!8HJa>Yc6R2R^L;)Kys*eXLSV<<7o3Zi!S}x_8Fw5P zA-Ld&BE2BYEaZQMH5_|_(j_|IhO3XB-5JVyb8PG=A=6>vn<~v=@OQ03ZPv{QBMN?oXwBPpNhi#db9Qp1m!& z4FQ57(nIz%-?^!a%+W}bA!|*u@05S`@Twbp*kp6ZShGDb27UtbzMtL=EkU>*p0BhmUcjC zgr-SGi@fNl7$JccwuPpso>*kWG4zCU&O~`;|Ba`UmPUFMc^w;Oa$YeE0D=!(&9Kd? zh|3{U5Mm~dIT+`olJva?56MWs^C!W->1MK7*&l7s9GhA=KC@?W^LMxFRduf3pzdkT z&a`G}$ZR;@T3cIv|9pI`+gLiAHs-Ce5c##)d-eJAdRZLZyLh0H#>Nnb03v{b7my

B?9~h$YMJ7ycJjn00000NkvXXu0mjf>r^p}