From 4ee1558545059fa73700709a9ef4c0ab22ce8f92 Mon Sep 17 00:00:00 2001 From: Kate Arzamastseva Date: Tue, 26 Jul 2011 11:55:38 +0300 Subject: image diffs fixes --- lib/scripts/media.js | 72 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 67 insertions(+), 5 deletions(-) (limited to 'lib/scripts') diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 44928417f..42035a595 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -61,6 +61,7 @@ var dw_mediamanager = { $tree.delegate('a', 'click', dw_mediamanager.list); jQuery('#mediamanager__form_sort').find('input[type=submit]').hide(); + dw_mediamanager.image_diff(); // changing opened tab in the file list panel jQuery('#mediamanager__layout_list').delegate('#mediamanager__tabs_files a', 'click', dw_mediamanager.list) @@ -357,8 +358,10 @@ var dw_mediamanager = { if ($link[0].search) { params = $link[0].search.substr(1)+'&call=mediadetails'; - } else { + } else if ($link[0].action) { params = dw_mediamanager.form_params($link)+'&call=mediadetails'; + } else if ($link.parents('form')) { + params = dw_mediamanager.form_params($link.parents('form'))+'&call=mediadetails'; } dw_mediamanager.update_content($content, params); @@ -385,17 +388,24 @@ var dw_mediamanager = { }); $content.html(data); + dw_mediamanager.prepare_content($content); dw_mediamanager.updatehide(); + dw_mediamanager.update_resizable(0); - dw_mediamanager.opacity_slider(); - dw_mediamanager.portions_slider(); addInitEvent(revisionsForm); + jQuery('#mediamanager__form_sort').find('input[type=submit]').hide(); + dw_mediamanager.image_diff(); }, 'html' ); }, + /** + * Updates mediamanager layout + * + * @author Kate Arzamastseva + */ update_resizable: function (count_width) { $resizable = jQuery("#mediamanager__layout .layout-resizable"); @@ -431,6 +441,55 @@ var dw_mediamanager = { }); }, + /** + * Prints 'select' for image difference representation type + * + * @author Kate Arzamastseva + */ + image_diff: function () { + if (jQuery('#mediamanager__difftype').length) return; + + $form = jQuery('#mediamanager__form_diffview'); + $label = jQuery(document.createElement('label')); + $label.append(''+LANG.media_diff+''); + $select = jQuery(document.createElement('select')) + .attr('id', 'mediamanager__difftype') + .attr('name', 'difftype') + .change(dw_mediamanager.change_diff_type); + $select.append(new Option(LANG.media_diff_both, "both")); + $select.append(new Option(LANG.media_diff_opacity, "opacity")); + $select.append(new Option(LANG.media_diff_portions, "portions")); + $label.append($select); + $form.append($label); + }, + + /** + * Handles selection of image difference representation type + * + * @author Kate Arzamastseva + */ + change_diff_type: function () { + $select = jQuery('#mediamanager__difftype'); + $content = jQuery('#mediamanager__diff'); + + params = dw_mediamanager.form_params($select.parents('form'))+'&call=mediadiff'; + jQuery.post( + DOKU_BASE + 'lib/exe/ajax.php', + params, + function (data) { + $content.html(data); + dw_mediamanager.opacity_slider(); + dw_mediamanager.portions_slider(); + }, + 'html' + ); + }, + + /** + * Sets options for opacity diff slider + * + * @author Kate Arzamastseva + */ opacity_slider: function () { var $slider = jQuery( "#mediamanager__opacity_slider" ); $slider.slider(); @@ -443,6 +502,11 @@ var dw_mediamanager = { }); }, + /** + * Sets options for red line diff slider + * + * @author Kate Arzamastseva + */ portions_slider: function () { var $slider = jQuery( "#mediamanager__portions_slider" ); $slider.slider(); @@ -737,8 +801,6 @@ function hasFlash(version){ jQuery(document).ready(function() { dw_mediamanager.update_resizable(1); - dw_mediamanager.opacity_slider(); - dw_mediamanager.portions_slider(); jQuery(window).resize(dw_mediamanager.update_resizable); }); -- cgit v1.2.3