mirror of
https://github.com/jellyfin/jellyfin-web.git
synced 2024-11-17 19:08:18 -07:00
update shared components
This commit is contained in:
parent
30db5a009c
commit
489dc97aab
@ -16,12 +16,12 @@
|
||||
},
|
||||
"devDependencies": {},
|
||||
"ignore": [],
|
||||
"version": "1.3.40",
|
||||
"_release": "1.3.40",
|
||||
"version": "1.3.41",
|
||||
"_release": "1.3.41",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "1.3.40",
|
||||
"commit": "f5d6ceea8a3fccab8b2794df5aabb78309ca57a5"
|
||||
"tag": "1.3.41",
|
||||
"commit": "b99e1de0001cc6c56af28b79cf0561f1cb25743f"
|
||||
},
|
||||
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
|
||||
"_target": "^1.2.0",
|
||||
|
55
dashboard-ui/bower_components/emby-webcomponents/strings/da.json
vendored
Normal file
55
dashboard-ui/bower_components/emby-webcomponents/strings/da.json
vendored
Normal file
@ -0,0 +1,55 @@
|
||||
{
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Del",
|
||||
"ServerUpdateNeeded": "Denne Emby server b\u00f8r opdateres. For at downloade den nyeste version bes\u00f8g venligst {0}",
|
||||
"LiveTvGuideRequiresUnlock": "Live TV Guiden er p\u00e5 nuv\u00e6rende tidspunkt begr\u00e6nset til {0} kanaler. Klik p\u00e5 \"L\u00e5s op\" knappen for at f\u00e5 mere at vide omkring hvordan du kan f\u00e5 den fulde oplevelse.",
|
||||
"AttributeNew": "Ny",
|
||||
"AttributePremiere": "Premiere",
|
||||
"AttributeLive": "Live",
|
||||
"TrackCount": "{0} numre",
|
||||
"ItemCount": "{0} elementer",
|
||||
"ValueSeriesYearToPresent": "{0}-Nu",
|
||||
"ReleaseYearValue": "Udgivelses\u00e5r: {0}",
|
||||
"OriginalAirDateValue": "Originalt sendt: {0}",
|
||||
"EndsAtValue": "Slutter {0}",
|
||||
"OptionSundayShort": "S\u00f8n.",
|
||||
"OptionMondayShort": "Man.",
|
||||
"OptionTuesdayShort": "Tirs.",
|
||||
"OptionWednesdayShort": "Ons.",
|
||||
"OptionThursdayShort": "Tors.",
|
||||
"OptionFridayShort": "Fre.",
|
||||
"OptionSaturdayShort": "L\u00f8r.",
|
||||
"HeaderSelectDate": "V\u00e6lg dato",
|
||||
"ButtonOk": "Ok",
|
||||
"ButtonCancel": "Annuller",
|
||||
"ButtonGotIt": "Forst\u00e5et",
|
||||
"RecordingScheduled": "Optagelse planlagt.",
|
||||
"HeaderNewRecording": "Ny optagelse",
|
||||
"Sunday": "S\u00f8ndag",
|
||||
"Monday": "Mandag",
|
||||
"Tuesday": "Tirsdag",
|
||||
"Wednesday": "Onsdag",
|
||||
"Thursday": "Torsdag",
|
||||
"Friday": "Fredag",
|
||||
"Saturday": "L\u00f8rdag",
|
||||
"Days": "Dage",
|
||||
"RecordSeries": "Optag serie",
|
||||
"LabelPrePaddingMinutes": "Start minutter f\u00f8r:",
|
||||
"LabelPostPaddingMinutes": "Stop optagelse minutter efter:",
|
||||
"RecordOnAllChannels": "Optag fra alle kanaler",
|
||||
"RecordAnytime": "Optag p\u00e5 ethvert tidspunkt",
|
||||
"RecordOnlyNewEpisodes": "Optag kun nye episoder",
|
||||
"HeaderBecomeProjectSupporter": "F\u00e5 Emby Premiere",
|
||||
"HeaderEnjoyDayTrial": "Nyd en 14-dages gratis pr\u00f8veperiode",
|
||||
"MessageActiveSubscriptionRequiredSeriesRecordings": "Et aktivt Emby Premiere abonnement er n\u00f8dvendigt for at oprette automatiserede optagelser af serier.",
|
||||
"OptionConvertRecordingsToStreamingFormat": "Konverter automatisk optagelser til et streamingvenligt format",
|
||||
"OptionConvertRecordingsToStreamingFormatHelp": "Optagelser vil l\u00f8bende blive konverteret til MP4 for nemmere afspilning p\u00e5 dine enheder.",
|
||||
"FeatureRequiresEmbyPremiere": "Denne funktion kr\u00e6ver et aktivt Emby Premiere abonnement.",
|
||||
"Record": "Optag",
|
||||
"Save": "Gem",
|
||||
"Edit": "Rediger",
|
||||
"Download": "Hent",
|
||||
"Advanced": "Avanceret",
|
||||
"Refresh": "Opdater",
|
||||
"RefreshQueued": "Opdatering sat i k\u00f8"
|
||||
}
|
@ -34,8 +34,8 @@
|
||||
"Saturday": "\u0441\u0435\u043d\u0431\u0456",
|
||||
"Days": "\u041a\u04af\u043d\u0434\u0435\u0440",
|
||||
"RecordSeries": "\u0422\u0435\u043b\u0435\u0445\u0438\u043a\u0430\u044f\u043d\u044b \u0436\u0430\u0437\u0443",
|
||||
"PrePaddingMinutes": "\u0410\u043b\u0493\u0430 \u0448\u0435\u0433\u0456\u043d\u0456\u0441, \u043c\u0438\u043d:",
|
||||
"PostPaddingMinutes": "\u0410\u0440\u0442\u049b\u0430 \u0448\u0435\u0433\u0456\u043d\u0456\u0441, \u043c\u0438\u043d",
|
||||
"LabelPrePaddingMinutes": "\u0410\u043b\u0493\u0430 \u0448\u0435\u0433\u0456\u043d\u0456\u0441, \u043c\u0438\u043d:",
|
||||
"LabelPostPaddingMinutes": "\u0410\u0440\u0442\u049b\u0430 \u0448\u0435\u0433\u0456\u043d\u0456\u0441, \u043c\u0438\u043d:",
|
||||
"RecordOnAllChannels": "\u0411\u0430\u0440\u043b\u044b\u049b \u0430\u0440\u043d\u0430\u043b\u0430\u0440\u0434\u0430\u043d \u0436\u0430\u0437\u044b\u043f \u0430\u043b\u0443",
|
||||
"RecordAnytime": "\u04d8\u0440 \u0443\u0430\u049b\u044b\u0442\u0442\u0430 \u0436\u0430\u0437\u044b\u043f \u0430\u043b\u0443",
|
||||
"RecordOnlyNewEpisodes": "\u0422\u0435\u043a \u049b\u0430\u043d\u0430 \u0436\u0430\u04a3\u0430 \u0431\u04e9\u043b\u0456\u043c\u0434\u0435\u0440\u0434\u0456 \u0436\u0430\u0437\u044b\u043f \u0430\u043b\u0443",
|
||||
@ -46,8 +46,10 @@
|
||||
"OptionConvertRecordingsToStreamingFormatHelp": "\u0416\u0430\u0437\u0431\u0430\u043b\u0430\u0440 \u049b\u04b1\u0440\u044b\u043b\u0493\u044b\u043b\u0430\u0440\u044b\u04a3\u044b\u0437\u0434\u0430 \u043e\u04a3\u0430\u0439 \u043e\u0439\u043d\u0430\u0442\u0443 \u04af\u0448\u0456\u043d \u043d\u0430\u049b\u0442\u044b \u0443\u0430\u049b\u044b\u0442\u0442\u0430 MP4 \u043f\u0456\u0448\u0456\u043c\u0456\u043d\u0435 \u0442\u04af\u0440\u043b\u0435\u043d\u0434\u0456\u0440\u0456\u043b\u0435\u0434\u0456.",
|
||||
"FeatureRequiresEmbyPremiere": "\u041e\u0441\u044b \u049b\u04b1\u0440\u0430\u043c\u0434\u0430\u0441 \u04af\u0448\u0456\u043d \u0431\u0435\u043b\u0441\u0435\u043d\u0434\u0456 Emby Premiere \u0436\u0430\u0437\u044b\u043b\u044b\u043c\u044b \u049b\u0430\u0436\u0435\u0442",
|
||||
"Record": "\u0416\u0430\u0437\u0443",
|
||||
"Save": "\u0421\u0430\u049b\u0442\u0430\u0443",
|
||||
"Edit": "\u04e8\u04a3\u0434\u0435\u0443",
|
||||
"Download": "\u0416\u04af\u043a\u0442\u0435\u043f \u0430\u043b\u0443",
|
||||
"Advanced": "\u041a\u0435\u04a3\u0435\u0439\u0442\u0456\u043b\u0433\u0435\u043d",
|
||||
"Refresh": "\u0416\u0430\u04a3\u0493\u044b\u0440\u0442\u0443",
|
||||
"RefreshQueued": "\u0416\u0430\u04a3\u0493\u044b\u0440\u0442\u0443 \u043a\u0435\u0437\u0435\u043a\u0442\u0435"
|
||||
"RefreshQueued": "\u0416\u0430\u04a3\u0493\u044b\u0440\u0442\u0443 \u043a\u0435\u0437\u0435\u043a\u0442\u0435."
|
||||
}
|
55
dashboard-ui/bower_components/emby-webcomponents/strings/nl.json
vendored
Normal file
55
dashboard-ui/bower_components/emby-webcomponents/strings/nl.json
vendored
Normal file
@ -0,0 +1,55 @@
|
||||
{
|
||||
"ValueSpecialEpisodeName": "Speciaal - {0}",
|
||||
"Share": "Delen",
|
||||
"ServerUpdateNeeded": "Deze Emby Server moet worden bijgewerkt. Om de laatste versie te downloaden, gaat u naar {0}",
|
||||
"LiveTvGuideRequiresUnlock": "De Live TV Gids is momenteel gelimiteerd tot {0} kanalen. Klik op de Geef vrij knop om te zien hoe u deze limiet op kunt heffen.",
|
||||
"AttributeNew": "Nieuw",
|
||||
"AttributePremiere": "Premi\u00e8re",
|
||||
"AttributeLive": "Live",
|
||||
"TrackCount": "{0} nummers",
|
||||
"ItemCount": "{0} items",
|
||||
"ValueSeriesYearToPresent": "{0}-Heden",
|
||||
"ReleaseYearValue": "Jaar van uitgifte: {0}",
|
||||
"OriginalAirDateValue": "Originele uitzenddatum: {0}",
|
||||
"EndsAtValue": "Eindigt om: {0}",
|
||||
"OptionSundayShort": "Zo",
|
||||
"OptionMondayShort": "Ma",
|
||||
"OptionTuesdayShort": "Di",
|
||||
"OptionWednesdayShort": "Wo",
|
||||
"OptionThursdayShort": "Do",
|
||||
"OptionFridayShort": "Vr",
|
||||
"OptionSaturdayShort": "Za",
|
||||
"HeaderSelectDate": "Selecteer Datum",
|
||||
"ButtonOk": "Ok",
|
||||
"ButtonCancel": "Annuleren",
|
||||
"ButtonGotIt": "Begrepen",
|
||||
"RecordingScheduled": "Opname schema",
|
||||
"HeaderNewRecording": "Nieuwe opname",
|
||||
"Sunday": "Zondag",
|
||||
"Monday": "Maandag",
|
||||
"Tuesday": "Dinsdag",
|
||||
"Wednesday": "Woensdag",
|
||||
"Thursday": "Donderdag",
|
||||
"Friday": "Vrijdag",
|
||||
"Saturday": "Zaterdag",
|
||||
"Days": "Dagen",
|
||||
"RecordSeries": "Series Opnemen",
|
||||
"LabelPrePaddingMinutes": "Tijd voor het programma (Minuten):",
|
||||
"LabelPostPaddingMinutes": "Tijd na het programma (Minuten):",
|
||||
"RecordOnAllChannels": "Op alle kanalen opnemen",
|
||||
"RecordAnytime": "Op elk tijdstip opnemen",
|
||||
"RecordOnlyNewEpisodes": "Alleen nieuwe afleveringen opnemen",
|
||||
"HeaderBecomeProjectSupporter": "Verkrijg Emby Premiere",
|
||||
"HeaderEnjoyDayTrial": "Geniet van een 14-daagse gratis proefversie",
|
||||
"MessageActiveSubscriptionRequiredSeriesRecordings": "Er is een actief Emby Premiere abonnement benodigd om een automatische serie opname aan te maken.",
|
||||
"OptionConvertRecordingsToStreamingFormat": "Opnamen automatisch converteren naar een streaming formaat",
|
||||
"OptionConvertRecordingsToStreamingFormatHelp": "Opnames zullen direct worden omgezet naar MP4 voor het eenvoudig afspelen op uw apparaten.",
|
||||
"FeatureRequiresEmbyPremiere": "Deze functie vereist een actieve Emby Premiere abonnement.",
|
||||
"Record": "Opnemen",
|
||||
"Save": "Opslaan",
|
||||
"Edit": "Bewerken",
|
||||
"Download": "Downloaden",
|
||||
"Advanced": "Geavanceerd",
|
||||
"Refresh": "Vernieuwen",
|
||||
"RefreshQueued": "Vernieuwen wachtrij"
|
||||
}
|
@ -34,8 +34,8 @@
|
||||
"Saturday": "\u0441\u0443\u0431\u0431\u043e\u0442\u0430",
|
||||
"Days": "\u0414\u043d\u0438",
|
||||
"RecordSeries": "\u0417\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0435\u0440\u0438\u0430\u043b",
|
||||
"PrePaddingMinutes": "\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043e\u0442\u0431\u0438\u0432\u043a\u0430, \u043c\u0438\u043d:",
|
||||
"PostPaddingMinutes": "\u041a\u043e\u043d\u0435\u0447\u043d\u0430\u044f \u043e\u0442\u0431\u0438\u0432\u043a\u0430, \u043c\u0438\u043d:",
|
||||
"LabelPrePaddingMinutes": "\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043e\u0442\u0431\u0438\u0432\u043a\u0430, \u043c\u0438\u043d:",
|
||||
"LabelPostPaddingMinutes": "\u041a\u043e\u043d\u0435\u0447\u043d\u0430\u044f \u043e\u0442\u0431\u0438\u0432\u043a\u0430, \u043c\u0438\u043d:",
|
||||
"RecordOnAllChannels": "\u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0441\u043e \u0432\u0441\u0435\u0445 \u043a\u0430\u043d\u0430\u043b\u043e\u0432",
|
||||
"RecordAnytime": "\u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u0435 \u0432\u0440\u0435\u043c\u044f",
|
||||
"RecordOnlyNewEpisodes": "\u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u043e\u0432\u044b\u0435 \u044d\u043f\u0438\u0437\u043e\u0434\u044b",
|
||||
@ -46,8 +46,10 @@
|
||||
"OptionConvertRecordingsToStreamingFormatHelp": "\u0417\u0430\u043f\u0438\u0441\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432 MP4 \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043d\u0430 \u0432\u0430\u0448\u0438\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445.",
|
||||
"FeatureRequiresEmbyPremiere": "\u0414\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0430 Emby Premiere.",
|
||||
"Record": "\u0417\u0430\u043f\u0438\u0441\u0430\u0442\u044c",
|
||||
"Save": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c",
|
||||
"Edit": "\u041f\u0440\u0430\u0432\u0438\u0442\u044c",
|
||||
"Download": "\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c",
|
||||
"Advanced": "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0435",
|
||||
"Refresh": "\u041f\u043e\u0434\u043d\u043e\u0432\u0438\u0442\u044c",
|
||||
"RefreshQueued": "\u041f\u043e\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438"
|
||||
"RefreshQueued": "\u041f\u043e\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438."
|
||||
}
|
@ -264,7 +264,7 @@ define(['browser'], function (browser) {
|
||||
currentUrls = [];
|
||||
}
|
||||
|
||||
if (enableAnimation() && !browser.animate) {
|
||||
if (enableAnimation() && !document.documentElement.animate) {
|
||||
require(['webAnimations']);
|
||||
}
|
||||
|
||||
|
@ -30,14 +30,14 @@
|
||||
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
|
||||
},
|
||||
"ignore": [],
|
||||
"homepage": "https://github.com/PolymerElements/iron-a11y-keys-behavior",
|
||||
"homepage": "https://github.com/polymerelements/iron-a11y-keys-behavior",
|
||||
"_release": "1.1.2",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "v1.1.2",
|
||||
"commit": "0c2330c229a6fd3d200e2b84147ec6f94f17c22d"
|
||||
},
|
||||
"_source": "git://github.com/PolymerElements/iron-a11y-keys-behavior.git",
|
||||
"_source": "git://github.com/polymerelements/iron-a11y-keys-behavior.git",
|
||||
"_target": "^1.0.0",
|
||||
"_originalSource": "PolymerElements/iron-a11y-keys-behavior"
|
||||
"_originalSource": "polymerelements/iron-a11y-keys-behavior"
|
||||
}
|
@ -32,14 +32,14 @@
|
||||
"web-component-tester": "^4.0.0",
|
||||
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
|
||||
},
|
||||
"homepage": "https://github.com/polymerelements/iron-icon",
|
||||
"homepage": "https://github.com/PolymerElements/iron-icon",
|
||||
"_release": "1.0.8",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "v1.0.8",
|
||||
"commit": "f36b38928849ef3853db727faa8c9ef104d611eb"
|
||||
},
|
||||
"_source": "git://github.com/polymerelements/iron-icon.git",
|
||||
"_source": "git://github.com/PolymerElements/iron-icon.git",
|
||||
"_target": "^1.0.0",
|
||||
"_originalSource": "polymerelements/iron-icon"
|
||||
"_originalSource": "PolymerElements/iron-icon"
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "iron-menu-behavior",
|
||||
"version": "1.1.6",
|
||||
"version": "1.1.7",
|
||||
"description": "Provides accessible menu behavior",
|
||||
"authors": "The Polymer Authors",
|
||||
"keywords": [
|
||||
@ -34,11 +34,11 @@
|
||||
"web-component-tester": "^4.0.0",
|
||||
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
|
||||
},
|
||||
"_release": "1.1.6",
|
||||
"_release": "1.1.7",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "v1.1.6",
|
||||
"commit": "940c2769c7d6fefd5685e0200c3dfd0742c2a52f"
|
||||
"tag": "v1.1.7",
|
||||
"commit": "ea59e6ce5644d8f7a20c22f13f614ea60604a812"
|
||||
},
|
||||
"_source": "git://github.com/polymerelements/iron-menu-behavior.git",
|
||||
"_target": "^1.0.0",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "iron-menu-behavior",
|
||||
"version": "1.1.6",
|
||||
"version": "1.1.7",
|
||||
"description": "Provides accessible menu behavior",
|
||||
"authors": "The Polymer Authors",
|
||||
"keywords": [
|
||||
|
@ -128,7 +128,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||
var attr = this.attrForItemTitle || 'textContent';
|
||||
var title = item[attr] || item.getAttribute(attr);
|
||||
|
||||
if (!item.hasAttribute('disabled') && title &&
|
||||
if (!item.hasAttribute('disabled') && title &&
|
||||
title.trim().charAt(0).toLowerCase() === String.fromCharCode(event.keyCode).toLowerCase()) {
|
||||
this._setFocusedItem(item);
|
||||
break;
|
||||
@ -209,17 +209,8 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||
* detail.
|
||||
*/
|
||||
_onIronItemsChanged: function(event) {
|
||||
var mutations = event.detail;
|
||||
var mutation;
|
||||
var index;
|
||||
|
||||
for (index = 0; index < mutations.length; ++index) {
|
||||
mutation = mutations[index];
|
||||
|
||||
if (mutation.addedNodes.length) {
|
||||
this._resetTabindices();
|
||||
break;
|
||||
}
|
||||
if (event.detail.addedNodes.length) {
|
||||
this._resetTabindices();
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -338,6 +338,47 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
test('`tabIndex` properties of all items are updated when items change', function(done) {
|
||||
var menu = fixture('basic');
|
||||
|
||||
function assertTabIndexCounts(nodes, expected) {
|
||||
var tabIndexCounts = {};
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
var tabIndex = nodes[i].tabIndex;
|
||||
if (tabIndexCounts[tabIndex]) {
|
||||
tabIndexCounts[tabIndex]++;
|
||||
} else {
|
||||
tabIndexCounts[tabIndex] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
assert.equal(Object.keys(tabIndexCounts).length, Object.keys(expected).length);
|
||||
Object.keys(expected).forEach(function(key) {
|
||||
assert.equal(tabIndexCounts[key], expected[key]);
|
||||
});
|
||||
}
|
||||
|
||||
function divWithTabIndex(tabIndex) {
|
||||
var div = document.createElement('div');
|
||||
div.tabIndex = tabIndex;
|
||||
return div;
|
||||
}
|
||||
|
||||
// Only the selected item will have tabIndex 0.
|
||||
menu.select(0);
|
||||
assertTabIndexCounts(menu.items, {"-1": 2, "0": 1});
|
||||
|
||||
Polymer.dom(menu).appendChild(divWithTabIndex(1));
|
||||
Polymer.dom(menu).appendChild(divWithTabIndex(2));
|
||||
Polymer.dom(menu).appendChild(divWithTabIndex(3));
|
||||
|
||||
// Async wait for `observeNodes`.
|
||||
Polymer.Base.async(function() {
|
||||
assertTabIndexCounts(menu.items, {"-1": 5, "0": 1});
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
@ -28,14 +28,14 @@
|
||||
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
|
||||
},
|
||||
"ignore": [],
|
||||
"homepage": "https://github.com/PolymerElements/iron-resizable-behavior",
|
||||
"homepage": "https://github.com/polymerelements/iron-resizable-behavior",
|
||||
"_release": "1.0.3",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "v1.0.3",
|
||||
"commit": "dda1df6aaf452aedf3e52ff0cf69e72439452216"
|
||||
},
|
||||
"_source": "git://github.com/PolymerElements/iron-resizable-behavior.git",
|
||||
"_source": "git://github.com/polymerelements/iron-resizable-behavior.git",
|
||||
"_target": "^1.0.0",
|
||||
"_originalSource": "PolymerElements/iron-resizable-behavior"
|
||||
"_originalSource": "polymerelements/iron-resizable-behavior"
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "iron-selector",
|
||||
"version": "1.5.1",
|
||||
"version": "1.5.2",
|
||||
"description": "Manages a set of elements that can be selected",
|
||||
"private": true,
|
||||
"license": "http://polymer.github.io/LICENSE.txt",
|
||||
@ -30,11 +30,11 @@
|
||||
"web-component-tester": "^4.0.0",
|
||||
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
|
||||
},
|
||||
"_release": "1.5.1",
|
||||
"_release": "1.5.2",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "v1.5.1",
|
||||
"commit": "e3e34408fad8f7cde59c4255cf3fe90f7dcf91d8"
|
||||
"tag": "v1.5.2",
|
||||
"commit": "18e8e12dcd9a4560de480562f65935feed334b86"
|
||||
},
|
||||
"_source": "git://github.com/PolymerElements/iron-selector.git",
|
||||
"_target": "^1.0.0",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "iron-selector",
|
||||
"version": "1.5.1",
|
||||
"version": "1.5.2",
|
||||
"description": "Manages a set of elements that can be selected",
|
||||
"private": true,
|
||||
"license": "http://polymer.github.io/LICENSE.txt",
|
||||
|
@ -38,8 +38,8 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||
|
||||
/**
|
||||
* Fired when the list of selectable items changes (e.g., items are
|
||||
* added or removed). The detail of the event is a list of mutation
|
||||
* records that describe what changed.
|
||||
* added or removed). The detail of the event is a mutation record that
|
||||
* describes what changed.
|
||||
*
|
||||
* @event iron-items-changed
|
||||
*/
|
||||
@ -346,7 +346,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||
|
||||
// observe items change under the given node.
|
||||
_observeItems: function(node) {
|
||||
return Polymer.dom(node).observeNodes(function(mutations) {
|
||||
return Polymer.dom(node).observeNodes(function(mutation) {
|
||||
this._updateItems();
|
||||
|
||||
if (this._shouldUpdateSelection) {
|
||||
@ -355,7 +355,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||
|
||||
// Let other interested parties know about the change so that
|
||||
// we don't have to recreate mutation observers everywhere.
|
||||
this.fire('iron-items-changed', mutations, {
|
||||
this.fire('iron-items-changed', mutation, {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
});
|
||||
|
@ -196,8 +196,12 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||
|
||||
newItem.id = 'item999';
|
||||
|
||||
s2.addEventListener('iron-items-changed', function() {
|
||||
s2.addEventListener('iron-items-changed', function(event) {
|
||||
changeCount++;
|
||||
var mutation = event.detail;
|
||||
assert.notEqual(mutation, undefined);
|
||||
assert.notEqual(mutation.addedNodes, undefined);
|
||||
assert.notEqual(mutation.removedNodes, undefined);
|
||||
});
|
||||
|
||||
Polymer.dom(s2).appendChild(newItem);
|
||||
|
@ -12,7 +12,7 @@
|
||||
<label for="selectLanguage" class="selectLabel">${LabelLanguage}</label>
|
||||
<select autofocus id="selectLanguage" required="required" data-mini="true"></select>
|
||||
</div>
|
||||
<button is="paper-icon-button-light" title="${ButtonSearch}" class="btnSearchSubtitles"><iron-icon icon="search"></iron-icon></button>
|
||||
<button type="button" is="paper-icon-button-light" title="${ButtonSearch}" class="btnSearchSubtitles"><iron-icon icon="search"></iron-icon></button>
|
||||
</form>
|
||||
<br />
|
||||
<div class="subtitleResults"></div>
|
||||
|
@ -108,8 +108,10 @@ define(['browser'], function (browser) {
|
||||
// The views need to be updated to start loading data in beforeshow, but not render until show
|
||||
document.dispatchEvent(new CustomEvent('scroll', {}));
|
||||
|
||||
$.mobile = $.mobile || {};
|
||||
$.mobile.activePage = view;
|
||||
if (window.$) {
|
||||
$.mobile = $.mobile || {};
|
||||
$.mobile.activePage = view;
|
||||
}
|
||||
|
||||
resolve(view);
|
||||
});
|
||||
@ -353,8 +355,10 @@ define(['browser'], function (browser) {
|
||||
// The views need to be updated to start loading data in beforeshow, but not render until show
|
||||
document.dispatchEvent(new CustomEvent('scroll', {}));
|
||||
|
||||
$.mobile = $.mobile || {};
|
||||
$.mobile.activePage = view;
|
||||
if (window.$) {
|
||||
$.mobile = $.mobile || {};
|
||||
$.mobile.activePage = view;
|
||||
}
|
||||
|
||||
return view;
|
||||
});
|
||||
|
@ -221,14 +221,6 @@
|
||||
width: 30px;
|
||||
}
|
||||
|
||||
.criticRating {
|
||||
display: inline-block;
|
||||
margin-left: 1px;
|
||||
position: relative;
|
||||
top: -1px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.criticRatingScore {
|
||||
margin-bottom: .5em;
|
||||
}
|
||||
|
@ -226,13 +226,13 @@
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.libraryViewNav .pageTabButton:hover {
|
||||
/*.libraryViewNav .pageTabButton:hover {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.libraryViewNav .pageTabButton:active {
|
||||
background-color: rgba(100,100,100, 0.20);
|
||||
}
|
||||
}*/
|
||||
|
||||
.libraryViewNav .pageTabButton:focus {
|
||||
font-weight: 500 !important;
|
||||
|
@ -57,13 +57,13 @@ body:not(.dashboardDocument) .mainDrawerButton {
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
.libraryViewNav .pageTabButton.is-active:after {
|
||||
display: none !important;
|
||||
}
|
||||
.pageTabButton.is-active .pageTabButtonSelectionBar {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.libraryViewNav .pageTabButton.is-active {
|
||||
color: #52B54B !important;
|
||||
}
|
||||
.libraryViewNav .pageTabButton.is-active {
|
||||
color: #52B54B !important;
|
||||
}
|
||||
|
||||
.ui-body-b .paperList:not(.criticReviewPaperList) {
|
||||
background-color: transparent;
|
||||
|
@ -9,14 +9,14 @@
|
||||
font-size: 220%;
|
||||
}
|
||||
|
||||
.libraryViewNav .mdl-tabs__tab {
|
||||
font-weight: 400 !important;
|
||||
}
|
||||
|
||||
.background-theme-b, .dialog.background-theme-b {
|
||||
background: #161616;
|
||||
}
|
||||
|
||||
.pageTabButton.is-active .pageTabButtonSelectionBar {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.libraryViewNav .pageTabButton.is-active {
|
||||
color: #52B54B !important;
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
<div id="loginPage" data-role="page" class="page standalonePage" data-theme="b" data-require="scripts/loginpage,humanedate,paper-input,paper-button">
|
||||
<div id="loginPage" data-role="page" class="page standalonePage" data-theme="b">
|
||||
|
||||
<div data-role="content">
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
<paper-button raised class="accent block"><iron-icon icon="check"></iron-icon><span>${ButtonSignIn}</span></paper-button>
|
||||
</button>
|
||||
<div style="margin-top:.5em;">
|
||||
<paper-button raised class="cancel block btnCancel" onclick="LoginPage.cancelLogin();"><iron-icon icon="close"></iron-icon><span>${ButtonCancel}</span></paper-button>
|
||||
<paper-button raised class="cancel block btnCancel"><iron-icon icon="close"></iron-icon><span>${ButtonCancel}</span></paper-button>
|
||||
</div>
|
||||
<br />
|
||||
<br />
|
||||
@ -32,12 +32,12 @@
|
||||
<br />
|
||||
|
||||
<div class="readOnlyContent" style="margin: 2em auto 0;">
|
||||
<paper-button raised class="cancel block" onclick="LoginPage.showManualForm(jQuery.mobile.activePage, true);"><iron-icon icon="lock"></iron-icon><span>${ButtonManualLogin}</span></paper-button>
|
||||
<paper-button raised class="cancel block btnManual"><iron-icon icon="lock"></iron-icon><span>${ButtonManualLogin}</span></paper-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="readOnlyContent" style="margin: .5em auto 1em;">
|
||||
<paper-button raised class="cancel block btnForgotPassword" onclick="LoginPage.cancelLogin();"><iron-icon icon="info"></iron-icon><span>${ButtonForgotPassword}</span></paper-button>
|
||||
<paper-button raised class="cancel block btnForgotPassword"><iron-icon icon="info"></iron-icon><span>${ButtonForgotPassword}</span></paper-button>
|
||||
|
||||
<div class="connectButtons" style="display:none;">
|
||||
<a href="selectserver.html" class="clearLink">
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
<div class="fldSyncPath hide">
|
||||
<paper-input type="text" id="txtSyncPath" label="${LabelSyncPath}" style="display:inline-block;width:80%;"></paper-input>
|
||||
<button is="paper-icon-button-light" class="btnSelectSyncPath"><iron-icon icon="search"></iron-icon></button>
|
||||
<button type="button" is="paper-icon-button-light" class="btnSelectSyncPath"><iron-icon icon="search"></iron-icon></button>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
|
@ -249,9 +249,9 @@
|
||||
|
||||
}
|
||||
|
||||
function scrollToNode(page, id) {
|
||||
function scrollToNode(id) {
|
||||
|
||||
var elem = $('#' + id, page)[0];
|
||||
var elem = $('#' + id)[0];
|
||||
|
||||
if (elem) {
|
||||
// commenting out for now because it's causing the whole window to scroll in chrome
|
||||
@ -365,7 +365,7 @@
|
||||
|
||||
setTimeout(function () {
|
||||
|
||||
scrollToNode($.mobile.activePage, selectedNodeId);
|
||||
scrollToNode(selectedNodeId);
|
||||
}, 500);
|
||||
}
|
||||
}
|
||||
|
@ -1252,7 +1252,7 @@
|
||||
hideSelections();
|
||||
break;
|
||||
case 'groupvideos':
|
||||
combineVersions($.mobile.activePage, items);
|
||||
combineVersions(parentWithClass(e.target, 'page'), items);
|
||||
break;
|
||||
case 'markplayed':
|
||||
items.forEach(function (itemId) {
|
||||
|
@ -22,7 +22,7 @@
|
||||
html += '<button is="paper-icon-button-light" class="btnCast headerButton headerButtonRight hide"><iron-icon icon="cast"></iron-icon></button>';
|
||||
|
||||
if (AppInfo.enableSearchInTopMenu) {
|
||||
html += '<button is="paper-icon-button-light" class=headerButton headerButtonRight headerSearchButton hide" onclick="Search.showSearchPanel();"><iron-icon icon="search"></iron-icon></button>';
|
||||
html += '<button type="button" is="paper-icon-button-light" class=headerButton headerButtonRight headerSearchButton hide" onclick="Search.showSearchPanel();"><iron-icon icon="search"></iron-icon></button>';
|
||||
html += '<div class="viewMenuSearch hide">';
|
||||
html += '<form class="viewMenuSearchForm">';
|
||||
html += '<input type="text" data-role="none" data-type="search" class="headerSearchInput" autocomplete="off" spellcheck="off" />';
|
||||
|
@ -1,135 +1,104 @@
|
||||
var LoginPage = {
|
||||
define(['jQuery'], function ($) {
|
||||
|
||||
getApiClient: function () {
|
||||
var LoginPage = {
|
||||
|
||||
var serverId = getParameterByName('serverid');
|
||||
showVisualForm: function (page) {
|
||||
$('.visualLoginForm', page).show();
|
||||
$('.manualLoginForm', page).hide();
|
||||
},
|
||||
|
||||
return new Promise(function (resolve, reject) {
|
||||
getLastSeenText: function (lastActivityDate) {
|
||||
|
||||
if (serverId) {
|
||||
resolve(ConnectionManager.getOrCreateApiClient(serverId));
|
||||
|
||||
} else {
|
||||
resolve(ApiClient);
|
||||
if (!lastActivityDate) {
|
||||
return "";
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
onPageShow: function () {
|
||||
return "Last seen " + humane_date(lastActivityDate);
|
||||
},
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
authenticateUserByName: function (page, apiClient, username, password) {
|
||||
|
||||
var page = this;
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
LoginPage.getApiClient().then(function (apiClient) {
|
||||
apiClient.authenticateUserByName(username, password).then(function (result) {
|
||||
|
||||
apiClient.getPublicUsers().then(function (users) {
|
||||
var user = result.User;
|
||||
|
||||
var showManualForm = !users.length;
|
||||
var serverId = getParameterByName('serverid');
|
||||
|
||||
if (showManualForm) {
|
||||
|
||||
LoginPage.showManualForm(page, false, false);
|
||||
var newUrl;
|
||||
|
||||
if (user.Policy.IsAdministrator && !serverId) {
|
||||
newUrl = "dashboard.html";
|
||||
} else {
|
||||
|
||||
LoginPage.showVisualForm(page);
|
||||
LoginPage.loadUserList(page, apiClient, users);
|
||||
newUrl = "home.html";
|
||||
}
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
|
||||
Dashboard.onServerChanged(user.Id, result.AccessToken, apiClient);
|
||||
Dashboard.navigate(newUrl);
|
||||
|
||||
}, function () {
|
||||
|
||||
$('#pw', page).val('');
|
||||
$('#txtManualName', page).val('');
|
||||
$('#txtManualPassword', page).val('');
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
|
||||
setTimeout(function () {
|
||||
require(['toast'], function (toast) {
|
||||
toast(Globalize.translate('MessageInvalidUser'));
|
||||
});
|
||||
}, 300);
|
||||
});
|
||||
|
||||
apiClient.getJSON(apiClient.getUrl('Branding/Configuration')).then(function (options) {
|
||||
}
|
||||
|
||||
$('.disclaimer', page).html(options.LoginDisclaimer || '');
|
||||
});
|
||||
};
|
||||
|
||||
function getApiClient() {
|
||||
|
||||
var serverId = getParameterByName('serverid');
|
||||
|
||||
if (serverId) {
|
||||
return Promise.resolve(ConnectionManager.getOrCreateApiClient(serverId));
|
||||
|
||||
} else {
|
||||
return Promise.resolve(ApiClient);
|
||||
}
|
||||
}
|
||||
|
||||
function onManualSubmit() {
|
||||
var page = $(this).parents('.page');
|
||||
|
||||
getApiClient().then(function (apiClient) {
|
||||
LoginPage.authenticateUserByName(page, apiClient, $('#txtManualName', page).val(), $('#txtManualPassword', page).val());
|
||||
});
|
||||
|
||||
if (Dashboard.isConnectMode()) {
|
||||
$('.connectButtons', page).show();
|
||||
} else {
|
||||
$('.connectButtons', page).hide();
|
||||
}
|
||||
},
|
||||
// Disable default form submission
|
||||
return false;
|
||||
}
|
||||
|
||||
cancelLogin: function () {
|
||||
|
||||
LoginPage.showVisualForm($.mobile.activePage);
|
||||
},
|
||||
|
||||
showManualForm: function (page, showCancel, focusPassword) {
|
||||
$('.visualLoginForm', page).hide();
|
||||
$('.manualLoginForm', page).show();
|
||||
function showManualForm(context, showCancel, focusPassword) {
|
||||
$('.visualLoginForm', context).hide();
|
||||
$('.manualLoginForm', context).show();
|
||||
|
||||
if (focusPassword) {
|
||||
$('#txtManualPassword input', page).focus();
|
||||
$('#txtManualPassword input', context).focus();
|
||||
} else {
|
||||
$('#txtManualName input', page).focus();
|
||||
$('#txtManualName input', context).focus();
|
||||
}
|
||||
|
||||
if (showCancel) {
|
||||
$('.btnCancel', page).show();
|
||||
$('.btnCancel', context).show();
|
||||
} else {
|
||||
$('.btnCancel', page).hide();
|
||||
$('.btnCancel', context).hide();
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
showVisualForm: function (page) {
|
||||
$('.visualLoginForm', page).show();
|
||||
$('.manualLoginForm', page).hide();
|
||||
},
|
||||
|
||||
getLastSeenText: function (lastActivityDate) {
|
||||
|
||||
if (!lastActivityDate) {
|
||||
return "";
|
||||
}
|
||||
|
||||
return "Last seen " + humane_date(lastActivityDate);
|
||||
},
|
||||
|
||||
authenticateUserByName: function (page, apiClient, username, password) {
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
apiClient.authenticateUserByName(username, password).then(function (result) {
|
||||
|
||||
var user = result.User;
|
||||
|
||||
var serverId = getParameterByName('serverid');
|
||||
|
||||
var newUrl;
|
||||
|
||||
if (user.Policy.IsAdministrator && !serverId) {
|
||||
newUrl = "dashboard.html";
|
||||
} else {
|
||||
newUrl = "home.html";
|
||||
}
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
|
||||
Dashboard.onServerChanged(user.Id, result.AccessToken, apiClient);
|
||||
Dashboard.navigate(newUrl);
|
||||
|
||||
}, function () {
|
||||
|
||||
$('#pw', page).val('');
|
||||
$('#txtManualName', page).val('');
|
||||
$('#txtManualPassword', page).val('');
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
|
||||
setTimeout(function () {
|
||||
require(['toast'], function (toast) {
|
||||
toast(Globalize.translate('MessageInvalidUser'));
|
||||
});
|
||||
}, 300);
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
loadUserList: function (page, apiClient, users) {
|
||||
function loadUserList(context, apiClient, users) {
|
||||
var html = "";
|
||||
|
||||
for (var i = 0, length = users.length; i < length; i++) {
|
||||
@ -184,7 +153,7 @@
|
||||
html += '</div>';
|
||||
}
|
||||
|
||||
var elem = $('#divUsers', page).html(html);
|
||||
var elem = $('#divUsers', context).html(html);
|
||||
|
||||
$('a', elem).on('click', function () {
|
||||
|
||||
@ -193,39 +162,69 @@
|
||||
var haspw = this.getAttribute('data-haspw');
|
||||
|
||||
if (id == 'manual') {
|
||||
LoginPage.showManualForm(page, true);
|
||||
showManualForm(context, true);
|
||||
}
|
||||
else if (haspw == 'false') {
|
||||
LoginPage.authenticateUserByName(page, apiClient, name, '');
|
||||
LoginPage.authenticateUserByName(context, apiClient, name, '');
|
||||
} else {
|
||||
$('#txtManualName', page).val(name);
|
||||
$('#txtManualPassword', page).val('');
|
||||
LoginPage.showManualForm(page, true, true);
|
||||
$('#txtManualName', context).val(name);
|
||||
$('#txtManualPassword', context).val('');
|
||||
showManualForm(context, true, true);
|
||||
}
|
||||
});
|
||||
},
|
||||
}
|
||||
|
||||
onManualSubmit: function () {
|
||||
return function (view, params) {
|
||||
|
||||
var page = $(this).parents('.page');
|
||||
var self = this;
|
||||
|
||||
LoginPage.getApiClient().then(function (apiClient) {
|
||||
LoginPage.authenticateUserByName(page, apiClient, $('#txtManualName', page).val(), $('#txtManualPassword', page).val());
|
||||
$('.manualLoginForm', view).on('submit', onManualSubmit);
|
||||
|
||||
view.querySelector('.btnForgotPassword').addEventListener('click', function () {
|
||||
Dashboard.navigate('forgotpassword.html');
|
||||
});
|
||||
|
||||
// Disable default form submission
|
||||
return false;
|
||||
}
|
||||
};
|
||||
view.querySelector('.btnCancel').addEventListener('click', function () {
|
||||
LoginPage.showVisualForm(view);
|
||||
});
|
||||
|
||||
$(document).on('pageinit', "#loginPage", function () {
|
||||
view.querySelector('.btnManual').addEventListener('click', function () {
|
||||
showManualForm(view, true);
|
||||
});
|
||||
|
||||
var page = this;
|
||||
view.addEventListener('viewshow', function (e) {
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
$('.manualLoginForm', page).off('submit', LoginPage.onManualSubmit).on('submit', LoginPage.onManualSubmit);
|
||||
getApiClient().then(function (apiClient) {
|
||||
|
||||
$('.btnForgotPassword', page).on('click', function () {
|
||||
Dashboard.navigate('forgotpassword.html');
|
||||
});
|
||||
apiClient.getPublicUsers().then(function (users) {
|
||||
|
||||
}).on('pageshow', "#loginPage", LoginPage.onPageShow);
|
||||
var showManualForm = !users.length;
|
||||
|
||||
if (showManualForm) {
|
||||
|
||||
showManualForm(view, false, false);
|
||||
|
||||
} else {
|
||||
|
||||
LoginPage.showVisualForm(view);
|
||||
loadUserList(view, apiClient, users);
|
||||
}
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
});
|
||||
|
||||
apiClient.getJSON(apiClient.getUrl('Branding/Configuration')).then(function (options) {
|
||||
|
||||
$('.disclaimer', view).html(options.LoginDisclaimer || '');
|
||||
});
|
||||
});
|
||||
|
||||
if (Dashboard.isConnectMode()) {
|
||||
$('.connectButtons', view).show();
|
||||
} else {
|
||||
$('.connectButtons', view).hide();
|
||||
}
|
||||
});
|
||||
};
|
||||
});
|
@ -21,22 +21,32 @@
|
||||
|
||||
function saveUser(page, user) {
|
||||
|
||||
appSettings.syncPath(page.querySelector('#txtSyncPath').value);
|
||||
var syncPath = page.querySelector('#txtSyncPath').value;
|
||||
|
||||
appSettings.syncPath(syncPath);
|
||||
appSettings.syncOnlyOnWifi(page.querySelector('#chkWifi').checked);
|
||||
|
||||
appSettings.cameraUploadServers($(".chkUploadServer", page).get().filter(function (i) {
|
||||
var cameraUploadServers = $(".chkUploadServer", page).get().filter(function (i) {
|
||||
|
||||
return i.checked;
|
||||
|
||||
}).map(function (i) {
|
||||
|
||||
return i.getAttribute('data-id');
|
||||
}));
|
||||
});
|
||||
|
||||
appSettings.cameraUploadServers(cameraUploadServers);
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
require(['toast'], function (toast) {
|
||||
toast(Globalize.translate('SettingsSaved'));
|
||||
});
|
||||
|
||||
if (cameraUploadServers.length || syncPath) {
|
||||
if (window.MainActivity) {
|
||||
MainActivity.authorizeStorage();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function onSubmit() {
|
||||
|
@ -166,7 +166,7 @@
|
||||
var frequency = 86400000;
|
||||
|
||||
if (AppInfo.isNativeApp) {
|
||||
frequency = 259200000;
|
||||
frequency = 172800000;
|
||||
}
|
||||
|
||||
var cacheKey = 'lastappinfopresent5';
|
||||
|
@ -2243,7 +2243,7 @@ var AppInfo = {};
|
||||
|
||||
var baseUrl = 'bower_components/emby-webcomponents/strings/';
|
||||
|
||||
var languages = ['en-US', 'kk', 'ru'];
|
||||
var languages = ['da', 'en-US', 'kk', 'nl', 'ru'];
|
||||
|
||||
var translations = languages.map(function (i) {
|
||||
return {
|
||||
@ -2655,9 +2655,10 @@ var AppInfo = {};
|
||||
|
||||
defineRoute({
|
||||
path: '/login.html',
|
||||
dependencies: ['paper-button'],
|
||||
dependencies: ['paper-button', 'humanedate', 'paper-input'],
|
||||
autoFocus: false,
|
||||
anonymous: true
|
||||
anonymous: true,
|
||||
controller: 'scripts/loginpage'
|
||||
});
|
||||
|
||||
defineRoute({
|
||||
|
@ -17,7 +17,7 @@
|
||||
</div>
|
||||
|
||||
<div class="addServer" style="margin:0 0 1em;">
|
||||
<a href="connectlogin.html?mode=manualserver" class="clearLink"><paper-button raised class="submit block"><iron-icon icon="add"></iron-icon><span>${ButtonAddServer}</span></paper-button></a>
|
||||
<a href="connectlogin.html?mode=manualserver" class="clearLink"><paper-button raised class="cancel block"><iron-icon icon="add"></iron-icon><span>${ButtonAddServer}</span></paper-button></a>
|
||||
</div>
|
||||
|
||||
<div class="connectLogin" style="margin:1em 0;display:none;">
|
||||
|
Loading…
Reference in New Issue
Block a user