Changeset 3471816
- Timestamp:
- 02/28/2026 10:53:33 PM (4 weeks ago)
- Location:
- technodrome-ai-content-assistant/trunk
- Files:
-
- 8 edited
-
CHANGELOG.md (modified) (1 diff)
-
dashboard/dashboard.css (modified) (7 diffs)
-
dashboard/modules/footer/footer.css (modified) (4 diffs)
-
dashboard/modules/header/header.css (modified) (1 diff)
-
dashboard/modules/header/header.php (modified) (1 diff)
-
features/layout-templates-tab/photo-positions.js (modified) (2 diffs)
-
readme.txt (modified) (2 diffs)
-
technodrome-ai-content-assistant.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
technodrome-ai-content-assistant/trunk/CHANGELOG.md
r3471585 r3471816 5 5 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), 6 6 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 7 8 ## [4.1.3] - 2026-02-28 9 10 ### Added 11 - **Blue Gradient Footer**: Footer now uses `linear-gradient(135deg, #1e3a8a → #3b82f6)` in light mode and `#0f172a → #1e3a8a` in dark mode 12 - **Contact Us Button**: Circular `?` button in header license area — links to technodrome.nasrpskom.com in a new tab 13 - Profile buttons updated to glass effect (semi-transparent white) on gradient footer background 14 15 --- 7 16 8 17 ## [4.1.2] - 2026-02-28 -
technodrome-ai-content-assistant/trunk/dashboard/dashboard.css
r3471565 r3471816 73 73 background: var(--taics-bg-primary); 74 74 padding: 0 !important; 75 margin: 0 !important; 75 margin: 20px auto !important; 76 max-width: 1600px; 76 77 min-height: 50vh; 77 78 position: static !important; 78 79 border: none !important; 79 box-shadow: none !important; 80 box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15) !important; 81 border-radius: 12px !important; 82 overflow: hidden !important; 80 83 } 81 84 … … 96 99 .taics-main-content { 97 100 background: var(--taics-bg-secondary); 98 margin: 0 20px 20px !important; /* CONSISTENT 20px MARGINS */99 border-radius: var(--taics-border-radius);100 box-shadow: var(--taics-shadow-light);101 margin: 0 !important; 102 border-radius: 0 !important; 103 box-shadow: none !important; 101 104 overflow: hidden; 102 105 position: static !important; … … 121 124 border: none; 122 125 border-bottom: 3px solid transparent; 126 border-right: 1px solid rgba(0, 0, 0, 0.1); 123 127 padding: 16px 24px; 124 128 font-size: 15px; … … 136 140 text-transform: uppercase; 137 141 letter-spacing: 0.5px; 142 } 143 144 .taics-tab-button:last-child { 145 border-right: none; 138 146 } 139 147 … … 492 500 .taics-footer { 493 501 background: var(--taics-bg-secondary); 494 margin: 0 20px 20px;495 border-radius: 0 0 var(--taics-border-radius) var(--taics-border-radius);496 box-shadow: var(--taics-shadow-light);502 margin: 0 !important; 503 border-radius: 0 !important; 504 box-shadow: none !important; 497 505 border-top: 1px solid var(--taics-border); 498 506 } … … 860 868 @media (max-width: 768px) { 861 869 .taics-main-content { 862 margin: 0 15px 15px!important;870 margin: 0 !important; 863 871 } 864 872 … … 879 887 880 888 .taics-main-content { 881 margin: 0 10px 10px!important;882 border-radius: 8px;889 margin: 0 !important; 890 border-radius: 0 !important; 883 891 } 884 892 -
technodrome-ai-content-assistant/trunk/dashboard/modules/footer/footer.css
r3466589 r3471816 56 56 /* ===== COMPACT FOOTER MAIN STYLES ===== */ 57 57 .taics-footer-compact { 58 background: var(--taics-bg-secondary);59 margin: 0 20px 20px;60 border-radius: 0 0 var(--taics-border-radius) var(--taics-border-radius);61 box-shadow: var(--taics-shadow-light);62 border-top: 1px solid var(--taics-border);58 background: linear-gradient(135deg, #1e3a8a 0%, #3b82f6 100%) !important; 59 margin: 0 !important; 60 border-radius: 0 !important; 61 box-shadow: none !important; 62 border-top: none !important; 63 63 position: relative; 64 64 } … … 144 144 } 145 145 146 /* Light Mode Profile Buttons*/146 /* Profile Buttons - glass effect on gradient footer */ 147 147 .taics-profile-btn-wide { 148 background: white;149 border-color: var(--taics-border);150 } 151 148 background: rgba(255, 255, 255, 0.2) !important; 149 border-color: rgba(255, 255, 255, 0.4) !important; 150 } 151 152 152 .taics-profile-btn-wide:hover { 153 background: var(--taics-bg-tertiary); 153 background: rgba(255, 255, 255, 0.35) !important; 154 border-color: rgba(255, 255, 255, 0.6) !important; 154 155 transform: translateY(-1px); 155 box-shadow: 0 2px 8px rgba(0, 0, 0, 0. 1);156 } 157 156 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); 157 } 158 158 159 .taics-profile-btn-wide.active { 159 background: var(--taics-bg-tertiary); 160 border-color: var(--taics-primary); 161 box-shadow: 0 0 0 1px var(--taics-primary); 160 background: rgba(255, 255, 255, 0.95) !important; 161 border-color: white !important; 162 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2) !important; 163 } 164 165 .taics-profile-btn-wide.active .taics-profile-text { 166 color: #1e3a8a !important; 162 167 } 163 168 164 169 /* Dark Mode Profile Buttons */ 165 170 body.taics-dark-mode .taics-profile-btn-wide { 166 background: var(--taics-bg-tertiary);167 border-color: var(--taics-border);171 background: rgba(255, 255, 255, 0.15) !important; 172 border-color: rgba(255, 255, 255, 0.3) !important; 168 173 } 169 174 170 175 body.taics-dark-mode .taics-profile-text { 171 color: var(--taics-text-primary);176 color: #ffffff !important; 172 177 } 173 178 174 179 body.taics-dark-mode .taics-profile-btn-wide:hover { 175 background: var(--taics-bg-secondary);180 background: rgba(255, 255, 255, 0.25) !important; 176 181 } 177 182 … … 354 359 text-align: right; 355 360 font-weight: 600; 356 color: var(--taics-text-primary);361 color: #ffffff; 357 362 font-size: 10px; 363 text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); 358 364 } 359 365 … … 970 976 } 971 977 978 /* Dark Mode Footer Gradient */ 979 body.taics-dark-mode .taics-footer-compact { 980 background: linear-gradient(135deg, #0f172a 0%, #1e3a8a 100%) !important; 981 border-top: none !important; 982 } 983 972 984 /* Dark Mode Support */ 973 985 body.taics-dark-mode .taics-footer-bottom-compact { -
technodrome-ai-content-assistant/trunk/dashboard/modules/header/header.css
r3369057 r3471816 271 271 } 272 272 273 .taics-contact-btn { 274 width: 38px !important; 275 height: 38px !important; 276 border-radius: 50% !important; 277 font-size: 22px !important; 278 font-weight: 900 !important; 279 padding: 0 !important; 280 line-height: 1 !important; 281 } 282 283 .taics-contact-btn:hover { 284 color: #7fffd4 !important; 285 } 286 273 287 /* RESPONSIVE */ 274 288 @media (max-width: 1200px) { -
technodrome-ai-content-assistant/trunk/dashboard/modules/header/header.php
r3401081 r3471816 113 113 readonly /> 114 114 115 <button type="button" 115 <button type="button" 116 116 class="taics-header-license-btn" 117 117 id="taics-validate-license-btn" 118 118 title="<?php echo esc_attr__('Validate License', 'technodrome-ai-content-assistant'); ?>"> 119 119 🔑 120 </button> 121 <button type="button" 122 class="taics-header-license-btn taics-contact-btn" 123 title="<?php echo esc_attr__('Contact Us', 'technodrome-ai-content-assistant'); ?>" 124 onclick="window.open('https://technodrome.nasrpskom.com/','_blank')"> 125 ? 120 126 </button> 121 127 </div> -
technodrome-ai-content-assistant/trunk/features/layout-templates-tab/photo-positions.js
r3446048 r3471816 29 29 this.bindEvents(); 30 30 31 this.loadPhotosFromUserMeta(); // LOAD na startu - only if no profile photos yet 31 // If profile photos were already loaded via setValue() before init(), 32 // just re-render them now that $container is available. Don't call loadPhotosFromUserMeta() 33 // which would overwrite profile data with user_meta. 34 if (this.profilePhotosLoaded && Object.keys(this.selectedPhotos).length > 0) { 35 this.renderExistingPhotos(); 36 } else { 37 this.loadPhotosFromUserMeta(); 38 } 39 32 40 // Listen for template changes to update the "required" status, but not to lock/unlock slots 33 41 $(document).on('taics_template_changed.photo-positions-status', this.updateStatus.bind(this)); … … 335 343 }, 336 344 345 renderExistingPhotos: function() { 346 for (const position in this.selectedPhotos) { 347 const photo = this.selectedPhotos[position]; 348 this.updateImagePreview(parseInt(position), photo.url, photo.alt || ''); 349 if (this.photoLinks[position]) { 350 const $card = this.$container.find(`.taics-position-card[data-position="${position}"]`); 351 $card.find('.taics-photo-link-input').val(this.photoLinks[position]); 352 } 353 } 354 this.updateStatus(); 355 }, 356 337 357 cleanup: function() { 338 358 if (this.$container) { -
technodrome-ai-content-assistant/trunk/readme.txt
r3471585 r3471816 5 5 Tested up to: 6.9 6 6 Requires PHP: 8.0 7 Stable tag: 4.1. 27 Stable tag: 4.1.3 8 8 License: GPL v2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 40 40 41 41 == Changelog == 42 43 = 4.1.3 (2026-02-28) = 44 * **NEW**: Blue gradient footer (navy → blue) — light and dark mode 45 * **NEW**: Contact Us button (? circle) in header license area — links to technodrome.nasrpskom.com 46 * **IMPROVED**: Dashboard max-width increased for wider screens 42 47 43 48 = 4.1.2 (2026-02-28) = -
technodrome-ai-content-assistant/trunk/technodrome-ai-content-assistant.php
r3471585 r3471816 4 4 * Plugin URI: https://technodrome.org/ai-content-assistant 5 5 * Description: Advanced AI content generation plugin with multiple AI providers, profile system, layout templates, and content rules for WordPress. 6 * Version: 4.1. 26 * Version: 4.1.3 7 7 * Author: Technodrome Team 8 8 * Author URI: https://technodrome.org … … 30 30 31 31 // Plugin constants 32 define('TAICS_VERSION', '4.1. 2');32 define('TAICS_VERSION', '4.1.3'); 33 33 define('TAICS_PLUGIN_FILE', __FILE__); 34 34 define('TAICS_PLUGIN_DIR', plugin_dir_path(__FILE__));
Note: See TracChangeset
for help on using the changeset viewer.