still finding bugs related to the big routing rewrite, this one being an
error when starting a new set up.
fortunately, it was just a matter of getting the redirects pointing to
where they should, so it's a small fix
plugged in a simple rss component so fipamo sites can be subscribed to
through feed reeders.
routing needed a bit of updating to make it work, so it's been edited to
accomodate any new url that deviate from created pages.
long live RSS
Member authorization got moved to the member repo class a long time ago,
so AuthController was a leftover when that process was handled by
something else
moved dashboard login/logout to DashController and got rid of
AuthController as it's not necessary anymore
previously all the of the page routing was handlede through controller
organized by CRUD methods. it worked, but organizing by CRUD and not
purpose resulted in more time spent looking for a specific task through
controllers, so it turned out not to an effecient way of organizing.
so routing has been completely reorganized into laravel's web routing
section and methods have been moved to their appropriate controller so
tasks are much easier to find
front facing page routing turned out to be a bit more tricky that
anticipated do the overap of routing paths, but it only affects dynamic
page rendering and there's a patch in place that handles that issue
until a better solution is found. Rendered HTML pages works fine.
whew!
moved page meta data to it's own ui to clean up the page editing
experience as it was becoming a bit crowded.
also moved to saving and deleting buttons to title bar so they are
always available
added a note to web routes to reorganize them within the web routes file
to reduce the confusion present by having them in their own Controllers.
it's just an extra layer that's not needed
cleaned up the page edit template a bit to make it easier to convert to
the new editor UI.
php formatting also needed to be updated, so the php cs fixer file was
updated and added some setting to prettier to handle blade files
there was a generic place holder that defaulted to the default page
template to render pages. that's been fixed so it refers to the pages
layout to know what template to use
page preview from editor was not working because it was not passing the
page uuid correctly so it can be identified and rendered unto the theme
viewer.
small bug where links in the archive and tag templates where being
rendered as url encoded strings, so that needed to be decoded so it
displays as normal text
the theme controller was grabbing the index by its page name, which was
bad because that might change. that was replaced with a getById function
since the index id will always be 0 since it's the first page. this is a
seperate function from getByUuid which is a unique indentifier for each
page which was being used interchangably before the fix. all of those
references have been cleaned up to reference which type of id is needed
there was also a bug that happened on rendering when there were special
characters in the title. this was solved by saving the title as a
urlencoded string and then just decodded when it was needed for display
on the front end
the module used to sanitize html is no longer maintained, so updated
that methodology to use symfony's very sexy sanitizer
checked to make sure render on save was working as well.
app was erroring out because classes in the upkeep directory could not
be found due to a case mix up where 'Upkeep' and 'UpKeep' were both
being used causing a path error because the actual directory is 'Upkeep.'
there was an error when reordering menu items due to a missing variable
to a service class, so that was patched
also removed unecessary code from api url definitions and settings
service class
page tasks have been changed to accept JSON data for the sake of
consistency across the API. The only API method that will accept form
data is file uploads.
Also restored the post, put and delete pattern for better organization
and clarity describing what each page method is for
API accessible tasks (create, update, delete) have been updated to the
new format.
The controller needs to be cleaned up because it's a bit heavy and the
new API flow still needs to be properly documented, but it's a good
start
API Security has been reworked to check if request is secure, verifies
the API token created on site setup given to every member, and then
confirms the system is accepting API requests by way of the API enabled
toggle in settings
API usage is now only meant for backend use, so this needs to be noted
in the docs
removed all remaining API requests from the front end and removed the
FipamoAdminAPI js file, changing it to ContentRequest as it now handles
posting data to the system directly, authenticating it self by checking
the embedded CSRF token that regulary rotates
also renamed MaintenanceManager to Maintenance request and moved it to
the same dir as ContentRequest as they are both libraries that connect
to the backend
The first part of improving the API is removing all admin functions from
the front end so those no admin methods will be available client side.
The urls in the FipamoAdmin js file have been changed to post directly to the
system and they are handled from there. To account for this change
controller routes for every standard method have been created for better
organization and readability.
The FipamoAdmin js file will be integrated with the rest of the front
end code and will not be seperate library
the current restore process only restored images and not the additional
file types that are allowed, so that has been added
also tweaked the reset request to include the correct token so the
request does not fail API authorization
the current file backup included images, but the additional asset types
such as sound files, video and docs were not being added if they
existed, so those have been added.
also tweaked the front end script to include the correct token for the
API so the backup request doesn't fail the auth check
regrouped api calls for better organization and to add a bit more
security. it now checks to make sure the incoming token matches the
current session to authorize requests
content restore was already enabled, so the last step was completing
file restorartion if there was a file archive uploaded
now that this has been added, full site restore from backup archives now
works.
Patch for a bug that was deleteting the subdirectories of the theme css
folder holding additional theme assets when being published and tested in the theme kit.
also removed an unneccessary helper script and organized directory
actions in their own helper file to keep it all tidy
added a post install script to the composer.json file to automate the
creation of the .env file which hold app specific configs
also added a helper function to create new keys in the future
theme controller class was using hard coded uuids to find and display
page data, so that's been tweaked so that is no longer needed and finds
what it needs based on what time of view is being requested
also connected it the the preview 👁️ button in the page edit screen so
page layouts based on the current theme can be seen before they are
published
data sorting needed a new variable to differentiate between index page
rendering and standard page rendering, so that was added to the return
as well as updating the render script to include the variable that
wasn't being added for tags
also updated the git ignore file to ignore global images that are not
used by the base system. the script theme folder needs to be ignore as
well as that is going to updated by the theme itself for front end
coding and not used by the system
when pages where being unpinned from the main menu, there was an error
resulting from a missing method reference in the class
also rearranged some path references in the asset service class for the
sake of better organization
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
in the restore init process, there is a space that restores assets from
a previous install but grabbing them directly from the site and saving
them to the install.
a check was added so this script only runs if that url has been set in
the init restore form
there were places in the codebase where path to fipamo specific paths
and file were hard-coded into the system, reducing flexibility and
customozation for people that want to define their own path.
those hard-coded elements have been removed and replaced with references
to the env file so those paths can be changed to whatever is needed
the .env.example file has also been updated to contain default paths for
easier installation.
Removed email settings from settings.json and moved them to the .env
file to use Laravel's mailer functionality.
references to the old mailer has been removed from settings.json,
data sorting class and the settings template file
the front end script has also been updated to accomodate different
message types, starting with a test message so members can make sure the
settings defined in the .env are working
when sorting tags on a fresh install, a fatal error happens when the tag
array is empty because it looks for a var that doesn't exist yet. that's
been patched
the settings json file was still referencing the old version of the base
theme, so it was crashing because it doesn't exist anymore. updating it
to the new theme name clears this error
the init process was erroring out because instead of re-running the
script to make a valid token, it was not capturing the correct error, so
it would just fail
also the folder for saving config files needed to be created to save
them, so that addition was made as well
there was a fatal error in the init process because it was looking for a
class that had been moved but the reference had not been updated, which
is now corrected
uploading new member avatar and background images weren't uploading to
the correct location and the approprate files weren't being updated, so
that was been fixed.
the folks template in the init directory also needed be updated because
the system was looking for 'avatar' instead of 'avi' which was resulting
in some mismatch calls that were resulting in not found errors. the
variable is now 'avatar' everywhere for the sake of consistency.
found a minor bug that was preventing file uploads, so that was fixed.
also commented out some buttons that are for features that have not been
added just yet
setting sync is working but member data was not being updated in the
folks file or in the current active session, so that's been addressed
still need to turn on avatar updating as well, but that is tied to
updating the settings page, so that will be handled when image uploads
for that area are reactivated