├── css
├── images
│ ├── fresh.png
│ ├── rotten.png
│ ├── equalizer_black.gif
│ └── equalizer_white.gif
├── noflex.css
├── operatv.css
└── colors.dark.css
├── search
├── search.css
├── search.html
└── search.js
├── skininfo.js
├── livetv
├── guide.html
├── livetvitems.html
├── guide.css
├── series.js
├── channels.js
└── guide.js
├── home_horiz
├── views.generic.html
├── views.playlists.html
├── views.collections.html
├── views.channels.html
├── home.html
├── views.collections.js
├── views.playlists.js
├── views.generic.js
├── home.css
├── views.channels.js
├── views.movies.html
├── views.livetv.html
├── views.tv.html
├── views.music.html
└── spotlight.js
├── package.json
├── settings
├── settings.html
└── settings.js
├── nowplaying
├── playlist.html
├── nowplaying.css
├── nowplaying.html
├── videoosd.html
├── videoosd.css
└── playlist.js
├── home
├── home.html
├── hometab.js
└── home.js
├── header.html
├── list
└── list.html
├── README.md
├── music
├── genres.js
├── folders.js
├── songs.js
├── series.js
├── playlists.js
├── albums.js
├── artists.js
└── music.html
├── tv
├── series.js
├── studios.js
├── latest.js
├── tv.html
└── favorites.js
├── movies
├── collections.js
├── movies.html
├── moviestab.js
└── years.js
├── components
└── itemslist.js
├── strings
├── en-US.json
├── en.json
├── en-GB.json
├── sv.json
├── hr.json
├── nl.json
├── it.json
├── de.json
├── pt-PT.json
├── es-419.json
├── pl.json
├── pt-BR.json
├── fr.json
├── lt-LT.json
├── zh-CN.json
└── cs.json
└── item
└── item.css
/css/images/fresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MediaBrowser/emby-web-defaultskin/HEAD/css/images/fresh.png
--------------------------------------------------------------------------------
/css/images/rotten.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MediaBrowser/emby-web-defaultskin/HEAD/css/images/rotten.png
--------------------------------------------------------------------------------
/css/images/equalizer_black.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MediaBrowser/emby-web-defaultskin/HEAD/css/images/equalizer_black.gif
--------------------------------------------------------------------------------
/css/images/equalizer_white.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MediaBrowser/emby-web-defaultskin/HEAD/css/images/equalizer_white.gif
--------------------------------------------------------------------------------
/search/search.css:
--------------------------------------------------------------------------------
1 | .searchHeader .headerRight {
2 | display: none;
3 | }
4 |
5 | .searchfields-icon {
6 | color: #aaa;
7 | }
8 |
--------------------------------------------------------------------------------
/skininfo.js:
--------------------------------------------------------------------------------
1 | define([], function () {
2 | 'use strict';
3 |
4 | return {
5 | id: 'defaultskin',
6 | name: 'Default Skin'
7 | };
8 | });
--------------------------------------------------------------------------------
/css/noflex.css:
--------------------------------------------------------------------------------
1 | .actionSheetScroller-tv {
2 | /* Prevent list items from overlapping title
3 | TODO: This belongs in the core, not here in the skin
4 | */
5 | margin: 2em 0;
6 | }
--------------------------------------------------------------------------------
/livetv/guide.html:
--------------------------------------------------------------------------------
1 |
';
56 | html += '
' + group.name + '
';
57 |
58 | var allowBottomPadding = true;
59 |
60 | if (enableScrollX()) {
61 | allowBottomPadding = false;
62 | html += '
';
63 | html += '
';
86 |
87 | html += '
';
88 | }
89 |
90 | view.innerHTML = html;
91 | imageLoader.lazyChildren(view);
92 | }
93 |
94 | MoviesTab.prototype.onBeforeShow = function (options) {
95 |
96 | var apiClient = this.apiClient;
97 |
98 | if (!options.refresh) {
99 | this.promises = null;
100 | return;
101 | }
102 |
103 | var promises = [];
104 | var parentId = this.params.parentId;
105 |
106 | var query = {
107 | SortBy: "ProductionYear,SortName",
108 | SortOrder: "Descending",
109 | IncludeItemTypes: "Movie",
110 | Recursive: true,
111 | Fields: "PrimaryImageAspectRatio,BasicSyncInfo,SortName",
112 | ImageTypeLimit: 1,
113 | EnableImageTypes: "Primary,Backdrop,Banner,Thumb",
114 | StartIndex: 0,
115 | parentId: parentId
116 | };
117 |
118 | promises.push(apiClient.getItems(apiClient.getCurrentUserId(), query));
119 |
120 | this.promises = promises;
121 | };
122 |
123 | MoviesTab.prototype.onShow = function (options) {
124 |
125 | var promises = this.promises;
126 | if (!promises) {
127 | return;
128 | }
129 |
130 | this.promises = [];
131 |
132 | var view = this.view;
133 |
134 | promises[0].then(function (result) {
135 | renderMovies(view, result.Items);
136 | return Promise.resolve();
137 | });
138 |
139 | Promise.all(promises).then(function () {
140 | if (options.autoFocus) {
141 | focusManager.autoFocus(view);
142 | }
143 | });
144 | };
145 |
146 | MoviesTab.prototype.onHide = function () {
147 |
148 | };
149 |
150 | MoviesTab.prototype.destroy = function () {
151 |
152 | this.view = null;
153 | this.params = null;
154 | this.apiClient = null;
155 | this.promises = null;
156 | };
157 |
158 | return MoviesTab;
159 | });
--------------------------------------------------------------------------------
/strings/cs.json:
--------------------------------------------------------------------------------
1 | {
2 | "Sports": "Sports",
3 | "News": "News",
4 | "ButtonEditRecording": "Upravit nahr\u00e1vku",
5 | "Episodes": "Epizody",
6 | "OtherVideos": "Ostatn\u00ed videa",
7 | "ShowScenesOnDetailScreensFor": "Uk\u00e1zat sc\u00e9ny na detailn\u00edch obrazovk\u00e1ch pro",
8 | "Play": "P\u0159ehr\u00e1t",
9 | "Resume": "Pokra\u010dovat",
10 | "Books": "Knihy",
11 | "HeaderAudioBooks": "Audio knihy",
12 | "Queue": "Fronta",
13 | "Shuffle": "Zam\u00edchat",
14 | "InsstantMix": "N\u00e1hodn\u00fd Mix",
15 | "ButtonCancel": "Zru\u0161it",
16 | "ButtonCancelSeries": "Zru\u0161it s\u00e9rii",
17 | "AllShows": "V\u0161echny seri\u00e1ly",
18 | "Genres": "\u017d\u00e1nry",
19 | "Extras": "Extra",
20 | "NextUp": "Nadch\u00e1zej\u00edc\u00ed",
21 | "LatestEpisodes": "Posledn\u00ed epizody",
22 | "ContinueWatching": "Pokra\u010dovat ve sledov\u00e1n\u00ed",
23 | "AllMovies": "V\u0161echny filmy",
24 | "LatestMovies": "Posledn\u00ed filmy",
25 | "Channels": "Kan\u00e1ly",
26 | "LatestFromValue": "Posledn\u00ed od {0}",
27 | "All": "V\u0161e",
28 | "Latest": "Posledn\u00ed",
29 | "Artists": "Um\u011blci",
30 | "Albums": "Alba",
31 | "RecentlyPlayed": "Pr\u00e1v\u011b p\u0159ehran\u00e9",
32 | "FrequentlyPlayed": "\u010casto hran\u00e9",
33 | "Library": "Knihovna",
34 | "Guide": "Pr\u016fvodce",
35 | "Overview": "P\u0159ehled",
36 | "People": "Lid\u00e9",
37 | "Specials": "Speci\u00e1ly",
38 | "SpecialFeatures": "Speci\u00e1ln\u00ed funkce",
39 | "Recordings": "Nahr\u00e1vky",
40 | "Scheduled": "Napl\u00e1novan\u00e9",
41 | "LatestMusic": "Posledn\u00ed hudba",
42 | "LatestRecordings": "Posledn\u00ed nahr\u00e1vky",
43 | "NowPlaying": "Pr\u00e1v\u011b hraje",
44 | "Programs": "Programy",
45 | "RecommendationBecauseYouLike": "Proto\u017ee se v\u00e1m l\u00edb\u00ed {0}",
46 | "RecommendationBecauseYouWatched": "Proto\u017ee jste sledovali {0}",
47 | "RecommendationDirectedBy": "Re\u017eie {0}",
48 | "RecommendationStarring": "Role {0}",
49 | "HeaderMoreLikeThis": "V\u00edce podobn\u00fdch",
50 | "MoreFrom": "V\u00edce od {0}",
51 | "AlbumArtists": "Um\u011blec alba",
52 | "LiveTV": "TV",
53 | "TrackCount": "{0} stop",
54 | "Search": "Hledat",
55 | "Trailer": "Uk\u00e1zka",
56 | "PlayAll": "P\u0159ehr\u00e1t v\u0161e",
57 | "Suggestions": "Doporu\u010den\u00e9",
58 | "Schedule": "Pl\u00e1n",
59 | "Shows": "Po\u0159ady",
60 | "HeaderUpcomingPrograms": "Nadch\u00e1zej\u00edc\u00ed programy",
61 | "HeaderUpcomingMovies": "Nadch\u00e1zej\u00edc\u00ed filmy",
62 | "HeaderUpcomingSports": "Nadch\u00e1zej\u00edc\u00ed sport",
63 | "HeaderUpcomingForKids": "Nadch\u00e1zej\u00edc\u00ed pro d\u011bti",
64 | "HeaderUpcomingNews": "Upcoming News",
65 | "HeaderForKids": "Pro d\u011bti",
66 | "HeaderOnNow": "Pr\u00e1v\u011b te\u010f",
67 | "OptionSunday": "Ned\u011ble",
68 | "OptionMonday": "Pond\u011bl\u00ed",
69 | "OptionTuesday": "\u00dater\u00fd",
70 | "OptionWednesday": "St\u0159eda",
71 | "OptionThursday": "\u010ctvrtek",
72 | "OptionFriday": "P\u00e1tek",
73 | "OptionSaturday": "Sobota",
74 | "OptionEveryday": "Ka\u017ed\u00fd den",
75 | "OptionWeekend": "V\u00edkendy",
76 | "OptionWeekday": "Dny v t\u00fddnu",
77 | "InstantMix": "N\u00e1hodn\u00fd Mix",
78 | "SelectServer": "Vybrat server",
79 | "SignOut": "Odhl\u00e1sit",
80 | "TopRated": "Nejl\u00e9pe hodnocen\u00e9",
81 | "BornValue": "Narozen: {0}",
82 | "BirthPlaceValue": "M\u00edsto narozen\u00ed: {0}",
83 | "FavoriteAlbums": "Obl\u00edben\u00e1 alba",
84 | "FavoriteSongs": "Obl\u00edben\u00e9 p\u00edsni\u010dky",
85 | "FavoriteArtists": "Obl\u00edben\u00ed um\u011blci",
86 | "FavoriteShows": "Obl\u00edben\u00e9 po\u0159ady",
87 | "FavoriteEpisodes": "Obl\u00edben\u00e9 epizody",
88 | "FavoriteMovies": "Obl\u00edben\u00e9 filmy",
89 | "CastAndCrew": "Obsazen\u00ed",
90 | "Unwatched": "Neshl\u00e9dnut\u00e9",
91 | "Movies": "Filmy",
92 | "Collections": "Sb\u00edrky",
93 | "Years": "Roky",
94 | "Favorites": "Obl\u00edben\u00e9",
95 | "More": "V\u00edce",
96 | "Playlists": "Seznam skladeb",
97 | "EnableEpisodeSpoilerProtection": "Funkce proti spoiler\u016fm",
98 | "EnableEpisodeSpoilerProtectionHelp": "Skr\u00fdt detaily pro epizody krom\u011b prvn\u00ed neshl\u00e9dnut\u00e9",
99 | "DimUnselectedPosters": "Ztmavit neshl\u00e9dnut\u00e9 plak\u00e1ty",
100 | "Songs": "Skladby",
101 | "Record": "Z\u00e1znam",
102 | "Settings": "Nastaven\u00ed",
103 | "Mute": "Ztlumit",
104 | "Unmute": "Zes\u00edlit",
105 | "Subtitles": "Titulky",
106 | "Audio": "Zvuk",
107 | "Rewind": "P\u0159eto\u010dit zp\u011bt",
108 | "Fullscreen": "Cel\u00e1 obrazovka",
109 | "ExitFullscreen": "Opustit celou obrazovku",
110 | "PlayOnAnotherDevice": "P\u0159ehr\u00e1t na jin\u00e9m za\u0159\u00edzen\u00ed",
111 | "FastForward": "Rychle vp\u0159ed",
112 | "Items": "Polo\u017eky",
113 | "PictureInPicture": "Obraz v obraze",
114 | "HeaderActiveRecordings": "Aktivn\u00ed nahr\u00e1v\u00e1n\u00ed",
115 | "Yesterday": "V\u010dera",
116 | "HeaderUpcomingEpisodes": "Nadch\u00e1zej\u00edc\u00ed epizody"
117 | }
--------------------------------------------------------------------------------
/livetv/guide.js:
--------------------------------------------------------------------------------
1 | define(['globalize', 'tvguide', 'events', 'datetime', 'imageLoader', 'backdrop', 'mediaInfo'], function (globalize, tvguide, events, datetime, imageLoader, backdrop, mediaInfo) {
2 | 'use strict';
3 |
4 | return function (view, params) {
5 |
6 | var self = this;
7 | var guideInstance;
8 |
9 | var guideItemDetailsElement = view.querySelector('.guideItemDetails');
10 | var guideImageElement = view.querySelector('.guideImage');
11 |
12 | var hideTime = 0;
13 |
14 | view.addEventListener('viewshow', function (e) {
15 |
16 | Emby.Page.setTitle(globalize.translate('Guide'));
17 | backdrop.clear();
18 |
19 | if (e.detail.isRestored) {
20 | if (guideInstance) {
21 | var refreshGuideData = false;
22 | if ((new Date().getTime() - hideTime) > 60000) {
23 | refreshGuideData = true;
24 | }
25 | guideInstance.resume(refreshGuideData);
26 | }
27 | } else {
28 | initGuide();
29 | }
30 | });
31 |
32 | view.addEventListener('viewhide', function () {
33 | hideTime = new Date().getTime();
34 | if (guideInstance) {
35 | guideInstance.pause();
36 | }
37 | });
38 |
39 | view.addEventListener('viewdestroy', function () {
40 | if (guideInstance) {
41 | guideInstance.destroy();
42 | guideInstance = null;
43 | }
44 | });
45 |
46 | var focusTimeout;
47 | var currentItemId;
48 |
49 | function clearFocusTimeout() {
50 | if (focusTimeout) {
51 | clearTimeout(focusTimeout);
52 | }
53 | }
54 |
55 | function onFocusTimeout() {
56 |
57 | Emby.Models.item(currentItemId).then(function (item) {
58 |
59 | setSelectedInfo(item);
60 | //backdrop.setBackdrop(item);
61 | });
62 | }
63 |
64 | function onGuideFocus(e, detail) {
65 |
66 | clearFocusTimeout();
67 | currentItemId = detail.item.Id;
68 | focusTimeout = setTimeout(onFocusTimeout, 500);
69 | }
70 |
71 | function getTime(date) {
72 |
73 | return datetime.getDisplayTime(date).toLowerCase();
74 | }
75 |
76 | function setSelectedInfo(item) {
77 |
78 | var html = '';
79 |
80 | html += '
';
81 | html += '
' + item.Name + '
';
82 |
83 | if (item.IsHD) {
84 | html += 'hd';
85 | }
86 |
87 | if (item.SeriesTimerId) {
88 | html += 'fiber_smart_record';
89 | } else if (item.TimerId) {
90 | html += 'fiber_manual_record';
91 | }
92 |
93 | html += '';
94 |
95 | var secondaryMediaInfoHtml = mediaInfo.getPrimaryMediaInfoHtml(item);
96 | if (secondaryMediaInfoHtml) {
97 | html += '
';
98 | html += secondaryMediaInfoHtml;
99 | html += '
';
100 | }
101 |
102 | var overview = item.ShortOverview || item.Overview;
103 |
104 | if (overview) {
105 | html += '
';
106 | html += overview;
107 | html += '
';
108 | }
109 |
110 | var date = '';
111 | if (item.StartDate) {
112 |
113 | try {
114 | date += getTime(datetime.parseISO8601Date(item.StartDate));
115 | } catch (e) {
116 | console.log("Error parsing date: " + item.PremiereDate);
117 | }
118 | }
119 | if (item.EndDate) {
120 |
121 | try {
122 | date += ' - ' + getTime(datetime.parseISO8601Date(item.EndDate));
123 | } catch (e) {
124 | console.log("Error parsing date: " + item.EndDate);
125 | }
126 | }
127 |
128 | if (date) {
129 | html += '
';
130 | html += date;
131 | html += '
';
132 | }
133 |
134 | guideItemDetailsElement.innerHTML = html;
135 |
136 | var imgUrl = Emby.Models.imageUrl(item);
137 | if (imgUrl) {
138 | imageLoader.lazyImage(guideImageElement, imgUrl);
139 | } else {
140 | guideImageElement.style.backgroundImage = '';
141 | }
142 | }
143 |
144 | function initGuide() {
145 |
146 | guideInstance = new tvguide({
147 | element: view.querySelector('.guidePageContainer'),
148 | serverId: params.serverId
149 | });
150 |
151 | events.on(guideInstance, 'focus', onGuideFocus);
152 | }
153 | };
154 |
155 | });
--------------------------------------------------------------------------------
/music/music.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
10 |
11 |
14 |
15 |
87 |
88 |
--------------------------------------------------------------------------------