From 068e786fe64c683253fc59492f77172fe16367ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Loguercio?= Date: Mon, 1 Aug 2016 14:05:55 -0500 Subject: [PATCH] Fix save badge button and add button to set the badge to the form - Refs #8364 --- main/admin/skill_badge_create.php | 13 ++- .../badge-studio/media/js/studio.js | 97 +------------------ main/template/default/skill/badge_create.tpl | 37 ++----- 3 files changed, 24 insertions(+), 123 deletions(-) diff --git a/main/admin/skill_badge_create.php b/main/admin/skill_badge_create.php index 346b691b47..82e2968f0b 100644 --- a/main/admin/skill_badge_create.php +++ b/main/admin/skill_badge_create.php @@ -43,7 +43,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { 'id' => $skillId ); - if (isset($_FILES['image']) && $_FILES['image']['error'] == 0) { + if ((isset($_FILES['image']) && $_FILES['image']['error'] == 0) || !empty($_POST['badge_studio_image'])) { $dirPermissions = api_get_permissions_for_new_directories(); $fileName = sha1($_POST['name']); @@ -68,13 +68,20 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $skillImagePath = sprintf("%s%s.png", $badgePath, $fileName); - $skillImage = new Image($_FILES['image']['tmp_name']); + if (!empty($_POST['badge_studio_image'])) { + $badgeImage = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $_POST['badge_studio_image'])); + file_put_contents($skillImagePath, $badgeImage); + $skillImage = new Image($skillImagePath); + } else { + $skillImage = new Image($_FILES['image']['tmp_name']); + } + $skillImage->send_image($skillImagePath, -1, 'png'); $skillThumbPath = sprintf("%s%s-small.png", $badgePath, $fileName); $skillImageThumb = new Image($skillImagePath); - $skillImageThumb->resize(ICON_SIZE_BIG, ICON_SIZE_BIG); + $skillImageThumb->resize(ICON_SIZE_BIG); $skillImageThumb->send_image($skillThumbPath); $params['icon'] = sprintf("%s.png", $fileName); diff --git a/main/inc/lib/javascript/badge-studio/media/js/studio.js b/main/inc/lib/javascript/badge-studio/media/js/studio.js index 282c62b087..3e153cea6f 100644 --- a/main/inc/lib/javascript/badge-studio/media/js/studio.js +++ b/main/inc/lib/javascript/badge-studio/media/js/studio.js @@ -17,9 +17,6 @@ var $glyphSelector; var $glyphSelectorButton; - var $settings; - var $settingsButton; - window.addEventListener('load', function init () { $badgeRaster = new Image(); $badgeRaster.id = 'raster'; @@ -57,20 +54,17 @@ * */ function initStudio () { - initSettings(); initGlyphSelector(); document.addEventListener('keydown', function(event) { if (event.keyCode === 27) { // Escape - if ($settings && $settings.offsetWidth) - closeSettings(); - else if ($glyphSelector && $glyphSelector.offsetWidth) - closeGlyphSelector(); - } + if ($glyphSelector && $glyphSelector.offsetWidth) + closeGlyphSelector(); + } }, true); document.addEventListener('focus', function(event) { - [$settings, $glyphSelector].forEach(function ($overlay) { + [$glyphSelector].forEach(function ($overlay) { if ($overlay && $overlay.offsetWidth && !$overlay.contains(event.target)) { event.stopPropagation(); $overlay.focus(); @@ -79,89 +73,6 @@ }, true); } - // ==[ Settings ]============================================================= - - /** - * - */ - function initSettings () { - if ($settings) - return false; - - /**$settingsButton = document.createElement('button'); - $settingsButton.className = 'settings fa fa-cog'; - $settingsButton.title = 'Settings'; - $settingsButton.addEventListener('click', openSettings); - $studio.appendChild($settingsButton);*/ - - $settings = importTemplate('settings').querySelector('#settings'); - $settings.querySelector('.header').appendChild(makeCloseButton(closeSettings)); - $studio.appendChild($settings); - - $settings.addEventListener('change', function (event) { - var $target = event.target; - handleUpdate($target.name, $target.value); - }); - - if (!window.localStorage) - return; - - var $$options = $settings.querySelectorAll('select'); - for (var i = 0, l = $$options.length; i < l; i++) { - var $option = $$options[i]; - var name = $option.name; - var value = localStorage.getItem($option.name); - for (var j = 0; j < $option.length; j++) { - if ($option[j].value === value) { - $option.selectedIndex = j; - handleUpdate(name, value); - break; - } - } - } - - function handleUpdate (name, value) { - switch (name) { - case 'display': - document.body.className = value; - break; - case 'badge-size': - var scale = parseFloat(value); - ['WebkitTransform', 'MozTransform', 'transform'].forEach(function(transform) { - $badgeRaster.style[transform] = 'scale(' + scale + ')'; - }); - break; - default: - name = null; - } - - if (name && window.localStorage) - localStorage.setItem(name, value); - } - } - - /** - * - */ - function openSettings () { - if (!$settings) - initSettings(); - - $settings.classList.remove('hidden'); - $settings.focus(); - } - - /** - * - */ - function closeSettings () { - if (!$settings) - return; - - $settings.classList.add('hidden'); - $settingsButton.focus(); - } - // ==[ Glyph Selector ]======================================================= /** diff --git a/main/template/default/skill/badge_create.tpl b/main/template/default/skill/badge_create.tpl index 5f413fb673..199467334b 100644 --- a/main/template/default/skill/badge_create.tpl +++ b/main/template/default/skill/badge_create.tpl @@ -94,7 +94,7 @@

Badge Studio

-
+

@@ -654,31 +654,13 @@

- -
-
- +