diff --git a/ApiClient.js b/ApiClient.js index e63eb4d2b..69f3f020c 100644 --- a/ApiClient.js +++ b/ApiClient.js @@ -380,7 +380,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi self.getLiveTvServices = function (options) { - var url = self.getUrl("/LiveTv/Services", options || {}); + var url = self.getUrl("LiveTv/Services", options || {}); return self.ajax({ type: "GET", @@ -395,7 +395,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi throw new Error("null id"); } - var url = self.getUrl("/LiveTv/Channels/" + id); + var url = self.getUrl("LiveTv/Channels/" + id); return self.ajax({ type: "GET", @@ -406,7 +406,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi self.getLiveTvChannels = function (options) { - var url = self.getUrl("/LiveTv/Channels", options || {}); + var url = self.getUrl("LiveTv/Channels", options || {}); return self.ajax({ type: "GET", @@ -417,7 +417,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi self.getLiveTvPrograms = function (options) { - var url = self.getUrl("/LiveTv/Programs", options || {}); + var url = self.getUrl("LiveTv/Programs", options || {}); return self.ajax({ type: "GET", @@ -428,7 +428,76 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi self.getLiveTvRecordings = function (options) { - var url = self.getUrl("/LiveTv/Recordings", options || {}); + var url = self.getUrl("LiveTv/Recordings", options || {}); + + return self.ajax({ + type: "GET", + url: url, + dataType: "json" + }); + }; + + self.getLiveTvRecording = function (id) { + + if (!id) { + throw new Error("null id"); + } + + var url = self.getUrl("LiveTv/Recordings/" + id); + + return self.ajax({ + type: "GET", + url: url, + dataType: "json" + }); + }; + + self.deleteLiveTvRecording = function (id) { + + if (!id) { + throw new Error("null id"); + } + + var url = self.getUrl("LiveTv/Recordings/" + id); + + return self.ajax({ + type: "DELETE", + url: url + }); + }; + + self.cancelLiveTvTimer = function (id) { + + if (!id) { + throw new Error("null id"); + } + + var url = self.getUrl("LiveTv/Timers/" + id); + + return self.ajax({ + type: "DELETE", + url: url + }); + }; + + self.getLiveTvTimers = function (options) { + + var url = self.getUrl("LiveTv/Timers", options || {}); + + return self.ajax({ + type: "GET", + url: url, + dataType: "json" + }); + }; + + self.getLiveTvTimer = function (id) { + + if (!id) { + throw new Error("null id"); + } + + var url = self.getUrl("LiveTv/Timers/" + id); return self.ajax({ type: "GET", diff --git a/dashboard-ui/css/images/editor.png b/dashboard-ui/css/images/editor.png new file mode 100644 index 000000000..6d994c852 Binary files /dev/null and b/dashboard-ui/css/images/editor.png differ diff --git a/dashboard-ui/css/images/items/detail/tv.png b/dashboard-ui/css/images/items/detail/tv.png new file mode 100644 index 000000000..a39bdc52f Binary files /dev/null and b/dashboard-ui/css/images/items/detail/tv.png differ diff --git a/dashboard-ui/css/images/views/games.png b/dashboard-ui/css/images/views/games.png deleted file mode 100644 index 8d5bd9b2f..000000000 Binary files a/dashboard-ui/css/images/views/games.png and /dev/null differ diff --git a/dashboard-ui/css/images/views/movies.png b/dashboard-ui/css/images/views/movies.png deleted file mode 100644 index 6bfae9938..000000000 Binary files a/dashboard-ui/css/images/views/movies.png and /dev/null differ diff --git a/dashboard-ui/css/images/views/music.png b/dashboard-ui/css/images/views/music.png deleted file mode 100644 index 986d09d55..000000000 Binary files a/dashboard-ui/css/images/views/music.png and /dev/null differ diff --git a/dashboard-ui/css/images/views/tvshows.png b/dashboard-ui/css/images/views/tvshows.png deleted file mode 100644 index a2b735721..000000000 Binary files a/dashboard-ui/css/images/views/tvshows.png and /dev/null differ diff --git a/dashboard-ui/css/librarybrowser.css b/dashboard-ui/css/librarybrowser.css index 3b3527e4d..365a0c78d 100644 --- a/dashboard-ui/css/librarybrowser.css +++ b/dashboard-ui/css/librarybrowser.css @@ -102,7 +102,7 @@ padding: 10px; } -.libraryPage, .itemListContent { +.libraryPage:not(.metadataEditorPage), .libraryPage:not(.metadataEditorPage) .itemListContent { background: #494949 url(images/bgflip.png) repeat-x!important; background-attachment: fixed!important; } @@ -435,22 +435,22 @@ a.itemTag:hover { text-overflow: ellipsis; } -.libraryPage ::-webkit-scrollbar { +.libraryPage:not(.metadataEditorPage) ::-webkit-scrollbar { width: 10px; height: 10px; } -.libraryPage ::-webkit-scrollbar-button:start:decrement, -.libraryPage ::-webkit-scrollbar-button:end:increment { +.libraryPage:not(.metadataEditorPage) ::-webkit-scrollbar-button:start:decrement, +.libraryPage:not(.metadataEditorPage) ::-webkit-scrollbar-button:end:increment { display: none; } -.libraryPage ::-webkit-scrollbar-track-piece { +.libraryPage:not(.metadataEditorPage) ::-webkit-scrollbar-track-piece { background-color: #3b3b3b; -webkit-border-radius: 6px; } -.libraryPage ::-webkit-scrollbar-thumb:vertical { +.libraryPage:not(.metadataEditorPage) ::-webkit-scrollbar-thumb:vertical { -webkit-border-radius: 6px; background: #666 no-repeat center; } diff --git a/dashboard-ui/css/metadataeditor.css b/dashboard-ui/css/metadataeditor.css index 8086497cf..5735773bb 100644 --- a/dashboard-ui/css/metadataeditor.css +++ b/dashboard-ui/css/metadataeditor.css @@ -95,6 +95,7 @@ overflow-y: scroll; overflow-x: auto!important; display: block; + border-right: 1px solid #ccc; } .editPageInnerContent { @@ -108,6 +109,28 @@ } } +.editorTile { + display: inline-block; + margin: 5px; + padding: 10px; + border: 1px solid #ccc; + background: #eee; + background-image: -webkit-gradient(linear,left top,left bottom,from(#fff),to(#f1f1f1)); + background-image: -webkit-linear-gradient(#fff,#f1f1f1); + background-image: -moz-linear-gradient(#fff,#f1f1f1); + background-image: -ms-linear-gradient(#fff,#f1f1f1); + background-image: -o-linear-gradient(#fff,#f1f1f1); + background-image: linear-gradient(#fff,#f1f1f1); +} + +.imageEditorTile { + width: 200px; + padding-bottom: 0; +} + +.editorTile p { + margin: .5em 0; +} @media all and (min-width: 700px) { diff --git a/dashboard-ui/css/site.css b/dashboard-ui/css/site.css index 210d7d3e5..6b7362f2c 100644 --- a/dashboard-ui/css/site.css +++ b/dashboard-ui/css/site.css @@ -43,8 +43,12 @@ body { text-decoration: underline; } +* { + font-family: 'Open Sans', Arial, Helvetica, sans-serif; +} + h1 { - font-family: 'Segoe UI Light', 'Open Sans', Arial, Helvetica, sans-serif; + font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-weight: 200; font-size: 22pt; } @@ -59,20 +63,20 @@ h1 { } h2 { - font-family: 'Segoe UI Semiight', 'Open Sans', Arial, Helvetica, sans-serif; + font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-weight: 400; font-size: 20pt; } -h1 a { +.libraryPage:not(.metadataEditorPage) h1 a { font-weight: 200!important; text-decoration: none; color: #fff!important; } - h1 a:hover { - text-decoration: underline; - } +h1 a:hover { + text-decoration: underline; +} @media all and (min-width: 750px) { h1 { @@ -217,7 +221,7 @@ form, .readOnlyContent { } .fieldDescription { - font-size: 11px; + font-size: 12px; padding-left: 5px; } diff --git a/dashboard-ui/css/tileitem.css b/dashboard-ui/css/tileitem.css index 4f824b0ac..34060b9f2 100644 --- a/dashboard-ui/css/tileitem.css +++ b/dashboard-ui/css/tileitem.css @@ -20,8 +20,7 @@ .tileItem .criticRating { position: relative; - top: -1px; - font-size: 13px; + top: -2px; } .tileImage { diff --git a/dashboard-ui/edititemimages.html b/dashboard-ui/edititemimages.html index 007255521..f7f282db0 100644 --- a/dashboard-ui/edititemimages.html +++ b/dashboard-ui/edititemimages.html @@ -4,7 +4,7 @@