From 3241a281b1f854dd848156cd9ca54de0e607f08c Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Mon, 10 Nov 2025 21:05:17 +0000
Subject: [PATCH] =Update

---
 content/faq.php |  119 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 116 insertions(+), 3 deletions(-)

diff --git a/content/faq.php b/content/faq.php
index 645ed34..505b842 100644
--- a/content/faq.php
+++ b/content/faq.php
@@ -1,14 +1,16 @@
 <?php
-// /content/art.php
+// /content/faq.php
 function altr_faq():array
 {
     return [
         'singular'       => 'Frequently Asked Question',
         'plural'       => 'Frequently Asked Questions',
         'dash_description' => 'Manage your answers',
+        'capability_type' => ['faq', 'faqs'],
         'breadcrumb'    => 'FAQ',
-        'hide_single'  => true,
+        'dash_title'    => 'FAQs',
         'icon'         => 'question',
+        'rewrite_taxonomy' => 'section',
         'rewrite'      => [
             'slug'       => 'faq',
             'with_front' => false,
@@ -18,7 +20,18 @@
                 'type'  => 'text',
                 'label' => 'Question',
             ],
-            'answer'        => [
+            'post_status'         => [
+                'type'      => 'radio',
+                'label'     => 'Status',
+                'hidden'    => true,
+                'options'   => [
+                    'publish'   => 'Show',
+                    'draft'     => 'Hide',
+                    'trash'     => 'Scrap',
+                    'delete'    => 'Permanently Delete'
+                ]
+            ],
+            'post_content'        => [
                 'type'  => 'textarea',
                 'label' => 'Answer',
                 'quill' => true,
@@ -28,3 +41,103 @@
         'upload_title' => 'Upload Before & Afters',
     ];
 }
+
+
+add_action('wp_enqueue_scripts', 'nebDashScripts', 9999);
+function nebDashScripts() {
+    global $wp;
+    $page = str_replace('dash/', '', $wp->request);
+    if ($page === 'settings') {
+        wp_enqueue_script('jvb-form');
+        wp_enqueue_script('jvb-tabs');
+        wp_enqueue_script('jvb-populate-form');
+        wp_enqueue_script('jvb-copy-hours');
+        wp_enqueue_script('jvb-quill');
+        wp_enqueue_script('jvb-store');
+        $script = 'function loadSettingsPage() {
+            let tabs = new window.jvbTabs(document.querySelector(".replace"));
+						let store = new window.jvbStore({
+							name: "options",
+							endpoint: "options",
+							headers: {
+				                "action_nonce": jvbSettings.dash,
+                            }
+						});
+						
+						let form = new window.jvbForm(store);
+						let forms = [ "#hours", "#menu-sections"];
+						let setForms = {};
+						forms.forEach(f => {
+						    let gotF = document.querySelector(`form${f}`);
+						    setForms[f] = form.registerForm(gotF);
+						    
+						});						
+						
+						form.subscribe((event, data) => {
+                            switch (event) {
+                                case "form-submit":
+                                case "form-autosave":
+                                    window.jvbQueue.addToQueue({
+                                        endpoint: "options",
+                                        headers: {
+                                            "action_nonce": jvbSettings.dash,
+                                        },
+                                        data: data.changes,
+                                        popup: `Saving options...`,
+                                        title: "Saving Options"
+                                    });
+                                    break;
+                            }
+                        });
+					}
+					document.addEventListener("DOMContentLoaded", ()=>{
+                       loadSettingsPage()
+                    });
+					';
+        $output = wp_add_inline_script('jvb-form', $script, 'after');
+    } elseif ($page === 'dash') {
+        wp_enqueue_script('jvb-form');
+        wp_enqueue_script('jvb-store');
+        $script = 'function loadDashPage() {
+            
+                let store = new window.jvbStore({
+                    name: "options",
+                    endpoint: "options",
+                    headers: {
+                        "action_nonce": jvbSettings.dash,
+                    }
+                });
+                
+                let form = new window.jvbForm(store);
+                let forms = [ "#options"];
+                let setForms = {};
+                forms.forEach(f => {
+                    let gotF = document.querySelector(`form${f}`);
+                    setForms[f] = form.registerForm(gotF);
+                    
+                });						
+                
+                form.subscribe((event, data) => {
+                    switch (event) {
+                        case "form-submit":
+                        case "form-autosave":
+                            window.jvbQueue.addToQueue({
+                                endpoint: "options",
+                                headers: {
+                                    "action_nonce": jvbSettings.dash,
+                                },
+                                data: data.changes,
+                                popup: `Saving options...`,
+                                title: "Saving Options"
+                            });
+                            break;
+                    }
+                });
+            }
+            document.addEventListener("DOMContentLoaded", ()=>{
+               loadDashPage()
+            });
+            ';
+//        $output = wp_add_inline_script('jvb-form', $script, 'after');
+    }
+}
\ No newline at end of file

--
Gitblit v1.10.0