From: soufiane Date: Mon, 25 Mar 2024 17:07:15 +0000 (+0100) Subject: wip #6788 @3:00 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=8844a95f2ea181b305630e4affe5240c29e8bf1e;p=fluidbook-toolbox.git wip #6788 @3:00 --- diff --git a/app/Http/Controllers/Admin/Operations/FluidbookPublication/LinksOperation.php b/app/Http/Controllers/Admin/Operations/FluidbookPublication/LinksOperation.php index b2229f9d6..ac0302d9a 100644 --- a/app/Http/Controllers/Admin/Operations/FluidbookPublication/LinksOperation.php +++ b/app/Http/Controllers/Admin/Operations/FluidbookPublication/LinksOperation.php @@ -109,7 +109,7 @@ trait LinksOperation FluidbookFontToWoff::fontline($filepath); } $i = \App\Fluidbook\Link\Link::getInstance($link['id'],$link,$compiler); - $css[$link['uid']]['inline'] = FluidbookFontToWoff::getCSS($i, $fontFile, $hash, $filepath, $w, $h); + $css[$link['uid']]['capHeight'] = FluidbookFontToWoff::getCSS($i, $fontFile, $hash, $filepath, $w, $h); $css[$link['uid']]['font'] = $hash; $css[$link['uid']]['hash'] = $final; } diff --git a/resources/linkeditor/js/linkeditor.js b/resources/linkeditor/js/linkeditor.js index 8df7c79ea..630d753ed 100644 --- a/resources/linkeditor/js/linkeditor.js +++ b/resources/linkeditor/js/linkeditor.js @@ -125,6 +125,7 @@ LinkEditor.prototype = { this.initIcons(); this.panels.init(); this.zoom.reset(); + this.links.loadFontSize(); }, initIcons: function () { diff --git a/resources/linkeditor/js/linkeditor.links.js b/resources/linkeditor/js/linkeditor.links.js index fc48a19e0..4ae8f764c 100644 --- a/resources/linkeditor/js/linkeditor.links.js +++ b/resources/linkeditor/js/linkeditor.links.js @@ -573,6 +573,7 @@ LinkeditorLinks.prototype = { this.linkeditor.form.updateLinkForm(); this.resizeLinkPos = null; this.linkeditor.hasChanged(); + this.setFontSize(this.lastSelectedLinkData) }, moveResizeLink: function () { @@ -1548,6 +1549,7 @@ LinkeditorLinks.prototype = { preview: function() { let el = $("[data-action='links.preview']") el.toggleClass("active") + if(el.hasClass("active")) { this.setPreview() } else { @@ -1555,9 +1557,7 @@ LinkeditorLinks.prototype = { } }, - setPreview: function(p) { - const links = this.getLinksOfPage(1) - + loadFontSize: function() { $.ajax({ url: '/fluidbook-publication/' + FLUIDBOOK_DATA.id + '/generatefont', type: 'post', @@ -1570,10 +1570,13 @@ LinkeditorLinks.prototype = { $("head").append("") for(let k in FONT_SIZE) { $("#extra-font-face").append("@font-face{font-family:"+FONT_SIZE[k]['font']+";src:url('/fluidbook-publication/"+ FLUIDBOOK_DATA.id +"/edit/links/assets/"+FONT_SIZE[k]['hash']+"' ) format('woff');}") - $("[data-id-preview=" + k + "]").text(links[k].to).attr('style', FONT_SIZE[k]['inline']) } } }); + }, + + setPreview: function(p) { + const links = this.getLinksOfPage(this.linkeditor.currentPage) const imageFormat = FLUIDBOOK_DATA.settings.imageFormat @@ -1598,7 +1601,7 @@ LinkeditorLinks.prototype = { /*gsapConfig.forEach(function(conf) { gsap.to($("[data-id-preview="+linkData.uid+"]"),conf) })*/ - } else if(linkData.type === '15' || /\.([^.]+[jpg|png|svg|webp|avif])$/.exec(linkData.image)) { + } else if(linkData.type === '15' || /\.(jpg|png|svg|webp|avif)$/.exec(linkData.image)) { let imgUrl = linkData.type === '15' ? ASSETS['uid_'+linkData.uid]['url'] : "/fluidbook-publication/"+FLUIDBOOK_DATA.id +"/edit/links/assets/"+linkData.image let img = "" $("[data-id-preview="+linkData.uid+"]").append(img) @@ -1610,6 +1613,39 @@ LinkeditorLinks.prototype = { 'background-size': '100% 100%', 'background-position': '0 0', }) + } else if(linkData.type === '35') { + this.setFontSize(linkData) + $("[data-id-preview=" + linkData.uid + "]").text(linkData.to).css({ + 'font-family': FONT_SIZE[linkData.uid]['font'], + 'color': linkData.extra, + }) + } + } + }, + + setFontSize: function(link) { + var pw = FLUIDBOOK_DATA.settings.width; + var ph = FLUIDBOOK_DATA.settings.height; + + var fs = link.height * (1 * Math.min((567 / pw), (709 / ph) )); + + $("[data-id-preview=" + link.uid + "]").text(link.to).css({ + 'font-size': Math.round((fs / FONT_SIZE[link.uid].capHeight))+'px', + 'line-height': FONT_SIZE[link.uid]['capHeight'] + }) + }, + + updateColor: function() { + + } + + updateFontSize: function(zoom) { + for(let k in LINKS) { + if(LINKS[k].type === '35') { + $("[data-id-preview="+LINKS[k].uid+"]").css({ + transform: "scale("+zoom+")", + 'transform-origin': 'left top' + }) } } }, diff --git a/resources/linkeditor/js/linkeditor.zoom.js b/resources/linkeditor/js/linkeditor.zoom.js index 57dc66f92..a0a450a8a 100644 --- a/resources/linkeditor/js/linkeditor.zoom.js +++ b/resources/linkeditor/js/linkeditor.zoom.js @@ -128,6 +128,7 @@ LinkeditorZoom.prototype = { if (this.zoom === 1) { $this.resetZoomDrag(); } + $this.linkeditor.links.updateFontSize($this.zoom) $this.linkeditor.rulers.updateRulers(); }, 10); return true; diff --git a/resources/views/fluidbook_publication/link_editor.blade.php b/resources/views/fluidbook_publication/link_editor.blade.php index ca26ab7cf..91054e617 100644 --- a/resources/views/fluidbook_publication/link_editor.blade.php +++ b/resources/views/fluidbook_publication/link_editor.blade.php @@ -403,6 +403,7 @@ var CAN_CONTAIN_LINKS = @json($canContainLinks); var DEPTH = @json($depths); var FONT_SIZE = @json([]); + var ZOOM = null;