From ed8b3be600040902b07f4a704668197ab39d4c4e Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Mon, 10 Oct 2022 19:12:31 +0200 Subject: [PATCH] wait #5479 @2 --- resources/linkeditor/js/linkeditor.js | 2 -- resources/linkeditor/js/linkeditor.links.js | 21 ++++++++++++++++--- resources/linkeditor/js/linkeditor.rulers.js | 14 ++++++++----- resources/linkeditor/js/linkeditor.save.js | 3 +-- .../link_editor.blade.php | 9 +++++--- 5 files changed, 34 insertions(+), 15 deletions(-) diff --git a/resources/linkeditor/js/linkeditor.js b/resources/linkeditor/js/linkeditor.js index 2d14c9d57..ed5918e7d 100644 --- a/resources/linkeditor/js/linkeditor.js +++ b/resources/linkeditor/js/linkeditor.js @@ -175,7 +175,6 @@ LinkEditor.prototype = { }, _updateFBElements: function (force) { - console.log('_updateFBElements'); let $this = this; let selector = '[fb-ref]'; if (force !== true) { @@ -246,7 +245,6 @@ LinkEditor.prototype = { this.loader.loadPage(this.currentPage + 1, 'right'); } $("#linkeditor-page-field input").val(this.currentPage); - this.rulers.updateRulersMagnetValues(); this.resize.resize(); this.loader.preloadPages(); }, diff --git a/resources/linkeditor/js/linkeditor.links.js b/resources/linkeditor/js/linkeditor.links.js index f2c2e46f8..be035a46b 100644 --- a/resources/linkeditor/js/linkeditor.links.js +++ b/resources/linkeditor/js/linkeditor.links.js @@ -192,10 +192,21 @@ LinkeditorLinks.prototype = { .attr('fb-width', newWidth) .attr('fb-height', newHeight) .attr('fb-update', '1'); + + $this.updateLinkData($(this).attr('fb-uid'), { + top: newTop, left: newLeft, width: newWidth, height: newHeight + }); }); this.linkeditor.updateFBElements(false); }, + updateLinkData: function (id, data) { + $.each(data, function (k, v) { + LINKS[id][k] = v; + }); + this.linkeditor.rulers.updateMagnetValues(); + }, + startDragLink: function () { this.dragLinkPos = {x: this.linkeditor.mx, y: this.linkeditor.my}; $(".link.selected").each(function () { @@ -236,6 +247,10 @@ LinkeditorLinks.prototype = { .attr('fb-left', left) .attr('fb-top', top) .attr('fb-update', '1'); + + $this.updateLinkData($(this).attr('fb-uid'), { + top: top, left: left, + }); }); this.linkeditor.updateFBElements(false); }, @@ -328,14 +343,14 @@ LinkeditorLinks.prototype = { $.each(link, function (k, v) { attrs['fb-' + k] = v; }); - attrs['fb-ref']="editor"; - attrs['fb-update']="1"; + attrs['fb-ref'] = "editor"; + attrs['fb-update'] = "1"; let e = $(''); $(e).attr(attrs); $("#linkeditor-links").append(e); if (change) { - this.linkeditor.rulers.updateRulersMagnetValues(); + this.linkeditor.rulers.updateMagnetValues(); this.linkeditor.hasChanged(); } return e; diff --git a/resources/linkeditor/js/linkeditor.rulers.js b/resources/linkeditor/js/linkeditor.rulers.js index 62ef11bcd..b48c4ad44 100644 --- a/resources/linkeditor/js/linkeditor.rulers.js +++ b/resources/linkeditor/js/linkeditor.rulers.js @@ -35,17 +35,19 @@ LinkeditorRulers.prototype = { loadRulers: function (page, side) { let $this = this; - $.each(this.getRulersOfPage(page), function (uid, ruler) { + $.each(this.getRulersOfPage(page, side), function (uid, ruler) { $this.addRuler(ruler.type, ruler.pos, ruler.uid); }); this.linkeditor.links.updateMagnetValues(); }, - getRulersOfPage(page) { - var pages = this.linkeditor.getCurrentPages(page); + getRulersOfPage(page, side) { + if (page === undefined) { + page = this.linkeditor.currentPage; + } var res = {}; $.each(RULERS, function (uid, ruler) { - if (pages.indexOf(parseInt(ruler.page)) === -1) { + if (page != ruler.page) { return; } res[uid] = ruler; @@ -136,7 +138,7 @@ LinkeditorRulers.prototype = { return res; }, - updateRulersMagnetValues: function () { + updateMagnetValues: function () { var $this = this; this.rulersMagnetValuesX = [0, this.linkeditor.pw, this.linkeditor.pw * 2]; this.rulersMagnetValuesY = [0, this.linkeditor.ph]; @@ -207,6 +209,7 @@ LinkeditorRulers.prototype = { }, addRuler: function (axis, pos, uid) { + if (undefined === uid) { uid = this.linkeditor.utils.generateUID(); RULERS[uid] = {page: this.linkeditor.currentPage, type: axis, uid: uid}; @@ -219,6 +222,7 @@ LinkeditorRulers.prototype = { let dim = axis == 'x' ? 'left' : 'top'; $(ruler).attr('fb-' + dim, pos); } + $("#linkeditor-editor").append(ruler); this.moveRuler(); }, diff --git a/resources/linkeditor/js/linkeditor.save.js b/resources/linkeditor/js/linkeditor.save.js index 6ef30f9cd..4e1f1cbd2 100644 --- a/resources/linkeditor/js/linkeditor.save.js +++ b/resources/linkeditor/js/linkeditor.save.js @@ -1,4 +1,3 @@ - function LinkeditorSave(linkeditor) { this.linkeditor = linkeditor; this.init(); @@ -44,7 +43,7 @@ LinkeditorSave.prototype = { new Noty({ type: "success", text: TRANSLATIONS.success_save, }).show(); - clearTimeout(automaticSaveTimeout); + clearTimeout($this.automaticSaveTimeout); $this.unsavedChanges = false; $this.runningAutomaticSaveTimeout = false; }, diff --git a/resources/views/fluidbook_publication/link_editor.blade.php b/resources/views/fluidbook_publication/link_editor.blade.php index 268c3ac45..307ac6b40 100644 --- a/resources/views/fluidbook_publication/link_editor.blade.php +++ b/resources/views/fluidbook_publication/link_editor.blade.php @@ -13,6 +13,9 @@ 'automatic_save_message'=>__('Sauvegarde automatique'), 'warning_unsaved_changes'=>__('Des données n\'ont pas été sauvegardées'), ]; + + $rulers=!count($rulers)?'{}':json_encode($rulers); + $links=!count($links)?'{}':json_encode($links); @endphp @extends('layouts.empty') @@ -86,10 +89,10 @@ @push('after_scripts') -- 2.39.5