openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 46363578305baa19f5fe067e0244aa8e0a9c064d
parent 62e4f39477042c32ffb388f0305fc18b383ffed3
Author: Jan Dankert <devnull@localhost>
Date:   Tue,  7 Nov 2017 01:25:51 +0100

Einzelne Javascripte und CSS auf die Komponenten aufgeteilt.

Diffstat:
themes/default/include/html/form/form.js | 208++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
themes/default/js/openrat.js | 198-------------------------------------------------------------------------------
2 files changed, 206 insertions(+), 200 deletions(-)

diff --git a/themes/default/include/html/form/form.js b/themes/default/include/html/form/form.js @@ -12,4 +12,209 @@ $(document).on('orViewLoaded',function(event, data) { formSubmit( $(this).closest('form') ); }); -} );- \ No newline at end of file +} ); + + + + +function formSubmit(form) +{ + // Login-Hack + if ( $('div.panel form input[type=password]').length>0 ) + { + $('#uname' ).attr('value',$('div.panel form input[name=login_name]' ).attr('value')); + $('#upassword').attr('value',$('div.panel form input[name=login_password]').attr('value')); + + $('#uname' ).closest('form').submit(); + } + + if ( $('#pageelement_edit_editor').length>0 ) + { + var instance = CKEDITOR.instances['pageelement_edit_editor']; + if(instance) + { + var value = instance.getData(); + $('#pageelement_edit_editor').html( value ); + } + } + + + var status = $('<div class="notice info"><div class="text loader"></div></div'); + $('#noticebar').prepend(status); // Notice anhängen. + $(status).show(); + + // Alle vorhandenen Error-Marker entfernen. + // Falls wieder ein Fehler auftritt, werden diese erneut gesetzt. + $(form).find('.error').removeClass('error'); + + var params = $(form).serializeArray(); + var url = './dispatcher.php'; // Alle Parameter befinden sich im Formular + + var formMethod = $(form).attr('method').toUpperCase(); + + if ( formMethod == 'GET' ) + { + // GET-Request + var action = $(form).data('action'); + var method = $(form).data('method'); + var id = $(form).data('id' ); + + loadView( $(form).closest('div.content'),action,method,id,params); + } + else + { + // POST-Request + $(form).closest('div.content').addClass('loader'); + url += '?output=json'; + params['output'] = 'json';// Irgendwie geht das nicht. + + if ( $(form).data('async') || $(form).data('async')=='true') + { + // Verarbeitung erfolgt asynchron, das heißt, dass der evtl. geöffnete Dialog + // beendet wird. + $('div#dialog').html('').hide(); // Dialog beenden + + //$('div.modaldialog').fadeOut(500); + //$('div#workbench').removeClass('modal'); // Modalen Dialog beenden. + $('div#filler').fadeOut(500); // Filler beenden + } + + $.ajax( { 'type':'POST',url:url, data:params, success:function(data, textStatus, jqXHR) + { + $(form).closest('div.content').removeClass('loader'); + $(status).remove(); + + doResponse(data,textStatus,form); + }, + error:function(jqXHR, textStatus, errorThrown) { + $(form).closest('div.content').removeClass('loader'); + $(status).remove(); + + var msg; + try + { + var error = jQuery.parseJSON( jqXHR.responseText ); + msg = error.error + '/' + error.description + ': ' + error.reason; + } + catch( e ) + { + msg = jqXHR.responseText; + } + + notify('error',msg); + + } + + } ); + $(form).fadeIn(); + } +} + + + + + +/** + * HTTP-Antwort auf einen POST-Request auswerten. + * + * @param data Formulardaten + * @param status Status + * @param element + */ +function doResponse(data,status,element) +{ + if ( status != 'success' ) + { + alert('Server error: ' + status); + return; + } + + // Hinweismeldungen in Statuszeile anzeigen + $.each(data['notices'], function(idx,value) { + + // Notice-Bar mit dieser Meldung erweitern. + var notice = $('<div class="notice '+value.status+'"><div class="text">'+value.text+'</div></div'); + notifyBrowser(value.text); + $.each(value.log, function(name,value) { + $(notice).append('<div class="log">'+value+'</div>'); + }); + $('#noticebar').prepend(notice); // Notice anhängen. + + // Per Klick wird die Notice entfernt. + $(notice).fadeIn().click( function() + { + $(this).fadeOut('fast',function() { $(this).remove(); } ); + } ); + + var timeoutSeconds; + if ( value.status == 'ok' ) // Kein Fehler? + { + // Kein Fehler + timeoutSeconds = 3; + + // Nur bei synchronen Prozessen soll nach Verarbeitung der Dialog + // geschlossen werden. + if ( $(element).data('async') != 'true' ) + { + // Verarbeitung erfolgt asynchron, das heißt, dass der evtl. geöffnete Dialog + // beendet wird. + $('div#dialog').html('').hide(); // Dialog beenden + + //$('div.modaldialog').fadeOut(500); + //$('div#workbench').removeClass('modal'); // Modalen Dialog beenden. + $('div#filler').fadeOut(500); // Filler beenden + + // Da gespeichert wurde, jetzt das 'dirty'-flag zurücksetzen. + $(element).closest('div.panel').find('div.header ul.views li.action.active').removeClass('dirty'); + } + } + else + // Server liefert Fehler zurück. + { + timeoutSeconds = 8; + } + + // Und nach einem Timeout entfernt sich die Notice von alleine. + setTimeout( function() { $(notice).fadeOut('slow').remove(); },timeoutSeconds*1000 ); + }); + + // Felder mit Fehleingaben markieren, ggf. das übergeordnete Fieldset aktivieren. + $.each(data['errors'], function(idx,value) { + $('input[name='+value+']').addClass('error').parent().addClass('error').parents('fieldset').addClass('show').addClass('open'); + }); + + // Jetzt das erhaltene Dokument auswerten. + + // Hinweismeldungen in Statuszeile anzeigen + if ( ! data.control ) { + /* + $('div.panel div.status').html('<div />'); + $('div.panel div.status div').append( data ); + $('div.panel div.status div').delay(3000).fadeOut(2500); + */ + //alert( value.text ); + }; + + + if ( data.control.redirect ) + // Redirect + window.location.href = data.control.redirect; + + if ( data.control.new_style ) + // CSS-Datei setzen + setUserStyle( data.control.new_style ); + + if ( data.control.refresh ) + // Views aktualisieren + refreshAll(); + + else if ( data.control.next_view ) + // Nächste View aufrufen + startView( $(element).closest('div.content'),data.control.next_view ); + + else if ( data.errors.length==0 ) + // Aktuelle View neu laden + $(element).closest('div.panel').find('li.action.active').orLoadView(); + +} + diff --git a/themes/default/js/openrat.js b/themes/default/js/openrat.js @@ -932,98 +932,6 @@ function submitLink(element,data) } -function formSubmit(form) -{ - // Login-Hack - if ( $('div.panel form input[type=password]').length>0 ) - { - $('#uname' ).attr('value',$('div.panel form input[name=login_name]' ).attr('value')); - $('#upassword').attr('value',$('div.panel form input[name=login_password]').attr('value')); - - $('#uname' ).closest('form').submit(); - } - - if ( $('#pageelement_edit_editor').length>0 ) - { - var instance = CKEDITOR.instances['pageelement_edit_editor']; - if(instance) - { - var value = instance.getData(); - $('#pageelement_edit_editor').html( value ); - } - } - - - var status = $('<div class="notice info"><div class="text loader"></div></div'); - $('#noticebar').prepend(status); // Notice anhängen. - $(status).show(); - - // Alle vorhandenen Error-Marker entfernen. - // Falls wieder ein Fehler auftritt, werden diese erneut gesetzt. - $(form).find('.error').removeClass('error'); - - var params = $(form).serializeArray(); - var url = './dispatcher.php'; // Alle Parameter befinden sich im Formular - - var formMethod = $(form).attr('method').toUpperCase(); - - if ( formMethod == 'GET' ) - { - // GET-Request - var action = $(form).data('action'); - var method = $(form).data('method'); - var id = $(form).data('id' ); - - loadView( $(form).closest('div.content'),action,method,id,params); - } - else - { - // POST-Request - $(form).closest('div.content').addClass('loader'); - url += '?output=json'; - params['output'] = 'json';// Irgendwie geht das nicht. - - if ( $(form).data('async') || $(form).data('async')=='true') - { - // Verarbeitung erfolgt asynchron, das heißt, dass der evtl. geöffnete Dialog - // beendet wird. - $('div#dialog').html('').hide(); // Dialog beenden - - //$('div.modaldialog').fadeOut(500); - //$('div#workbench').removeClass('modal'); // Modalen Dialog beenden. - $('div#filler').fadeOut(500); // Filler beenden - } - - $.ajax( { 'type':'POST',url:url, data:params, success:function(data, textStatus, jqXHR) - { - $(form).closest('div.content').removeClass('loader'); - $(status).remove(); - - doResponse(data,textStatus,form); - }, - error:function(jqXHR, textStatus, errorThrown) { - $(form).closest('div.content').removeClass('loader'); - $(status).remove(); - - var msg; - try - { - var error = jQuery.parseJSON( jqXHR.responseText ); - msg = error.error + '/' + error.description + ': ' + error.reason; - } - catch( e ) - { - msg = jqXHR.responseText; - } - - notify('error',msg); - - } - - } ); - $(form).fadeIn(); - } -} /** @@ -1061,112 +969,6 @@ function notifyBrowser(text) -/** - * HTTP-Antwort auf einen POST-Request auswerten. - * - * @param data Formulardaten - * @param status Status - * @param element - */ -function doResponse(data,status,element) -{ - if ( status != 'success' ) - { - alert('Server error: ' + status); - return; - } - - // Hinweismeldungen in Statuszeile anzeigen - $.each(data['notices'], function(idx,value) { - - // Notice-Bar mit dieser Meldung erweitern. - var notice = $('<div class="notice '+value.status+'"><div class="text">'+value.text+'</div></div'); - notifyBrowser(value.text); - $.each(value.log, function(name,value) { - $(notice).append('<div class="log">'+value+'</div>'); - }); - $('#noticebar').prepend(notice); // Notice anhängen. - - // Per Klick wird die Notice entfernt. - $(notice).fadeIn().click( function() - { - $(this).fadeOut('fast',function() { $(this).remove(); } ); - } ); - - var timeoutSeconds; - if ( value.status == 'ok' ) // Kein Fehler? - { - // Kein Fehler - timeoutSeconds = 3; - - // Nur bei synchronen Prozessen soll nach Verarbeitung der Dialog - // geschlossen werden. - if ( $(element).data('async') != 'true' ) - { - // Verarbeitung erfolgt asynchron, das heißt, dass der evtl. geöffnete Dialog - // beendet wird. - $('div#dialog').html('').hide(); // Dialog beenden - - //$('div.modaldialog').fadeOut(500); - //$('div#workbench').removeClass('modal'); // Modalen Dialog beenden. - $('div#filler').fadeOut(500); // Filler beenden - - // Da gespeichert wurde, jetzt das 'dirty'-flag zurücksetzen. - $(element).closest('div.panel').find('div.header ul.views li.action.active').removeClass('dirty'); - } - } - else - // Server liefert Fehler zurück. - { - timeoutSeconds = 8; - } - - // Und nach einem Timeout entfernt sich die Notice von alleine. - setTimeout( function() { $(notice).fadeOut('slow').remove(); },timeoutSeconds*1000 ); - }); - - // Felder mit Fehleingaben markieren, ggf. das übergeordnete Fieldset aktivieren. - $.each(data['errors'], function(idx,value) { - $('input[name='+value+']').addClass('error').parent().addClass('error').parents('fieldset').addClass('show').addClass('open'); - }); - - // Jetzt das erhaltene Dokument auswerten. - - // Hinweismeldungen in Statuszeile anzeigen - if ( ! data.control ) { - /* - $('div.panel div.status').html('<div />'); - $('div.panel div.status div').append( data ); - $('div.panel div.status div').delay(3000).fadeOut(2500); - */ - //alert( value.text ); - }; - - - if ( data.control.redirect ) - // Redirect - window.location.href = data.control.redirect; - - if ( data.control.new_style ) - // CSS-Datei setzen - setUserStyle( data.control.new_style ); - - if ( data.control.refresh ) - // Views aktualisieren - refreshAll(); - - else if ( data.control.next_view ) - // Nächste View aufrufen - startView( $(element).closest('div.content'),data.control.next_view ); - - else if ( data.errors.length==0 ) - // Aktuelle View neu laden - $(element).closest('div.panel').find('li.action.active').orLoadView(); - -} - - - function setUserStyle( url ) { $('#userstyle').attr('href',url);