Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Undo foolishness

  • Loading branch information...
commit b7cf06e059d6c808fe11b2d7612c197418736852 1 parent f357de5
@midgetspy authored
Showing with 488 additions and 1,595 deletions.
  1. +10 −25 data/css/default.css
  2. +0 −219 data/css/lib/dataTables/jquery.dataTables.css
  3. +0 −247 data/css/lib/dataTables/jquery.dataTables_themeroller.css
  4. BIN  data/css/lib/sickbeard-jquery/images/ui-bg_flat_100_333333_40x100.png
  5. BIN  data/css/lib/sickbeard-jquery/images/ui-bg_flat_75_57442b_40x100.png
  6. BIN  data/css/lib/sickbeard-jquery/images/ui-bg_glass_55_fbf9ee_1x400.png
  7. BIN  data/css/lib/smooth-grinder/images/ui-bg_fine-grain_10_eceadf_60x60.png
  8. 0  data/css/lib/{sickbeard-jquery → smooth-grinder}/images/ui-bg_flat_0_000000_40x100.png
  9. 0  data/css/lib/{sickbeard-jquery → smooth-grinder}/images/ui-bg_flat_0_6e4f1c_40x100.png
  10. 0  data/css/lib/{sickbeard-jquery → smooth-grinder}/images/ui-bg_flat_0_ffffff_40x100.png
  11. BIN  data/css/lib/smooth-grinder/images/ui-bg_glass_55_fbf9ee_1x400.png
  12. 0  data/css/lib/{sickbeard-jquery → smooth-grinder}/images/ui-bg_glass_95_fef1ec_1x400.png
  13. 0  data/css/lib/{sickbeard-jquery → smooth-grinder}/images/ui-bg_highlight-soft_75_dcdcdc_1x100.png
  14. 0  data/css/lib/{sickbeard-jquery → smooth-grinder}/images/ui-bg_highlight-soft_75_dddddd_1x100.png
  15. BIN  data/css/lib/smooth-grinder/images/ui-bg_highlight-soft_75_efefef_1x100.png
  16. BIN  data/css/lib/smooth-grinder/images/ui-bg_inset-soft_75_dfdfdf_1x100.png
  17. 0  data/css/lib/{sickbeard-jquery → smooth-grinder}/images/ui-icons_222222_256x240.png
  18. 0  data/css/lib/{sickbeard-jquery → smooth-grinder}/images/ui-icons_2e83ff_256x240.png
  19. BIN  ...ckbeard-jquery/images/ui-icons_ffffff_256x240.png → smooth-grinder/images/ui-icons_8c291d_256x240.png}
  20. 0  data/css/lib/{sickbeard-jquery → smooth-grinder}/images/ui-icons_cd0a0a_256x240.png
  21. +37 −97 data/css/lib/{sickbeard-jquery/jquery-ui-1.8.18.custom.css → smooth-grinder/jquery-ui-1.8.17.custom.css}
  22. +83 −0 data/css/tablesorter.css
  23. +105 −31 data/interfaces/default/comingEpisodes.tmpl
  24. +1 −1  data/interfaces/default/config_providers.tmpl
  25. +20 −31 data/interfaces/default/history.tmpl
  26. +153 −7 data/interfaces/default/home.tmpl
  27. +0 −2  data/interfaces/default/home_addExistingShow.tmpl
  28. +1 −1  data/interfaces/default/home_massAddTable.tmpl
  29. +33 −2 data/interfaces/default/inc_top.tmpl
  30. +14 −88 data/interfaces/default/manage.tmpl
  31. +6 −36 data/js/addExistingShow.js
  32. +0 −140 data/js/comingEps.js
  33. +0 −154 data/js/home.js
  34. +0 −102 data/js/jquery.dataTables.sorting.js
  35. +0 −44 data/js/jquery.datatables.reloadAjax.js
  36. +0 −153 data/js/lib/jquery.dataTables.min.js
  37. +6 −0 data/js/lib/jquery.tablesorter-2.1.10.min.js
  38. +10 −0 data/js/lib/jquery.tablesorter.widgets.min.js
  39. +1 −1  data/js/tableClick.js
  40. +0 −10 sickbeard/show_queue.py
  41. +0 −9 sickbeard/tv.py
  42. +8 −195 sickbeard/webserve.py
View
35 data/css/default.css
@@ -176,30 +176,15 @@ padding:5px;
margin-right:10px;
}
-.downloadbar {
- border: 1px solid #777;
- height: 15px;
- margin: 3px 0 3px;
- position: relative;
- background-color: #cccccc;
-
- .border-radius(3px);
-}
-
-.downloadbar .inner {
- background-color: #fff;
- height: 15px;
-}
-
-.downloadbar .downloadbarText {
- text-shadow: 0 0 0.1em #fff;
- position:absolute;
- top:0;
- width:100%;
- height:100%;
- overflow:visible;
- text-align:center;
- vertical-align: middle;
+.progressbarText {
+text-shadow: 0 0 0.1em #fff;
+position:absolute;
+top:0;
+width:100%;
+height:100%;
+overflow:visible;
+text-align:center;
+vertical-align: middle;
}
tr.seasonheader {
@@ -429,4 +414,4 @@ span.false {
}
span.true {
color: #669966; /* green */
-}
+}
View
219 data/css/lib/dataTables/jquery.dataTables.css
@@ -1,219 +0,0 @@
-
-/*
- * Table
- */
-table.dataTable {
- margin: 0 auto;
- clear: both;
- width: 100%;
-}
-
-table.dataTable thead th {
- padding: 3px 18px 3px 10px;
- border-bottom: 1px solid black;
- font-weight: bold;
- cursor: pointer;
- *cursor: hand;
-}
-
-table.dataTable tfoot th {
- padding: 3px 18px 3px 10px;
- border-top: 1px solid black;
- font-weight: bold;
-}
-
-table.dataTable td {
- padding: 3px 10px;
-}
-
-table.dataTable td.center,
-table.dataTable td.dataTables_empty {
- text-align: center;
-}
-
-table.dataTable tr.odd { background-color: #E2E4FF; }
-table.dataTable tr.even { background-color: white; }
-
-table.dataTable tr.odd td.sorting_1 { background-color: #D3D6FF; }
-table.dataTable tr.odd td.sorting_2 { background-color: #DADCFF; }
-table.dataTable tr.odd td.sorting_3 { background-color: #E0E2FF; }
-table.dataTable tr.even td.sorting_1 { background-color: #EAEBFF; }
-table.dataTable tr.even td.sorting_2 { background-color: #F2F3FF; }
-table.dataTable tr.even td.sorting_3 { background-color: #F9F9FF; }
-
-
-/*
- * Table wrapper
- */
-.dataTables_wrapper {
- position: relative;
- clear: both;
- *zoom: 1;
-}
-
-
-/*
- * Page length menu
- */
-.dataTables_length {
- float: left;
-}
-
-
-/*
- * Filter
- */
-.dataTables_filter {
- float: right;
- text-align: right;
-}
-
-
-/*
- * Table information
- */
-.dataTables_info {
- clear: both;
- float: left;
-}
-
-
-/*
- * Pagination
- */
-.dataTables_paginate {
- float: right;
- text-align: right;
-}
-
-/* Two button pagination - previous / next */
-.paginate_disabled_previous,
-.paginate_enabled_previous,
-.paginate_disabled_next,
-.paginate_enabled_next {
- height: 19px;
- float: left;
- cursor: pointer;
- *cursor: hand;
- color: #111 !important;
-}
-.paginate_disabled_previous:hover,
-.paginate_enabled_previous:hover,
-.paginate_disabled_next:hover,
-.paginate_enabled_next:hover {
- text-decoration: none !important;
-}
-.paginate_disabled_previous:active,
-.paginate_enabled_previous:active,
-.paginate_disabled_next:active,
-.paginate_enabled_next:active {
- outline: none;
-}
-
-.paginate_disabled_previous,
-.paginate_disabled_next {
- color: #666 !important;
-}
-.paginate_disabled_previous,
-.paginate_enabled_previous {
- padding-left: 23px;
-}
-.paginate_disabled_next,
-.paginate_enabled_next {
- padding-right: 23px;
- margin-left: 10px;
-}
-
-.paginate_enabled_previous { background: url('../images/back_enabled.png') no-repeat top left; }
-.paginate_enabled_previous:hover { background: url('../images/back_enabled_hover.png') no-repeat top left; }
-.paginate_disabled_previous { background: url('../images/back_disabled.png') no-repeat top left; }
-
-.paginate_enabled_next { background: url('../images/forward_enabled.png') no-repeat top right; }
-.paginate_enabled_next:hover { background: url('../images/forward_enabled_hover.png') no-repeat top right; }
-.paginate_disabled_next { background: url('../images/forward_disabled.png') no-repeat top right; }
-
-/* Full number pagination */
-.paging_full_numbers {
- height: 22px;
- line-height: 22px;
-}
-.paging_full_numbers a:active {
- outline: none
-}
-.paging_full_numbers a:hover {
- text-decoration: none;
-}
-
-.paging_full_numbers a.paginate_button,
-.paging_full_numbers a.paginate_active {
- border: 1px solid #aaa;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- border-radius: 5px;
- padding: 2px 5px;
- margin: 0 3px;
- cursor: pointer;
- *cursor: hand;
- color: #333 !important;
-}
-
-.paging_full_numbers a.paginate_button {
- background-color: #ddd;
-}
-
-.paging_full_numbers a.paginate_button:hover {
- background-color: #ccc;
- text-decoration: none !important;
-}
-
-.paging_full_numbers a.paginate_active {
- background-color: #99B3FF;
-}
-
-
-/*
- * Processing indicator
- */
-.dataTables_processing {
- position: absolute;
- top: 50%;
- left: 50%;
- width: 250px;
- height: 30px;
- margin-left: -125px;
- margin-top: -15px;
- padding: 14px 0 2px 0;
- border: 1px solid #ddd;
- text-align: center;
- color: #999;
- font-size: 14px;
- background-color: white;
-}
-
-
-/*
- * Sorting
- */
-.sorting { background: url('../../images/sort_both.png') no-repeat center right; }
-.sorting_asc { background: url('../../images/sort_asc.png') no-repeat center right; }
-.sorting_desc { background: url('../../images/sort_desc.png') no-repeat center right; }
-
-.sorting_asc_disabled { background: url('../../images/sort_asc_disabled.png') no-repeat center right; }
-.sorting_desc_disabled { background: url('../../images/sort_desc_disabled.png') no-repeat center right; }
-
-table.dataTable th:active {
- outline: none;
-}
-
-
-/*
- * Scrolling
- */
-.dataTables_scroll {
- clear: both;
-}
-
-.dataTables_scrollBody {
- *margin-top: -1px;
-}
-
View
247 data/css/lib/dataTables/jquery.dataTables_themeroller.css
@@ -1,247 +0,0 @@
-
-
-/*
- * Table
- */
-table.dataTable {
- margin: 0 auto;
- clear: both;
- width: 100%;
-}
-
-table.dataTable thead th {
- padding: 3px 0px 3px 10px;
- cursor: pointer;
- *cursor: hand;
-}
-
-table.dataTable tfoot th {
- padding: 3px 10px;
-}
-
-table.dataTable td {
- padding: 3px 10px;
-}
-
-table.dataTable td.center,
-table.dataTable td.dataTables_empty {
- text-align: center;
-}
-
-table.dataTable tr.odd { background-color: #f5f1e4; }
-table.dataTable tr.even { background-color: #dfdacf; }
-
-table.dataTable tr.odd td.sorting_1 { background-color: #F5EDD5; }
-table.dataTable tr.odd td.sorting_2 { background-color: #F5EDD5; }
-table.dataTable tr.odd td.sorting_3 { background-color: #F5EDD5; }
-table.dataTable tr.even td.sorting_1 { background-color: #E0D7C1; }
-table.dataTable tr.even td.sorting_2 { background-color: #E0D7C1; }
-table.dataTable tr.even td.sorting_3 { background-color: #E0D7C1; }
-
-table.dataTable th.sortedHeader {
- background: none;
- background-color: #57442B;
-}
-
-/*
- * Table wrapper
- */
-.dataTables_wrapper {
- position: relative;
- clear: both;
- *zoom: 1;
-}
-.dataTables_wrapper .ui-widget-header {
- font-weight: normal;
-}
-.dataTables_wrapper .ui-toolbar {
- padding: 5px;
-}
-
-
-/*
- * Page length menu
- */
-.dataTables_length {
- float: left;
-}
-
-
-/*
- * Filter
- */
-.dataTables_filter {
- float: right;
- text-align: right;
-}
-
-
-/*
- * Table information
- */
-.dataTables_info {
- padding-top: 3px;
- clear: both;
- float: left;
-}
-
-
-/*
- * Pagination
- */
-.dataTables_paginate {
- float: right;
- text-align: right;
-}
-
-.dataTables_paginate .ui-button {
- margin-right: -0.1em !important;
-}
-
-.paging_two_button .ui-button {
- float: left;
- cursor: pointer;
- * cursor: hand;
-}
-
-.paging_full_numbers .ui-button {
- padding: 2px 6px;
- margin: 0;
- cursor: pointer;
- * cursor: hand;
- color: #333;
-}
-
-/* Two button pagination - previous / next */
-.paginate_disabled_previous,
-.paginate_enabled_previous,
-.paginate_disabled_next,
-.paginate_enabled_next {
- height: 19px;
- float: left;
- cursor: pointer;
- *cursor: hand;
- color: #111 !important;
-}
-.paginate_disabled_previous:hover,
-.paginate_enabled_previous:hover,
-.paginate_disabled_next:hover,
-.paginate_enabled_next:hover {
- text-decoration: none !important;
-}
-.paginate_disabled_previous:active,
-.paginate_enabled_previous:active,
-.paginate_disabled_next:active,
-.paginate_enabled_next:active {
- outline: none;
-}
-
-.paginate_disabled_previous,
-.paginate_disabled_next {
- color: #666 !important;
-}
-.paginate_disabled_previous,
-.paginate_enabled_previous {
- padding-left: 23px;
-}
-.paginate_disabled_next,
-.paginate_enabled_next {
- padding-right: 23px;
- margin-left: 10px;
-}
-
-.paginate_enabled_previous { background: url('../../images/back_enabled.png') no-repeat top left; }
-.paginate_enabled_previous:hover { background: url('../../images/back_enabled_hover.png') no-repeat top left; }
-.paginate_disabled_previous { background: url('../../images/back_disabled.png') no-repeat top left; }
-
-.paginate_enabled_next { background: url('../../images/forward_enabled.png') no-repeat top right; }
-.paginate_enabled_next:hover { background: url('../../images/forward_enabled_hover.png') no-repeat top right; }
-.paginate_disabled_next { background: url('../../images/forward_disabled.png') no-repeat top right; }
-
-/* Full number pagination */
-.paging_full_numbers a:active {
- outline: none
-}
-.paging_full_numbers a:hover {
- text-decoration: none;
-}
-
-.paging_full_numbers a.paginate_button,
-.paging_full_numbers a.paginate_active {
- border: 1px solid #aaa;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- border-radius: 5px;
- padding: 2px 5px;
- margin: 0 3px;
- cursor: pointer;
- *cursor: hand;
- color: #333 !important;
-}
-
-.paging_full_numbers a.paginate_button {
- background-color: #ddd;
-}
-
-.paging_full_numbers a.paginate_button:hover {
- background-color: #ccc;
- text-decoration: none !important;
-}
-
-.paging_full_numbers a.paginate_active {
- background-color: #99B3FF;
-}
-
-
-/*
- * Processing indicator
- */
-.dataTables_processing {
- position: absolute;
- top: 50%;
- left: 50%;
- width: 250px;
- height: 30px;
- margin-left: -125px;
- margin-top: -15px;
- padding: 14px 0 2px 0;
- border: 1px solid #ddd;
- text-align: center;
- color: #999;
- font-size: 14px;
- background-color: white;
-}
-
-
-/*
- * Sorting
- */
-table.dataTable thead th div.DataTables_sort_wrapper {
- position: relative;
- padding-right: 20px;
- padding-right: 20px;
-}
-
-table.dataTable thead th div.DataTables_sort_wrapper span {
- position: absolute;
- top: 50%;
- margin-top: -8px;
- right: 0;
-}
-
-table.dataTable th:active {
- outline: none;
-}
-
-
-/*
- * Scrolling
- */
-.dataTables_scroll {
- clear: both;
-}
-
-.dataTables_scrollBody {
- *margin-top: -1px;
-}
-
View
BIN  data/css/lib/sickbeard-jquery/images/ui-bg_flat_100_333333_40x100.png
Deleted file not rendered
View
BIN  data/css/lib/sickbeard-jquery/images/ui-bg_flat_75_57442b_40x100.png
Deleted file not rendered
View
BIN  data/css/lib/sickbeard-jquery/images/ui-bg_glass_55_fbf9ee_1x400.png
Deleted file not rendered
View
BIN  data/css/lib/smooth-grinder/images/ui-bg_fine-grain_10_eceadf_60x60.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
0  ...ery/images/ui-bg_flat_0_000000_40x100.png → ...der/images/ui-bg_flat_0_000000_40x100.png
File renamed without changes
View
0  ...ery/images/ui-bg_flat_0_6e4f1c_40x100.png → ...der/images/ui-bg_flat_0_6e4f1c_40x100.png
File renamed without changes
View
0  ...ery/images/ui-bg_flat_0_ffffff_40x100.png → ...der/images/ui-bg_flat_0_ffffff_40x100.png
File renamed without changes
View
BIN  data/css/lib/smooth-grinder/images/ui-bg_glass_55_fbf9ee_1x400.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
0  ...ry/images/ui-bg_glass_95_fef1ec_1x400.png → ...er/images/ui-bg_glass_95_fef1ec_1x400.png
File renamed without changes
View
0  .../ui-bg_highlight-soft_75_dcdcdc_1x100.png → .../ui-bg_highlight-soft_75_dcdcdc_1x100.png
File renamed without changes
View
0  .../ui-bg_highlight-soft_75_dddddd_1x100.png → .../ui-bg_highlight-soft_75_dddddd_1x100.png
File renamed without changes
View
BIN  data/css/lib/smooth-grinder/images/ui-bg_highlight-soft_75_efefef_1x100.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  data/css/lib/smooth-grinder/images/ui-bg_inset-soft_75_dfdfdf_1x100.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
0  ...jquery/images/ui-icons_222222_256x240.png → ...rinder/images/ui-icons_222222_256x240.png
File renamed without changes
View
0  ...jquery/images/ui-icons_2e83ff_256x240.png → ...rinder/images/ui-icons_2e83ff_256x240.png
File renamed without changes
View
BIN  ...jquery/images/ui-icons_ffffff_256x240.png → ...rinder/images/ui-icons_8c291d_256x240.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
0  ...jquery/images/ui-icons_cd0a0a_256x240.png → ...rinder/images/ui-icons_cd0a0a_256x240.png
File renamed without changes
View
134 ...kbeard-jquery/jquery-ui-1.8.18.custom.css → ...mooth-grinder/jquery-ui-1.8.17.custom.css
@@ -1,5 +1,5 @@
/*
- * jQuery UI CSS Framework 1.8.18
+ * jQuery UI CSS Framework 1.8.17
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
@@ -39,7 +39,7 @@
/*
- * jQuery UI CSS Framework 1.8.18
+ * jQuery UI CSS Framework 1.8.17
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
@@ -47,7 +47,7 @@
*
* http://docs.jquery.com/UI/Theming/API
*
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=ffffff&bgTextureHeader=01_flat.png&bgImgOpacityHeader=0&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=dcdcdc&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=333333&bgTextureDefault=01_flat.png&bgImgOpacityDefault=100&borderColorDefault=aaaaaa&fcDefault=ffffff&iconColorDefault=ffffff&bgColorHover=dddddd&bgTextureHover=03_highlight_soft.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=222222&iconColorHover=222222&bgColorActive=57442b&bgTextureActive=01_flat.png&bgImgOpacityActive=75&borderColorActive=aaaaaa&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=aaaaaa&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=aaaaaa&fcError=8c291d&iconColorError=cd0a0a&bgColorOverlay=6e4f1c&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=35&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=35&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ctl=themeroller&ctl=themeroller&ctl=themeroller&ctl=themeroller&ctl=themeroller&ctl=themeroller&ctl=themeroller&ffDefault=Verdana,Arial,sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=ffffff&bgTextureHeader=01_flat.png&bgImgOpacityHeader=0&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=dcdcdc&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=efefef&bgTextureDefault=03_highlight_soft.png&bgImgOpacityDefault=75&borderColorDefault=aaaaaa&fcDefault=222222&iconColorDefault=8c291d&bgColorHover=dddddd&bgTextureHover=03_highlight_soft.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=222222&iconColorHover=222222&bgColorActive=dfdfdf&bgTextureActive=05_inset_soft.png&bgImgOpacityActive=75&borderColorActive=aaaaaa&fcActive=140f06&iconColorActive=8c291d&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=aaaaaa&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=aaaaaa&fcError=8c291d&iconColorError=cd0a0a&bgColorOverlay=6e4f1c&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=35&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=35&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
*/
@@ -56,26 +56,26 @@
.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
.ui-widget .ui-widget { font-size: 1em; }
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
-.ui-widget-content { border: 1px solid #aaaaaa; background: #dcdcdc url(images/ui-bg_highlight-soft_75_dcdcdc_1x100.png) 50% top repeat-x; color: #222222; }
+/*.ui-widget-content { border: 1px solid #aaaaaa; background: #dcdcdc url(images/ui-bg_highlight-soft_75_dcdcdc_1x100.png) 50% top repeat-x; color: #222222; }*/
.ui-widget-content a { color: #222222; }
-.ui-widget-header { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
+/*.ui-widget-header { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }*/
.ui-widget-header a { color: #222222; }
/* Interaction states
----------------------------------*/
-.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #aaaaaa; background: #333333 url(images/ui-bg_flat_100_333333_40x100.png) 50% 50% repeat-x; font-weight: bold; color: #ffffff; }
-.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #ffffff; text-decoration: none; }
-.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dddddd url(images/ui-bg_highlight-soft_75_dddddd_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #222222; }
+/*.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #aaaaaa; background: #efefef url(images/ui-bg_highlight-soft_75_efefef_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #222222; }*/
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #222222; text-decoration: none; }
+/*.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dddddd url(images/ui-bg_highlight-soft_75_dddddd_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #222222; }*/
.ui-state-hover a, .ui-state-hover a:hover { color: #222222; text-decoration: none; }
-.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #57442b url(images/ui-bg_flat_75_57442b_40x100.png) 50% 50% repeat-x; font-weight: bold; color: #ffffff; }
-.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #ffffff; text-decoration: none; }
+/*.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #dfdfdf url(images/ui-bg_inset-soft_75_dfdfdf_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #140f06; }*/
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #140f06; text-decoration: none; }
.ui-widget :active { outline: none; }
/* Interaction Cues
----------------------------------*/
-.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #aaaaaa; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
+/*.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #aaaaaa; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }*/
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
-.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #aaaaaa; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #8c291d; }
+/*.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #aaaaaa; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #8c291d; }*/
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #8c291d; }
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #8c291d; }
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
@@ -86,14 +86,16 @@
----------------------------------*/
/* states and images */
+/*
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
-.ui-state-default .ui-icon { background-image: url(images/ui-icons_ffffff_256x240.png); }
+.ui-state-default .ui-icon { background-image: url(images/ui-icons_8c291d_256x240.png); }
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
-.ui-state-active .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.ui-state-active .ui-icon {background-image: url(images/ui-icons_8c291d_256x240.png); }
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
+*/
/* positioning */
.ui-icon-carat-1-n { background-position: 0 0; }
@@ -283,9 +285,12 @@
.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
/* Overlays */
+/*
.ui-widget-overlay { background: #6e4f1c url(images/ui-bg_flat_0_6e4f1c_40x100.png) 50% 50% repeat-x; opacity: .35;filter:Alpha(Opacity=35); }
-.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #000000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x; opacity: .35;filter:Alpha(Opacity=35); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
- * jQuery UI Resizable 1.8.18
+.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #000000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x; opacity: .35;filter:Alpha(Opacity=35); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }
+*/
+/*
+ * jQuery UI Resizable 1.8.17
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
@@ -303,8 +308,9 @@
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
- * jQuery UI Selectable 1.8.18
+.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}
+/*
+ * jQuery UI Selectable 1.8.17
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
@@ -314,7 +320,7 @@
*/
.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
/*
- * jQuery UI Accordion 1.8.18
+ * jQuery UI Accordion 1.8.17
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
@@ -333,7 +339,7 @@
.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
.ui-accordion .ui-accordion-content-active { display: block; }
/*
- * jQuery UI Autocomplete 1.8.18
+ * jQuery UI Autocomplete 1.8.17
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
@@ -341,13 +347,13 @@
*
* http://docs.jquery.com/UI/Autocomplete#theming
*/
-.ui-autocomplete { position: absolute; cursor: default; }
+.ui-autocomplete { position: absolute; cursor: default; }
/* workarounds */
* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
/*
- * jQuery UI Menu 1.8.18
+ * jQuery UI Menu 1.8.17
*
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
@@ -386,7 +392,7 @@
margin: -1px;
}
/*
- * jQuery UI Button 1.8.18
+ * jQuery UI Button 1.8.17
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
@@ -394,7 +400,7 @@
*
* http://docs.jquery.com/UI/Button#theming
*/
-.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */
+.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
.ui-button-icons-only { width: 3.4em; }
@@ -424,7 +430,7 @@ input.ui-button { padding: .4em 1em; }
/* workarounds */
button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
/*
- * jQuery UI Dialog 1.8.18
+ * jQuery UI Dialog 1.8.17
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
@@ -445,7 +451,7 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
.ui-draggable .ui-dialog-titlebar { cursor: move; }
/*
- * jQuery UI Slider 1.8.18
+ * jQuery UI Slider 1.8.17
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
@@ -467,8 +473,9 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
-.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
- * jQuery UI Tabs 1.8.18
+.ui-slider-vertical .ui-slider-range-max { top: 0; }
+/*
+ * jQuery UI Tabs 1.8.17
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
@@ -486,74 +493,7 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
.ui-tabs .ui-tabs-hide { display: none !important; }
/*
- * jQuery UI Datepicker 1.8.18
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Datepicker#theming
- */
-.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
-.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
-.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
-.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
-.ui-datepicker .ui-datepicker-prev { left:2px; }
-.ui-datepicker .ui-datepicker-next { right:2px; }
-.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
-.ui-datepicker .ui-datepicker-next-hover { right:1px; }
-.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
-.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
-.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
-.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month,
-.ui-datepicker select.ui-datepicker-year { width: 49%;}
-.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
-.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
-.ui-datepicker td { border: 0; padding: 1px; }
-.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
-.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
-.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi { width:auto; }
-.ui-datepicker-multi .ui-datepicker-group { float:left; }
-.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
-.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
-.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
-.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
-.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
-
-/* RTL support */
-.ui-datepicker-rtl { direction: rtl; }
-.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-
-/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
-.ui-datepicker-cover {
- display: none; /*sorry for IE5*/
- display/**/: block; /*sorry for IE5*/
- position: absolute; /*must have*/
- z-index: -1; /*must have*/
- filter: mask(); /*must have*/
- top: -4px; /*must have*/
- left: -4px; /*must have*/
- width: 200px; /*must have*/
- height: 200px; /*must have*/
-}/*
- * jQuery UI Progressbar 1.8.18
+ * jQuery UI Progressbar 1.8.17
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
@@ -561,5 +501,5 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
*
* http://docs.jquery.com/UI/Progressbar#theming
*/
-.ui-progressbar { height:2em; text-align: left; overflow: hidden; }
+.ui-progressbar { height:1.3em; text-align: left; overflow: hidden; }
.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
View
83 data/css/tablesorter.css
@@ -0,0 +1,83 @@
+/* SB Theme */
+table.tablesorter {
+ width: 100%;
+ margin-left:auto;
+ margin-right:auto;
+ text-align:left;
+ color: #000;
+ background-color: #fff;
+ border-spacing: 0;
+}
+table.tablesorter th,
+table.tablesorter td {
+ padding: 4px;
+ border-left: #fff 1px solid;
+ border-top: #fff 1px solid;
+}
+/* remove extra border from left edge */
+table.tablesorter th:first-child,
+table.tablesorter td:first-child {
+ border-left: none;
+}
+table.tablesorter th {
+ border-collapse: collapse;
+ background-color: #333;
+ color: #fff;
+ text-shadow: -1px -1px 0 rgba(0,0,0,0.3);
+ text-align: center;
+}
+table.tablesorter .tablesorter-header {
+/* background-image: url(../images/tablesorter/bg.gif); */
+ background-repeat: no-repeat;
+ background-position: center right;
+ padding: 4px 18px 4px 4px;
+ cursor: pointer;
+}
+table.tablesorter th.tablesorter-headerSortUp {
+ background-color: #57442B;
+/* background-image: url(../images/tablesorter/asc.gif); */
+}
+table.tablesorter th.tablesorter-headerSortDown {
+ background-color: #57442B;
+/* background-image: url(../images/tablesorter/desc.gif); */
+}
+
+/* Zebra Widget - row alternating colors */
+table.tablesorter tr.odd td {
+ background-color: #f5f1e4;
+}
+table.tablesorter tr.even td {
+ background-color: #dfdacf;
+}
+/* filter widget */
+table.tablesorter input.tablesorter-filter {
+ width: 98%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+table.tablesorter tr.tablesorter-filter,
+table.tablesorter tr.tablesorter-filter td {
+ text-align: center;
+ background: #eee;
+}
+/* optional disabled input styling */
+table.tablesorter input.tablesorter-filter.disabled {
+ display: none;
+}
+
+
+/* xtra css for sb */
+.tablesorter-header-inner {
+ text-align: center;
+ padding: 0 2px;
+}
+tr.tablesorter-stickyHeader {
+ background-color: #fff;
+ padding: 2px 0;
+}
+
+table.tablesorter tfoot a {
+ color:#fff;
+ text-decoration: none;
+}
View
136 data/interfaces/default/comingEpisodes.tmpl
@@ -9,7 +9,6 @@
#import os.path
#include $os.path.join($sickbeard.PROG_DIR, "data/interfaces/default/inc_top.tmpl")
#set $sort = $sickbeard.COMING_EPS_SORT
-
<script type="text/javascript" src="$sbRoot/js/ajaxEpSearch.js"></script>
<div class="h2footer align-right">
@@ -23,48 +22,123 @@
#if $layout == 'list':
<!-- start list view //-->
-<script type="text/javascript" src="$sbRoot/js/lib/jquery.dataTables.min.js"></script>
-<script type="text/javascript" src="$sbRoot/js/jquery.dataTables.reloadAjax.js"></script>
-<script type="text/javascript" src="$sbRoot/js/jquery.dataTables.sorting.js"></script>
-<script type="text/javascript" src="$sbRoot/js/comingEps.js"></script>
<script type="text/javascript" src="$sbRoot/js/plotTooltip.js"></script>
-
<script type="text/javascript" charset="utf-8">
<!--
-#if sickbeard.COMING_EPS_SORT == "date":
- #set $sort_column = '0'
-#elif sickbeard.COMING_EPS_SORT == "network":
- #set $sort_column = '4'
-#elif sickbeard.COMING_EPS_SORT == "show":
- #set $sort_column = '1'
+\$.tablesorter.addParser({
+ id: 'loadingNames',
+ is: function(s) {
+ return false;
+ },
+ format: function(s) {
+ if (s.indexOf('Loading...') == 0)
+ return s.replace('Loading...','000');
+ return (s || '').replace(/^(The|A)\s/i,'');
+ },
+ type: 'text'
+});
+\$.tablesorter.addParser({
+ id: 'quality',
+ is: function(s) {
+ return false;
+ },
+ format: function(s) {
+ return s.replace('hd',3).replace('sd',1).replace('any',0).replace('best',2).replace('custom',4);
+ },
+ type: 'numeric'
+});
+
+
+\$(document).ready(function(){
+
+#set $sort_codes = {'date': 0, 'show': 1, 'network': 4}
+#if $sort not in $sort_codes:
+ $sort = 'date'
#end if
-\$(document).ready(function() {
- // Sort immediately as specified in the options
- comingEpsTableObj.fnSort( [ [$sort_column,'asc'], [1,'asc'] ] );
-} );
--->
+ sortList = [[$sort_codes[$sort],0]];
+
+ \$("#showListTable:has(tbody tr)").tablesorter({
+ widgets: ['stickyHeaders'],
+ sortList: sortList,
+ textExtraction: {
+ 5: function(node) { return \$(node).find("span").text().toLowerCase(); }
+ },
+ headers: {
+ 0: { sorter: 'isoDate' },
+ 1: { sorter: 'loadingNames' },
+ 2: { sorter: false },
+ 3: { sorter: false },
+ 4: { sorter: 'loadingNames' },
+ 5: { sorter: 'quality' },
+ 6: { sorter: false },
+ 7: { sorter: false }
+ }
+ });
+
+ \$('#sbRoot').ajaxEpSearch();
+
+});
+//-->
</script>
-#set $show_div = "listing_default"
+ #set $show_div = "listing_default"
<input type="hidden" id="sbRoot" value="$sbRoot" />
<br/>
- <table id="comingEpsTable" class="sbTable" cellspacing="1" border="0" cellpadding="0">
- <thead>
- <tr>
- <th>Airdate</th>
- <th>Show</th>
- <th class="nowrap">Next Ep</th>
- <th>Next Ep Name</th>
- <th>Network</th>
- <th>Quality</th>
- <th>tvDB</th>
- <th>Search</th>
- </tr>
- </thead>
+ <table id="showListTable" class="sickbeardTable tablesorter" cellspacing="1" border="0" cellpadding="0">
+ <thead><tr><th>Airdate</th><th>Show</th><th class="nowrap">Next Ep</th><th>Next Ep Name</th><th>Network</th><th>Quality</th><th>tvDB</th><th>Search</th></tr></thead>
<tbody>
+ #for $cur_result in $sql_results:
+
+ #if int($cur_result["paused"]) and not $sickbeard.COMING_EPS_DISPLAY_PAUSED:
+ #continue
+ #end if
+
+ #set $cur_ep_airdate = int($cur_result["airdate"])
+ #if $cur_ep_airdate < $today:
+ #set $show_div = "listing_overdue"
+ #elif $cur_ep_airdate >= $next_week:
+ #set $show_div = "listing_toofar"
+ #elif $cur_ep_airdate >= $today and $cur_ep_airdate < $next_week:
+ #if $cur_ep_airdate == $today:
+ #set $show_div = "listing_current"
+ #else:
+ #set $show_div = "listing_default"
+ #end if
+ #end if
+
+ <!-- start $cur_result["show_name"] //-->
+ <tr class="$show_div">
+ <td align="center" class="nowrap">$datetime.date.fromordinal(int($cur_result["airdate"]))</td>
+ <td class="tvShow"><a href="$sbRoot/home/displayShow?show=${cur_result["showid"]}">$cur_result["show_name"]</a>
+ #if int($cur_result["paused"]):
+ <span class="pause">[paused]</span>
+ #end if
+ </td>
+ <td class="nowrap" align="center"><%="%02ix%02i" % (int(cur_result["season"]), int(cur_result["episode"])) %></td>
+ <td>
+ #if $cur_result["description"] != "" and $cur_result["description"] != None:
+ <img alt="" src="$sbRoot/images/info32.png" height="16" width="16" class="plotInfo" id="plot_info_<%=str(cur_result["showid"])+"_"+str(cur_result["season"])+"_"+str(cur_result["episode"])%>" />
+ #end if
+ $cur_result["name"]
+ </td>
+ <td align="center">$cur_result["network"]</td>
+ <td align="center">
+#if int($cur_result["quality"]) in $qualityPresets:
+ <span class="quality $qualityPresetStrings[int($cur_result["quality"])]">$qualityPresetStrings[int($cur_result["quality"])]</span>
+#else:
+ <span class="quality Custom">Custom</span>
+#end if
+ </td>
+ <td align="center"><a href="http://www.thetvdb.com/?tab=series&amp;id=${cur_result["showid"]}" onclick="window.open(this.href, '_blank'); return false;" title="http://www.thetvdb.com/?tab=series&amp;id=${cur_result["showid"]}"><img alt="[info]" height="16" width="16" src="$sbRoot/images/thetvdb16.png" /></a></td>
+ <td align="center">
+ <a href="$sbRoot/home/searchEpisode?show=${cur_result["showid"]}&amp;season=$cur_result["season"]&amp;episode=$cur_result["episode"]" title="Manual Search" id="forceUpdate-${cur_result["showid"]}" class="forceUpdate epSearch"><img alt="[search]" height="16" width="16" src="$sbRoot/images/search32.png" id="forceUpdateImage-${cur_result["showid"]}" /></a>
+ </td>
+ </tr>
+ <!-- end $cur_result["show_name"] //-->
+ #end for
</tbody>
</table>
<!-- end list view //-->
View
2  data/interfaces/default/config_providers.tmpl
@@ -50,7 +50,7 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
#continue
#end if
#set $curName = $curProvider.getID()
- <li class="ui-state-highlight ui-corner-all" id="$curName">
+ <li class="ui-state-default" id="$curName">
<input type="checkbox" id="enable_$curName" class="provider_enabler" #if $curProvider.isEnabled() then "checked=\"checked\"" else ""#/>
<a href="$curProvider.url" class="imgLink" target="_new"><img src="$sbRoot/images/providers/$curProvider.imageName()" alt="$curProvider.name" title="$curProvider.name" width="16" height="16" /></a>
$curProvider.name
View
51 data/interfaces/default/history.tmpl
@@ -13,46 +13,35 @@
#set global $topmenu="history"#
#include $os.path.join($sickbeard.PROG_DIR, "data/interfaces/default/inc_top.tmpl")
-<script type="text/javascript" src="$sbRoot/js/lib/jquery.dataTables.min.js"></script>
-<script type="text/javascript" src="$sbRoot/js/jquery.dataTables.reloadAjax.js"></script>
-<script type="text/javascript" src="$sbRoot/js/jquery.dataTables.sorting.js"></script>
-
<script type="text/javascript">
<!--
\$(document).ready(function()
{
- \$("#historyTable").dataTable({
- "bJQueryUI": true,
- "bStateSave": false,
- "aaSorting": [[0, 'desc']],
- "iDisplayLength": 50,
-
- "sPaginationType": "two_button",
-
- "aoColumnDefs": [
- { "asSorting": [ "desc", "asc" ], "aTargets": [0] },
-
- {
- "sType": "quality",
- "bUseRendered": false,
- "aDataSort": [4, 1],
- "aTargets": [ 4 ],
- },
-
- {
- "sType": "titles",
- "bUseRendered": false,
- "aTargets": [ 1 ],
- }
-
- ]
+ \$("#historyTable:has(tbody tr)").tablesorter({
+ widgets: ['zebra', 'stickyHeaders', 'filter'],
+ sortList: [[0,1]],
+ textExtraction: {
+ 4: function(node) { return \$(node).find("span").text().toLowerCase(); }
+ }
+ });
+ \$('#limit').change(function(){
+ url = '$sbRoot/history/?limit='+\$(this).val()
+ window.location.href = url
});
-
});
//-->
</script>
-<table id="historyTable" cellspacing="1" border="0" cellpadding="0">
+<div class="h2footer align-right"><b>Limit:</b>
+ <select name="limit" id="limit">
+ <option value="100" #if $limit == "100" then "selected=\"selected\"" else ""#>100</option>
+ <option value="250" #if $limit == "250" then "selected=\"selected\"" else ""#>250</option>
+ <option value="500" #if $limit == "500" then "selected=\"selected\"" else ""#>500</option>
+ <option value="0" #if $limit == "0" then "selected=\"selected\"" else ""#>All</option>
+ </select>
+</div><br/>
+
+<table id="historyTable" class="sickbeardTable tablesorter" cellspacing="1" border="0" cellpadding="0">
<thead><tr><th class="nowrap">Time</th><th>Episode</th><th>Action</th><th>Provider</th><th>Quality</th></tr></thead>
<tbody>
#for $hItem in $historyResults:
View
160 data/interfaces/default/home.tmpl
@@ -12,22 +12,168 @@
#import os.path
#include $os.path.join($sickbeard.PROG_DIR, "data/interfaces/default/inc_top.tmpl")
-<script type="text/javascript" src="$sbRoot/js/lib/jquery.dataTables.min.js"></script>
-<script type="text/javascript" src="$sbRoot/js/jquery.dataTables.reloadAjax.js"></script>
-<script type="text/javascript" src="$sbRoot/js/jquery.dataTables.sorting.js"></script>
-<script type="text/javascript" src="$sbRoot/js/home.js"></script>
+#set $myDB = $db.DBConnection()
+#set $today = str($datetime.date.today().toordinal())
+#set $downloadedEps = $myDB.select("SELECT showid, COUNT(*) FROM tv_episodes WHERE (status IN ("+",".join([str(x) for x in $Quality.DOWNLOADED + [$ARCHIVED]])+") OR (status IN ("+",".join([str(x) for x in $Quality.SNATCHED + $Quality.SNATCHED_PROPER])+") AND location != '')) AND season != 0 and episode != 0 AND airdate <= "+$today+" GROUP BY showid")
+#set $allEps = $myDB.select("SELECT showid, COUNT(*) FROM tv_episodes WHERE season != 0 and episode != 0 AND (airdate != 1 OR status IN ("+",".join([str(x) for x in ($Quality.DOWNLOADED + $Quality.SNATCHED + $Quality.SNATCHED_PROPER) + [$ARCHIVED]])+")) AND airdate <= "+$today+" AND status != "+str($IGNORED)+" GROUP BY showid")
-<table id="showListTable" class="sbTable" cellspacing="1" border="0" cellpadding="0">
+<script type="text/javascript" charset="utf-8">
+<!--
+
+\$.tablesorter.addParser({
+ id: 'loadingNames',
+ is: function(s) {
+ return false;
+ },
+ format: function(s) {
+ if (s.indexOf('Loading...') == 0)
+ return s.replace('Loading...','000');
+ return (s || '').replace(/^(The|A)\s/i,'');
+ },
+ type: 'text'
+});
+
+\$.tablesorter.addParser({
+ id: 'quality',
+ is: function(s) {
+ return false;
+ },
+ format: function(s) {
+ return s.replace('hd',3).replace('sd',1).replace('any',0).replace('best',2).replace('custom',4);
+ },
+ type: 'numeric'
+});
+
+\$.tablesorter.addParser({
+ id: 'eps',
+ is: function(s) {
+ return false;
+ },
+ format: function(s) {
+ match = s.match(/^(.*)/);
+
+ if (match == null || match[1] == "?")
+ return -10;
+
+ var nums = match[1].split(" / ");
+
+ var finalNum = parseInt((nums[0]/nums[1])*1000)*100;
+ if (finalNum > 0)
+ finalNum += parseInt(nums[0]);
+
+ return finalNum
+ },
+ type: 'numeric'
+});
+
+\$(document).ready(function(){
+
+ \$("#showListTable:has(tbody tr)").tablesorter({
+ sortList: [[5,1],[1,0]],
+ textExtraction: {
+ 3: function(node) { return \$(node).find("span").text().toLowerCase(); },
+ 4: function(node) { return \$(node).find("span").text(); },
+ 5: function(node) { return \$(node).find("img").attr("alt"); }
+ },
+ widgets: ['saveSort', 'zebra', 'stickyHeaders'],
+ headers: {
+ 0: { sorter: 'isoDate' },
+ 1: { sorter: 'loadingNames' },
+ 3: { sorter: 'quality' },
+ 4: { sorter: 'eps' }
+ }
+ });
+
+});
+//-->
+</script>
+
+<table id="showListTable" class="sickbeardTable tablesorter" cellspacing="1" border="0" cellpadding="0">
<thead><tr><th class="nowrap">Next Ep</th><th>Show</th><th>Network</th><th>Quality</th><th>Downloads</th><th>Active</th><th>Status</th></tr></thead>
- <tbody>
- </tbody>
<tfoot>
<tr>
<th rowspan="1" colspan="1" align="center"><a href="$sbRoot/home/addShows/">Add Show</a></th>
<th rowspan="1" colspan="6"></th>
</tr>
</tfoot>
+ <tbody>
+
+#for $curLoadingShow in $sickbeard.showQueueScheduler.action.loadingShowList:
+
+ #if $curLoadingShow.show != None and $curLoadingShow.show in $sickbeard.showList:
+ #continue
+ #end if
+
+ <tr>
+ <td align="center">(loading)</td>
+ <td>
+ #if $curLoadingShow.show == None:
+ Loading... ($curLoadingShow.show_name)
+ #else:
+ <a href="displayShow?show=$curLoadingShow.show.tvdbid">$curLoadingShow.show.name</a>
+ #end if
+ </td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+#end for
+
+#set $myShowList = $list($sickbeard.showList)
+$myShowList.sort(lambda x, y: cmp(x.name, y.name))
+#for $curShow in $myShowList:
+#set $curEp = $curShow.nextEpisode()
+
+#set $curShowDownloads = [x[1] for x in $downloadedEps if int(x[0]) == $curShow.tvdbid]
+#set $curShowAll = [x[1] for x in $allEps if int(x[0]) == $curShow.tvdbid]
+#if len($curShowAll) != 0:
+ #if len($curShowDownloads) != 0:
+ #set $dlStat = str($curShowDownloads[0])+" / "+str($curShowAll[0])
+ #set $nom = $curShowDownloads[0]
+ #set $den = $curShowAll[0]
+ #else
+ #set $dlStat = "0 / "+str($curShowAll[0])
+ #set $nom = 0
+ #set $den = $curShowAll[0]
+ #end if
+#else
+ #set $dlStat = "?"
+ #set $nom = 0
+ #set $den = 1
+#end if
+
+
+ <tr>
+ <td align="center" class="nowrap">#if len($curEp) != 0 then $curEp[0].airdate else ""#</td>
+ <td class="tvShow"><a href="$sbRoot/home/displayShow?show=$curShow.tvdbid">$curShow.name</a></td>
+ <td>$curShow.network</td>
+#if $curShow.quality in $qualityPresets:
+ <td align="center"><span class="quality $qualityPresetStrings[$curShow.quality]">$qualityPresetStrings[$curShow.quality]</span></td>
+#else:
+ <td align="center"><span class="quality Custom">Custom</span></td>
+#end if
+ <td align="center"><span style="display: none;">$dlStat</span><div id="progressbar$curShow.tvdbid" style="position:relative;"></div>
+ <script type="text/javascript">
+ <!--
+ \$(function() {
+ \$("\#progressbar$curShow.tvdbid").progressbar({
+ value: parseInt($nom) * 100 / parseInt($den)
+ });
+ \$("\#progressbar$curShow.tvdbid").append( "<div class='progressbarText'>$dlStat</div>" )
+ });
+ //-->
+ </script>
+ </td>
+ <td align="center"><img src="$sbRoot/images/#if int($curShow.paused) == 0 and $curShow.status != "Ended" then "yes16.png\" alt=\"Y\"" else "no16.png\" alt=\"N\""# width="16" height="16" /></td>
+ <td align="center">$curShow.status</td>
+ </tr>
+
+
+#end for
+</tbody>
</table>
<script type="text/javascript" src="$sbRoot/js/tableClick.js"></script>
View
2  data/interfaces/default/home_addExistingShow.tmpl
@@ -13,8 +13,6 @@
<form id="addShowForm" method="post" action="$sbRoot/home/addShows/addNewShow" accept-charset="utf-8">
-<script type="text/javascript" src="$sbRoot/js/lib/jquery.dataTables.min.js"></script>
-<script type="text/javascript" src="$sbRoot/js/jquery.dataTables.sorting.js"></script>
<script type="text/javascript" src="$sbRoot/js/addExistingShow.js"></script>
<script type="text/javascript" src="$sbRoot/js/rootDirs.js"></script>
<script type="text/javascript" src="$sbRoot/js/addShowOptions.js"></script>
View
2  data/interfaces/default/home_massAddTable.tmpl
@@ -1,4 +1,4 @@
-<table id="addRootDirTable">
+<table id="addRootDirTable" class="sickbeardTable tablesorter">
<thead><tr><th width="1%"><input type="checkbox" id="checkAll" checked=checked></th><th>Directory</th><th width="20%">Show Name (tvshow.nfo)</td></tr></thead>
<tfoot>
<tr>
View
35 data/interfaces/default/inc_top.tmpl
@@ -11,23 +11,52 @@
<link rel="shortcut icon" href="$sbRoot/images/favicon.ico" />
<link rel="apple-touch-icon" href="$sbRoot/images/sickbeard_touch_icon.png" />
<link rel="stylesheet" type="text/css" href="$sbRoot/css/default.css" />
- <link rel="stylesheet" type="text/css" href="$sbRoot/css/lib/dataTables/jquery.dataTables_themeroller.css" />
<link rel="stylesheet" type="text/css" href="$sbRoot/css/browser.css" />
<link rel="stylesheet" type="text/css" href="$sbRoot/css/comingEpisodes.css" />
<link rel="stylesheet" type="text/css" href="$sbRoot/css/config.css" />
<link rel="stylesheet" type="text/css" href="$sbRoot/css/lib/jquery.pnotify.default.css" />
- <link rel="stylesheet" type="text/css" href="$sbRoot/css/lib/sickbeard-jquery/jquery-ui-1.8.18.custom.css" />
+ <link rel="stylesheet" type="text/css" href="$sbRoot/css/lib/smooth-grinder/jquery-ui-1.8.17.custom.css" />
<link rel="stylesheet" type="text/css" href="$sbRoot/css/lib/superfish.css" />
+ <link rel="stylesheet" type="text/css" href="$sbRoot/css/tablesorter.css"/>
<link rel="stylesheet" type="text/css" href="$sbRoot/css/lib/jquery.qtip2.css"/>
<link rel="stylesheet" type="text/css" media="only screen and (max-device-width: 480px)" href="$sbRoot/css/iphone.css" />
<style type="text/css">
<!--
#contentWrapper { background: url("$sbRoot/images/bg.gif") repeat scroll 0 0 transparent; }
+
.sf-sub-indicator { background: url("$sbRoot/images/arrows.png") no-repeat -10px -100px; }
.sf-shadow ul { background: url("$sbRoot/images/shadow.png") no-repeat bottom right; }
+th.tablesorter-header { background-image: url("$sbRoot/images/tablesorter/bg.gif"); }
+th.tablesorter-headerSortUp { background-image: url("$sbRoot/images/tablesorter/asc.gif"); }
+th.tablesorter-headerSortDown { background-image: url("$sbRoot/images/tablesorter/desc.gif"); }
+.ui-autocomplete-loading { background: white url("$sbRoot/images/loading16.gif") right center no-repeat; }
.browserDialog.busy .ui-dialog-buttonpane { background: url("$sbRoot/images/loading.gif") 10px 50% no-repeat !important; }
+.ui-dialog, .ui-dialog-buttonpane { background: #eceadf url("$sbRoot/css/lib/smooth-grinder/images/ui-bg_fine-grain_10_eceadf_60x60.png") 50% 50% repeat !important; }
+.ui-accordion-content, .ui-tabs-panel { background: #ededed !important; background-image: none !important; }
+
+.ui-widget-content { border: 1px solid #aaaaaa; background: #dcdcdc url("$sbRoot/css/lib/smooth-grinder/images/ui-bg_highlight-soft_75_dcdcdc_1x100.png") 50% top repeat-x; color: #222222; }
+.ui-widget-header { border: 1px solid #aaaaaa; background: #ffffff url("$sbRoot/css/lib/smooth-grinder/images/ui-bg_flat_0_ffffff_40x100.png") 50% 50% repeat-x; color: #222222; font-weight: bold; }
+
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #aaaaaa; background: #efefef url("$sbRoot/css/lib/smooth-grinder/images/ui-bg_highlight-soft_75_efefef_1x100.png") 50% 50% repeat-x; font-weight: bold; color: #222222; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dddddd url("$sbRoot/css/lib/smooth-grinder/images/ui-bg_highlight-soft_75_dddddd_1x100.png") 50% 50% repeat-x; font-weight: bold; color: #222222; }
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #dfdfdf url("$sbRoot/css/lib/smooth-grinder/images/ui-bg_inset-soft_75_dfdfdf_1x100.png") 50% 50% repeat-x; font-weight: bold; color: #140f06; }
+
+.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #aaaaaa; background: #fbf9ee url("$sbRoot/css/lib/smooth-grinder/images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x; color: #363636; }
+.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #aaaaaa; background: #fef1ec url("$sbRoot/css/lib/smooth-grinder/images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x; color: #8c291d; }
+
+.ui-icon { width: 16px; height: 16px; background-image: url("$sbRoot/css/lib/smooth-grinder/images/ui-icons_222222_256x240.png"); }
+.ui-widget-content .ui-icon {background-image: url("$sbRoot/css/lib/smooth-grinder/images/ui-icons_222222_256x240.png"); }
+.ui-widget-header .ui-icon {background-image: url("$sbRoot/css/lib/smooth-grinder/images/ui-icons_222222_256x240.png"); }
+.ui-state-default .ui-icon { background-image: url("$sbRoot/css/lib/smooth-grinder/images/ui-icons_8c291d_256x240.png"); }
+.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url("$sbRoot/css/lib/smooth-grinder/images/ui-icons_222222_256x240.png"); }
+.ui-state-active .ui-icon {background-image: url("$sbRoot/css/lib/smooth-grinder/images/ui-icons_8c291d_256x240.png"); }
+.ui-state-highlight .ui-icon {background-image: url("$sbRoot/css/lib/smooth-grinder/images/ui-icons_2e83ff_256x240.png"); }
+.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url("$sbRoot/css/lib/smooth-grinder/images/ui-icons_cd0a0a_256x240.png"); }
+
+.ui-widget-overlay { background: #aaaaaa url("$sbRoot/css/lib/smooth-grinder/images/ui-bg_flat_0_000000_40x100.png") 50% 50% repeat; opacity: .35;filter:Alpha(Opacity=35); }
+.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #000000 url("$sbRoot/css/lib/smooth-grinder/images/ui-bg_flat_0_000000_40x100.png") 50% 50% repeat-x; opacity: .35;filter:Alpha(Opacity=35); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }
#if $sickbeard.NEWEST_VERSION_STRING:
.ui-pnotify { top: 30px !important; }
@@ -43,6 +72,8 @@
<script type="text/javascript" src="$sbRoot/js/lib/jquery.cookiejar.js"></script>
<script type="text/javascript" src="$sbRoot/js/lib/jquery.json-2.2.min.js"></script>
<script type="text/javascript" src="$sbRoot/js/lib/jquery.selectboxes.min.js"></script>
+ <script type="text/javascript" src="$sbRoot/js/lib/jquery.tablesorter-2.1.10.min.js"></script>
+ <script type="text/javascript" src="$sbRoot/js/lib/jquery.tablesorter.widgets.min.js"></script>
<script type="text/javascript" src="$sbRoot/js/lib/jquery.qtip-2011-11-14.min.js"></script>
<script type="text/javascript" src="$sbRoot/js/lib/jquery.pnotify-1.0.2.min.js"></script>
<script type="text/javascript" src="$sbRoot/js/lib/jquery.expand-1.3.8.js"></script>
View
102 data/interfaces/default/manage.tmpl
@@ -8,12 +8,8 @@
#import os.path
#include $os.path.join($sickbeard.PROG_DIR, "data/interfaces/default/inc_top.tmpl")
-<script type="text/javascript" src="$sbRoot/js/lib/jquery.dataTables.min.js"></script>
-<script type="text/javascript" src="$sbRoot/js/jquery.dataTables.sorting.js"></script>
-
<script type="text/javascript" charset="utf-8">
<!--
-/*
\$.tablesorter.addParser({
id: 'showNames',
is: function(s) {
@@ -55,73 +51,7 @@
9: { sorter: false},
10: { sorter: false}
}
- });
- });
-*/
-
-\$(document).ready(function()
-{
- \$("#massUpdateTable").dataTable({
- "bPaginate": false,
- "bInfo": false,
- "bFilter": false,
- "bAutoWidth": false,
- "bProcessing": false,
- "sDom": "lftipr",
- "bJQueryUI": true,
-
- // use localstorage to save state
- "bStateSave": true,
- "fnStateSave": function (oSettings, oData) {
- localStorage.setItem( 'DataTables_'+window.location.pathname, JSON.stringify(oData) );
- },
- "fnStateLoad": function (oSettings) {
- var data = localStorage.getItem('DataTables_'+window.location.pathname);
- return JSON.parse(data);
- },
-
-
- "aoColumnDefs": [
- {
- "sClass": "center",
- "aTargets": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10]
- },
-
- { "asSorting": [ "desc", "asc" ], "aTargets": [0] },
-
- {
- "bSortable": false,
- "bSearchable": false,
- "aTargets": [0, 7, 8, 9, 10]
- },
-
- {
- "sType": "quality",
- "bUseRendered": false,
-
- // render the quality in a span
- "fnRender": function ( oObj, sVal ) {
- return '<span class="quality '+sVal+'">'+sVal+'</span>';
- },
- "aDataSort": [3, 1],
- "aTargets": [ 3 ],
- },
-
- {
- "sType": "alt-string",
- "bUseRendered": true,
- "aTargets": [4, 5],
- },
-
- {
- "sType": "titles",
- "bUseRendered": false,
- "aTargets": [ 6 ],
- },
-
- ]
- });
-
+ });
});
//-->
</script>
@@ -129,7 +59,7 @@
<form name="massUpdateForm" method="post" action="massUpdate">
-<table id="massUpdateTable" cellspacing="1" border="0" cellpadding="0">
+<table id="massUpdateTable" class="sickbeardTable tablesorter" cellspacing="1" border="0" cellpadding="0">
<thead>
<tr>
<th width="1%">Edit&nbsp;<input type="checkbox" class="bulkCheck" id="editCheck" /></th>
@@ -180,26 +110,22 @@ $myShowList.sort(lambda x, y: cmp(x.name, y.name))
#set $curDelete = "<input type=\"checkbox\" class=\"deleteCheck\" id=\"delete-"+str($curShow.tvdbid)+"\" "+$curDelete_disabled+"/>"
<tr>
- <td><input type="checkbox" class="editCheck" id="edit-$curShow.tvdbid" /></td>
- <td><img src="$sbRoot/images/flags/${curShow.lang}.png" width="16" height="11" alt="$curShow.lang" /></td>
+ <td align="center"><input type="checkbox" class="editCheck" id="edit-$curShow.tvdbid" /></td>
+ <td align="center"><img src="$sbRoot/images/flags/${curShow.lang}.png" width="16" height="11" alt="$curShow.lang" /></td>
<td class="tvShow"><a href="$sbRoot/home/displayShow?show=$curShow.tvdbid">$curShow.name</a></td>
-#if False and $curShow.quality in $qualityPresets:
- <td><span class="quality $qualityPresetStrings[$curShow.quality]">$qualityPresetStrings[$curShow.quality]</span></td>
-#elif False:
- <td><span class="quality Custom">Custom</span></td>
-#elif $curShow.quality in $qualityPresets:
- <td>$qualityPresetStrings[$curShow.quality]</td>
+#if $curShow.quality in $qualityPresets:
+ <td align="center"><span class="quality $qualityPresetStrings[$curShow.quality]">$qualityPresetStrings[$curShow.quality]</span></td>
#else:
- <td>Custom</td>
+ <td align="center"><span class="quality Custom">Custom</span></td>
#end if
- <td><img src="$sbRoot/images/#if int($curShow.seasonfolders) == 1 then "yes16.png\" alt=\"Y\"" else "no16.png\" alt=\"N\""# width="16" height="16" /></td>
- <td><img src="$sbRoot/images/#if int($curShow.paused) == 1 then "yes16.png\" alt=\"Y\"" else "no16.png\" alt=\"N\""# width="16" height="16" /></td>
- <td>$curShow.status</td>
- <td>$curUpdate</td>
- <td>$curRefresh</td>
- <td>$curRename</td>
+ <td align="center"><img src="$sbRoot/images/#if int($curShow.seasonfolders) == 1 then "yes16.png\" alt=\"Y\"" else "no16.png\" alt=\"N\""# width="16" height="16" /></td>
+ <td align="center"><img src="$sbRoot/images/#if int($curShow.paused) == 1 then "yes16.png\" alt=\"Y\"" else "no16.png\" alt=\"N\""# width="16" height="16" /></td>
+ <td align="center">$curShow.status</td>
+ <td align="center">$curUpdate</td>
+ <td align="center">$curRefresh</td>
+ <td align="center">$curRename</td>
<!-- <td align="center"><input type="checkbox" class="metadataCheck" id="metadata-$curShow.tvdbid" /></td>//-->
- <td>$curDelete</td>
+ <td align="center">$curDelete</td>
</tr>
#end for
</tbody>
View
42 data/js/addExistingShow.js
@@ -45,42 +45,12 @@ $(document).ready(function() {
$('#tableDiv').html('<img id="searchingAnim" src="'+sbRoot+'/images/loading32.gif" height="32" width="32" /> loading folders...');
$.get(sbRoot+'/home/addShows/massAddTable', url, function(data) {
$('#tableDiv').html(data);
- $("#addRootDirTable").dataTable({
-
- // disable most stuff for the table
- "bPaginate": false,
- "bInfo": false,
- "bFilter": false,
- "bAutoWidth": false,
- "bProcessing": false,
-
- // only show the basic DOM elements
- "sDom": "lftipr",
- "bJQueryUI": true,
-
- "aoColumnDefs": [
- { "sClass": "center", "aTargets": [0] },
-
- // checkbox
- {
- "bSortable": false,
- "bSearchable": false,
- "aTargets": [0],
- },
-
- // path
- {
- "sType": "titles",
- "aTargets": [ 1 ]
- },
-
- // TVDB link
- {
- "sType": "link-text",
- "aTargets": [ 2 ]
- },
-
- ],
+ $("#addRootDirTable").tablesorter({
+ //sortList: [[1,0]],
+ widgets: ['zebra'],
+ headers: {
+ 0: { sorter: false }
+ }
});
});
View
140 data/js/comingEps.js
@@ -1,140 +0,0 @@
-
-var comingEpsTableObj;
-var crc_url = sbRoot + '/home/json_coming_eps_list_crc';
-var last_crc = "";
-var json_url = sbRoot + "/json_coming_eps_list";
-
-function check_crc() {
- $.getJSON(crc_url, function(data){
- var cur_crc = data["crc"];
- if (last_crc != cur_crc) {
- if (last_crc != "")
- comingEpsTableObj.fnReloadAjax(json_url);
- last_crc = cur_crc;
- }
- });
-
- setTimeout(check_crc, 10000)
-}
-
-$(document).ready(function(){
-
- comingEpsTableObj = $("#comingEpsTable").dataTable({
- // populate it with ajax
- "sAjaxSource": json_url,
- "sAjaxDataProp": "episodes",
-
- // disable most stuff for the table
- "bPaginate": false,
- "bInfo": false,
- "bFilter": false,
- "bAutoWidth": false,
- "bProcessing": false,
-
- // only show the basic DOM elements
- "sDom": "lftipr",
- "bJQueryUI": true,
-
- // don't zebra this table since we'll color it ourselves
- "asStripeClasses": [],
-
- // use localstorage to save state
- "bStateSave": true,
- "fnStateSave": function (oSettings, oData) {
- localStorage.setItem( 'DataTables_'+window.location.pathname, JSON.stringify(oData) );
- },
- "fnStateLoad": function (oSettings) {
- var data = localStorage.getItem('DataTables_'+window.location.pathname);
- return JSON.parse(data);
- },
-
- "fnCreatedRow": function( nRow, aData, iDataIndex ) {
- if (aData["status"] == "past")
- row_class = "listing_overdue";
- else if (aData["status"] == "current")
- row_class = "listing_current";
- else if (aData["status"] == "future")
- row_class = "listing_default";
- else if (aData["status"] == "distant")
- row_class = "listing_toofar";
-
- $(nRow).attr('class', row_class);
- },
-
- "aoColumnDefs": [
- { "sClass": "center", "aTargets": [0, 2, 4, 5, 6, 7] },
-
- // Date
- {
- "sType": "empty-last",
- "aDataSort": [0, 1],
- "aTargets": [ 0 ]
- },
-
- // Title
- {
- "sType": "titles",
- "sClass": "tvShow",
- "bUseRendered": false,
-
- // render the show name as a link
- "fnRender": function ( oObj, sVal ) {
- return '<a href="'+sbRoot+'/home/displayShow?show=' + oObj.aData["tvdb_id"] + '">' + oObj.aData["show_name"] + '</a>';
- },
- "aTargets": [ 1 ]
- },
-
- // Quality
- {
- // sort the quality in the correct order and secondarily by name
- "sType": "quality",
- "bUseRendered": false,
- "aDataSort": [5, 1],
-
- // render the quality in a span
- "fnRender": function ( oObj, sVal ) {
- return '<span class="quality '+sVal+'">'+sVal+'</span>';
- },
- "aTargets": [ 5 ]
- },
-
- // TVDB link
- {
- "bSortable": false,
- "bSearchable": false,
-
- // render a link
- "fnRender": function ( oObj, sVal ) {
- return '<a href="http://www.thetvdb.com/?tab=series&amp;id='+oObj.aData["tvdb_id"]+'" onclick="window.open(this.href, \'_blank\'); return false;" title="http://www.thetvdb.com/?tab=series&amp;id='+oObj.aData["tvdb_id"]+'"><img alt="[info]" height="16" width="16" src="'+sbRoot+'/images/thetvdb16.png" /></a>';
- },
- "aTargets": [ 6 ]
- },
-
- // search link
- {
- "bSortable": false,
- "bSearchable": false,
-
- // render a link
- "fnRender": function ( oObj, sVal ) {
- return '<a href="'+sbRoot+'/home/searchEpisode?show='+oObj.aData["tvdb_id"]+'&amp;season='+oObj.aData["season"]+'&amp;episode='+oObj.aData["episode"]+'" title="Manual Search" id="forceUpdate-'+oObj.aData["tvdb_id"]+'" class="forceUpdate epSearch"><img alt="[search]" height="16" width="16" src="'+sbRoot+'/images/search32.png" id="forceUpdateImage-'+oObj.aData["tvdb_id"]+'" /></a>';
- },
- "aTargets": [ 7 ]
- },
-
- ],
- "aoColumns": [
- { "mDataProp": "air_date" },
- { "mDataProp": "show_name" },
- { "mDataProp": "ep_string" },
- { "mDataProp": "ep_name" },
- { "mDataProp": "network" },
- { "mDataProp": "quality_string" },
- { "mDataProp": null },
- { "mDataProp": null }
- ]
- });
-
- // start watching the show list crcs
- //check_crc();
-});
View
154 data/js/home.js
@@ -1,154 +0,0 @@
-function buildProgressHTML(tvdb_id, percent, downloaded, all)
-{
- display_string = downloaded + ' / ' + all;
- var percent_string = percent + '%';
- result = '<div class="downloadbar" title="'+percent_string+'"><div class="inner" style="width: '+percent_string+';"></div><div class="downloadbarText">'+display_string+'</div></div>';
- return result;
-}
-
-var homeTable;
-var crc_url = sbRoot + '/home/json_show_list_crc';
-var json_url = sbRoot + "/home/json_show_list";
-var last_crc = "";
-var update_time = 1000;
-
-function check_crc() {
- $.getJSON(crc_url, function(data){
- var cur_crc = data["crc"];
- if (last_crc != cur_crc) {
- if (last_crc != "")
- homeTable.fnReloadAjax(json_url);
- last_crc = cur_crc;
- update_time = 1000;
- } else {
- update_time = Math.min(10000, update_time + 2000);
- }
- });
-
- setTimeout(check_crc, update_time)
-}
-
-$(document).ready(function(){
-
- homeTable = $("#showListTable").dataTable({
- // pupulate it with ajax
- "sAjaxSource": json_url,
- "sAjaxDataProp": "shows",
-
- // disable most stuff for the shows table
- "bPaginate": false,
- "bInfo": false,
- "bFilter": false,
- "bAutoWidth": false,
- "bProcessing": false,
-
- // only show the basic DOM elements
- "sDom": "lftipr",
- "bJQueryUI": true,
-
- // use localstorage to save state
- "bStateSave": true,
- "fnStateSave": function (oSettings, oData) {
- localStorage.setItem( 'DataTables_'+window.location.pathname, JSON.stringify(oData) );
- },
- "fnStateLoad": function (oSettings) {
- var data = localStorage.getItem('DataTables_'+window.location.pathname);
- return JSON.parse(data);
- },
-
- "aoColumnDefs": [
- {
- "sClass": "center",
- "aTargets": [0, 2, 3, 4, 5, 6]
- },
-
- // Date
- {
- "sType": "empty-last",
- "aDataSort": [0, 1],
- "aTargets": [ 0 ]
- },
-
- // Title
- {
- "sType": "titles",
- "sClass": "tvShow",
- "bUseRendered": false,
-
- // render the show name as a link
- "fnRender": function ( oObj, sVal ) {
- if (oObj.aData["tvdb_id"] == 0)
- return sVal;
- return '<a href="'+sbRoot+'/home/displayShow?show=' + oObj.aData["tvdb_id"] + '">' + oObj.aData["name"] + '</a>';
- },
- "aTargets": [ 1 ]
- },
-
- // Quality
- {
- // sort the quality in the correct order and secondarily by name
- "sType": "quality",
- "bUseRendered": false,
- "aDataSort": [3, 1],
-
- // render the quality in a span
- "fnRender": function ( oObj, sVal ) {
- return '<span class="quality '+sVal+'">'+sVal+'</span>';
- },
- "aTargets": [ 3 ]
- },
-
- // Downloads
- {
- // render the download count as a progress bar
- "bUseRendered": false,
- "fnRender": function ( oObj, sVal ) {
- return buildProgressHTML(oObj.aData["tvdb_id"], oObj.aData["percent_downloaded"], oObj.aData["num_downloaded"], oObj.aData["num_eps"]);
- },
- "aTargets": [ 4 ]
- },
-
- // Active
- {
- // sort the name column with the active column
- "aDataSort": [5, 1],
- "sType": "alt-string",
-
- // render the Active column as an image
- "fnRender": function ( oObj, sVal ) {
- var img = '<img src="'+sbRoot+'/images/';
- if (sVal == true) {
- img += 'yes16.png" alt="Active"';
- } else {
- img += 'no16.png" alt="Not Active"';
- }
- img += 'width="16" height="16" />';
- return img;
- },
- "aTargets": [ 5 ]
- },
-
- // Status
- {
- // sort it with the name column
- "aDataSort": [6, 1],
- "aTargets": [6]
- },
- ],
-
- "aoColumns": [
- { "mDataProp": "next_airdate" },
- { "mDataProp": "name" },
- { "mDataProp": "network" },
- { "mDataProp": "quality_string" },
- { "mDataProp": "percent_downloaded" },
- { "mDataProp": "active" },
- { "mDataProp": "status" }
- ],
-
- "aaSorting": [[5, 'asc'], [1, 'asc']]
- });
-
- // start watching the show list crcs
- check_crc();
-});
View
102 data/js/jquery.dataTables.sorting.js
@@ -1,102 +0,0 @@
-$(document).ready(function(){
-
- $.fn.dataTableExt.oJUIClasses.sSortAsc = "ui-state-default sortedHeader";
- $.fn.dataTableExt.oJUIClasses.sSortDesc = "ui-state-default sortedHeader";
-
- function sortize_title(title)
- {
- var x = title.replace(/^(The|A)\s/i,'');
- if (x.indexOf('Loading...') == 0)
- x = x.replace('Loading...','000');
-
- return x;
- }
-
- function sortize_quality(quality)
- {
- if (quality == 'Custom')
- return 4;
- else if (quality == 'HD')
- return 3;
- else if (quality == 'Best')
- return 2;
- else if (quality == 'SD')
- return 1;
- else if (quality == 'Any')
- return 0;
- }
-
- $.fn.dataTableExt.oSort['titles-asc'] = function(a,b) {
- var x = sortize_title(a);
- var y = sortize_title(b);
- return ((x < y) ? -1 : ((x > y) ? 1 : 0));
- };
-
- $.fn.dataTableExt.oSort['titles-desc'] = function(a,b) {
- var x = sortize_title(a);
- var y = sortize_title(b);
- return ((x < y) ? 1 : ((x > y) ? -1 : 0));
- };
-
- $.fn.dataTableExt.oSort['quality-asc'] = function(a,b) {
- var x = sortize_quality(a);
- var y = sortize_quality(b);
-
- return ((x < y) ? 1 : ((x > y) ? -1 : 0));
- };
- $.fn.dataTableExt.oSort['quality-desc'] = function(a,b) {
- var x = sortize_quality(a);
- var y = sortize_quality(b);
-
- return ((x < y) ? -1 : ((x > y) ? 1 : 0));
- };
-
- $.fn.dataTableExt.oSort['alt-string-asc'] = function(a,b) {
- var x = a.match(/alt="(.*?)"/)[1].toLowerCase();
- var y = b.match(/alt="(.*?)"/)[1].toLowerCase();
- return ((x < y) ? -1 : ((x > y) ? 1 : 0));
- };
-
- $.fn.dataTableExt.oSort['alt-string-desc'] = function(a,b) {
- var x = a.match(/alt="(.*?)"/)[1].toLowerCase();
- var y = b.match(/alt="(.*?)"/)[1].toLowerCase();
- return ((x < y) ? 1 : ((x > y) ? -1 : 0));
- };
-
- $.fn.dataTableExt.oSort['link-text-asc'] = function(a,b) {
- var x = a.match(/>\s*(.*?)\s*<\s*\/\s*a\s*>/);
- var y = b.match(/>\s*(.*?)\s*<\s*\/\s*a\s*>/);
-
- x = x != null ? x[1].toLowerCase() : a.toLowerCase();
- y = y != null ? y[1].toLowerCase() : b.toLowerCase();
-
- return ((x < y) ? -1 : ((x > y) ? 1 : 0));
- };
-
- $.fn.dataTableExt.oSort['link-text-desc'] = function(a,b) {
- var x = a.match(/>\s*(.*?)\s*<\s*\/\s*a\s*>/);
- var y = b.match(/>\s*(.*?)\s*<\s*\/\s*a\s*>/);
-
- x = x != null ? x[1].toLowerCase() : a.toLowerCase();
- y = y != null ? y[1].toLowerCase() : b.toLowerCase();
-
- return ((x < y) ? 1 : ((x > y) ? -1 : 0));
- };
-
- $.fn.dataTableExt.oSort['empty-last-asc'] = function(a,b) {
- if (a == "")
- return 1;
- if (b == "")
- return -1;
- return ((a < b) ? -1 : ((a > b) ? 1 : 0));
- };
-
- $.fn.dataTableExt.oSort['empty-last-desc'] = function(a,b) {
- if (a == "")
- return 1;
- if (b == "")
- return -1;
- return ((a < b) ? 1 : ((a > b) ? -1 : 0));
- };
-
-});
View
44 data/js/jquery.datatables.reloadAjax.js
@@ -1,44 +0,0 @@
-$.fn.dataTableExt.oApi.fnReloadAjax = function ( oSettings, sNewSource, fnCallback, bStandingRedraw )
-{
- if ( typeof sNewSource != 'undefined' && sNewSource != null )
- {
- oSettings.sAjaxSource = sNewSource;
- }
- this.oApi._fnProcessingDisplay( oSettings, true );
- var that = this;
- var iStart = oSettings._iDisplayStart;
- var aData = [];
-
- this.oApi._fnServerParams( oSettings, aData );
-
- oSettings.fnServerData( oSettings.sAjaxSource, aData, function(json) {
- /* Clear the old information from the table */
- that.oApi._fnClearTable( oSettings );
-
- /* Got the data - add it to the table */
- var aData = (oSettings.sAjaxDataProp !== "") ?
- that.oApi._fnGetObjectDataFn( oSettings.sAjaxDataProp )( json ) : json;
-
- for ( var i=0 ; i<aData.length ; i++ )
- {
- that.oApi._fnAddData( oSettings, aData[i] );
- }
-
- oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
- that.fnDraw();
-
- if ( typeof bStandingRedraw != 'undefined' && bStandingRedraw === true )
- {
- oSettings._iDisplayStart = iStart;
- that.fnDraw( false );
- }
-
- that.oApi._fnProcessingDisplay( oSettings, false );
-
- /* Callback user function - for event handlers etc */
- if ( typeof fnCallback == 'function' && fnCallback != null )
- {
- fnCallback( oSettings );
- }
- }, oSettings );
-}
View
153 data/js/lib/jquery.dataTables.min.js
@@ -1,153 +0,0 @@
-/*
- * File: jquery.dataTables.min.js
- * Version: 1.9.0
- * Author: Allan Jardine (www.sprymedia.co.uk)
- * Info: www.datatables.net
- *
- * Copyright 2008-2012 Allan Jardine, all rights reserved.
- *
- * This source file is free software, under either the GPL v2 license or a
- * BSD style license, available at:
- * http://datatables.net/license_gpl2
- * http://datatables.net/license_bsd
- *
- * This source file is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.
- */
-(function(i,aa,k,l){var j=function(e){function o(a,b){var c=j.defaults.columns,d=a.aoColumns.length,c=i.extend({},j.models.oColumn,c,{sSortingClass:a.oClasses.sSortable,sSortingClassJUI:a.oClasses.sSortJUI,nTh:b?b:k.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mDataProp:c.mDataProp?c.oDefaults:d});a.aoColumns.push(c);if(a.aoPreSearchCols[d]===l||null===a.aoPreSearchCols[d])a.aoPreSearchCols[d]=i.extend({},j.models.oSearch);else{c=a.aoPreSearchCols[d];
-if(c.bRegex===l)c.bRegex=!0;if(c.bSmart===l)c.bSmart=!0;if(c.bCaseInsensitive===l)c.bCaseInsensitive=!0}E(a,d,null)}function E(a,b,c){b=a.aoColumns[b];if(c!==l&&null!==c){if(c.sType!==l)b.sType=c.sType,b._bAutoType=!1;i.extend(b,c);n(b,c,"sWidth","sWidthOrig");if(c.iDataSort!==l)b.aDataSort=[c.iDataSort];n(b,c,"aDataSort")}b.fnGetData=V(b.mDataProp);b.fnSetData=sa(b.mDataProp);if(!a.oFeatures.bSort)b.bSortable=!1;if(!b.bSortable||-1==i.inArray("asc",b.asSorting)&&-1==i.inArray("desc",b.asSorting))b.sSortingClass=
-a.oClasses.sSortableNone,b.sSortingClassJUI="";else if(b.bSortable||-1==i.inArray("asc",b.asSorting)&&-1==i.inArray("desc",b.asSorting))b.sSortingClass=a.oClasses.sSortable,b.sSortingClassJUI=a.oClasses.sSortJUI;else if(-1!=i.inArray("asc",b.asSorting)&&-1==i.inArray("desc",b.asSorting))b.sSortingClass=a.oClasses.sSortableAsc,b.sSortingClassJUI=a.oClasses.sSortJUIAscAllowed;else if(-1==i.inArray("asc",b.asSorting)&&-1!=i.inArray("desc",b.asSorting))b.sSortingClass=a.oClasses.sSortableDesc,b.sSortingClassJUI=
-a.oClasses.sSortJUIDescAllowed}function r(a){if(!1===a.oFeatures.bAutoWidth)return!1;ba(a);for(var b=0,c=a.aoColumns.length;b<c;b++)a.aoColumns[b].nTh.style.width=a.aoColumns[b].sWidth}function s(a,b){for(var c=-1,d=0;d<a.aoColumns.length;d++)if(!0===a.aoColumns[d].bVisible&&c++,c==b)return d;return null}function t(a,b){for(var c=-1,d=0;d<a.aoColumns.length;d++)if(!0===a.aoColumns[d].bVisible&&c++,d==b)return!0===a.aoColumns[d].bVisible?c:null;return null}function v(a){for(var b=0,c=0;c<a.aoColumns.length;c++)!0===
-a.aoColumns[c].bVisible&&b++;return b}function B(a){for(var b=j.ext.aTypes,c=b.length,d=0;d<c;d++){var f=b[d](a);if(null!==f)return f}return"string"}function D(a,b){for(var c=b.split(","),d=[],f=0,h=a.aoColumns.length;f<h;f++)for(var g=0;g<h;g++)if(a.<