From 1b89d1d072f590fd8d27b80d3fe84ccc79b89608 Mon Sep 17 00:00:00 2001 From: Ro Date: Sat, 25 Mar 2023 16:44:35 -0700 Subject: [PATCH] Restyled Settings UI Rebuilt the css for the Settings UI, which also led to some changed in the FilesAPI so it knows what to do with specific targets. There's still some additional styling needed to polish it, but the core structure is in place so now it can just be tweaked. The controller for this page was adjusted as needed. Also moved the settings sub nav convtrols to the header menu since it's sticky now. --- brain/api/v1/FilesAPI.php | 22 +- brain/views/dash/partials/navigation.twig | 5 + .../views/dash/partials/submenu_settings.twig | 11 + brain/views/dash/settings.twig | 221 +++----- public/assets/css/dash/frame.css | 19 + public/assets/css/dash/settings.css | 160 ++++++ public/assets/css/dash/start.css | 1 + public/assets/scripts/Start.js | 24 +- src/com/controllers/PageEditor.js | 1 - src/com/controllers/SettingsIndex.js | 503 +++++++++--------- 10 files changed, 560 insertions(+), 407 deletions(-) create mode 100644 brain/views/dash/partials/submenu_settings.twig create mode 100644 public/assets/css/dash/settings.css diff --git a/brain/api/v1/FilesAPI.php b/brain/api/v1/FilesAPI.php index af13713..01962a0 100644 --- a/brain/api/v1/FilesAPI.php +++ b/brain/api/v1/FilesAPI.php @@ -3,6 +3,8 @@ namespace brain\api\v1; use brain\utility\FileUploader; +use brain\data\Settings; +use brain\data\Member; class FilesAPI { @@ -13,17 +15,35 @@ class FilesAPI public static function uploadFiles($request, $type = null) { $upload = $request->getUploadedFiles(); //grab uploaded files + $options = $request->getParsedBody(); $file = $upload['upload_files'][0]; //front end sends one by one for progress tracking, so grab first $type = $file->getClientMediaType(); $filesPath = ''; $path = date('Y') . '/' . date('m'); $response = []; + switch ($type) { case 'image/jpeg': case 'image/png': case 'image/gif': case 'image/svg': - $filesPath = '/assets/images/blog/' . $path . '/'; + if (isset($options["source"])) { + if ($options["source"] == "avatar-upload") { + $filesPath = '/assets/images/user/' . $path . '/'; + Member::updateData( + 'avi', + $filesPath . $file->getClientFileName() + ); + } else { + $filesPath = '/assets/images/user/' . $path . '/'; + Settings::updateGlobalData( + 'background', + $filesPath . '/' . $file->getClientFileName() + ); + } + } else { + $filesPath = '/assets/images/blog/' . $path . '/'; + } break; case 'video/mp4': diff --git a/brain/views/dash/partials/navigation.twig b/brain/views/dash/partials/navigation.twig index b038425..f6853f1 100644 --- a/brain/views/dash/partials/navigation.twig +++ b/brain/views/dash/partials/navigation.twig @@ -1,4 +1,9 @@
+ {% if title == "Dash Settings" %} + {% apply spaceless %} + {{ include("dash/partials/submenu_settings.twig") }} + {% endapply %} + {% endif %} + + +
diff --git a/brain/views/dash/settings.twig b/brain/views/dash/settings.twig index c67b3b1..182f440 100644 --- a/brain/views/dash/settings.twig +++ b/brain/views/dash/settings.twig @@ -5,112 +5,66 @@ {% endblock %} {% block stylesheets %} - + {% endblock %} {% block mainContent %} -
-
- - - -
-
-
-
- -
-
-
-
-
-
- {% if lastBackup != '' %} -
- LAST BACK UP - {{ lastBackup }}
-
- {% else %} - span No back ups. Frowny face. - {% endif %} -
+
+
+ {% if lastBackup != '' %} + LAST BACK UP
+ {{ lastBackup }}
+ {% else %} + span No back ups. Frowny face. + {% endif %}
- -
- -
- -
- {% endblock %} + + + {% endblock %} diff --git a/public/assets/css/dash/frame.css b/public/assets/css/dash/frame.css index 0b52d07..b963f65 100644 --- a/public/assets/css/dash/frame.css +++ b/public/assets/css/dash/frame.css @@ -90,6 +90,25 @@ header > nav > div[role="nav-right"] button { margin-left: 5px; } +header > nav > div[role="nav-right"] div[role="submenu"] { + display: inline; +} + +header > nav > div[role="nav-right"] div[role="submenu"] button { + background: var(--primary); + color: var(--white); + font-size: 0.8em; +} + +header + > nav + > div[role="nav-right"] + div[role="submenu"] + button[data-render="true"] { + background: var(--tertiary); + color: var(--primary); +} + section[role="login"] { margin: 15% auto; padding: 10px; diff --git a/public/assets/css/dash/settings.css b/public/assets/css/dash/settings.css new file mode 100644 index 0000000..9ebd677 --- /dev/null +++ b/public/assets/css/dash/settings.css @@ -0,0 +1,160 @@ +article[role="settings"] { + margin: 100px auto; + width: 100%; + max-width: 900px; +} + +article[role="settings"] h1 { + color: var(--white); +} + +section label { + background: var(--primary); + color: var(--white); + padding: 3px; + border-radius: 3px; + margin-bottom: 10px; + display: inline-block; +} + +section[role="member-settings"], +section[role="site-settings"], +section[role="data-settings"], +section[role="backup-settings"] { + display: grid; + grid-template-columns: 1fr 1fr 1fr; + gap: 10px; + width: 100%; + max-width: 900px; + margin: 10px auto; + background: var(--white); +} + +section[role="member-settings"] div { + width: 98%; + padding: 5px; +} + +section[role="member-settings"] div input[type="file"] { + display: none; + visibility: hidden; +} + +section[role="member-settings"] div input[type="text"] { + width: 96%; + height: 30px; + padding: 5px; + margin-bottom: 10px; +} + +section[role="member-settings"] div textarea { + background: var(--primary); + width: 91%; + padding: 5px; + height: 79%; +} + +section[role="member-settings"] div:nth-child(1) { + grid-column: 1/2; +} + +section[role="member-settings"] div:nth-child(2) { + grid-column: 2/4; +} + +section[role="member-settings"] div img { + width: 100%; +} + +section[role="site-settings"] > div { + padding: 10px; +} + +section[role="site-settings"] > div[role="features"] button { + width: 100%; + text-align: left; +} + +section[role="site-settings"] > div[role="features"] button > span { + font-size: 0.8em; + display: inline; + top: -10px; + position: relative; +} + +section[role="site-settings"] + > div[role="features"] + button[data-enabled="true"] { + color: var(--white); +} + +section[role="site-settings"] + > div[role="features"] + button[data-enabled="false"] { + color: var(--primary); + background: var(--secondary); +} + +section[role="site-settings"] > div[role="theme"] a[data-enabled="true"] { + color: var(--white); + background: var(--highlight); + display: block; + border-radius: 3px; + padding: 3px; +} + +section[role="site-settings"] > div[role="theme"] a[data-enabled="false"] { + color: var(--primary); + background: var(--secondary); + display: block; + border-radius: 3px; + padding: 3px; +} + +section[role="site-settings"] > div[role="mail"] a { + margin-right: 3px; +} + +section[role="site-settings"] > div[role="mail"] a[data-enabled="true"] { + color: var(--primary); + font-weight: bold; + text-decoration: underline; +} + +section[role="site-settings"] > div[role="mail"] div[data-enabled="false"] { + visibility: hidden; + display: none; +} + +section[role="site-settings"] > div[role="mail"] input { + width: 96%; + height: 30px; + padding: 5px; + margin-bottom: 10px; +} + +section[role="site-settings"] > div[role="mail"] button { + width: 96%; + height: 30px; + padding: 5px; +} + +section[role="data-settings"] div { + padding: 10px; +} + +section[role="data-settings"] div:nth-child(1) { + grid-column: 1/3; + word-wrap: break-word; +} + +section[role="data-settings"] button { + width: 96%; + height: 30px; + padding: 5px; +} + +section[role="data-settings"] a { + font-weight: bold; + text-decoration: underline; +} diff --git a/public/assets/css/dash/start.css b/public/assets/css/dash/start.css index 88b05da..1e57f42 100644 --- a/public/assets/css/dash/start.css +++ b/public/assets/css/dash/start.css @@ -8,3 +8,4 @@ @import url("book.css"); @import url("page-editor.css"); @import url("page-editor-highlights.css"); +@import url("settings.css"); diff --git a/public/assets/scripts/Start.js b/public/assets/scripts/Start.js index fda7840..28244f8 100644 --- a/public/assets/scripts/Start.js +++ b/public/assets/scripts/Start.js @@ -7120,7 +7120,6 @@ class $371d2518d50c1748$export$2e2bcd8739ae039 { upload.enctype = "multipart/form-data"; upload.append("upload_files[]", files[0], files[0].name); this.mm.filesUpload(files[0].type, upload).then((result)=>{ - console.log("RESULT".result); if (result.message == "File Uploaded. Great!") { self.editor.notify($0d6abf40542266b3$export$80082ca64f03d0e9, result.filePath); $371d2518d50c1748$var$notify.alert("Image Added to Entry", true); @@ -7338,7 +7337,6 @@ class $b33d1a942dce8554$export$2e2bcd8739ae039 { document.getElementById("publish-pages").addEventListener("click", (e)=>this.handlePublished(e)); //handle page render on save toggle document.getElementById("render-toggle").addEventListener("click", (e)=>this.toggleRender(e)); - document.getElementById("render-toggle-icon").addEventListener("click", (e)=>this.toggleRender(e)); //handle theme toggle let themeBtns = document.querySelectorAll(".theme-select"); for(var i = 0, length = themeBtns.length; i < length; i++)themeBtns[i].addEventListener("click", (e)=>this.handleThemes(e)); @@ -7348,10 +7346,10 @@ class $b33d1a942dce8554$export$2e2bcd8739ae039 { //handle backup from settings [disabled] document.getElementById("create-backup").addEventListener("click", (e)=>this.handleBackup(e)); /* - document - .getElementById("reindex-pages") - .addEventListener("click", (e) => this.handleReindex(e)); - */ } + document + .getElementById("reindex-pages") + .addEventListener("click", (e) => this.handleReindex(e)); + */ } //-------------------------- // event handlers //-------------------------- @@ -7406,13 +7404,19 @@ class $b33d1a942dce8554$export$2e2bcd8739ae039 { } handleImageUpload(type, files) { $b33d1a942dce8554$var$notify.alert("Uploading Image... ", null); - this.mm.imageUpload(type, files).then((r)=>{ - if (r.type == $995f55a4eccd256d$export$9b65f586914397ef) { + let self = this; + $b33d1a942dce8554$var$notify.alert("Uploading Image", null); + let upload = new FormData(); + upload.enctype = "multipart/form-data"; + upload.append("source", type); + upload.append("upload_files[]", files[0], files[0].name); + this.mm.filesUpload(files[0].type, upload).then((r)=>{ + if (type == "avatar-upload") { $b33d1a942dce8554$var$notify.alert(r.message, true); - document.getElementById("avatar").src = r.url; + document.getElementById("avatar").src = r.filePath; } else { $b33d1a942dce8554$var$notify.alert(r.message, true); - document.getElementById("background").src = r.url; + document.getElementById("background").src = r.filePath; } }).catch(()=>{ //console.log(err) diff --git a/src/com/controllers/PageEditor.js b/src/com/controllers/PageEditor.js index 098fc88..bf3a7e2 100644 --- a/src/com/controllers/PageEditor.js +++ b/src/com/controllers/PageEditor.js @@ -211,7 +211,6 @@ export default class PostEditor { this.mm .filesUpload(files[0].type, upload) .then(result => { - console.log('RESULT'.result); if (result.message == 'File Uploaded. Great!') { self.editor.notify( EditorEvent.EDITOR_UPLOAD_POST_IMAGE, diff --git a/src/com/controllers/SettingsIndex.js b/src/com/controllers/SettingsIndex.js index cacdf60..619e18e 100644 --- a/src/com/controllers/SettingsIndex.js +++ b/src/com/controllers/SettingsIndex.js @@ -1,265 +1,266 @@ -import SettingsActions from "../actions/SettingsActions"; -import Maintenance from "./MaintenanceManager"; -import FipamoAdminAPI, { - TASK_SYNC_SETTNIGS -} from "../../libraries/FipamoAdminAPI"; -import * as DataEvent from "../../../src/com/events/DataEvent"; -import Mailer from "../actions/Mailer"; -import Notifications from "../ui/Notifications"; +import SettingsActions from '../actions/SettingsActions'; +import Maintenance from './MaintenanceManager'; +import FipamoAdminAPI, { TASK_SYNC_SETTNIGS } from '../../libraries/FipamoAdminAPI'; +import * as DataEvent from '../../../src/com/events/DataEvent'; +import Mailer from '../actions/Mailer'; +import Notifications from '../ui/Notifications'; const notify = new Notifications(); export default class SettingsIndex { - //-------------------------- - // constructor - //-------------------------- - constructor() { - this.processing = false; - this.start(); - this.admin = new FipamoAdminAPI(null); - this.mm = new Maintenance(null, null); - } - //-------------------------- - // methods - //-------------------------- - start() { - let self = this; - //handle save button - document.getElementById("save-toggle").addEventListener("click", () => - new SettingsActions() - .getInfo() - .then((data) => { - notify.alert("Saving Settings", null); - self.admin.sync(TASK_SYNC_SETTNIGS, data).then((r) => { - if (r.type == DataEvent.SETTINGS_UPDATED) { - notify.alert(r.message, true); - } else { - notify.alert(r.message, true); - } - }); - }) - .catch(() => { - //console.log(err); - }) - ); - //handle set up image uploads - document.getElementById("avatar").addEventListener("click", () => { - document.getElementById("avatar-upload").click(); - }); - document.getElementById("background").addEventListener("click", () => { - document.getElementById("background-upload").click(); - }); - document.getElementById("avatar-upload").addEventListener( - "change", - (e) => { - self.handleImageUpload(e.target.id, e.target.files); - }, - false - ); - document.getElementById("background-upload").addEventListener( - "change", - (e) => { - self.handleImageUpload(e.target.id, e.target.files); - }, - false - ); - //handle api access toggle - var apiButton = document.getElementById("api-access-toggle"); - var apiStatus = document.getElementById("api-status"); - apiButton.addEventListener("click", (e) => { - e.stopPropagation(); - e.preventDefault(); - if (apiButton.getAttribute("data-enabled") == "false") { - apiButton.setAttribute("data-enabled", "true"); - apiStatus.innerHTML = "EXTERNAL API ACCESS IS ENABLED"; - } else { - apiButton.setAttribute("data-enabled", "false"); - apiStatus.innerHTML = "EXTERNAL API ACCESS IS NOT ENABLED"; - } - }); + //-------------------------- + // constructor + //-------------------------- + constructor() { + this.processing = false; + this.start(); + this.admin = new FipamoAdminAPI(null); + this.mm = new Maintenance(null, null); + } + //-------------------------- + // methods + //-------------------------- + start() { + let self = this; + //handle save button + document.getElementById('save-toggle').addEventListener('click', () => + new SettingsActions() + .getInfo() + .then(data => { + notify.alert('Saving Settings', null); + self.admin.sync(TASK_SYNC_SETTNIGS, data).then(r => { + if (r.type == DataEvent.SETTINGS_UPDATED) { + notify.alert(r.message, true); + } else { + notify.alert(r.message, true); + } + }); + }) + .catch(() => { + //console.log(err); + }) + ); + //handle set up image uploads + document.getElementById('avatar').addEventListener('click', () => { + document.getElementById('avatar-upload').click(); + }); + document.getElementById('background').addEventListener('click', () => { + document.getElementById('background-upload').click(); + }); + document.getElementById('avatar-upload').addEventListener( + 'change', + e => { + self.handleImageUpload(e.target.id, e.target.files); + }, + false + ); + document.getElementById('background-upload').addEventListener( + 'change', + e => { + self.handleImageUpload(e.target.id, e.target.files); + }, + false + ); + //handle api access toggle + var apiButton = document.getElementById('api-access-toggle'); + var apiStatus = document.getElementById('api-status'); + apiButton.addEventListener('click', e => { + e.stopPropagation(); + e.preventDefault(); + if (apiButton.getAttribute('data-enabled') == 'false') { + apiButton.setAttribute('data-enabled', 'true'); + apiStatus.innerHTML = 'EXTERNAL API ACCESS IS ENABLED'; + } else { + apiButton.setAttribute('data-enabled', 'false'); + apiStatus.innerHTML = 'EXTERNAL API ACCESS IS NOT ENABLED'; + } + }); - //handle dynamic page rendering - var dynamicRenderButton = document.getElementById("dynamic-render-toggle"); - var dynamicRenderStatus = document.getElementById("dynamic-render-status"); - dynamicRenderButton.addEventListener("click", (e) => { - e.stopPropagation(); - e.preventDefault(); - if (dynamicRenderButton.getAttribute("data-enabled") == "false") { - dynamicRenderButton.setAttribute("data-enabled", "true"); - dynamicRenderStatus.innerHTML = "DYNAMIC PAGE RENDERING"; - } else { - dynamicRenderButton.setAttribute("data-enabled", "false"); - dynamicRenderStatus.innerHTML = "STATIC PAGE RENDERING"; - } - }); + //handle dynamic page rendering + var dynamicRenderButton = document.getElementById('dynamic-render-toggle'); + var dynamicRenderStatus = document.getElementById('dynamic-render-status'); + dynamicRenderButton.addEventListener('click', e => { + e.stopPropagation(); + e.preventDefault(); + if (dynamicRenderButton.getAttribute('data-enabled') == 'false') { + dynamicRenderButton.setAttribute('data-enabled', 'true'); + dynamicRenderStatus.innerHTML = 'DYNAMIC PAGE RENDERING'; + } else { + dynamicRenderButton.setAttribute('data-enabled', 'false'); + dynamicRenderStatus.innerHTML = 'STATIC PAGE RENDERING'; + } + }); - document - .getElementById("send-mail") - .addEventListener("click", (e) => this.handleMailer(e)); - document - .getElementById("publish-pages") - .addEventListener("click", (e) => this.handlePublished(e)); - //handle page render on save toggle - document - .getElementById("render-toggle") - .addEventListener("click", (e) => this.toggleRender(e)); - document - .getElementById("render-toggle-icon") - .addEventListener("click", (e) => this.toggleRender(e)); - //handle theme toggle - let themeBtns = document.querySelectorAll(".theme-select"); - for (var i = 0, length = themeBtns.length; i < length; i++) { - themeBtns[i].addEventListener("click", (e) => this.handleThemes(e)); - } - //handle mail options - let mailBtn = document.querySelectorAll(".mail-option"); - for (i = 0, length = mailBtn.length; i < length; i++) { - mailBtn[i].addEventListener("click", (e) => this.handleMailOptions(e)); - } - //handle backup from settings [disabled] + document + .getElementById('send-mail') + .addEventListener('click', e => this.handleMailer(e)); + document + .getElementById('publish-pages') + .addEventListener('click', e => this.handlePublished(e)); + //handle page render on save toggle + document + .getElementById('render-toggle') + .addEventListener('click', e => this.toggleRender(e)); + //handle theme toggle + let themeBtns = document.querySelectorAll('.theme-select'); + for (var i = 0, length = themeBtns.length; i < length; i++) { + themeBtns[i].addEventListener('click', e => this.handleThemes(e)); + } + //handle mail options + let mailBtn = document.querySelectorAll('.mail-option'); + for (i = 0, length = mailBtn.length; i < length; i++) { + mailBtn[i].addEventListener('click', e => this.handleMailOptions(e)); + } + //handle backup from settings [disabled] - document - .getElementById("create-backup") - .addEventListener("click", (e) => this.handleBackup(e)); + document + .getElementById('create-backup') + .addEventListener('click', e => this.handleBackup(e)); - /* + /* document .getElementById("reindex-pages") .addEventListener("click", (e) => this.handleReindex(e)); */ - } - //-------------------------- - // event handlers - //-------------------------- - togglePrivacy(e) { - e.stopPropagation(); - e.preventDefault(); - if (e.target.getAttribute("data-private") == "false") { - e.target.setAttribute("data-private", "true"); - e.target.innerHTML = "SITE IS PUBLIC"; - } else { - e.target.setAttribute("data-private", "false"); - e.target.innerHTML = "SITE IS PRIVATE"; - } - } - toggleRender(e) { - e.stopPropagation(); - e.preventDefault(); - let button = document.getElementById("render-toggle"); - if (button.getAttribute("data-render") == "false") { - button.setAttribute("data-render", "true"); - //e.target.innerHTML = 'RENDER PAGES ON SAVE'; - } else { - button.setAttribute("data-render", "false"); - //e.target.innerHTML = "DON'T RENDER PAGES ON SAVE"; - } - } - handleMailer() { - let mailer = new Mailer(); - mailer.testMail(); - //mailer.sendMail(); - } - handleThemes(e) { - e.stopPropagation(); - e.preventDefault(); - let themes = document.querySelectorAll(".theme-select"); - for (var i = 0, length = themes.length; i < length; i++) { - e.target.id == themes[i].id - ? themes[i].setAttribute("data-enabled", "true") - : themes[i].setAttribute("data-enabled", "false"); - } - } - handleMailOptions(e) { - e.preventDefault(); - e.stopPropagation(); - let smtp = document.getElementById("mail-smtp"); - let mailgun = document.getElementById("mail-mg"); - let mail = document.querySelectorAll(".mail-option"); - for (var i = 0, length = mail.length; i < length; i++) { - if (e.target.id == mail[i].id) { - mail[i].setAttribute("data-enabled", "true"); - if (e.target.id == "option-smtp") { - smtp.setAttribute("data-enabled", "true"); - mailgun.setAttribute("data-enabled", "false"); - } else if (e.target.id == "option-none") { - smtp.setAttribute("data-enabled", "false"); - mailgun.setAttribute("data-enabled", "false"); - } else { - smtp.setAttribute("data-enabled", "false"); - mailgun.setAttribute("data-enabled", "true"); - } - } else { - mail[i].setAttribute("data-enabled", "false"); - } - } - } - handleImageUpload(type, files) { - notify.alert("Uploading Image... ", null); + } + //-------------------------- + // event handlers + //-------------------------- + togglePrivacy(e) { + e.stopPropagation(); + e.preventDefault(); + if (e.target.getAttribute('data-private') == 'false') { + e.target.setAttribute('data-private', 'true'); + e.target.innerHTML = 'SITE IS PUBLIC'; + } else { + e.target.setAttribute('data-private', 'false'); + e.target.innerHTML = 'SITE IS PRIVATE'; + } + } + toggleRender(e) { + e.stopPropagation(); + e.preventDefault(); + let button = document.getElementById('render-toggle'); + if (button.getAttribute('data-render') == 'false') { + button.setAttribute('data-render', 'true'); + //e.target.innerHTML = 'RENDER PAGES ON SAVE'; + } else { + button.setAttribute('data-render', 'false'); + //e.target.innerHTML = "DON'T RENDER PAGES ON SAVE"; + } + } + handleMailer() { + let mailer = new Mailer(); + mailer.testMail(); + //mailer.sendMail(); + } + handleThemes(e) { + e.stopPropagation(); + e.preventDefault(); + let themes = document.querySelectorAll('.theme-select'); + for (var i = 0, length = themes.length; i < length; i++) { + e.target.id == themes[i].id + ? themes[i].setAttribute('data-enabled', 'true') + : themes[i].setAttribute('data-enabled', 'false'); + } + } + handleMailOptions(e) { + e.preventDefault(); + e.stopPropagation(); + let smtp = document.getElementById('mail-smtp'); + let mailgun = document.getElementById('mail-mg'); + let mail = document.querySelectorAll('.mail-option'); + for (var i = 0, length = mail.length; i < length; i++) { + if (e.target.id == mail[i].id) { + mail[i].setAttribute('data-enabled', 'true'); + if (e.target.id == 'option-smtp') { + smtp.setAttribute('data-enabled', 'true'); + mailgun.setAttribute('data-enabled', 'false'); + } else if (e.target.id == 'option-none') { + smtp.setAttribute('data-enabled', 'false'); + mailgun.setAttribute('data-enabled', 'false'); + } else { + smtp.setAttribute('data-enabled', 'false'); + mailgun.setAttribute('data-enabled', 'true'); + } + } else { + mail[i].setAttribute('data-enabled', 'false'); + } + } + } + handleImageUpload(type, files) { + notify.alert('Uploading Image... ', null); + let self = this; + notify.alert('Uploading Image', null); + let upload = new FormData(); + upload.enctype = 'multipart/form-data'; + upload.append('source', type); + upload.append('upload_files[]', files[0], files[0].name); - this.mm - .imageUpload(type, files) - .then((r) => { - if (r.type == DataEvent.AVATAR_UPLOADED) { - notify.alert(r.message, true); - document.getElementById("avatar").src = r.url; - } else { - notify.alert(r.message, true); - document.getElementById("background").src = r.url; - } - }) - .catch(() => { - //console.log(err) - }); - } - handlePublished(e) { - if (this.processing) return; - e.preventDefault(); - e.stopPropagation(); - let self = this; - let task = { task: "PUBLISH_ALL" }; - this.processing = true; - notify.alert("Publishing site...", null); - this.admin - .publish(task) - .then((r) => { - self.processing = false; - notify.alert(r.message, true); - }) - .catch((err) => { - self.processing = false; - notify.alert(err, false); - }); - } + this.mm + .filesUpload(files[0].type, upload) + .then(r => { + if (type == 'avatar-upload') { + notify.alert(r.message, true); + document.getElementById('avatar').src = r.filePath; + } else { + notify.alert(r.message, true); + document.getElementById('background').src = r.filePath; + } + }) + .catch(() => { + //console.log(err) + }); + } + handlePublished(e) { + if (this.processing) return; + e.preventDefault(); + e.stopPropagation(); + let self = this; + let task = { task: 'PUBLISH_ALL' }; + this.processing = true; + notify.alert('Publishing site...', null); + this.admin + .publish(task) + .then(r => { + self.processing = false; + notify.alert(r.message, true); + }) + .catch(err => { + self.processing = false; + notify.alert(err, false); + }); + } - handleBackup(e) { - e.preventDefault(); - e.stopPropagation(); - notify.alert("Creating backup", null); - this.mm - .backup() - .then((r) => { - notify.alert(r.message, true); - }) - .catch((err) => { - notify.alert(err, false); - }); - } + handleBackup(e) { + e.preventDefault(); + e.stopPropagation(); + notify.alert('Creating backup', null); + this.mm + .backup() + .then(r => { + notify.alert(r.message, true); + }) + .catch(err => { + notify.alert(err, false); + }); + } - handleReindex(e) { - if (this.processing) return; - let self = this; - e.preventDefault(); - e.stopPropagation(); - let task = { task: "cleanup pages indexes" }; - this.processing = true; - notify.alert("Cleaning up page indexes", null); - this.admin - .handleReindex(task) - .then((r) => { - self.processing = false; - notify.alert(r.message, true); - }) - .catch((err) => { - self.processing = false; - notify.alert(err, false); - }); - } + handleReindex(e) { + if (this.processing) return; + let self = this; + e.preventDefault(); + e.stopPropagation(); + let task = { task: 'cleanup pages indexes' }; + this.processing = true; + notify.alert('Cleaning up page indexes', null); + this.admin + .handleReindex(task) + .then(r => { + self.processing = false; + notify.alert(r.message, true); + }) + .catch(err => { + self.processing = false; + notify.alert(err, false); + }); + } }