summaryrefslogtreecommitdiff
path: root/lib/scripts
diff options
context:
space:
mode:
authorKate Arzamastseva <pshns@ukr.net>2011-07-26 11:55:38 +0300
committerKate Arzamastseva <pshns@ukr.net>2011-07-26 11:55:38 +0300
commit4ee1558545059fa73700709a9ef4c0ab22ce8f92 (patch)
tree4eb971ba09ca179e41584a1497397d3e24bc4a55 /lib/scripts
parentabc306f45f2ace038967bf7c51abd6ea53f56170 (diff)
downloadrpg-4ee1558545059fa73700709a9ef4c0ab22ce8f92.tar.gz
rpg-4ee1558545059fa73700709a9ef4c0ab22ce8f92.tar.bz2
image diffs fixes
Diffstat (limited to 'lib/scripts')
-rw-r--r--lib/scripts/media.js72
1 files changed, 67 insertions, 5 deletions
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 <pshns@ukr.net>
+ */
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 <pshns@ukr.net>
+ */
+ image_diff: function () {
+ if (jQuery('#mediamanager__difftype').length) return;
+
+ $form = jQuery('#mediamanager__form_diffview');
+ $label = jQuery(document.createElement('label'));
+ $label.append('<span>'+LANG.media_diff+'</span>');
+ $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 <pshns@ukr.net>
+ */
+ 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 <pshns@ukr.net>
+ */
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 <pshns@ukr.net>
+ */
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);
});