diff --git a/workflow/engine/classes/model/AdditionalTables.php b/workflow/engine/classes/model/AdditionalTables.php
index 5916c021c..7ed97b058 100644
--- a/workflow/engine/classes/model/AdditionalTables.php
+++ b/workflow/engine/classes/model/AdditionalTables.php
@@ -860,6 +860,13 @@ public function loadByName($name) {
}
return implode('', $aAux);
}
+
+ function deleteMultiple($arrUID){
+ $arrUIDs = explode(",",$arrUID);
+ foreach ($arrUIDs as $UID){
+ $this->deleteAll($UID);
+ }
+ }
function deleteAll($sUID) {
try {
@@ -1168,7 +1175,7 @@ var additionalTablesDataDelete = function(sUID, sKeys) {
throw($oError);
}
}
-
+
function deleteDataInTable($sUID, $aKeys) {
try {
$aData = $this->load($sUID, true);
diff --git a/workflow/engine/methods/additionalTables/additionalTablesAjax.php b/workflow/engine/methods/additionalTables/additionalTablesAjax.php
index cccad793d..c951ae715 100644
--- a/workflow/engine/methods/additionalTables/additionalTablesAjax.php
+++ b/workflow/engine/methods/additionalTables/additionalTablesAjax.php
@@ -91,6 +91,7 @@ if(isset($_POST['action'])) {
$EXPORT_TRACEBACK = Array();
+ $c = 0;
foreach ($tables as $uid) {
$aTable = new additionalTables();
@@ -112,6 +113,8 @@ if(isset($_POST['action'])) {
'num_regs' => sizeof($rows),
'schema' => in_array($uid, $schema)? 'yes': 'no',
'data' => in_array($uid, $data)? 'yes': 'no'
+// 'schema' => ($schema[$c]=='Export')? 'yes': 'no',
+// 'data' => ($data[$c]=='Export')? 'yes': 'no'
));
}
diff --git a/workflow/engine/methods/additionalTables/additionalTablesDelete.php b/workflow/engine/methods/additionalTables/additionalTablesDelete.php
index 8c3233d32..4775a0c3c 100644
--- a/workflow/engine/methods/additionalTables/additionalTablesDelete.php
+++ b/workflow/engine/methods/additionalTables/additionalTablesDelete.php
@@ -39,6 +39,6 @@ if ($_GET['sUID'] == '') {
require_once 'classes/model/AdditionalTables.php';
$oAdditionalTables = new AdditionalTables();
-$oAdditionalTables->deleteAll($_GET['sUID']);
+$oAdditionalTables->deleteMultiple($_GET['sUID']);
G::Header('Location: additionalTablesList');
\ No newline at end of file
diff --git a/workflow/engine/methods/additionalTables/additionalTablesToExport.php b/workflow/engine/methods/additionalTables/additionalTablesToExport.php
new file mode 100644
index 000000000..f80d78a34
--- /dev/null
+++ b/workflow/engine/methods/additionalTables/additionalTablesToExport.php
@@ -0,0 +1,46 @@
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ *
+ */
+
+global $RBAC;
+$RBAC->requirePermissions('PM_SETUP_ADVANCE');
+$G_PUBLISH = new Publisher;
+
+$oHeadPublisher =& headPublisher::getSingleton();
+
+//$oHeadPublisher->usingExtJs('ux/Ext.ux.fileUploadField');
+$oHeadPublisher->addExtJsScript('additionalTables/additionalTablesExport', false); //adding a javascript file .js
+$oHeadPublisher->addContent('additionalTables/additionalTablesExport'); //adding a html file .html.
+
+$labels = G::getTranslations(Array('ID_EXPORT','ID_IMPORT','ID_EDIT','ID_DELETE', 'ID_DATA',
+ 'ID_NEW_ADD_TABLE','ID_DESCRIPTION','ID_NAME','ID_CONFIRM','ID_ADDITIONAL_TABLES','ID_SELECT_FIRST_PM_TABLE_ROW',
+ 'ID_CONFIRM_DELETE_PM_TABLE', 'ID_CANCEL','ID_CLOSE','ID_ACTION_EXPORT','ID_ACTION_IGNORE','ID_TITLE_EXPORT_RESULT','ID_TITLE_EXPORT_TOOL'));
+
+$toSend = Array();
+$toSend['UID_LIST'] = $_GET["sUID"];
+
+$oHeadPublisher->assign('TRANSLATIONS', $labels);
+$oHeadPublisher->assign('EXPORT_TABLES', $toSend);
+G::RenderPage('publish', 'extJs');
+?>
\ No newline at end of file
diff --git a/workflow/engine/methods/additionalTables/data_additionalTablesExport.php b/workflow/engine/methods/additionalTables/data_additionalTablesExport.php
new file mode 100644
index 000000000..0027b8a2b
--- /dev/null
+++ b/workflow/engine/methods/additionalTables/data_additionalTablesExport.php
@@ -0,0 +1,54 @@
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ *
+ */
+
+require_once 'classes/model/AdditionalTables.php';
+
+$oCriteria = new Criteria('workflow');
+$oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_UID);
+$oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_NAME);
+$oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_DESCRIPTION);
+$oCriteria->addSelectColumn("'".G::LoadTranslation('ID_ACTION_EXPORT')."' as 'CH_SCHEMA'");
+$oCriteria->addSelectColumn("'".G::LoadTranslation('ID_ACTION_EXPORT')."' as 'CH_DATA'");
+
+$uids = explode(',',$_GET['aUID']);
+
+foreach ($uids as $UID){
+ if (!isset($CC)){
+ $CC = $oCriteria->getNewCriterion(AdditionalTablesPeer::ADD_TAB_UID, $UID ,Criteria::EQUAL);
+ }else{
+ $CC->addOr($oCriteria->getNewCriterion(AdditionalTablesPeer::ADD_TAB_UID, $UID ,Criteria::EQUAL));
+ }
+}
+$oCriteria->add($CC);
+$oCriteria->addAnd($oCriteria->getNewCriterion(AdditionalTablesPeer::ADD_TAB_UID, '', Criteria::NOT_EQUAL));
+
+$oDataset = AdditionalTablesPeer::doSelectRS ( $oCriteria );
+$oDataset->setFetchmode ( ResultSet::FETCHMODE_ASSOC );
+
+$addTables = Array();
+while( $oDataset->next() ) {
+ $addTables[] = $oDataset->getRow();
+}
+echo G::json_encode($addTables);
\ No newline at end of file
diff --git a/workflow/engine/templates/additionalTables/additionalTablesData.js b/workflow/engine/templates/additionalTables/additionalTablesData.js
index fbca327d8..768595126 100644
--- a/workflow/engine/templates/additionalTables/additionalTablesData.js
+++ b/workflow/engine/templates/additionalTables/additionalTablesData.js
@@ -32,6 +32,7 @@ var expander;
var cmodel;
var infoGrid;
var viewport;
+var smodel;
var FIELD_CM;
var FIELD_DS
@@ -51,14 +52,16 @@ Ext.onReady(function(){
text: TRANSLATIONS.ID_EDIT,
iconCls: 'button_menu_ext ss_sprite ss_pencil',
//icon: '/images/addc.png',
- handler: EditPMTableRow
+ handler: EditPMTableRow,
+ disabled: true
});
deleteButton = new Ext.Action({
text: TRANSLATIONS.ID_DELETE,
iconCls: 'button_menu_ext ss_sprite ss_delete',
//icon: '/images/addc.png',
- handler: DeletePMTableRow
+ handler: DeletePMTableRow,
+ disabled: true
});
importButton = new Ext.Action({
@@ -89,6 +92,30 @@ Ext.onReady(function(){
xColumns.unshift(idField);
+ smodel = new Ext.grid.CheckboxSelectionModel({
+ listeners:{
+ selectionchange: function(sm){
+ var count_rows = sm.getCount();
+ switch(count_rows){
+ case 0:
+ editButton.disable();
+ deleteButton.disable();
+ break;
+ case 1:
+ editButton.enable();
+ deleteButton.enable();
+ break;
+ default:
+ editButton.disable();
+ deleteButton.disable();
+ break;
+ }
+ }
+ }
+ });
+
+ xColumns.unshift(smodel);
+
store = new Ext.data.GroupingStore( {
proxy : new Ext.data.HttpProxy({
url: 'data_additionalTablesData?sUID=' + TABLES.UID
@@ -98,15 +125,14 @@ Ext.onReady(function(){
fields : xFields
})
});
-
- cmodel = new Ext.grid.ColumnModel({
- defaults: {
- width: 50,
- sortable: true
- },
- columns: xColumns
- });
+ cmodel = new Ext.grid.ColumnModel({
+ defaults: {
+ width: 50,
+ sortable: true
+ },
+ columns: xColumns
+ });
infoGrid = new Ext.grid.GridPanel({
@@ -123,23 +149,19 @@ Ext.onReady(function(){
enableColumnResize: true,
enableHdMenu: true,
frame:false,
- plugins: expander,
- cls : 'grid_with_checkbox',
+ //plugins: expander,
+ //cls : 'grid_with_checkbox',
+ iconCls:'icon-grid',
columnLines: false,
viewConfig: {
forceFit:true
},
store: store,
cm: cmodel,
+ sm: smodel,
tbar:[newButton,'-',editButton, deleteButton,'-',importButton,{xtype: 'tbfill' }, backButton],
listeners: {
- rowdblclick: EditPMTableRow,
- rowclick: DoNothing,
- render: function(){
- infoGrid.getSelectionModel().on('rowselect', function(){
- var rowSelected = infoGrid.getSelectionModel().getSelected();
- });
- }
+ rowdblclick: EditPMTableRow
},
view: new Ext.grid.GroupingView({
forceFit:true,
@@ -178,47 +200,21 @@ NewPMTableRow = function(){
//Load PM Table Edition Row Form
EditPMTableRow = function(){
- iGrid = Ext.getCmp('infoGrid');
- var rowSelected = iGrid.getSelectionModel().getSelected();
- if( rowSelected ) {
- location.href = 'additionalTablesDataEdit?sUID='+TABLES.UID+'&'+TABLES.PKF+'='+rowSelected.data[TABLES.PKF];
- } else {
- Ext.Msg.show({
- title:'',
- msg: TRANSLATIONS.ID_SELECT_FIRST_ROW,
- buttons: Ext.Msg.INFO,
- fn: DoNothing,
- animEl: 'elId',
- icon: Ext.MessageBox.INFO,
- buttons: Ext.MessageBox.OK
- });
- }
+ iGrid = Ext.getCmp('infoGrid');
+ rowsSelected = iGrid.getSelectionModel().getSelections();
+ location.href = 'additionalTablesDataEdit?sUID='+TABLES.UID+'&'+TABLES.PKF+'='+RetrieveRowsID(rowsSelected);
}
//Confirm PM Table Row Deletion Tasks
DeletePMTableRow = function(){
iGrid = Ext.getCmp('infoGrid');
- var rowSelected = iGrid.getSelectionModel().getSelected();
- if( rowSelected ) {
- confirmMsg = TRANSLATIONS.ID_MSG_CONFIRM_DELETE_ROW;
- //confirmMsg = confirmMsg.replace('{0}',rowSelected.data.ADD_TAB_NAME);
- Ext.Msg.confirm(TRANSLATIONS.ID_CONFIRM, confirmMsg,
- function(btn, text){
- if (btn=="yes"){
- location.href = 'additionalTablesDataDelete?sUID='+TABLES.UID+'&'+TABLES.PKF+'='+rowSelected.data[TABLES.PKF];
- }
- });
- } else {
- Ext.Msg.show({
- title:'',
- msg: TRANSLATIONS.ID_SELECT_FIRST_ROW,
- buttons: Ext.Msg.INFO,
- fn: DoNothing,
- animEl: 'elId',
- icon: Ext.MessageBox.INFO,
- buttons: Ext.MessageBox.OK
- });
- }
+ rowsSelected = iGrid.getSelectionModel().getSelections();
+ Ext.Msg.confirm(TRANSLATIONS.ID_CONFIRM, TRANSLATIONS.ID_MSG_CONFIRM_DELETE_ROW,
+ function(btn, text){
+ if (btn=="yes"){
+ location.href = 'additionalTablesDataDelete?sUID='+TABLES.UID+'&'+TABLES.PKF+'='+RetrieveRowsID(rowsSelected);
+ }
+ });
}
//Load Import PM Table From CSV Source
@@ -229,4 +225,13 @@ ImportPMTableCSV = function(){
//Load PM Table List
BackPMList = function(){
location.href = 'additionalTablesList';
+}
+
+//Gets UIDs from a array of rows
+RetrieveRowsID = function(rows){
+ var arrAux = new Array();
+ for(var c=0; c