From b3787a48e6614af774d8f332d3a3729cdb302f17 Mon Sep 17 00:00:00 2001 From: Laurent Peuch Date: Thu, 1 Oct 2015 23:20:00 +0200 Subject: [PATCH] Update minimified files --- src/dist/js/script.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dist/js/script.min.js b/src/dist/js/script.min.js index a77a92ab..dc0749ad 100644 --- a/src/dist/js/script.min.js +++ b/src/dist/js/script.min.js @@ -10,4 +10,4 @@ this.compileStack=[],this.inlineStack=[],this.compileChildren(t,e);var n,r=t.opc !function(t){"function"==typeof define&&define.amd?define(["jquery","sammy"],t):(window.Sammy=window.Sammy||{}).Storage=t(window.jQuery,window.Sammy)}(function(t,e){return e.Store=function(i){var n=this;this.options=i||{},this.name=this.options.name||"store",this.element=this.options.element||"body",this.$element=t(this.element),t.isArray(this.options.type)?t.each(this.options.type,function(t,i){return e.Store.isAvailable(i)?(n.type=i,!1):void 0}):this.type=this.options.type||"memory",this.meta_key=this.options.meta_key||"__keys__",this.storage=new e.Store[e.Store.stores[this.type]](this.name,this.element,this.options)},e.Store.stores={memory:"Memory",data:"Data",local:"LocalStorage",session:"SessionStorage",cookie:"Cookie"},t.extend(e.Store.prototype,{isAvailable:function(){return t.isFunction(this.storage.isAvailable)?this.storage.isAvailable():!0},exists:function(t){return this.storage.exists(t)},set:function(t,e){var i="string"==typeof e?e:JSON.stringify(e);return t=t.toString(),this.storage.set(t,i),t!=this.meta_key&&(this._addKey(t),this.$element.trigger("set-"+this.name,{key:t,value:e}),this.$element.trigger("set-"+this.name+"-"+t,{key:t,value:e})),e},get:function(t){var e=this.storage.get(t);if("undefined"==typeof e||null==e||""==e)return e;try{return JSON.parse(e)}catch(i){return e}},clear:function(t){return this._removeKey(t),this.storage.clear(t)},clearAll:function(){var t=this;this.each(function(e,i){t.clear(e)})},keys:function(){return this.get(this.meta_key)||[]},each:function(t){var e,i=0,n=this.keys();for(i;ithis.$items.length-1||0>e?void 0:this.sliding?this.$element.one("slid",function(){i.to(e)}):o==e?this.pause().cycle():this.slide(e>o?"next":"prev",t(this.$items[e]))},e.prototype.pause=function(e){return e||(this.paused=!0),this.$element.find(".next, .prev").length&&t.support.transition.end&&(this.$element.trigger(t.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},e.prototype.next=function(){return this.sliding?void 0:this.slide("next")},e.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},e.prototype.slide=function(e,i){var o=this.$element.find(".item.active"),n=i||o[e](),s=this.interval,a="next"==e?"left":"right",r="next"==e?"first":"last",l=this;if(!n.length){if(!this.options.wrap)return;n=this.$element.find(".item")[r]()}this.sliding=!0,s&&this.pause();var h=t.Event("slide.bs.carousel",{relatedTarget:n[0],direction:a});if(!n.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var e=t(l.$indicators.children()[l.getActiveIndex()]);e&&e.addClass("active")})),t.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(h),h.isDefaultPrevented())return;n.addClass(e),n[0].offsetWidth,o.addClass(a),n.addClass(a),o.one(t.support.transition.end,function(){n.removeClass([e,a].join(" ")).addClass("active"),o.removeClass(["active",a].join(" ")),l.sliding=!1,setTimeout(function(){l.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(h),h.isDefaultPrevented())return;o.removeClass("active"),n.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return s&&this.cycle(),this}};var i=t.fn.carousel;t.fn.carousel=function(i){return this.each(function(){var o=t(this),n=o.data("bs.carousel"),s=t.extend({},e.DEFAULTS,o.data(),"object"==typeof i&&i),a="string"==typeof i?i:s.slide;n||o.data("bs.carousel",n=new e(this,s)),"number"==typeof i?n.to(i):a?n[a]():s.interval&&n.pause().cycle()})},t.fn.carousel.Constructor=e,t.fn.carousel.noConflict=function(){return t.fn.carousel=i,this},t(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(e){var i,o=t(this),n=t(o.attr("data-target")||(i=o.attr("href"))&&i.replace(/.*(?=#[^\s]+$)/,"")),s=t.extend({},n.data(),o.data()),a=o.attr("data-slide-to");a&&(s.interval=!1),n.carousel(s),(a=o.attr("data-slide-to"))&&n.data("bs.carousel").to(a),e.preventDefault()}),t(window).on("load",function(){t('[data-ride="carousel"]').each(function(){var e=t(this);e.carousel(e.data())})})}(window.jQuery),+function(t){"use strict";var e=function(i,o){this.$element=t(i),this.options=t.extend({},e.DEFAULTS,o),this.transitioning=null,this.options.parent&&(this.$parent=t(this.options.parent)),this.options.toggle&&this.toggle()};e.DEFAULTS={toggle:!0},e.prototype.dimension=function(){var t=this.$element.hasClass("width");return t?"width":"height"},e.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var e=t.Event("show.bs.collapse");if(this.$element.trigger(e),!e.isDefaultPrevented()){var i=this.$parent&&this.$parent.find("> .panel > .in");if(i&&i.length){var o=i.data("bs.collapse");if(o&&o.transitioning)return;i.collapse("hide"),o||i.data("bs.collapse",null)}var n=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[n](0),this.transitioning=1;var s=function(){this.$element.removeClass("collapsing").addClass("in")[n]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!t.support.transition)return s.call(this);var a=t.camelCase(["scroll",n].join("-"));this.$element.one(t.support.transition.end,t.proxy(s,this)).emulateTransitionEnd(350)[n](this.$element[0][a])}}},e.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var e=t.Event("hide.bs.collapse");if(this.$element.trigger(e),!e.isDefaultPrevented()){var i=this.dimension();this.$element[i](this.$element[i]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var o=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return t.support.transition?void this.$element[i](0).one(t.support.transition.end,t.proxy(o,this)).emulateTransitionEnd(350):o.call(this)}}},e.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var i=t.fn.collapse;t.fn.collapse=function(i){return this.each(function(){var o=t(this),n=o.data("bs.collapse"),s=t.extend({},e.DEFAULTS,o.data(),"object"==typeof i&&i);n||o.data("bs.collapse",n=new e(this,s)),"string"==typeof i&&n[i]()})},t.fn.collapse.Constructor=e,t.fn.collapse.noConflict=function(){return t.fn.collapse=i,this},t(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(e){var i,o=t(this),n=o.attr("data-target")||e.preventDefault()||(i=o.attr("href"))&&i.replace(/.*(?=#[^\s]+$)/,""),s=t(n),a=s.data("bs.collapse"),r=a?"toggle":o.data(),l=o.attr("data-parent"),h=l&&t(l);a&&a.transitioning||(h&&h.find('[data-toggle=collapse][data-parent="'+l+'"]').not(o).addClass("collapsed"),o[s.hasClass("in")?"addClass":"removeClass"]("collapsed")),s.collapse(r)})}(window.jQuery),+function(t){"use strict";function e(){t(o).remove(),t(n).each(function(e){var o=i(t(this));o.hasClass("open")&&(o.trigger(e=t.Event("hide.bs.dropdown")),e.isDefaultPrevented()||o.removeClass("open").trigger("hidden.bs.dropdown"))})}function i(e){var i=e.attr("data-target");i||(i=e.attr("href"),i=i&&/#/.test(i)&&i.replace(/.*(?=#[^\s]*$)/,""));var o=i&&t(i);return o&&o.length?o:e.parent()}var o=".dropdown-backdrop",n="[data-toggle=dropdown]",s=function(e){t(e).on("click.bs.dropdown",this.toggle)};s.prototype.toggle=function(o){var n=t(this);if(!n.is(".disabled, :disabled")){var s=i(n),a=s.hasClass("open");if(e(),!a){if("ontouchstart"in document.documentElement&&!s.closest(".navbar-nav").length&&t(''}),e.prototype=t.extend({},t.fn.tooltip.Constructor.prototype),e.prototype.constructor=e,e.prototype.getDefaults=function(){return e.DEFAULTS},e.prototype.setContent=function(){var t=this.tip(),e=this.getTitle(),i=this.getContent();t.find(".popover-title")[this.options.html?"html":"text"](e),t.find(".popover-content")[this.options.html?"html":"text"](i),t.removeClass("fade top bottom left right in"),t.find(".popover-title").html()||t.find(".popover-title").hide()},e.prototype.hasContent=function(){return this.getTitle()||this.getContent()},e.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr("data-content")||("function"==typeof e.content?e.content.call(t[0]):e.content)},e.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},e.prototype.tip=function(){return this.$tip||(this.$tip=t(this.options.template)),this.$tip};var i=t.fn.popover;t.fn.popover=function(i){return this.each(function(){var o=t(this),n=o.data("bs.popover"),s="object"==typeof i&&i;n||o.data("bs.popover",n=new e(this,s)),"string"==typeof i&&n[i]()})},t.fn.popover.Constructor=e,t.fn.popover.noConflict=function(){return t.fn.popover=i,this}}(window.jQuery),+function(t){"use strict";function e(i,o){var n,s=t.proxy(this.process,this);this.$element=t(t(i).is("body")?window:i),this.$body=t("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",s),this.options=t.extend({},e.DEFAULTS,o),this.selector=(this.options.target||(n=t(i).attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=t([]),this.targets=t([]),this.activeTarget=null,this.refresh(),this.process()}e.DEFAULTS={offset:10},e.prototype.refresh=function(){var e=this.$element[0]==window?"offset":"position";this.offsets=t([]),this.targets=t([]);var i=this;this.$body.find(this.selector).map(function(){var o=t(this),n=o.data("target")||o.attr("href"),s=/^#\w/.test(n)&&t(n);return s&&s.length&&[[s[e]().top+(!t.isWindow(i.$scrollElement.get(0))&&i.$scrollElement.scrollTop()),n]]||null}).sort(function(t,e){return t[0]-e[0]}).each(function(){i.offsets.push(this[0]),i.targets.push(this[1])})},e.prototype.process=function(){var t,e=this.$scrollElement.scrollTop()+this.options.offset,i=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,o=i-this.$scrollElement.height(),n=this.offsets,s=this.targets,a=this.activeTarget;if(e>=o)return a!=(t=s.last()[0])&&this.activate(t);for(t=n.length;t--;)a!=s[t]&&e>=n[t]&&(!n[t+1]||e<=n[t+1])&&this.activate(s[t])},e.prototype.activate=function(e){this.activeTarget=e,t(this.selector).parents(".active").removeClass("active");var i=this.selector+'[data-target="'+e+'"],'+this.selector+'[href="'+e+'"]',o=t(i).parents("li").addClass("active");o.parent(".dropdown-menu").length&&(o=o.closest("li.dropdown").addClass("active")),o.trigger("activate")};var i=t.fn.scrollspy;t.fn.scrollspy=function(i){return this.each(function(){var o=t(this),n=o.data("bs.scrollspy"),s="object"==typeof i&&i;n||o.data("bs.scrollspy",n=new e(this,s)),"string"==typeof i&&n[i]()})},t.fn.scrollspy.Constructor=e,t.fn.scrollspy.noConflict=function(){return t.fn.scrollspy=i,this},t(window).on("load",function(){t('[data-spy="scroll"]').each(function(){var e=t(this);e.scrollspy(e.data())})})}(window.jQuery),+function(t){"use strict";var e=function(e){this.element=t(e)};e.prototype.show=function(){var e=this.element,i=e.closest("ul:not(.dropdown-menu)"),o=e.attr("data-target");if(o||(o=e.attr("href"),o=o&&o.replace(/.*(?=#[^\s]*$)/,"")),!e.parent("li").hasClass("active")){var n=i.find(".active:last a")[0],s=t.Event("show.bs.tab",{relatedTarget:n});if(e.trigger(s),!s.isDefaultPrevented()){var a=t(o);this.activate(e.parent("li"),i),this.activate(a,a.parent(),function(){e.trigger({type:"shown.bs.tab",relatedTarget:n})})}}},e.prototype.activate=function(e,i,o){function n(){s.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),e.addClass("active"),a?(e[0].offsetWidth,e.addClass("in")):e.removeClass("fade"),e.parent(".dropdown-menu")&&e.closest("li.dropdown").addClass("active"),o&&o()}var s=i.find("> .active"),a=o&&t.support.transition&&s.hasClass("fade");a?s.one(t.support.transition.end,n).emulateTransitionEnd(150):n(),s.removeClass("in")};var i=t.fn.tab;t.fn.tab=function(i){return this.each(function(){var o=t(this),n=o.data("bs.tab");n||o.data("bs.tab",n=new e(this)),"string"==typeof i&&n[i]()})},t.fn.tab.Constructor=e,t.fn.tab.noConflict=function(){return t.fn.tab=i,this},t(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(e){e.preventDefault(),t(this).tab("show")})}(window.jQuery),+function(t){"use strict";var e=function(i,o){this.options=t.extend({},e.DEFAULTS,o),this.$window=t(window).on("scroll.bs.affix.data-api",t.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",t.proxy(this.checkPositionWithEventLoop,this)),this.$element=t(i),this.affixed=this.unpin=null,this.checkPosition()};e.RESET="affix affix-top affix-bottom",e.DEFAULTS={offset:0},e.prototype.checkPositionWithEventLoop=function(){setTimeout(t.proxy(this.checkPosition,this),1)},e.prototype.checkPosition=function(){if(this.$element.is(":visible")){var i=t(document).height(),o=this.$window.scrollTop(),n=this.$element.offset(),s=this.options.offset,a=s.top,r=s.bottom;"object"!=typeof s&&(r=a=s),"function"==typeof a&&(a=s.top()),"function"==typeof r&&(r=s.bottom());var l=null!=this.unpin&&o+this.unpin<=n.top?!1:null!=r&&n.top+this.$element.height()>=i-r?"bottom":null!=a&&a>=o?"top":!1;this.affixed!==l&&(this.unpin&&this.$element.css("top",""),this.affixed=l,this.unpin="bottom"==l?n.top-o:null,this.$element.removeClass(e.RESET).addClass("affix"+(l?"-"+l:"")),"bottom"==l&&this.$element.offset({top:document.body.offsetHeight-r-this.$element.height()}))}};var i=t.fn.affix;t.fn.affix=function(i){return this.each(function(){var o=t(this),n=o.data("bs.affix"),s="object"==typeof i&&i;n||o.data("bs.affix",n=new e(this,s)),"string"==typeof i&&n[i]()})},t.fn.affix.Constructor=e,t.fn.affix.noConflict=function(){return t.fn.affix=i,this},t(window).on("load",function(){t('[data-spy="affix"]').each(function(){var e=t(this),i=e.data();i.offset=i.offset||{},i.offsetBottom&&(i.offset.bottom=i.offsetBottom),i.offsetTop&&(i.offset.top=i.offsetTop),e.affix(i)})})}(window.jQuery); !function(t){"use strict";var e={defaultLocale:"en",locale:"en",placeholder:/(?:\{\{|%\{)(.*?)(?:\}\}?)/gm,translations:{}};t.init=function(){for(var n in e)t[n]="undefined"!=typeof t[n]?t[n]:e[n]},t.init(),t.translateInlineHTML=function(){[].forEach.call(document.querySelectorAll("[data-y18n]"),function(e){e.innerHTML=t.translate(e.getAttribute("data-y18n"))}),[].forEach.call(document.querySelectorAll("[data-y18n-title]"),function(e){e.title=t.translate(e.getAttribute("data-y18n-title"))})},t.translate=function(e,n){n=n||{locale:t.locale},n.locale=n.locale||t.locale;var l=this.lookup(e,n);return"undefined"!=typeof l&&l!==e||n.locale===t.defaultLocale?l?l.printf(n):e:(n.locale=t.defaultLocale,this.translate(e,n))},t.lookup=function(e,n){return"undefined"==typeof n.locale&&(n.locale=t.locale),"undefined"!=typeof t.translations[n.locale]&&"undefined"!=typeof t.translations[n.locale][e]?t.translations[n.locale][e]:void 0},t.t=t.translate}("undefined"==typeof exports?this.y18n||(this.y18n={}):exports),String.prototype.printf=function(t){var e=!1,n=arguments,l=-1;return"string"==typeof n[0]&&(e=!0),t instanceof Array||e?this.replace(/\%s/g,function(a,o){if(l++,e){if("string"==typeof n[l])return n[l];throw new Error("Arguments element is an invalid type")}return t[l]}):this.replace(/{([^{}]*)}/g,function(e,n){var l=t[n];return"string"==typeof l||"number"==typeof l?l:e})}; -var app=Sammy("#main",function(a){a.use("Handlebars","ms"),Handlebars.registerHelper("ucwords",function(a){return(a+"").replace(/^([a-z\u00E0-\u00FC])|\s+([a-z\u00E0-\u00FC])/g,function(a){return a.toUpperCase()})}),Handlebars.registerHelper("humanSize",function(a){var e=["Bytes","KB","MB","GB","TB"];if(0===a)return"n/a";var n=parseInt(Math.floor(Math.log(a)/Math.log(1024)));return Math.round(a/Math.pow(1024,n),2)+" "+e[[n]]}),Handlebars.registerHelper("humanTime",function(a){return Math.round(a)+"s"}),Handlebars.registerHelper("bitRate",function(a,e){var n=["b","Kb","Mb","Gb","Tb"];if(0===e)return"n/a";var s=a/e*8,t=parseInt(Math.floor(Math.log(s)/Math.log(1024)));return Math.round(s/Math.pow(1024,t),2)+" "+n[[t]]+"/s"}),Handlebars.registerHelper("t",function(a){var e=y18n.t(a,Array.prototype.slice.call(arguments,1));return new Handlebars.SafeString(e)});var e;e=Sammy.Store.isAvailable("session")?"session":Sammy.Store.isAvailable("cookie")?"cookie":"memory";var n=new Sammy.Store({name:"storage",type:e}),s=!1,t=3;a.helpers({serialize:function(a){var e=[];for(var n in a)a.hasOwnProperty(n)&&e.push(encodeURIComponent(n)+"="+encodeURIComponent(a[n]));return e.join("&")},flash:function(a,e){n.get("flash")||n.set("flash",!0),"fail"==a?alertClass="alert-danger":alertClass="alert-"+a,$("#flash .alert").last().hasClass(alertClass)?"log"==a?$("#flash .alert").last().append('

'+e+"

"):$("#flash .alert").last().append("

"+e+"

"):("log"==a?$("#flash").append('").show():$("#flash").append('").show(),$("#flash .alert").last().fadeIn()),document.body.scrollTop=document.documentElement.scrollTop=0,$("#flash .alert-log button.btn-small").on("click",function(){$("#flash .alert-log p:hidden").fadeIn(),$("#flash .alert-log div").hide()})},checkInstall:function(a){domain=window.location.hostname,$.ajax({dataType:"json",url:"https://"+domain+"/yunohost/api/installed",timeout:3e3}).success(function(e){a(e.installed)}).fail(function(){a(void 0)})},api:function(a,e,t,i,r){c=this,call=function(a,e,t,i){t="undefined"!=typeof t?t:"GET",i="undefined"!=typeof i?i:{},window.navigator&&window.navigator.language&&"undefined"==typeof i.locale&&(i.locale=y18n.locale||window.navigator.language.substr(0,2));var r=i;if("/postinstall"===a){var o=!1;setInterval(function(){o=!0},1500)}s=!1,0===$("div.loader").length&&setInterval(function(){s||0!==$("div.loader").length||$("#main").append('
')},500),jQuery.ajax({url:"https://"+n.get("url")+a,type:t,crossdomain:!0,data:i,traditional:!0,dataType:"json"}).always(function(a,e,n){}).done(function(a){a=a||{},e(a)}).fail(function(s){200==s.status?e({}):401==s.status?"/login"===a?c.flash("fail",y18n.t("wrong_password")):(c.flash("fail",y18n.t("unauthorized")),c.redirect("#/login")):"undefined"!=typeof s.responseJSON?c.flash("fail",s.responseJSON.error):"undefined"!=typeof s.responseText&&"/postinstall"!==a?c.flash("fail",s.responseText):"/postinstall"===a?o?(interval=window.location.hostname===r.domain?2e4:5e3,checkInstall=setInterval(function(){c.checkInstall(function(a){(a||"undefined"==typeof a)&&(c.flash("success",y18n.t("installation_complete")),clearInterval(checkInstall),window.location.href="https://"+window.location.hostname+"/yunohost/admin/")})},interval)):c.flash("fail",y18n.t("error_occured")):c.flash("fail",y18n.t("error_server")),"/postinstall"!==a&&(n.clear("slide"),c.redirect(n.get("path-1")))})},r="undefined"!=typeof r?r:!0,r?(ws=new WebSocket("wss://"+n.get("url")+"/messages"),ws.onmessage=function(a){$.each($.parseJSON(a.data),function(a,e){c.flash(a,e)})},ws.onerror=ws.onopen,ws.onclose=function(){n.clear("flash")},ws.onopen=call(a,e,t,i)):call(a,e,t,i)},view:function(a,e,t){if(t="undefined"!=typeof t?t:function(){},rendered=this.render("views/"+a+".ms",e),enableSlide=!0,s=!0,$("div.loader").remove(),$("#modal").modal("hide"),enableSlide){var i=function(){rendered.swap(function(){$(".slide, .btn-breadcrumb a:not(:last-child)").on("click",function(){$(this).addClass("active"),$(this).hasClass("back")||$(this).parent(".btn-breadcrumb").length?n.set("slide","back"):n.set("slide","to")}),t(),$("html, body").scrollTop(0)})};blockSize=$("#slider").width(),"back"==n.get("slide")?(n.clear("slide"),$("#slideBack").css("display","none"),$("#slider-container").removeClass("move").css("margin-left","-"+blockSize+"px"),$("#slideTo").show().html($("#main").html()),i(),$("#slider-container").addClass("move").css("margin-left","0px")):"to"==n.get("slide")?(n.clear("slide"),$("#slideTo").css("display","none"),$("#slider-container").removeClass("move").css("margin-left","-"+blockSize+"px"),$("#slider-container").removeClass("move").css("margin-left","0px"),$("#slideBack").show().html($("#main").html()),i(),$("#slider-container").addClass("move").css("margin-left","-"+blockSize+"px")):i()}else rendered.swap(function(){t(),$("html, body").scrollTop(0)})},confirm:function(a,e,n,s){return n="undefined"!=typeof n?n:function(){},s="undefined"!=typeof s?s:function(){},box=$("#modal"),"string"==typeof a&&a.length?$(".title",box).html(a):box.addClass("no-title"),$(".content",box).html(e),$("footer button",box).click(function(a){a.preventDefault(),box.removeClass("no-title").modal("hide"),"confirm"==$(this).data("action")?n():s()}),box.modal("show")},arraySortById:function(a){a.sort(function(a,e){return a.id>e.id?1:a.id'+y18n.t("read_more")+")";a.flash("warning",l),n.push(o.guid)}}),$.cookie("ynhSecurityViewedItems",n,{expire:7})}).fail(function(){a.flash("fail",y18n.t("error_retrieve_feed",[n]))}),a.view("home")})}),a.get("#/login",function(a){$("#masthead").show(),$(".logout-button").hide(),n.set("path-1","#/login"),0===$("div.loader").length&&setInterval(function(){s||0!==$("div.loader").length||$("#main").append('
')},500),a.checkInstall(function(e){e?(domain=window.location.hostname,$("div.loader").remove(),a.view("login",{domain:domain})):"undefined"==typeof e?t>0?(t--,s=!1,setTimeout(function(){a.redirect("#/")},5e3)):(t=3,$(document).ajaxError(function(e,n,s){200!==n.status&&a.flash("fail",y18n.t("api_not_responding",[n.status+" "+n.statusText])),$(document).off("ajaxError")}),s=!0,$("div.loader").remove()):($("div.loader").remove(),a.redirect("#/postinstall"))})}),a.post("#/login",function(a){n.set("url",a.params.domain+"/yunohost/api"),params={password:a.params.password},a.api("/login",function(e){n.set("connected",!0),$(".logout-button").fadeIn(),a.flash("success",y18n.t("logged_in")),n.get("path")?a.redirect(n.get("path")):a.redirect("#/")},"POST",params,!1)}),a.get("#/logout",function(a){a.api("/logout",function(e){n.clear("url"),n.clear("connected"),n.set("path","#/"),a.flash("success",y18n.t("logged_out")),a.redirect("#/login")},"GET",{},!1)}),a.get("#/postinstall",function(a){$("#masthead").hide(),a.checkInstall(function(e){e||"undefined"==typeof e?a.redirect("#/login"):a.view("postinstall/postinstall_1")})}),a.get("#/postinstall/domain",function(a){$("#masthead").hide(),$.get("https://dyndns.yunohost.org/domains",function(){}).done(function(e){a.params.ddomains=e.map(function(a){return"."+a})}).fail(function(){a.params.ddomains=[".nohost.me",".noho.st"]}).always(function(){a.view("postinstall/postinstall_2",a.params,function(){$("#domain, #ddomain").keyup(function(a){13==a.keyCode&&$("a.savedomain").click()}),$("a.savedomain").on("click",function(e){""===$("#domain").val()?""===$("#ddomain").val()?(e.preventDefault(),n.clear("slide"),a.flash("fail",y18n.t("error_select_domain"))):domain=$("#ddomain").val()+$('select[name="ddomain-ext"]').val():domain=$("#domain").val(),n.set("maindomain",domain)})})})}),a.get("#/postinstall/password",function(a){$("#masthead").hide(),$("#flash .alert").remove(),n.get("maindomain")?a.view("postinstall/postinstall_3",{domain:n.get("maindomain").toLowerCase()}):(n.clear("slide"),a.redirect("#/postinstall/domain"))}),a.post("#/postinstall",function(a){""===a.params.password||""===a.params.confirmation?a.flash("fail",y18n.t("password_empty")):a.params.password==a.params.confirmation?(""===a.params.domain?(a.flash("fail",y18n.t("error_select_domain")),n.clear("slide"),a.redirect("#/postinstall/domain")):params={domain:a.params.domain.toLowerCase()},a.confirm(y18n.t("postinstall"),y18n.t("confirm_postinstall",[a.params.domain]),function(){params.password=a.params.password,n.set("url",window.location.hostname+"/yunohost/api"),n.set("user","admin"),a.api("/postinstall",function(e){a.redirect("#/login")},"POST",params)},function(){})):a.flash("fail",y18n.t("passwords_dont_match"))}),a.get("#/users",function(a){a.api("/users",function(e){a.view("user/user_list",e)})}),a.get("#/users/create",function(a){a.api("/domains",function(e){a.view("user/user_create",e)})}),a.post("#/users",function(a){a.params.password==a.params.confirmation?a.params.password.length<4?(a.flash("fail",y18n.t("password_too_short")),n.clear("slide")):(a.params.mail=a.params.email+a.params.domain,a.api("/users",function(e){a.redirect("#/users")},"POST",a.params.toHash())):(a.flash("fail",y18n.t("passwords_dont_match")),n.clear("slide"))}),a.get("#/users/:user",function(a){a.api("/users/"+a.params.user,function(e){a.view("user/user_info",e)})}),a.get("#/users/:user/edit",function(a){a.api("/users/"+a.params.user,function(e){a.api("/domains",function(n){email=e.mail.split("@"),e.email={username:email[0],domain:email[1]},e.domains=[],$.each(n.domains,function(a,n){e.domains.push({domain:n,selected:n==e.email.domain?!0:!1})}),a.view("user/user_edit",e)})})}),a.put("#/users/:user",function(a){a.api("/users/"+a.params.user,function(e){a.params.mail!==a.params.email+a.params.domain?a.params.mail=a.params.email+a.params.domain:a.params.mail="",a.params.email=a.params.domain="","string"==typeof a.params.mailalias&&(a.params.mailalias=[a.params.mailalias]),"string"==typeof a.params.mailforward&&(a.params.mailforward=[a.params.mailforward]),a.params.add_mailalias=a.arrayDiff(a.params.mailalias,e["mail-aliases"]),a.params.remove_mailalias=a.arrayDiff(e["mail-aliases"],a.params.mailalias),a.params.add_mailforward=a.arrayDiff(a.params.mailforward,e["mail-forward"]),a.params.remove_mailforward=a.arrayDiff(e["mail-forward"],a.params.mailforward),a.params.mailalias=a.params.mailforward="",params={},$.each(a.params.toHash(),function(a,e){e.length>0&&"user"!==a&&(params[a]=e)}),$.isEmptyObject(params)?(a.flash("fail",y18n.t("error_modify_something")),n.clear("slide"),a.redirect("#/users/"+a.params.user+"/edit")):params.password?params.password==params.confirmation?params.password.length<4?(a.flash("fail",y18n.t("password_too_short")),n.clear("slide"),a.redirect("#/users/"+a.params.user+"/edit")):(params.change_password=params.password,a.api("/users/"+a.params.user,function(e){a.redirect("#/users/"+a.params.user)},"PUT",params)):(a.flash("fail",y18n.t("passwords_dont_match")),n.clear("slide"),a.redirect("#/users/"+a.params.user+"/edit")):a.api("/users/"+a.params.user,function(e){a.redirect("#/users/"+a.params.user)},"PUT",params)},"GET")}),a.get("#/users/:user/delete",function(a){a.confirm(y18n.t("users"),y18n.t("confirm_delete",[a.params.user]),function(){a.api("/users/"+a.params.user,function(e){a.redirect("#/users")},"DELETE")},function(){n.clear("slide"),a.redirect("#/users/"+a.params.user)})}),a.get("#/domains",function(a){a.api("/domains",function(e){a.api("/domains/main",function(n){domains=[],$.each(e.domains,function(a,e){domains.push({url:e,main:e==n.current_main_domain?!0:!1})}),main_domain_form=domains.length>1?!0:!1,domains.sort(function(a,e){return-2*a.main+1}),a.view("domain/domain_list",{domains:domains,main_domain_form:main_domain_form})},"PUT")})}),a.get("#/domains/add",function(a){$.get("https://dyndns.yunohost.org/domains",function(){}).done(function(e){a.params.ddomains=e.map(function(a){return"."+a})}).fail(function(){a.params.ddomains=[".nohost.me",".noho.st"]}).always(function(){data={ddomains:a.params.ddomains,domains:a.params.domains,allowDyndnsDomain:!0};var e=data.ddomains.join("|");$.each(data.domains,function(a,n){n.search(e)>0&&(data.allowDyndnsDomain=!1)}),a.view("domain/domain_add",data)})}),a.post("#/domains/add",function(a){""===a.params.domain?(""===a.params.ddomain&&(a.flash("fail",y18n.t("error_select_domain")),n.clear("slide"),a.redirect("#/domains/add")),params={domain:a.params.ddomain+a.params["ddomain-ext"]},endurl="dyndns"):(params={domain:a.params.domain},endurl=""),a.api("/domains?"+endurl,function(e){a.redirect("#/domains")},"POST",params)}),a.get("#/domains/:domain/delete",function(a){a.confirm(y18n.t("domains"),y18n.t("confirm_delete",[a.params.domain]),function(){a.api("/domains/"+a.params.domain,function(e){n.clear("slide"),a.redirect("#/domains")},"DELETE")},function(){n.clear("slide"),a.redirect("#/domains")})}),a.post("#/domains",function(a){""===a.params.domain?(a.flash("fail",y18n.t("error_select_domain")),n.clear("slide"),a.redirect("#/domains")):a.confirm(y18n.t("domains"),y18n.t("confirm_change_maindomain"),function(){params={new_domain:a.params.domain},a.api("/domains/main",function(e){n.clear("slide"),a.redirect("#/domains")},"PUT",params),refreshDomain=window.setTimeout(function(){n.clear("slide"),a.redirect("#/domains")},15e3)},function(){n.clear("slide"),a.redirect("#/domains")})}),a.get("#/apps",function(a){a.api("/apps",function(e){data2={apps:[],installed_apps:!0},$.each(e.apps,function(a,e){e.installed&&data2.apps.push(e)}),a.arraySortById(data2.apps),a.view("app/app_list",data2)})}),a.get("#/apps/install",function(a){a.api("/apps",function(e){a.api("/apps?raw",function(n){data2={apps:[],installed_apps:!1},$.each(e.apps,function(a,e){e.installed&&"true"!=n[e.id].manifest.multi_instance||e.id.match(/__[0-9]{1,5}$/)||(e.install_link=!0,data2.apps.push(e))}),a.arraySortById(data2.apps),a.view("app/app_list",data2)})})}),a.get("#/apps/refresh",function(a){a.api("/appslists",function(e){a.redirect("#/apps/install")},"PUT")}),a.get("#/apps/:app",function(a){a.api("/apps/"+a.params.app+"?raw",function(e){e.settings.allowed_users=e.settings.allowed_users?e.settings.allowed_users.replace(",",", ")+".":y18n.t("everyone_has_access"),e.description="undefined"!=typeof e.manifest.description[y18n.locale]?e.manifest.description[y18n.locale]:e.manifest.description.en,e.manifest.multi_instance="true"==e.manifest.multi_instance?y18n.t("yes"):y18n.t("no");var n=new Date(1e3*e.settings.install_time);e.install_time=n.getDate()+"/"+(n.getMonth()+1)+"/"+n.getFullYear(),a.view("app/app_info",e)})}),a.get("#/apps/install/custom",function(a){a.redirect("#/apps/install")}),a.helper("appInstallForm",function(a,e,n){data={id:a,manifest:e},"undefined"!=typeof data.manifest.arguments.install&&$.each(data.manifest.arguments.install,function(a,e){data.manifest.arguments.install[a].type="undefined"!=typeof e.type?e.type:"string",data.manifest.arguments.install[a].inputType="text",data.manifest.arguments.install[a].required="undefined"!=typeof e.optional&&"true"==e.optional?"":"required","undefined"!=typeof data.manifest.arguments.install[a].choices&&$.each(data.manifest.arguments.install[a].choices,function(e,n){data.manifest.arguments.install[a].choices[e]={value:n,label:n,selected:n==data.manifest.arguments.install[a]["default"]?!0:!1}}),("domain"==e.name||"domain"==data.manifest.arguments.install[a].type)&&(data.manifest.arguments.install[a].choices=[],$.each(n.domains,function(e,n){data.manifest.arguments.install[a].choices.push({value:n,label:n,selected:!1})}),data.manifest.arguments.install[a].help=""+y18n.t("manage_domains")+""),("admin"==e.name||"user"==data.manifest.arguments.install[a].type)&&(data.manifest.arguments.install[a].choices=[],$.each(n.users,function(e,n){data.manifest.arguments.install[a].choices.push({value:e,label:n.fullname+" ("+n.mail+")",selected:!1})}),data.manifest.arguments.install[a].help=""+y18n.t("manage_users")+""),"app"==data.manifest.arguments.install[a].type&&(data.manifest.arguments.install[a].choices=[],$.each(n.apps,function(e,n){data.manifest.arguments.install[a].choices.push({value:n.id,label:n.name,selected:!1})}),data.manifest.arguments.install[a].help=""+y18n.t("manage_apps")+""),("password"==e.name||"password"==data.manifest.arguments.install[a].type)&&(data.manifest.arguments.install[a].inputType="password"),data.manifest.arguments.install[a].label="undefined"!=typeof data.manifest.arguments.install[a].ask[y18n.locale]?data.manifest.arguments.install[a].ask[y18n.locale]:data.manifest.arguments.install[a].ask.en}),data.description="undefined"!=typeof data.manifest.description[y18n.locale]?data.manifest.description[y18n.locale]:data.manifest.description.en,data.manifest.multi_instance="true"==data.manifest.multi_instance?y18n.t("yes"):y18n.t("no"),c.view("app/app_install",data)}),a.get("#/apps/install/:app",function(a){a.api("/apps?raw",function(e){a.appInstallForm(a.params.app,e[a.params.app].manifest,a.params)})}),a.post("#/apps",function(a){"/"!==a.params.path||confirm(y18n.t("confirm_install_domain_root",[a.params.domain]))?(params={label:a.params.label,app:a.params.app},delete a.params.label,delete a.params.app,params.args=a.serialize(a.params.toHash()),""===params.args&&delete params.args,a.api("/apps",function(){a.redirect("#/apps")},"POST",params)):(a.flash("warning",y18n.t("app_install_cancel")),n.clear("slide"),a.redirect("#/apps/install"))}),a.post("#/apps/install/custom",function(a){params={label:a.params.label,app:a.params.url},delete a.params.label,delete a.params.url,a.confirm(y18n.t("applications"),y18n.t("confirm_install_custom_app"),function(){params.app=params.app.replace(/\/?$/,"/"),jQuery.ajax({url:params.app.replace("github.com","raw.githubusercontent.com")+"master/manifest.json",type:"GET"}).done(function(e){e=jQuery.parseJSON(e)||{},a.appInstallForm(params.app,e,a.params)}).fail(function(e){a.flash("fail",y18n.t("app_install_custom_no_manifest")),n.clear("slide"),a.redirect("#/apps/install")})},function(){a.flash("warning",y18n.t("app_install_cancel")),n.clear("slide"),a.redirect("#/apps/install")})}),a.get("#/apps/:app/uninstall",function(a){a.confirm(y18n.t("applications"),y18n.t("confirm_uninstall",[a.params.app]),function(){a.api("/apps/"+a.params.app,function(){a.redirect("#/apps")},"DELETE")},function(){n.clear("slide"),a.redirect("#/apps/"+a.params.app)})}),a.get("#/apps/:app/access",function(a){a.api("/apps/"+a.params.app+"?raw",function(e){a.api("/users",function(n){"undefined"!=typeof e.settings.allowed_users?0===e.settings.allowed_users.length?e.settings.allowed_users=[]:e.settings.allowed_users=e.settings.allowed_users.split(","):(e.settings.allowed_users=[],e.settings.allow_everyone=!0),e.users=[],$.each(n.users,function(a,n){-1===e.settings.allowed_users.indexOf(a)?e.users.push({value:a,label:n.fullname+" ("+n.mail+")"}):e.settings.allowed_users[e.settings.allowed_users.indexOf(a)]={username:a,fullname:n.fullname,mail:n.mail}}),a.view("app/app_access",e)})})}),a.get("#/apps/:app/access/remove",function(a){a.confirm(y18n.t("applications"),y18n.t("confirm_access_remove_all",[a.params.app]),function(){params={apps:a.params.app,users:[]},a.api("/access?"+a.serialize(params),function(e){n.clear("slide"),a.redirect("#/apps/"+a.params.app+"/access")},"DELETE",params)},function(){n.clear("slide"),a.redirect("#/apps/"+a.params.app+"/access")})}),a.get("#/apps/:app/access/remove/:user",function(a){a.confirm(y18n.t("applications"),y18n.t("confirm_access_remove_user",[a.params.app,a.params.user]),function(){params={apps:a.params.app,users:a.params.user},a.api("/access?"+a.serialize(params),function(e){n.clear("slide"),a.redirect("#/apps/"+a.params.app+"/access")},"DELETE",params)},function(){n.clear("slide"),a.redirect("#/apps/"+a.params.app+"/access")})}),a.get("#/apps/:app/access/add",function(a){a.confirm(y18n.t("applications"),y18n.t("confirm_access_add",[a.params.app]),function(){params={apps:a.params.app,users:null},a.api("/access",function(){n.clear("slide"),a.redirect("#/apps/"+a.params.app+"/access")},"PUT",params)},function(){n.clear("slide"),a.redirect("#/apps/"+a.params.app+"/access")})}),a.post("#/apps/:app/access/add",function(a){params={users:a.params.user,apps:a.params.app},a.api("/access",function(){n.clear("slide"),a.redirect("#/apps/"+a.params.app+"/access")},"PUT",params)}),a.get("#/apps/:app/access/clear",function(a){a.confirm(y18n.t("applications"),y18n.t("confirm_access_clear",[a.params.app]),function(){params={apps:a.params.app},a.api("/access",function(){n.clear("slide"),a.redirect("#/apps/"+a.params.app+"/access")},"POST",params)},function(){n.clear("slide"),a.redirect("#/apps/"+a.params.app+"/access")})}),a.get("#/apps/:app/default",function(a){a.confirm(y18n.t("applications"),y18n.t("confirm_app_default"),function(){a.api("/apps/"+a.params.app+"/default",function(){n.clear("slide"),a.redirect("#/apps/"+a.params.app)},"PUT")},function(){n.clear("slide"),a.redirect("#/apps/"+a.params.app)})}),a.get("#/services",function(a){a.api("/services",function(e){data2={services:[]},$.each(e,function(a,e){e.name=a,e.is_loaded="enabled"==e.loaded?!0:!1,e.is_running="running"==e.status?!0:!1,data2.services.push(e)}),a.view("service/service_list",data2)})}),a.get("#/services/:service",function(a){a.api("/services/"+a.params.service,function(e){data2={service:e},data2.service.name=a.params.service,data2.service.is_loaded="enabled"==e.loaded?!0:!1,data2.service.is_running="running"==e.status?!0:!1,n.clear("slide"),a.view("service/service_info",data2)},"GET")}),a.get("#/services/:service/log",function(a){params={number:50},a.api("/services/"+a.params.service+"/log",function(e){data2={logs:[],name:a.params.service},$.each(e,function(a,e){data2.logs.push({filename:a,filecontent:e.join("\n")})}),a.view("service/service_log",data2)},"GET",params)}),a.get("#/services/:service/:action",function(a){a.confirm("Service",y18n.t("confirm_service_action",[y18n.t(a.params.action),a.params.service]),function(){var e=null,s=a.params.service;switch(a.params.action){case"start":e="PUT";break;case"stop":e="DELETE";break;case"enable":e="PUT",s+="/enable";break;case"disable":e="DELETE",s+="/enable";break;default:a.flash("fail",y18n.t("unknown_action",[a.params.action])),n.clear("slide"),a.redirect("#/services/"+a.params.service)}e&&s?a.api("/services/"+s,function(e){n.clear("slide"),a.redirect("#/services/"+a.params.service)},e):(n.clear("slide"),a.redirect("#/services/"+a.params.service))},function(){n.clear("slide"),a.redirect("#/services/"+a.params.service)})}),a.get("#/tools/firewall",function(a){a.api("/firewall?raw",function(e){var n={ports:{},upnp:!1};$.each(["ipv4","ipv6","uPnP"],function(a,s){$.each(["TCP","UDP"],function(a,t){n.ports[t]=n.ports[t]||{},$.each(e[s][t],function(a,e){n.ports[t][e]=n.ports[t][e]||{},n.ports[t][e][s]=!0})})}),n.upnp=e.uPnP.enabled,a.view("tools/tools_firewall",n)})}),a.get("#/tools/firewall/upnp/:action",function(a){a.confirm(y18n.t("firewall"),y18n.t("confirm_upnp_action",[y18n.t(a.params.action)]),function(){params={action:a.params.action},a.api("/firewall/upnp",function(e){n.clear("slide"),a.redirect("#/tools/firewall")},"GET",params)},function(){n.clear("slide"),a.redirect("#/tools/firewall")})}),a.helper("togglePort",function(a,e,s,t){var i=null,r=[],o=this;switch((a!=parseInt(a)||0>a||a>65535)&&(o.flash("fail",y18n.t("unknown_argument",[a])),n.clear("slide"),o.redirect("#/tools/firewall")),s){case"ipv4":r="ipv4_only";break;case"ipv6":r="ipv6_only"}switch(e){case"udp":e="UDP";break;case"both":e="Both";break;default:e="TCP"}switch(t){case"open":i="POST";break;case"close":i="DELETE";break;default:o.flash("fail",y18n.t("unknown_action",[t])),n.clear("slide"),o.redirect("#/tools/firewall")}if(null!==i&&null!==e&&null!==a){var l={port:a,protocol:e};o.api("/firewall/port?"+r,function(a){n.clear("slide"),o.redirect("#/tools/firewall")},i,l)}else n.clear("slide"),o.redirect("#/tools/firewall")}),a.get("#/tools/firewall/port/:port/:protocol/:connection/:action",function(a){a.confirm(y18n.t("firewall"),y18n.t("confirm_firewall",[y18n.t(a.params.action),a.params.port,y18n.t(a.params.protocol),y18n.t(a.params.connection)]),function(){a.togglePort(a.params.port,a.params.protocol,a.params.connection,a.params.action)},function(){n.clear("slide"),a.redirect("#/tools/firewall")})}),a.post("#/tools/firewall/port",function(a){a.confirm(y18n.t("firewall"),y18n.t("confirm_firewall",[y18n.t(a.params.action),a.params.port,y18n.t(a.params.protocol),y18n.t(a.params.connection)]),function(){a.togglePort(a.params.port,a.params.protocol,a.params.connection,a.params.action)},function(){n.clear("slide"),a.redirect("#/tools/firewall")})}),a.get("#/tools/monitor",function(a){monitorData={},a.api("/services/glances",function(e){monitorData.status=!0,"running"==e.status?a.api("/monitor/system",function(e){monitorData.system=e,a.api("/monitor/disk",function(e){monitorData.disk=e,a.api("/monitor/network",function(e){monitorData.network=e,delete monitorData.network.usage.lo,a.view("monitor/monitor",monitorData)})})}):(monitorData.status=!1,a.view("tools/tools_monitor",monitorData))},"GET")}),a.get("#/tools",function(a){a.view("tools/tools_list")}),a.get("#/tools/adminpw",function(a){a.view("tools/tools_adminpw")}),a.put("#/tools/adminpw",function(a){params={},$.each(a.params.toHash(),function(a,e){""!==e&&(params[a]=e)}),$.isEmptyObject(params)?(a.flash("fail",y18n.t("error_modify_something")),n.clear("slide"),a.redirect("#/tools/adminpw")):params.new_password!==params.confirm_new_password?(a.flash("fail",y18n.t("passwords_dont_match")),n.clear("slide"),a.redirect("#/tools/adminpw")):a.api("/login",function(e){delete params.old_password,delete params.confirm_new_password,a.api("/adminpw",function(e){a.redirect("#/logout")},"PUT",params)},"POST",{password:params.old_password},!1)}),a.get("#/tools/update",function(a){a.api("/update",function(e){packagesLength=e.packages.length;for(var n=0;n"),-1!=["moulinette","moulinette-yunohost","yunohost-admin","yunohost-config-nginx","ssowat","python"].indexOf(e.packages[n].name)&&(a.flash("warning",y18n.t("system_delayed_upgrade_warning",[e.packages[n].name])),e.packages[n].delayed=!0);a.view("tools/tools_update",e)},"PUT")}),a.get("#/tools/upgrade/:type",function(a){"apps"!==a.params.type&&"packages"!==a.params.type?(a.flash("fail",y18n.t("unknown_argument",[a.params.type])),n.clear("slide"),a.redirect("#/tools/update")):a.confirm(y18n.t("tools"),y18n.t("confirm_update_type",[y18n.t("system_"+a.params.type).toLowerCase()]),function(){endurl="","packages"==a.params.type?endurl="ignore_apps":"apps"==a.params.type&&(endurl="ignore_packages"),a.api("/upgrade?"+endurl,function(e){e.logs=e.log,a.view("tools/tools_upgrade",e)},"PUT")},function(){n.clear("slide"),a.redirect("#/tools/update")})}),a.get("#/tools/ca",function(a){a.view("tools/tools_ca")}),a.get("#/tools/security-feed",function(a){data={items:[]};var e="https://forum.yunohost.org",n="https://forum.yunohost.org/c/security",s="https://yunohost.org/security.rss";data.url={web:n,rss:s},$.ajax({url:s,dataType:"xml"}).done(function(n){$("item",n).each(function(a,n){var s=$("link",n)[0].innerHTML;"string"==typeof s&&""!==s&&"/"==s.charAt(0)&&(s=e+s);var t=$("description",n)[0].textContent;t=t.replace('href="/','href="'+e+"/");var i={guid:$("guid",n)[0].innerHTML,title:$("title",n)[0].innerHTML,url:s,desc:t,date:$("pubDate",n)[0].innerHTML.split(" +")[0]};data.items.push(i)}),a.view("tools/tools_security_feed",data)}).fail(function(){a.flash("fail",y18n.t("error_retrieve_feed",[s]))})}),a.get("#/backup",function(a){a.view("backup/backup")})});$.getJSON("locales/en.json",function(a){y18n.translations.en=a,y18n.translateInlineHTML()}),window.navigator&&window.navigator.language&&(y18n.locale=window.navigator.language.substr(0,2),"en"!==y18n.locale&&$.getJSON("locales/"+y18n.locale+".json",function(a){y18n.translations[y18n.locale]=a,y18n.translateInlineHTML()})),$(document).ready(function(){app.run("#/"),$("#slider-container").width(2*$("#slider").width()+"px"),$(window).resize(function(){$("#slideBack").css("display","none"),$("#slideTo").css("display","none"),$("#slider-container").width(2*$("#slider").width()+"px").removeClass("move").css("margin-left","0px")})}); \ No newline at end of file +var app=Sammy("#main",function(a){a.use("Handlebars","ms"),Handlebars.registerHelper("ucwords",function(a){return(a+"").replace(/^([a-z\u00E0-\u00FC])|\s+([a-z\u00E0-\u00FC])/g,function(a){return a.toUpperCase()})}),Handlebars.registerHelper("humanSize",function(a){var e=["Bytes","KB","MB","GB","TB"];if(0===a)return"n/a";var n=parseInt(Math.floor(Math.log(a)/Math.log(1024)));return Math.round(a/Math.pow(1024,n),2)+" "+e[[n]]}),Handlebars.registerHelper("humanTime",function(a){return Math.round(a)+"s"}),Handlebars.registerHelper("bitRate",function(a,e){var n=["b","Kb","Mb","Gb","Tb"];if(0===e)return"n/a";var s=a/e*8,t=parseInt(Math.floor(Math.log(s)/Math.log(1024)));return Math.round(s/Math.pow(1024,t),2)+" "+n[[t]]+"/s"}),Handlebars.registerHelper("t",function(a){var e=y18n.t(a,Array.prototype.slice.call(arguments,1));return new Handlebars.SafeString(e)});var e;e=Sammy.Store.isAvailable("session")?"session":Sammy.Store.isAvailable("cookie")?"cookie":"memory";var n=new Sammy.Store({name:"storage",type:e}),s=!1,t=3;a.helpers({serialize:function(a){var e=[];for(var n in a)a.hasOwnProperty(n)&&e.push(encodeURIComponent(n)+"="+encodeURIComponent(a[n]));return e.join("&")},flash:function(a,e){n.get("flash")||n.set("flash",!0),"fail"==a?alertClass="alert-danger":alertClass="alert-"+a,$("#flash .alert").last().hasClass(alertClass)?"log"==a?$("#flash .alert").last().append('

'+e+"

"):$("#flash .alert").last().append("

"+e+"

"):("log"==a?$("#flash").append('").show():$("#flash").append('").show(),$("#flash .alert").last().fadeIn()),document.body.scrollTop=document.documentElement.scrollTop=0,$("#flash .alert-log button.btn-small").on("click",function(){$("#flash .alert-log p:hidden").fadeIn(),$("#flash .alert-log div").hide()})},checkInstall:function(a){domain=window.location.hostname,$.ajax({dataType:"json",url:"https://"+domain+"/yunohost/api/installed",timeout:3e3}).success(function(e){a(e.installed)}).fail(function(){a(void 0)})},api:function(a,e,t,i,r){c=this,call=function(a,e,t,i){t="undefined"!=typeof t?t:"GET",i="undefined"!=typeof i?i:{},window.navigator&&window.navigator.language&&"undefined"==typeof i.locale&&(i.locale=y18n.locale||window.navigator.language.substr(0,2));var r=i;if("/postinstall"===a){var o=!1;setInterval(function(){o=!0},1500)}s=!1,0===$("div.loader").length&&setInterval(function(){s||0!==$("div.loader").length||$("#main").append('
')},500),jQuery.ajax({url:"https://"+n.get("url")+a,type:t,crossdomain:!0,data:i,traditional:!0,dataType:"json"}).always(function(a,e,n){}).done(function(a){a=a||{},e(a)}).fail(function(s){200==s.status?e({}):401==s.status?"/login"===a?c.flash("fail",y18n.t("wrong_password")):(c.flash("fail",y18n.t("unauthorized")),c.redirect("#/login")):"undefined"!=typeof s.responseJSON?c.flash("fail",s.responseJSON.error):"undefined"!=typeof s.responseText&&"/postinstall"!==a?c.flash("fail",s.responseText):"/postinstall"===a?o?(interval=window.location.hostname===r.domain?2e4:5e3,checkInstall=setInterval(function(){c.checkInstall(function(a){(a||"undefined"==typeof a)&&(c.flash("success",y18n.t("installation_complete")),clearInterval(checkInstall),window.location.href="https://"+window.location.hostname+"/yunohost/admin/")})},interval)):c.flash("fail",y18n.t("error_occured")):c.flash("fail",y18n.t("error_server")),"/postinstall"!==a&&(n.clear("slide"),c.redirect(n.get("path-1")))})},r="undefined"!=typeof r?r:!0,r?(ws=new WebSocket("wss://"+n.get("url")+"/messages"),ws.onmessage=function(a){$.each($.parseJSON(a.data),function(a,e){c.flash(a,e)})},ws.onerror=ws.onopen,ws.onclose=function(){n.clear("flash")},ws.onopen=call(a,e,t,i)):call(a,e,t,i)},view:function(a,e,t){if(t="undefined"!=typeof t?t:function(){},rendered=this.render("views/"+a+".ms",e),enableSlide=!0,s=!0,$("div.loader").remove(),$("#modal").modal("hide"),enableSlide){var i=function(){rendered.swap(function(){$(".slide, .btn-breadcrumb a:not(:last-child)").on("click",function(){$(this).addClass("active"),$(this).hasClass("back")||$(this).parent(".btn-breadcrumb").length?n.set("slide","back"):n.set("slide","to")}),t(),$("html, body").scrollTop(0)})};blockSize=$("#slider").width(),"back"==n.get("slide")?(n.clear("slide"),$("#slideBack").css("display","none"),$("#slider-container").removeClass("move").css("margin-left","-"+blockSize+"px"),$("#slideTo").show().html($("#main").html()),i(),$("#slider-container").addClass("move").css("margin-left","0px")):"to"==n.get("slide")?(n.clear("slide"),$("#slideTo").css("display","none"),$("#slider-container").removeClass("move").css("margin-left","-"+blockSize+"px"),$("#slider-container").removeClass("move").css("margin-left","0px"),$("#slideBack").show().html($("#main").html()),i(),$("#slider-container").addClass("move").css("margin-left","-"+blockSize+"px")):i()}else rendered.swap(function(){t(),$("html, body").scrollTop(0)})},confirm:function(a,e,n,s){return n="undefined"!=typeof n?n:function(){},s="undefined"!=typeof s?s:function(){},box=$("#modal"),"string"==typeof a&&a.length?$(".title",box).html(a):box.addClass("no-title"),$(".content",box).html(e),$("footer button",box).click(function(a){a.preventDefault(),box.removeClass("no-title").modal("hide"),"confirm"==$(this).data("action")?n():s()}),box.modal("show")},arraySortById:function(a){a.sort(function(a,e){return a.id>e.id?1:a.id'+y18n.t("read_more")+")";a.flash("warning",l),n.push(o.guid)}}),$.cookie("ynhSecurityViewedItems",n,{expire:7})}).fail(function(){a.flash("fail",y18n.t("error_retrieve_feed",[n]))}),a.view("home")})}),a.get("#/login",function(a){$("#masthead").show(),$(".logout-button").hide(),n.set("path-1","#/login"),0===$("div.loader").length&&setInterval(function(){s||0!==$("div.loader").length||$("#main").append('
')},500),a.checkInstall(function(e){e?(domain=window.location.hostname,$("div.loader").remove(),a.view("login",{domain:domain})):"undefined"==typeof e?t>0?(t--,s=!1,setTimeout(function(){a.redirect("#/")},5e3)):(t=3,$(document).ajaxError(function(e,n,s){200!==n.status&&a.flash("fail",y18n.t("api_not_responding",[n.status+" "+n.statusText])),$(document).off("ajaxError")}),s=!0,$("div.loader").remove()):($("div.loader").remove(),a.redirect("#/postinstall"))})}),a.post("#/login",function(a){n.set("url",a.params.domain+"/yunohost/api"),params={password:a.params.password},a.api("/login",function(e){n.set("connected",!0),$(".logout-button").fadeIn(),a.flash("success",y18n.t("logged_in")),n.get("path")?a.redirect(n.get("path")):a.redirect("#/")},"POST",params,!1)}),a.get("#/logout",function(a){a.api("/logout",function(e){n.clear("url"),n.clear("connected"),n.set("path","#/"),a.flash("success",y18n.t("logged_out")),a.redirect("#/login")},"GET",{},!1)}),a.get("#/postinstall",function(a){$("#masthead").hide(),a.checkInstall(function(e){e||"undefined"==typeof e?a.redirect("#/login"):a.view("postinstall/postinstall_1")})}),a.get("#/postinstall/domain",function(a){$("#masthead").hide(),$.get("https://dyndns.yunohost.org/domains",function(){}).done(function(e){a.params.ddomains=e.map(function(a){return"."+a})}).fail(function(){a.params.ddomains=[".nohost.me",".noho.st"]}).always(function(){a.view("postinstall/postinstall_2",a.params,function(){$("#domain, #ddomain").keyup(function(a){13==a.keyCode&&$("a.savedomain").click()}),$("a.savedomain").on("click",function(e){""===$("#domain").val()?""===$("#ddomain").val()?(e.preventDefault(),n.clear("slide"),a.flash("fail",y18n.t("error_select_domain"))):domain=$("#ddomain").val()+$('select[name="ddomain-ext"]').val():domain=$("#domain").val(),n.set("maindomain",domain)})})})}),a.get("#/postinstall/password",function(a){$("#masthead").hide(),$("#flash .alert").remove(),n.get("maindomain")?a.view("postinstall/postinstall_3",{domain:n.get("maindomain").toLowerCase()}):(n.clear("slide"),a.redirect("#/postinstall/domain"))}),a.post("#/postinstall",function(a){""===a.params.password||""===a.params.confirmation?a.flash("fail",y18n.t("password_empty")):a.params.password==a.params.confirmation?(""===a.params.domain?(a.flash("fail",y18n.t("error_select_domain")),n.clear("slide"),a.redirect("#/postinstall/domain")):params={domain:a.params.domain.toLowerCase()},a.confirm(y18n.t("postinstall"),y18n.t("confirm_postinstall",[a.params.domain]),function(){params.password=a.params.password,n.set("url",window.location.hostname+"/yunohost/api"),n.set("user","admin"),a.api("/postinstall",function(e){a.redirect("#/login")},"POST",params)},function(){})):a.flash("fail",y18n.t("passwords_dont_match"))}),a.get("#/users",function(a){a.api("/users",function(e){a.view("user/user_list",e)})}),a.get("#/users/create",function(a){a.api("/domains",function(e){a.view("user/user_create",e)})}),a.post("#/users",function(a){a.params.password==a.params.confirmation?a.params.password.length<4?(a.flash("fail",y18n.t("password_too_short")),n.clear("slide")):(a.params.mail=a.params.email+a.params.domain,a.api("/users",function(e){a.redirect("#/users")},"POST",a.params.toHash())):(a.flash("fail",y18n.t("passwords_dont_match")),n.clear("slide"))}),a.get("#/users/:user",function(a){a.api("/users/"+a.params.user,function(e){a.view("user/user_info",e)})}),a.get("#/users/:user/edit",function(a){a.api("/users/"+a.params.user,function(e){a.api("/domains",function(n){email=e.mail.split("@"),e.email={username:email[0],domain:email[1]},e.domains=[],$.each(n.domains,function(a,n){e.domains.push({domain:n,selected:n==e.email.domain?!0:!1})}),a.view("user/user_edit",e)})})}),a.put("#/users/:user",function(a){a.api("/users/"+a.params.user,function(e){a.params.mail!==a.params.email+a.params.domain?a.params.mail=a.params.email+a.params.domain:a.params.mail="",a.params.email=a.params.domain="","string"==typeof a.params.mailalias&&(a.params.mailalias=[a.params.mailalias]),"string"==typeof a.params.mailforward&&(a.params.mailforward=[a.params.mailforward]),a.params.add_mailalias=a.arrayDiff(a.params.mailalias,e["mail-aliases"]),a.params.remove_mailalias=a.arrayDiff(e["mail-aliases"],a.params.mailalias),a.params.add_mailforward=a.arrayDiff(a.params.mailforward,e["mail-forward"]),a.params.remove_mailforward=a.arrayDiff(e["mail-forward"],a.params.mailforward),a.params.mailalias=a.params.mailforward="",params={},$.each(a.params.toHash(),function(a,e){e.length>0&&"user"!==a&&(params[a]=e)}),$.isEmptyObject(params)?(a.flash("fail",y18n.t("error_modify_something")),n.clear("slide"),a.redirect("#/users/"+a.params.user+"/edit")):params.password?params.password==params.confirmation?params.password.length<4?(a.flash("fail",y18n.t("password_too_short")),n.clear("slide"),a.redirect("#/users/"+a.params.user+"/edit")):(params.change_password=params.password,a.api("/users/"+a.params.user,function(e){a.redirect("#/users/"+a.params.user)},"PUT",params)):(a.flash("fail",y18n.t("passwords_dont_match")),n.clear("slide"),a.redirect("#/users/"+a.params.user+"/edit")):a.api("/users/"+a.params.user,function(e){a.redirect("#/users/"+a.params.user)},"PUT",params)},"GET")}),a.get("#/users/:user/delete",function(a){a.confirm(y18n.t("users"),y18n.t("confirm_delete",[a.params.user]),function(){a.api("/users/"+a.params.user,function(e){a.redirect("#/users")},"DELETE")},function(){n.clear("slide"),a.redirect("#/users/"+a.params.user)})}),a.get("#/domains",function(a){a.api("/domains",function(e){a.api("/domains/main",function(n){domains=[],$.each(e.domains,function(a,e){domains.push({url:e,main:e==n.current_main_domain?!0:!1})}),main_domain_form=domains.length>1?!0:!1,domains.sort(function(a,e){return-2*a.main+1}),a.view("domain/domain_list",{domains:domains,main_domain_form:main_domain_form})},"PUT")})}),a.get("#/domains/add",function(a){$.get("https://dyndns.yunohost.org/domains",function(){}).done(function(e){a.params.ddomains=e.map(function(a){return"."+a})}).fail(function(){a.params.ddomains=[".nohost.me",".noho.st"]}).always(function(){data={ddomains:a.params.ddomains,domains:a.params.domains,allowDyndnsDomain:!0};var e=data.ddomains.join("|");$.each(data.domains,function(a,n){n.search(e)>0&&(data.allowDyndnsDomain=!1)}),a.view("domain/domain_add",data)})}),a.post("#/domains/add",function(a){""===a.params.domain?(""===a.params.ddomain&&(a.flash("fail",y18n.t("error_select_domain")),n.clear("slide"),a.redirect("#/domains/add")),params={domain:a.params.ddomain+a.params["ddomain-ext"]},endurl="dyndns"):(params={domain:a.params.domain},endurl=""),a.api("/domains?"+endurl,function(e){a.redirect("#/domains")},"POST",params)}),a.get("#/domains/:domain/delete",function(a){a.confirm(y18n.t("domains"),y18n.t("confirm_delete",[a.params.domain]),function(){a.api("/domains/"+a.params.domain,function(e){n.clear("slide"),a.redirect("#/domains")},"DELETE")},function(){n.clear("slide"),a.redirect("#/domains")})}),a.post("#/domains",function(a){""===a.params.domain?(a.flash("fail",y18n.t("error_select_domain")),n.clear("slide"),a.redirect("#/domains")):a.confirm(y18n.t("domains"),y18n.t("confirm_change_maindomain"),function(){params={new_domain:a.params.domain},a.api("/domains/main",function(e){n.clear("slide"),a.redirect("#/domains")},"PUT",params),refreshDomain=window.setTimeout(function(){n.clear("slide"),a.redirect("#/domains")},15e3)},function(){n.clear("slide"),a.redirect("#/domains")})}),a.get("#/apps",function(a){a.api("/apps",function(e){data2={apps:[],installed_apps:!0},$.each(e.apps,function(a,e){e.installed&&data2.apps.push(e)}),a.arraySortById(data2.apps),a.view("app/app_list",data2)})}),a.get("#/apps/install",function(a){a.api("/apps",function(e){a.api("/apps?raw",function(n){data2={apps:[],installed_apps:!1},$.each(e.apps,function(a,e){e.installed&&"true"!=n[e.id].manifest.multi_instance||e.id.match(/__[0-9]{1,5}$/)||(e.install_link=!0,data2.apps.push(e))}),a.arraySortById(data2.apps),a.view("app/app_list",data2)})})}),a.get("#/apps/refresh",function(a){a.api("/appslists",function(e){a.redirect("#/apps/install")},"PUT")}),a.get("#/apps/:app",function(a){a.api("/apps/"+a.params.app+"?raw",function(e){e.settings.allowed_users=e.settings.allowed_users?e.settings.allowed_users.replace(",",", ")+".":y18n.t("everyone_has_access"),e.description="undefined"!=typeof e.manifest.description[y18n.locale]?e.manifest.description[y18n.locale]:e.manifest.description.en,e.manifest.multi_instance="true"==e.manifest.multi_instance?y18n.t("yes"):y18n.t("no");var n=new Date(1e3*e.settings.install_time);e.install_time=n.getDate()+"/"+(n.getMonth()+1)+"/"+n.getFullYear(),a.view("app/app_info",e)})}),a.get("#/apps/install/custom",function(a){a.redirect("#/apps/install")}),a.helper("appInstallForm",function(a,e,n){data={id:a,manifest:e},"undefined"!=typeof data.manifest.arguments.install&&$.each(data.manifest.arguments.install,function(a,e){data.manifest.arguments.install[a].type="undefined"!=typeof e.type?e.type:"string",data.manifest.arguments.install[a].inputType="text",data.manifest.arguments.install[a].required="undefined"!=typeof e.optional&&"true"==e.optional?"":"required","undefined"!=typeof data.manifest.arguments.install[a].choices&&$.each(data.manifest.arguments.install[a].choices,function(e,n){data.manifest.arguments.install[a].choices[e]={value:n,label:n,selected:n==data.manifest.arguments.install[a]["default"]?!0:!1}}),("domain"==e.name||"domain"==data.manifest.arguments.install[a].type)&&(data.manifest.arguments.install[a].choices=[],$.each(n.domains,function(e,n){data.manifest.arguments.install[a].choices.push({value:n,label:n,selected:!1})}),data.manifest.arguments.install[a].help=""+y18n.t("manage_domains")+""),("admin"==e.name||"user"==data.manifest.arguments.install[a].type)&&(data.manifest.arguments.install[a].choices=[],$.each(n.users,function(e,n){data.manifest.arguments.install[a].choices.push({value:e,label:n.fullname+" ("+n.mail+")",selected:!1})}),data.manifest.arguments.install[a].help=""+y18n.t("manage_users")+""),"app"==data.manifest.arguments.install[a].type&&(data.manifest.arguments.install[a].choices=[],$.each(n.apps,function(e,n){data.manifest.arguments.install[a].choices.push({value:n.id,label:n.name,selected:!1})}),data.manifest.arguments.install[a].help=""+y18n.t("manage_apps")+""),("password"==e.name||"password"==data.manifest.arguments.install[a].type)&&(data.manifest.arguments.install[a].inputType="password"),data.manifest.arguments.install[a].label="undefined"!=typeof data.manifest.arguments.install[a].ask[y18n.locale]?data.manifest.arguments.install[a].ask[y18n.locale]:data.manifest.arguments.install[a].ask.en}),data.description="undefined"!=typeof data.manifest.description[y18n.locale]?data.manifest.description[y18n.locale]:data.manifest.description.en,data.manifest.multi_instance="true"==data.manifest.multi_instance?y18n.t("yes"):y18n.t("no"),c.view("app/app_install",data)}),a.get("#/apps/install/:app",function(a){a.api("/apps?raw",function(e){a.appInstallForm(a.params.app,e[a.params.app].manifest,a.params)})}),a.post("#/apps",function(a){"/"!==a.params.path||confirm(y18n.t("confirm_install_domain_root",[a.params.domain]))?(params={label:a.params.label,app:a.params.app},delete a.params.label,delete a.params.app,params.args=a.serialize(a.params.toHash()),""===params.args&&delete params.args,a.api("/apps",function(){a.redirect("#/apps")},"POST",params)):(a.flash("warning",y18n.t("app_install_cancel")),n.clear("slide"),a.redirect("#/apps/install"))}),a.post("#/apps/install/custom",function(a){params={label:a.params.label,app:a.params.url},delete a.params.label,delete a.params.url,a.confirm(y18n.t("applications"),y18n.t("confirm_install_custom_app"),function(){params.app=params.app.replace(/\/?$/,"/"),jQuery.ajax({url:params.app.replace("github.com","raw.githubusercontent.com")+"master/manifest.json",type:"GET"}).done(function(e){e=jQuery.parseJSON(e)||{},a.appInstallForm(params.app,e,a.params)}).fail(function(e){a.flash("fail",y18n.t("app_install_custom_no_manifest")),n.clear("slide"),a.redirect("#/apps/install")})},function(){a.flash("warning",y18n.t("app_install_cancel")),n.clear("slide"),a.redirect("#/apps/install")})}),a.get("#/apps/:app/uninstall",function(a){a.confirm(y18n.t("applications"),y18n.t("confirm_uninstall",[a.params.app]),function(){a.api("/apps/"+a.params.app,function(){a.redirect("#/apps")},"DELETE")},function(){n.clear("slide"),a.redirect("#/apps/"+a.params.app)})}),a.get("#/apps/:app/access",function(a){a.api("/apps/"+a.params.app+"?raw",function(e){a.api("/users",function(n){"undefined"!=typeof e.settings.allowed_users?0===e.settings.allowed_users.length?e.settings.allowed_users=[]:e.settings.allowed_users=e.settings.allowed_users.split(","):(e.settings.allowed_users=[],e.settings.allow_everyone=!0),e.users=[],$.each(n.users,function(a,n){-1===e.settings.allowed_users.indexOf(a)?e.users.push({value:a,label:n.fullname+" ("+n.mail+")"}):e.settings.allowed_users[e.settings.allowed_users.indexOf(a)]={username:a,fullname:n.fullname,mail:n.mail}}),a.view("app/app_access",e)})})}),a.get("#/apps/:app/access/remove",function(a){a.confirm(y18n.t("applications"),y18n.t("confirm_access_remove_all",[a.params.app]),function(){params={apps:a.params.app,users:[]},a.api("/access?"+a.serialize(params),function(e){n.clear("slide"),a.redirect("#/apps/"+a.params.app+"/access")},"DELETE",params)},function(){n.clear("slide"),a.redirect("#/apps/"+a.params.app+"/access")})}),a.get("#/apps/:app/access/remove/:user",function(a){a.confirm(y18n.t("applications"),y18n.t("confirm_access_remove_user",[a.params.app,a.params.user]),function(){params={apps:a.params.app,users:a.params.user},a.api("/access?"+a.serialize(params),function(e){n.clear("slide"),a.redirect("#/apps/"+a.params.app+"/access")},"DELETE",params)},function(){n.clear("slide"),a.redirect("#/apps/"+a.params.app+"/access")})}),a.get("#/apps/:app/access/add",function(a){a.confirm(y18n.t("applications"),y18n.t("confirm_access_add",[a.params.app]),function(){params={apps:a.params.app,users:null},a.api("/access",function(){n.clear("slide"),a.redirect("#/apps/"+a.params.app+"/access")},"PUT",params)},function(){n.clear("slide"),a.redirect("#/apps/"+a.params.app+"/access")})}),a.post("#/apps/:app/access/add",function(a){params={users:a.params.user,apps:a.params.app},a.api("/access",function(){n.clear("slide"),a.redirect("#/apps/"+a.params.app+"/access")},"PUT",params)}),a.get("#/apps/:app/access/clear",function(a){a.confirm(y18n.t("applications"),y18n.t("confirm_access_clear",[a.params.app]),function(){params={apps:a.params.app},a.api("/access",function(){n.clear("slide"),a.redirect("#/apps/"+a.params.app+"/access")},"POST",params)},function(){n.clear("slide"),a.redirect("#/apps/"+a.params.app+"/access")})}),a.get("#/apps/:app/default",function(a){a.confirm(y18n.t("applications"),y18n.t("confirm_app_default"),function(){a.api("/apps/"+a.params.app+"/default",function(){n.clear("slide"),a.redirect("#/apps/"+a.params.app)},"PUT")},function(){n.clear("slide"),a.redirect("#/apps/"+a.params.app)})}),a.get("#/services",function(a){a.api("/services",function(e){data2={services:[]},$.each(e,function(a,e){e.name=a,e.is_loaded="enabled"==e.loaded?!0:!1,e.is_running="running"==e.status?!0:!1,data2.services.push(e)}),a.view("service/service_list",data2)})}),a.get("#/services/:service",function(a){a.api("/services/"+a.params.service,function(e){data2={service:e},data2.service.name=a.params.service,data2.service.is_loaded="enabled"==e.loaded?!0:!1,data2.service.is_running="running"==e.status?!0:!1,n.clear("slide"),a.view("service/service_info",data2)},"GET")}),a.get("#/services/:service/log",function(a){params={number:50},a.api("/services/"+a.params.service+"/log",function(e){data2={logs:[],name:a.params.service},$.each(e,function(a,e){data2.logs.push({filename:a,filecontent:e.join("\n")})}),a.view("service/service_log",data2)},"GET",params)}),a.get("#/services/:service/:action",function(a){a.confirm("Service",y18n.t("confirm_service_action",[y18n.t(a.params.action),a.params.service]),function(){var e=null,s=a.params.service;switch(a.params.action){case"start":e="PUT";break;case"stop":e="DELETE";break;case"enable":e="PUT",s+="/enable";break;case"disable":e="DELETE",s+="/enable";break;default:a.flash("fail",y18n.t("unknown_action",[a.params.action])),n.clear("slide"),a.redirect("#/services/"+a.params.service)}e&&s?a.api("/services/"+s,function(e){n.clear("slide"),a.redirect("#/services/"+a.params.service)},e):(n.clear("slide"),a.redirect("#/services/"+a.params.service))},function(){n.clear("slide"),a.redirect("#/services/"+a.params.service)})}),a.get("#/tools/firewall",function(a){a.api("/firewall?raw",function(e){var n={ports:{},upnp:!1};$.each(["ipv4","ipv6","uPnP"],function(a,s){$.each(["TCP","UDP"],function(a,t){n.ports[t]=n.ports[t]||{},$.each(e[s][t],function(a,e){n.ports[t][e]=n.ports[t][e]||{},n.ports[t][e][s]=!0})})}),n.upnp=e.uPnP.enabled,a.view("tools/tools_firewall",n)})}),a.get("#/tools/firewall/upnp/:action",function(a){a.confirm(y18n.t("firewall"),y18n.t("confirm_upnp_action",[y18n.t(a.params.action)]),function(){params={action:a.params.action},a.api("/firewall/upnp",function(e){n.clear("slide"),a.redirect("#/tools/firewall")},"GET",params)},function(){n.clear("slide"),a.redirect("#/tools/firewall")})}),a.helper("togglePort",function(a,e,s,t){var i=null,r=[],o=this;switch((a!=parseInt(a)||0>a||a>65535)&&(o.flash("fail",y18n.t("unknown_argument",[a])),n.clear("slide"),o.redirect("#/tools/firewall")),s){case"ipv4":r="ipv4_only";break;case"ipv6":r="ipv6_only"}switch(e){case"udp":e="UDP";break;case"both":e="Both";break;default:e="TCP"}switch(t){case"open":i="POST";break;case"close":i="DELETE";break;default:o.flash("fail",y18n.t("unknown_action",[t])),n.clear("slide"),o.redirect("#/tools/firewall")}if(null!==i&&null!==e&&null!==a){var l={port:a,protocol:e};o.api("/firewall/port?"+r,function(a){n.clear("slide"),o.redirect("#/tools/firewall")},i,l)}else n.clear("slide"),o.redirect("#/tools/firewall")}),a.get("#/tools/firewall/port/:port/:protocol/:connection/:action",function(a){a.confirm(y18n.t("firewall"),y18n.t("confirm_firewall",[y18n.t(a.params.action),a.params.port,y18n.t(a.params.protocol),y18n.t(a.params.connection)]),function(){a.togglePort(a.params.port,a.params.protocol,a.params.connection,a.params.action)},function(){n.clear("slide"),a.redirect("#/tools/firewall")})}),a.post("#/tools/firewall/port",function(a){a.confirm(y18n.t("firewall"),y18n.t("confirm_firewall",[y18n.t(a.params.action),a.params.port,y18n.t(a.params.protocol),y18n.t(a.params.connection)]),function(){a.togglePort(a.params.port,a.params.protocol,a.params.connection,a.params.action)},function(){n.clear("slide"),a.redirect("#/tools/firewall")})}),a.get("#/tools/monitor",function(a){monitorData={},a.api("/services/glances",function(e){monitorData.status=!0,"running"==e.status?a.api("/monitor/system",function(e){monitorData.system=e,a.api("/monitor/disk",function(e){monitorData.disk=e,a.api("/monitor/network",function(e){monitorData.network=e,delete monitorData.network.usage.lo,a.view("monitor/monitor",monitorData)})})}):(monitorData.status=!1,a.view("tools/tools_monitor",monitorData))},"GET")}),a.get("#/tools",function(a){a.view("tools/tools_list")}),a.get("#/tools/adminpw",function(a){a.view("tools/tools_adminpw")}),a.put("#/tools/adminpw",function(a){params={},$.each(a.params.toHash(),function(a,e){""!==e&&(params[a]=e)}),$.isEmptyObject(params)?(a.flash("fail",y18n.t("error_modify_something")),n.clear("slide"),a.redirect("#/tools/adminpw")):params.new_password!==params.confirm_new_password?(a.flash("fail",y18n.t("passwords_dont_match")),n.clear("slide"),a.redirect("#/tools/adminpw")):a.api("/login",function(e){delete params.old_password,delete params.confirm_new_password,a.api("/adminpw",function(e){a.redirect("#/logout")},"PUT",params)},"POST",{password:params.old_password},!1)}),a.get("#/update",function(a){a.api("/update",function(e){packagesLength=e.packages.length;for(var n=0;n"),-1!=["moulinette","moulinette-yunohost","yunohost-admin","yunohost-config-nginx","ssowat","python"].indexOf(e.packages[n].name)&&(a.flash("warning",y18n.t("system_delayed_upgrade_warning",[e.packages[n].name])),e.packages[n].delayed=!0);a.view("update/update",e)},"PUT")}),a.get("#/upgrade/:type",function(a){"apps"!==a.params.type&&"packages"!==a.params.type?(a.flash("fail",y18n.t("unknown_argument",[a.params.type])),n.clear("slide"),a.redirect("#/update")):a.confirm(y18n.t("tools"),y18n.t("confirm_update_type",[y18n.t("system_"+a.params.type).toLowerCase()]),function(){endurl="","packages"==a.params.type?endurl="ignore_apps":"apps"==a.params.type&&(endurl="ignore_packages"),a.api("/upgrade?"+endurl,function(e){e.logs=e.log,a.view("upgrade/upgrade",e)},"PUT")},function(){n.clear("slide"),a.redirect("#/update")})}),a.get("#/tools/ca",function(a){a.view("tools/tools_ca")}),a.get("#/tools/security-feed",function(a){data={items:[]};var e="https://forum.yunohost.org",n="https://forum.yunohost.org/c/security",s="https://yunohost.org/security.rss";data.url={web:n,rss:s},$.ajax({url:s,dataType:"xml"}).done(function(n){$("item",n).each(function(a,n){var s=$("link",n)[0].innerHTML;"string"==typeof s&&""!==s&&"/"==s.charAt(0)&&(s=e+s);var t=$("description",n)[0].textContent;t=t.replace('href="/','href="'+e+"/");var i={guid:$("guid",n)[0].innerHTML,title:$("title",n)[0].innerHTML,url:s,desc:t,date:$("pubDate",n)[0].innerHTML.split(" +")[0]};data.items.push(i)}),a.view("tools/tools_security_feed",data)}).fail(function(){a.flash("fail",y18n.t("error_retrieve_feed",[s]))})}),a.get("#/backup",function(a){a.view("backup/backup")})});$.getJSON("locales/en.json",function(a){y18n.translations.en=a,y18n.translateInlineHTML()}),window.navigator&&window.navigator.language&&(y18n.locale=window.navigator.language.substr(0,2),"en"!==y18n.locale&&$.getJSON("locales/"+y18n.locale+".json",function(a){y18n.translations[y18n.locale]=a,y18n.translateInlineHTML()})),$(document).ready(function(){app.run("#/"),$("#slider-container").width(2*$("#slider").width()+"px"),$(window).resize(function(){$("#slideBack").css("display","none"),$("#slideTo").css("display","none"),$("#slider-container").width(2*$("#slider").width()+"px").removeClass("move").css("margin-left","0px")})}); \ No newline at end of file