From e9967fa22781d922ba4eb8fb44fe72d200ac4b14 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Mon, 10 Nov 2025 21:04:10 +0000
Subject: [PATCH] =IconsManager.php update

---
 inc/helpers/renderFields.php |  165 ++++++++++++++++++++++++++++++------------------------
 1 files changed, 91 insertions(+), 74 deletions(-)

diff --git a/inc/helpers/renderFields.php b/inc/helpers/renderFields.php
index 5c806d0..8786204 100644
--- a/inc/helpers/renderFields.php
+++ b/inc/helpers/renderFields.php
@@ -4,6 +4,8 @@
 	exit;
 }
 
+use JVBase\managers\CacheManager;
+use JVBase\meta\MetaForm;
 use JVBase\meta\MetaManager;
 
 /**
@@ -57,7 +59,7 @@
  */
 function jvbRenderLinks(int $ID, MetaManager|null $meta = null):string
 {
-    $cache = new JVBase\managers\CacheManager('bio-'.$ID, WEEK_IN_SECONDS);
+    $cache = CacheManager::for('bio-'.$ID, WEEK_IN_SECONDS);
     $key = 'links';
     $cached = $cache->get($key);
     if ($cached) {
@@ -77,41 +79,41 @@
             $url = $link['url'];
             switch (true) {
                 case strpos($url, 'facebook'):
-                    $i = jvbIcon('facebook');
+                    $i = jvbIcon('facebook-logo');
                     break;
                 case strpos($url, 'instagram'):
-                    $i = jvbIcon('instagram');
+                    $i = jvbIcon('instagram-logo');
                     break;
                 case strpos($url, 'tiktok'):
-                    $i = jvbIcon('tiktok');
+                    $i = jvbIcon('tiktok-logo');
                     break;
                 case strpos($url, 'x.com'):
                     $i = jvbIcon('x');
                     break;
                 case strpos($url, 'youtube'):
-                    $i = jvbIcon('youtube');
+                    $i = jvbIcon('youtube-logo');
                     break;
                 case strpos($url, 'mastadon'):
-                    $i = jvbIcon('mastadon');
+                    $i = jvbIcon('mastadon-logo');
                     break;
                 case strpos($url, 'fediverse'):
                 case strpos($url, 'bluesky'):
-                    $i = jvbIcon('fediverse');
+                    $i = jvbIcon('fediverse-logo');
                     break;
                 case strpos($url, 'linktree'):
-                    $i = jvbIcon('linktree');
+                    $i = jvbIcon('linktree-logo');
                     break;
                 case strpos($url, 'snapchat'):
-                    $i = jvbIcon('snapchat');
+                    $i = jvbIcon('snapchat-logo');
                     break;
                 case strpos($url, 'twitch'):
-                    $i = jvbIcon('twitch');
+                    $i = jvbIcon('twitch-logo');
                     break;
                 case strpos($url, 'threads'):
-                    $i = jvbIcon('threads');
+                    $i = jvbIcon('threads-logo');
                     break;
                 case strpos($url, 'twitter'):
-                    $i = jvbIcon('twitter');
+                    $i = jvbIcon('twitter-logo');
                     break;
                 default:
                     $i = jvbIcon('link');
@@ -134,12 +136,12 @@
  */
 function jvbRenderContactInfo(int $ID, MetaManager|null $meta = null):string
 {
-    $cache = new JVBase\managers\CacheManager('bio-'.$ID, WEEK_IN_SECONDS);
+    $cache = CacheManager::for('bio-'.$ID, WEEK_IN_SECONDS);
     $key = 'contact';
-//    $cached = $cache->get($key);
-//    if($cached){
-//        return $cached;
-//    }
+    $cached = $cache->get($key);
+    if($cached){
+        return $cached;
+    }
     if (!$meta) {
         $meta = jvbGetMeta($ID);
     }
@@ -156,7 +158,7 @@
             switch ($p) {
                 case 'text':
                     $link = 'sms:+1'.$phone.';?body='.rawurlencode('Hey! I found you on edmonton.ink, and I wanted to reach out.');
-                    $label = jvbIcon('text').'<span>Text</span>';
+                    $label = jvbIcon('chat').'<span>Text</span>';
                     break;
                 case 'call':
                     $link = 'tel:+1'.$phone;
@@ -165,7 +167,7 @@
                 case 'email':
                     $link = 'mailto:'.$meta->getValue('email').'?subject='.rawurlencode('Contact from edmonton.ink').'&body='.rawurlencode('Hey,
         I found you on edmonton.ink, and I wanted to reach out!');
-                    $label = jvbIcon('email').'<span>Email</span>';
+                    $label = jvbIcon('envelope').'<span>Email</span>';
                     break;
             }
             if ($link) {
@@ -324,6 +326,28 @@
 add_action('wp_footer', 'jvbOutputImageTemplates');
 
 function jvbOutputImageTemplates() {
+	if (wp_script_is('jvb-form')) {
+		jvbInlineStyles('forms');
+		?>
+		<template class="formSummary">
+			<div class="form-summary">
+				<h2>Success!</h2>
+				<div class="message">
+					<p>We're picking up what you're laying down.</p>
+					<p>You'll get an email with your response. If you can't find it, check your spam.</p>
+					<p>If you need to make any changes, respond to that email.</p>
+					<p>You can see a summary of what you wrote below:</p>
+				</div>
+				<div class="summary">
+					<div class="result">
+						<h4></h4>
+						<p></p>
+					</div>
+				</div>
+			</div>
+		</template>
+		<?php
+	}
 	if (wp_script_is('jvb-uploader')) {
 		?>
 		<template class="emptyGroup">
@@ -349,11 +373,11 @@
 					</div>
 					<div class="group-actions">
 						<button type="button" data-action="add-to-group" title="Add selected uploads to this group">
-							<?= jvbIcon('add') ?>
+							<?= jvbIcon('plus-square') ?>
 							Add Here
 						</button>
 						<button type="button" data-action="delete-group" title="Delete group">
-							<?= jvbIcon('delete') ?>
+							<?= jvbIcon('trash') ?>
 							Delete Group
 						</button>
 					</div>
@@ -383,7 +407,7 @@
 				</div>
 
 				<button type="button" data-action="remove-from-group" title="Remove from Group">
-					<?=jvbIcon('delete')?>
+					<?=jvbIcon('trash')?>
 				</button>
 			</div>
 		</template>
@@ -394,7 +418,7 @@
 				</div>
 				<div class="selection-controls">
 					<button type="button" data-action="add-to-group">
-						<?= jvbIcon('add') ?>
+						<?= jvbIcon('plus-square') ?>
 						New Group
 					</button>
 				</div>
@@ -422,34 +446,10 @@
 			</div>
 		</template>
 		<template class="uploadItem">
-			<div class="item upload">
-				<div class="preview">
-					<?php jvbRenderProgressBar('',true) ?>
-					<input type="checkbox" class="upload-select" name="select-item" id="select-item">
-					<label for="select-item" aria-label="Select image">
-						<img>
-						<video></video>
-						<span></span>
-					</label>
-					<div class="item-actions row btw">
-						<div class="radio-button">
-							<input type="radio" class="featured btn" name="featured" id="featured" hidden>
-							<label for="featured">
-								<?=jvbIcon('star')?>
-								<?=jvbIcon('star', ['style' => 'fill'])?>
-								<span class="screen-reader-text">Set as featured image</span>
-							</label>
-						</div>
-
-						<button type="button" data-action="delete-upload" title="Remove from Group">
-							<?=jvbIcon('delete')?>
-						</button>
-					</div>
-				</div>
-				<details>
-					<summary class="row btw"><?=jvbIcon('edit')?><span>Edit Image Info</span></summary>
-				</details>
-			</div>
+			<?php
+			$form = new MetaForm();
+			$form->renderImagePreview();
+			?>
 		</template>
 		<template class="restoreNotification">
 			<dialog class="restore-uploads">
@@ -472,11 +472,11 @@
 						</div>
 						<div class="m-actions row nowrap">
 							<button type="button" data-action="restore">
-								<?= jvbIcon('restore') ?>
+								<?= jvbIcon('arrow-counter-clockwise') ?>
 								Restore Selected
 							</button>
 							<button type="button" data-action="clear-cache" title="Clear cache and close window">
-								<?= jvbIcon('close') ?>
+								<?= jvbIcon('x') ?>
 								Clear Cache
 							</button>
 						</div>
@@ -522,41 +522,58 @@
 		<?php
 	}
 	if (wp_script_is('jvb-selector')) {
-		\JVBase\forms\TaxonomySelector::class::outputSelector();
+		\JVBase\forms\TaxonomySelector::class::outputSelectorModal();
 	}
 }
 
-function jvbImageMeta(int|null $ID = null, string $title = '', string $alt = '', string $caption = ''):string
+function jvbImageMeta(int|null $ID = null, string $title = '', string $alt = '', string $caption = '', array $fields = []):string
 {
+	$form = new MetaForm();
+	$dataID = ($ID) ? ['image-id' => $ID] : false;
+	$addID = ($ID) ? '-'.$ID : '';
 
-	$dataID = ($ID) ? ' data-image-id="'.$ID.'"' : '';
-	$ID = ($ID) ? '-'.$ID : '';
+	$fields = array_merge([
+		'image_data'	=> [
+			'type'	=> 'group',
+			'wrap'	=> 'details',
+			'label'	=> 'Image Info',
+			'hint'	=> 'These will be automatically generated if left blank.',
+			'fields'	=> [
+				'image-title'.$addID => [
+					'type'	=> 'text',
+					'label'	=> 'Image Title',
+					'value'	=> $title,
+					'data'	=> $dataID
+				],
+				'image-alt-text'.$addID => [
+					'type'	=> 'text',
+					'label'	=> 'Alt Text',
+					'value'	=> $alt,
+					'hint'	=> 'Alt text helps the visually impaired, as well as some benefits for SEO.',
+					'data'	=> $dataID
+				],
+				'image-caption'.$addID => [
+					'type'	=> 'textarea',
+					'value'	=> $caption,
+					'label'	=> 'Image Caption',
+					'data'	=> $dataID
+				]
+			]
+		]
+	], $fields);
 
-	return '<div class="upload-meta"'.$dataID.'>
-		<div class="field">
-			<label for="image-title'.$ID.'">Image Title</label>
-			<input type="text" id="image-title'.$ID.'" name="image-title'.$ID.'" value="'.$title.'">
-		</div>
-		<div class="field">
-			<label for="image-alt-text'.$ID.'">Image Alt Text</label>
-			<input type="text" id="image-alt-text'.$ID.'" name="image-alt-text'.$ID.'" value="'.$alt.'">
-			<p class="hint">Alt text helps the visually impaired, as well as some benefits for SEO.</p>
-		</div>
-		<div class="field">
-			<label for="image-caption'.$ID.'">Image Caption</label>
-			<textarea id="image-caption'.$ID.'" name="image-caption'.$ID.'">'.$caption.'</textarea>
-		</div>
-		<p class="hint">These will be automatically generated if left blank.</p>
-	</div>';
+
+	return $form->render('image_data',null, $fields,false, true);
 }
 
 
+
 function jvbLocationLinks(array $location): string {
 	if (empty($location['address'])) {
 		return '';
 	}
 
-	$cache = new \JVBase\managers\CacheManager('location');
+	$cache = CacheManager::for('locations');
 	$key = $cache->generateKey($location);
 
 	$cached = false;

--
Gitblit v1.10.0