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); + }); + } }