From 7e574607ad63cf8a79bec22cab6b2100f9cb8756 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Thu, 16 Mar 2023 18:16:30 +0100 Subject: [PATCH] wip #5447 @1 --- resources/linkeditor/js/linkeditor.js | 5 ++- resources/linkeditor/js/linkeditor.links.js | 40 +++++++++++++++++++ .../link_editor.blade.php | 7 ++-- 3 files changed, 48 insertions(+), 4 deletions(-) diff --git a/resources/linkeditor/js/linkeditor.js b/resources/linkeditor/js/linkeditor.js index b95f3d8db..87f6643a3 100644 --- a/resources/linkeditor/js/linkeditor.js +++ b/resources/linkeditor/js/linkeditor.js @@ -236,9 +236,12 @@ LinkEditor.prototype = { }, runAction: function (act, args) { - if (arguments === undefined) { + if (args === undefined) { args = []; } + if (typeof args === 'string') { + args = [args]; + } var a = act.split('.'); var o = this; let po = this; diff --git a/resources/linkeditor/js/linkeditor.links.js b/resources/linkeditor/js/linkeditor.links.js index 5fbe87e3e..99f784240 100644 --- a/resources/linkeditor/js/linkeditor.links.js +++ b/resources/linkeditor/js/linkeditor.links.js @@ -934,6 +934,46 @@ LinkeditorLinks.prototype = { clear: function () { $("#linkeditor-links").html(''); }, + + alignSelection: function (align) { + if (align === 'left' || align === 'top') { + var min = 1000000; + $.each(this.getCurrentSelection(), function () { + min = Math.min(min, parseFloat($(this).attr('fb-' + align))); + }); + $.each(this.getCurrentSelection(), function () { + $(this).attr('fb-' + align, min); + }); + } else if (align === 'right' || align === 'bottom') { + var b = align === 'right' ? 'left' : 'top'; + var l = align === 'right' ? 'width' : 'height'; + var max = -10000000; + $.each(this.getCurrentSelection(), function () { + max = Math.max(max, parseFloat($(this).attr('fb-' + b)) + parseFloat($(this).attr('fb-' + l))); + }); + $.each(this.getCurrentSelection(), function () { + $(this).attr('fb-' + b, max - parseFloat($(this).attr('fb-' + l))); + }); + } else if (align === 'center' || align === 'middle') { + var b = align === 'center' ? 'left' : 'top'; + var l = align === 'center' ? 'width' : 'height'; + var max = -10000000; + var min = 1000000; + $.each(this.getCurrentSelection(), function () { + min = Math.min(min, parseFloat($(this).attr('fb-' + b))); + max = Math.max(max, parseFloat($(this).attr('fb-' + b)) + parseFloat($(this).attr('fb-' + l))); + }); + var center = min + ((max - min) / 2); + $.each(this.getCurrentSelection(), function () { + $(this).attr('fb-' + b, center - parseFloat($(this).attr('fb-' + l)) / 2); + }); + } + + this.linkeditor.hasChanged(); + }, + distributeSelection: function (axis) { + + }, }; module.exports = LinkeditorLinks; diff --git a/resources/views/fluidbook_publication/link_editor.blade.php b/resources/views/fluidbook_publication/link_editor.blade.php index 6ddba3402..d03cb146a 100644 --- a/resources/views/fluidbook_publication/link_editor.blade.php +++ b/resources/views/fluidbook_publication/link_editor.blade.php @@ -220,17 +220,18 @@