commit
e8cf6ef840
|
|
@ -1,15 +1,4 @@
|
||||||
@font-face {
|
/* SAR Symbol Font Definition */
|
||||||
font-family: 'Tajawal-Regular';
|
|
||||||
src: url('../fonts/Tajawal-Regular.eot');
|
|
||||||
src: url('../fonts/Tajawal-Regular.eot?#iefix') format('embedded-opentype'),
|
|
||||||
url('../fonts/Tajawal-Regular.woff2') format('woff2'),
|
|
||||||
url('../fonts/Tajawal-Regular.woff') format('woff'),
|
|
||||||
url('../fonts/Tajawal-Regular.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
font-display: swap;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'sar-symbol';
|
font-family: 'sar-symbol';
|
||||||
src: url('../fonts/sar-symbol.eot?ebwrxj');
|
src: url('../fonts/sar-symbol.eot?ebwrxj');
|
||||||
|
|
@ -22,53 +11,189 @@
|
||||||
font-display: block;
|
font-display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
[class^="icon-sar"], [class*=" icon-sar"] {
|
/* إزالة التطبيق العام للفونت - هذا السبب في المشكلة الأصلية */
|
||||||
/* use !important to prevent issues with browser extensions that change fonts */
|
/*
|
||||||
|
هذا السطر كان يغير فونت النظام كله:
|
||||||
|
*:not(.fa):not(.oi) {
|
||||||
|
font-family: 'Tajawal-Regular', 'sar-symbol', sans-serif !important;
|
||||||
|
}
|
||||||
|
تم حذفه نهائياً
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ==========================================
|
||||||
|
الحل الصحيح: تطبيق الفونت بشكل انتقائي
|
||||||
|
========================================== */
|
||||||
|
|
||||||
|
/* 1. تعريف كلاس خاص لرمز العملة السعودية */
|
||||||
|
.sar_currency_symbol,
|
||||||
|
.saudi_riyal_symbol,
|
||||||
|
[data-currency="SAR"],
|
||||||
|
[data-currency-code="SAR"] {
|
||||||
|
font-family: 'sar-symbol', inherit, sans-serif !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 2. تطبيق على الحقول النقدية المحددة */
|
||||||
|
.o_field_monetary.sar_currency,
|
||||||
|
.o_field_monetary[data-currency="SAR"],
|
||||||
|
.oe_currency_value.sar_currency {
|
||||||
|
font-family: 'sar-symbol', inherit, sans-serif !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 3. تطبيق على عناصر القوائم والجداول */
|
||||||
|
.o_list_view .sar_currency,
|
||||||
|
.o_list_table .sar_currency,
|
||||||
|
table.o_list_table td.sar_currency {
|
||||||
|
font-family: 'sar-symbol', inherit, sans-serif !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 4. تطبيق على عروض kanban */
|
||||||
|
.o_kanban_view .sar_currency,
|
||||||
|
.oe_kanban_details .sar_currency {
|
||||||
|
font-family: 'sar-symbol', inherit, sans-serif !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 5. التقارير المحاسبية */
|
||||||
|
.o_account_reports_table .sar_currency,
|
||||||
|
.o_account_report_line .sar_currency,
|
||||||
|
.account_report .sar_currency {
|
||||||
|
font-family: 'sar-symbol', inherit, sans-serif !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 6. نقطة البيع */
|
||||||
|
.pos-content .sar_currency,
|
||||||
|
.o_pos_order_line .sar_currency,
|
||||||
|
.pos-receipt .sar_currency {
|
||||||
|
font-family: 'sar-symbol', inherit, sans-serif !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 7. الفواتير والتقارير المطبوعة */
|
||||||
|
.o_report_layout_standard .sar_currency,
|
||||||
|
.o_report_layout_boxed .sar_currency,
|
||||||
|
.report .sar_currency {
|
||||||
|
font-family: 'sar-symbol', inherit, sans-serif !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 8. قوائم الأسعار */
|
||||||
|
.product_price.sar_currency,
|
||||||
|
.pricelist .sar_currency {
|
||||||
|
font-family: 'sar-symbol', inherit, sans-serif !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 9. الحقول المحسوبة والمجاميع */
|
||||||
|
.o_form_view .o_group .sar_currency,
|
||||||
|
.oe_subtotal_footer .sar_currency {
|
||||||
|
font-family: 'sar-symbol', inherit, sans-serif !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 10. تطبيق خاص للطباعة */
|
||||||
|
@media print {
|
||||||
|
.sar_currency,
|
||||||
|
[data-currency="SAR"],
|
||||||
|
.saudi_riyal_symbol {
|
||||||
|
font-family: 'sar-symbol', inherit, sans-serif !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 11. حقول البحث والفلاتر */
|
||||||
|
.o_searchview .sar_currency,
|
||||||
|
.o_facet_values .sar_currency {
|
||||||
|
font-family: 'sar-symbol', inherit, sans-serif !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 12. الويدجات المخصصة */
|
||||||
|
.o_widget_monetary.sar_currency,
|
||||||
|
.monetary_field.sar_currency {
|
||||||
|
font-family: 'sar-symbol', inherit, sans-serif !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 13. تحسين عرض الرمز */
|
||||||
|
.sar_currency_symbol::before {
|
||||||
font-family: 'sar-symbol' !important;
|
font-family: 'sar-symbol' !important;
|
||||||
/* Don't use speak property as it causes lint warnings */
|
content: '\e900';
|
||||||
-webkit-font-feature-settings: 'liga';
|
margin-right: 3px;
|
||||||
font-feature-settings: 'liga';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: normal;
|
|
||||||
font-variant: normal;
|
|
||||||
text-transform: none;
|
|
||||||
line-height: 1;
|
|
||||||
|
|
||||||
/* Better Font Rendering =========== */
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
-moz-osx-font-smoothing: grayscale;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-sar:before {
|
/* 14. للاستخدام اليدوي في القوالب */
|
||||||
content: "\e900";
|
.manual_sar_symbol {
|
||||||
|
font-family: 'sar-symbol', inherit, sans-serif !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* General font settings */
|
.manual_sar_symbol::before {
|
||||||
*:not(.fa):not(.oi) {
|
|
||||||
font-family: 'Tajawal-Regular', 'sar-symbol', sans-serif !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Report specific elements */
|
|
||||||
.page, .header, .footer {
|
|
||||||
font-family: 'Tajawal-Regular', 'sar-symbol', sans-serif !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Special class for SAR amount fields */
|
|
||||||
.oe_currency_value::before,
|
|
||||||
.o_account_report_column_value::before,
|
|
||||||
.o_account_report_summary_value::before,
|
|
||||||
.o_account_report_line [data-parent-id] .o_account_report_column_value::before {
|
|
||||||
content: '\e900';
|
content: '\e900';
|
||||||
font-family: 'sar-symbol' !important;
|
font-family: 'sar-symbol' !important;
|
||||||
display: inline-block;
|
margin-right: 2px;
|
||||||
margin-right: 0;
|
|
||||||
visibility: hidden;
|
|
||||||
width: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
body .o_content .o_account_reports_body .oe_currency_value::before,
|
/* ==========================================
|
||||||
body .o_content .o_account_reports_body .o_account_report_column_value::before,
|
JavaScript Helper Classes
|
||||||
body .o_content .o_account_reports_body .o_account_report_summary_value::before,
|
هذه الكلاسات ستُطبق عبر JavaScript
|
||||||
body .o_content .o_account_reports_body .o_account_report_line [data-parent-id] .o_account_report_column_value::before {
|
========================================== */
|
||||||
display: none;
|
|
||||||
|
.js_has_sar_symbol {
|
||||||
|
font-family: 'sar-symbol', inherit, sans-serif !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.js_currency_sar {
|
||||||
|
font-family: 'sar-symbol', inherit, sans-serif !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ==========================================
|
||||||
|
ضمان عدم تأثير على باقي النظام
|
||||||
|
========================================== */
|
||||||
|
|
||||||
|
/* التأكد من أن باقي النصوص تحتفظ بالفونت الأصلي */
|
||||||
|
body,
|
||||||
|
.o_form_view,
|
||||||
|
.o_list_view,
|
||||||
|
.o_kanban_view,
|
||||||
|
input:not(.sar_currency),
|
||||||
|
textarea:not(.sar_currency),
|
||||||
|
select:not(.sar_currency),
|
||||||
|
.o_field_widget:not(.sar_currency),
|
||||||
|
.btn:not(.sar_currency) {
|
||||||
|
/* الاحتفاظ بالفونت الأصلي */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ==========================================
|
||||||
|
CRITICAL: JavaScript Integration Required
|
||||||
|
========================================== */
|
||||||
|
|
||||||
|
/*
|
||||||
|
هذا الحل يتطلب JavaScript للعمل بفعالية:
|
||||||
|
|
||||||
|
1. البحث عن العناصر التي تحتوي على رمز العملة السعودية
|
||||||
|
2. إضافة كلاس 'sar_currency' أو 'js_has_sar_symbol' لها
|
||||||
|
3. هذا سيضمن تطبيق الفونت الصحيح فقط على العناصر المطلوبة
|
||||||
|
|
||||||
|
مثال JavaScript المطلوب:
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
// البحث عن العناصر التي تحتوي على رمز الريال
|
||||||
|
const elements = document.querySelectorAll('*');
|
||||||
|
elements.forEach(element => {
|
||||||
|
if (element.textContent && element.textContent.includes('﷼')) {
|
||||||
|
element.classList.add('js_has_sar_symbol');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// مراقبة التغييرات في DOM
|
||||||
|
const observer = new MutationObserver(function(mutations) {
|
||||||
|
mutations.forEach(function(mutation) {
|
||||||
|
if (mutation.type === 'childList') {
|
||||||
|
mutation.addedNodes.forEach(function(node) {
|
||||||
|
if (node.nodeType === 1) { // Element node
|
||||||
|
if (node.textContent && node.textContent.includes('﷼')) {
|
||||||
|
node.classList.add('js_has_sar_symbol');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
observer.observe(document.body, {
|
||||||
|
childList: true,
|
||||||
|
subtree: true
|
||||||
|
});
|
||||||
|
});
|
||||||
|
*/
|
||||||
|
|
@ -0,0 +1,217 @@
|
||||||
|
/**
|
||||||
|
* SAR Symbol Detection and Font Application
|
||||||
|
* يقوم هذا الكود بالبحث عن رمز العملة السعودية وتطبيق الفونت المناسب
|
||||||
|
*/
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
// رمز العملة السعودية الجديد
|
||||||
|
const SAR_SYMBOLS = [
|
||||||
|
'﷼', // الرمز الكلاسيكي
|
||||||
|
'ر.س', // اختصار ريال سعودي
|
||||||
|
'SAR', // كود العملة
|
||||||
|
'\uFDFC', // Unicode للرمز الجديد
|
||||||
|
'\ue900' // الرمز المخصص في الفونت
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* فحص ما إذا كان العنصر يحتوي على رمز العملة السعودية
|
||||||
|
*/
|
||||||
|
function containsSarSymbol(text) {
|
||||||
|
if (!text) return false;
|
||||||
|
return SAR_SYMBOLS.some(symbol => text.includes(symbol));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* تطبيق كلاس الفونت على العنصر
|
||||||
|
*/
|
||||||
|
function applySarFont(element) {
|
||||||
|
if (element && element.nodeType === 1) { // Element node
|
||||||
|
element.classList.add('js_has_sar_symbol');
|
||||||
|
|
||||||
|
// تطبيق كلاسات إضافية حسب نوع العنصر
|
||||||
|
if (element.classList.contains('o_field_monetary')) {
|
||||||
|
element.classList.add('sar_currency');
|
||||||
|
}
|
||||||
|
if (element.classList.contains('oe_currency_value')) {
|
||||||
|
element.classList.add('sar_currency');
|
||||||
|
}
|
||||||
|
if (element.closest('.o_account_reports_table')) {
|
||||||
|
element.classList.add('sar_currency');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* فحص عنصر واحد وأطفاله
|
||||||
|
*/
|
||||||
|
function checkElement(element) {
|
||||||
|
if (!element || element.nodeType !== 1) return;
|
||||||
|
|
||||||
|
// فحص النص المباشر
|
||||||
|
if (element.textContent && containsSarSymbol(element.textContent)) {
|
||||||
|
applySarFont(element);
|
||||||
|
}
|
||||||
|
|
||||||
|
// فحص الخصائص
|
||||||
|
const attributes = ['title', 'data-currency', 'data-currency-code', 'data-symbol'];
|
||||||
|
attributes.forEach(attr => {
|
||||||
|
const value = element.getAttribute(attr);
|
||||||
|
if (value && containsSarSymbol(value)) {
|
||||||
|
applySarFont(element);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// فحص الأطفال (فقط العناصر النصية المباشرة لتجنب الإفراط)
|
||||||
|
if (element.children.length === 0 && element.textContent) {
|
||||||
|
const parent = element.parentElement;
|
||||||
|
if (parent && containsSarSymbol(element.textContent)) {
|
||||||
|
applySarFont(parent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* فحص جميع العناصر في الصفحة
|
||||||
|
*/
|
||||||
|
function scanAllElements() {
|
||||||
|
// فحص العناصر المحتملة أولاً (تحسين الأداء)
|
||||||
|
const potentialElements = [
|
||||||
|
'.o_field_monetary',
|
||||||
|
'.oe_currency_value',
|
||||||
|
'.o_field_widget[data-field-type="monetary"]',
|
||||||
|
'.o_data_cell',
|
||||||
|
'.oe_kanban_details',
|
||||||
|
'.o_account_reports_table td',
|
||||||
|
'.o_account_reports_table th',
|
||||||
|
'.pos-content *',
|
||||||
|
'.product_price',
|
||||||
|
'[data-currency]',
|
||||||
|
'[data-currency-code]'
|
||||||
|
];
|
||||||
|
|
||||||
|
potentialElements.forEach(selector => {
|
||||||
|
try {
|
||||||
|
const elements = document.querySelectorAll(selector);
|
||||||
|
elements.forEach(checkElement);
|
||||||
|
} catch (e) {
|
||||||
|
// تجاهل أخطاء السيلكتور
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// فحص شامل كـ fallback
|
||||||
|
const allElements = document.querySelectorAll('*');
|
||||||
|
allElements.forEach(element => {
|
||||||
|
if (element.textContent && element.textContent.length < 200) { // تجنب النصوص الطويلة
|
||||||
|
checkElement(element);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* مراقب تغييرات DOM
|
||||||
|
*/
|
||||||
|
function setupDOMObserver() {
|
||||||
|
const observer = new MutationObserver(function(mutations) {
|
||||||
|
mutations.forEach(function(mutation) {
|
||||||
|
if (mutation.type === 'childList') {
|
||||||
|
mutation.addedNodes.forEach(function(node) {
|
||||||
|
if (node.nodeType === 1) { // Element node
|
||||||
|
checkElement(node);
|
||||||
|
// فحص الأطفال الجدد
|
||||||
|
const children = node.querySelectorAll('*');
|
||||||
|
children.forEach(checkElement);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else if (mutation.type === 'characterData') {
|
||||||
|
// تغيير في النص
|
||||||
|
const parent = mutation.target.parentElement;
|
||||||
|
if (parent) {
|
||||||
|
checkElement(parent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
observer.observe(document.body, {
|
||||||
|
childList: true,
|
||||||
|
subtree: true,
|
||||||
|
characterData: true
|
||||||
|
});
|
||||||
|
|
||||||
|
return observer;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* معالج خاص للحقول النقدية في أودو
|
||||||
|
*/
|
||||||
|
function handleOdooMonetaryFields() {
|
||||||
|
// مراقبة تحديثات البيانات في أودو
|
||||||
|
if (window.odoo && window.odoo.define) {
|
||||||
|
window.odoo.define('sar_symbol.field_utils', function (require) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
const fieldUtils = require('web.field_utils');
|
||||||
|
const originalFormatMonetary = fieldUtils.format.monetary;
|
||||||
|
|
||||||
|
fieldUtils.format.monetary = function(value, field, options) {
|
||||||
|
const result = originalFormatMonetary.apply(this, arguments);
|
||||||
|
|
||||||
|
// إذا كان النتيجة تحتوي على رمز العملة السعودية
|
||||||
|
if (result && containsSarSymbol(result)) {
|
||||||
|
// سنحتاج لمعالجة هذا في DOM لاحقاً
|
||||||
|
setTimeout(() => {
|
||||||
|
const elements = document.querySelectorAll('[data-field-type="monetary"]');
|
||||||
|
elements.forEach(element => {
|
||||||
|
if (element.textContent && containsSarSymbol(element.textContent)) {
|
||||||
|
applySarFont(element);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, 100);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
|
||||||
|
return fieldUtils;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* تهيئة النظام
|
||||||
|
*/
|
||||||
|
function initialize() {
|
||||||
|
console.log('SAR Symbol Font System: Initializing...');
|
||||||
|
|
||||||
|
// فحص أولي
|
||||||
|
scanAllElements();
|
||||||
|
|
||||||
|
// إعداد المراقبة
|
||||||
|
setupDOMObserver();
|
||||||
|
|
||||||
|
// معالجة خاصة لأودو
|
||||||
|
handleOdooMonetaryFields();
|
||||||
|
|
||||||
|
// فحص دوري (للتأكد)
|
||||||
|
setInterval(scanAllElements, 5000);
|
||||||
|
|
||||||
|
console.log('SAR Symbol Font System: Ready');
|
||||||
|
}
|
||||||
|
|
||||||
|
// تشغيل النظام
|
||||||
|
if (document.readyState === 'loading') {
|
||||||
|
document.addEventListener('DOMContentLoaded', initialize);
|
||||||
|
} else {
|
||||||
|
initialize();
|
||||||
|
}
|
||||||
|
|
||||||
|
// تصدير للاستخدام الخارجي
|
||||||
|
window.SarSymbolSystem = {
|
||||||
|
scan: scanAllElements,
|
||||||
|
check: checkElement,
|
||||||
|
apply: applySarFont
|
||||||
|
};
|
||||||
|
|
||||||
|
})();
|
||||||
|
|
@ -1,65 +1,87 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<odoo>
|
<odoo>
|
||||||
<data>
|
<data>
|
||||||
|
<!-- Backend Assets -->
|
||||||
<template id="assets_backend" name="am_assets_backend" inherit_id="web.assets_backend">
|
<template id="assets_backend" name="am_assets_backend" inherit_id="web.assets_backend">
|
||||||
<xpath expr="." position="inside">
|
<xpath expr="." position="inside">
|
||||||
<link rel="stylesheet" type="text/css"
|
<link rel="stylesheet" type="text/css"
|
||||||
href="/am_sar_symbol/static/src/css/style.css" />
|
href="/am_sar_symbol/static/src/css/style.css" />
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="/am_sar_symbol/static/src/js/sar_symbol.js"></script>
|
||||||
</xpath>
|
</xpath>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<!-- Frontend Assets -->
|
||||||
<template id="assets_frontend" name="am_assets_frontend" inherit_id="web.assets_frontend">
|
<template id="assets_frontend" name="am_assets_frontend" inherit_id="web.assets_frontend">
|
||||||
<xpath expr="." position="inside">
|
<xpath expr="." position="inside">
|
||||||
<link rel="stylesheet" type="text/css"
|
<link rel="stylesheet" type="text/css"
|
||||||
href="/am_sar_symbol/static/src/css/style.css" />
|
href="/am_sar_symbol/static/src/css/style.css" />
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="/am_sar_symbol/static/src/js/sar_symbol.js"></script>
|
||||||
</xpath>
|
</xpath>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<!-- Common Assets -->
|
||||||
<template id="assets_common" name="am_assets_common" inherit_id="web.assets_common">
|
<template id="assets_common" name="am_assets_common" inherit_id="web.assets_common">
|
||||||
<xpath expr="." position="inside">
|
<xpath expr="." position="inside">
|
||||||
<link rel="stylesheet" type="text/css"
|
<link rel="stylesheet" type="text/css"
|
||||||
href="/am_sar_symbol/static/src/css/style.css" />
|
href="/am_sar_symbol/static/src/css/style.css" />
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="/am_sar_symbol/static/src/js/sar_symbol.js"></script>
|
||||||
</xpath>
|
</xpath>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<!-- Report Assets Common -->
|
||||||
<template id="report_assets_common" name="am_report_assets_common"
|
<template id="report_assets_common" name="am_report_assets_common"
|
||||||
inherit_id="web.report_assets_common">
|
inherit_id="web.report_assets_common">
|
||||||
<xpath expr="." position="inside">
|
<xpath expr="." position="inside">
|
||||||
<link rel="stylesheet" type="text/css"
|
<link rel="stylesheet" type="text/css"
|
||||||
href="/am_sar_symbol/static/src/css/style.css" />
|
href="/am_sar_symbol/static/src/css/style.css" />
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="/am_sar_symbol/static/src/js/sar_symbol.js"></script>
|
||||||
</xpath>
|
</xpath>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<!-- Report Assets PDF -->
|
||||||
<template id="report_assets_pdf" name="am_report_assets_pdf"
|
<template id="report_assets_pdf" name="am_report_assets_pdf"
|
||||||
inherit_id="web.report_assets_pdf">
|
inherit_id="web.report_assets_pdf">
|
||||||
<xpath expr="." position="inside">
|
<xpath expr="." position="inside">
|
||||||
<link rel="stylesheet" type="text/css"
|
<link rel="stylesheet" type="text/css"
|
||||||
href="/am_sar_symbol/static/src/css/style.css" />
|
href="/am_sar_symbol/static/src/css/style.css" />
|
||||||
|
<!-- ملاحظة: JavaScript قد لا يعمل في PDF، لذلك نعتمد على CSS فقط -->
|
||||||
</xpath>
|
</xpath>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<!-- Point of Sale Assets -->
|
||||||
<template id="point_of_sale_assets" name="am_point_of_sale_assets"
|
<template id="point_of_sale_assets" name="am_point_of_sale_assets"
|
||||||
inherit_id="point_of_sale.assets">
|
inherit_id="point_of_sale.assets">
|
||||||
<xpath expr="." position="inside">
|
<xpath expr="." position="inside">
|
||||||
<link rel="stylesheet" type="text/css"
|
<link rel="stylesheet" type="text/css"
|
||||||
href="/am_sar_symbol/static/src/css/style.css" />
|
href="/am_sar_symbol/static/src/css/style.css" />
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="/am_sar_symbol/static/src/js/sar_symbol.js"></script>
|
||||||
</xpath>
|
</xpath>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<!-- QUnit Suite Tests -->
|
||||||
<template id="qunit_suite_tests" name="am_qunit_suite_tests"
|
<template id="qunit_suite_tests" name="am_qunit_suite_tests"
|
||||||
inherit_id="web.qunit_suite_tests">
|
inherit_id="web.qunit_suite_tests">
|
||||||
<xpath expr="." position="inside">
|
<xpath expr="." position="inside">
|
||||||
<link rel="stylesheet" type="text/css"
|
<link rel="stylesheet" type="text/css"
|
||||||
href="/am_sar_symbol/static/src/css/style.css" />
|
href="/am_sar_symbol/static/src/css/style.css" />
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="/am_sar_symbol/static/src/js/sar_symbol.js"></script>
|
||||||
</xpath>
|
</xpath>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<!-- Assets Tests -->
|
||||||
<template id="assets_tests" name="am_assets_tests"
|
<template id="assets_tests" name="am_assets_tests"
|
||||||
inherit_id="web.assets_tests">
|
inherit_id="web.assets_tests">
|
||||||
<xpath expr="." position="inside">
|
<xpath expr="." position="inside">
|
||||||
<link rel="stylesheet" type="text/css"
|
<link rel="stylesheet" type="text/css"
|
||||||
href="/am_sar_symbol/static/src/css/style.css" />
|
href="/am_sar_symbol/static/src/css/style.css" />
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="/am_sar_symbol/static/src/js/sar_symbol.js"></script>
|
||||||
</xpath>
|
</xpath>
|
||||||
</template>
|
</template>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue