From d7e1f021989201434a31559a9687496fa38ef55c Mon Sep 17 00:00:00 2001 From: Milan Date: Mon, 18 Jun 2018 00:43:02 +0200 Subject: [PATCH] reorganize database columns, fix series search, show image licences --- install/migrate.sql | 131 ++++++- lib/calcms/events.pm | 6 +- lib/calcms/images.pm | 2 +- lib/calcms/studios.pm | 5 + website/agenda/.htaccess | 7 + website/agenda/css/agenda.css | 334 +++++++++--------- website/agenda/css/calcms.css | 51 ++- website/agenda/js/calcms.cust.js | 25 ++ website/agenda/planung/calendar.cgi | 2 +- .../planung/css/jquery-ui-timepicker.old.css | 11 - website/agenda/planung/css/list_series.css | 14 +- website/agenda/planung/templates/series.html | 13 +- website/agenda/templates/event_details.html | 20 +- 13 files changed, 387 insertions(+), 234 deletions(-) delete mode 100644 website/agenda/planung/css/jquery-ui-timepicker.old.css diff --git a/install/migrate.sql b/install/migrate.sql index d093177..989ee5f 100644 --- a/install/migrate.sql +++ b/install/migrate.sql @@ -113,4 +113,133 @@ ALTER TABLE `calcms_event_history` ADD COLUMN series_image varchar(200) NULL AFTER draft, ADD COLUMN recurrence_count int(10) unsigned NOT NULL DEFAULT '0' AFTER project_id, ADD COLUMN image_label varchar(200) NULL; - + +-- 2018-06-18 refactor columns + +ALTER TABLE `calcms`.`calcms_audio_recordings` +CHANGE COLUMN `created_by` `created_by` VARCHAR(100) NOT NULL AFTER `processed`, +CHANGE COLUMN `created_at` `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP AFTER `created_by`; + +ALTER TABLE `calcms`.`calcms_events` +CHANGE COLUMN `program` `program` VARCHAR(40) NULL DEFAULT NULL AFTER `end`, +CHANGE COLUMN `series_name` `series_name` VARCHAR(40) NULL DEFAULT NULL AFTER `program`, +CHANGE COLUMN `episode` `episode` INT(10) UNSIGNED NULL DEFAULT NULL AFTER `title`, +CHANGE COLUMN `html_content` `html_content` LONGTEXT NULL DEFAULT NULL AFTER `content`, +CHANGE COLUMN `end_date` `end_date` DATE NOT NULL AFTER `start_date`, +CHANGE COLUMN `archive_url` `archive_url` VARCHAR(300) NULL DEFAULT NULL AFTER `podcast_url`, +CHANGE COLUMN `html_topic` `html_topic` LONGTEXT NULL DEFAULT NULL AFTER `user_excerpt`, +CHANGE COLUMN `draft` `draft` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `archived`, +CHANGE COLUMN `recurrence` `recurrence` INT(11) NULL DEFAULT '0' AFTER `recurrence_count`, +CHANGE COLUMN `image` `image` VARCHAR(200) NULL DEFAULT NULL AFTER `recurrence`, +CHANGE COLUMN `image_label` `image_label` VARCHAR(200) NULL DEFAULT NULL AFTER `image`, +CHANGE COLUMN `created_at` `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP AFTER `series_image_label`, +CHANGE COLUMN `modified_by` `modified_by` VARCHAR(20) NULL DEFAULT NULL AFTER `created_at`, +CHANGE COLUMN `modified_at` `modified_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP AFTER `modified_by`, +CHANGE COLUMN `reference` `reference` VARCHAR(300) NULL DEFAULT NULL AFTER `modified_at`, +CHANGE COLUMN `disable_event_sync` `disable_event_sync` TINYINT(1) UNSIGNED NULL DEFAULT NULL AFTER `reference`; + +ALTER TABLE `calcms`.`calcms_images` +CHANGE COLUMN `project_id` `project_id` INT(10) UNSIGNED NOT NULL AFTER `id`, +CHANGE COLUMN `studio_id` `studio_id` INT(10) UNSIGNED NULL DEFAULT NULL AFTER `project_id`, +CHANGE COLUMN `filename` `filename` VARCHAR(64) NOT NULL AFTER `studio_id`, +CHANGE COLUMN `name` `name` VARCHAR(300) NULL DEFAULT NULL AFTER `filename`, +CHANGE COLUMN `licence` `licence` VARCHAR(300) NULL DEFAULT NULL AFTER `description`, +CHANGE COLUMN `public` `public` TINYINT(1) UNSIGNED NULL DEFAULT '0' AFTER `licence`, +CHANGE COLUMN `created_at` `created_at` DATETIME NULL DEFAULT CURRENT_TIMESTAMP AFTER `modified_by`; + +ALTER TABLE `calcms`.`calcms_roles` +CHANGE COLUMN `project_id` `project_id` TINYINT(1) UNSIGNED NOT NULL AFTER `id`, +CHANGE COLUMN `studio_id` `studio_id` INT(10) UNSIGNED NOT NULL AFTER `project_id`, +CHANGE COLUMN `level` `level` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `role`, +CHANGE COLUMN `read_role` `read_role` TINYINT(1) UNSIGNED NULL DEFAULT NULL AFTER `level`, +CHANGE COLUMN `update_role` `update_role` TINYINT(1) UNSIGNED NULL DEFAULT NULL AFTER `read_role`, +CHANGE COLUMN `read_user_role` `read_user_role` TINYINT(1) UNSIGNED NULL DEFAULT NULL AFTER `update_role`, +CHANGE COLUMN `delete_user` `delete_user` TINYINT(1) UNSIGNED NULL DEFAULT NULL AFTER `update_user`, +CHANGE COLUMN `update_user_role` `update_user_role` TINYINT(1) UNSIGNED NULL DEFAULT NULL AFTER `delete_user`, +CHANGE COLUMN `create_project` `create_project` TINYINT(1) UNSIGNED NOT NULL AFTER `disable_user`, +CHANGE COLUMN `read_project` `read_project` TINYINT(1) UNSIGNED NOT NULL AFTER `create_project`, +CHANGE COLUMN `update_project` `update_project` TINYINT(1) UNSIGNED NOT NULL AFTER `read_project`, +CHANGE COLUMN `delete_project` `delete_project` TINYINT(1) UNSIGNED NOT NULL AFTER `update_project`, +CHANGE COLUMN `assign_project_studio` `assign_project_studio` TINYINT(1) UNSIGNED NOT NULL AFTER `delete_project`, +CHANGE COLUMN `create_studio` `create_studio` TINYINT(1) UNSIGNED NOT NULL AFTER `assign_project_studio`, +CHANGE COLUMN `read_studio` `read_studio` TINYINT(1) UNSIGNED NOT NULL AFTER `create_studio`, +CHANGE COLUMN `delete_studio` `delete_studio` TINYINT(1) UNSIGNED NOT NULL AFTER `update_studio`, +CHANGE COLUMN `read_studio_timeslot_schedule` `read_studio_timeslot_schedule` TINYINT(1) UNSIGNED NOT NULL AFTER `delete_studio`, +CHANGE COLUMN `update_studio_timeslot_schedule` `update_studio_timeslot_schedule` TINYINT(1) UNSIGNED NOT NULL AFTER `read_studio_timeslot_schedule`, +CHANGE COLUMN `update_series_template` `update_series_template` TINYINT(1) UNSIGNED NOT NULL AFTER `delete_series`, +CHANGE COLUMN `assign_series_member` `assign_series_member` TINYINT(1) UNSIGNED NOT NULL AFTER `update_series_template`, +CHANGE COLUMN `remove_series_member` `remove_series_member` TINYINT(1) UNSIGNED NOT NULL AFTER `assign_series_member`, +CHANGE COLUMN `scan_series_events` `scan_series_events` TINYINT(1) UNSIGNED NOT NULL AFTER `remove_series_member`, +CHANGE COLUMN `assign_series_events` `assign_series_events` TINYINT(1) UNSIGNED NOT NULL AFTER `scan_series_events`, +CHANGE COLUMN `read_schedule` `read_schedule` TINYINT(1) UNSIGNED NOT NULL AFTER `assign_series_events`, +CHANGE COLUMN `update_schedule` `update_schedule` TINYINT(1) UNSIGNED NOT NULL AFTER `read_schedule`, +CHANGE COLUMN `delete_schedule` `delete_schedule` TINYINT(1) UNSIGNED NOT NULL AFTER `update_schedule`, +CHANGE COLUMN `create_event_from_schedule` `create_event_from_schedule` TINYINT(1) UNSIGNED NOT NULL AFTER `create_event`, +CHANGE COLUMN `create_event_of_series` `create_event_of_series` TINYINT(1) UNSIGNED NOT NULL AFTER `create_event_from_schedule`, +CHANGE COLUMN `update_event_after_week` `update_event_after_week` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_time`, +CHANGE COLUMN `update_event_field_title` `update_event_field_title` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_after_week`, +CHANGE COLUMN `update_event_field_title_extension` `update_event_field_title_extension` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_field_title`, +CHANGE COLUMN `update_event_field_excerpt` `update_event_field_excerpt` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_field_title_extension`, +CHANGE COLUMN `update_event_field_description` `update_event_field_description` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_field_content`, +CHANGE COLUMN `update_event_field_topic` `update_event_field_topic` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_field_description`, +CHANGE COLUMN `update_event_field_episode` `update_event_field_episode` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_field_topic`, +CHANGE COLUMN `update_event_field_excerpt_extension` `update_event_field_excerpt_extension` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_field_episode`, +CHANGE COLUMN `update_event_field_image` `update_event_field_image` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_field_excerpt_extension`, +CHANGE COLUMN `update_event_field_podcast_url` `update_event_field_podcast_url` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_field_image`, +CHANGE COLUMN `update_event_field_archive_url` `update_event_field_archive_url` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_field_podcast_url`, +CHANGE COLUMN `update_event_status_draft` `update_event_status_draft` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_status_rerun`, +CHANGE COLUMN `update_event_status_live` `update_event_status_live` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_status_draft`, +CHANGE COLUMN `update_event_status_playout` `update_event_status_playout` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_status_live`, +CHANGE COLUMN `update_event_status_archived` `update_event_status_archived` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_status_playout`, +CHANGE COLUMN `create_image` `create_image` TINYINT(1) UNSIGNED NOT NULL AFTER `update_event_status_archived`, +CHANGE COLUMN `update_image_own` `update_image_own` TINYINT(1) UNSIGNED NOT NULL AFTER `create_image`, +CHANGE COLUMN `created_at` `created_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP AFTER `read_playout`, +CHANGE COLUMN `create_download` `create_download` TINYINT(1) UNSIGNED NOT NULL AFTER `created_at`, +CHANGE COLUMN `modified_at` `modified_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP AFTER `create_download`; + +ALTER TABLE `calcms`.`calcms_series_dates` +CHANGE COLUMN `project_id` `project_id` INT(10) UNSIGNED NOT NULL AFTER `id`, +CHANGE COLUMN `studio_id` `studio_id` INT(10) UNSIGNED NOT NULL AFTER `project_id`; + +ALTER TABLE `calcms`.`calcms_series_events` +CHANGE COLUMN `project_id` `project_id` INT(10) UNSIGNED NOT NULL FIRST, +CHANGE COLUMN `studio_id` `studio_id` INT(12) UNSIGNED NOT NULL AFTER `project_id`; + +ALTER TABLE `calcms`.`calcms_series_schedule` +CHANGE COLUMN `project_id` `project_id` INT(10) UNSIGNED NOT NULL DEFAULT '1' AFTER `id`, +CHANGE COLUMN `studio_id` `studio_id` INT(10) UNSIGNED NULL DEFAULT NULL AFTER `project_id`; + +ALTER TABLE `calcms`.`calcms_studios` +CHANGE COLUMN `image` `image` VARCHAR(200) NOT NULL AFTER `stream`; + +ALTER TABLE `calcms`.`calcms_studio_timeslot_dates` +CHANGE COLUMN `project_id` `project_id` INT(10) UNSIGNED NOT NULL FIRST, +CHANGE COLUMN `schedule_id` `schedule_id` INT(10) UNSIGNED NOT NULL AFTER `studio_id`, +DROP PRIMARY KEY, +ADD PRIMARY KEY USING BTREE (`project_id`, `studio_id`, `start`, `end`); + +ALTER TABLE `calcms`.`calcms_studio_timeslot_schedule` +CHANGE COLUMN `project_id` `project_id` INT(10) UNSIGNED NOT NULL AFTER `id`; + +ALTER TABLE `calcms`.`calcms_user_events` +CHANGE COLUMN `modified_by` `modified_by` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `location`, +CHANGE COLUMN `modified_at` `modified_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP AFTER `modified_by`; + +ALTER TABLE `calcms`.`calcms_user_roles` +CHANGE COLUMN `project_id` `project_id` INT(10) UNSIGNED NOT NULL AFTER `id`, +CHANGE COLUMN `studio_id` `studio_id` INT(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `project_id`; + +ALTER TABLE `calcms`.`calcms_users` +CHANGE COLUMN `email` `email` VARCHAR(300) NOT NULL AFTER `full_name`, +CHANGE COLUMN `pass` `pass` VARCHAR(100) NOT NULL AFTER `email`, +CHANGE COLUMN `created_at` `created_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP AFTER `created_by`, +CHANGE COLUMN `modified_at` `modified_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP AFTER `created_at`; + +ALTER TABLE `calcms`.`calcms_user_series` +CHANGE COLUMN `project_id` `project_id` INT(10) UNSIGNED NOT NULL AFTER `id`, +CHANGE COLUMN `studio_id` `studio_id` INT(10) UNSIGNED NOT NULL AFTER `project_id`; + +ALTER TABLE `calcms`.`calcms_user_stats` +ADD COLUMN `upload_file` INT(10) UNSIGNED NULL DEFAULT 0 AFTER `delete_series`, +ADD COLUMN `download_file` INT(10) UNSIGNED NULL DEFAULT 0 AFTER `upload_file`; + diff --git a/lib/calcms/events.pm b/lib/calcms/events.pm index b29e742..970692b 100644 --- a/lib/calcms/events.pm +++ b/lib/calcms/events.pm @@ -911,19 +911,19 @@ sub get_query { my $search_cond = ''; if ( ( defined $params->{search} ) && ( $params->{search} ne '' ) ) { my $search = lc $params->{search}; - $search =~ s/[^a-z0-9\_\.\-\:\!öäüßÖÄÜ \&]/%/; - $search =~ s/\%+/\%/; + $search =~ s/(?=[\\%_])/\\/g; $search =~ s/^[\%\s]+//; $search =~ s/[\%\s]+$//; if ( $search ne '' ) { $search = '%' . $search . '%'; my @attr = ( 'title', 'series_name', 'excerpt', 'category', 'content', 'topic' ); - $search_cond = "(" . join( " or ", map { 'lower(' . $_ . ') like ?' } @attr ) . ")"; + $search_cond = "(" . join( " or ", map { 'lower(' . $_ . ') like ?' } @attr ) . ")"; for my $attr (@attr) { push @$bind_values, $search; } } } + #print STDERR $search_cond."\n"; my $project_cond = ''; diff --git a/lib/calcms/images.pm b/lib/calcms/images.pm index 41b1edb..5d81a33 100644 --- a/lib/calcms/images.pm +++ b/lib/calcms/images.pm @@ -269,7 +269,7 @@ sub delete_files{ return undef; - print log::error($config, 'missing permissions on writing into local media dir ' .$local_media_dir)unless(-w $local_media_dir); + print log::error($config, 'missing permissions on writing into local media dir')unless(-w $local_media_dir); if ($filename=~/[^a-zA-Z0-9\.\_\-]/){ log::error($config, "invalid filename: '$filename'"); diff --git a/lib/calcms/studios.pm b/lib/calcms/studios.pm index 2e12935..3cce3c2 100644 --- a/lib/calcms/studios.pm +++ b/lib/calcms/studios.pm @@ -50,6 +50,11 @@ sub get{ push @bind_values, $condition->{name}; } + if ((defined $condition->{location}) && ($condition->{location} ne '')){ + push @conditions, 's.location=?'; + push @bind_values, $condition->{location}; + } + my $limit=''; if ((defined $condition->{limit}) && ($condition->{limit} ne '')){ $limit= 'limit '.$condition->{limit}; diff --git a/website/agenda/.htaccess b/website/agenda/.htaccess index eb1283d..4e5d090 100644 --- a/website/agenda/.htaccess +++ b/website/agenda/.htaccess @@ -79,6 +79,13 @@ RewriteRule ^future$ events.cgi?template=event_list_image.html&limit=20 RewriteRule ^dt64-festival.html$ events.cgi?location=dt64&template=event_dt64&archive=all RewriteRule ^frrapo-programm.html$ events.cgi?location=potsdam&template=event_frrapo RewriteRule ^upload_playout_piradio$ upload_playout.cgi?project_id=1&studio_id=1 + +RewriteRule ^redaktionen-piradio$ series.cgi?project_id=1&location=piradio +RewriteRule ^redaktionen-studio-ansage$ series.cgi?project_id=1&location=ansage +RewriteRule ^redaktionen-frrapo$ series.cgi?project_id=1&location=potsdam +RewriteRule ^redaktionen-colabo-radio$ series.cgi?project_id=1&location=colabo +RewriteRule ^redaktionen-frb$ series.cgi?project_id=1&location=frb + # MOD_PERL diff --git a/website/agenda/css/agenda.css b/website/agenda/css/agenda.css index 5804f98..f20c48b 100644 --- a/website/agenda/css/agenda.css +++ b/website/agenda/css/agenda.css @@ -4,44 +4,44 @@ /* main structure */ /* - body { +body { - font-size:12px - } + font-size:12px +} */ - #nav { - text-align:center; - margin:0; - height:3em; - z-index:3; - text-align:left; - background:white; - width:100%; - font-size:10px; - } +#nav { + text-align:center; + margin:0; + height:3em; + z-index:3; + text-align:left; + background:white; + width:100%; + font-size:10px; +} - #calcms_body { +#calcms_body { /* - font-size:10px; + font-size:10px; */ - overflow:auto; - background:white; - padding-top:3px;padding-right:5px; - margin:bottom:1px; - text-align:left; - padding:3px; - } + overflow:auto; + background:white; + padding-top:3px;padding-right:5px; + margin:bottom:1px; + text-align:left; + padding:3px; +} - pre { - text-align:left; +pre { + text-align:left; /* - font-size:0.7em; + font-size:0.7em; */ - font-family:Courier; - padding:1em;margin:1em; - border:1px solid black; - background-color:#eee; - } + font-family:Courier; + padding:1em;margin:1em; + border:1px solid black; + background-color:#eee; +} /* end of main structure */ @@ -49,27 +49,27 @@ /* search field */ - #nav form {float:left;} - #nav form input { +#nav form {float:left;} +#nav form input { /* - font-size:12px; + font-size:12px; */ - padding:0;margin:1;border:1px solid gray - } + padding:0;margin:1;border:1px solid gray +} - #nav form select { +#nav form select { /* - font-size:12px; + font-size:12px; */ - padding:0;margin:1;border:1px solid gray;width:130px; - } + padding:0;margin:1;border:1px solid gray;width:130px; +} - #nav form option { +#nav form option { /* - font-size:12px; + font-size:12px; */ - padding:0;margin:0 - } + padding:0;margin:0 +} /* end of search field */ @@ -77,34 +77,34 @@ /* event fields */ - .calcms_date { - background: #ccccff; - padding:6px;margin:0px; - font-weight:bold; - margin-top:1em; - -moz-border-radius-topleft:6px; - -moz-border-radius-topright:6px; - -webkit-border-top-right-radius: 6px; - -webkit-border-top-left-radius: 6px; - text-align:left - } +.calcms_date { + background: #ccccff; + padding:6px;margin:0px; + font-weight:bold; + margin-top:1em; + -moz-border-radius-topleft:6px; + -moz-border-radius-topright:6px; + -webkit-border-top-right-radius: 6px; + -webkit-border-top-left-radius: 6px; + text-align:left +} - .calcms_title {padding:3px;margin:0px;font-weight:bold;text-align:left;} - .calcms_excerpt {padding:3px;margin:0px;background-color:#eee;} - .calcms_content {padding:3px;margin:0px;clear:left;margin:0} - .calcms_content p {margin-top:10px} - .calcms_content h1 {text-align:left;font-size:1.5em;clear:left;margin-top:16px} - .calcms_content h2 {text-align:left;font-size:1.5em;clear:left;margin-top:16px} - .calcms_content h3 {text-align:left;font-size:1.5em;clear:left;margin-top:16px} - .calcms_content h4 {text-align:left;font-size:1.5em;clear:left;margin-top:16px} - .calcms_content li {clear:left;} - .calcms_content img {text-align:left;font-size:1.5em;float:left;margin-right:10px;}/*width:50;height:50px;*/ - .calcms_event {text-align:left} - .calcms_day {padding:1px;margin:0px;clear:left;text-align:left} - - /* hide microformats */ - .dtstart {display:none;visibility:hidden;} - .dtend {display:none;visibility:hidden;} +.calcms_title {padding:3px;margin:0px;font-weight:bold;text-align:left;} +.calcms_excerpt {padding:3px;margin:0px;background-color:#eee;} +.calcms_content {padding:3px;margin:0px;clear:left;margin:0} +.calcms_content p {margin-top:10px} +.calcms_content h1 {text-align:left;font-size:1.5em;clear:left;margin-top:16px} +.calcms_content h2 {text-align:left;font-size:1.5em;clear:left;margin-top:16px} +.calcms_content h3 {text-align:left;font-size:1.5em;clear:left;margin-top:16px} +.calcms_content h4 {text-align:left;font-size:1.5em;clear:left;margin-top:16px} +.calcms_content li {clear:left;} +.calcms_content img {text-align:left;font-size:1.5em;float:left;margin-right:10px;}/*width:50;height:50px;*/ +.calcms_event {text-align:left} +.calcms_day {padding:1px;margin:0px;clear:left;text-align:left} + +/* hide microformats */ +.dtstart {display:none;visibility:hidden;} +.dtend {display:none;visibility:hidden;} /* end of event fields */ @@ -112,140 +112,140 @@ /* navigation bar */ - table#nav{ - padding:0;margin:0;width:100%; - border-left:1px solid #88f; - border-top: 1px solid #88f; - text-align:left; - } - table#nav table{ - padding:0;margin:0; - border-left:0;border-top:0; - text-align:left;width:100% - } - table#nav table td{ - margin:0;text-align:center; - border-bottom:1px solid #88f; - border-right: 1px solid #88f; - } - table#nav table td, - table#nav table a{ - padding:1px; +table#nav{ + padding:0;margin:0;width:100%; + border-left:1px solid #88f; + border-top: 1px solid #88f; + text-align:left; +} +table#nav table{ + padding:0;margin:0; + border-left:0;border-top:0; + text-align:left;width:100% +} +table#nav table td{ + margin:0;text-align:center; + border-bottom:1px solid #88f; + border-right: 1px solid #88f; +} +table#nav table td, +table#nav table a{ + padding:1px; /* - font-size:10px; + font-size:10px; */ - } +} - /* hover effects */ +/* hover effects */ - table#nav table td:hover{ - border-bottom:1px solid #88f; - border-right :1px solid #88f; - background-color:#f0f0f0; - } +table#nav table td:hover{ + border-bottom:1px solid #88f; + border-right :1px solid #88f; + background-color:#f0f0f0; +} - table#nav table td.selected:hover{ - background-color:#eee; - border-bottom:1px solid #88f; - border-right: 1px solid #88f; - } +table#nav table td.selected:hover{ + background-color:#eee; + border-bottom:1px solid #88f; + border-right: 1px solid #88f; +} - table#nav table a:hover{ - } +table#nav table a:hover{ +} - /* not selectable columns */ +/* not selectable columns */ - table#nav table td.row_type:hover{ - border-bottom:1px solid #88f; - border-right: 1px solid #88f; - background-color:#ffffff; - } +table#nav table td.row_type:hover{ + border-bottom:1px solid #88f; + border-right: 1px solid #88f; + background-color:#ffffff; +} - .row_type{ - width:100px - } +.row_type{ + width:100px +} - /* selected fields */ - #nav .selected, .night, .morning, .noon, .afternoon, .evening{ - background:#ddd; - border-bottom:1px solid #88f; - border-right: 1px solid #88f; - -moz-border-radius-topleft:5px; - -moz-border-radius-topright:5px; - -webkit-border-top-right-radius: 5px; - -webkit-border-top-left-radius: 5px; - } +/* selected fields */ +#nav .selected, .night, .morning, .noon, .afternoon, .evening{ + background:#ddd; + border-bottom:1px solid #88f; + border-right: 1px solid #88f; + -moz-border-radius-topleft:5px; + -moz-border-radius-topright:5px; + -webkit-border-top-right-radius: 5px; + -webkit-border-top-left-radius: 5px; +} /* end of navigation bar */ /* calendar weeks */ - #nav td.week_1, - #nav td.week_2, - #nav td.week_3, - #nav td.week_4, - #nav td.week_5 { - border-right:1px solid #88f ; - } +#nav td.week_1, +#nav td.week_2, +#nav td.week_3, +#nav td.week_4, +#nav td.week_5 { + border-right:1px solid #88f ; +} /* end of calendar weeks */ - + /* calendar days */ - /* replaces the original wp css*/ +/* replaces the original wp css*/ - #wp-calendar {} - #wp-calendar a {padding:2px} - #wp-calendar table {padding:2px} +#wp-calendar {} +#wp-calendar a {padding:2px} +#wp-calendar table {padding:2px} - #wp-calendar td { +#wp-calendar td { /* - font-size:8px; + font-size:8px; */ - text-align:center; - background-color:#fefeff; - } - #wp-calendar td a { - padding:2px; + text-align:center; + background-color:#fefeff; +} +#wp-calendar td a { + padding:2px; /* - font-size:8px; + font-size:8px; */ - font-weight:normal; - } + font-weight:normal; +} - #wp-calendar a:hover { - background:#eeeeff; - } +#wp-calendar a:hover { + background:#eeeeff; +} - /* additional css to mark today and all dates matching to the request */ +/* additional css to mark today and all dates matching to the request */ - #wp-calendar .calcms_today { - padding:2px;margin:0px;background:#eeeeee; - } +#wp-calendar .calcms_today { + padding:2px;margin:0px;background:#eeeeee; +} - #wp-calendar td.calcms_match { - background:#ccffcc; - } - #wp-calendar td .selected .calcms_match { - background:#ddeedd; - } +#wp-calendar td.calcms_match { + background:#ccffcc; +} +#wp-calendar td .selected .calcms_match { + background:#ddeedd; +} /* end of calendar days */ - div.update { - position:absolute; - bottom:0px; - } +div.update { + position:absolute; + bottom:0px; +} - div.update , div.update a{ - text-align:left; - font-size:6px; - color:#bbb; - } +div.update , div.update a{ + text-align:left; + font-size:6px; + color:#bbb; +} diff --git a/website/agenda/css/calcms.css b/website/agenda/css/calcms.css index ad968aa..4ccb52a 100644 --- a/website/agenda/css/calcms.css +++ b/website/agenda/css/calcms.css @@ -1,41 +1,30 @@ -/* -include in your web page: - -* {font-size:1em !important;} -*/ -/* latin-ext */ +/* roboto-regular - latin_latin-ext */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 400; - src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format('woff2'); - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Roboto'; - font-style: normal; - font-weight: 400; - src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + src: url('../fonts/roboto-v18-latin_latin-ext-regular.eot'); /* IE9 Compat Modes */ + src: local('Roboto'), local('Roboto-Regular'), + url('../fonts/roboto-v18-latin_latin-ext-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/roboto-v18-latin_latin-ext-regular.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/roboto-v18-latin_latin-ext-regular.woff') format('woff'), /* Modern Browsers */ + url('../fonts/roboto-v18-latin_latin-ext-regular.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/roboto-v18-latin_latin-ext-regular.svg#Roboto') format('svg'); /* Legacy iOS */ } -/* latin-ext */ +/* open-sans-regular - latin_latin-ext */ @font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 400; - src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v15/mem8YaGs126MiZpBA-UFW50bbck.woff2) format('woff2'); - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 400; - src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v15/mem8YaGs126MiZpBA-UFVZ0b.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + src: url('../fonts/open-sans-v15-latin_latin-ext-regular.eot'); /* IE9 Compat Modes */ + src: local('Open Sans Regular'), local('OpenSans-Regular'), + url('../fonts/open-sans-v15-latin_latin-ext-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/open-sans-v15-latin_latin-ext-regular.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/open-sans-v15-latin_latin-ext-regular.woff') format('woff'), /* Modern Browsers */ + url('../fonts/open-sans-v15-latin_latin-ext-regular.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/open-sans-v15-latin_latin-ext-regular.svg#OpenSans') format('svg'); /* Legacy iOS */ } #page * { @@ -51,6 +40,10 @@ input{ max-width:20em; } +body.custom-background{ + image-rendering: pixelated; +} + a{ text-decoration:none; box-shadow:none !important; @@ -507,12 +500,12 @@ a{ } #calcms_comments input{ - max-width:20em; + max-width:40rem; height:32px; } #calcms_comments input[type=submit]{ - max-width:10em; + max-width:10rem; background:#ddd; } diff --git a/website/agenda/js/calcms.cust.js b/website/agenda/js/calcms.cust.js index 148761d..4979ed2 100644 --- a/website/agenda/js/calcms.cust.js +++ b/website/agenda/js/calcms.cust.js @@ -157,6 +157,31 @@ var calcms_settings = new Array(); return false; } + + calcms.insertEditors = function insertEditors() { + var url=document.location.href; + + 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" + }; + + 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 insertDeskDetails() { var pattern = new RegExp(/redaktion\/(.*)$/); diff --git a/website/agenda/planung/calendar.cgi b/website/agenda/planung/calendar.cgi index 0559479..a68eeff 100755 --- a/website/agenda/planung/calendar.cgi +++ b/website/agenda/planung/calendar.cgi @@ -500,7 +500,7 @@ sub showCalendar { next unless defined $event->{uploaded_at}; print STDERR "uploadAt=$event->{uploaded_at}, playoutModified:$event->{playout_modified_at}, playoutUpdatedAt:$event->{playout_updated_at}\n"; next if (defined $event->{playout_updated_at}) && ( $event->{uploaded_at} lt $event->{playout_updated_at} ); - print STDERR Dumper($event); + #print STDERR Dumper($event); $event->{upload} ='pending' ; #$event->{title}.='
pending'; } diff --git a/website/agenda/planung/css/jquery-ui-timepicker.old.css b/website/agenda/planung/css/jquery-ui-timepicker.old.css deleted file mode 100644 index 6ef513c..0000000 --- a/website/agenda/planung/css/jquery-ui-timepicker.old.css +++ /dev/null @@ -1,11 +0,0 @@ -.ui-timepicker-div .ui-widget-header { margin-bottom: 8px; } -.ui-timepicker-div dl { text-align: left; } -.ui-timepicker-div dl dt { float: left; clear:left; padding: 0 0 0 5px; } -.ui-timepicker-div dl dd { margin: 0 10px 10px 40%; } -.ui-timepicker-div td { font-size: 90%; } -.ui-tpicker-grid-label { background: none; border: none; margin: 0; padding: 0; } - -.ui-timepicker-rtl{ direction: rtl; } -.ui-timepicker-rtl dl { text-align: right; padding: 0 5px 0 0; } -.ui-timepicker-rtl dl dt{ float: right; clear: right; } -.ui-timepicker-rtl dl dd { margin: 0 40% 10px 10px; } diff --git a/website/agenda/planung/css/list_series.css b/website/agenda/planung/css/list_series.css index 1280e6f..c828035 100644 --- a/website/agenda/planung/css/list_series.css +++ b/website/agenda/planung/css/list_series.css @@ -10,15 +10,16 @@ div#oldSeries{ clear:both; } -div#newSeries, div#oldSeries{ +div#newSeries, +div#oldSeries{ display: flex; flex-wrap: wrap; align-items: center; justify-content: center; } -div#newSeries div, -div#oldSeries div{ +div#newSeries a, +div#oldSeries a{ color:#fff; background:#1abc9c; padding:6px; @@ -35,12 +36,11 @@ div#oldSeries div{ height:3rem; line-height:2em; } -/* -*/ -div#newSeries div:hover, -div#oldSeries div:hover{ +div#newSeries a:hover, +div#oldSeries a:hover{ background:#1dd2af; + text-decoration:none; } div#search{ diff --git a/website/agenda/planung/templates/series.html b/website/agenda/planung/templates/series.html index f9096c2..7e3f0ab 100644 --- a/website/agenda/planung/templates/series.html +++ b/website/agenda/planung/templates/series.html @@ -37,10 +37,13 @@ var region=''; @@ -50,10 +53,12 @@ var region=''; diff --git a/website/agenda/templates/event_details.html b/website/agenda/templates/event_details.html index 8e30a74..a5bb161 100644 --- a/website/agenda/templates/event_details.html +++ b/website/agenda/templates/event_details.html @@ -22,18 +22,18 @@
... Diese Sendung läuft gerade ...

-

- - «» - - +

+ + «» + +
, , bis Uhr
-

+

()
@@ -44,7 +44,7 @@ -
+
<TMPL_VAR series_name>
Bild:
@@ -56,9 +56,9 @@
<TMPL_VAR series_name> -
Bild:
+
Bild:
-
+
@@ -66,7 +66,7 @@ Wiederholung vom - +