diff --git a/airtime_mvc/application/models/airtime/Podcast.php b/airtime_mvc/application/models/airtime/Podcast.php index 766966518..d749489ef 100644 --- a/airtime_mvc/application/models/airtime/Podcast.php +++ b/airtime_mvc/application/models/airtime/Podcast.php @@ -73,10 +73,6 @@ class Podcast extends BasePodcast $podcastArray["episodes"] = array(); foreach ($rss->item as $item) { - // Same as above, we need to explicitly cast the SimpleXMLElement 'array' into an actual array - foreach($item as $k => $v) { - $array[$k] = (string)$v; - } array_push($podcastArray["episodes"], $item); } return $podcastArray; @@ -113,10 +109,6 @@ class Podcast extends BasePodcast $podcastArray["episodes"] = array(); foreach ($rss->item as $item) { - // Same as above, we need to explicitly cast the SimpleXMLElement 'array' into an actual array - foreach($item as $k => $v) { - $array[$k] = (string)$v; - } array_push($podcastArray["episodes"], $item); } diff --git a/airtime_mvc/application/views/scripts/podcast/podcast.phtml b/airtime_mvc/application/views/scripts/podcast/podcast.phtml index 70dddfc12..0529a2a27 100644 --- a/airtime_mvc/application/views/scripts/podcast/podcast.phtml +++ b/airtime_mvc/application/views/scripts/podcast/podcast.phtml @@ -1,34 +1,32 @@ -
-
-

- "" -

-
-
- - - -
+
+

+ "" +

+
+
+ + + +
-
+
-
-
- -
-
- -
- +
+
+
+
+ +
+
\ No newline at end of file diff --git a/airtime_mvc/public/css/dashboard.css b/airtime_mvc/public/css/dashboard.css index 70598fafd..26167d763 100644 --- a/airtime_mvc/public/css/dashboard.css +++ b/airtime_mvc/public/css/dashboard.css @@ -100,11 +100,11 @@ padding: 0; } -#library_display_length { +.dataTables_length { padding: 6px; } -#library_display_length label { +.dataTables_length label { color: #efefef; line-height: 26px; font-weight: normal; @@ -149,7 +149,7 @@ div.btn > span { z-index: 1; } -#library_display_wrapper, #show_builder_table_wrapper { +.outer-datatable-wrapper .dataTables_wrapper { position: absolute; top: 34px; bottom: 4px; @@ -157,12 +157,14 @@ div.btn > span { left: 4px; } -#library_display, #show_builder_table { +/*#library_display, #show_builder_table*/ +.datatable.dataTable { border: none; } -#library_display_wrapper > .dataTables_scrolling, -#show_builder_table_wrapper > .dataTables_scrolling { +/*#library_display_wrapper > .dataTables_scrolling, +#show_builder_table_wrapper > .dataTables_scrolling*/ +.dataTables_wrapper > .dataTables_scrolling { border: 1px solid #5b5b5b; } @@ -451,7 +453,7 @@ li.ui-state-default { background-color: transparent; } -.side_playlist label, .side_playlist h4, .side_playlist span { +.side_playlist label/*, .side_playlist h4, .side_playlist span*/ { color: #efefef; font-size: 14px; line-height: 24px; @@ -648,7 +650,7 @@ div.ColVis_collectionBackground { overflow: auto; } -.ColVis.TableTools { +:not(.table_toolbar) > .ColVis.TableTools { margin: 6px 6px 0 0; } diff --git a/airtime_mvc/public/css/styles.css b/airtime_mvc/public/css/styles.css index 2ed387b9c..edf372109 100644 --- a/airtime_mvc/public/css/styles.css +++ b/airtime_mvc/public/css/styles.css @@ -3916,7 +3916,7 @@ li .ui-state-hover { /* Podcasts */ -.podcast-wrapper > .dataTables_wrapper { +#podcast_episodes_wrapper { position: relative; height: 100%; float: left; @@ -3926,4 +3926,11 @@ li .ui-state-hover { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; +} + +#podcast_episodes_wrapper td { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + max-width: 300px; } \ No newline at end of file diff --git a/airtime_mvc/public/js/airtime/common/common.js b/airtime_mvc/public/js/airtime/common/common.js index 4fe28eae7..27f93ad61 100644 --- a/airtime_mvc/public/js/airtime/common/common.js +++ b/airtime_mvc/public/js/airtime/common/common.js @@ -289,18 +289,23 @@ function getUsabilityHint() { }); } -function setupTextScrolling(parent, selector) { - parent.on("mouseenter", selector, function () { - var sw = $(this)[0].scrollWidth - parseFloat($(this).css("textIndent")), iw = $(this).innerWidth(); - if (sw > iw) { +// Set up text scrolling for all tags matching selector within the calling element(s) +jQuery.fn.textScroll = function(selector) { + this.each(function() { + $(this).on("mouseenter", selector, function () { + var sw = $(this)[0].scrollWidth - parseFloat($(this).css("textIndent")), iw = $(this).innerWidth(); + if (sw > iw) { + $(this).stop().animate({ + textIndent: "-" + (sw + 1 - iw) + "px" + }, sw * 8); + } + }); + $(this).on("mouseleave", selector, function () { $(this).stop().animate({ - textIndent: "-" + (sw + 1 - iw) + "px" - }, sw * 8); - } + textIndent: "0" + }, 500); + }); }); - parent.on("mouseleave", selector, function () { - $(this).stop().animate({ - textIndent: "0" - }, 500); - }); -} \ No newline at end of file + + return this; // jQuery chaining +}; \ No newline at end of file diff --git a/airtime_mvc/public/js/airtime/library/library.js b/airtime_mvc/public/js/airtime/library/library.js index 65442583d..415b5fd8b 100644 --- a/airtime_mvc/public/js/airtime/library/library.js +++ b/airtime_mvc/public/js/airtime/library/library.js @@ -1271,7 +1271,7 @@ var AIRTIME = (function(AIRTIME) { }); mod.podcastDataTable = mod.podcastTableWidget.getDatatable(); - } + }; mod.libraryInit = libraryInit; diff --git a/airtime_mvc/public/js/airtime/library/plupload.js b/airtime_mvc/public/js/airtime/library/plupload.js index 01b9fefe2..e17f0ed96 100644 --- a/airtime_mvc/public/js/airtime/library/plupload.js +++ b/airtime_mvc/public/js/airtime/library/plupload.js @@ -161,7 +161,7 @@ $(document).ready(function () { }); }; - setupTextScrolling($("#recent_uploads"), "td"); + $("#recent_uploads").textScroll("td"); self.isRecentUploadsRefreshTimerActive = false; diff --git a/airtime_mvc/public/js/airtime/library/podcast.js b/airtime_mvc/public/js/airtime/library/podcast.js index 6ec1f2472..19bca59ee 100644 --- a/airtime_mvc/public/js/airtime/library/podcast.js +++ b/airtime_mvc/public/js/airtime/library/podcast.js @@ -42,7 +42,9 @@ var AIRTIME = (function (AIRTIME) { function _bootstrapAngularApp(podcast) { podcastApp.value('podcast', JSON.parse(podcast)); - angular.bootstrap(AIRTIME.tabs.getActiveTab().find(".podcast-wrapper").get(0), ["podcast"]); + var wrapper = AIRTIME.tabs.getActiveTab().find(".editor_pane_wrapper"); + wrapper.attr("ng-controller", "RestController"); + angular.bootstrap(wrapper.get(0), ["podcast"]); } mod.createUrlDialog = function() { @@ -112,15 +114,21 @@ var AIRTIME = (function (AIRTIME) { }; mod.initPodcastEpisodeDatatable = function(episodes) { + console.log(episodes); var aoColumns = [ - /* Title */ { "sTitle" : $.i18n._("Title") , "mDataProp" : "title" , "sClass" : "library_title" , "sWidth" : "170px" }, + /* Title */ { "sTitle" : $.i18n._("Title") , "mDataProp" : "title" , "sClass" : "podcast_episodes_title" , "sWidth" : "170px" }, + /* Author */ { "sTitle" : $.i18n._("Author") , "mDataProp" : "author" , "sClass" : "podcast_episodes_author" , "sWidth" : "170px" }, + /* Description */ { "sTitle" : $.i18n._("Description") , "mDataProp" : "description" , "sClass" : "podcast_episodes_description" , "sWidth" : "300px" }, + /* Link */ { "sTitle" : $.i18n._("Link") , "mDataProp" : "link" , "sClass" : "podcast_episodes_link" , "sWidth" : "170px" }, + /* GUID */ { "sTitle" : $.i18n._("GUID") , "mDataProp" : "guid" , "sClass" : "podcast_episodes_guid" , "sWidth" : "170px" }, + /* Publication Date */ { "sTitle" : $.i18n._("Publication Date") , "mDataProp" : "pubDate" , "sClass" : "podcast_episodes_pub_date" , "sWidth" : "170px" } ]; var podcastToolbarButtons = AIRTIME.widgets.Table.getStandardToolbarButtons(); // Set up the div with id "podcast_table" as a datatable. mod.podcastEpisodesTableWidget = new AIRTIME.widgets.Table( - AIRTIME.tabs.getActiveTab().find('.podcast_episodes'), // DOM node to create the table inside. + AIRTIME.tabs.getActiveTab().find('#podcast_episodes'), // DOM node to create the table inside. true, // Enable item selection podcastToolbarButtons, // Toolbar buttons { // Datatables overrides. @@ -131,6 +139,7 @@ var AIRTIME = (function (AIRTIME) { }); mod.podcastEpisodesDatatable = mod.podcastEpisodesTableWidget.getDatatable(); + mod.podcastEpisodesDatatable.textScroll("td"); }; return AIRTIME; diff --git a/airtime_mvc/public/js/airtime/showbuilder/tabs.js b/airtime_mvc/public/js/airtime/showbuilder/tabs.js index c1e50e6f1..499bc91be 100644 --- a/airtime_mvc/public/js/airtime/showbuilder/tabs.js +++ b/airtime_mvc/public/js/airtime/showbuilder/tabs.js @@ -205,5 +205,5 @@ var AIRTIME = (function(AIRTIME){ }(AIRTIME || {})); $(document).ready(function() { - setupTextScrolling($("#show_builder"), ".tab-name"); + $("#show_builder").textScroll(".tab-name"); }); \ No newline at end of file diff --git a/airtime_mvc/public/js/airtime/widgets/table.js b/airtime_mvc/public/js/airtime/widgets/table.js index b127abb41..5bfef79ba 100644 --- a/airtime_mvc/public/js/airtime/widgets/table.js +++ b/airtime_mvc/public/js/airtime/widgets/table.js @@ -36,6 +36,8 @@ var AIRTIME = (function(AIRTIME) { self._$wrapperDOMNode = $(wrapperDOMNode); self._toolbarButtons = toolbarButtons; + // Exclude the leftmost column if we're implementing item selection + self._colVisExcludeColumns = bItemSelection ? [0] : []; //Finish initialization of the datatable since everything is declared by now. @@ -65,6 +67,7 @@ var AIRTIME = (function(AIRTIME) { }), "oColVis": { "sAlign": "right", + "aiExclude": self.colVisExcludeColumns, "buttonText": $.i18n._("Columns"), "iOverlayFade": 0 },