From ff4543b217b0507afd9928bd95d45f1ba72457e7 Mon Sep 17 00:00:00 2001 From: dheeyi william Date: Mon, 18 Jul 2016 12:34:33 -0400 Subject: [PATCH] HOR-1062 Import pmtable>Falta una validacion cuando queremos importar otro archivo que no sea un .pmt --- workflow/engine/controllers/pmTablesProxy.php | 5 +- workflow/engine/templates/pmTables/list.js | 139 ++++++++++-------- 2 files changed, 78 insertions(+), 66 deletions(-) diff --git a/workflow/engine/controllers/pmTablesProxy.php b/workflow/engine/controllers/pmTablesProxy.php index a15d0355d..3b9e19996 100755 --- a/workflow/engine/controllers/pmTablesProxy.php +++ b/workflow/engine/controllers/pmTablesProxy.php @@ -770,7 +770,10 @@ class pmTablesProxy extends HttpProxyController $fileContent = file_get_contents( $PUBLIC_ROOT_PATH . $filename ); if (strpos( $fileContent, '-----== ProcessMaker Open Source Private Tables ==-----' ) === false) { - throw new Exception( G::loadTranslation( 'ID_PMTABLE_INVALID_FILE' ) ); + $result->success = false; + $result->errorType = 'notice'; + $result->message = G::loadTranslation( 'ID_PMTABLE_INVALID_FILE', array ($filename)); + return $result; } $currentProUid = ''; diff --git a/workflow/engine/templates/pmTables/list.js b/workflow/engine/templates/pmTables/list.js index 90e5e93b1..3417c0fb3 100755 --- a/workflow/engine/templates/pmTables/list.js +++ b/workflow/engine/templates/pmTables/list.js @@ -17,6 +17,7 @@ var importOption; var externalOption; var externalPermissions; var currentSelectedRow = -1; +var extensionPmt = 'pmt'; Ext.onReady(function(){ ///Keyboard Events @@ -565,77 +566,85 @@ ImportPMTable = function(){ buttons: [{ id: 'importPMTableButtonUpload', text: _('ID_UPLOAD'), - handler: function(){ - var uploader = Ext.getCmp('uploader'); + handler: function () { + var uploader = Ext.getCmp('uploader'); + if ((eval("/^.+\.(" + extensionPmt + ")$/i").exec(Ext.getCmp('uploader').items.items[0].value))) { + if (uploader.getForm().isValid()) { + uploader.getForm().submit({ + url: 'pmTablesProxy/import', + waitMsg: _('ID_UPLOADING_FILE'), + waitTitle: " ", + success: function (o, resp) { + var result = Ext.util.JSON.decode(resp.response.responseText); - if(uploader.getForm().isValid()){ - uploader.getForm().submit({ - url: 'pmTablesProxy/import', - waitMsg: _('ID_UPLOADING_FILE'), - waitTitle : " ", - success: function(o, resp){ - var result = Ext.util.JSON.decode(resp.response.responseText); + if (result.success) { + PMExt.notify('', result.message); + } + else { + win = new Ext.Window({ + id: 'windowImportingError', + applyTo: 'hello-win', + layout: 'fit', + width: 500, + height: 300, + closeAction: 'hide', + plain: true, + html: '

' + _('ID_IMPORTING_ERROR') + '

' + result.message, + items: [], - if (result.success) { - PMExt.notify('', result.message); - } - else { - win = new Ext.Window({ - id: 'windowImportingError', - applyTo:'hello-win', - layout:'fit', - width:500, - height:300, - closeAction:'hide', - plain: true, - html: '

' + _('ID_IMPORTING_ERROR') + '

' + result.message, - items: [], + buttons: [{ + text: 'Close', + handler: function () { + win.hide(); + } + }] + }); + win.show(this); + } - buttons: [{ - text: 'Close', - handler: function(){ - win.hide(); - } - }] - }); - win.show(this); - } + w.close(); + infoGrid.store.reload(); + }, + failure: function (o, resp) { + w.close(); + infoGrid.store.reload(); - w.close(); - infoGrid.store.reload(); - }, - failure: function(o, resp){ - w.close(); - infoGrid.store.reload(); - - var result = Ext.util.JSON.decode(resp.response.responseText); - if (result.errorType == 'warning') { - Ext.MessageBox.show({ - title: _('ID_WARNING_PMTABLES'), - width: 510, - height: 300, - msg: "
" + result.message.replace(/\n/g,'
') + "
", - buttons: Ext.MessageBox.OK, - animEl: 'mb9', - fn: function(){}, - icon: Ext.MessageBox.INFO + var result = Ext.util.JSON.decode(resp.response.responseText); + if (result.errorType == 'warning') { + Ext.MessageBox.show({ + title: _('ID_WARNING_PMTABLES'), + width: 510, + height: 300, + msg: "
" + result.message.replace(/\n/g, '
') + "
", + buttons: Ext.MessageBox.OK, + animEl: 'mb9', + fn: function () { + }, + icon: Ext.MessageBox.INFO + }); + } else { + if (result.errorType == 'notice') { + Ext.MessageBox.alert(_("ID_ERROR"), result.message); + } else { + if (result.fromAdmin) { /* from admin tab */ + aOverwrite = result.arrayOverwrite; + aRelated = result.arrayRelated; + aMessage = result.arrayMessage; + pmtablesErrors(aOverwrite, aRelated, aMessage); + } else { /* from designer tab */ + aOverwrite = result.arrayOverwrite; + aRelated = result.arrayRelated; + aMessage = result.arrayMessage; + pmtablesErrors(aOverwrite, aRelated, aMessage); + } + } + } + } }); - } else { - if(result.fromAdmin) { /* from admin tab */ - aOverwrite = result.arrayOverwrite; - aRelated = result.arrayRelated; - aMessage = result.arrayMessage; - pmtablesErrors(aOverwrite,aRelated,aMessage); - } else { /* from designer tab */ - aOverwrite = result.arrayOverwrite; - aRelated = result.arrayRelated; - aMessage = result.arrayMessage; - pmtablesErrors(aOverwrite,aRelated,aMessage); - } } - } - }); - } + } else { + Ext.MessageBox.alert(_("ID_ERROR"), _("ID_FILE_UPLOAD_INCORRECT_EXTENSION")); + } } },{ id: 'importPMTableButtonCancel',