Merge pull request #5841 from expsa/14.0-feat-system_dashboard_classic-auto-20251227_171127

[IMP] system_dashboard_classic tour_genius:
This commit is contained in:
Mohamed Eltayar 2025-12-27 17:12:05 +03:00 committed by GitHub
commit fb0df50441
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 18 additions and 143 deletions

View File

@ -297,9 +297,9 @@ odoo.define('system_dashboard_classic.dashboard_self_services', function(require
var employeeName = result.employee[0][0].name;
var isRtl = $('body').hasClass('o_rtl');
// Format: "مساء الخير يا أستاذ" then "أحمد" on new line
// Format: "مساء الخير أستاذ" then "أحمد" on new line
var greetingWithHonorific = isRtl
? (greetingText + ' يا ' + honorific)
? (greetingText + ' ' + honorific)
: greetingText;
var greetingHtml = '<span class="greeting-text">' + greetingWithHonorific + '</span>';

View File

@ -159,7 +159,7 @@
font-size: 18px !important;
font-weight: 700 !important;
color: #fff !important;
margin-bottom: 4px !important;
margin-bottom: 2px !important;
letter-spacing: 0.3px !important;
text-shadow: none !important;
-webkit-text-fill-color: unset !important;
@ -172,7 +172,7 @@
font-weight: 500 !important;
text-transform: uppercase !important;
letter-spacing: 1px !important;
margin-bottom: 2px !important;
margin-bottom: 5px !important;
-webkit-text-fill-color: unset !important;
text-shadow: none !important;
}
@ -2032,10 +2032,10 @@ p.fn-section.clickable-profile:hover {
============================================================ */
.o_rtl {
.genius-search-container {
margin-left: 0 !important;
margin-right: auto !important;
}
// .genius-search-container {
// margin-left: 0 !important;
// margin-right: auto !important;
// }
.genius-search-icon {
left: auto !important;

View File

@ -127,19 +127,19 @@
}
/* === Tab Navigation RTL === */
.dashboard-nav-buttons {
flex-direction: row-reverse !important;
// .dashboard-nav-buttons {
// flex-direction: row-reverse !important;
.nav-tabs {
flex-direction: row-reverse !important;
}
}
// .nav-tabs {
// flex-direction: row-reverse !important;
// }
// }
/* === Search Container RTL === */
.genius-search-container {
margin-left: 0 !important;
margin-right: auto !important;
}
// .genius-search-container {
// margin-left: 0 !important;
// margin-right: auto !important;
// }
.genius-search-icon {
left: auto !important;

View File

@ -1,125 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
<!-- Recorder Panel Template -->
<t t-name="tour_genius.RecorderPanel">
<div class="genius-recorder-panel">
<!-- Header (Draggable) -->
<div class="recorder-header">
<h4>
<i class="fa fa-video-camera"></i>
Recording: <t t-esc="widget.topicName"/>
</h4>
<button class="recorder-close" title="Close">×</button>
</div>
<!-- Body -->
<div class="recorder-body">
<!-- Inline Feedback Alert -->
<div class="recorder-alert alert d-none mb-2" role="alert"></div>
<!-- Tour Info Section (Visible for New Tours) -->
<t t-if="widget.isNewTour">
<div class="tour-info-section mb-3 p-2" style="background: #f8f9fa; border-radius: 8px; border: 1px solid #e2e8f0;">
<div class="recorder-field mb-2">
<label>Tour Name <span class="text-danger">*</span></label>
<input type="text" class="tour-name-input form-control"
placeholder="e.g., Sales Order Training"/>
</div>
<div class="recorder-field">
<label>Target Module (Optional)</label>
<input type="text" class="tour-module-input form-control"
list="module-datalist"
placeholder="Search module..."/>
<datalist id="module-datalist" class="tour-module-datalist">
</datalist>
<input type="hidden" class="tour-module-select"/>
</div>
</div>
<hr class="my-2"/>
</t>
<!-- Track On Button -->
<div class="recorder-field track-section">
<button class="btn btn-block btn-track-on">
<i class="fa fa-crosshairs"></i>
Track On
</button>
<small class="text-muted mt-1 d-block">
Click to select any element on the page
</small>
</div>
<!-- CSS Selector (read-only) -->
<div class="recorder-field">
<label>CSS Selector</label>
<input type="text" class="css-selector-input css-selector-display"
placeholder="Click Track On, then click an element..."/>
</div>
<!-- Step Title -->
<div class="recorder-field">
<label>Step Title <span class="text-danger">*</span></label>
<input type="text" class="step-title-input"
placeholder="e.g., Click the Save button"/>
</div>
<!-- Instruction -->
<div class="recorder-field">
<label>Instructions (optional)</label>
<textarea class="step-instruction-input" rows="2"
placeholder="Additional help text..."></textarea>
</div>
<!-- Position & Type -->
<div class="row">
<div class="col-6">
<div class="recorder-field">
<label>Tooltip Position</label>
<select class="position-select form-control">
<option value="bottom">Bottom</option>
<option value="top">Top</option>
<option value="left">Left</option>
<option value="right">Right</option>
</select>
</div>
</div>
<div class="col-6">
<div class="recorder-field">
<label>Action Type</label>
<select class="step-type-select form-control">
<option value="click">Click</option>
<option value="input">Input Text</option>
</select>
</div>
</div>
</div>
<!-- Input Value (Hidden by default) -->
<div class="recorder-field input-value-field d-none">
<label>Text to Enter <span class="text-danger">*</span></label>
<input type="text" class="input-value-input"
placeholder="Value to type..."/>
</div>
<!-- Save Step Button -->
<div class="recorder-actions">
<button class="btn btn-save-step">
<i class="fa fa-plus"></i>
Save Step
</button>
</div>
</div>
<!-- Footer -->
<div class="recorder-footer">
<span class="step-counter">0 steps recorded</span>
<button class="btn btn-finish">
<i class="fa fa-check"></i>
Finish
</button>
</div>
</div>
</t>
</templates>