diff --git a/website/agenda/js/calcms.cust.js b/website/agenda/js/calcms.cust.js index 15ad980..0c80360 100644 --- a/website/agenda/js/calcms.cust.js +++ b/website/agenda/js/calcms.cust.js @@ -2,208 +2,230 @@ var calcms_settings = new Array(); (function($, calcms) { - // show current project - calcms.selectProject = function selectProject() { - var project = calcms.getProject(); - console.log("project=" + project) + // show current project + calcms.selectProject = function selectProject() { + var project = calcms.getProject(); + console.log("project=" + project) - calcms.clearOnChangeArchive(); - calcms.showProjectCategories(project); - calcms.showProjectSeriesNames(project); - calcms.selectFirstOption('#calcms_series_name_' - + calcms.getJsName(project)); - calcms.selectFirstOption('#calcms_category_' - + calcms.getJsName(project)); - } + calcms.clearOnChangeArchive(); + calcms.showProjectSeriesNames(project); + calcms.selectFirstOption('#calcms_series_name_' + + calcms.getJsName(project)); + } - // search events - calcms.selectSearchEventListener = function selectSearchEventListener() { - var project = calcms.getProject(); + // search events + calcms.selectSearchEventListener = function selectSearchEventListener() { + var project = calcms.getProject(); - calcms.showSearchResultsByProject(project, calcms.getSearchElement() - .val(), calcms.isArchive()); - calcms.selectFirstOption('#calcms_series_name_' - + calcms.getJsName(project)); - calcms.selectFirstOption('#calcms_category_' - + calcms.getJsName(project)); + calcms.showSearchResultsByProject(project, calcms.getSearchElement() + .val(), calcms.isArchive()); + calcms.selectFirstOption('#calcms_series_name_' + + calcms.getJsName(project)); - calcms.registerOnChangeArchive(function() { - calcms.showSearchResultsByProject(project, calcms - .getSearchElement().val(), calcms.isArchive()); - }); - } + calcms.registerOnChangeArchive(function() { + calcms.showSearchResultsByProject(project, calcms + .getSearchElement().val(), calcms.isArchive()); + }); + } - // show events for selected category of project - calcms.selectCategory = function selectCategory(project, category) { - calcms.showEventsByProjectAndCategory(project, category, calcms - .isArchive()); - calcms.selectFirstOption('#calcms_series_name_' - + calcms.getJsName(project)); - calcms.resetSearch(); + // show events for selected series of project + calcms.selectSeries = function selectSeries(project, seriesName) { + calcms.showEventsByProjectAndSeriesName(project, seriesName, calcms + .isArchive()); + calcms.resetSearch(); - calcms.registerOnChangeArchive(function() { - calcms.showEventsByProjectAndCategory(project, category, calcms - .isArchive()); - }); - } + calcms.registerOnChangeArchive(function() { + calcms.showEventsByProjectAndSeriesName(project, seriesName, calcms + .isArchive()); + }); + } - // show events for selected series of project - calcms.selectSeries = function selectSeries(project, seriesName) { - calcms.showEventsByProjectAndSeriesName(project, seriesName, calcms - .isArchive()); - calcms.selectFirstOption('#calcms_category_' - + calcms.getJsName(project)); - calcms.resetSearch(); + // calendar events + calcms.selectMonthEventListener = function selectMonthEventListener(month) { + calcms.showCalendarAndEventsByMonth(month); + } - calcms.registerOnChangeArchive(function() { - calcms.showEventsByProjectAndSeriesName(project, seriesName, calcms - .isArchive()); - }); - } + calcms.selectWeekdayEventListener = function selectWeekdayEventListener( + start_date, end_date, weekday) { + calcms.showEventsByWeekday(start_date, end_date, weekday); + } - // calendar events - calcms.selectMonthEventListener = function selectMonthEventListener(month) { - calcms.showCalendarAndEventsByMonth(month); - } + calcms.selectDateRangeEventListener = function selectDateRangeEventListener( + from, till) { + calcms.showEventsByDateRange(from, till); + } - calcms.selectWeekdayEventListener = function selectWeekdayEventListener( - start_date, end_date, weekday) { - calcms.showEventsByWeekday(start_date, end_date, weekday); - } + calcms.selectDateEventListener = function selectDateEventListener(date) { + calcms.showEventsByDate(date); + } - calcms.selectDateRangeEventListener = function selectDateRangeEventListener( - from, till) { - calcms.showEventsByDateRange(from, till); - } + // initial initialize + function initCalcms() { + calcms.set('base_url', ''); - calcms.selectDateEventListener = function selectDateEventListener(date) { - calcms.showEventsByDate(date); - } + calcms.set('calendar_url', '/agenda/kalender'); + calcms.set('menu_url', '/agenda/menu'); - // initial initialize - function initCalcms() { - calcms.set('base_url', ''); + calcms.set('events_url', '/agenda/sendungen'); + calcms.set('list_url', '/agenda/sendung'); + calcms.set('next_series_url', '/programm/sendung/serie_plus'); + calcms.set('prev_series_url', '/programm/sendung/serie_minus'); - calcms.set('calendar_url', '/agenda/kalender'); - calcms.set('menu_url', '/agenda/menu'); + calcms.set('ical_url', '/agenda/ical'); + calcms.set('feed_url', '/agenda/feed/'); + calcms.set('playlist_url', '/agenda/playlist/'); - calcms.set('events_url', '/agenda/sendungen'); - calcms.set('list_url', '/agenda/sendung'); - calcms.set('next_series_url', '/programm/sendung/serie_plus'); - calcms.set('prev_series_url', '/programm/sendung/serie_minus'); + calcms.set('search_url', '/agenda/suche/'); + calcms.set('search_series_name_url', '/agenda/sendereihe/'); - calcms.set('ical_url', '/agenda/ical'); - calcms.set('feed_url', '/agenda/feed/'); - calcms.set('playlist_url', '/agenda/playlist/'); + calcms.set('series_name_url', '/agenda/sendereihen/'); - calcms.set('search_url', '/agenda/suche/'); - calcms.set('search_category_url', '/agenda/kategorie/'); - calcms.set('search_series_name_url', '/agenda/sendereihe/'); + calcms.set('comments_url', '/agenda/kommentare/'); + calcms.set('add_comment_url', '/agenda/kommentar_neu/'); + calcms.set('newest_comments_url', '/agenda/neueste_kommentare/'); - calcms.set('category_url', '/agenda/kategorien/'); - calcms.set('series_name_url', '/agenda/sendereihen/'); + return true; + } - calcms.set('comments_url', '/agenda/kommentare/'); - calcms.set('add_comment_url', '/agenda/kommentar_neu/'); - calcms.set('newest_comments_url', '/agenda/neueste_kommentare/'); + var loadedSearchComponents = 0; + // load projects, series and show search fields + // remove empty projects if series have been loaded + calcms.showAdvancedSearch = function showAdvancedSearch(id) { + searchReady = 0; + var element = $('#calcms_enhanced_search'); + if (element.length == 0) return; - return true; - } + if (element.css('display') == 'none') { + url = calcms.get('series_name_url'); + calcms.updateContainer('calcms_series_names', url, 1, function() { + calcms.selectProject(); + loadedSearchComponents++; + if (loadedSearchComponents == 2) { + calcms.removeEmptyProjects(); + } + }); + } else { + calcms.showProjectSeriesNames(calcms.getProject()); + } - var loadedSearchComponents = 0; - // load projects, series and categories and show search fields - // remove empty projects if both series and categories have been loaded - calcms.showAdvancedSearch = function showAdvancedSearch(id) { - searchReady = 0; - var element = $('#calcms_enhanced_search'); - if (element.length == 0) - return; + $("#" + id).slideToggle(); + } - if (element.css('display') == 'none') { - var url = calcms.get('category_url'); - calcms.updateContainer('calcms_categories', url, 1, function() { - calcms.selectProject(); - loadedSearchComponents++; - if (loadedSearchComponents == 2) { - calcms.removeEmptyProjects(); - } - }); + calcms.insertDeskNextShows = function insertDeskNextShows(desk) { + var url = '/agenda/suche/all/' + desk + '/kommende/'; + calcms.updateContainer('showDesk', url, 1); + return false; + } - url = calcms.get('series_name_url'); - calcms.updateContainer('calcms_series_names', url, 1, function() { - calcms.selectProject(); - loadedSearchComponents++; - if (loadedSearchComponents == 2) { - calcms.removeEmptyProjects(); - } - }); - } else { - calcms.showProjectCategories(calcms.getProject()); - calcms.showProjectSeriesNames(calcms.getProject()); - } + calcms.insertDeskPrevShows = function insertDeskPrevShows(desk) { + var url = '/agenda/suche/all/' + desk + '/vergangene/'; + calcms.updateContainer('showDesk', url, 1); + return false; + } - $("#" + id).slideToggle(); - } + calcms.insertEditors = function insertEditors() { + var url = document.location.href; - calcms.insertDeskNextShows = function insertDeskNextShows(desk) { - var url = '/agenda/suche/all/' + desk + '/kommende/'; - calcms.updateContainer('showDesk', url, 1); - return false; - } - - calcms.insertDeskPrevShows = function insertDeskPrevShows(desk) { - var url = '/agenda/suche/all/' + desk + '/vergangene/'; - calcms.updateContainer('showDesk', url, 1); - return false; - } - - - calcms.insertEditors = function insertEditors() { - var url=document.location.href; - - var mapping={ - "studio\-ansage" : "/agenda/redaktionen-studio-ansage", + var mapping = { + "studio\-ansage" : "/agenda/redaktionen-studio-ansage", "studio\-pi\-radio" : "/agenda/redaktionen-piradio", - "studio\-frb" : "/agenda/redaktionen-frb", - "studio\-colabo" : "/agenda/redaktionen-colabo-radio", - "studio\-frrapo" : "/agenda/redaktionen-frrapo" + "studio\-frb" : "/agenda/redaktionen-frb", + "studio\-colabo" : "/agenda/redaktionen-colabo-radio", + "studio\-frrapo" : "/agenda/redaktionen-frrapo" }; - - for (var key in mapping){ - var editorsUrl = mapping[key]; - var pattern = new RegExp(key); - var matchs = pattern.exec(url); - if ((matchs != null) && (matchs.length > 0) ) { - console.log("matchs "+url) - $('div.entry-content').append('
') + + for ( var key in mapping) { + var editorsUrl = mapping[key]; + var pattern = new RegExp(key); + var matchs = pattern.exec(url); + if ((matchs != null) && (matchs.length > 0)) { + console.log("matchs " + url) + $('div.entry-content').append('
') $("#result").load(editorsUrl) } } } - function initSearch() { - var base = $('#calcms_search_show_details'); - var elem = $('#calcms_search_show_details #plus'); - if (elem.length == 0) { - base.append(''); - base.prepend(''); - } - } + var setupSliderTimer; + function initSlider() { + setupSliderTimer = setInterval(function() { + setupSlider(); + }, 1000); + } - var isCalcms=false; - function initWordpress(){ - $('header.entry-header').each( function(){ - var elem=$(this); - $(this).find("h1").each( function(){ - if ( $(this).text() == "Programm" ){ - isCalcms=true; + var isSliderInited = 0; + var sliderTimer; + function setupSlider() { + console.log("setupSlider") + if (isSliderInited == 1) return; + isSliderInited = 1; + clearInterval(setupSliderTimer); + $('#playlist_container').scrollLeft(0); + + numberOfComingShows = $('#coming_shows a').length; + + $('#playlist_container').mouseenter(function() { + slideEvents = 0; + }); + + $('#playlist_container').mouseleave(function() { + slideEvents = 1; + }); + + nextSlideEvent(); + sliderTimer = setInterval(nextSlideEvent, 10000); + console.log("setupSlider done") + } + + var numberOfComingShows = 100; + var slideCount = 0; + var slideOffset = 1; + var slideEvents = 1; + + // slideEvents will be updated at onmouseenter/leave handler at + // playlist_long + function nextSlideEvent() { + // console.log("slideEvent") + if (slideEvents == 0) return; + if ($('#coming_shows a').length == 0) return; + + // console.log(slideCount+" "+slideOffset) + var item = $('#playlist_container .eventContainer').first(); + var width = item.outerWidth(); + // console.log("width="+width); + $('#playlist_container').animate({ + scrollLeft : slideCount * width + "px" + }, 1000); + + if (slideCount < 0) slideOffset = 1 + if (slideCount > numberOfComingShows + 1 - $('#coming_shows').width() + / 100) slideOffset = -1 + slideCount += slideOffset; + } + + function initSearch() { + var base = $('#calcms_search_show_details'); + var elem = $('#calcms_search_show_details #plus'); + if (elem.length == 0) { + base.append(''); + base.prepend(''); + } + } + + var isCalcms = false; + function initWordpress() { + $('header.entry-header').each(function() { + var elem = $(this); + $(this).find("h1").each(function() { + if ($(this).text() == "Programm") { + isCalcms = true; $(this).text("Programm"); } }); }); $('div.site-info').remove(); - - if (isCalcms==false){ + + if (isCalcms == false) { $('#calcms_calendar').parent().parent().remove(); $('#calcms_menu').parent().parent().remove(); $('#calcms_search').parent().parent().remove(); @@ -212,14 +234,15 @@ var calcms_settings = new Array(); } } - $(document).ready(function() { - initCalcms(); - //initWordpress(); - calcms.showPlaylist(); - calcms.showNewestComments(); - initSearch(); - console.log("calcms inited") - }); + $(document).ready(function() { + initCalcms(); + initWordpress(); + calcms.showPlaylist(); + calcms.showNewestComments(); + calcms.insertEditors(); + initSlider(); + initSearch(); + console.log("calcms inited") + }); }(jQuery, calcms)); - diff --git a/website/agenda/js/calcms.js b/website/agenda/js/calcms.js index 1bad7ec..5998922 100644 --- a/website/agenda/js/calcms.js +++ b/website/agenda/js/calcms.js @@ -4,10 +4,8 @@ var calcms = (function($) { // calcms base functions my.updateContainer = function updateContainer(id, url, onLoading, callback) { - if (id == null) - return; - if (document.querySelector('#'+id).length == 0) - return; + if (id == null) return; + if (document.querySelector('#' + id).length == 0) return; $("#" + id).load(url, null, callback); } @@ -16,14 +14,12 @@ var calcms = (function($) { } my.postContainer = function postContainer(url, parameters, callback) { - if (url != '') - $.post(url, parameters, callback); + if (url != '') $.post(url, parameters, callback); } // get calcms setting my.get = function get(name) { - if (calcms_settings[name] == null) - return ''; + if (calcms_settings[name] == null) return ''; return calcms_settings[name]; } @@ -39,15 +35,12 @@ var calcms = (function($) { } my.selectFirstOption = function selectFirstOption(id) { - if ($(id) && $(id).length > 0) - $(id)[0].selectedIndex = 0; + if ($(id) && $(id).length > 0) $(id)[0].selectedIndex = 0; } my.contains = function contains(s, t) { - if (s == false) - return false; - if (t == false) - return false; + if (s == false) return false; + if (t == false) return false; return s.indexOf(t) != -1; } @@ -58,8 +51,7 @@ var calcms = (function($) { } my.isArchive = function isArchive() { - if ($('#calcms_archive:checked').length == 0) - return 0; + if ($('#calcms_archive:checked').length == 0) return 0; return 1; } @@ -77,10 +69,7 @@ var calcms = (function($) { my.setAndGetUrlParameters = function setAndGetUrlParameters(field, value) { // overwrite fields by field and value - if (field != null && value != null && field != '') { - // alert(target+" "+field+" "+value); - set(field, value); - } + if (field != null && value != null && field != '') set(field, value); // read fields var debug = my.get('debug'); @@ -95,8 +84,7 @@ var calcms = (function($) { // delete filters by current action if ((field == 'search' && search_field != '') - || (field == 'series_name' && series_name != '') - ) { + || (field == 'series_name' && series_name != '')) { weekday = ''; date = ''; from_date = ''; @@ -146,7 +134,7 @@ var calcms = (function($) { if (field == 'time') { if (time == 'null') { - return + return; } else { weekday = ''; } @@ -160,15 +148,11 @@ var calcms = (function($) { var url = ''; if (field == 'month' || field == 'week') { - if (from_date != '') - url += '/' + from_date; - if (till_date != '') - url += '/' + till_date; + if (from_date != '') url += '/' + from_date; + if (till_date != '') url += '/' + till_date; } else if (weekday != '') { - if (from_date != '') - url += '/' + from_date; - if (till_date != '') - url += '/' + till_date; + if (from_date != '') url += '/' + from_date; + if (till_date != '') url += '/' + till_date; url += '/' + weekday; } else if (date != '') { if (date == 'today') { @@ -207,11 +191,9 @@ var calcms = (function($) { $('#calcmsSeriesNamesForm select').each(function() { var id = $(this).attr('id'); if (id == "calcms_series_name_" + projectJsName) { - if ($(this).css('display') == 'none') - $(this).show(); + if ($(this).css('display') == 'none') $(this).show(); } else { - if ($(this).css('display') != 'none') - $(this).hide(); + if ($(this).css('display') != 'none') $(this).hide(); } }); } @@ -219,8 +201,7 @@ var calcms = (function($) { // get current project my.getProject = function getProject() { var project = $('#calcms_project'); - if (project.length == 0) - return 'all'; + if (project.length == 0) return 'all'; return project.val(); } @@ -256,12 +237,9 @@ var calcms = (function($) { url += escape(project) + '/'; else url += 'all/'; - if (value != '' && value != null) - url += escape(value) + '/'; - if (archive != null && archive == 0) - url += 'kommende/'; - if (archive != null && archive == 1) - url += 'vergangene/'; + if (value != '' && value != null) url += escape(value) + '/'; + if (archive != null && archive == 0) url += 'kommende/'; + if (archive != null && archive == 1) url += 'vergangene/'; my.updateContainer('calcms_list', url, 1); } } @@ -271,14 +249,11 @@ var calcms = (function($) { project, seriesName, archive) { if (seriesName != '' && seriesName != null) { var url = my.get('search_series_name_url'); - if (project != '' && project != null) - url += escape(project) + '/'; + if (project != '' && project != null) url += escape(project) + '/'; if (seriesName != '' && seriesName != null) url += escape(seriesName) + '/'; - if (archive != null && archive == 0) - url += 'kommende/'; - if (archive != null && archive == 1) - url += 'vergangene/'; + if (archive != null && archive == 0) url += 'kommende/'; + if (archive != null && archive == 1) url += 'vergangene/'; my.updateContainer('calcms_list', url, 1); } } @@ -296,7 +271,6 @@ var calcms = (function($) { var events_url = my.get('events_url'); var url = my.setAndGetUrlParameters('program', value); if (value != '' && value != null) { - // my.updateContainer('calcms_list', events_url+url, 1); my.updateContainer('calcms_list', url, 1); } } @@ -342,8 +316,7 @@ var calcms = (function($) { // load given event details into list my.showEvents = function showEvents(event_id, view) { - if (view == null || view == '') - view = 'list_url'; + if (view == null || view == '') view = 'list_url'; if (event_id != '') { var url = my.get(view) + '/' + event_id + '/'; my.updateContainer('calcms_list', url, 1); @@ -446,9 +419,8 @@ var calcms = (function($) { my.showCommentsByEventIdOrEventStart = function showCommentsByEventIdOrEventStart( event_id, event_start) { var url = my.get('comments_url') || '/agenda/kommentare/'; - if (event_id == '' || event_start == '' || url == '') - return false; - console.log("showCommentsByEventIdOrEventStart url="+url); + if (event_id == '' || event_start == '' || url == '') return false; + console.log("showCommentsByEventIdOrEventStart url=" + url); my.set('comments_event_start', event_start); my.set('comments_event_id', event_id); @@ -477,9 +449,10 @@ var calcms = (function($) { var response = '
'; if (parent_id != '') response += 'Deine Anwort:'; var html = response - html += '
' - html += '' - html += '' + html += '' + html += '' + html += '' html += '
' html += '
'; @@ -542,4 +518,3 @@ var calcms = (function($) { // return instance return my; }(jQuery)); -