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

update recording layouts

This commit is contained in:
Luke Pulverenti 2016-09-26 14:59:18 -04:00
parent 47c67da9a5
commit 633e2f0222
54 changed files with 375 additions and 83 deletions

View file

@ -16,12 +16,12 @@
}, },
"devDependencies": {}, "devDependencies": {},
"ignore": [], "ignore": [],
"version": "1.1.83", "version": "1.1.84",
"_release": "1.1.83", "_release": "1.1.84",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "1.1.83", "tag": "1.1.84",
"commit": "64d6582c85ba3ab677f81bdb9d535587b5de3c65" "commit": "adc79119a845784ce08fa33930e6eb903dfab16a"
}, },
"_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

@ -215,7 +215,7 @@
return connectUser; return connectUser;
}; };
var minServerVersion = '3.0.5980'; var minServerVersion = '3.0.5984';
self.minServerVersion = function (val) { self.minServerVersion = function (val) {
if (val) { if (val) {

View file

@ -14,12 +14,12 @@
}, },
"devDependencies": {}, "devDependencies": {},
"ignore": [], "ignore": [],
"version": "1.4.263", "version": "1.4.266",
"_release": "1.4.263", "_release": "1.4.266",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "1.4.263", "tag": "1.4.266",
"commit": "a688a5c033af169003a172bc593f57a31577de33" "commit": "502bce3cd1a2ced4a61a80236291c1a4bbfda690"
}, },
"_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

@ -154,7 +154,7 @@ define(['browser'], function (browser) {
videoAudioCodecs = []; videoAudioCodecs = [];
break; break;
case 'avi': case 'avi':
supported = browser.edgeUwp; supported = browser.tizen || browser.edgeUwp;
break; break;
case 'mpg': case 'mpg':
case 'mpeg': case 'mpeg':

View file

@ -131,8 +131,10 @@
.checkboxList-paperList { .checkboxList-paperList {
padding: 1em !important; padding: 1em !important;
margin: .75em 0 !important;
} }
.checkboxListLabel { .checkboxListLabel {
opacity: .7; opacity: .7;
margin-bottom: 0;
} }

View file

@ -0,0 +1,178 @@
define(['cryptojs-md5'], function () {
var indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.OIndexedDB || window.msIndexedDB;
var dbVersion = 1;
var imagesTableName = "images";
var db;
function createObjectStore(dataBase) {
dataBase.createObjectStore(imagesTableName, { keyPath: "id" });
db = dataBase;
}
// Create/open database
var request = indexedDB.open("imagesDb2", dbVersion);
request.onupgradeneeded = function () {
createObjectStore(request.result);
};
request.onsuccess = function (event) {
console.log("Success creating/accessing IndexedDB database");
var localDb = request.result;
localDb.onerror = function (event) {
console.log("Error creating/accessing IndexedDB database");
};
// Interim solution for Google Chrome to create an objectStore. Will be deprecated
if (localDb.setVersion) {
if (localDb.version != dbVersion) {
var setVersion = localDb.setVersion(dbVersion);
setVersion.onsuccess = function () {
createObjectStore(localDb);
};
}
else {
db = localDb;
}
}
else {
db = localDb;
}
}
function revoke(url) {
//URL.revokeObjectURL(url);
}
function loadImage(elem, url) {
if (elem.tagName !== "IMG") {
elem.style.backgroundImage = "url('" + url + "')";
revoke(url);
return Promise.resolve(elem);
} else {
elem.setAttribute("src", url);
revoke(url);
return Promise.resolve(elem);
}
}
function getCacheKey(url) {
// Try to strip off the domain to share the cache between local and remote connections
var index = url.indexOf('://');
if (index != -1) {
url = url.substring(index + 3);
index = url.indexOf('/');
if (index != -1) {
url = url.substring(index + 1);
}
}
return CryptoJS.MD5(url).toString();
}
function getFromDb(key) {
return new Promise(function (resolve, reject) {
var transaction = db.transaction(imagesTableName, "read");
// Retrieve the file that was just stored
var request = transaction.objectStore(imagesTableName).get(key);
request.onsuccess = function (event) {
var imgFile = event.target.result;
// Get window.URL object
var URL = window.URL || window.webkitURL;
// Create and revoke ObjectURL
var imgURL = URL.createObjectURL(imgFile);
resolve(imgURL);
};
request.onerror = reject;
});
}
function saveImageToDb(blob, key, resolve) {
// Open a transaction to the database
var transaction = db.transaction(imagesTableName, "readwrite");
// Put the blob into the dabase
var put = transaction.objectStore(imagesTableName).put({ id: key, data: blob });
// Get window.URL object
var URL = window.URL || window.webkitURL;
var imgURL = URL.createObjectURL(blob);
resolve(imgURL);
}
function getImageUrl(originalUrl) {
var key = getCacheKey(originalUrl);
return getFromDb(key).catch(function () {
return new Promise(function (resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open("GET", originalUrl, true);
// Set the responseType to blob
xhr.responseType = "blob";
xhr.addEventListener("load", function () {
if (xhr.status === 200) {
// Put the received blob into IndexedDB
saveImageToDb(xhr.response, key, resolve);
} else {
reject();
}
}, false);
xhr.onerror = reject;
// Send XHR
xhr.send();
});
});
}
return {
loadImage: function (elem, url) {
if (!db) {
return loadImage(elem, url);
}
return getImageUrl(url).then(function (localUrl) {
return loadImage(elem, localUrl);
}, function () {
return loadImage(elem, url);
});
}
};
});

View file

@ -99,7 +99,7 @@ define(['css!./indicators.css', 'material-icons'], function () {
function getTimerIndicator(item) { function getTimerIndicator(item) {
if (item.SeriesTimerId) { if (item.SeriesTimerId) {
if (item.TimerId) { if (item.TimerId || item.Type == 'Timer') {
return '<i class="md-icon timerIndicator indicatorIcon">&#xE062;</i>'; return '<i class="md-icon timerIndicator indicatorIcon">&#xE062;</i>';
} else { } else {
return '<i class="md-icon timerIndicator timerIndicator-inactive indicatorIcon">&#xE062;</i>'; return '<i class="md-icon timerIndicator timerIndicator-inactive indicatorIcon">&#xE062;</i>';

View file

@ -42,7 +42,7 @@ define(['datetime', 'globalize', 'embyRouter', 'itemHelper', 'material-icons', '
if (options.timerIndicator !== false) { if (options.timerIndicator !== false) {
if (item.SeriesTimerId) { if (item.SeriesTimerId) {
if (item.TimerId) { if (item.TimerId || item.Type == 'Timer') {
miscInfo.push({ miscInfo.push({
html: '<i class="md-icon mediaInfoItem mediaInfoTimerIcon mediaInfoIconItem">&#xE062;</i>' html: '<i class="md-icon mediaInfoItem mediaInfoTimerIcon mediaInfoIconItem">&#xE062;</i>'
}); });

View file

@ -213,7 +213,7 @@
var isChecked = !button.querySelector('i').classList.contains('recordingIcon-active'); var isChecked = !button.querySelector('i').classList.contains('recordingIcon-active');
if (isChecked) { if (isChecked) {
if (!this.TimerId && !this.SeriesTimerId) { if (!this.TimerId) {
loading.show(); loading.show();
recordingHelper.createRecording(apiClient, options.programId, false).then(function () { recordingHelper.createRecording(apiClient, options.programId, false).then(function () {
events.trigger(self, 'recordingchanged'); events.trigger(self, 'recordingchanged');

View file

@ -1,4 +1,4 @@
define(['browser', 'layoutManager', 'dom', 'scrollStyles'], function (browser, layoutManager, dom) { define(['browser', 'layoutManager', 'dom', 'focusManager', 'scrollStyles'], function (browser, layoutManager, dom, focusManager) {
/** /**
* Return type of the value. * Return type of the value.
@ -19,21 +19,6 @@ define(['browser', 'layoutManager', 'dom', 'scrollStyles'], function (browser, l
return typeof value; return typeof value;
} }
/**
* Event preventDefault & stopPropagation helper.
*
* @param {Event} event Event object.
* @param {Bool} noBubbles Cancel event bubbling.
*
* @return {Void}
*/
function stopDefault(event, noBubbles) {
event.preventDefault();
if (noBubbles) {
event.stopPropagation();
}
}
/** /**
* Disables an event it was triggered on and unbinds itself. * Disables an event it was triggered on and unbinds itself.
* *
@ -43,7 +28,8 @@ define(['browser', 'layoutManager', 'dom', 'scrollStyles'], function (browser, l
*/ */
function disableOneEvent(event) { function disableOneEvent(event) {
/*jshint validthis:true */ /*jshint validthis:true */
stopDefault(event, 1); event.preventDefault();
event.stopPropagation();
this.removeEventListener(event.type, disableOneEvent); this.removeEventListener(event.type, disableOneEvent);
} }
@ -599,7 +585,7 @@ define(['browser', 'layoutManager', 'dom', 'scrollStyles'], function (browser, l
if (!isTouch) { if (!isTouch) {
// prevents native image dragging in Firefox // prevents native image dragging in Firefox
stopDefault(event); event.preventDefault();
} }
// Reset dragging object // Reset dragging object
@ -676,7 +662,7 @@ define(['browser', 'layoutManager', 'dom', 'scrollStyles'], function (browser, l
} }
} }
stopDefault(event); event.preventDefault();
// Disable click on a source element, as it is unwelcome when dragging // Disable click on a source element, as it is unwelcome when dragging
if (!dragging.locked && dragging.path > dragging.pathToLock && dragging.slidee) { if (!dragging.locked && dragging.path > dragging.pathToLock && dragging.slidee) {
@ -821,6 +807,11 @@ define(['browser', 'layoutManager', 'dom', 'scrollStyles'], function (browser, l
passive: true passive: true
}); });
dom.removeEventListener(frameElement, 'click', onFrameClick, {
passive: true,
capture: true
});
dragSourceElement.removeEventListener('mousedown', dragInitSlidee); dragSourceElement.removeEventListener('mousedown', dragInitSlidee);
// Reset initialized status and return the instance // Reset initialized status and return the instance
@ -840,6 +831,13 @@ define(['browser', 'layoutManager', 'dom', 'scrollStyles'], function (browser, l
} }
} }
function onFrameClick(e) {
var focusableParent = focusManager.focusableParent(e.target);
if (focusableParent != document.activeElement) {
focusableParent.focus();
}
}
/** /**
* Initialize. * Initialize.
* *
@ -914,6 +912,11 @@ define(['browser', 'layoutManager', 'dom', 'scrollStyles'], function (browser, l
}); });
} }
dom.addEventListener(frameElement, 'click', onFrameClick, {
passive: true,
capture: true
});
// Mark instance as initialized // Mark instance as initialized
self.initialized = 1; self.initialized = 1;

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "Add", "Add": "Add",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "\u0414\u043e\u0431\u0430\u0432\u0438", "Add": "\u0414\u043e\u0431\u0430\u0432\u0438",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "Afegeix", "Add": "Afegeix",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "P\u0159idat", "Add": "P\u0159idat",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Del", "Share": "Del",
"Add": "Tilf\u00f8j", "Add": "Tilf\u00f8j",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "Minuten nach", "MinutesAfter": "Minuten nach",
"LabelKeepUpTo": "Fortf\u00fchren:", "LabelKeepUpTo": "Fortf\u00fchren:",
"AsManyAsPossible": "So viele wie m\u00f6glich", "AsManyAsPossible": "So viele wie m\u00f6glich",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Teilen", "Share": "Teilen",
"Add": "Hinzuf\u00fcgen", "Add": "Hinzuf\u00fcgen",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "\u03a0\u03c1\u03cc\u03c3\u03b8\u03b5\u03c3\u03b5", "Add": "\u03a0\u03c1\u03cc\u03c3\u03b8\u03b5\u03c3\u03b5",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "Add", "Add": "Add",

View file

@ -304,5 +304,8 @@
"SkipEpisodesAlreadyInMyLibraryHelp": "Episodes will be compared using season and episode numbers, when available.", "SkipEpisodesAlreadyInMyLibraryHelp": "Episodes will be compared using season and episode numbers, when available.",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"DefaultErrorMessage": "There was an error processing the request. Please try again later." "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
"LabelKeep:": "Keep:",
"UntilIDelete": "Until I delete",
"UntilSpaceNeeded": "Until space needed"
} }

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "Add", "Add": "Add",

View file

@ -1,16 +1,19 @@
{ {
"LabelRecord": "Record:", "LabelRecord": "Grabar:",
"AllChannels": "All channels", "AllChannels": "Todos los canales",
"NewEpisodesOnly": "New episodes only", "NewEpisodesOnly": "Solo episodios nuevos",
"AllEpisodes": "All episodes", "AllEpisodes": "Todos los episodios",
"LabelStartWhenPossible": "Start when possible:", "LabelStartWhenPossible": "Iniciar cuando sea posible:",
"LabelStopWhenPossible": "Stop when possible:", "LabelStopWhenPossible": "Detener cuando sea posible:",
"MinutesBefore": "minutes before", "MinutesBefore": "Minutos antes",
"SkipEpisodesAlreadyInMyLibraryHelp": "Episodes will be compared using season and episode numbers, when available.", "SkipEpisodesAlreadyInMyLibraryHelp": "Los episodios ser\u00e1n comparados usando el numero de temporada y de episodio, cuando est\u00e9n disponibles.",
"SkipEpisodesAlreadyInMyLibrary": "Skip episodes that are already in my library", "SkipEpisodesAlreadyInMyLibrary": "Saltar episodios que ya se encuentran en mi biblioteca",
"MinutesAfter": "minutes after", "MinutesAfter": "minutos despues",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Mantener hasta:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "Tantos como sea posible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Especial - {0}", "ValueSpecialEpisodeName": "Especial - {0}",
"Share": "Compartir", "Share": "Compartir",
"Add": "Agregar", "Add": "Agregar",
@ -301,12 +304,12 @@
"DeleteMedia": "Eliminar medios", "DeleteMedia": "Eliminar medios",
"SeriesSettings": "Configuraci\u00f3n de la Serie", "SeriesSettings": "Configuraci\u00f3n de la Serie",
"HeaderRecordingOptions": "Opciones de Grabaci\u00f3n", "HeaderRecordingOptions": "Opciones de Grabaci\u00f3n",
"CancelSeries": "Cancel series", "CancelSeries": "Cancelar serie",
"DoNotRecord": "Do not record", "DoNotRecord": "No grabar",
"HeaderSeriesOptions": "Series Options", "HeaderSeriesOptions": "Opciones de Serie",
"LabelChannels": "Channels:", "LabelChannels": "Canales:",
"ChannelNameOnly": "Channel {0} only", "ChannelNameOnly": "Canal {0} solamente",
"Anytime": "Anytime", "Anytime": "En cualquier momento",
"AroundTime": "Around {0}", "AroundTime": "Alrededor de {0}",
"LabelAirtime": "Airtime:" "LabelAirtime": "Duraci\u00f3n:"
} }

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Compartir", "Share": "Compartir",
"Add": "A\u00f1adir", "Add": "A\u00f1adir",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "Add", "Add": "Add",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "Add", "Add": "Add",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Sp\u00e9cial - {0}", "ValueSpecialEpisodeName": "Sp\u00e9cial - {0}",
"Share": "Partager", "Share": "Partager",
"Add": "Ajouter", "Add": "Ajouter",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "Add", "Add": "Add",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "\u05d4\u05d5\u05e1\u05e3", "Add": "\u05d4\u05d5\u05e1\u05e3",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "Dodaj", "Add": "Dodaj",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Megoszt\u00e1s", "Share": "Megoszt\u00e1s",
"Add": "Hozz\u00e1ad", "Add": "Hozz\u00e1ad",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "Add", "Add": "Add",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "Aggiungi", "Add": "Aggiungi",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "\u043c\u0438\u043d\u0443\u0442 \u0441\u043e\u04a3\u044b\u04a3\u0434\u0430", "MinutesAfter": "\u043c\u0438\u043d\u0443\u0442 \u0441\u043e\u04a3\u044b\u04a3\u0434\u0430",
"LabelKeepUpTo": "\u041e\u0441\u044b\u0493\u0430\u043d \u0434\u0435\u0439\u0456\u043d \u04b1\u0441\u0442\u0430\u0443:", "LabelKeepUpTo": "\u041e\u0441\u044b\u0493\u0430\u043d \u0434\u0435\u0439\u0456\u043d \u04b1\u0441\u0442\u0430\u0443:",
"AsManyAsPossible": "\u041c\u04af\u043c\u043a\u0456\u043d\u0434\u0456\u0433\u0456\u043d\u0448\u0435 \u043a\u04e9\u043f", "AsManyAsPossible": "\u041c\u04af\u043c\u043a\u0456\u043d\u0434\u0456\u0433\u0456\u043d\u0448\u0435 \u043a\u04e9\u043f",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "\u0410\u0440\u043d\u0430\u0439\u044b - {0}", "ValueSpecialEpisodeName": "\u0410\u0440\u043d\u0430\u0439\u044b - {0}",
"Share": "\u041e\u0440\u0442\u0430\u049b\u0442\u0430\u0441\u0443", "Share": "\u041e\u0440\u0442\u0430\u049b\u0442\u0430\u0441\u0443",
"Add": "\u04ae\u0441\u0442\u0435\u0443", "Add": "\u04ae\u0441\u0442\u0435\u0443",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "\ucd94\uac00", "Add": "\ucd94\uac00",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "Add", "Add": "Add",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Spesial - {0}", "ValueSpecialEpisodeName": "Spesial - {0}",
"Share": "Del", "Share": "Del",
"Add": "Legg til", "Add": "Legg til",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Speciaal - {0}", "ValueSpecialEpisodeName": "Speciaal - {0}",
"Share": "Delen", "Share": "Delen",
"Add": "Toevoegen", "Add": "Toevoegen",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "Dodaj", "Add": "Dodaj",

View file

@ -7,10 +7,13 @@
"LabelStopWhenPossible": "Parar quando poss\u00edvel:", "LabelStopWhenPossible": "Parar quando poss\u00edvel:",
"MinutesBefore": "minutos antes de", "MinutesBefore": "minutos antes de",
"SkipEpisodesAlreadyInMyLibraryHelp": "Epis\u00f3dios ser\u00e3o comparados utilizando temporada e n\u00fameros de epis\u00f3dios, quando dispon\u00edveis.", "SkipEpisodesAlreadyInMyLibraryHelp": "Epis\u00f3dios ser\u00e3o comparados utilizando temporada e n\u00fameros de epis\u00f3dios, quando dispon\u00edveis.",
"SkipEpisodesAlreadyInMyLibrary": "Pular grava\u00e7\u00e3o de epis\u00f3dios que j\u00e1 estiverem em minha biblioteca", "SkipEpisodesAlreadyInMyLibrary": "Ignorar epis\u00f3dios que j\u00e1 estejam em minha biblioteca",
"MinutesAfter": "minutos ap\u00f3s", "MinutesAfter": "minutos ap\u00f3s",
"LabelKeepUpTo": "Manter at\u00e9:", "LabelKeepUpTo": "Manter at\u00e9:",
"AsManyAsPossible": "Quantos forem poss\u00edveis", "AsManyAsPossible": "Quantos forem poss\u00edveis",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Especial - {0}", "ValueSpecialEpisodeName": "Especial - {0}",
"Share": "Compartilhar", "Share": "Compartilhar",
"Add": "Adicionar", "Add": "Adicionar",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Especial - {0}", "ValueSpecialEpisodeName": "Especial - {0}",
"Share": "Partilhar", "Share": "Partilhar",
"Add": "Adicionar", "Add": "Adicionar",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "Add", "Add": "Add",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "\u043c\u0438\u043d\u0443\u0442\u044b \u043f\u043e\u0441\u043b\u0435", "MinutesAfter": "\u043c\u0438\u043d\u0443\u0442\u044b \u043f\u043e\u0441\u043b\u0435",
"LabelKeepUpTo": "\u0421\u0431\u0435\u0440\u0435\u0433\u0430\u0442\u044c \u0434\u043e:", "LabelKeepUpTo": "\u0421\u0431\u0435\u0440\u0435\u0433\u0430\u0442\u044c \u0434\u043e:",
"AsManyAsPossible": "\u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435", "AsManyAsPossible": "\u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "\u0421\u043f\u0435\u0446\u044d\u043f\u0438\u0437\u043e\u0434 - {0}", "ValueSpecialEpisodeName": "\u0421\u043f\u0435\u0446\u044d\u043f\u0438\u0437\u043e\u0434 - {0}",
"Share": "\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f", "Share": "\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f",
"Add": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c", "Add": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "Add", "Add": "Add",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "Add", "Add": "Add",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Specialavsnitt - {0}", "ValueSpecialEpisodeName": "Specialavsnitt - {0}",
"Share": "Dela", "Share": "Dela",
"Add": "L\u00e4gg till", "Add": "L\u00e4gg till",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "Ekle", "Add": "Ekle",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "Add", "Add": "Add",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "Th\u00eam", "Add": "Th\u00eam",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "\u6dfb\u52a0", "Add": "\u6dfb\u52a0",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Share", "Share": "Share",
"Add": "\u65b0\u589e", "Add": "\u65b0\u589e",

View file

@ -11,6 +11,9 @@
"MinutesAfter": "minutes after", "MinutesAfter": "minutes after",
"LabelKeepUpTo": "Keep up to:", "LabelKeepUpTo": "Keep up to:",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"UntilIDelete": "Until I delete",
"LabelKeep:": "Keep:",
"UntilSpaceNeeded": "Until space needed",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "\u5206\u4eab", "Share": "\u5206\u4eab",
"Add": "\u6dfb\u52a0", "Add": "\u6dfb\u52a0",

View file

@ -1,11 +1,9 @@
define(['dialogHelper', 'jQuery', 'emby-input', 'emby-button', 'emby-collapse', 'emby-checkbox', 'paper-icon-button-light', 'formDialogStyle'], function (dialogHelper, $) { define(['dialogHelper', 'jQuery', 'emby-input', 'emby-button', 'emby-checkbox', 'paper-icon-button-light', 'formDialogStyle'], function (dialogHelper, $) {
function renderLibrarySharingList(context, result) { function renderLibrarySharingList(context, result) {
var folderHtml = ''; var folderHtml = '';
folderHtml += '<div class="checkboxList">';
folderHtml += result.Items.map(function (i) { folderHtml += result.Items.map(function (i) {
var currentHtml = ''; var currentHtml = '';
@ -18,8 +16,6 @@
}).join(''); }).join('');
folderHtml += '</div>';
context.querySelector('.librarySharingList').innerHTML = folderHtml; context.querySelector('.librarySharingList').innerHTML = folderHtml;
} }

View file

@ -16,13 +16,11 @@
</div> </div>
</div> </div>
<div is="emby-collapse" title="${HeaderShareMediaFolders}"> <h3 class="checkboxListLabel">${HeaderShareMediaFolders}</h3>
<div class="collapseContent"> <div class="librarySharingList checkboxList paperList checkboxList-paperList">
<div class="librarySharingList">
</div>
</div>
</div> </div>
<p class="fieldDescription" style="margin-top:.5em;">${MessageGuestSharingPermissionsHelp}</p> <p class="fieldDescription" style="margin-top:.5em;">${MessageGuestSharingPermissionsHelp}</p>
<br /> <br />

View file

@ -223,22 +223,20 @@
html += plugin.name; html += plugin.name;
html += "</div>"; html += "</div>";
if (!plugin.isExternal) { // html += "<div class='cardText' style='display:flex;align-items:center;'>";
html += "<div class='cardText' style='display:flex;align-items:center;'>";
if (plugin.avgRating) { // if (plugin.avgRating) {
html += '<i class="md-icon" style="color:#cc3333;margin-right:.25em;">star</i>'; // html += '<i class="md-icon" style="color:#cc3333;margin-right:.25em;">star</i>';
html += plugin.avgRating.toFixed(1); // html += plugin.avgRating.toFixed(1);
} // }
if (plugin.totalRatings) { // if (plugin.totalRatings) {
html += "<div style='margin-left:.5em;'>"; // html += "<div style='margin-left:.5em;'>";
html += " " + Globalize.translate('LabelNumberReviews').replace("{0}", plugin.totalRatings); // html += " " + Globalize.translate('LabelNumberReviews').replace("{0}", plugin.totalRatings);
} // }
html += "</div>"; // html += "</div>";
html += "</div>"; // html += "</div>";
}
var installedPlugin = plugin.isApp ? null : installedPlugins.filter(function (ip) { var installedPlugin = plugin.isApp ? null : installedPlugins.filter(function (ip) {
return ip.Id == plugin.guid; return ip.Id == plugin.guid;

View file

@ -1688,7 +1688,7 @@ var AppInfo = {};
define("videorenderer", ["cordova/android/vlcplayer"]); define("videorenderer", ["cordova/android/vlcplayer"]);
} }
else if (Dashboard.isRunningInCordova() && browserInfo.safari) { else if (Dashboard.isRunningInCordova() && browserInfo.safari) {
define("audiorenderer", ["cordova/audioplayer"]); define("audiorenderer", ["cordova/ios/audioplayer"]);
define("videorenderer", ["scripts/htmlmediarenderer"]); define("videorenderer", ["scripts/htmlmediarenderer"]);
} }
else { else {
@ -2694,12 +2694,9 @@ var AppInfo = {};
postInitDependencies.push('cordova/android/mediasession'); postInitDependencies.push('cordova/android/mediasession');
postInitDependencies.push('cordova/android/chromecast'); postInitDependencies.push('cordova/android/chromecast');
} else { } else if (browserInfo.safari) {
postInitDependencies.push('cordova/volume');
}
if (browserInfo.safari) {
postInitDependencies.push('cordova/ios/volume');
postInitDependencies.push('cordova/ios/chromecast'); postInitDependencies.push('cordova/ios/chromecast');
postInitDependencies.push('cordova/ios/orientation'); postInitDependencies.push('cordova/ios/orientation');
postInitDependencies.push('cordova/ios/remotecontrols'); postInitDependencies.push('cordova/ios/remotecontrols');