From 37120efe18d0f28a171e2ee8f604605228d9b038 Mon Sep 17 00:00:00 2001 From: ro Date: Tue, 25 Jun 2024 15:33:42 -0600 Subject: [PATCH] asset moving for themes fixed, settings save patch When testing themes, the script wasn't moving all assets that were in subdirectories of the theme css folder, so that's been fixed so it moves everything when testing a theme and rendering the site there was also an issue with saving settings options because the script was referencing email data that was no longer being provided from the front end, so it was erroring out trying to save it. those references have been removed so it's smooth sailing --- app/Helpers/StringHelpers.php | 19 ++++++++++++++++ app/Http/Controllers/ThemeController.php | 9 ++++---- app/Repositories/MemberRepository.php | 10 +++++---- app/Services/Assets/AssetService.php | 8 ++++++- app/Services/Data/SettingsService.php | 10 +++------ .../dash/app/actions/SettingsActions.js | 22 +++++-------------- 6 files changed, 45 insertions(+), 33 deletions(-) diff --git a/app/Helpers/StringHelpers.php b/app/Helpers/StringHelpers.php index b4f84ed..da245e0 100644 --- a/app/Helpers/StringHelpers.php +++ b/app/Helpers/StringHelpers.php @@ -55,3 +55,22 @@ function randomString(int $length) return $string; } + +function delete_directory($dirPath) +{ + if (is_dir($dirPath)) { + $objects = new DirectoryIterator($dirPath); + foreach ($objects as $object) { + if (!$object->isDot()) { + if ($object->isDir()) { + delete_directory($object->getPathname()); + } else { + unlink($object->getPathname()); + } + } + } + rmdir($dirPath); + } else { + throw new Exception(__FUNCTION__ . '(dirPath): dirPath is not a directory!'); + } +} diff --git a/app/Http/Controllers/ThemeController.php b/app/Http/Controllers/ThemeController.php index 94d0e13..aa038d9 100644 --- a/app/Http/Controllers/ThemeController.php +++ b/app/Http/Controllers/ThemeController.php @@ -56,8 +56,9 @@ class ThemeController extends Controller $view == 'index' ? $template = $currentTheme . '.index' : $template = $currentTheme . '.page'; - $page = $this->pages->getById('F4429D34-25E7-4CA9-9B0A-742810277505'); - $pageData = $this->sort->page($page); + //TODO: Get rid of hard link page IDS + $page = $this->pages->getById('F791DED9-0359-4662-8976-4C474803D2C6'); + $pageData = $this->sort->page($page); break; case "tags": $template = $currentTheme . '.tags'; @@ -69,8 +70,8 @@ class ThemeController extends Controller $pageData = $this->sort->archive(); break; default: - $template = $currentTheme . '.' . $view; - $page = $this->pages->getById('F4429D34-25E7-4CA9-9B0A-742810277505'); + $template = $currentTheme . '.index'; + $page = $this->pages->getById('F791DED9-0359-4662-8976-4C474803D2C6'); $pageData = $this->sort->page($page); } if ($this->member::status()) { diff --git a/app/Repositories/MemberRepository.php b/app/Repositories/MemberRepository.php index 774c721..761e812 100644 --- a/app/Repositories/MemberRepository.php +++ b/app/Repositories/MemberRepository.php @@ -54,10 +54,12 @@ class MemberRepository implements MemberRepositoryInterface public function update($member) { - $index = findIndex($this->folks, ['id' => $member->id]); - $this->folks[$index]['handle'] = $member->handle; - $this->folks[$index]['email'] = $member->email; - $this->folks[$index]['avatar'] = $member->avatar; + $index = findIndex($this->folks, ['id' => $member->id]); + $this->folks[$index]['handle'] = $member->handle; + $this->folks[$index]['email'] = $member->email; + if (isset($member->avatar)) { + $this->folks[$index]['avatar'] = $member->avatar; + } $this->folks[$index]['updated'] = Carbon::now(); //save new folks file $this->docs::writeSettings($this->folks, env('FOLKS_PATH')); diff --git a/app/Services/Assets/AssetService.php b/app/Services/Assets/AssetService.php index 2162c26..638d3bd 100644 --- a/app/Services/Assets/AssetService.php +++ b/app/Services/Assets/AssetService.php @@ -60,7 +60,6 @@ class AssetService } else { //image is already there, so chill } - //print $file->getFilename() . "\n"; } //clear test theme css and script directories $styles = glob($cssPath . '*'); // get all file names @@ -85,6 +84,13 @@ class AssetService if (is_file($file)) { $path = explode('/', $file); copy($file, $cssPath . $path[6]); + } else { + // if there is a type/font folder, move it + $typePath = explode('/', $file); + if (is_dir($cssPath . $typePath[6])) { + delete_directory($cssPath . $typePath[6]); + } + rename($file, $cssPath . $typePath[6]); } } $newjs = glob('../content/themes/' . $this->currentTheme . '/assets/scripts/*'); diff --git a/app/Services/Data/SettingsService.php b/app/Services/Data/SettingsService.php index f95c3f1..e9c970f 100644 --- a/app/Services/Data/SettingsService.php +++ b/app/Services/Data/SettingsService.php @@ -122,13 +122,9 @@ class SettingsService $settings['global']['externalAPI'] = $data->global->externalAPI; $settings['global']['dynamicRender'] = $data->global->dynamicRender; - //TODO: This is for to be created MemberServices - //Member::updateData('handle', $data['member']['handle']); - //Member::updateData('email', $data['member']['email']); - - $settings['email']['active'] = $data->email->active; - $settings['email']['smtp'] = $data->email->smtp; - $settings['email']['mailgun'] = $data->email->mailgun; + //$settings['email']['active'] = $data->email->active; + //$settings['email']['smtp'] = $data->email->smtp; + //$settings['email']['mailgun'] = $data->email->mailgun; return $this->docs::writeSettings($settings); } diff --git a/public/assets/scripts/dash/app/actions/SettingsActions.js b/public/assets/scripts/dash/app/actions/SettingsActions.js index 347c33e..667c80b 100644 --- a/public/assets/scripts/dash/app/actions/SettingsActions.js +++ b/public/assets/scripts/dash/app/actions/SettingsActions.js @@ -21,11 +21,11 @@ export default class SettingsActions { .replace(/"/g, ''); let selected = ''; let selects = document.querySelectorAll('.theme-select'); - let smtpDomain = document.getElementById('smtp-domain').value; - let smtpEmail = document.getElementById('smtp-email').value; - let smtpPass = document.getElementById('smtp-pass').value; - let mgDomain = document.getElementById('mg-domain').value; - let mgKey = document.getElementById('mg-key').value; + //let smtpDomain = document.getElementById('smtp-domain').value; + //let smtpEmail = document.getElementById('smtp-email').value; + //let smtpPass = document.getElementById('smtp-pass').value; + //let mgDomain = document.getElementById('mg-domain').value; + //let mgKey = document.getElementById('mg-key').value; let mailActive = ''; let mailOptions = document.querySelectorAll('.mail-option'); let apiStatus = document @@ -60,18 +60,6 @@ export default class SettingsActions { handle: handle, email: email, id: memberID - }, - email: { - active: mailActive, - smtp: { - domain: smtpDomain, - email: smtpEmail, - password: smtpPass - }, - mailgun: { - domain: mgDomain, - key: mgKey - } } }; return new Promise(function (resolve) {