__vue_app_object.js 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595
  1. /*
  2. * Core js fw functions
  3. * Do not edit this file
  4. */
  5. /*
  6. * Default Vue App object
  7. */
  8. var mgDefauleVueObject = {
  9. el: null,//'#'+controlerId,
  10. data: {
  11. targetId : null,//controlerId,
  12. targetUrl : null, //mgUrlParser.getCurrentUrl(),
  13. pageLoading : false,
  14. returnedData : null,
  15. loading : false,
  16. loaderComponent : '<div class="row"><i class="dataTables_processing"></i></div>',
  17. sSearch : null,
  18. showModal : false,
  19. htmlContent : '',
  20. modalBodyContainer : 'mg-modal-body',
  21. refreshingState : [],
  22. massActionIds : null,
  23. massActionTargetCont : null,
  24. pagePreLoader : null,
  25. destroyComponent: false,
  26. modalInstance : null,
  27. mgNewModalContainerName: 'mg-component-body-empty-modal',
  28. mgNewModalJsObj: null,
  29. mgNewModalvIf: false,
  30. appActionBlockingState: false,
  31. modalState: {
  32. navLinks: []
  33. }
  34. },
  35. created: function () {
  36. var self = this;
  37. self.$on('restartRefreshingState', self.cleanRefreshActionsState());
  38. self.$nextTick(function(){
  39. initContainerSelects('layers');
  40. });
  41. mgEventHandler.runCallback('AppCreated', self.targetId, {instance: self});
  42. },
  43. methods: {
  44. selectChangeAction : function($event) {
  45. mgEventHandler.runCallback('SelectFieldValueChanged', $event.target.name, {data: $event.target});
  46. },
  47. rendKey: function (lenth) {
  48. if (!lenth) {
  49. lenth = 6;
  50. }
  51. var randKey = "";
  52. var avChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  53. for (var i = 0; i < lenth; i++) {
  54. randKey += avChars.charAt(Math.floor(Math.random() * avChars.length));
  55. }
  56. return randKey;
  57. },
  58. vloadData : function (params, forceRawData) {
  59. var self = this;
  60. var returnType = forceRawData ? 'text' : 'json';
  61. self.refreshUrl();
  62. for(var propertyName in params) {
  63. self.addUrlComponent(propertyName, params[propertyName]);
  64. }
  65. self.addUrlComponent('ajax', '1');
  66. return $.get(self.targetUrl, function(data){
  67. if (!forceRawData) {
  68. data = data.data;
  69. if (data.callBackFunction && typeof window[data.callBackFunction] === "function") {
  70. window[data.callBackFunction](data);
  71. }
  72. }
  73. }, returnType).fail(function(jqXHR, textStatus, errorThrown) {
  74. //self.addAlert('danger', 'Action Failed');
  75. console.log('Action Failed');
  76. });
  77. },
  78. addUrlComponent : function($name, $value) {
  79. var self = this;
  80. if (typeof $value === 'object') {
  81. for (var key in $value) {
  82. if (!$value.hasOwnProperty(key)) {
  83. continue;
  84. }
  85. self.targetUrl += (self.targetUrl.indexOf('?') !== -1 ? '&' : '?') + $name + '[' + key + ']' + '=' + encodeURIComponent($value[key]);
  86. }
  87. } else{
  88. self.targetUrl += (self.targetUrl.indexOf('?') !== -1 ? '&' : '?') + $name + '=' + encodeURIComponent($value);
  89. }
  90. },
  91. updateUrlParam : function(key, value, event){
  92. var self = this;
  93. value = self.updateValueByAttrs(key, value, event);
  94. if(self.targetUrl.indexOf(key) === -1){
  95. self.addUrlComponent(key, value);
  96. } else {
  97. var baseUrlParts = self.targetUrl.split('?');
  98. var currentUrlParams = baseUrlParts[1].split('&');
  99. for(i=0; i < currentUrlParams.length; i++){
  100. if(currentUrlParams[i].indexOf(key) === 0){
  101. if(value === ''){
  102. currentUrlParams.splice(i, 1);
  103. } else {
  104. currentUrlParams[i] = key + '=' + value;
  105. }
  106. }
  107. }
  108. var updatedUrlParams = currentUrlParams.join('&');
  109. self.targetUrl = baseUrlParts[0] + '?' + updatedUrlParams;
  110. }
  111. },
  112. updateValueByAttrs : function(key, value, event){
  113. if(value.indexOf(':') !== 0){
  114. return value;
  115. } else {
  116. if($(event.target).attr('data-' + key)) {
  117. return $(event.target).attr('data-' + key);
  118. } else if( $(event.target).parents('a').first().attr('data-' + key)) {
  119. return $(event.target).parents('a').first().attr('data-' + key);
  120. } else if( $(event.target).parents('button').first().attr('data-' + key)) {
  121. return $(event.target).parents('button').first().attr('data-' + key);
  122. } else {
  123. return value;
  124. }
  125. }
  126. },
  127. refreshUrl : function() {
  128. var self = this;
  129. self.targetUrl = mgUrlParser.getCurrentUrl();
  130. if(self.targetUrl.indexOf('#') > 0) {
  131. self.targetUrl = self.targetUrl.substr(0, self.targetUrl.indexOf('#'));
  132. }
  133. },
  134. loadModal : function(event, targetId, namespace, index, params, addSpinner){
  135. event.preventDefault();
  136. event.stopImmediatePropagation();
  137. var self = this;
  138. if (self.appActionBlockingState) {
  139. return true;
  140. }
  141. self.appActionBlockingState = true;
  142. self.htmlContent = '<div></div>';
  143. if (addSpinner) {
  144. self.showSpinner(event);
  145. }
  146. self.refreshUrl();
  147. self.initRefreshActions(event, targetId);
  148. self.initMassActions(event);
  149. self.addUrlComponent('loadData', targetId);
  150. self.addUrlComponent('namespace', namespace);
  151. if (params && params.length > 0)
  152. {
  153. for (i = 0; i < params.length; i++) {
  154. self.addUrlComponent(params[i].name, params[i].value);
  155. }
  156. }
  157. self.addUrlComponent('index', index);
  158. self.addUrlComponent('mgformtype', 'read');
  159. self.getActionId(event);
  160. self.addUrlComponent('ajax', '1');
  161. var request = $.get(self.targetUrl, function(data){
  162. data = data.data;
  163. if(data.status === 'success'){
  164. self.htmlContent = data.rawData.htmlData;
  165. mgPageControler.initModal(targetId, namespace, index, event, data.rawData);
  166. } else {
  167. self.handleErrorMessage(data);
  168. mgEventHandler.runCallback('ModalLoadFailed', targetId, {respData: data});
  169. }
  170. self.$nextTick(function() {
  171. if (data.callBackFunction && typeof window[data.callBackFunction] === "function") {
  172. window[data.callBackFunction](data, targetId, event);
  173. }
  174. });
  175. if (addSpinner) {
  176. self.hideSpinner(event);
  177. }
  178. self.appActionBlockingState = false;
  179. }, 'json').fail(function(jqXHR, textStatus, errorThrown) {
  180. if (addSpinner) {
  181. self.hideSpinner(event);
  182. }
  183. self.appActionBlockingState = false;
  184. self.handleServerError(jqXHR, textStatus, errorThrown);
  185. mgEventHandler.runCallback('ModalLoadFailed', targetId, {jqXHR : jqXHR, textStatus: textStatus, errorThrown: errorThrown});
  186. });
  187. self.refreshUrl();
  188. return request;
  189. },
  190. showSpinner : function(event) {
  191. var self = this;
  192. var spinnerTarget = self.getSpinerTarget(event);
  193. if (spinnerTarget && spinnerTarget.length > 0 || $(spinnerTarget).tagName === 'I') {
  194. var isBtnIcon = $(spinnerTarget).hasClass('lu-btn__icon');
  195. $(spinnerTarget).attr('originall-button-icon', $(spinnerTarget).attr('class'));
  196. $(spinnerTarget).removeAttr('class');
  197. $(spinnerTarget).attr('class', (isBtnIcon ? 'lu-btn__icon ' : '') + 'lu-btn__icon lu-preloader lu-preloader--sm');
  198. } else {
  199. self.addSpinner(event);
  200. }
  201. },
  202. reloadModalContent: function(event, targetId, namespace, index, params, addSpinner) {
  203. var self = this;
  204. $('#mgModalContainer').append('<div class="preloader-container preloader-container--full-screen preloader-container--overlay" v-show="loading"><div class="preloader preloader--sm"></div></div>');
  205. self.refreshUrl();
  206. self.initRefreshActions(event, targetId);
  207. self.initMassActions(targetId);
  208. self.addUrlComponent('loadData', targetId);
  209. self.addUrlComponent('namespace', namespace);
  210. self.addUrlComponent('index', index);
  211. self.addUrlComponent('mgformtype', 'reload');
  212. self.getActionId(event);
  213. self.addUrlComponent('ajax', '1');
  214. self.storeModelContentState(targetId);
  215. var formData =[];
  216. if($('#mgModalContainer').find('form').length > 0) {
  217. var formTargetId = $('#mgModalContainer').find('form').first().attr('id');
  218. var formCont = new mgFormControler(formTargetId);
  219. var formData = formCont.getFieldsData();
  220. }
  221. $.ajax({
  222. type: "POST",
  223. url: self.targetUrl,
  224. data: formData,
  225. processData: false,
  226. contentType: false,
  227. dataType: 'json'})
  228. .done(function (data) {
  229. data = data.data;
  230. if(data.status === 'success'){
  231. self.htmlContent = data.rawData.htmlData;
  232. self.destroyComponent = true;
  233. mgPageControler.initModal(targetId, namespace, index, event, data.rawData);
  234. } else {
  235. self.handleErrorMessage(data);
  236. $('#mgModalContainer #mg-full-modal-wrapper').remove();
  237. }
  238. self.$nextTick(function() {
  239. if (data.callBackFunction && typeof window[data.callBackFunction] === "function") {
  240. window[data.callBackFunction](data, targetId, event);
  241. }
  242. self.restoreModelContentState();
  243. });
  244. }, 'json').fail(function() {
  245. //self.addAlert('danger', 'Action Failed');
  246. console.log('Action Failed');
  247. });
  248. self.refreshUrl();
  249. },
  250. storeModelContentState: function(targetId){
  251. var targetIndex = $('#confirmationModal').attr('index');
  252. var navLinks = $('[index='+targetIndex+'] .lu-nav__item.is-active .lu-nav__link');
  253. var self = this;
  254. navLinks.each(function () {
  255. self.modalState.navLinks.push($(this).attr('href'));
  256. });
  257. },
  258. restoreModelContentState: function(){
  259. $(this.modalState.navLinks).each(function(){
  260. $('[href="'+this+'"]').each(function() {
  261. this.click();
  262. });
  263. });
  264. },
  265. hideSpinner : function(event) {
  266. var self = this;
  267. var spinnerTarget = self.getSpinerTarget(event);
  268. if ($(event.target).attr('originall-button-content')) {
  269. self.removeSpinner(event);
  270. } else if (spinnerTarget && spinnerTarget.length > 0 || $(spinnerTarget).tagName === 'I') {
  271. $(spinnerTarget).removeAttr('class');
  272. $(spinnerTarget).attr('class', $(spinnerTarget).attr('originall-button-icon'));
  273. $(spinnerTarget).removeAttr('originall-button-icon');
  274. }
  275. },
  276. removeSpinner : function(event) {
  277. $(event.target).html($(event.target).attr('originall-button-content'));
  278. $(event.target).removeAttr('originall-button-content');
  279. },
  280. addSpinner : function(event) {
  281. var elWidth = $(event.target).width();
  282. var spinnerClass = $(event.target).hasClass('lu-btn--success') ? 'lu-preloader-success' : ($(event.target).hasClass('lu-btn--danger') ? 'lu-preloader-danger' : '');
  283. $(event.target).attr('originall-button-content', $(event.target).html());
  284. $(event.target).html('<span class="lu-btn__icon lu-temp-button-loader" style="margin: 0 0 0 0 !important; width: ' + elWidth + 'px;"><i class="lu-btn__icon lu-preloader lu-preloader--sm ' + spinnerClass + '"></i></span>');
  285. },
  286. getSpinerParent : function(event) {
  287. if($(event.target)[0].tagName === 'A' || $(event.target)[0].tagName === 'BUTTON'){
  288. return $(event.target)[0];
  289. } else if($(event.target)[0].parents('button').first()){
  290. return $(event.target)[0].parents('button').first();
  291. } else if($(event.target)[0].parents('a').first()){
  292. return $(event.target)[0].parents('a').first();
  293. } else {
  294. return null;
  295. }
  296. },
  297. getSpinerTarget : function(event) {
  298. if($(event.target)[0].tagName === 'I'){
  299. return $(event.target);
  300. } else if($(event.target)[0].tagName === 'SPAN'){
  301. var aParents = $(event.target).parents('a');
  302. return aParents.length === 0 ? $(event.target).parents('button').first().find('i').first() : $(event.target).parents('a').first().find('i').first();
  303. } else if($(event.target)[0].tagName === 'A'){
  304. return $(event.target).find('i').first();
  305. } else if($(event.target)[0].tagName === 'BUTTON'){
  306. return $(event.target).find('i').first();
  307. } else {
  308. return null;
  309. }
  310. },
  311. initMassActions : function(event){
  312. var self = this;
  313. self.cleanMassActions();
  314. if($(event.target).parents('.lu-t-c__mass-actions').length === 0)
  315. {
  316. return;
  317. }
  318. self.addUrlComponent('isMassAction', '1');
  319. var tableContainer = $(event.target).parents('.vueDatatableTable').first().attr('id');
  320. self.massActionTargetCont = tableContainer;
  321. self.massActionIds = collectTableMassActionsData(tableContainer);
  322. },
  323. addMassActionsToData : function (formData){
  324. var self = this;
  325. if(self.massActionIds){
  326. for (var key in self.massActionIds) {
  327. if (!self.massActionIds.hasOwnProperty(key)) {
  328. continue;
  329. }
  330. formData.set('massActions[' + key + ']', self.massActionIds[key]);
  331. }
  332. return formData;
  333. }else{
  334. return formData;
  335. }
  336. },
  337. cleanMassActions : function(){
  338. var self = this;
  339. if(self.massActionIds || self.massActionTargetCont){
  340. self.massActionIds = null;
  341. //uncheckSelectAllCheck(self.massActionTargetCont);
  342. self.$nextTick(function() {
  343. self.massActionTargetCont = null;
  344. });
  345. }
  346. },
  347. addRefreshActions: function (targetId) {
  348. var self = this;
  349. self.refreshingState.push(targetId);
  350. },
  351. initRefreshActions : function(event, targetId) {
  352. var self = this;
  353. var menuReloading = ['addGroupButton', 'editGroupButton', 'deleteGroupButton'];
  354. if(menuReloading.indexOf(targetId) > -1)
  355. {
  356. self.refreshingState = ['mg-category-menu'];
  357. return;
  358. }
  359. var tableContainer = $(event.target).parents('.vueDatatableTable').first();
  360. self.refreshingState = [$(tableContainer).attr('id')];
  361. },
  362. runRefreshActions : function(ids, data) {
  363. var self = this;
  364. var rfIds = (ids && ids.length > 0) ? ids : self.refreshingState;
  365. var customParams = (data && typeof data.customParams !== undefined) ? data.customParams : null;
  366. if(rfIds && rfIds.length > 0){
  367. $.each(rfIds, function (index, Id) {
  368. var targetId = Id;
  369. self.$nextTick(function() {
  370. self.$emit('reloadMgData', targetId, customParams);
  371. });
  372. });
  373. }
  374. },
  375. cleanRefreshActionsState : function() {
  376. var self = this;
  377. self.refreshingState = [];
  378. },
  379. getActionId : function(event) {
  380. var self = this;
  381. var tableActions = $(event.target).parents("td.mgTableActions");
  382. var widgetActionComponent = $(event.target).parents("div.widgetActionComponent");
  383. if($(tableActions).length === 1){
  384. var row = $(tableActions[0]).parent('tr');
  385. var actionElementId = $(row).attr("actionid");
  386. if(actionElementId){
  387. self.addUrlComponent('actionElementId', actionElementId);
  388. }
  389. } else if(widgetActionComponent.length === 1){
  390. var actionElementId = widgetActionComponent.first().attr("actionid");
  391. if(actionElementId){
  392. self.addUrlComponent('actionElementId', actionElementId);
  393. }
  394. }
  395. },
  396. submitForm : function(targetId, event) {
  397. event.preventDefault();
  398. var self = this;
  399. if (self.appActionBlockingState) {
  400. return true;
  401. }
  402. self.appActionBlockingState = true;
  403. var formTargetId = ($('#'+targetId)[0].tagName === 'FORM') ? targetId : $('#'+targetId).find('form').attr('id');
  404. if(formTargetId){
  405. self.showSpinner(event);
  406. var formCont = new mgFormControler(formTargetId);
  407. var formData = formCont.getFieldsData();
  408. formData = self.addMassActionsToData(formData);
  409. self.refreshUrl();
  410. self.addUrlComponent('loadData', formTargetId);
  411. self.addUrlComponent('namespace', getItemNamespace(formTargetId));
  412. self.addUrlComponent('index', getItemIndex(formTargetId));
  413. self.addUrlComponent('ajax', '1');
  414. self.addUrlComponent('mgformtype', $('#'+formTargetId).attr('mgformtype'));
  415. $.ajax({
  416. type: "POST",
  417. url: self.targetUrl,
  418. data: formData,
  419. processData: false,
  420. contentType: false,
  421. dataType: 'json'
  422. })
  423. .done(function( data ) {
  424. data = data.data;
  425. self.hideSpinner(event);
  426. self.$nextTick(function() {
  427. if (data.callBackFunction && typeof window[data.callBackFunction] === "function") {
  428. window[data.callBackFunction](data, targetId, event);
  429. }
  430. });
  431. if(data.status === 'success'){
  432. self.showModal = false;
  433. self.runRefreshActions((data && typeof data.refreshIds !== undefined) ? data.refreshIds : null, data);
  434. self.cleanMassActions();
  435. self.addAlert(data.status, data.message);
  436. formCont.updateFieldsValidationMessages([]);
  437. } else if (data.rawData !== undefined && data.rawData.FormValidationErrors !== undefined) {
  438. formCont.updateFieldsValidationMessages(data.rawData.FormValidationErrors);
  439. } else {
  440. formCont.updateFieldsValidationMessages([]);
  441. self.handleErrorMessage(data);
  442. }
  443. self.appActionBlockingState = false;
  444. }).fail(function(jqXHR, textStatus, errorThrown) {
  445. self.hideSpinner(event);
  446. self.handleServerError(jqXHR, textStatus, errorThrown);
  447. self.appActionBlockingState = false;
  448. });
  449. }
  450. else {
  451. //todo error reporting
  452. }
  453. },
  454. handleErrorMessage: function(data) {
  455. var self = this;
  456. self.addAlert(data.status,(data.message ? data.message : (typeof data.data !== 'undefined' ?
  457. ((typeof data.data.errorCode !== 'undefined' ? 'Error Code: ' + data.data.errorCode + ' <br> ' : '')
  458. + (typeof data.data.errorToken !== 'undefined' ? 'Error Token: ' + data.data.errorToken + ' <br> ' : '')
  459. + (typeof data.data.errorTime !== 'undefined' ? 'Error Time: ' + data.data.errorTime + ' <br> ' : '')
  460. + (typeof data.data.errorMessage !== 'undefined' ? 'Message: ' + data.data.errorMessage : '')) : '')
  461. ));
  462. if ((typeof data.data !== 'undefined') && (typeof data.data.errorCode !== 'undefined'))
  463. {
  464. console.log(data.data);
  465. }
  466. },
  467. handleServerError: function(jqXHR, textStatus, errorThrown) {
  468. var self = this;
  469. if (jqXHR.responseText.indexOf('id="mg-sh-h-492318-64534" value="') > 0){
  470. var errTokenStart = jqXHR.responseText.indexOf('mg-sh-h-492318-64534') + 20;
  471. var errTokenEnd = jqXHR.responseText.indexOf('mg-sh-h-492318-64534-end');
  472. var errToken = jqXHR.responseText.substr(errTokenStart, (errTokenEnd - errTokenStart));
  473. errToken = errToken.replace('value=', '').replace(/\"/g, '').replace(/\s/g, '');
  474. self.addAlert('error', 'Unexpected Error. <br>Error Token: ' + errToken);
  475. console.log('Action Failed. Error Token: ' + errToken);
  476. } else {
  477. console.log('Action Failed');
  478. }
  479. },
  480. ajaxAction : function(event, targetId, namespace, index, postData) {
  481. var self = this;
  482. self.refreshUrl();
  483. self.initRefreshActions(event, targetId);
  484. self.addUrlComponent('loadData', targetId);
  485. self.addUrlComponent('namespace', namespace);
  486. self.addUrlComponent('index', index);
  487. self.getActionId(event);
  488. self.addUrlComponent('ajax', '1');
  489. $.post(self.targetUrl, postData, {},'json')
  490. .done(function( data ) {
  491. data = data.data;
  492. self.addAlert(data.status, data.message);
  493. self.$nextTick(function() {
  494. if (data.callBackFunction && typeof window[data.callBackFunction] === "function") {
  495. window[data.callBackFunction](data, targetId, event);
  496. }
  497. });
  498. if(data.status === 'success'){
  499. }
  500. }, 'json');
  501. self.refreshUrl();
  502. },
  503. updateSorting : function(order, loadData, namespace)
  504. {
  505. var self = this;
  506. self.refreshUrl();
  507. self.addUrlComponent('loadData', loadData);
  508. self.addUrlComponent('namespace', namespace);
  509. self.addUrlComponent('ajax', '1');
  510. self.addUrlComponent('mgformtype', "reorder");
  511. var formData = {order : order}
  512. $.post(self.targetUrl, {formData: formData}, {},'json').done(function( data )
  513. {
  514. data = data.data;
  515. self.addAlert(data.status, data.message);
  516. self.pageLoading = false;
  517. self.$nextTick(function() {
  518. if (data.callBackFunction && typeof window[data.callBackFunction] === "function") {
  519. window[data.callBackFunction](data, loadData);
  520. }
  521. });
  522. if(data.status === 'success')
  523. {
  524. //Dispaly alert?
  525. }
  526. else
  527. {
  528. //TODO: Dispaly alert
  529. }
  530. });
  531. },
  532. addAlert : function(type, message){
  533. type = (type === 'error') ? 'danger' : type;
  534. layers.alert.create({
  535. $alertPosition: 'right-top',
  536. $alertStatus: type,
  537. $alertBody: message,
  538. $alertTimeout: 10000
  539. });
  540. },
  541. makeCustomAction : function(functionName, params, event, namespace, index) {
  542. var self = this;
  543. if (functionName && typeof mgPageControler.vueLoader[functionName] === "function") {
  544. mgPageControler.vueLoader[functionName](self, params, event, namespace, index);
  545. } else if (functionName && typeof window[functionName] === "function") {
  546. window[functionName](self, params, event, namespace, index);
  547. }
  548. },
  549. redirect : function (event, params, targetBlank) {
  550. var self = this;
  551. var tempUrl = self.targetUrl;
  552. if(params.rawUrl !== undefined){
  553. self.targetUrl = params.rawUrl;
  554. }
  555. if(params.actionElementId !== undefined) {
  556. self.getActionId(event);
  557. }
  558. $.each(params, function(key, value){
  559. if(key === 'rawUrl' || key === 'actionElementId'){
  560. return false;
  561. } else {
  562. self.updateUrlParam(key.replace('__', '-'), value, event);
  563. }
  564. });
  565. if (targetBlank) {
  566. window.open(self.targetUrl, '_blank');
  567. } else {
  568. window.location = self.targetUrl;
  569. }
  570. },
  571. submitFormByEvent : function(event){
  572. var self = this;
  573. self.submitForm($(event.target).parents("form").first().attr('id'), event);
  574. },
  575. submitFormByField: function(event) {
  576. }
  577. }
  578. };