jellyfin-web/dashboard-ui/scripts/serversecurity.js
Luke Pulverenti f7a9ffd6e9 update themes
2017-07-30 13:53:49 -04:00

1 line
2.6 KiB
JavaScript

define(["datetime","loading","libraryMenu","dom"],function(datetime,loading,libraryMenu,dom){"use strict";function revoke(page,key){require(["confirm"],function(confirm){confirm(Globalize.translate("MessageConfirmRevokeApiKey"),Globalize.translate("HeaderConfirmRevokeApiKey")).then(function(){loading.show(),ApiClient.ajax({type:"DELETE",url:ApiClient.getUrl("Auth/Keys/"+key)}).then(function(){loadData(page)})})})}function renderKeys(page,keys,users){var rows=keys.map(function(item){var html="";html+="<tr>",html+="<td>",html+='<button data-token="'+item.AccessToken+'" class="btnRevoke" data-mini="true" title="'+Globalize.translate("ButtonRevoke")+'" style="margin:0;">'+Globalize.translate("ButtonRevoke")+"</button>",html+="</td>",html+='<td style="vertical-align:middle;">',html+=item.AccessToken,html+="</td>",html+='<td style="vertical-align:middle;">',html+=item.AppName||"",html+="</td>",html+='<td style="vertical-align:middle;">',html+=item.DeviceName||"",html+="</td>",html+='<td style="vertical-align:middle;">';var user=users.filter(function(u){return u.Id==item.UserId})[0];user&&(html+=user.Name),html+="</td>",html+='<td style="vertical-align:middle;">';var date=datetime.parseISO8601Date(item.DateCreated,!0);return html+=datetime.toLocaleDateString(date)+" "+datetime.getDisplayTime(date),html+="</td>",html+="</tr>"}).join(""),resultBody=page.querySelector(".resultBody");resultBody.innerHTML=rows,loading.hide()}function loadData(page){loading.show(),ApiClient.getUsers().then(function(users){ApiClient.getJSON(ApiClient.getUrl("Auth/Keys")).then(function(result){renderKeys(page,result.Items,users)})})}function showNewKeyPrompt(page){require(["prompt"],function(prompt){prompt({title:Globalize.translate("HeaderNewApiKey"),label:Globalize.translate("LabelAppName"),description:Globalize.translate("LabelAppNameExample")}).then(function(value){ApiClient.ajax({type:"POST",url:ApiClient.getUrl("Auth/Keys",{App:value})}).then(function(){loadData(page)})})})}function getTabs(){return[{href:"dashboardhosting.html",name:Globalize.translate("TabHosting")},{href:"serversecurity.html",name:Globalize.translate("TabSecurity")}]}pageIdOn("pageinit","serverSecurityPage",function(){var page=this;page.querySelector(".btnNewKey").addEventListener("click",function(){showNewKeyPrompt(page)}),page.querySelector(".tblApiKeys").addEventListener("click",function(e){var btnRevoke=dom.parentWithClass(e.target,"btnRevoke");btnRevoke&&revoke(page,btnRevoke.getAttribute("data-token"))})}),pageIdOn("pagebeforeshow","serverSecurityPage",function(){libraryMenu.setTabs("adminadvanced",1,getTabs);var page=this;loadData(page)})});