updating bpmn designer
This commit is contained in:
@@ -123,3 +123,8 @@ button.x-btn-text:focus,.x-combo-selected{
|
|||||||
.icon-debug-disabled{
|
.icon-debug-disabled{
|
||||||
background-image: url("/images/debug_disabled.png");
|
background-image: url("/images/debug_disabled.png");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.icon-geometry{
|
||||||
|
background-image: url("/images/ToolUseGeometry.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1241,8 +1241,8 @@ bpmnTask.prototype.onDoubleClick = function () {
|
|||||||
* erik: Setting task target to Drop user & group assignment
|
* erik: Setting task target to Drop user & group assignment
|
||||||
*/
|
*/
|
||||||
bpmnTask.prototype.onMouseEnter = function () {
|
bpmnTask.prototype.onMouseEnter = function () {
|
||||||
if( this.type == 'bpmnTask' && typeof Ext.getCmp('usersPanel') != 'undefined' ) {
|
if( this.type == 'bpmnTask' ) {
|
||||||
Ext.getCmp('usersPanel')._targetTask = {id: this.id, name: this.taskName};
|
_targetTask = {id: this.id, name: this.taskName};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -75,107 +75,78 @@
|
|||||||
#x-shapes-gateways {background-position:5px -127px; height: 30px}
|
#x-shapes-gateways {background-position:5px -127px; height: 30px}
|
||||||
*/
|
*/
|
||||||
#x-shapes p {
|
#x-shapes p {
|
||||||
type:none;
|
type:none;
|
||||||
|
margin-left:9px;
|
||||||
margin-left:9px;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
#x-shapes-task {
|
#x-shapes-task {
|
||||||
width:36px;
|
height: 25;
|
||||||
height:26px;
|
padding: 0px 2px 2px 0px;
|
||||||
/* background-image:url('/skins/ext/images/gray/shapes/pallete/task.png') ;*/
|
|
||||||
margin:2px 2px 2px 2px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#x-shapes-startEvent {
|
#x-shapes-startEvent {
|
||||||
width:38px;
|
height: 25;
|
||||||
height:38px;
|
padding:0px 2px 2px 0px;
|
||||||
/* background-image:url('/skins/ext/images/gray/shapes/pallete/startevent.png');*/
|
|
||||||
margin:2px 2px 2px 2px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#x-shapes-interEvent {
|
#x-shapes-interEvent {
|
||||||
width:38px;
|
height: 25;
|
||||||
height:38px;
|
padding:0px 2px 2px 0px;
|
||||||
/*background-image:url('/skins/ext/images/gray/shapes/pallete/interevent.png');*/
|
|
||||||
margin:2px 2px 2px 2px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#x-shapes-endEvent {
|
#x-shapes-endEvent {
|
||||||
width:38px;
|
height: 25;
|
||||||
height:38px;
|
padding:0px 2px 2px 0px;
|
||||||
/*background-image:url('/skins/ext/images/gray/shapes/pallete/endevent.png');*/
|
|
||||||
margin:2px 2px 2px 2px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#x-shapes-gateway {
|
#x-shapes-gateways {
|
||||||
width:36px;
|
height: 25;
|
||||||
height:36px;
|
padding:0px 2px 2px 0px;
|
||||||
/*background-image:url('/skins/ext/images/gray/shapes/pallete/gateway.png') ;*/
|
|
||||||
margin:2px 2px 2px 2px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#x-shapes-dataobject {
|
#x-shapes-dataobject {
|
||||||
width:36px;
|
height: 25;
|
||||||
height:36px;
|
padding:0px 2px 2px 0px;
|
||||||
/*background-image:url('/skins/ext/images/gray/shapes/pallete/gateway.png') ;*/
|
|
||||||
margin:0 2px 2px 2px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#x-shapes-group {
|
#x-shapes-group {
|
||||||
width:36px;
|
height: 25;
|
||||||
height:36px;
|
padding:0px 2px 2px 0px;
|
||||||
/*background-image:url('/skins/ext/images/gray/shapes/pallete/gateway.png') ;*/
|
|
||||||
margin:4px 2px 2px 2px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#x-shapes-annotation {
|
#x-shapes-annotation {
|
||||||
width:36px;
|
height: 25;
|
||||||
height:36px;
|
padding:0px 2px 2px 0px;
|
||||||
/*background-image:url('/skins/ext/images/gray/shapes/pallete/gateway.png') ;*/
|
|
||||||
margin:5px 2px 2px 2px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#x-shapes-pool {
|
#x-shapes-pool {
|
||||||
width:36px;
|
height: 25;
|
||||||
height:36px;
|
padding:0px 2px 2px 0px;
|
||||||
/*background-image:url('/skins/ext/images/gray/shapes/pallete/gateway.png') ;*/
|
|
||||||
margin:2px 2px 2px 2px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#x-shapes-lane {
|
#x-shapes-lane {
|
||||||
width:36px;
|
height: 25;
|
||||||
height:36px;
|
padding:0px 2px 2px 0px;
|
||||||
/*background-image:url('/skins/ext/images/gray/shapes/pallete/gateway.png') ;*/
|
|
||||||
margin:2px 2px 2px 2px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#x-shapes-milestone {
|
#x-shapes-milestone {
|
||||||
width:36px;
|
height: 25;
|
||||||
height:36px;
|
padding:0px 2px 2px 0px;
|
||||||
/*background-image:url('/skins/ext/images/gray/shapes/pallete/gateway.png') ;*/
|
|
||||||
margin:2px 2px 2px 2px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#x-shapes-sequence {
|
#x-shapes-sequence {
|
||||||
width:36px;
|
height: 25;
|
||||||
height:36px;
|
padding:0px 2px 2px 0px;
|
||||||
/*background-image:url('/skins/ext/images/gray/shapes/pallete/gateway.png') ;*/
|
|
||||||
margin:2px 2px 2px 2px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#x-shapes-association {
|
#x-shapes-association {
|
||||||
width:36px;
|
height: 25;
|
||||||
height:36px;
|
padding:0px 2px 2px 0px;
|
||||||
/*background-image:url('/skins/ext/images/gray/shapes/pallete/gateway.png') ;*/
|
|
||||||
margin:2px 2px 2px 2px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#x-shapes-message {
|
#x-shapes-message {
|
||||||
width:36px;
|
height: 25;
|
||||||
height:36px;
|
padding:0px 2px 2px 0px;
|
||||||
/*background-image:url('/skins/ext/images/gray/shapes/pallete/gateway.png') ;*/
|
|
||||||
margin:2px 2px 2px 2px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.toolbar-item{
|
.toolbar-item{
|
||||||
@@ -209,6 +180,20 @@
|
|||||||
border-color: #98bf21;
|
border-color: #98bf21;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.btn-panel-pmtoolbar{
|
||||||
|
font-size:11px;
|
||||||
|
font-weight: bold;
|
||||||
|
width: 50;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-users-adhoc{
|
||||||
|
background-image:url('/images/icon-users.png') !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-groups-adhoc{
|
||||||
|
background-image:url('/images/icon-groups.png') !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,34 @@
|
|||||||
|
<style>
|
||||||
|
#tbar
|
||||||
|
{
|
||||||
|
width:600px;
|
||||||
|
}
|
||||||
|
.icon-data
|
||||||
|
{
|
||||||
|
background:url(img/data.png) 0 no-repeat !important;
|
||||||
|
}
|
||||||
|
.icon-chart
|
||||||
|
{
|
||||||
|
background:url(img/pie-chart.png) 0 no-repeat !important;
|
||||||
|
}
|
||||||
|
.icon-table
|
||||||
|
{
|
||||||
|
background:url(img/table.png) 0 no-repeat !important;
|
||||||
|
}
|
||||||
|
.icon-sort-asc
|
||||||
|
{
|
||||||
|
background:url(img/sort-asc.png) 0 no-repeat !important;
|
||||||
|
}
|
||||||
|
.icon-sort-desc
|
||||||
|
{
|
||||||
|
background:url(img/sort-desc.png) 0 no-repeat !important;
|
||||||
|
}
|
||||||
|
.icon-filter
|
||||||
|
{
|
||||||
|
background:url(img/funnel.png) 0 no-repeat !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
<div id="west" class="x-hide-display">
|
<div id="west" class="x-hide-display">
|
||||||
</div>
|
</div>
|
||||||
<div id="center2" class="x-hide-display">
|
<div id="center2" class="x-hide-display">
|
||||||
@@ -9,4 +40,4 @@
|
|||||||
<div id="props-panel" class="x-hide-display" style="width:200px;height:200px;overflow:hidden;">
|
<div id="props-panel" class="x-hide-display" style="width:200px;height:200px;overflow:hidden;">
|
||||||
</div>
|
</div>
|
||||||
<div id="south" class="x-hide-display">
|
<div id="south" class="x-hide-display">
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -13,10 +13,11 @@ var ProcessMapObj;
|
|||||||
|
|
||||||
Ext.onReady(function(){
|
Ext.onReady(function(){
|
||||||
//Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
|
//Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
|
||||||
|
//Ext.BLANK_IMAGE_URL = '/images/s.gif';
|
||||||
|
|
||||||
var northPanel = new Ext.Toolbar({
|
var northPanel = new Ext.Toolbar({
|
||||||
region: 'north',
|
region: 'north',
|
||||||
height: 32, // give north and south regions a height
|
height: 25, // give north and south regions a height
|
||||||
items: northPanelItems
|
items: northPanelItems
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -34,6 +35,7 @@ Ext.onReady(function(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
var eastPanel = {
|
var eastPanel = {
|
||||||
|
id: 'eastPanel',
|
||||||
region: 'east',
|
region: 'east',
|
||||||
title: ' ',
|
title: ' ',
|
||||||
collapsible: true,
|
collapsible: true,
|
||||||
@@ -41,7 +43,7 @@ Ext.onReady(function(){
|
|||||||
width: 225, // give east and west regions a width
|
width: 225, // give east and west regions a width
|
||||||
minSize: 175,
|
minSize: 175,
|
||||||
maxSize: 400,
|
maxSize: 400,
|
||||||
margins: '0 5 0 0',
|
margins: '0 3 0 0',
|
||||||
layout:'border', // specify layout manager for items
|
layout:'border', // specify layout manager for items
|
||||||
items: // this TabPanel is wrapped by another Panel so the title will be applied
|
items: // this TabPanel is wrapped by another Panel so the title will be applied
|
||||||
[
|
[
|
||||||
@@ -55,7 +57,7 @@ Ext.onReady(function(){
|
|||||||
items:[
|
items:[
|
||||||
new Ext.TabPanel({
|
new Ext.TabPanel({
|
||||||
id : 'usersPanelTabs',
|
id : 'usersPanelTabs',
|
||||||
title : 'sdd',
|
title : '',
|
||||||
border: true, // already wrapped so don't add another border
|
border: true, // already wrapped so don't add another border
|
||||||
activeTab : 0, // second tab initially active
|
activeTab : 0, // second tab initially active
|
||||||
tabPosition : 'top',
|
tabPosition : 'top',
|
||||||
@@ -72,21 +74,19 @@ Ext.onReady(function(){
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
var westPanel = {
|
var westPanel = {
|
||||||
region: 'west',
|
region: 'west',
|
||||||
id: 'west-panel', // see Ext.getCmp() below
|
id: 'west-panel', // see Ext.getCmp() below
|
||||||
title: '',
|
title: ' ',
|
||||||
split: true,
|
split: false,
|
||||||
width: 88,
|
width: 37,
|
||||||
minSize: 20,
|
minSize: 20,
|
||||||
maxSize: 400,
|
maxSize: 400,
|
||||||
collapsible: true,
|
collapsible: true,
|
||||||
margins: '0 0 0 5',
|
layout: 'table',
|
||||||
layout: {
|
layoutConfig: {columns:1},
|
||||||
type: 'accordion',
|
defaults: {frame:true},
|
||||||
animate: true
|
margins: '0 3 3 0',
|
||||||
},
|
|
||||||
items: [
|
items: [
|
||||||
toolbarPanel,
|
toolbarPanel,
|
||||||
actorsPanel
|
actorsPanel
|
||||||
@@ -169,6 +169,17 @@ Ext.onReady(function(){
|
|||||||
});
|
});
|
||||||
|
|
||||||
Ext.getCmp('designerTab')._setDesignerTitle(pro_title);
|
Ext.getCmp('designerTab')._setDesignerTitle(pro_title);
|
||||||
|
Ext.fly(document).on("scroll", function(){
|
||||||
|
if( usersPanel.isVisible() ) {
|
||||||
|
if (usersPanel._scrollPosTimer) {
|
||||||
|
clearTimeout(usersPanel._scrollPosTimer);
|
||||||
|
}
|
||||||
|
usersPanel._scrollPosTimer = setTimeout(function() {
|
||||||
|
usersPanel.setPosition(usersPanel._posRelToView[0] + divScroll.scrollLeft, usersPanel._posRelToView[1] + divScroll.scrollTop);
|
||||||
|
}, 100);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
processObj = new ProcessOptions();
|
processObj = new ProcessOptions();
|
||||||
ProcessMapObj = new ProcessMapContext();
|
ProcessMapObj = new ProcessMapContext();
|
||||||
@@ -187,9 +198,9 @@ Ext.onReady(function(){
|
|||||||
* erik: Setting Drop targets from users & groups grids to assignment to tasks
|
* erik: Setting Drop targets from users & groups grids to assignment to tasks
|
||||||
* for all existing tasks
|
* for all existing tasks
|
||||||
*/
|
*/
|
||||||
//var dropEls = Ext.get('paintarea').query('.x-task');
|
var dropEls = Ext.get('paintarea').query('.x-task');
|
||||||
//for(var i = 0; i < dropEls.length; i++)
|
for(var i = 0; i < dropEls.length; i++)
|
||||||
//new Ext.dd.DropTarget(dropEls[i], {ddGroup:'task-assignment', notifyDrop : Ext.getCmp('usersPanel')._onDrop});
|
new Ext.dd.DropTarget(dropEls[i], {ddGroup:'task-assignment', notifyDrop : _onDropActors});
|
||||||
|
|
||||||
},
|
},
|
||||||
failure: function(){
|
failure: function(){
|
||||||
@@ -200,8 +211,9 @@ Ext.onReady(function(){
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
//Get main into workflow object
|
//Get main into workflow object
|
||||||
workflow.main = Ext.getCmp('centerRegion');
|
workflow.main = Ext.getCmp('centerRegion');
|
||||||
|
//workflow.setSnapToGeometry(false);
|
||||||
canvas = Ext.get('paintarea');
|
canvas = Ext.get('paintarea');
|
||||||
|
|
||||||
contextCanvasMenu = new Ext.menu.Menu({
|
contextCanvasMenu = new Ext.menu.Menu({
|
||||||
@@ -353,6 +365,19 @@ Ext.onReady(function(){
|
|||||||
workflow.addSelectionListener(menu);
|
workflow.addSelectionListener(menu);
|
||||||
workflow.scrollArea = document.getElementById("center1").parentNode;
|
workflow.scrollArea = document.getElementById("center1").parentNode;
|
||||||
|
|
||||||
|
Ext.get('x-shapes-task').child('.x-btn-mc').setStyle('text-align', 'left');
|
||||||
|
Ext.get('x-shapes-startEvent').child('.x-btn-mc').setStyle('text-align', 'left');
|
||||||
|
Ext.get('x-shapes-interEvent').child('.x-btn-mc').setStyle('text-align', 'left');
|
||||||
|
Ext.get('x-shapes-endEvent').child('.x-btn-mc').setStyle('text-align', 'left');
|
||||||
|
Ext.get('x-shapes-gateways').child('.x-btn-mc').setStyle('text-align', 'left');
|
||||||
|
Ext.get('x-shapes-annotation').child('.x-btn-mc').setStyle('text-align', 'left');
|
||||||
|
|
||||||
|
Ext.get('x-pm-users').child('.x-btn-mc').setStyle('text-align', 'left');
|
||||||
|
Ext.get('x-pm-groups').child('.x-btn-mc').setStyle('text-align', 'left');
|
||||||
|
Ext.get('x-pm-users-adhoc').child('.x-btn-mc').setStyle('text-align', 'left');
|
||||||
|
Ext.get('x-pm-groups-adhoc').child('.x-btn-mc').setStyle('text-align', 'left');
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Setting tooltips ti tollbar items
|
* Setting tooltips ti tollbar items
|
||||||
*/
|
*/
|
||||||
@@ -360,44 +385,74 @@ Ext.onReady(function(){
|
|||||||
target: 'x-shapes-task',
|
target: 'x-shapes-task',
|
||||||
title: 'Task',
|
title: 'Task',
|
||||||
trackMouse: true,
|
trackMouse: true,
|
||||||
anchor: 'top',
|
anchor: 'right',
|
||||||
html: ''
|
html: ''
|
||||||
});
|
});
|
||||||
new Ext.ToolTip({
|
new Ext.ToolTip({
|
||||||
target: 'x-shapes-startEvent',
|
target: 'x-shapes-startEvent',
|
||||||
title: ' Start Event',
|
title: 'Event',
|
||||||
trackMouse: true,
|
trackMouse: true,
|
||||||
anchor: 'top',
|
anchor: 'right',
|
||||||
html: ''
|
html: 'Start'
|
||||||
});
|
});
|
||||||
new Ext.ToolTip({
|
new Ext.ToolTip({
|
||||||
target: 'x-shapes-interEvent',
|
target: 'x-shapes-interEvent',
|
||||||
title: 'Intermediate Event',
|
title: 'Event',
|
||||||
trackMouse: true,
|
trackMouse: true,
|
||||||
anchor: 'top',
|
anchor: 'right',
|
||||||
html: ''
|
html: 'Intermediate'
|
||||||
});
|
});
|
||||||
new Ext.ToolTip({
|
new Ext.ToolTip({
|
||||||
target: 'x-shapes-endEvent',
|
target: 'x-shapes-endEvent',
|
||||||
title: 'End Event',
|
title: 'Event',
|
||||||
trackMouse: true,
|
trackMouse: true,
|
||||||
anchor: 'top',
|
anchor: 'right',
|
||||||
html: ''
|
html: 'End'
|
||||||
});
|
});
|
||||||
new Ext.ToolTip({
|
new Ext.ToolTip({
|
||||||
target: 'x-shapes-gateways',
|
target: 'x-shapes-gateways',
|
||||||
title: 'Gateway',
|
title: 'Gateway',
|
||||||
trackMouse: true,
|
trackMouse: true,
|
||||||
anchor: 'top',
|
anchor: 'right',
|
||||||
html: ''
|
html: ''
|
||||||
});
|
});
|
||||||
new Ext.ToolTip({
|
new Ext.ToolTip({
|
||||||
target: 'x-shapes-annotation',
|
target: 'x-shapes-annotation',
|
||||||
title: 'Annotation',
|
title: 'Annotation',
|
||||||
anchor: 'top',
|
anchor: 'right',
|
||||||
trackMouse: true,
|
trackMouse: true,
|
||||||
html: ''
|
html: ''
|
||||||
});
|
});
|
||||||
|
|
||||||
|
new Ext.ToolTip({
|
||||||
|
target: 'x-pm-users',
|
||||||
|
title: 'Actors',
|
||||||
|
anchor: 'right',
|
||||||
|
trackMouse: true,
|
||||||
|
html: 'Users'
|
||||||
|
});
|
||||||
|
new Ext.ToolTip({
|
||||||
|
target: 'x-pm-groups',
|
||||||
|
title: 'Actors',
|
||||||
|
anchor: 'right',
|
||||||
|
trackMouse: true,
|
||||||
|
html: 'Groups'
|
||||||
|
});
|
||||||
|
new Ext.ToolTip({
|
||||||
|
target: 'x-pm-users-adhoc',
|
||||||
|
title: 'Actors',
|
||||||
|
anchor: 'right',
|
||||||
|
trackMouse: true,
|
||||||
|
html: 'Ad Hoc Users'
|
||||||
|
});
|
||||||
|
new Ext.ToolTip({
|
||||||
|
target: 'x-pm-groups-adhoc',
|
||||||
|
title: 'Actors',
|
||||||
|
anchor: 'right',
|
||||||
|
trackMouse: true,
|
||||||
|
html: 'Ad Hoc Groups'
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* setting drag sources for Toolbar items
|
* setting drag sources for Toolbar items
|
||||||
|
|||||||
@@ -23,52 +23,120 @@ var usersTaskAdHocGrid;
|
|||||||
var onUsersTaskAdHocGridContextMenu;
|
var onUsersTaskAdHocGridContextMenu;
|
||||||
var usersTaskAdHocGridContextMenu;
|
var usersTaskAdHocGridContextMenu;
|
||||||
var mainMenu;
|
var mainMenu;
|
||||||
|
var tbar1;
|
||||||
|
|
||||||
|
var divScroll;
|
||||||
|
var usersPanelStart = 0;
|
||||||
|
var usersPanelLimit = 1000;
|
||||||
|
var usersStore;
|
||||||
|
var usersGrid;
|
||||||
|
var groupsStore;
|
||||||
|
var groupsGrid;
|
||||||
|
|
||||||
|
var usersActorsWin;
|
||||||
|
var groupsActorsWin;
|
||||||
|
var adhocUsersActorsWin;
|
||||||
|
var adHocGroupsActorsWin;
|
||||||
|
|
||||||
|
var _onDropActors;
|
||||||
|
var _targetTask;
|
||||||
|
var o;
|
||||||
|
|
||||||
Ext.onReady(function(){
|
Ext.onReady(function(){
|
||||||
|
divScroll = document.body;
|
||||||
|
|
||||||
toolbarPanel = {
|
toolbarPanel = {
|
||||||
title: 'Toolbar',
|
title: ' ',
|
||||||
border: false,
|
border: true,
|
||||||
//iconCls: 'nav',
|
xtype:'buttongroup',
|
||||||
layout:'table',
|
|
||||||
defaultType: 'button',
|
defaultType: 'button',
|
||||||
cls: 'btn-panel',
|
cls: 'btn-panel-pmtoolbar',
|
||||||
layoutConfig: {
|
columns: 1,
|
||||||
columns: 2
|
|
||||||
},
|
|
||||||
defaults: {
|
defaults: {
|
||||||
autoEl: {tag: 'h3', style:"padding:15px 0 3px;"},
|
scale: 'small'
|
||||||
scale: 'large'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
items : [{
|
items : [{
|
||||||
iconCls: 'button_large_ext ss_sprite ss_bpmn_task',//icon: '/skins/ext/images/gray/shapes/pallete/task.png',
|
iconCls: 'button_small_ext ss_sprite ss_bpmn_task-18x18',
|
||||||
id:"x-shapes-task"
|
id:"x-shapes-task",
|
||||||
|
text: ' ',
|
||||||
|
width: 22
|
||||||
},{
|
},{
|
||||||
iconCls: 'button_large_ext ss_sprite ss_bpmn_startevent',//icon: '/skins/ext/images/gray/shapes/pallete/startevent.png',
|
iconCls: 'button_small_ext ss_sprite ss_bpmn_startevent-18x18',
|
||||||
id:"x-shapes-startEvent"
|
id:"x-shapes-startEvent",
|
||||||
|
text: ' ',
|
||||||
|
width: 22
|
||||||
},{
|
},{
|
||||||
iconCls: 'button_large_ext ss_sprite ss_bpmn_interevent',//icon: '/skins/ext/images/gray/shapes/pallete/interevent.png',
|
iconCls: 'button_small_ext ss_sprite ss_bpmn_interevent-18x18',
|
||||||
id:"x-shapes-interEvent"
|
id:"x-shapes-interEvent",
|
||||||
|
text: ' ',
|
||||||
|
width: 22
|
||||||
},{
|
},{
|
||||||
iconCls: 'button_large_ext ss_sprite ss_bpmn_endevent',//icon: '/skins/ext/images/gray/shapes/pallete/endevent.png',
|
iconCls: 'button_small_ext ss_sprite ss_bpmn_endevent-18x18',
|
||||||
id:"x-shapes-endEvent"
|
id:"x-shapes-endEvent",
|
||||||
|
text: ' ',
|
||||||
|
width: 22
|
||||||
},{
|
},{
|
||||||
iconCls: 'button_large_ext ss_sprite ss_bpmn_gateway',//icon: '/skins/ext/images/gray/shapes/pallete/gateway.png',
|
iconCls: 'ss_sprite ss_bpmn_gateway-18x18',
|
||||||
id:"x-shapes-gateways"
|
id:"x-shapes-gateways",
|
||||||
|
text: ' ',
|
||||||
|
width: 22
|
||||||
},{
|
},{
|
||||||
iconCls: 'button_large_ext ss_sprite ss_bpmn_annotation',//icon: '/skins/ext/images/gray/shapes/pallete/annotation.png',
|
iconCls: 'ss_sprite ss_bpmn_annotation-18x18',
|
||||||
id:"x-shapes-annotation"
|
id:"x-shapes-annotation",
|
||||||
|
text: ' ',
|
||||||
|
width: 22
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
actorsPanel = {
|
actorsPanel = {
|
||||||
title: 'Actors',
|
title: ' ',//_('ID_ACTORS'),
|
||||||
html: '',
|
border: true,
|
||||||
iconCls: 'ICON_USERS',
|
xtype:'buttongroup',
|
||||||
border: false
|
defaultType: 'button',
|
||||||
}
|
cls: 'btn-panel-pmtoolbar',
|
||||||
|
columns: 1,
|
||||||
|
defaults: {
|
||||||
|
scale: 'small'
|
||||||
|
},
|
||||||
|
items : [
|
||||||
|
{
|
||||||
|
iconCls: 'ICON_USERS',
|
||||||
|
id:"x-pm-users",
|
||||||
|
text: ' ',
|
||||||
|
width: 22,
|
||||||
|
handler: function(){
|
||||||
|
usersActorsWin.show();
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
iconCls: 'ICON_GROUPS',
|
||||||
|
id:"x-pm-groups",
|
||||||
|
text: ' ',
|
||||||
|
width: 22,
|
||||||
|
handler: function(){
|
||||||
|
groupsActorsWin.show();
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
iconCls: 'icon-users-adhoc',
|
||||||
|
id:"x-pm-users-adhoc",
|
||||||
|
text: ' ',
|
||||||
|
width: 22,
|
||||||
|
handler: function(){
|
||||||
|
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
iconCls: 'icon-groups-adhoc',
|
||||||
|
id:"x-pm-groups-adhoc",
|
||||||
|
text: ' ',
|
||||||
|
width: 22,
|
||||||
|
handler: function(){
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
northPanelItems = [
|
northPanelItems = [
|
||||||
@@ -91,15 +159,23 @@ northPanelItems = [
|
|||||||
text:'Edit',
|
text:'Edit',
|
||||||
//iconCls: '',
|
//iconCls: '',
|
||||||
menu: new Ext.menu.Menu({
|
menu: new Ext.menu.Menu({
|
||||||
items: [{
|
items: [
|
||||||
text: _('ID_SWITCH_EDITOR'),
|
{
|
||||||
iconCls: 'ss_sprite ss_arrow_switch',
|
text: _('ID_SWITCH_EDITOR'),
|
||||||
handler: function() {
|
iconCls: 'ss_sprite ss_arrow_switch',
|
||||||
if(typeof pro_uid !== 'undefined') {
|
handler: function() {
|
||||||
location.href = 'processes/processes_Map?PRO_UID=' +pro_uid+ '&rand=' +Math.random()
|
if(typeof pro_uid !== 'undefined') {
|
||||||
|
location.href = 'processes/processes_Map?PRO_UID=' +pro_uid+ '&rand=' +Math.random()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
text: _('ID_SNAP_GEOMETRY'),
|
||||||
|
checked: false, // when checked has a boolean value, it is assumed to be a CheckItem
|
||||||
|
checkHandler: function(item, checked){
|
||||||
|
workflow.setSnapToGeometry(checked);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}]
|
]
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -150,7 +226,7 @@ northPanelItems = [
|
|||||||
})
|
})
|
||||||
|
|
||||||
},
|
},
|
||||||
'->',
|
'-',
|
||||||
{
|
{
|
||||||
text:'Undo',
|
text:'Undo',
|
||||||
iconCls: 'button_menu_ext ss_sprite ss_arrow_undo',
|
iconCls: 'button_menu_ext ss_sprite ss_arrow_undo',
|
||||||
@@ -528,25 +604,23 @@ usersTaskStore = new Ext.data.GroupingStore( {
|
|||||||
});
|
});
|
||||||
|
|
||||||
//connecting context menu to grid
|
//connecting context menu to grid
|
||||||
usersTaskGrid.addListener('rowcontextmenu', onDynaformsContextMenu,this);
|
usersTaskGrid.addListener('rowcontextmenu', function(grid, rowIndex, e){
|
||||||
|
e.stopEvent();
|
||||||
|
var coords = e.getXY();
|
||||||
|
usersTaskGridContextMenu.showAt([coords[0], coords[1]]);
|
||||||
|
});
|
||||||
|
|
||||||
//by default the right click is not selecting the grid row over the mouse
|
//by default the right click is not selecting the grid row over the mouse
|
||||||
//we need to set this four lines
|
//we need to set this four lines
|
||||||
usersTaskGrid.on('rowcontextmenu', function (grid, rowIndex, evt) {
|
usersTaskGrid.on('rowcontextmenu', function (grid, rowIndex, evt) {
|
||||||
var sm = grid.getSelectionModel();
|
var sm = grid.getSelectionModel();
|
||||||
sm.selectRow(rowIndex, sm.isSelected(rowIndex));
|
sm.selectRow(rowIndex, sm.isSelected(rowIndex));
|
||||||
}, this);
|
});
|
||||||
|
|
||||||
//prevent default
|
//prevent default
|
||||||
usersTaskGrid.on('contextmenu', function (evt) {
|
usersTaskGrid.on('contextmenu', function (evt) {
|
||||||
evt.preventDefault();
|
evt.preventDefault();
|
||||||
}, this);
|
});
|
||||||
|
|
||||||
onDynaformsContextMenu = function(grid, rowIndex, e) {
|
|
||||||
e.stopEvent();
|
|
||||||
var coords = e.getXY();
|
|
||||||
usersTaskGridContextMenu.showAt([coords[0], coords[1]]);
|
|
||||||
}
|
|
||||||
|
|
||||||
usersTaskGridContextMenu = new Ext.menu.Menu({
|
usersTaskGridContextMenu = new Ext.menu.Menu({
|
||||||
id: 'messageContextMenu',
|
id: 'messageContextMenu',
|
||||||
@@ -659,11 +733,258 @@ usersTaskStore = new Ext.data.GroupingStore( {
|
|||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/*** for actors ***/
|
||||||
|
var usersStore = new Ext.data.Store({
|
||||||
|
autoLoad: true,
|
||||||
|
proxy : new Ext.data.HttpProxy({
|
||||||
|
url: 'processProxy/getUsers?start='+usersPanelStart+'&limit='+usersPanelLimit
|
||||||
|
}),
|
||||||
|
reader : new Ext.data.JsonReader( {
|
||||||
|
totalProperty: 'totalCount',
|
||||||
|
root: 'data',
|
||||||
|
fields : [
|
||||||
|
{name : 'USR_UID'},
|
||||||
|
{name : 'USER'},
|
||||||
|
{name : 'USR_USERNAME'},
|
||||||
|
{name : 'USR_FIRSTNAME'},
|
||||||
|
{name : 'USR_LASTNAME'}
|
||||||
|
]
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
usersGrid = new Ext.grid.GridPanel({
|
||||||
|
id : 'usersGrid',
|
||||||
|
|
||||||
|
height : 180,
|
||||||
|
stateful : true,
|
||||||
|
stateId : 'usersGrid',
|
||||||
|
ddGroup : 'task-assignment',
|
||||||
|
enableDragDrop : true,
|
||||||
|
width: 150,
|
||||||
|
viewConfig : {
|
||||||
|
//forceFit : false
|
||||||
|
},
|
||||||
|
cm : new Ext.grid.ColumnModel({
|
||||||
|
defaults: {
|
||||||
|
width: 200,
|
||||||
|
sortable: true
|
||||||
|
},
|
||||||
|
columns : [
|
||||||
|
{header: 'USR_UID', id:'USR_UID', dataIndex: 'USR_UID', 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: usersStore,
|
||||||
|
listeners: {
|
||||||
|
render: function(){
|
||||||
|
this.loadMask = new Ext.LoadMask(this.body, {msg:_('ID_LOADING')});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
tbar : [
|
||||||
|
new Ext.form.TextField ({
|
||||||
|
id : 'usersSearchTxt',
|
||||||
|
ctCls :'pm_search_text_field',
|
||||||
|
allowBlank : true,
|
||||||
|
width : 170,
|
||||||
|
emptyText : _('ID_ENTER_SEARCH_TERM'),
|
||||||
|
listeners : {
|
||||||
|
specialkey: function(f,e){
|
||||||
|
if (e.getKey() == e.ENTER)
|
||||||
|
usersSearch();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}), {
|
||||||
|
text :'X',
|
||||||
|
ctCls :'pm_search_x_button',
|
||||||
|
handler : function(){
|
||||||
|
usersStore.setBaseParam( 'search', '');
|
||||||
|
usersStore.load({params:{start : 0 , limit : usersPanelLimit}});
|
||||||
|
Ext.getCmp('usersSearchTxt').setValue('');
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
text :TRANSLATIONS.ID_SEARCH,
|
||||||
|
handler : usersSearch
|
||||||
|
}
|
||||||
|
]
|
||||||
|
/*,
|
||||||
|
bbar: [new Ext.PagingToolbar({
|
||||||
|
pageSize : usersPanelLimit,
|
||||||
|
store : usersStore,
|
||||||
|
displayInfo: true,
|
||||||
|
displayMsg : '{2} Users',
|
||||||
|
emptyMsg : ''
|
||||||
|
})]*/
|
||||||
|
});
|
||||||
|
|
||||||
|
groupsStore = new Ext.data.Store( {
|
||||||
|
autoLoad: true,
|
||||||
|
proxy : new Ext.data.HttpProxy({
|
||||||
|
url: 'processProxy/getGroups?start='+usersPanelStart+'&limit='+usersPanelLimit
|
||||||
|
}),
|
||||||
|
reader : new Ext.data.JsonReader( {
|
||||||
|
totalProperty: 'totalCount',
|
||||||
|
root: 'data',
|
||||||
|
fields : [
|
||||||
|
{name : 'GRP_UID'},
|
||||||
|
{name : 'CON_VALUE'}
|
||||||
|
]
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
groupsGrid = new Ext.grid.GridPanel({
|
||||||
|
id : 'groupsGrid',
|
||||||
|
stateful : true,
|
||||||
|
stateId : 'groupsGrid',
|
||||||
|
ddGroup : 'task-assignment',
|
||||||
|
height : 180,
|
||||||
|
width: 150,
|
||||||
|
enableDragDrop : true,
|
||||||
|
viewConfig : {
|
||||||
|
forceFit :false
|
||||||
|
},
|
||||||
|
cm : new Ext.grid.ColumnModel({
|
||||||
|
defaults : {
|
||||||
|
width : 250,
|
||||||
|
sortable : true
|
||||||
|
},
|
||||||
|
columns: [
|
||||||
|
{id:'GRP_UID', dataIndex: 'GRP_UID', hidden:true, hideable:false},
|
||||||
|
{header: 'Group', dataIndex: 'CON_VALUE', width: 249}
|
||||||
|
]
|
||||||
|
}),
|
||||||
|
store : groupsStore,
|
||||||
|
listeners : {
|
||||||
|
render : function(){
|
||||||
|
this.loadMask = new Ext.LoadMask(this.body, {msg:_('ID_LOADING')});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
tbar : [
|
||||||
|
new Ext.form.TextField ({
|
||||||
|
id : 'groupsSearchTxt',
|
||||||
|
ctCls :'pm_search_text_field',
|
||||||
|
allowBlank : true,
|
||||||
|
width : 170,
|
||||||
|
emptyText : _('ID_ENTER_SEARCH_TERM'),
|
||||||
|
listeners : {
|
||||||
|
specialkey: function(f,e){
|
||||||
|
if (e.getKey() == e.ENTER)
|
||||||
|
groupsSearch();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}), {
|
||||||
|
text :'X',
|
||||||
|
ctCls :'pm_search_x_button',
|
||||||
|
handler : function(){
|
||||||
|
groupsStore.setBaseParam( 'search', '');
|
||||||
|
groupsStore.load({params:{start : 0 , limit : usersPanelLimit}});
|
||||||
|
Ext.getCmp('groupsSearchTxt').setValue('');
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
text :TRANSLATIONS.ID_SEARCH,
|
||||||
|
handler : groupsSearch
|
||||||
|
}
|
||||||
|
]/*,
|
||||||
|
bbar: [new Ext.PagingToolbar({
|
||||||
|
pageSize : usersPanelLimit,
|
||||||
|
store : groupsStore,
|
||||||
|
displayInfo: true,
|
||||||
|
displayMsg : '{2} Groups',
|
||||||
|
emptyMsg : 'No records found'
|
||||||
|
})]*/
|
||||||
|
});
|
||||||
|
|
||||||
|
_onDropActors = function(ddSource, e, data) {
|
||||||
|
|
||||||
|
var records = ddSource.dragData.selections;
|
||||||
|
var uids = Array();
|
||||||
|
_TAS_UID = _targetTask.id;
|
||||||
|
_TU_TYPE = 1;
|
||||||
|
|
||||||
|
Ext.each(records, function(gridRow){
|
||||||
|
if( data.grid.id == 'usersGrid' ) {//some users grid items were dropped
|
||||||
|
_RELATION = 1;
|
||||||
|
uids.push(gridRow.data.USR_UID);
|
||||||
|
} else { //some groups grid items were dropped
|
||||||
|
_RELATION = 2;
|
||||||
|
uids.push(gridRow.data.GRP_UID);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
uids = uids.join(',');
|
||||||
|
|
||||||
|
|
||||||
|
Ext.getCmp('eastPanelCenter').setTitle(_('ID_TASK')+': '+_targetTask.name);
|
||||||
|
|
||||||
|
Ext.Ajax.request({
|
||||||
|
url: 'processProxy/assignActorsTask',
|
||||||
|
success: function(response){
|
||||||
|
var result = Ext.util.JSON.decode(response.responseText);
|
||||||
|
if( result.success ) {
|
||||||
|
PMExt.notify(_('ID_RESPONSABILITIES_ASSIGNMENT'), result.msg);
|
||||||
|
|
||||||
|
|
||||||
|
Ext.getCmp('eastPanel').show();
|
||||||
|
Ext.getCmp('usersPanelTabs').getTabEl('usersTaskGrid').style.display = '';
|
||||||
|
Ext.getCmp('usersPanelTabs').getTabEl('usersTaskAdHocGrid').style.display = '';
|
||||||
|
Ext.getCmp('eastPanelTree').getNodeById(_TAS_UID).select();
|
||||||
|
if( _TU_TYPE == 1 ) {
|
||||||
|
Ext.getCmp('usersPanelTabs').setActiveTab(1);
|
||||||
|
Ext.getCmp('usersTaskGrid').store.reload({params:{tas_uid: _TAS_UID, tu_type: 1}});
|
||||||
|
} else {
|
||||||
|
Ext.getCmp('usersPanelTabs').setActiveTab(2);
|
||||||
|
Ext.getCmp('usersTaskAdHocGrid').store.reload({params:{tas_uid: _TAS_UID, tu_type: 2}});
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
PMExt.error(_('ID_ERROR'), result.msg);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
failure: function(){},
|
||||||
|
params: {
|
||||||
|
TAS_UID : _TAS_UID,
|
||||||
|
TU_TYPE : _TU_TYPE,
|
||||||
|
TU_RELATION : _RELATION,
|
||||||
|
UIDS : uids
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//last
|
||||||
|
usersActorsWin = new Ext.Window({
|
||||||
|
title: 'ACTORS - Users',
|
||||||
|
layout:'fit',
|
||||||
|
width:260, x:45, y:55,
|
||||||
|
height:PMExt.getBrowser().screen.height/2 - 20,
|
||||||
|
closeAction:'hide',
|
||||||
|
plain: true,
|
||||||
|
plugins: [ new Ext.ux.WindowCascade() ],
|
||||||
|
offset: 50,
|
||||||
|
items: [usersGrid]
|
||||||
|
});
|
||||||
|
|
||||||
|
groupsActorsWin = new Ext.Window({
|
||||||
|
title: 'ACTORS - Groups',
|
||||||
|
layout:'fit',
|
||||||
|
width:260,
|
||||||
|
height:PMExt.getBrowser().screen.height/2 - 20,
|
||||||
|
closeAction:'hide',
|
||||||
|
plain: true,
|
||||||
|
plugins: [ new Ext.ux.WindowCascade() ],
|
||||||
|
offset: 50,
|
||||||
|
items: [groupsGrid]
|
||||||
|
});
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//var groupsActorsWin;
|
||||||
|
//var adhocUsersActorsWin;
|
||||||
|
//var adHocGroupsActorsWin;
|
||||||
|
|
||||||
//end onReady()
|
//end onReady()
|
||||||
|
|
||||||
|
|
||||||
@@ -750,24 +1071,56 @@ function removeUsersAdHocTask(){
|
|||||||
//});
|
//});
|
||||||
}
|
}
|
||||||
|
|
||||||
function usersSearch()
|
|
||||||
{
|
|
||||||
var search = Ext.getCmp('usersSearchTxt').getValue().trim();
|
|
||||||
if( search == '' ) {
|
|
||||||
PMExt.info(_('ID_INFO'), _('ID_ENTER_SEARCH_TERM'));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Ext.getCmp('usersGrid').store.setBaseParam('search', search);
|
|
||||||
Ext.getCmp('usersGrid').store.load({params:{search: search, start : 0 , limit : usersPanelLimit }});
|
|
||||||
}
|
|
||||||
|
|
||||||
function groupsSearch()
|
|
||||||
{
|
function usersSearch()
|
||||||
var search = Ext.getCmp('groupsSearchTxt').getValue().trim();
|
{
|
||||||
if( search == '' ) {
|
var search = Ext.getCmp('usersSearchTxt').getValue().trim();
|
||||||
PMExt.info(_('ID_INFO'), _('ID_ENTER_SEARCH_TERM'));
|
if( search == '' ) {
|
||||||
return;
|
PMExt.info(_('ID_INFO'), _('ID_ENTER_SEARCH_TERM'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Ext.getCmp('usersGrid').store.setBaseParam('search', search);
|
||||||
|
Ext.getCmp('usersGrid').store.load({params:{search: search, start : 0 , limit : usersPanelLimit }});
|
||||||
|
}
|
||||||
|
|
||||||
|
function groupsSearch()
|
||||||
|
{
|
||||||
|
var search = Ext.getCmp('groupsSearchTxt').getValue().trim();
|
||||||
|
if( search == '' ) {
|
||||||
|
PMExt.info(_('ID_INFO'), _('ID_ENTER_SEARCH_TERM'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Ext.getCmp('groupsGrid').store.setBaseParam('search', search);
|
||||||
|
Ext.getCmp('groupsGrid').store.load({params:{search: search, start : 0 , limit : usersPanelLimit }});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Ext.namespace('Ext.ux.plugins');
|
||||||
|
Ext.ux.WindowCascade = Ext.extend(Object, {
|
||||||
|
constructor: function(offset) {
|
||||||
|
this.offset = offset;
|
||||||
|
},
|
||||||
|
|
||||||
|
init: function(client) {
|
||||||
|
client.beforeShow = Ext.Window.prototype.beforeShow.createInterceptor(this.beforeShow);
|
||||||
|
},
|
||||||
|
|
||||||
|
beforeShow: function() {
|
||||||
|
if ((this.x == undefined) && (this.y == undefined)) {
|
||||||
|
var prev;
|
||||||
|
this.manager.each(function(w) {
|
||||||
|
if (w == this) {
|
||||||
|
if (prev) {
|
||||||
|
var o = this.offset || 20;
|
||||||
|
var p = prev.getPosition();
|
||||||
|
this.x = p[0] + o;
|
||||||
|
this.y = p[1] + o;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (w.isVisible()) prev = w;
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Ext.getCmp('groupsGrid').store.setBaseParam('search', search);
|
});
|
||||||
Ext.getCmp('groupsGrid').store.load({params:{search: search, start : 0 , limit : usersPanelLimit }});
|
|
||||||
}
|
|
||||||
|
|||||||
BIN
workflow/public_html/images/ToolUseGeometry.png
Normal file
BIN
workflow/public_html/images/ToolUseGeometry.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 600 B |
Reference in New Issue
Block a user