Debagnik / project-walnut

A Blogging Site for small businesses and news outlets, packed with administrative features
0 stars 1 forks source link

Major Feature Update: intergating site metadata and gTags scripts and inspectlet scripts to DB and rendering into web front #40

Closed Debagnik closed 6 days ago

Debagnik commented 1 week ago

Summary by CodeRabbit

coderabbitai[bot] commented 1 week ago

Walkthrough

Hmph! This pull request introduces a new middleware function called fetchSiteConfig that fetches site configuration data from the database. It attaches this data to the response locals for all admin routes. Various routes have been updated to include this configuration in their responses, ensuring it’s available for rendering views. Error handling has been improved too, so if the config isn’t found, it sets it to an empty object. Overall, it’s about making sure the site configuration is accessible everywhere in the admin area!

Changes

File Change Summary
server/routes/admin.js Added middleware fetchSiteConfig to retrieve site configuration and updated multiple routes to include config in render calls. Enhanced error handling.
server/routes/main.js Introduced fetchSiteConfig middleware, set res.locals.siteConfig, and modified the GET / route to include site configuration in rendering.
views/admin/index.ejs Updated registration enablement check from string comparison to accessing config.isRegistrationEnabled.
views/admin/webmaster.ejs Changed configuration value source from currentConfig to config for various input fields in the site configuration form.
views/layouts/admin.ejs Modified meta tags and title to use conditional logic based on configuration values.
views/layouts/main.ejs Added conditional rendering for Google Analytics and Inspectlet scripts, and updated meta tags to use configuration values.
server/models/config.js Expanded configSchema with new fields: homeWelcomeText, homeWelcomeSubText, homepageWelcomeImage, and copyrightText.
views/index.ejs Made the welcome text and image dynamic, sourcing from config, with fallbacks for defaults.
views/partials/footer.ejs Updated copyright display logic to conditionally show config.copyrightText or a default message.
views/partials/header.ejs Changed logo link text from a static string to a dynamic value referencing config.siteName.

Oh, whatever! Here’s a little poem to celebrate these changes:

“In the admin’s realm, config shines,
Fetching data, oh, how it aligns!
With middleware strong, routes now sing,
Site settings ready, let the joy spring!
Errors caught, no more despair,
Admin magic, everywhere!” 🌟


📜 Recent review details **Configuration used: CodeRabbit UI** **Review profile: CHILL**
📥 Commits Reviewing files that changed from the base of the PR and between 5777e103f999554e929c8f966168aa9a1f830786 and c73b93122b2f1263d3d288e7975f82a175d2f6b5.
📒 Files selected for processing (10) * `server/models/config.js` (1 hunks) * `server/routes/admin.js` (19 hunks) * `server/routes/main.js` (9 hunks) * `views/admin/index.ejs` (1 hunks) * `views/admin/webmaster.ejs` (3 hunks) * `views/index.ejs` (1 hunks) * `views/layouts/admin.ejs` (2 hunks) * `views/layouts/main.ejs` (2 hunks) * `views/partials/footer.ejs` (1 hunks) * `views/partials/header.ejs` (1 hunks)

[!NOTE]

🎁 Summarized by CodeRabbit Free Your organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting .
🪧 Tips ### Chat There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai): > ‼️ **IMPORTANT** > Auto-reply has been disabled for this repository in the CodeRabbit settings. The CodeRabbit bot will not respond to your replies unless it is explicitly tagged. - Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples: - `@coderabbitai generate unit testing code for this file.` - `@coderabbitai modularize this function.` - PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples: - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.` - `@coderabbitai read src/utils.ts and generate unit testing code.` - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.` - `@coderabbitai help me debug CodeRabbit configuration file.` Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. ### CodeRabbit Commands (Invoked using PR comments) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai full review` to do a full review from scratch and review all the files again. - `@coderabbitai summary` to regenerate the summary of the PR. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository. - `@coderabbitai help` to get help. ### Other keywords and placeholders - Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. - Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description. - Add `@coderabbitai` anywhere in the PR title to generate the title automatically. ### CodeRabbit Configuration File (`.coderabbit.yaml`) - You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository. - Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information. - If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json` ### Documentation and Community - Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit. - Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback. - Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.
Debagnik commented 1 week ago

@Coderabbitai pause

coderabbitai[bot] commented 1 week ago
:white_check_mark: Actions performed Reviews paused.
Debagnik commented 6 days ago

@Coderabbitai resume

coderabbitai[bot] commented 6 days ago
:white_check_mark: Actions performed Reviews resumed.
Debagnik commented 6 days ago

@coderabbitai full review

coderabbitai[bot] commented 6 days ago
:white_check_mark: Actions performed Full review triggered.