mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
merge branch master into routes
This commit is contained in:
commit
a98625cc5b
13 changed files with 95 additions and 45 deletions
12
gulpfile.js
12
gulpfile.js
|
@ -183,6 +183,12 @@ function copy(query) {
|
|||
.pipe(browserSync.stream());
|
||||
}
|
||||
|
||||
function copyIndex() {
|
||||
return src(options.injectBundle.query, { base: './src/' })
|
||||
.pipe(dest('dist/'))
|
||||
.pipe(browserSync.stream());
|
||||
}
|
||||
|
||||
function injectBundle() {
|
||||
return src(options.injectBundle.query, { base: './src/' })
|
||||
.pipe(inject(
|
||||
|
@ -193,9 +199,9 @@ function injectBundle() {
|
|||
}
|
||||
|
||||
function build(standalone) {
|
||||
return series(clean, parallel(javascript, apploader(standalone), webpack, css, html, images, copy), injectBundle);
|
||||
return series(clean, parallel(javascript, apploader(standalone), webpack, css, html, images, copy));
|
||||
}
|
||||
|
||||
exports.default = build(false);
|
||||
exports.standalone = build(true);
|
||||
exports.default = series(build(false), copyIndex);
|
||||
exports.standalone = series(build(true), injectBundle);
|
||||
exports.serve = series(exports.standalone, serve);
|
||||
|
|
|
@ -61,6 +61,7 @@
|
|||
"document-register-element": "^1.14.3",
|
||||
"fast-text-encoding": "^1.0.1",
|
||||
"flv.js": "^1.5.0",
|
||||
"headroom.js": "^0.11.0",
|
||||
"hls.js": "^0.13.1",
|
||||
"howler": "^2.1.3",
|
||||
"intersection-observer": "^0.7.0",
|
||||
|
|
|
@ -96,3 +96,16 @@ div[data-role=page] {
|
|||
margin-right: auto;
|
||||
width: 85%;
|
||||
}
|
||||
|
||||
.headroom {
|
||||
will-change: transform;
|
||||
transition: transform 200ms linear;
|
||||
}
|
||||
|
||||
.headroom--pinned {
|
||||
transform: translateY(0%);
|
||||
}
|
||||
|
||||
.headroom--unpinned {
|
||||
transform: translateY(-100%);
|
||||
}
|
||||
|
|
|
@ -146,3 +146,9 @@ var screenfull = require("screenfull");
|
|||
_define("screenfull", function () {
|
||||
return screenfull;
|
||||
});
|
||||
|
||||
// headroom.js
|
||||
var headroom = require("headroom.js/dist/headroom");
|
||||
_define("headroom", function () {
|
||||
return headroom;
|
||||
});
|
||||
|
|
|
@ -96,17 +96,6 @@ define(['scroller', 'dom', 'layoutManager', 'inputManager', 'focusManager', 'bro
|
|||
}
|
||||
}
|
||||
|
||||
function initHeadroom(elem) {
|
||||
require(['headroom'], function (Headroom) {
|
||||
var headroom = new Headroom([], {
|
||||
scroller: elem
|
||||
});
|
||||
|
||||
headroom.add(document.querySelector('.skinHeader'));
|
||||
elem.headroom = headroom;
|
||||
});
|
||||
}
|
||||
|
||||
ScrollerPrototype.attachedCallback = function () {
|
||||
if (this.getAttribute('data-navcommands')) {
|
||||
inputManager.on(this, onInputCommand);
|
||||
|
@ -120,8 +109,6 @@ define(['scroller', 'dom', 'layoutManager', 'inputManager', 'focusManager', 'bro
|
|||
slider.style['white-space'] = 'nowrap';
|
||||
}
|
||||
|
||||
var bindHeader = this.getAttribute('data-bindheader') === 'true';
|
||||
|
||||
var scrollFrame = this;
|
||||
var enableScrollButtons = layoutManager.desktop && horizontal && this.getAttribute('data-scrollbuttons') !== 'false';
|
||||
|
||||
|
@ -137,7 +124,7 @@ define(['scroller', 'dom', 'layoutManager', 'inputManager', 'focusManager', 'bro
|
|||
dragHandle: 1,
|
||||
autoImmediate: true,
|
||||
skipSlideToWhenVisible: this.getAttribute('data-skipfocuswhenvisible') === 'true',
|
||||
dispatchScrollEvent: enableScrollButtons || bindHeader || this.getAttribute('data-scrollevent') === 'true',
|
||||
dispatchScrollEvent: enableScrollButtons || this.getAttribute('data-scrollevent') === 'true',
|
||||
hideScrollbar: enableScrollButtons || this.getAttribute('data-hidescrollbar') === 'true',
|
||||
allowNativeSmoothScroll: this.getAttribute('data-allownativesmoothscroll') === 'true' && !enableScrollButtons,
|
||||
allowNativeScroll: !enableScrollButtons,
|
||||
|
@ -155,10 +142,6 @@ define(['scroller', 'dom', 'layoutManager', 'inputManager', 'focusManager', 'bro
|
|||
initCenterFocus(this, this.scroller);
|
||||
}
|
||||
|
||||
if (bindHeader && layoutManager.mobile) {
|
||||
initHeadroom(this);
|
||||
}
|
||||
|
||||
if (enableScrollButtons) {
|
||||
loadScrollButtons(this);
|
||||
}
|
||||
|
|
|
@ -29,6 +29,16 @@
|
|||
);
|
||||
}
|
||||
|
||||
try {
|
||||
Promise.resolve();
|
||||
} catch (ex) {
|
||||
// this checks for several cases actually, typical is
|
||||
// Promise() being missing on some legacy browser, and a funky one
|
||||
// is Promise() present but buggy on WebOS 2
|
||||
window.Promise = undefined;
|
||||
self.Promise = undefined;
|
||||
}
|
||||
|
||||
if (!self.Promise) {
|
||||
// Load Promise polyfill if they are not natively supported
|
||||
injectScriptElement(
|
||||
|
|
|
@ -733,8 +733,8 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
|
|||
|
||||
function initHeadRoom(elem) {
|
||||
require(["headroom"], function (Headroom) {
|
||||
var headroom = new Headroom([], {});
|
||||
headroom.add(elem);
|
||||
var headroom = new Headroom(elem);
|
||||
headroom.init();
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -350,11 +350,6 @@ var AppInfo = {};
|
|||
return layoutManager;
|
||||
}
|
||||
|
||||
function createWindowHeadroom(Headroom) {
|
||||
var headroom = new Headroom([], {});
|
||||
return headroom;
|
||||
}
|
||||
|
||||
function createSharedAppFooter(appFooter) {
|
||||
return new appFooter({});
|
||||
}
|
||||
|
@ -705,7 +700,8 @@ var AppInfo = {};
|
|||
"fast-text-encoding",
|
||||
"intersection-observer",
|
||||
"classlist-polyfill",
|
||||
"screenfull"
|
||||
"screenfull",
|
||||
"headroom"
|
||||
]
|
||||
},
|
||||
urlArgs: urlArgs,
|
||||
|
@ -764,7 +760,6 @@ var AppInfo = {};
|
|||
|
||||
// TODO remove these libraries
|
||||
// all of these have been modified so we need to fix that first
|
||||
define("headroom", [bowerPath + "/headroom/headroom"], returnFirstDependency);
|
||||
define("scroller", [bowerPath + "/scroller"], returnFirstDependency);
|
||||
define("navdrawer", [bowerPath + "/navdrawer/navdrawer"], returnFirstDependency);
|
||||
|
||||
|
|
|
@ -277,10 +277,10 @@
|
|||
"MaxParentalRatingHelp": "תוכן עם דירוג גובה יותר יוסתר מהמשתמש.",
|
||||
"MessageAreYouSureDeleteSubtitles": "האם אתה בטוח שברצונך למחוק קובץ כתובית זה?",
|
||||
"MessageConfirmRecordingCancellation": "האם אתה בטוח שברצונך לבטל הקלטה זו?",
|
||||
"MessageDownloadQueued": "הורד תור",
|
||||
"MessageDownloadQueued": "הורדה נוספה לתור.",
|
||||
"MessageItemSaved": "הפריט נשמר.",
|
||||
"MessageItemsAdded": "פריטים נוספו.",
|
||||
"MessageLeaveEmptyToInherit": "השאר ריק כדי לרשת את ההגדרות מפריט אב, או את ערך ברירת המחדל הגלובלי.",
|
||||
"MessageLeaveEmptyToInherit": "השאר ריק כדי לרשת את ההגדרות מפריט אב או את ערך ברירת המחדל הגלובלי.",
|
||||
"MessageNothingHere": "אין כאן כלום.",
|
||||
"MessagePleaseEnsureInternetMetadata": "בבקשה וודא כי הורדת מידע מהאינטרנט מאופשרת",
|
||||
"MinutesAfter": "דקות אחרי",
|
||||
|
@ -528,7 +528,7 @@
|
|||
"Audio": "שמע",
|
||||
"AspectRatio": "יחס גובה-רוחב",
|
||||
"AlwaysPlaySubtitlesHelp": "כתוביות בשפה המועדפת ייטענו ללא קשר לשפת השמע.",
|
||||
"AlwaysPlaySubtitles": "הפעל כתוביות תמיד",
|
||||
"AlwaysPlaySubtitles": "הפעל תמיד",
|
||||
"AllowRemoteAccessHelp": "אם לא מסומן, כל החיבורים המרוחקים ייחסמו.",
|
||||
"AllowRemoteAccess": "אפשר חיבור מרוחק לשרת Jellyfin זה.",
|
||||
"AllowMediaConversionHelp": "אפשר או חסום גישה להמרת מדיה.",
|
||||
|
@ -548,8 +548,8 @@
|
|||
"HeaderContinueWatching": "המשך לצפות",
|
||||
"AllowOnTheFlySubtitleExtraction": "אפשר חילוץ כתוביות בזמן אמת",
|
||||
"AllowHWTranscodingHelp": "אפשר למלקט לקודד הזרמות בזמן אמת. זה עשוי לעזור בהפחתת הקידוד שנעשה ע\"י השרת.",
|
||||
"AllComplexFormats": "כל הפורמטים המורכבים (ASS, SSA, VOBSUB, PGS, SUB\\IDX וכדומה)",
|
||||
"AddItemToCollectionHelp": "הוסף פריטים לאוספים ע\"י חיפושם ושימוש בלחצן ימני או הקשה על התפריט כדי להוסיף אותם לאוסף.",
|
||||
"AllComplexFormats": "כל הפורמטים המורכבים (ASS, SSA, VOBSUB, PGS, SUB/IDX)",
|
||||
"AddItemToCollectionHelp": "הוסף חפצים לאוסף על ידי חיפוש שלהם ולחיצה על כפתור ימני בעכבר או כפתור התפריט כדי להוסיף לאוסף.",
|
||||
"Songs": "שירים",
|
||||
"Shows": "סדרות",
|
||||
"DownloadsValue": "{0} הורדות",
|
||||
|
@ -741,5 +741,25 @@
|
|||
"Browse": "עיין",
|
||||
"BoxRear": "מארז (מאחור)",
|
||||
"BookLibraryHelp": "ניתן להוסיף ספרים מוקלטים וספרים כתובים. עיינו {0}במדריך מתן שמות לספרים{1}.",
|
||||
"Desktop": "שולחן עבודה"
|
||||
"Desktop": "שולחן עבודה",
|
||||
"MessageUnauthorizedUser": "אין לך גישה לשרת ברגע זה. אנא צור קשר עם מנהל השרת למידע נוסף.",
|
||||
"MessageDeleteTaskTrigger": "האם אתה בטוח שברצונך למחוק את מפעיל המשימה הזה?",
|
||||
"LastSeen": "נראה לאחרונה ב-{0}",
|
||||
"PersonRole": "כ-{0}",
|
||||
"ListPaging": "{0}-{1} מתוך {2}",
|
||||
"EveryXHours": "בכל {0} שעות",
|
||||
"OnApplicationStartup": "באתחול היישום",
|
||||
"DeleteUserConfirmation": "האם אתה בטוח שברצונך למחוק את המשתמש?",
|
||||
"DeleteDeviceConfirmation": "האם אתה בטוח שברצונך למחוק את המכשיר? הוא יופיע שוב בפעם הבאה שמשתמש ייכנס באמצעותו.",
|
||||
"ColorSpace": "מרחב צבע",
|
||||
"CinemaModeConfigurationHelp": "מצב קולנוע מביא את חוויית הקולנוע היישר אל הסלון עם האפשרות להפעיל טריילרים וקדימונים מותאמים אישית לפני הסרט.",
|
||||
"ChannelAccessHelp": "בחר את הערוצים לשיתוף עם משתמש זה. מנהלים יוכלו לערוך את כל הערוצים בעזרת \"מנהל המטא-דאטה\".",
|
||||
"ButtonResetEasyPassword": "אתחל קוד פין פשוט",
|
||||
"ButtonOff": "כיבוי",
|
||||
"ButtonLibraryAccess": "הרשאות גישה לספרייה",
|
||||
"BurnSubtitlesHelp": "מחליט אם על השרת לצרוב כתוביות בזמן קידוד וידאו. הימנעות מכך תשפר מאוד את הביצועים. בחר \"אוטומטי\" לצריבת כתוביות על בסיס פורמט תמונה (VOBSUB, PGS, SUB, IDX) וכתוביות ASS או SSA מסויימות.",
|
||||
"Artist": "אמן",
|
||||
"AllowedRemoteAddressesHelp": "רשימת IP \\ מיסוך רשת המופרדת בפסיקים עבור רשתות שיורשו להתחבר מרחוק. במידה ותישאר ריקה, כל הכתובות יורשו להתחבר.",
|
||||
"Album": "אלבום",
|
||||
"AlbumArtist": "אמן האלבום"
|
||||
}
|
||||
|
|
|
@ -1500,5 +1500,6 @@
|
|||
"BoxSet": "Cofanetto",
|
||||
"AlbumArtist": "Artisti dell'Album",
|
||||
"ReleaseGroup": "Release Group",
|
||||
"UnsupportedPlayback": "Jellyfin non è in grado di decriptare i contenuti protetti da DRM ma tutti i contenuti verranno tentati a prescindere, compresi quelli protetti. Alcuni file potrebbero apparire completamente neri a causa della crittografia o di altre funzionalità non supportate, come i titoli interattivi."
|
||||
"UnsupportedPlayback": "Jellyfin non è in grado di decriptare i contenuti protetti da DRM ma tutti i contenuti verranno tentati a prescindere, compresi quelli protetti. Alcuni file potrebbero apparire completamente neri a causa della crittografia o di altre funzionalità non supportate, come i titoli interattivi.",
|
||||
"MessageUnauthorizedUser": "Non sei autorizzato ad accedere in questo momento al server. Contatta l'amministratore per ulteriori dettagli."
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
"AllowRemoteAccess": "Externe verbindingen met deze Jellyfin Server toestaan.",
|
||||
"AllowRemoteAccessHelp": "Indien niet aangevinkt worden alle externe verbindingen geblokkeerd.",
|
||||
"AllowedRemoteAddressesHelp": "Komma-gescheiden lijst van IP-adressen of IP/netmask adressen voor netwerken die op afstand verbinding mogen maken. Indien blanco, worden alle externe adressen toegestaan.",
|
||||
"AlwaysPlaySubtitles": "Altijd ondertitels weergeven",
|
||||
"AlwaysPlaySubtitles": "Altijd afspelen",
|
||||
"AlwaysPlaySubtitlesHelp": "Ondertitels die met de taalvoorkeur overeenkomen worden weergegeven, ongeacht de audiotaal.",
|
||||
"AnyLanguage": "Elke taal",
|
||||
"Anytime": "Op elk moment",
|
||||
|
@ -49,7 +49,7 @@
|
|||
"BoxRear": "Hoes (achterkant)",
|
||||
"Browse": "Bladeren",
|
||||
"BrowsePluginCatalogMessage": "Bekijk de Plugin catalogus voor beschikbare Plug-ins.",
|
||||
"BurnSubtitlesHelp": "Bepaalt of de server ondertitels moet inbranden wanneer video's op basis van het soort ondertitels geconverteerd moeten worden. Het inbranden van ondertitels heeft een negatief effect op de server performance. Selecteer Automatisch om op afbeelding gebaseerde formaten (VOBSUB, PGS, SUB/IDX etc.) en bepaalde ASS/SSA ondertitels in te branden.",
|
||||
"BurnSubtitlesHelp": "Bepaalt of de server ondertitels moet branden bij het transcoderen van video's. Als u dit vermijd, worden de prestaties aanzienlijk verbeterd. Selecteer Auto om op afbeeldingen gebaseerde formaten (VOBSUB, PGS, SUB/IDX etc.) en bepaalde ASS/SSA ondertitels te branden.",
|
||||
"ButtonAdd": "Toevoegen",
|
||||
"ButtonAddMediaLibrary": "Voeg Media Bibliotheek toe",
|
||||
"ButtonAddScheduledTaskTrigger": "Trigger Toevoegen",
|
||||
|
@ -1463,5 +1463,14 @@
|
|||
"OptionAuto": "Auto",
|
||||
"OptionProfileVideo": "Video",
|
||||
"AlbumArtist": "Album Artiest",
|
||||
"Album": "Album"
|
||||
"Album": "Album",
|
||||
"DeinterlaceMethodHelp": "Selecteer de deinterlacingmethode die u wilt gebruiken bij het transcoderen van geïnterlinieerde inhoud.",
|
||||
"CopyStreamURLError": "Er trad een fout op tijdens het kopieren van de URL.",
|
||||
"ClientSettings": "Client instellingen",
|
||||
"ButtonSplit": "Splitsen",
|
||||
"BoxSet": "Box Set",
|
||||
"AskAdminToCreateLibrary": "Vraag een beheerder om een bibliotheek te maken.",
|
||||
"Artist": "Artiest",
|
||||
"AllowFfmpegThrottlingHelp": "Wanneer een transcode of remux ver genoeg voorloopt op de huidige afspeelpositie, pauzeer het proces, zodat het minder middelen verbruikt. Dit is vooral handig wanneer u kijkt zonder vaak te zoeken. Schakel dit uit als u afspeelproblemen ondervindt.",
|
||||
"AllowFfmpegThrottling": "Throttle Transcodes"
|
||||
}
|
||||
|
|
|
@ -1677,5 +1677,6 @@
|
|||
"Episode": "劇集",
|
||||
"DeinterlaceMethodHelp": "選擇對隔行掃描內容進行轉碼時所用的反交錯方法。",
|
||||
"BoxSet": "套裝",
|
||||
"UnsupportedPlayback": "Jellyfin 無法解密受 DRM 保護的內容,但仍然會嘗試播放所有內容。某些檔案由於被加密或包含如互動標題等不受支援的內容,在播放時可能會沒有畫面。"
|
||||
"UnsupportedPlayback": "Jellyfin 無法解密受 DRM 保護的內容,但仍然會嘗試播放所有內容。某些檔案由於被加密或包含如互動標題等不受支援的內容,在播放時可能會沒有畫面。",
|
||||
"MessageUnauthorizedUser": "您目前無權存取伺服器,請與您的伺服器管理員聯繫以獲取更多訊息。"
|
||||
}
|
||||
|
|
13
yarn.lock
13
yarn.lock
|
@ -5527,6 +5527,11 @@ he@1.2.x, he@^1.2.0:
|
|||
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
|
||||
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
|
||||
|
||||
headroom.js@^0.11.0:
|
||||
version "0.11.0"
|
||||
resolved "https://registry.yarnpkg.com/headroom.js/-/headroom.js-0.11.0.tgz#26547a932025e4243abf8ace001b4ce5e110ed20"
|
||||
integrity sha512-yI4ciZRD1WH22wa5uJDg2kMtRvhJwUJWo2l41Eby0BoAD+lzXL98lf5jDFxP4Q5W3HmlrpfItSfmqc3jCtasbw==
|
||||
|
||||
hex-color-regex@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
|
||||
|
@ -11317,10 +11322,10 @@ svgo@^1.0.0, svgo@^1.3.2:
|
|||
unquote "~1.1.1"
|
||||
util.promisify "~1.0.0"
|
||||
|
||||
swiper@^5.3.1:
|
||||
version "5.3.6"
|
||||
resolved "https://registry.yarnpkg.com/swiper/-/swiper-5.3.6.tgz#102b7f8145d734ec4c30e04602160382356b5948"
|
||||
integrity sha512-FUz50g6RuvGAuXQWmR5lRPoA129leRUZ/p57ckr8+P5kR7VktElVQ47JGmWD86mOJCFfvMhUf0hinyC5UFL5iw==
|
||||
swiper@^5.3.7:
|
||||
version "5.3.7"
|
||||
resolved "https://registry.yarnpkg.com/swiper/-/swiper-5.3.7.tgz#1349c055730e9247e4482b72631166119b83f409"
|
||||
integrity sha512-BFpXllmUNj1k/Uz6FRW7ykZfUfeCpfqUZxOxeTFZKYy3gv/kOWULHjwy0xlQIJdsiVGF5nZgRG2VbVl6XWy3gw==
|
||||
dependencies:
|
||||
dom7 "^2.1.3"
|
||||
ssr-window "^1.0.1"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue