openrat-cms

OpenRat Content Management System
git clone http://git.code.weiherhei.de/openrat-cms.git
Log | Files | Refs | README

commit 8c848680e4299ec6eeef4e188ba8b18529a79c44
parent 631a8bcf2cd8fa86556b085f1e1222a7c466d0a4
Author: Jan Dankert <develop@jandankert.de>
Date:   Wed, 17 Feb 2021 02:42:20 +0100

Fix: Calling the callback with fire()

Diffstat:
Mmodules/cms/ui/themes/default/script/openrat.js | 4++--
Mmodules/cms/ui/themes/default/script/openrat.min.js | 2+-
Mmodules/cms/ui/themes/default/script/openrat/form.js | 4++--
3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/modules/cms/ui/themes/default/script/openrat.js b/modules/cms/ui/themes/default/script/openrat.js @@ -2293,7 +2293,7 @@ Openrat.Form = function() { data.output = 'json'; if ( mode == modes.closeAfterSubmit ) - this.onCloseHandler(); + this.onCloseHandler.fire(); // Async: Window is closed, but the action will be startet now. let form = this; @@ -2319,7 +2319,7 @@ Openrat.Form = function() { // Now we can close the form. if ( mode == modes.closeAfterSuccess ) { - form.onCloseHandler(); + form.onCloseHandler.fire(); // clear the dirty flag. $(form.element).closest('div.panel').find('div.header ul.views li.action.active').removeClass('dirty'); diff --git a/modules/cms/ui/themes/default/script/openrat.min.js b/modules/cms/ui/themes/default/script/openrat.min.js @@ -1179,7 +1179,7 @@ else if(Notification.permission!=='denied'){Notification.requestPermission(funct else if(typeof extraid==='object'){jQuery.each(extraid,function(e,t){url=url+'&'+e+'='+t})} else{};return url}}; ;Openrat.Form=function(){const modes={showBrowserNotice:1,keepOpen:2,closeAfterSubmit:4,closeAfterSuccess:8,};this.onChangeHandler=$.Callbacks();this.onSaveHandler=$.Callbacks();this.setLoadStatus=function(e){$(this.element).closest('div.content').toggleClass('loader',e)};this.initOnElement=function(e){this.element=e;let form=this;if($(this.element).data('autosave')){$(this.element).find('input[type="checkbox"]').click(function(){form.submit(modes.keepOpen)});$(this.element).find('select').change(function(){form.submit(modes.keepOpen)})};$(e).find('.or-act-form-cancel').click(function(){form.cancel()});$(e).find('.or-act-form-reset').click(function(){form.rollback()});$(e).find('.or-act-form-apply').click(function(){form.submit(modes.keepOpen)});$(e).find('.or-act-form-save').click(function(){form.submit()});$(e).find('.or-input').change(function(){form.onChangeHandler.fire()});$(e).submit(function(e){if($(this).data('target')=='view'){form.submit();e.preventDefault()}})};this.cancel=function(){Openrat.Notice.removeAllNotices();this.onCloseHandler.fire()};this.rollback=function(){this.element.trigger('reset')};this.onCloseHandler=$.Callbacks();this.forwardTo=function(e,t,o,s){};this.submit=function(e){if(e===undefined)if($(this.element).data('async'))e=modes.closeAfterSubmit;else e=modes.closeAfterSuccess;Openrat.Notice.removeAllNotices();let status=new Openrat.Notice();status.setStatus('info');status.inProgress();status.msg=Openrat.Workbench.language.PROGRESS;status.show();$(this.element).find('.or-input--error').removeClass('input--error');let params=$(this.element).serializeArray();let data={};$(params).each(function(e,t){data[t.name]=t.value});if(!data.id)data.id=Openrat.Workbench.state.id;if(!data.action)data.action=Openrat.Workbench.state.action;let formMethod=$(this.element).attr('method').toUpperCase();if(formMethod=='GET'){this.forwardTo(data.action,data.subaction,data.id,data);$(status).remove()} -else{let url='./api/';this.setLoadStatus(!0);url+='';data.output='json';if(e==modes.closeAfterSubmit)this.onCloseHandler();let form=this;console.debug(form);$.ajax({'type':'POST',url:url,data:data,success:function(t,o,s){form.setLoadStatus(!1);status.close();form.doResponse(t,o,form.element,function(){form.onSaveHandler.fire();let afterSuccess=$(form.element).data('afterSuccess');let forwardTo=$(form.element).data('forwardTo');let async=$(form.element).data('async');if(afterSuccess=='forward')e=modes.keepOpen;if(e==modes.closeAfterSuccess){form.onCloseHandler();$(form.element).closest('div.panel').find('div.header ul.views li.action.active').removeClass('dirty')};if(afterSuccess){if(afterSuccess=='reloadAll'){Openrat.Workbench.reloadAll()} +else{let url='./api/';this.setLoadStatus(!0);url+='';data.output='json';if(e==modes.closeAfterSubmit)this.onCloseHandler.fire();let form=this;console.debug(form);$.ajax({'type':'POST',url:url,data:data,success:function(t,o,s){form.setLoadStatus(!1);status.close();form.doResponse(t,o,form.element,function(){form.onSaveHandler.fire();let afterSuccess=$(form.element).data('afterSuccess');let forwardTo=$(form.element).data('forwardTo');let async=$(form.element).data('async');if(afterSuccess=='forward')e=modes.keepOpen;if(e==modes.closeAfterSuccess){form.onCloseHandler.fire();$(form.element).closest('div.panel').find('div.header ul.views li.action.active').removeClass('dirty')};if(afterSuccess){if(afterSuccess=='reloadAll'){Openrat.Workbench.reloadAll()} else if(afterSuccess=='forward'){if(forwardTo)form.forwardTo(data.action,forwardTo,data.id,[])}} else{if(async);else Openrat.Workbench.reloadViews()}})},error:function(e,t,o){console.warn({message:'could not post form',jqXHR:e,form:form,status:t,error:o});form.setLoadStatus(!1);status.close();let msg='';try{msg=jQuery.parseJSON(e.responseText).error}catch(s){msg=e.responseText};let notice=new Openrat.Notice();notice.setStatus('error');notice.msg=msg;notice.show()}});$(form.element).fadeIn()}};this.doResponse=function(e,t,o,onSuccess=$.noop){if(t!='success'){console.error('Server error: '+t);let notice=new Openrat.Notice();notice.setStatus('error');notice.msg=Openrat.Workbench.language.ERROR;notice.show();return};let form=this;$.each(e['notices'],function(t,e){let notifyBrowser=$(o).data('async');let notice=new Openrat.Notice();notice.setContext(e.type,e.id,e.name);notice.log=e.log;notice.setStatus(e.status);notice.msg=e.text;notice.show();if(notifyBrowser)notice.notifyBrowser();if(e.status=='ok'){onSuccess();Openrat.Workbench.dataChangedHandler.fire()} else{}});$.each(e['errors'],function(e,t){$('.or-input[name='+t+']').addClass('input--error').parent().addClass('input--error').parents('.or-group').removeClass('closed').addClass('show').addClass('open')})}}; diff --git a/modules/cms/ui/themes/default/script/openrat/form.js b/modules/cms/ui/themes/default/script/openrat/form.js @@ -153,7 +153,7 @@ Openrat.Form = function() { data.output = 'json'; if ( mode == modes.closeAfterSubmit ) - this.onCloseHandler(); + this.onCloseHandler.fire(); // Async: Window is closed, but the action will be startet now. let form = this; @@ -179,7 +179,7 @@ Openrat.Form = function() { // Now we can close the form. if ( mode == modes.closeAfterSuccess ) { - form.onCloseHandler(); + form.onCloseHandler.fire(); // clear the dirty flag. $(form.element).closest('div.panel').find('div.header ul.views li.action.active').removeClass('dirty');