diff --git a/website/agenda/planung/event.cgi b/website/agenda/planung/event.cgi index 6b4f27e..4c4c476 100755 --- a/website/agenda/planung/event.cgi +++ b/website/agenda/planung/event.cgi @@ -231,6 +231,8 @@ sub show_event { $event->{start} =~ s/(\d\d:\d\d)\:\d\d/$1/; $event->{end} =~ s/(\d\d:\d\d)\:\d\d/$1/; + $event->{image} = $params->{setImage} if defined $params->{setImage}; + # overwrite event with old one #my $series_events=get_series_events($config,{ # project_id => $params->{project_id}, @@ -814,15 +816,13 @@ sub check_params { for my $param ( 'live', 'published', 'playout', 'archived', 'rerun', 'draft', 'disable_event_sync', 'get_rerun' ) { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /([01])/ ) ) { $checked->{$param} = $1; - - # print STDERR "check $param = $1\n"; } } #strings for my $param ( 'series_name', 'title', 'excerpt', 'content', 'topic', 'program', 'category', 'image', - 'series_image', 'user_content', 'user_title', 'user_excerpt', 'podcast_url', 'archive_url' + 'series_image', 'user_content', 'user_title', 'user_excerpt', 'podcast_url', 'archive_url', 'setImage' ) { if ( defined $params->{$param} ) { diff --git a/website/agenda/planung/image.cgi b/website/agenda/planung/image.cgi index dd8c2fe..97b9132 100755 --- a/website/agenda/planung/image.cgi +++ b/website/agenda/planung/image.cgi @@ -61,7 +61,13 @@ $params = $request->{params}->{checked}; #show header my $headerParams = uac::set_template_permissions( $request->{permissions}, $params ); $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); + +if ($params->{search}){ +template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams ); +}else{ template::process( $config, 'print', template::check( $config, 'ajax_header.html' ), $headerParams ); +} + return unless defined uac::check( $config, $params, $user_presets ); my $local_media_dir = $config->{locations}->{local_media_dir}; @@ -214,6 +220,10 @@ sub show_image { 'projects' => project::get_with_dates($config), 'project_id' => $params->{project_id}, 'studio_id' => $params->{studio_id}, + 'series_id' => $params->{series_id}, + 'event_id' => $params->{event_id}, + 'pid' => $params->{pid}, + 'target' => $params->{target}, 'filename' => $params->{filename} }; @@ -402,7 +412,7 @@ sub check_params { #numeric values $checked->{limit} = 100; - for my $param ( 'project_id', 'studio_id', 'series_id', 'default_studio_id', 'limit' ) { + for my $param ( 'project_id', 'studio_id', 'series_id', 'event_id', 'pid', 'default_studio_id', 'limit' ) { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { $checked->{$param} = $params->{$param}; } @@ -432,7 +442,7 @@ sub check_params { #Words $checked->{delete_image} = ''; $checked->{save_image} = ''; - for my $attr ( 'save_image', 'delete_image', 'show', 'filename' ) { + for my $attr ( 'save_image', 'delete_image', 'show', 'filename', 'target' ) { $checked->{$attr} = ''; if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\S+)/ ) ) { $checked->{$attr} = $params->{$attr}; diff --git a/website/agenda/planung/js/image.js b/website/agenda/planung/js/image.js index d635b47..dc37966 100644 --- a/website/agenda/planung/js/image.js +++ b/website/agenda/planung/js/image.js @@ -1,6 +1,6 @@ -var windowOffsetX=32; -var windowOffsetY=32; +var windowOffsetX=0; +var windowOffsetY=0; // get current selected tab by tabs-id function getSelectedTab(id){ @@ -11,16 +11,25 @@ function getSelectedTab(id){ function setActiveImage(elem){ $('div.image').removeClass("active"); + if (elem){ $(elem).addClass("active"); }else{ - $('div.image').first().addClass("active"); + $('div.images div.image').first().addClass("active"); } } // open dialog to show or edit image properties -function updateImageEditor(filename, elem){ - var url='image.cgi?show='+filename+'&template=image_edit.html&project_id='+project_id+'&studio_id='+studio_id +function updateImageEditor(elem, filename, target, project_id, studio_id, series_id, event_id, pid){ + var url='image.cgi?show='+filename; + url += '&template=image_edit.html'; + url += '&target=' + target; + url += '&project_id='+project_id; + url += '&studio_id='+studio_id; + if ( (series_id != null) && (series_id != '') ) url += '&series_id='+series_id; + if ( (event_id != null) && (event_id != '') ) url += '&event_id='+event_id; + if ( (pid != null) && (pid != '') ) url += '&pid='+pid; + console.log("updateImageEditor "+url); $("#img_editor").load( @@ -31,21 +40,9 @@ function updateImageEditor(filename, elem){ ); } -// set editor image and image url to selected image -function selectThisImage(filename){ - $('#'+selectImageId).val(filename); - - var url = 'showImage.cgi?project_id='+project_id+'&studio_id='+studio_id+'&filename=' + filename; - console.log("select image "+url); - $('#imagePreview').prop('src',url); - - showContent(); - return false; -} - -// update selectImage container by images matching to search -function searchImage(){ - var url='image.cgi?project_id='+project_id+'&studio_id='+studio_id; +// build search url and load +function searchImage(target, project_id, studio_id, series_id, event_id, pid){ + var url='image.cgi?'; var value=$('#image_manager input[name=search]').val(); value=value.replace(/[^a-zA-Z0-9]/g,'%'); @@ -55,51 +52,18 @@ function searchImage(){ var filename = filename.replace(/^.*[\\\/]/, '') if (filename!=null) url+='&filename='+encodeURIComponent(filename); - if(selectedImageTab!='upload'){ - url+='#image-tabs-select' - } + url += '&target=' + target; + url += '&project_id='+project_id; + url += '&studio_id='+studio_id; + if ( (series_id != null) && (series_id != '') ) url += '&series_id='+series_id; + if ( (event_id != null) && (event_id != '') ) url += '&event_id='+event_id; + if ( (pid != null) && (pid != '') ) url += '&pid='+pid; - console.log("searchImage(), load url="+url) - updateContainer('selectImage', url, function(){ - $( "#image-tabs" ).tabs(); - if (filename!=null) updateImageEditor(encodeURIComponent(filename)); - }); - return false; + + load(url); } -function hideContent(){ - $(window).resize(function () { - $('.ui-dialog').css({ - 'width': $(window).width() - windowOffsetX, - 'height': $(window).height() - windowOffsetY, - 'left': windowOffsetX/2+'px', - 'top': windowOffsetY/2+'px', - modal: true - }); - }).resize(); - - /* - $('.editor').each( - function(){ - $(this).hide(); - } - ); - */ - return false; -} - -function showContent(){ - /* - $('.editor').each( - function(){ - $(this).show(); - } - ); - */ - $('#selectImage').remove(); - return false; -} // save image function saveImage(id, filename) { @@ -188,9 +152,96 @@ function decreaseImageSize(){ $('#content div.image').css('background-size', value+'px'); } +function selectImage( searchValue, imageUrl, target, project_id, studio_id, series_id, event_id, pid){ + searchValue = searchValue.replace(/[^a-zA-Z0-9]/g,'%'); + + var url="image.cgi"; + url += "?target="+target; + url += '&project_id='+project_id + url += '&studio_id='+studio_id; + + if( (series_id!=null) && (series_id != '') ){ + url+='&series_id='+series_id; + } + if( (event_id!=null) && (event_id != '') ){ + url+='&event_id='+event_id; + } + if( (pid!=null) && (pid != '') ){ + url+='&pid='+pid; + } + + url += "&search="+encodeURIComponent(searchValue) + + if(imageUrl!=null){ + var filename=imageUrl.split('%2F').pop(); + url+='&filename='+filename; + } + load(url); +} + +function assignImage(filename, target, project_id, studio_id, series_id, event_id, pid){ + var url = target +".cgi"; + url += "?setImage=" + filename; + url += '&project_id=' + project_id; + url += '&studio_id=' + studio_id; + + if( (series_id != null) && (series_id != '') ){ + url += '&series_id=' + series_id; + } + + if( (event_id != null) && (event_id != '') ){ + url += '&event_id=' + event_id; + } + + if( (pid!=null) && (pid != '') ){ + url+='&pid='+pid; + } + + load(url); +} + +$(document).ready( + function(){ + if ( window.location.href.indexOf("&filename=") > 0) + setActiveImage(); + } +); + + +/* +function hideContent(){ + $('.editor').hide(); + + $(window).resize(function () { + $('.ui-dialog').css({ + 'width': $(window).width() - windowOffsetX, + 'height': $(window).height() - windowOffsetY, + 'position': 'absolute', + 'left': 0, + 'top': 0, + modal: true + }); + + var imagesPos= $('div.images').position(); + var height = ( $(window).height() - imagesPos.top ); + if(height<64) height = 64; + console.log("windowHeight="+$(window).height()+" div.images.pos.top="+imagesPos.top) + $('div.images').css("height", height +"px"); + + }).resize(); + + return false; +} + +function showContent(){ + $('.editor').show(); + $('#selectImage').remove(); + return false; +} + //select image load into selectImage box -function selectImage(project_id, studio_id, imageId, searchValue, imageUrl, series_id){ +function selectImageOld(project_id, studio_id, imageId, searchValue, imageUrl, series_id){ selectImageId = imageId; searchValue = searchValue.replace(/[^a-zA-Z0-9]/g,'%'); @@ -205,26 +256,28 @@ function selectImage(project_id, studio_id, imageId, searchValue, imageUrl, seri url+='&filename='+filename; } - var x=$(window).width() - windowOffsetX; - var y=$(window).height() - windowOffsetY; - console.log("selectImage(), load url="+url) + var x = $(window).width() - windowOffsetX; + var y = $(window).height() - windowOffsetY; + console.log("selectImage(), load url="+url); + $('#selectImage').remove(); $('body').append('
'); - + $('#selectImage').load( url, function(){ hideContent(); - $('#selectImage').dialog({ appendTo: "#content", - title:"select image", - width:x, - height:y, - close: function( event, ui ) { + title: "select image", + top: 0, + left: 0, + width: x, + height: y, + close: function( event, ui ) { showContent(); - $('.ui-dialog').remove(); + $('#selectImage').remove(); } }); updateImageEditor(filename); @@ -234,4 +287,17 @@ function selectImage(project_id, studio_id, imageId, searchValue, imageUrl, seri return false; } +// set editor image and image url to selected image +function selectThisImage(filename){ + $('#'+selectImageId).val(filename); + + var url = 'showImage.cgi?project_id='+project_id+'&studio_id='+studio_id+'&filename=' + filename; + console.log("select image "+url); + $('#imagePreview').prop('src',url); + + showContent(); + return false; +} + +*/ diff --git a/website/agenda/planung/projects.cgi b/website/agenda/planung/projects.cgi index 2b92f8c..b6e259e 100755 --- a/website/agenda/planung/projects.cgi +++ b/website/agenda/planung/projects.cgi @@ -254,6 +254,10 @@ sub show_projects { } $project->{assigned_studios} = $assigned_studios; $project->{unassigned_studios} = $unassigned_studios; + + if ( (defined $params->{setImage}) && ($project->{pid} eq $params->{pid}) ){ + $project->{image} = $params->{setImage}; + } } $params->{projects} = $projects; @@ -282,7 +286,7 @@ sub check_params { } } - for my $param ( 'name', 'title', 'subtitle', 'start_date', 'end_date', 'image', 'email' ) { + for my $param ( 'name', 'title', 'subtitle', 'start_date', 'end_date', 'image', 'email', 'setImage' ) { if ( defined $params->{$param} ) { $checked->{$param} = $params->{$param}; } diff --git a/website/agenda/planung/series.cgi b/website/agenda/planung/series.cgi index 047bebc..d00bcb3 100755 --- a/website/agenda/planung/series.cgi +++ b/website/agenda/planung/series.cgi @@ -1198,6 +1198,7 @@ sub show_series { $serie->{series_dates} = $series_dates; $serie->{show_hint_to_add_schedule} = $params->{show_hint_to_add_schedule}; + $serie->{image} = $params->{setImage} if $params->{setImage}; #copy series to params #$params->{series}=[$serie]; @@ -1280,7 +1281,7 @@ sub check_params { } for my $param ( 'series_name', 'title', 'excerpt', 'content', 'topic', 'image', 'image_label', - 'assign_event_series_name', 'assign_event_title', 'comment', 'podcast_url', 'archive_url' ) + 'assign_event_series_name', 'assign_event_title', 'comment', 'podcast_url', 'archive_url', 'setImage' ) { if ( defined $params->{$param} ) { diff --git a/website/agenda/planung/studio_timeslots.cgi b/website/agenda/planung/studio_timeslots.cgi index a938c6d..5c50ddd 100755 --- a/website/agenda/planung/studio_timeslots.cgi +++ b/website/agenda/planung/studio_timeslots.cgi @@ -74,6 +74,11 @@ if ( $action eq 'show_dates' ) { + + + + + diff --git a/website/agenda/planung/studios.cgi b/website/agenda/planung/studios.cgi index 554252f..7a117d5 100755 --- a/website/agenda/planung/studios.cgi +++ b/website/agenda/planung/studios.cgi @@ -193,6 +193,14 @@ sub show_studios { project_id => $params->{project_id} } ); + + if ($params->{setImage}){ + for my $studio (@$studios){ + next unless $studio->{id} eq $params->{studio_id}; + $studio->{image}=$params->{setImage}; + } + } + $params->{studios} = $studios; $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'studios' } ); uac::set_template_permissions( $permissions, $params ); @@ -219,7 +227,7 @@ sub check_params { } } - for my $param ( 'name', 'description', 'location', 'stream', 'google_calendar', 'image' ) { + for my $param ( 'name', 'description', 'location', 'stream', 'google_calendar', 'image', 'setImage' ) { if ( defined $params->{$param} ) { $checked->{$param} = $params->{$param}; } diff --git a/website/agenda/planung/templates/edit_event.html b/website/agenda/planung/templates/edit_event.html index b47a1be..b060456 100644 --- a/website/agenda/planung/templates/edit_event.html +++ b/website/agenda/planung/templates/edit_event.html @@ -152,55 +152,54 @@ - - -