1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

update sync display

This commit is contained in:
Luke Pulverenti 2016-08-16 14:54:08 -04:00
parent 0d51412424
commit a52b5e24d0
20 changed files with 181 additions and 147 deletions

View file

@ -16,12 +16,12 @@
}, },
"devDependencies": {}, "devDependencies": {},
"ignore": [], "ignore": [],
"version": "1.1.75", "version": "1.1.76",
"_release": "1.1.75", "_release": "1.1.76",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "1.1.75", "tag": "1.1.76",
"commit": "5518536e19fe1efdb8cb149833320017c051e751" "commit": "1096ffc66e3df8d63e305889dd7fb5b769095082"
}, },
"_source": "https://github.com/MediaBrowser/Emby.ApiClient.Javascript.git", "_source": "https://github.com/MediaBrowser/Emby.ApiClient.Javascript.git",
"_target": "^1.1.51", "_target": "^1.1.51",

View file

@ -0,0 +1,47 @@
define([], function () {
var myStore = {};
var cache;
var localData;
function updateCache() {
cache.put('data', new Response(JSON.stringify(localData)));
}
myStore.setItem = function (name, value) {
if (localData) {
var changed = localData[name] != value;
if (changed) {
localData[name] = value;
updateCache();
}
}
};
myStore.getItem = function (name) {
if (localData) {
return localData[name];
}
};
myStore.removeItem = function (name) {
if (localData) {
localData[name] = null;
delete localData[name];
updateCache();
}
};
myStore.init = function () {
return caches.open('embydata').then(function (result) {
cache = result;
localData = {};
});
};
return myStore;
});

View file

@ -14,12 +14,12 @@
}, },
"devDependencies": {}, "devDependencies": {},
"ignore": [], "ignore": [],
"version": "1.4.171", "version": "1.4.172",
"_release": "1.4.171", "_release": "1.4.172",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "1.4.171", "tag": "1.4.172",
"commit": "388435c54b3b15c417b8d76701cf09b42b968a08" "commit": "044948fa660671caa6d1ce4951ccf0d4c6e211e2"
}, },
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
"_target": "^1.2.1", "_target": "^1.2.1",

View file

@ -2,8 +2,8 @@
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Teilen", "Share": "Teilen",
"Add": "Hinzuf\u00fcgen", "Add": "Hinzuf\u00fcgen",
"ServerUpdateNeeded": "Dieser Emby Server muss aktualisiert werden. Um die neueste Version herunterzuladen, besuchen sie bitte {0}", "ServerUpdateNeeded": "Dieser Emby Server muss aktualisiert werden. Um die neueste Version herunterzuladen, besuche bitte {0}",
"LiveTvGuideRequiresUnlock": "Ihr TV-Guide ist begrenzt auf {0} Kan\u00e4le. Klicken Sie auf die Freischalten Schaltfl\u00e4che um weitere Informationen zu erhalten.", "LiveTvGuideRequiresUnlock": "Dein TV-Guide ist derzeit begrenzt auf {0} Kan\u00e4le. Klicke auf die \"Freischalten\" Schaltfl\u00e4che um weitere Informationen zu erhalten.",
"AttributeNew": "Neu", "AttributeNew": "Neu",
"AttributePremiere": "Premiere", "AttributePremiere": "Premiere",
"AttributeLive": "Live", "AttributeLive": "Live",
@ -24,7 +24,7 @@
"ButtonOk": "Ok", "ButtonOk": "Ok",
"ButtonCancel": "Abbrechen", "ButtonCancel": "Abbrechen",
"ButtonGotIt": "Verstanden", "ButtonGotIt": "Verstanden",
"ButtonRestart": "Restart", "ButtonRestart": "Neustart",
"RecordingCancelled": "Aufzeichnung abgebrochen.", "RecordingCancelled": "Aufzeichnung abgebrochen.",
"RecordingScheduled": "Aufnahme geplant.", "RecordingScheduled": "Aufnahme geplant.",
"SeriesRecordingScheduled": "Serien-Aufnahme geplant.", "SeriesRecordingScheduled": "Serien-Aufnahme geplant.",
@ -43,8 +43,8 @@
"RecordOnAllChannels": "Auf allen Kan\u00e4len aufzeichnen", "RecordOnAllChannels": "Auf allen Kan\u00e4len aufzeichnen",
"RecordAnytime": "Zu jeder Zeit aufzeichnen", "RecordAnytime": "Zu jeder Zeit aufzeichnen",
"RecordOnlyNewEpisodes": "Nehme nur neue Episoden auf", "RecordOnlyNewEpisodes": "Nehme nur neue Episoden auf",
"HeaderBecomeProjectSupporter": "Holen Sie Emby Premium", "HeaderBecomeProjectSupporter": "Hol dir Emby Premiere",
"HeaderEnjoyDayTrial": "Genie\u00dfen Sie eine 14 Tage Testversion", "HeaderEnjoyDayTrial": "Genie\u00dfe eine 14-t\u00e4gige Testversion",
"MessageActiveSubscriptionRequiredSeriesRecordings": "Ein aktives Emby Premium Abo wird benn\u00f6tigt um automatische Serienaufnahmen zu erstellen.", "MessageActiveSubscriptionRequiredSeriesRecordings": "Ein aktives Emby Premium Abo wird benn\u00f6tigt um automatische Serienaufnahmen zu erstellen.",
"OptionConvertRecordingsToStreamingFormat": "Konvertiere Aufnahmen automatisch in ein streaming freundliches Format.", "OptionConvertRecordingsToStreamingFormat": "Konvertiere Aufnahmen automatisch in ein streaming freundliches Format.",
"OptionConvertRecordingsToStreamingFormatHelp": "Aufnahmen werden als MP4 konvertiert um eine bessere Wiedergabe auf Ihren Ger\u00e4ten zu gew\u00e4hrleisten.", "OptionConvertRecordingsToStreamingFormatHelp": "Aufnahmen werden als MP4 konvertiert um eine bessere Wiedergabe auf Ihren Ger\u00e4ten zu gew\u00e4hrleisten.",
@ -56,7 +56,7 @@
"Advanced": "Erweitert", "Advanced": "Erweitert",
"Delete": "L\u00f6schen", "Delete": "L\u00f6schen",
"HeaderDeleteItem": "L\u00f6sche Element", "HeaderDeleteItem": "L\u00f6sche Element",
"ConfirmDeleteItem": "L\u00f6schen dieses Eintrages bedeutet das L\u00f6schen der Datei und das Entfernen aus der Medien-Bibliothek. M\u00f6chten Sie wirklich fortfahren?", "ConfirmDeleteItem": "L\u00f6schen dieses Eintrages bedeutet das L\u00f6schen der Datei und das Entfernen aus der Medien-Bibliothek. M\u00f6chtest du wirklich fortfahren?",
"Refresh": "Aktualisieren", "Refresh": "Aktualisieren",
"RefreshQueued": "Warteschlange aktualisieren.", "RefreshQueued": "Warteschlange aktualisieren.",
"AddToCollection": "Zur Sammlung hinzuf\u00fcgen", "AddToCollection": "Zur Sammlung hinzuf\u00fcgen",
@ -64,7 +64,7 @@
"NewCollection": "Neue Collection", "NewCollection": "Neue Collection",
"LabelCollection": "Sammlung:", "LabelCollection": "Sammlung:",
"Help": "Hilfe", "Help": "Hilfe",
"NewCollectionHelp": "Sammlungen erm\u00f6glichen personallisierte Gruppen von Filmen oder anderen Medien.", "NewCollectionHelp": "Sammlungen erm\u00f6glichen personalisierte Gruppen von Filmen oder anderen Medien.",
"SearchForCollectionInternetMetadata": "Suche im Internet nach Bildmaterial und Metadaten", "SearchForCollectionInternetMetadata": "Suche im Internet nach Bildmaterial und Metadaten",
"LabelName": "Name:", "LabelName": "Name:",
"NewCollectionNameExample": "Beispiel: Star Wars Collection", "NewCollectionNameExample": "Beispiel: Star Wars Collection",
@ -91,11 +91,11 @@
"SearchForMissingMetadata": "Suche nach fehlenden Metadaten", "SearchForMissingMetadata": "Suche nach fehlenden Metadaten",
"LabelRefreshMode": "Aktualisierungsmodus:", "LabelRefreshMode": "Aktualisierungsmodus:",
"NoItemsFound": "Keine Eintr\u00e4ge gefunden.", "NoItemsFound": "Keine Eintr\u00e4ge gefunden.",
"HeaderSaySomethingLike": "Sagen Sie etwas wie...", "HeaderSaySomethingLike": "Sage etwas wie...",
"ButtonTryAgain": "Erneut versuchen", "ButtonTryAgain": "Erneut versuchen",
"HeaderYouSaid": "Sie sagten....", "HeaderYouSaid": "Du sagtest....",
"MessageWeDidntRecognizeCommand": "Entschuldigung, dieses Kommando konnten wir nicht erkennen.", "MessageWeDidntRecognizeCommand": "Entschuldigung, dieses Kommando konnten wir nicht erkennen.",
"MessageIfYouBlockedVoice": "Wenn Sie die Sprachsteuerung f\u00fcr die App nicht erlaubt haben so m\u00fcssen Sie dies zuvor \u00e4ndern bevor Sie es erneut probieren.", "MessageIfYouBlockedVoice": "Wenn du die Sprachsteuerung f\u00fcr die App nicht erlaubt hast, musst du dies vor einem erneuten Versuch \u00e4ndern.",
"ValueDiscNumber": "Disc {0}", "ValueDiscNumber": "Disc {0}",
"Unrated": "Nicht bewertet", "Unrated": "Nicht bewertet",
"Favorite": "Favorit", "Favorite": "Favorit",
@ -124,9 +124,9 @@
"MarkUnplayed": "Markiere \"als ungesehen\"", "MarkUnplayed": "Markiere \"als ungesehen\"",
"GroupVersions": "Gruppiere Versionen", "GroupVersions": "Gruppiere Versionen",
"PleaseSelectTwoItems": "Bitte w\u00e4hle mindestens zwei Optionen aus.", "PleaseSelectTwoItems": "Bitte w\u00e4hle mindestens zwei Optionen aus.",
"TheSelectedItemsWillBeGrouped": "Die ausgew\u00e4hlten Videos werden in einem virtuellen Element gruppiert. Emby Anwendungen w\u00e4hlen automatisch die beste Version anhand des Ger\u00e4tes und der Netzwerkgeschwindigkeit. Sind Sie sich sicher, dass Sie fortfahren m\u00f6chten?", "TheSelectedItemsWillBeGrouped": "Die ausgew\u00e4hlten Videos werden in einem virtuellen Element gruppiert. Emby Anwendungen w\u00e4hlen automatisch die beste Version anhand des Ger\u00e4tes und der Netzwerkgeschwindigkeit. Bist du sicher, dass du fortfahren m\u00f6chtest?",
"TryMultiSelect": "Versuche Mehrfachauswahl", "TryMultiSelect": "Versuche Mehrfachauswahl",
"TryMultiSelectMessage": "F\u00fcr eine Mehrfachauswahl klicken und halten Sie ein Poster. W\u00e4hlen Sie die Eintr\u00e4ge die Sie bearbeiten m\u00f6chten. Versuchen SIe es!", "TryMultiSelectMessage": "F\u00fcr eine Mehrfachauswahl klicke und halte ein Poster. W\u00e4hle die Eintr\u00e4ge die du bearbeiten m\u00f6chten. Versuch es!",
"HeaderConfirmRecordingCancellation": "Best\u00e4tige Aufzeichnungsabbruch", "HeaderConfirmRecordingCancellation": "Best\u00e4tige Aufzeichnungsabbruch",
"MessageConfirmRecordingCancellation": "Bis du dir sicher, diese Aufzeichnung abzubrechen?", "MessageConfirmRecordingCancellation": "Bis du dir sicher, diese Aufzeichnung abzubrechen?",
"Error": "Fehler", "Error": "Fehler",
@ -137,7 +137,7 @@
"LabelOriginalTitle": "Original Titel:", "LabelOriginalTitle": "Original Titel:",
"LabelSortTitle": "Sortierungs Titel:", "LabelSortTitle": "Sortierungs Titel:",
"LabelDateAdded": "Hinzugef\u00fcgt am:", "LabelDateAdded": "Hinzugef\u00fcgt am:",
"ConfigureDateAdded": "Bestimmen Sie in den Bibliotheks-Einstellungen des Emby Server Dashboards, wie das Feld \"Hinzugef\u00fcgt am\" interpretiert werden soll.", "ConfigureDateAdded": "Bestimme in den Bibliotheks-Einstellungen des Emby Server Dashboards, wie das Feld \"Hinzugef\u00fcgt am\" interpretiert werden soll.",
"LabelStatus": "Status:", "LabelStatus": "Status:",
"LabelArtists": "Interpreten:", "LabelArtists": "Interpreten:",
"LabelArtistsHelp": "Trenne mehrere Eintr\u00e4ge durch ;", "LabelArtistsHelp": "Trenne mehrere Eintr\u00e4ge durch ;",
@ -205,7 +205,7 @@
"Continuing": "Fortdauernd", "Continuing": "Fortdauernd",
"Ended": "Beendent", "Ended": "Beendent",
"HeaderEnabledFields": "Aktiviere Felder", "HeaderEnabledFields": "Aktiviere Felder",
"HeaderEnabledFieldsHelp": "W\u00e4hlen Sie Felder ab um das \u00c4ndern von Daten zu verhindern.", "HeaderEnabledFieldsHelp": "W\u00e4hle Felder ab um das \u00c4ndern von Daten zu verhindern.",
"Backdrops": "Hintergr\u00fcnde", "Backdrops": "Hintergr\u00fcnde",
"Images": "Bilder", "Images": "Bilder",
"Keywords": "Stichworte", "Keywords": "Stichworte",
@ -250,7 +250,7 @@
"SearchResults": "Suchergebnisse", "SearchResults": "Suchergebnisse",
"SyncToOtherDevice": "Mit einem anderen Ger\u00e4t synchronisieren", "SyncToOtherDevice": "Mit einem anderen Ger\u00e4t synchronisieren",
"MakeAvailableOffline": "Offline verf\u00fcgbar machen", "MakeAvailableOffline": "Offline verf\u00fcgbar machen",
"ServerNameIsRestarting": "Emby Server - {0} is restarting.", "ServerNameIsRestarting": "Emby Server - {0} startet neu.",
"ServerNameIsShuttingDown": "Emby Server - {0} is shutting down.", "ServerNameIsShuttingDown": "Emby Server - {0} f\u00e4hrt herunter.",
"PleaseRestartServerName": "Please restart Emby Server - {0}." "PleaseRestartServerName": "Bitte starte Emby Server - {0} neu."
} }

View file

@ -24,7 +24,7 @@
"ButtonOk": "OK", "ButtonOk": "OK",
"ButtonCancel": "Annuler", "ButtonCancel": "Annuler",
"ButtonGotIt": "Vu", "ButtonGotIt": "Vu",
"ButtonRestart": "Restart", "ButtonRestart": "Red\u00e9marrer",
"RecordingCancelled": "Enregistrement annul\u00e9.", "RecordingCancelled": "Enregistrement annul\u00e9.",
"RecordingScheduled": "Enregistrement planifi\u00e9.", "RecordingScheduled": "Enregistrement planifi\u00e9.",
"SeriesRecordingScheduled": "Enregistrement de la s\u00e9rie pr\u00e9vue.", "SeriesRecordingScheduled": "Enregistrement de la s\u00e9rie pr\u00e9vue.",
@ -108,7 +108,7 @@
"Shuffle": "M\u00e9langer", "Shuffle": "M\u00e9langer",
"Identify": "Identifier", "Identify": "Identifier",
"EditImages": "Modifier les images", "EditImages": "Modifier les images",
"EditInfo": "Modifier les informations", "EditInfo": "Modifier infos",
"Sync": "Sync", "Sync": "Sync",
"InstantMix": "Instantan\u00e9", "InstantMix": "Instantan\u00e9",
"ViewAlbum": "Voir l'album", "ViewAlbum": "Voir l'album",
@ -122,7 +122,7 @@
"Trailer": "Bande-annonce", "Trailer": "Bande-annonce",
"MarkPlayed": "Marquer comme lu", "MarkPlayed": "Marquer comme lu",
"MarkUnplayed": "Marquer comme non lu", "MarkUnplayed": "Marquer comme non lu",
"GroupVersions": "Versions des groupes", "GroupVersions": "Versions de groupe",
"PleaseSelectTwoItems": "Veuillez s\u00e9lectionner au moins deux items.", "PleaseSelectTwoItems": "Veuillez s\u00e9lectionner au moins deux items.",
"TheSelectedItemsWillBeGrouped": "Les vid\u00e9os s\u00e9lectionn\u00e9es seront regroup\u00e9es dans un objet virtuel. L'application Emby choisira automatiquement quelle version jouer d'apr\u00e8s le p\u00e9riph\u00e9rique et la performance du r\u00e9seau. \u00cates-vous s\u00fbre de vouloir continuer ?", "TheSelectedItemsWillBeGrouped": "Les vid\u00e9os s\u00e9lectionn\u00e9es seront regroup\u00e9es dans un objet virtuel. L'application Emby choisira automatiquement quelle version jouer d'apr\u00e8s le p\u00e9riph\u00e9rique et la performance du r\u00e9seau. \u00cates-vous s\u00fbre de vouloir continuer ?",
"TryMultiSelect": "Essayer la s\u00e9lection multiple", "TryMultiSelect": "Essayer la s\u00e9lection multiple",
@ -248,9 +248,9 @@
"PleaseEnterNameOrId": "Veuillez saisir un nom ou un identifiant externe.", "PleaseEnterNameOrId": "Veuillez saisir un nom ou un identifiant externe.",
"MessageItemSaved": "Item sauvegard\u00e9.", "MessageItemSaved": "Item sauvegard\u00e9.",
"SearchResults": "R\u00e9sultats de la recherche", "SearchResults": "R\u00e9sultats de la recherche",
"SyncToOtherDevice": "Sync to other device", "SyncToOtherDevice": "Sync vers un autre appareil",
"MakeAvailableOffline": "Make available offline", "MakeAvailableOffline": "Rendre disponible hors connexion",
"ServerNameIsRestarting": "Emby Server - {0} is restarting.", "ServerNameIsRestarting": "Emby Server - {0} est red\u00e9marr\u00e9.",
"ServerNameIsShuttingDown": "Emby Server - {0} is shutting down.", "ServerNameIsShuttingDown": "Emby Server - {0} est arr\u00eater.",
"PleaseRestartServerName": "Please restart Emby Server - {0}." "PleaseRestartServerName": "S'il vous pla\u00eet red\u00e9marrer Emby server - {0}."
} }

View file

@ -24,7 +24,7 @@
"ButtonOk": "\u0416\u0430\u0440\u0430\u0439\u0434\u044b", "ButtonOk": "\u0416\u0430\u0440\u0430\u0439\u0434\u044b",
"ButtonCancel": "\u0411\u043e\u043b\u0434\u044b\u0440\u043c\u0430\u0443", "ButtonCancel": "\u0411\u043e\u043b\u0434\u044b\u0440\u043c\u0430\u0443",
"ButtonGotIt": "\u0422\u04af\u0441\u0456\u043d\u0456\u043a\u0442\u0456", "ButtonGotIt": "\u0422\u04af\u0441\u0456\u043d\u0456\u043a\u0442\u0456",
"ButtonRestart": "Restart", "ButtonRestart": "\u049a\u0430\u0439\u0442\u0430 \u0456\u0441\u043a\u0435 \u049b\u043e\u0441\u0443",
"RecordingCancelled": "\u0416\u0430\u0437\u0431\u0430 \u0431\u043e\u043b\u0434\u044b\u0440\u044b\u043b\u043c\u0430\u0434\u044b.", "RecordingCancelled": "\u0416\u0430\u0437\u0431\u0430 \u0431\u043e\u043b\u0434\u044b\u0440\u044b\u043b\u043c\u0430\u0434\u044b.",
"RecordingScheduled": "\u0416\u0430\u0437\u0443 \u0436\u043e\u0441\u043f\u0430\u0440\u043b\u0430\u0493\u0430\u043d.", "RecordingScheduled": "\u0416\u0430\u0437\u0443 \u0436\u043e\u0441\u043f\u0430\u0440\u043b\u0430\u0493\u0430\u043d.",
"SeriesRecordingScheduled": "\u0422\u0435\u043b\u0435\u0445\u0438\u043a\u0430\u044f \u0436\u0430\u0437\u0443\u044b \u0436\u043e\u0441\u043f\u0430\u0440\u043b\u0430\u0493\u0430\u043d.", "SeriesRecordingScheduled": "\u0422\u0435\u043b\u0435\u0445\u0438\u043a\u0430\u044f \u0436\u0430\u0437\u0443\u044b \u0436\u043e\u0441\u043f\u0430\u0440\u043b\u0430\u0493\u0430\u043d.",
@ -250,7 +250,7 @@
"SearchResults": "\u0406\u0437\u0434\u0435\u0443 \u043d\u04d9\u0442\u0438\u0436\u0435\u043b\u0435\u0440\u0456", "SearchResults": "\u0406\u0437\u0434\u0435\u0443 \u043d\u04d9\u0442\u0438\u0436\u0435\u043b\u0435\u0440\u0456",
"SyncToOtherDevice": "\u0411\u0430\u0441\u049b\u0430 \u049b\u04b1\u0440\u044b\u043b\u0493\u044b\u043c\u0435\u043d \u04af\u043d\u0434\u0435\u0441\u0442\u0456\u0440\u0443", "SyncToOtherDevice": "\u0411\u0430\u0441\u049b\u0430 \u049b\u04b1\u0440\u044b\u043b\u0493\u044b\u043c\u0435\u043d \u04af\u043d\u0434\u0435\u0441\u0442\u0456\u0440\u0443",
"MakeAvailableOffline": "\u0414\u0435\u0440\u0431\u0435\u0441 \u049b\u043e\u043b\u0436\u0435\u0442\u0456\u043c\u0434\u0456 \u0435\u0442\u0443", "MakeAvailableOffline": "\u0414\u0435\u0440\u0431\u0435\u0441 \u049b\u043e\u043b\u0436\u0435\u0442\u0456\u043c\u0434\u0456 \u0435\u0442\u0443",
"ServerNameIsRestarting": "Emby Server - {0} is restarting.", "ServerNameIsRestarting": "Emby Server - {0} \u049b\u0430\u0439\u0442\u0430 \u0456\u0441\u043a\u0435 \u049b\u043e\u0441\u044b\u043b\u0443\u0434\u0430.",
"ServerNameIsShuttingDown": "Emby Server - {0} is shutting down.", "ServerNameIsShuttingDown": "Emby Server - {0} \u0436\u04b1\u043c\u044b\u0441\u0442\u044b \u0430\u044f\u049b\u0442\u0430\u0443\u0434\u0430.",
"PleaseRestartServerName": "Please restart Emby Server - {0}." "PleaseRestartServerName": "Emby Server \u04af\u0448\u0456\u043d \u049b\u0430\u0439\u0442\u0430 \u0456\u0441\u043a\u0435 \u049b\u043e\u0441\u044b\u04a3\u044b\u0437 - {0}."
} }

View file

@ -24,7 +24,7 @@
"ButtonOk": "Ok", "ButtonOk": "Ok",
"ButtonCancel": "Cancelar", "ButtonCancel": "Cancelar",
"ButtonGotIt": "Feito", "ButtonGotIt": "Feito",
"ButtonRestart": "Restart", "ButtonRestart": "Reiniciar",
"RecordingCancelled": "Grava\u00e7\u00e3o cancelada.", "RecordingCancelled": "Grava\u00e7\u00e3o cancelada.",
"RecordingScheduled": "Grava\u00e7\u00e3o agendada.", "RecordingScheduled": "Grava\u00e7\u00e3o agendada.",
"SeriesRecordingScheduled": "Grava\u00e7\u00e3o de s\u00e9rie agendada.", "SeriesRecordingScheduled": "Grava\u00e7\u00e3o de s\u00e9rie agendada.",
@ -248,9 +248,9 @@
"PleaseEnterNameOrId": "Por favor, digite um nome ou um id externo.", "PleaseEnterNameOrId": "Por favor, digite um nome ou um id externo.",
"MessageItemSaved": "Item salvo.", "MessageItemSaved": "Item salvo.",
"SearchResults": "Resultados da Busca", "SearchResults": "Resultados da Busca",
"SyncToOtherDevice": "Sync to other device", "SyncToOtherDevice": "Sincronizar para outro dispositivo",
"MakeAvailableOffline": "Make available offline", "MakeAvailableOffline": "Disponibilizar offline",
"ServerNameIsRestarting": "Emby Server - {0} is restarting.", "ServerNameIsRestarting": "Servidor Emby - {0} est\u00e1 reiniciando.",
"ServerNameIsShuttingDown": "Emby Server - {0} is shutting down.", "ServerNameIsShuttingDown": "Servidor Emby - {0} est\u00e1 desligando.",
"PleaseRestartServerName": "Please restart Emby Server - {0}." "PleaseRestartServerName": "Por favor reinicie o Servidor Emby - {0}."
} }

View file

@ -24,7 +24,7 @@
"ButtonOk": "\u041e\u041a", "ButtonOk": "\u041e\u041a",
"ButtonCancel": "\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c", "ButtonCancel": "\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c",
"ButtonGotIt": "\u041f\u043e\u043d\u044f\u0442\u043d\u043e", "ButtonGotIt": "\u041f\u043e\u043d\u044f\u0442\u043d\u043e",
"ButtonRestart": "Restart", "ButtonRestart": "\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c",
"RecordingCancelled": "\u0417\u0430\u043f\u0438\u0441\u044c \u043e\u0442\u043c\u0435\u043d\u0435\u043d\u0430.", "RecordingCancelled": "\u0417\u0430\u043f\u0438\u0441\u044c \u043e\u0442\u043c\u0435\u043d\u0435\u043d\u0430.",
"RecordingScheduled": "\u0437\u0430\u043f\u0438\u0441\u044c \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430.", "RecordingScheduled": "\u0437\u0430\u043f\u0438\u0441\u044c \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430.",
"SeriesRecordingScheduled": "\u0417\u0430\u043f\u0438\u0441\u044c \u0441\u0435\u0440\u0438\u0430\u043b\u0430 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430.", "SeriesRecordingScheduled": "\u0417\u0430\u043f\u0438\u0441\u044c \u0441\u0435\u0440\u0438\u0430\u043b\u0430 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430.",
@ -250,7 +250,7 @@
"SearchResults": "\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e\u0438\u0441\u043a\u0430", "SearchResults": "\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e\u0438\u0441\u043a\u0430",
"SyncToOtherDevice": "\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c", "SyncToOtherDevice": "\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c",
"MakeAvailableOffline": "\u0421\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u043e", "MakeAvailableOffline": "\u0421\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u043e",
"ServerNameIsRestarting": "Emby Server - {0} is restarting.", "ServerNameIsRestarting": "Emby Server - {0} \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f.",
"ServerNameIsShuttingDown": "Emby Server - {0} is shutting down.", "ServerNameIsShuttingDown": "Emby Server - {0} \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f.",
"PleaseRestartServerName": "Please restart Emby Server - {0}." "PleaseRestartServerName": "\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 Emby Server - {0}."
} }

View file

@ -117,7 +117,11 @@
var itemHtml = ''; var itemHtml = '';
var tagName = layoutManager.tv ? 'button' : 'div'; var tagName = layoutManager.tv ? 'button' : 'div';
var className = layoutManager.tv && s.Path ? 'listItem listItem-focusscale btnDelete' : 'listItem'; var className = layoutManager.tv && s.Path ? 'listItem btnDelete' : 'listItem';
if (layoutManager.tv) {
className += ' listItem-focusscale listItem-button';
}
className += ' listItem-noborder'; className += ' listItem-noborder';
@ -236,6 +240,9 @@
var tagName = layoutManager.tv ? 'button' : 'div'; var tagName = layoutManager.tv ? 'button' : 'div';
var className = layoutManager.tv ? 'listItem btnOptions' : 'listItem'; var className = layoutManager.tv ? 'listItem btnOptions' : 'listItem';
if (layoutManager.tv) {
className += ' listItem-focusscale listItem-button';
}
html += '<' + tagName + ' class="' + className + '" data-subid="' + result.Id + '">'; html += '<' + tagName + ' class="' + className + '" data-subid="' + result.Id + '">';

View file

@ -32,14 +32,14 @@
"web-component-tester": "^4.0.0", "web-component-tester": "^4.0.0",
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
}, },
"homepage": "https://github.com/PolymerElements/iron-icon", "homepage": "https://github.com/polymerelements/iron-icon",
"_release": "1.0.10", "_release": "1.0.10",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "v1.0.10", "tag": "v1.0.10",
"commit": "f4e146da4982ff96bb25db85290c09e8de4ec734" "commit": "f4e146da4982ff96bb25db85290c09e8de4ec734"
}, },
"_source": "git://github.com/PolymerElements/iron-icon.git", "_source": "git://github.com/polymerelements/iron-icon.git",
"_target": "^1.0.0", "_target": "^1.0.0",
"_originalSource": "PolymerElements/iron-icon" "_originalSource": "polymerelements/iron-icon"
} }

View file

@ -40,6 +40,6 @@
"commit": "1f197d9d7874b1e5808b2a5c26f34446a7d912fc" "commit": "1f197d9d7874b1e5808b2a5c26f34446a7d912fc"
}, },
"_source": "git://github.com/Polymer/polymer.git", "_source": "git://github.com/Polymer/polymer.git",
"_target": "^1.1.0", "_target": "^1.0.0",
"_originalSource": "Polymer/polymer" "_originalSource": "Polymer/polymer"
} }

View file

@ -56,10 +56,6 @@
vertical-align: middle; vertical-align: middle;
} }
.drawerContent {
padding-bottom: 100px;
}
.headerButton { .headerButton {
margin: 0 5px; margin: 0 5px;
background-color: transparent; background-color: transparent;
@ -299,6 +295,10 @@ body:not(.dashboardDocument) .headerAppsButton {
display: none; display: none;
} }
.mainDrawer-scrollContainer {
padding-bottom: 10vh;
}
@media all and (min-width: 640px) { @media all and (min-width: 640px) {
.mainDrawerPanel .viewMenuBarTabs { .mainDrawerPanel .viewMenuBarTabs {

View file

@ -1,4 +1,4 @@
<div id="editItemMetadataPage" data-role="page" class="page libraryPage metadataEditorPage noSecondaryNavPage" data-contextname="${HeaderMetadataManager}" data-require="scripts/editorsidebar,scripts/edititemmetadata"> <div id="editItemMetadataPage" data-role="page" class="page libraryPage metadataEditorPage noSecondaryNavPage" data-contextname="${MetadataManager}" data-require="scripts/editorsidebar,scripts/edititemmetadata">
<style> <style>
#editItemMetadataPage .editMetadataForm { #editItemMetadataPage .editMetadataForm {

View file

@ -7,7 +7,7 @@
<div class="backdropContainer"></div> <div class="backdropContainer"></div>
<div class="backgroundContainer"></div> <div class="backgroundContainer"></div>
<div class="mainDrawerPanel"> <div class="mainDrawerPanel">
<div class="mainDrawer hide"><div class="scrollContainer"></div></div> <div class="mainDrawer hide"><div class="mainDrawer-scrollContainer scrollContainer"></div></div>
<div class="mainDrawerPanelContent"> <div class="mainDrawerPanelContent">
<div class="skinHeader"></div> <div class="skinHeader"></div>
<div class="mainAnimatedPages skinBody"></div> <div class="mainAnimatedPages skinBody"></div>

View file

@ -1,4 +1,4 @@
define(['imageLoader', 'layoutManager', 'viewManager', 'navdrawer', 'libraryBrowser', 'paper-icon-button-light', 'material-icons'], function (imageLoader, layoutManager, viewManager, navdrawer, libraryBrowser) { define(['imageLoader', 'layoutManager', 'viewManager', 'navdrawer', 'libraryBrowser', 'apphost', 'paper-icon-button-light', 'material-icons'], function (imageLoader, layoutManager, viewManager, navdrawer, libraryBrowser, appHost) {
var navDrawerElement = document.querySelector('.mainDrawer'); var navDrawerElement = document.querySelector('.mainDrawer');
var navDrawerScrollContainer = navDrawerElement.querySelector('.scrollContainer'); var navDrawerScrollContainer = navDrawerElement.querySelector('.scrollContainer');
@ -296,7 +296,7 @@
html += '</div>'; html += '</div>';
html += '<a class="sidebarLink lnkMediaFolder lnkManageServer" data-itemid="dashboard" href="#"><i class="md-icon sidebarLinkIcon">dashboard</i><span class="sidebarLinkText">' + Globalize.translate('ButtonManageServer') + '</span></a>'; html += '<a class="sidebarLink lnkMediaFolder lnkManageServer" data-itemid="dashboard" href="#"><i class="md-icon sidebarLinkIcon">dashboard</i><span class="sidebarLinkText">' + Globalize.translate('ButtonManageServer') + '</span></a>';
html += '<a class="sidebarLink lnkMediaFolder editorViewMenu" data-itemid="editor" onclick="return LibraryMenu.onLinkClicked(event, this);" href="edititemmetadata.html"><i class="md-icon sidebarLinkIcon">mode_edit</i><span class="sidebarLinkText">' + Globalize.translate('ButtonMetadataManager') + '</span></a>'; html += '<a class="sidebarLink lnkMediaFolder editorViewMenu" data-itemid="editor" onclick="return LibraryMenu.onLinkClicked(event, this);" href="edititemmetadata.html"><i class="md-icon sidebarLinkIcon">mode_edit</i><span class="sidebarLinkText">' + Globalize.translate('MetadataManager') + '</span></a>';
if (!browserInfo.mobile) { if (!browserInfo.mobile) {
html += '<a class="sidebarLink lnkMediaFolder" data-itemid="reports" onclick="return LibraryMenu.onLinkClicked(event, this);" href="reports.html"><i class="md-icon sidebarLinkIcon">insert_chart</i><span class="sidebarLinkText">' + Globalize.translate('ButtonReports') + '</span></a>'; html += '<a class="sidebarLink lnkMediaFolder" data-itemid="reports" onclick="return LibraryMenu.onLinkClicked(event, this);" href="reports.html"><i class="md-icon sidebarLinkIcon">insert_chart</i><span class="sidebarLinkText">' + Globalize.translate('ButtonReports') + '</span></a>';
@ -312,7 +312,9 @@
html += '<a class="sidebarLink lnkMediaFolder lnkMySettings" onclick="return LibraryMenu.onLinkClicked(event, this);" href="mypreferencesmenu.html?userId=' + user.localUser.Id + '"><i class="md-icon sidebarLinkIcon">settings</i><span class="sidebarLinkText">' + Globalize.translate('ButtonSettings') + '</span></a>'; html += '<a class="sidebarLink lnkMediaFolder lnkMySettings" onclick="return LibraryMenu.onLinkClicked(event, this);" href="mypreferencesmenu.html?userId=' + user.localUser.Id + '"><i class="md-icon sidebarLinkIcon">settings</i><span class="sidebarLinkText">' + Globalize.translate('ButtonSettings') + '</span></a>';
} }
html += '<a class="sidebarLink lnkMediaFolder lnkMySync" data-itemid="mysync" onclick="return LibraryMenu.onLinkClicked(event, this);" href="mysync.html"><i class="md-icon sidebarLinkIcon">sync</i><span class="sidebarLinkText">' + Globalize.translate('ButtonSync') + '</span></a>'; html += '<a class="sidebarLink lnkMediaFolder lnkManageOffline" data-itemid="manageoffline" onclick="return LibraryMenu.onLinkClicked(event, this);" href="mysync.html?mode=offline"><i class="md-icon sidebarLinkIcon">sync</i><span class="sidebarLinkText">' + Globalize.translate('ManageOfflineDownloads') + '</span></a>';
html += '<a class="sidebarLink lnkMediaFolder lnkSyncToOtherDevices" data-itemid="syncotherdevices" onclick="return LibraryMenu.onLinkClicked(event, this);" href="mysync.html"><i class="md-icon sidebarLinkIcon">sync</i><span class="sidebarLinkText">' + Globalize.translate('SyncToOtherDevices') + '</span></a>';
if (Dashboard.isConnectMode()) { if (Dashboard.isConnectMode()) {
html += '<a class="sidebarLink lnkMediaFolder" data-itemid="selectserver" onclick="return LibraryMenu.onLinkClicked(event, this);" href="selectserver.html?showuser=1"><i class="md-icon sidebarLinkIcon">wifi</i><span class="sidebarLinkText">' + Globalize.translate('ButtonSelectServer') + '</span></a>'; html += '<a class="sidebarLink lnkMediaFolder" data-itemid="selectserver" onclick="return LibraryMenu.onLinkClicked(event, this);" href="selectserver.html?showuser=1"><i class="md-icon sidebarLinkIcon">wifi</i><span class="sidebarLinkText">' + Globalize.translate('ButtonSelectServer') + '</span></a>';
@ -447,15 +449,22 @@
if (!user) { if (!user) {
showBySelector('.lnkMySync', false); showBySelector('.lnkManageOffline', false);
showBySelector('.lnkSyncToOtherDevices', false);
showBySelector('.userMenuOptions', false); showBySelector('.userMenuOptions', false);
return; return;
} }
if (user.Policy.EnableSync) { if (user.Policy.EnableSync) {
showBySelector('.lnkMySync', true); showBySelector('.lnkSyncToOtherDevices', true);
} else { } else {
showBySelector('.lnkMySync', false); showBySelector('.lnkSyncToOtherDevices', false);
}
if (user.Policy.EnableSync && appHost.supports('sync')) {
showBySelector('.lnkManageOffline', true);
} else {
showBySelector('.lnkManageOffline', false);
} }
var userId = Dashboard.getCurrentUserId(); var userId = Dashboard.getCurrentUserId();
@ -788,7 +797,12 @@
else if (isReportsPage && itemId == 'reports') { else if (isReportsPage && itemId == 'reports') {
lnkMediaFolder.classList.add('selectedMediaFolder'); lnkMediaFolder.classList.add('selectedMediaFolder');
} }
else if (isMySyncPage && itemId == 'mysync') { else if (isMySyncPage && itemId == 'manageoffline') {
lnkMediaFolder.classList.add('selectedMediaFolder');
}
else if (isMySyncPage && itemId == 'syncotherdevices') {
lnkMediaFolder.classList.add('selectedMediaFolder'); lnkMediaFolder.classList.add('selectedMediaFolder');
} }
else if (id && itemId == id) { else if (id && itemId == id) {
@ -816,33 +830,6 @@
return url; return url;
} }
function updateTabLinks(page) {
var elems = page.querySelectorAll('.scopedLibraryViewNav a');
var id = page.classList.contains('liveTvPage') || page.classList.contains('channelsPage') || page.classList.contains('metadataEditorPage') || page.classList.contains('reportsPage') || page.classList.contains('mySyncPage') || page.classList.contains('allLibraryPage') ?
'' :
getTopParentId() || '';
if (!id) {
return;
}
for (i = 0, length = elems.length; i < length; i++) {
var lnk = elems[i];
var src = lnk.href;
if (src.indexOf('#') != -1) {
continue;
}
src = replaceQueryString(src, 'topParentId', id);
lnk.href = src;
}
}
function onWebSocketMessage(e, data) { function onWebSocketMessage(e, data) {
var msg = data; var msg = data;
@ -909,7 +896,6 @@
setDrawerClass(page); setDrawerClass(page);
updateViewMenuBar(page); updateViewMenuBar(page);
updateTabLinks(page);
if (!e.detail.isRestored) { if (!e.detail.isRestored) {
// Scroll back up so in case vertical scroll was messed with // Scroll back up so in case vertical scroll was messed with

View file

@ -1,13 +1,9 @@
define(['appSettings'], function (appSettings) { define(['appSettings', 'connectionManager'], function (appSettings, connectionManager) {
var syncPromise; var syncPromise;
window.LocalSync = { window.LocalSync = {
isSupported: function () {
return AppInfo.isNativeApp && Dashboard.capabilities().SupportsSync;
},
sync: function (options) { sync: function (options) {
if (syncPromise) { if (syncPromise) {
@ -16,15 +12,13 @@
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
require(['multiserversync'], function () { require(['multiserversync'], function (MultiServerSync) {
options = options || {}; options = options || {};
LocalSync.normalizeSyncOptions(options);
options.cameraUploadServers = appSettings.cameraUploadServers(); options.cameraUploadServers = appSettings.cameraUploadServers();
syncPromise = new MediaBrowser.MultiServerSync(ConnectionManager).sync(options).then(function () { syncPromise = new MultiServerSync(connectionManager).sync(options).then(function () {
syncPromise = null; syncPromise = null;
resolve(); resolve();
@ -38,10 +32,6 @@
}); });
}, },
normalizeSyncOptions: function (options) {
},
getSyncStatus: function () { getSyncStatus: function () {
if (syncPromise != null) { if (syncPromise != null) {

View file

@ -1,8 +1,16 @@
define(['loading', 'localsync'], function (loading) { define(['loading', 'apphost', 'localsync'], function (loading, appHost) {
return function (view, params) {
var interval;
function isLocalSyncManagement() {
return appHost.supports('sync') && params.mode == 'offline';
}
function refreshSyncStatus(page) { function refreshSyncStatus(page) {
if (LocalSync.isSupported()) { if (isLocalSyncManagement()) {
var status = LocalSync.getSyncStatus(); var status = LocalSync.getSyncStatus();
@ -19,7 +27,6 @@
else { else {
page.querySelector('.btnSyncNow').classList.remove('hide'); page.querySelector('.btnSyncNow').classList.remove('hide');
} }
} }
} }
@ -32,15 +39,11 @@
refreshSyncStatus(page); refreshSyncStatus(page);
} }
return function (view, params) {
var interval;
view.querySelector('.btnSyncNow').addEventListener('click', function () { view.querySelector('.btnSyncNow').addEventListener('click', function () {
syncNow(view); syncNow(view);
}); });
if (LocalSync.isSupported()) { if (isLocalSyncManagement()) {
view.querySelector('.localSyncStatus').classList.remove('hide'); view.querySelector('.localSyncStatus').classList.remove('hide');

View file

@ -195,7 +195,7 @@
//html += '</div>'; //html += '</div>';
//html += '</div>'; //html += '</div>';
$(elem).html(html); elem.innerHTML = html;
$('#selectSyncTarget', elem).on('change', function () { $('#selectSyncTarget', elem).on('change', function () {
@ -303,7 +303,7 @@
var promise = dialogHelper.open(dlg); var promise = dialogHelper.open(dlg);
renderForm({ renderForm({
elem: $('.formFields', dlg), elem: dlg.querySelector('.formFields'),
dialogOptions: dialogOptions, dialogOptions: dialogOptions,
dialogOptionsFn: getTargetDialogOptionsFn(dialogOptionsQuery) dialogOptionsFn: getTargetDialogOptionsFn(dialogOptionsQuery)
}); });

View file

@ -18,7 +18,7 @@
require(['syncDialog'], function (syncDialog) { require(['syncDialog'], function (syncDialog) {
syncDialog.renderForm({ syncDialog.renderForm({
elem: $('.formFields', page), elem: page.querySelector('.formFields'),
dialogOptions: dialogOptions, dialogOptions: dialogOptions,
dialogOptionsFn: getTargetDialogOptionsFn(dialogOptions), dialogOptionsFn: getTargetDialogOptionsFn(dialogOptions),
showName: true, showName: true,

View file

@ -880,7 +880,6 @@
"OptionNone": "None", "OptionNone": "None",
"HeaderLiveTv": "Live TV", "HeaderLiveTv": "Live TV",
"HeaderReports": "Reports", "HeaderReports": "Reports",
"HeaderMetadataManager": "Metadata Manager",
"HeaderSettings": "Settings", "HeaderSettings": "Settings",
"OptionDefaultSort": "Default", "OptionDefaultSort": "Default",
"OptionCommunityMostWatchedSort": "Most Watched", "OptionCommunityMostWatchedSort": "Most Watched",
@ -1739,7 +1738,7 @@
"MessageEnsureOpenTuner": "Please ensure there is an open tuner availalble.", "MessageEnsureOpenTuner": "Please ensure there is an open tuner availalble.",
"ButtonDashboard": "Dashboard", "ButtonDashboard": "Dashboard",
"ButtonReports": "Reports", "ButtonReports": "Reports",
"ButtonMetadataManager": "Metadata Manager", "MetadataManager": "Metadata manager",
"HeaderTime": "Time", "HeaderTime": "Time",
"LabelAddedOnDate": "Added {0}", "LabelAddedOnDate": "Added {0}",
"ButtonStart": "Start", "ButtonStart": "Start",
@ -2149,7 +2148,7 @@
"HeaderGroupVersions": "Group Versions", "HeaderGroupVersions": "Group Versions",
"HeaderSaySomethingLike": "Say Something Like...", "HeaderSaySomethingLike": "Say Something Like...",
"NoResultsFound": "No results found.", "NoResultsFound": "No results found.",
"ButtonManageServer": "Manage Server", "ButtonManageServer": "Manage server",
"ButtonEditSubtitles": "Edit subtitles", "ButtonEditSubtitles": "Edit subtitles",
"ButtonPreferences": "Preferences", "ButtonPreferences": "Preferences",
"ButtonViewArtist": "View artist", "ButtonViewArtist": "View artist",
@ -2314,5 +2313,7 @@
"EnablePhotos": "Enable photos", "EnablePhotos": "Enable photos",
"EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.", "EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.",
"MakeAvailableOffline": "Make available offline", "MakeAvailableOffline": "Make available offline",
"ConfirmRemoveDownload": "Remove download?" "ConfirmRemoveDownload": "Remove download?",
"SyncToOtherDevices": "Sync to other devices",
"ManageOfflineDownloads": "Manage offline downloads"
} }