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:
parent
47c67da9a5
commit
633e2f0222
54 changed files with 375 additions and 83 deletions
|
@ -16,12 +16,12 @@
|
|||
},
|
||||
"devDependencies": {},
|
||||
"ignore": [],
|
||||
"version": "1.1.83",
|
||||
"_release": "1.1.83",
|
||||
"version": "1.1.84",
|
||||
"_release": "1.1.84",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "1.1.83",
|
||||
"commit": "64d6582c85ba3ab677f81bdb9d535587b5de3c65"
|
||||
"tag": "1.1.84",
|
||||
"commit": "adc79119a845784ce08fa33930e6eb903dfab16a"
|
||||
},
|
||||
"_source": "https://github.com/MediaBrowser/Emby.ApiClient.Javascript.git",
|
||||
"_target": "^1.1.51",
|
||||
|
|
|
@ -215,7 +215,7 @@
|
|||
return connectUser;
|
||||
};
|
||||
|
||||
var minServerVersion = '3.0.5980';
|
||||
var minServerVersion = '3.0.5984';
|
||||
self.minServerVersion = function (val) {
|
||||
|
||||
if (val) {
|
||||
|
|
|
@ -14,12 +14,12 @@
|
|||
},
|
||||
"devDependencies": {},
|
||||
"ignore": [],
|
||||
"version": "1.4.263",
|
||||
"_release": "1.4.263",
|
||||
"version": "1.4.266",
|
||||
"_release": "1.4.266",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "1.4.263",
|
||||
"commit": "a688a5c033af169003a172bc593f57a31577de33"
|
||||
"tag": "1.4.266",
|
||||
"commit": "502bce3cd1a2ced4a61a80236291c1a4bbfda690"
|
||||
},
|
||||
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
|
||||
"_target": "^1.2.1",
|
||||
|
|
|
@ -154,7 +154,7 @@ define(['browser'], function (browser) {
|
|||
videoAudioCodecs = [];
|
||||
break;
|
||||
case 'avi':
|
||||
supported = browser.edgeUwp;
|
||||
supported = browser.tizen || browser.edgeUwp;
|
||||
break;
|
||||
case 'mpg':
|
||||
case 'mpeg':
|
||||
|
|
|
@ -131,8 +131,10 @@
|
|||
|
||||
.checkboxList-paperList {
|
||||
padding: 1em !important;
|
||||
margin: .75em 0 !important;
|
||||
}
|
||||
|
||||
.checkboxListLabel {
|
||||
opacity: .7;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
|
178
dashboard-ui/bower_components/emby-webcomponents/images/indexeddbimagefetcher.js
vendored
Normal file
178
dashboard-ui/bower_components/emby-webcomponents/images/indexeddbimagefetcher.js
vendored
Normal 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);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
});
|
|
@ -99,7 +99,7 @@ define(['css!./indicators.css', 'material-icons'], function () {
|
|||
function getTimerIndicator(item) {
|
||||
|
||||
if (item.SeriesTimerId) {
|
||||
if (item.TimerId) {
|
||||
if (item.TimerId || item.Type == 'Timer') {
|
||||
return '<i class="md-icon timerIndicator indicatorIcon"></i>';
|
||||
} else {
|
||||
return '<i class="md-icon timerIndicator timerIndicator-inactive indicatorIcon"></i>';
|
||||
|
|
|
@ -42,7 +42,7 @@ define(['datetime', 'globalize', 'embyRouter', 'itemHelper', 'material-icons', '
|
|||
|
||||
if (options.timerIndicator !== false) {
|
||||
if (item.SeriesTimerId) {
|
||||
if (item.TimerId) {
|
||||
if (item.TimerId || item.Type == 'Timer') {
|
||||
miscInfo.push({
|
||||
html: '<i class="md-icon mediaInfoItem mediaInfoTimerIcon mediaInfoIconItem"></i>'
|
||||
});
|
||||
|
|
|
@ -213,7 +213,7 @@
|
|||
var isChecked = !button.querySelector('i').classList.contains('recordingIcon-active');
|
||||
|
||||
if (isChecked) {
|
||||
if (!this.TimerId && !this.SeriesTimerId) {
|
||||
if (!this.TimerId) {
|
||||
loading.show();
|
||||
recordingHelper.createRecording(apiClient, options.programId, false).then(function () {
|
||||
events.trigger(self, 'recordingchanged');
|
||||
|
|
|
@ -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.
|
||||
|
@ -19,21 +19,6 @@ define(['browser', 'layoutManager', 'dom', 'scrollStyles'], function (browser, l
|
|||
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.
|
||||
*
|
||||
|
@ -43,7 +28,8 @@ define(['browser', 'layoutManager', 'dom', 'scrollStyles'], function (browser, l
|
|||
*/
|
||||
function disableOneEvent(event) {
|
||||
/*jshint validthis:true */
|
||||
stopDefault(event, 1);
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
this.removeEventListener(event.type, disableOneEvent);
|
||||
}
|
||||
|
||||
|
@ -599,7 +585,7 @@ define(['browser', 'layoutManager', 'dom', 'scrollStyles'], function (browser, l
|
|||
|
||||
if (!isTouch) {
|
||||
// prevents native image dragging in Firefox
|
||||
stopDefault(event);
|
||||
event.preventDefault();
|
||||
}
|
||||
|
||||
// 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
|
||||
if (!dragging.locked && dragging.path > dragging.pathToLock && dragging.slidee) {
|
||||
|
@ -821,6 +807,11 @@ define(['browser', 'layoutManager', 'dom', 'scrollStyles'], function (browser, l
|
|||
passive: true
|
||||
});
|
||||
|
||||
dom.removeEventListener(frameElement, 'click', onFrameClick, {
|
||||
passive: true,
|
||||
capture: true
|
||||
});
|
||||
|
||||
dragSourceElement.removeEventListener('mousedown', dragInitSlidee);
|
||||
|
||||
// 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.
|
||||
*
|
||||
|
@ -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
|
||||
self.initialized = 1;
|
||||
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "Add",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "\u0414\u043e\u0431\u0430\u0432\u0438",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "Afegeix",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "P\u0159idat",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Del",
|
||||
"Add": "Tilf\u00f8j",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "Minuten nach",
|
||||
"LabelKeepUpTo": "Fortf\u00fchren:",
|
||||
"AsManyAsPossible": "So viele wie m\u00f6glich",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Teilen",
|
||||
"Add": "Hinzuf\u00fcgen",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "\u03a0\u03c1\u03cc\u03c3\u03b8\u03b5\u03c3\u03b5",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "Add",
|
||||
|
|
|
@ -304,5 +304,8 @@
|
|||
"SkipEpisodesAlreadyInMyLibraryHelp": "Episodes will be compared using season and episode numbers, when available.",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"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"
|
||||
}
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "Add",
|
||||
|
|
|
@ -1,16 +1,19 @@
|
|||
{
|
||||
"LabelRecord": "Record:",
|
||||
"AllChannels": "All channels",
|
||||
"NewEpisodesOnly": "New episodes only",
|
||||
"AllEpisodes": "All episodes",
|
||||
"LabelStartWhenPossible": "Start when possible:",
|
||||
"LabelStopWhenPossible": "Stop when possible:",
|
||||
"MinutesBefore": "minutes before",
|
||||
"SkipEpisodesAlreadyInMyLibraryHelp": "Episodes will be compared using season and episode numbers, when available.",
|
||||
"SkipEpisodesAlreadyInMyLibrary": "Skip episodes that are already in my library",
|
||||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"LabelRecord": "Grabar:",
|
||||
"AllChannels": "Todos los canales",
|
||||
"NewEpisodesOnly": "Solo episodios nuevos",
|
||||
"AllEpisodes": "Todos los episodios",
|
||||
"LabelStartWhenPossible": "Iniciar cuando sea posible:",
|
||||
"LabelStopWhenPossible": "Detener cuando sea posible:",
|
||||
"MinutesBefore": "Minutos antes",
|
||||
"SkipEpisodesAlreadyInMyLibraryHelp": "Los episodios ser\u00e1n comparados usando el numero de temporada y de episodio, cuando est\u00e9n disponibles.",
|
||||
"SkipEpisodesAlreadyInMyLibrary": "Saltar episodios que ya se encuentran en mi biblioteca",
|
||||
"MinutesAfter": "minutos despues",
|
||||
"LabelKeepUpTo": "Mantener hasta:",
|
||||
"AsManyAsPossible": "Tantos como sea posible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Especial - {0}",
|
||||
"Share": "Compartir",
|
||||
"Add": "Agregar",
|
||||
|
@ -301,12 +304,12 @@
|
|||
"DeleteMedia": "Eliminar medios",
|
||||
"SeriesSettings": "Configuraci\u00f3n de la Serie",
|
||||
"HeaderRecordingOptions": "Opciones de Grabaci\u00f3n",
|
||||
"CancelSeries": "Cancel series",
|
||||
"DoNotRecord": "Do not record",
|
||||
"HeaderSeriesOptions": "Series Options",
|
||||
"LabelChannels": "Channels:",
|
||||
"ChannelNameOnly": "Channel {0} only",
|
||||
"Anytime": "Anytime",
|
||||
"AroundTime": "Around {0}",
|
||||
"LabelAirtime": "Airtime:"
|
||||
"CancelSeries": "Cancelar serie",
|
||||
"DoNotRecord": "No grabar",
|
||||
"HeaderSeriesOptions": "Opciones de Serie",
|
||||
"LabelChannels": "Canales:",
|
||||
"ChannelNameOnly": "Canal {0} solamente",
|
||||
"Anytime": "En cualquier momento",
|
||||
"AroundTime": "Alrededor de {0}",
|
||||
"LabelAirtime": "Duraci\u00f3n:"
|
||||
}
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Compartir",
|
||||
"Add": "A\u00f1adir",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "Add",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "Add",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Sp\u00e9cial - {0}",
|
||||
"Share": "Partager",
|
||||
"Add": "Ajouter",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "Add",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "\u05d4\u05d5\u05e1\u05e3",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "Dodaj",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Megoszt\u00e1s",
|
||||
"Add": "Hozz\u00e1ad",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "Add",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "Aggiungi",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"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:",
|
||||
"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}",
|
||||
"Share": "\u041e\u0440\u0442\u0430\u049b\u0442\u0430\u0441\u0443",
|
||||
"Add": "\u04ae\u0441\u0442\u0435\u0443",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "\ucd94\uac00",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "Add",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Spesial - {0}",
|
||||
"Share": "Del",
|
||||
"Add": "Legg til",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Speciaal - {0}",
|
||||
"Share": "Delen",
|
||||
"Add": "Toevoegen",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "Dodaj",
|
||||
|
|
|
@ -7,10 +7,13 @@
|
|||
"LabelStopWhenPossible": "Parar quando poss\u00edvel:",
|
||||
"MinutesBefore": "minutos antes de",
|
||||
"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",
|
||||
"LabelKeepUpTo": "Manter at\u00e9:",
|
||||
"AsManyAsPossible": "Quantos forem poss\u00edveis",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Especial - {0}",
|
||||
"Share": "Compartilhar",
|
||||
"Add": "Adicionar",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Especial - {0}",
|
||||
"Share": "Partilhar",
|
||||
"Add": "Adicionar",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "Add",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "\u043c\u0438\u043d\u0443\u0442\u044b \u043f\u043e\u0441\u043b\u0435",
|
||||
"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",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "\u0421\u043f\u0435\u0446\u044d\u043f\u0438\u0437\u043e\u0434 - {0}",
|
||||
"Share": "\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f",
|
||||
"Add": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "Add",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "Add",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Specialavsnitt - {0}",
|
||||
"Share": "Dela",
|
||||
"Add": "L\u00e4gg till",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "Ekle",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "Add",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "Th\u00eam",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "\u6dfb\u52a0",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "Share",
|
||||
"Add": "\u65b0\u589e",
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"MinutesAfter": "minutes after",
|
||||
"LabelKeepUpTo": "Keep up to:",
|
||||
"AsManyAsPossible": "As many as possible",
|
||||
"UntilIDelete": "Until I delete",
|
||||
"LabelKeep:": "Keep:",
|
||||
"UntilSpaceNeeded": "Until space needed",
|
||||
"ValueSpecialEpisodeName": "Special - {0}",
|
||||
"Share": "\u5206\u4eab",
|
||||
"Add": "\u6dfb\u52a0",
|
||||
|
|
|
@ -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) {
|
||||
|
||||
var folderHtml = '';
|
||||
|
||||
folderHtml += '<div class="checkboxList">';
|
||||
|
||||
folderHtml += result.Items.map(function (i) {
|
||||
|
||||
var currentHtml = '';
|
||||
|
@ -18,8 +16,6 @@
|
|||
|
||||
}).join('');
|
||||
|
||||
folderHtml += '</div>';
|
||||
|
||||
context.querySelector('.librarySharingList').innerHTML = folderHtml;
|
||||
}
|
||||
|
||||
|
|
|
@ -16,13 +16,11 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div is="emby-collapse" title="${HeaderShareMediaFolders}">
|
||||
<div class="collapseContent">
|
||||
<div class="librarySharingList">
|
||||
<h3 class="checkboxListLabel">${HeaderShareMediaFolders}</h3>
|
||||
<div class="librarySharingList checkboxList paperList checkboxList-paperList">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="fieldDescription" style="margin-top:.5em;">${MessageGuestSharingPermissionsHelp}</p>
|
||||
<br />
|
||||
|
||||
|
|
|
@ -223,22 +223,20 @@
|
|||
html += plugin.name;
|
||||
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) {
|
||||
html += '<i class="md-icon" style="color:#cc3333;margin-right:.25em;">star</i>';
|
||||
html += plugin.avgRating.toFixed(1);
|
||||
}
|
||||
// if (plugin.avgRating) {
|
||||
// html += '<i class="md-icon" style="color:#cc3333;margin-right:.25em;">star</i>';
|
||||
// html += plugin.avgRating.toFixed(1);
|
||||
// }
|
||||
|
||||
if (plugin.totalRatings) {
|
||||
html += "<div style='margin-left:.5em;'>";
|
||||
html += " " + Globalize.translate('LabelNumberReviews').replace("{0}", plugin.totalRatings);
|
||||
}
|
||||
html += "</div>";
|
||||
// if (plugin.totalRatings) {
|
||||
// html += "<div style='margin-left:.5em;'>";
|
||||
// html += " " + Globalize.translate('LabelNumberReviews').replace("{0}", plugin.totalRatings);
|
||||
// }
|
||||
// html += "</div>";
|
||||
|
||||
html += "</div>";
|
||||
}
|
||||
// html += "</div>";
|
||||
|
||||
var installedPlugin = plugin.isApp ? null : installedPlugins.filter(function (ip) {
|
||||
return ip.Id == plugin.guid;
|
||||
|
|
|
@ -1688,7 +1688,7 @@ var AppInfo = {};
|
|||
define("videorenderer", ["cordova/android/vlcplayer"]);
|
||||
}
|
||||
else if (Dashboard.isRunningInCordova() && browserInfo.safari) {
|
||||
define("audiorenderer", ["cordova/audioplayer"]);
|
||||
define("audiorenderer", ["cordova/ios/audioplayer"]);
|
||||
define("videorenderer", ["scripts/htmlmediarenderer"]);
|
||||
}
|
||||
else {
|
||||
|
@ -2694,12 +2694,9 @@ var AppInfo = {};
|
|||
postInitDependencies.push('cordova/android/mediasession');
|
||||
postInitDependencies.push('cordova/android/chromecast');
|
||||
|
||||
} else {
|
||||
postInitDependencies.push('cordova/volume');
|
||||
}
|
||||
|
||||
if (browserInfo.safari) {
|
||||
} else if (browserInfo.safari) {
|
||||
|
||||
postInitDependencies.push('cordova/ios/volume');
|
||||
postInitDependencies.push('cordova/ios/chromecast');
|
||||
postInitDependencies.push('cordova/ios/orientation');
|
||||
postInitDependencies.push('cordova/ios/remotecontrols');
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue