/* * To change this template, choose Tools | Templates * and open the template in the editor. */ var global_load = null; !function($) { $(function() { $body = $("body"); $(document).on({ ajaxStart: function() { $body.addClass("loading"); }, ajaxStop: function() { $body.removeClass("loading"); } }); function event(where){ $("#alert .alert").alert(); $(where+'.dropdown-toggle').dropdown(); $(where+" a").each(function(that){ if($(this).attr("rel")!=="external") $(this).click(function(e){ load($(this).attr('href'),{},($(this).attr('rel')=="tab")); return false; }); }); $(where+" form:not(.hide-form)").submit(function(e){ e.stopPropagation(); //e.preventDefault(); if(!$(this).hasClass("hide-form")){ if($(this).attr("back")) back=window.location.href; else back=null; load($(this).attr("action"),{data:$(this).serialize(), type:$(this).attr("method"),back:back},($(this).attr('rel')=="tab")); return false; } }); $(where+" form.hide-form").each(function(evt){ that = this; $('span.edit.label',this).click(function(evt){ $(that).removeClass('hide-input'); $(this).addClass('hide'); $('span.save.label',that).removeClass('hide'); $('input',that).removeAttr('disabled'); }); function handleSend(evt){ that2=this; $.getJSON($(that).attr("action"),$(that).serialize(),function(evt){ if(!evt.error){ $(that).addClass('hide-input'); $('input',that).attr('disabled','disabled'); $('span.save.label',that).addClass('hide'); $('span.edit.label',that).removeClass('hide'); }else{ //TODO Handle error console.log("TODO Handle Error"); } }); } $('span.save.label',this).addClass('hide'); $('input',this).attr('disabled','disabled'); $('span.save.label',this).click(handleSend); $(that).submit(function(evt){ evt.stopPropagation(); handleSend(evt); return false; }); }); //$(where+" form label.has-error").parent(".form-group").addClass("has-error") } function load(pageurl,conf,tab){ data = {}; typemethode = "GET"; back = false; if(conf['data']) data = conf['data']; if(conf['type']) typemethode = conf['type']; if(conf['back'] && conf['back'].indexOf("logout")== -1 && conf['back'].indexOf("login")== -1 ) back = conf['back']; //e.preventDefault(); /* if uncomment the above line, html5 nonsupported browers won't change the url but will display the ajax content; if commented, html5 nonsupported browers will reload the page to the specified link. */ $.ajax({url:pageurl,data:data,type:typemethode,success: function(data){ alert = data.split('')[1].split('')[0]; if( alert.trim().length > 0){ $('#alert').html(alert); } if(back){ load(back,{},tab); }else if(tab){ navbar = data.split('')[1].split('')[0]; $('#tab').html(navbar); event("#tab"); }else{ navbar = data.split('')[1].split('')[0]; $('#navbar').html(navbar); event("#navbar"); container = data.split('')[1].split('')[0]; $('#container').html(container); event("#container"); barright = data.split('')[1].split('')[0]; $('#barright').html(barright); event("#barright"); barleft = data.split('')[1].split('')[0]; $('#barleft').html(barleft); event("#barleft"); } if(!back){ navbar = data.split('')[1].split('')[0]; eval($(navbar).html()); } },error:function(data){ alert = "
"+data.statusText+ "" + "
"; $('#alert').html(alert); event("#alert"); $('#container').html(data.responseText); event("#container"); }}); if(pageurl!=window.location){ window.history.pushState({path:pageurl},'',pageurl); } }; event(""); global_load = load; }); }(window.jQuery);