MT-11: UI for Extjs (export)
This commit is contained in:
4
workflow/engine/methods/processes/processObjects.php
Normal file
4
workflow/engine/methods/processes/processObjects.php
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
$list = new \ProcessMaker\BusinessModel\Migrator\ExportObjects();
|
||||||
|
$objects = $list->objectList();
|
||||||
|
echo $objects;
|
||||||
@@ -2,13 +2,13 @@
|
|||||||
* @author: Erik A. Ortiz
|
* @author: Erik A. Ortiz
|
||||||
* Aug 20th, 2010
|
* Aug 20th, 2010
|
||||||
*/
|
*/
|
||||||
var processesGrid;
|
var processesGrid,
|
||||||
var store;
|
store,
|
||||||
var comboCategory;
|
comboCategory,
|
||||||
var winDesigner;
|
winDesigner,
|
||||||
var newTypeProcess;
|
newTypeProcess,
|
||||||
var affectedGroups;
|
affectedGroups,
|
||||||
|
processObjectsArray;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Global variables and variable initialization for import process.
|
* Global variables and variable initialization for import process.
|
||||||
@@ -358,7 +358,7 @@ Ext.onReady(function(){
|
|||||||
iconCls: "silk-add",
|
iconCls: "silk-add",
|
||||||
icon: "/images/export.png",
|
icon: "/images/export.png",
|
||||||
handler: function () {
|
handler: function () {
|
||||||
exportProcess();
|
exportImportProcessObjects('export');
|
||||||
}
|
}
|
||||||
},{
|
},{
|
||||||
text: _('ID_IMPORT'),
|
text: _('ID_IMPORT'),
|
||||||
@@ -517,7 +517,7 @@ Ext.onReady(function(){
|
|||||||
icon: "/images/export.png",
|
icon: "/images/export.png",
|
||||||
handler: function ()
|
handler: function ()
|
||||||
{
|
{
|
||||||
exportProcess();
|
exportImportProcessObjects('export');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -917,6 +917,7 @@ function exportProcess() {
|
|||||||
var record = processesGrid.getSelectionModel().getSelections();
|
var record = processesGrid.getSelectionModel().getSelections();
|
||||||
|
|
||||||
if(record.length == 1) {
|
if(record.length == 1) {
|
||||||
|
Ext.getCmp('exportProcessObjectsWindow').close();
|
||||||
var myMask = new Ext.LoadMask(Ext.getBody(), {msg: _("ID_LOADING")});
|
var myMask = new Ext.LoadMask(Ext.getBody(), {msg: _("ID_LOADING")});
|
||||||
var proUid = record[0].get("PRO_UID");
|
var proUid = record[0].get("PRO_UID");
|
||||||
|
|
||||||
@@ -925,7 +926,10 @@ function exportProcess() {
|
|||||||
Ext.Ajax.request({
|
Ext.Ajax.request({
|
||||||
url: "../processes/processes_Export",
|
url: "../processes/processes_Export",
|
||||||
method: "GET",
|
method: "GET",
|
||||||
params: {"pro_uid": proUid},
|
params: {
|
||||||
|
"pro_uid": proUid,
|
||||||
|
"objects": processObjectsArray
|
||||||
|
},
|
||||||
success: function (response) {
|
success: function (response) {
|
||||||
var result = JSON.parse(response.responseText);
|
var result = JSON.parse(response.responseText);
|
||||||
myMask.hide();
|
myMask.hide();
|
||||||
@@ -952,6 +956,159 @@ function exportProcess() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function exportImportProcessObjects(typeAction)
|
||||||
|
{
|
||||||
|
var defaultTypeAction = 'export',
|
||||||
|
windowTitle = _('ID_EXPORT_PROCESS_OBJECTS'),
|
||||||
|
buttonLabel = _('ID_EXPORT'),
|
||||||
|
storeGrid,
|
||||||
|
storeActionField,
|
||||||
|
checkBoxSelMod,
|
||||||
|
gridProcessObjects,
|
||||||
|
colModel,
|
||||||
|
buttonLabel,
|
||||||
|
w,
|
||||||
|
i;
|
||||||
|
|
||||||
|
if(typeof typeAction !== undefined) {
|
||||||
|
if(typeAction == 'import') {
|
||||||
|
defaultTypeAction = typeAction;
|
||||||
|
windowTitle = _('ID_IMPORT_PROCESS_OBJECTS');
|
||||||
|
buttonLabel = _('ID_IMPORT');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
storeGrid = new Ext.data.GroupingStore( {
|
||||||
|
remoteSort: true,
|
||||||
|
proxy : new Ext.data.HttpProxy({
|
||||||
|
url: 'processObjects'
|
||||||
|
}),
|
||||||
|
reader : new Ext.data.JsonReader( {
|
||||||
|
totalProperty: 'totalCount',
|
||||||
|
root: 'data',
|
||||||
|
fields : [
|
||||||
|
{name : 'OBJECT_ID'},
|
||||||
|
{name : 'OBJECT_NAME'},
|
||||||
|
{name : 'OBJECT_ACTION'}
|
||||||
|
]
|
||||||
|
})
|
||||||
|
});
|
||||||
|
storeGrid.load();
|
||||||
|
storeActionField = new Ext.data.ArrayStore({
|
||||||
|
fields: ['value', 'text'],
|
||||||
|
data: [
|
||||||
|
[1, 'Add to Existing'],
|
||||||
|
[2, 'Replace All']
|
||||||
|
]
|
||||||
|
});
|
||||||
|
checkBoxSelMod = new Ext.grid.CheckboxSelectionModel();
|
||||||
|
gridProcessObjects = new Ext.grid.EditorGridPanel( {
|
||||||
|
region: 'center',
|
||||||
|
layout: 'fit',
|
||||||
|
id: 'processesGrid',
|
||||||
|
height:365,
|
||||||
|
width:340,
|
||||||
|
title : '',
|
||||||
|
stateful : true,
|
||||||
|
stateId : 'gridProcessObjects',
|
||||||
|
enableColumnResize: true,
|
||||||
|
enableHdMenu: true,
|
||||||
|
frame:false,
|
||||||
|
selModel : checkBoxSelMod,
|
||||||
|
showHeaderCheckbox: true,
|
||||||
|
columnLines: true,
|
||||||
|
viewConfig: {
|
||||||
|
forceFit:true,
|
||||||
|
cls:"x-grid-empty",
|
||||||
|
emptyText: _('ID_NO_RECORDS_FOUND')
|
||||||
|
},
|
||||||
|
clicksToEdit: 1,
|
||||||
|
cm: new Ext.grid.ColumnModel({
|
||||||
|
defaults: {
|
||||||
|
sortable: true
|
||||||
|
},
|
||||||
|
columns: [
|
||||||
|
checkBoxSelMod,
|
||||||
|
{header: 'objectId', dataIndex: 'OBJECT_ID', hidden: true},
|
||||||
|
{header: 'Name', dataIndex: 'OBJECT_NAME', width: 5},
|
||||||
|
{header: 'Action', dataIndex: 'OBJECT_ACTION', width: 5,
|
||||||
|
editor: new Ext.form.ComboBox({
|
||||||
|
displayField: 'text',
|
||||||
|
forceSelection: true,
|
||||||
|
mode: 'local',
|
||||||
|
typeAhead: false,
|
||||||
|
store: storeActionField,
|
||||||
|
triggerAction: 'all',
|
||||||
|
valueField: 'value',
|
||||||
|
lazyRender: true
|
||||||
|
}),
|
||||||
|
renderer: function(value) {
|
||||||
|
var recordIndex = storeActionField.find('value', value);
|
||||||
|
if (recordIndex === -1) {
|
||||||
|
return 'Unknown value: ' + value;
|
||||||
|
}
|
||||||
|
return storeActionField.getAt(recordIndex).get('text');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}),
|
||||||
|
store: storeGrid,
|
||||||
|
listeners: {
|
||||||
|
render: function (grid) {
|
||||||
|
colModel = grid.getColumnModel();
|
||||||
|
if(defaultTypeAction === 'export') {
|
||||||
|
colModel.setHidden(3, true);
|
||||||
|
} else { /*import*/
|
||||||
|
colModel.setHidden(3, false);
|
||||||
|
grid.store.on('load', function(store, records, options){
|
||||||
|
for(i=0; i<grid.getStore().getTotalCount(); i++){
|
||||||
|
grid.getSelectionModel().selectRow(i, true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
w = new Ext.Window({
|
||||||
|
id : 'exportProcessObjectsWindow',
|
||||||
|
title : windowTitle,
|
||||||
|
header : false,
|
||||||
|
width : 350,
|
||||||
|
height : 430,
|
||||||
|
modal : true,
|
||||||
|
overflowY : 'scroll',
|
||||||
|
maximizable : false,
|
||||||
|
resizable : false,
|
||||||
|
items : [
|
||||||
|
gridProcessObjects
|
||||||
|
],
|
||||||
|
buttons : [
|
||||||
|
{
|
||||||
|
text : buttonLabel,
|
||||||
|
handler : function() {
|
||||||
|
var selectedObjects = gridProcessObjects.getSelectionModel().getSelections();
|
||||||
|
if(defaultTypeAction === 'export') {
|
||||||
|
if(selectedObjects.length > 0) {
|
||||||
|
processObjectsArray = [];
|
||||||
|
for (i = 0; i < selectedObjects.length; i++) {
|
||||||
|
processObjectsArray.push(selectedObjects[i].get('OBJECT_ID'));
|
||||||
|
}
|
||||||
|
processObjectsArray = JSON.stringify(processObjectsArray);
|
||||||
|
exportProcess();
|
||||||
|
}
|
||||||
|
} else { /*import*/
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
text : _('ID_CANCEL'),
|
||||||
|
handler : function(){
|
||||||
|
w.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
w.show();
|
||||||
|
}
|
||||||
function generateBpmn()
|
function generateBpmn()
|
||||||
{
|
{
|
||||||
var record = processesGrid.getSelectionModel().getSelections();
|
var record = processesGrid.getSelectionModel().getSelections();
|
||||||
|
|||||||
Reference in New Issue
Block a user