diff --git a/odex25_base/web_hijri_datepicker/README.md b/odex25_base/web_hijri_datepicker/README.md deleted file mode 100644 index 7934c205a..000000000 --- a/odex25_base/web_hijri_datepicker/README.md +++ /dev/null @@ -1,151 +0,0 @@ -# Web Hijri Datepicker - Enhanced Version 2.2.0 - -## 🌟 التحديثات الجديدة - -### ✨ المميزات المحسنة: -- **مكتبة محدثة**: ترقية إلى jQuery Calendars v2.2.0 -- **تصميم حديث**: واجهة مستخدم محسنة تتماشى مع Odoo -- **أداء أفضل**: تحسينات في السرعة والاستجابة -- **دعم RTL محسن**: دعم أفضل للغة العربية -- **UX محسن**: تجربة مستخدم أكثر سلاسة - -### 🎨 التصميم الجديد: -- شكل عصري ومتجاوب -- ألوان متناسقة مع Odoo -- تأثيرات بصرية ناعمة -- أيقونات وأزرار محسنة -- انتقالات سلسة - -### 🚀 التحسينات التقنية: -- معالجة أخطاء محسنة -- أداء أفضل للذاكرة -- تكامل أفضل مع Odoo -- دعم التحقق من البيانات -- تحسين الأمان - -## 📦 المتطلبات - -- Odoo 14.0+ -- jQuery 3.0+ -- متصفح حديث (Chrome 60+, Firefox 55+, Safari 10+) - -## 🔧 التثبيت - -1. تثبيت الموديول عبر Odoo Apps -2. إعادة تشغيل الخدمة (اختياري للأداء الأمثل) -3. تحديث assets إذا لزم الأمر - -## 📱 الاستخدام - -سيظهر حقل التاريخ الهجري تلقائياً أسفل كل حقل تاريخ ميلادي في النظام. - -### المميزات: -- **تحويل تلقائي**: بين التاريخ الميلادي والهجري -- **مزامنة فورية**: تحديث الحقلين معاً -- **واجهة بديهية**: سهلة الاستخدام -- **دعم كامل للعربية**: أرقام وأسماء الشهور بالعربية - -## 🌍 اللغات المدعومة - -- العربية (افتراضي) -- الإنجليزية -- الفارسية - -## 🎯 الميزات الرئيسية - -### ✅ للمستخدمين: -- واجهة بديهية وسهلة -- تحويل فوري بين التقاويم -- عرض واضح للتواريخ -- دعم شامل للعربية - -### ✅ للمطورين: -- كود نظيف ومنظم -- API مرن للتخصيص -- تكامل سلس مع Odoo -- موثق بالكامل - -## 🔄 التحديثات من الإصدار السابق - -### 🆕 جديد في v2.2.0: -1. **مكتبة jQuery Calendars محدثة** -2. **تصميم UI/UX جديد كلياً** -3. **أداء محسن بنسبة 40%** -4. **معالجة أخطاء متقدمة** -5. **دعم RTL محسن** -6. **تكامل أفضل مع النظام** - -### 🐛 الإصلاحات: -- حل مشكلة التداخل في العرض -- تحسين الاستجابة على الأجهزة المحمولة -- إصلاح مشكلة عرض التواريخ الهجرية -- تحسين الأداء في النماذج الكبيرة - -## ⚡ الأداء - -- **سرعة التحميل**: محسنة بنسبة 40% -- **استهلاك الذاكرة**: مخفض بنسبة 25% -- **الاستجابة**: أسرع بـ 60% -- **التوافق**: أفضل مع جميع المتصفحات - -## 🛠️ التخصيص - -يمكن تخصيص المظهر والسلوك عبر: - -### CSS Variables: -```css -:root { - --hijri-primary-color: #6c5ce7; - --hijri-secondary-color: #74b9ff; - --hijri-border-radius: 8px; - --hijri-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); -} -``` - -### JavaScript Options: -```javascript -// إعدادات مخصصة -$.calendarsPicker.setDefaults({ - showSpeed: 'fast', - showAnim: 'slideDown', - yearRange: 'c-50:c+50' -}); -``` - -## 📞 الدعم - -للدعم الفني أو الاستفسارات: -- 📧 Email: support@example.com -- 📱 WhatsApp: +966xxxxxxxxx -- 🌐 Website: www.example.com - -## 📄 الرخصة - -هذا الموديول مرخص تحت رخصة MIT. - -## 🤝 المساهمة - -نرحب بمساهماتكم لتطوير الموديول: -1. Fork المشروع -2. أنشئ branch جديد للميزة -3. Commit التغييرات -4. Push إلى Branch -5. أنشئ Pull Request - -## 📈 خارطة الطريق - -### 🔮 القادم في الإصدارات القادمة: -- دعم المزيد من التقاويم -- تكامل مع الموبايل app -- ميزات AI للتحويل الذكي -- تحسينات الأداء المستمرة - ---- - -## 🏆 شكر خاص - -شكراً لـ Keith Wood على مكتبة jQuery Calendars الرائعة. - -**النسخة الحالية**: 2.2.0 -**تاريخ التحديث**: أغسطس 2025 -**الحالة**: ✅ مستقر ومجرب \ No newline at end of file diff --git a/odex25_base/web_hijri_datepicker/__manifest__.py b/odex25_base/web_hijri_datepicker/__manifest__.py index 3790546b7..4a4a7071b 100644 --- a/odex25_base/web_hijri_datepicker/__manifest__.py +++ b/odex25_base/web_hijri_datepicker/__manifest__.py @@ -1,100 +1,15 @@ # -*- coding: utf-8 -*- { - 'name': 'Web Hijri Datepicker Enhanced', - 'version': '2.2.0', - 'category': 'Web/Tools', - 'summary': 'Modern Hijri Calendar Integration with Enhanced UI/UX', - 'description': """ -Enhanced Web Hijri Datepicker v2.2.0 -===================================== - -🌟 **Major Update with Modern Design and Performance Improvements** - -**New Features:** -• Updated jQuery Calendars library to v2.2.0 -• Modern, responsive UI design matching Odoo's aesthetics -• Enhanced Arabic/RTL language support -• Improved performance and memory optimization -• Better error handling and validation -• Smooth animations and transitions -• Mobile-friendly responsive design - -**Key Improvements:** -• 40% faster loading times -• 25% reduced memory usage -• 60% better responsiveness -• Enhanced integration with Odoo forms -• Improved accessibility features -• Better cross-browser compatibility - -**Features:** -• Automatic conversion between Gregorian and Hijri dates -• Real-time synchronization of both calendars -• Beautiful modern popup calendar interface -• Full Arabic language support with proper RTL -• Clear placeholders and intuitive user experience -• Seamless integration with all Odoo date fields - -**Technical Specs:** -• Compatible with Odoo 14.0+ -• Supports multiple Islamic calendar variants -• Responsive design for all screen sizes -• Modern CSS3 with smooth animations -• Enhanced JavaScript with error handling -• Optimized for production environments - -This module automatically adds Hijri date picker functionality below every standard date field in Odoo, providing users with an intuitive way to work with Islamic calendar dates. - """, - 'author': 'Your Company', - 'website': 'https://www.yourcompany.com', - 'license': 'LGPL-3', + 'name': 'Web Hijri', + 'category' : 'Odex25-base', + 'version': '1.0', + 'description': """Enable Web Hijri Datepicker in Odoo""", 'depends': ['web'], - 'data': [ - 'views/web_hijri_template.xml' - ], - 'assets': { - 'web.assets_backend': [ - 'web_hijri_datepicker/static/src/scss/hijri_modern.css', - 'web_hijri_datepicker/static/src/scss/web_hijri_date.scss', - 'web_hijri_datepicker/static/lib/jquery.calendars.package-2.2.0/jquery.plugin.js', - 'web_hijri_datepicker/static/lib/jquery.calendars.package-2.2.0/jquery.calendars.js', - 'web_hijri_datepicker/static/lib/jquery.calendars.package-2.2.0/jquery.calendars.all.js', - 'web_hijri_datepicker/static/lib/jquery.calendars.package-2.2.0/jquery.calendars.plus.js', - 'web_hijri_datepicker/static/lib/jquery.calendars.package-2.2.0/jquery.calendars.picker.js', - 'web_hijri_datepicker/static/lib/jquery.calendars.package-2.2.0/jquery.calendars.islamic.js', - 'web_hijri_datepicker/static/lib/jquery.calendars.package-2.2.0/jquery.calendars.islamic-ar.js', - 'web_hijri_datepicker/static/lib/jquery.calendars.package-2.2.0/jquery.calendars.islamic-fa.js', - 'web_hijri_datepicker/static/lib/jquery.timeentry.package-2.0.1/jquery.timeentry.css', - 'web_hijri_datepicker/static/lib/jquery.timeentry.package-2.0.1/jquery.plugin.js', - 'web_hijri_datepicker/static/lib/jquery.timeentry.package-2.0.1/jquery.timeentry.js', - 'web_hijri_datepicker/static/lib/jquery.timeentry.package-2.0.1/jquery.timeentry-ar.js', - 'web_hijri_datepicker/static/src/js/web_hijri_date.js', - ], - }, - 'qweb': [ - "static/src/xml/web_hijri_date.xml" - ], - 'images': [ - 'static/description/banner.png', - 'static/description/icon.png', - ], + 'data': ['views/web_hijri_template.xml'], + 'qweb': ["static/src/xml/web_hijri_date.xml"], 'installable': True, 'auto_install': False, - 'application': True, 'bootstrap': True, - 'pre_init_hook': False, - 'post_init_hook': False, - 'uninstall_hook': False, - 'external_dependencies': { - 'python': [], - 'bin': [], - }, - 'maintainers': ['Your Name'], - 'support': 'support@yourcompany.com', - 'price': 0, - 'currency': 'USD', - 'live_test_url': 'https://demo.yourcompany.com', - 'demo': [], - 'test': [], -} \ No newline at end of file + 'application': True, +} diff --git a/odex25_base/web_hijri_datepicker/static/src/js/web_hijri_date.js b/odex25_base/web_hijri_datepicker/static/src/js/web_hijri_date.js index f9c1f5b4f..5c6a1562f 100644 --- a/odex25_base/web_hijri_datepicker/static/src/js/web_hijri_date.js +++ b/odex25_base/web_hijri_datepicker/static/src/js/web_hijri_date.js @@ -7,7 +7,6 @@ odoo.define('web_hijri_datepicker.datepicker', function (require) { var FieldDate = require('web.basic_fields').FieldDate; var _t = core._t; - // Enhanced Hijri month names with better Arabic support var hijriMonths = { "Muharram": "مُحَرَّم", "Safar": "صَفَر", @@ -23,11 +22,10 @@ odoo.define('web_hijri_datepicker.datepicker', function (require) { "Dhu al-Hijjah": "ذُوالْحِجَّة" } - // Enhanced number conversion for better Arabic display String.prototype.fromDigits = function () { - var arabicDigits = ['۰', '۱', '۲', '۳', '٤', '۵', '٦', '۷', '۸', '۹']; - return this.replace(/[0-9]/g, function (digit) { - return arabicDigits[+digit]; + var id = ['۰', '۱', '۲', '۳', '٤', '۵', '٦', '۷', '۸', '۹']; + return this.replace(/[0-9]/g, function (w) { + return id[+w] }); } @@ -36,180 +34,81 @@ odoo.define('web_hijri_datepicker.datepicker', function (require) { var self = this; this.$input = this.$('input.o_datepicker_input'); this.$input_hijri = this.$('input.o_hijri'); - - // Enhanced click handler with better UX this.$input_hijri.click(function (e) { e.preventDefault(); - e.stopPropagation(); self.$input_hijri.calendarsPicker('show'); }); - - // Modern configuration with enhanced features this.$input_hijri.calendarsPicker({ - calendar: $.calendars.instance('islamic', this.options.locale || 'ar'), + calendar: $.calendars.instance('islamic', this.options.locale), dateFormat: 'M d, yyyy', - showAnim: 'slideDown', // Modern animation - showSpeed: 'fast', - showOnFocus: false, - closeOnDateSelect: true, // Better UX - close after selection - yearRange: 'c-100:c+50', // Extended year range - changeMonth: true, - changeYear: true, - showOtherMonths: true, - selectOtherMonths: true, - localNumbers: true, // Enable Arabic numerals - renderer: this._getModernRenderer(), + closeOnDateSelect: false, onSelect: this._convertDateToHijri.bind(this), - onShow: function() { - // Add modern CSS class for styling - $('.calendars-popup').addClass('hijri-modern-popup'); - } }); - this.__libInput++; this.$el.datetimepicker(this.options); this.__libInput--; this._setReadonly(false); }, - - /** - * Get modern renderer configuration for better styling - */ - _getModernRenderer: function() { - return $.extend({}, $.calendarsPicker.defaultRenderer, { - picker: '
{months}
', - monthRow: '
{months}
', - month: '
' + - '
' + - '' + - '
{monthHeader}
' + - '' + - '
' + - '{weekHeader}{weeks}
' + - '
', - weekHeader: '{days}', - dayHeader: '{day}', - week: '{days}', - day: '{day}', - monthSelector: '.calendars-month', - daySelector: 'td', - rtlClass: 'calendars-rtl', - multiClass: 'calendars-multi', - defaultClass: '', - selectedClass: 'calendars-selected', - highlightedClass: 'calendars-highlight', - todayClass: 'calendars-today', - otherMonthClass: 'calendars-other-month', - weekendClass: 'calendars-weekend', - commandClass: 'calendars-cmd calendars-cmd-', - commandButtonClass: '', - commandLinkClass: '', - disabledClass: 'calendars-disabled' - }); - }, - _convertGregorianToHijri: function (date) { var year, month, day, jd, formatted_date; var calendar = $.calendars.instance('islamic'); - if (date && !_.isUndefined(date)) { date = moment(date).locale('en'); month = parseInt(date.format('M')); day = parseInt(date.format('D')); year = parseInt(date.format('YYYY')); - jd = $.calendars.instance('gregorian').toJD(year, month, day); formatted_date = calendar.fromJD(jd); - - var hijriMonth = calendar.formatDate('MM', formatted_date); - var hijriDate = calendar.formatDate('d, yyyy', formatted_date); - - // Enhanced Arabic localization - if (this.options.locale === 'ar' || !this.options.locale) { - hijriDate = hijriDate.fromDigits(); - // Find Arabic month name - var arabicMonth = _.find(hijriMonths, function (value, key) { - return key === hijriMonth; + var month = calendar.formatDate('MM', formatted_date); + var date = calendar.formatDate('d, yyyy', formatted_date); + if (this.options.locale == 'ar') { + date = date.fromDigits(); + month = _.find(hijriMonths, function (value, key) { + if (key === month) { + return value; + } }); - hijriMonth = arabicMonth || hijriMonth; } - - return _.str.sprintf("%s %s", hijriMonth, hijriDate); + return _.str.sprintf("%s %s", month, date); } }, - _convertDateToHijri: function (date) { if (!date || date.length === 0) { return false; } - - // Prevent event bubbling for better UX - $(document).off('click.calendars').on('click.calendars', '.calendars a', function (e) { + $(document).on('click', '.calendars a', function (e) { e.preventDefault(); e.stopImmediatePropagation(); return false; }); - - try { - var selectedDate = date[0]; - var jd = $.calendars.instance('islamic').toJD( - parseInt(selectedDate.year()), - parseInt(selectedDate.month()), - parseInt(selectedDate.day()) - ); - - var gregorianDate = $.calendars.instance('gregorian').fromJD(jd); - var dateValue = moment(time.str_to_date(gregorianDate)).add(1, 'days'); - - this.setValue(this._parseClient(dateValue)); - this.trigger("datetime_changed"); - - // Hide the popup after selection for better UX - this.$input_hijri.calendarsPicker('hide'); - - } catch (error) { - console.warn('Hijri date conversion error:', error); - } - }, + var jd = $.calendars.instance('islamic').toJD(parseInt(date[0].year()), parseInt(date[0].month()), parseInt(date[0].day())); + var formatted_date = $.calendars.instance('gregorian').fromJD(jd); + var date_value = moment(time.str_to_date(formatted_date)).add(1, 'days'); + this.setValue(this._parseClient(date_value)); + this.trigger("datetime_changed"); + }, _parseDate: function (v) { return v.clone().locale('en').format('YYYY-MM-DD'); }, - setValue: function (value) { this._super.apply(this, arguments); var parsed_date = value ? this._parseDate(value) : null; var hijri_value = parsed_date ? this._convertGregorianToHijri(parsed_date) : null; - - // Enhanced placeholder handling - if (hijri_value) { - this.$input_hijri.val(hijri_value).removeClass('o_input_placeholder'); - } else { - this.$input_hijri.val('').addClass('o_input_placeholder'); - } + this.$input_hijri.val(hijri_value); }, - destroy: function () { - // Clean up event handlers - $(document).off('click.calendars'); - - if (this.$input_hijri && this.$input_hijri.hasClass('hasCalendarsPicker')) { - this.$input_hijri.calendarsPicker('destroy'); - } - if (this.$el) { this.__libInput++; this.$el.datetimepicker('destroy'); this.__libInput--; } }, - _onInputClicked: function (e) { - if (e && e.target && !$(e.target).hasClass('o_hijri')) { + if (e && e.target && ! $(e.target).hasClass('o_hijri')){ return this._super(); } }, - _formatClients: function (v) { return field_utils.format[this.type_of_date](v, null, {timezone: true}); }, @@ -219,66 +118,31 @@ odoo.define('web_hijri_datepicker.datepicker', function (require) { _renderReadonly: function () { var self = this; this._super.apply(this, arguments); - if (this.value) { + window.dv = this.value; this.datewidget = this._makeDatePicker(); - var $container = $('
'); - - // Gregorian date - var gregorianValue = this.value ? this.datewidget._formatClients(this.value) : ''; - var $gregorianDiv = $('
', { - class: this.$el.attr('class') + ' o_gregorian_date', - text: gregorianValue, - }); - - // Hijri date with enhanced styling + var $div = $('
'); + var value = this.value ? this.datewidget._formatClients(this.value) : ''; var parsed_date = this.value ? this.datewidget._parseDate(this.value) : ''; var hijri_value = parsed_date ? this.datewidget._convertGregorianToHijri(parsed_date) : ''; - if (hijri_value) { - var $hijriDiv = $('
', { - class: this.$el.attr('class') + ' o_hijri_date mt-1', - style: 'font-size: 12px; color: #28a745; font-weight: 500;' - }); - - $hijriDiv.html('التاريخ الهجري: ' + hijri_value); - $container.append($gregorianDiv).append($hijriDiv); - } else { - $container.append($gregorianDiv); - } + // Gregorian Date + $('
', { + class: this.$el.attr('class'), + text: value, + }).appendTo($div); + + // Hijri Date with simple display + $('
', { + class: this.$el.attr('class') + ' mt-1', + text: hijri_value ? 'التاريخ الهجري: ' + hijri_value : '', + style: 'font-size: 12px; color: #6c757d;' + }).appendTo($div); this.datewidget.appendTo('
').then(function () { - self._replaceElement($container); + self._replaceElement($div); }); } }, - }); - - // Enhanced integration with Odoo's form validation - if ($.validator) { - $.validator.addMethod('hijriDate', function(value, element) { - if (!value) return true; - - try { - var calendar = $.calendars.instance('islamic'); - var parsedDate = calendar.parseDate('M d, yyyy', value); - return parsedDate && calendar.isValid(parsedDate.year(), parsedDate.month(), parsedDate.day()); - } catch (e) { - return false; - } - }, 'الرجاء إدخال تاريخ هجري صحيح'); - } - - // Global configuration for better performance - if ($.calendarsPicker) { - $.calendarsPicker.setDefaults({ - showSpeed: 'fast', - showAnim: 'slideDown', - changeMonth: true, - changeYear: true, - localNumbers: true, - yearRange: 'c-100:c+50' - }); - } - + }) }); diff --git a/odex25_base/web_hijri_datepicker/static/src/scss/hijri_modern.css b/odex25_base/web_hijri_datepicker/static/src/scss/hijri_modern.css deleted file mode 100644 index db0dbd269..000000000 --- a/odex25_base/web_hijri_datepicker/static/src/scss/hijri_modern.css +++ /dev/null @@ -1,265 +0,0 @@ -/* - * Modern Hijri Datepicker CSS - * Designed to integrate seamlessly with Odoo's UI - * Version: 2.2.0 Compatible - */ - -/* ==================== MODERN HIJRI DATEPICKER ==================== */ - -.calendars-popup { - z-index: 10000 !important; - position: absolute !important; - border: 1px solid #e0e0e0; - border-radius: 8px; - box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); - background: #ffffff; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; - font-size: 13px; - overflow: hidden; -} - -/* Main calendar container */ -.calendars { - min-width: 280px; - padding: 0; - background: #ffffff; - border-radius: 8px; -} - -/* Calendar header */ -.calendars-month-header { - background: linear-gradient(135deg, #6c5ce7, #74b9ff); - color: white; - padding: 12px 16px; - display: flex !important; - justify-content: space-between; - align-items: center; - font-weight: 600; - font-size: 14px; -} - -.calendars-month-header .calendars-month-year { - font-size: 16px; - font-weight: 700; - flex: 1; - text-align: center; - color: white; -} - -/* Navigation buttons */ -.calendars-nav { - background: transparent; - border: none; - color: white; - padding: 8px 12px; - border-radius: 6px; - cursor: pointer; - font-size: 16px; - transition: all 0.2s ease; - margin: 0 4px; -} - -.calendars-nav:hover { - background: rgba(255, 255, 255, 0.2); - transform: scale(1.1); -} - -/* Week header */ -.calendars thead { - background: #f8f9fa; - border-bottom: 1px solid #e9ecef; -} - -.calendars thead th { - padding: 12px 8px; - font-weight: 600; - color: #6c757d; - font-size: 12px; - text-align: center; - text-transform: uppercase; - letter-spacing: 0.5px; -} - -/* Calendar days */ -.calendars td { - position: relative; - padding: 0; - border: none; - background: white; -} - -.calendars td a, -.calendars td span { - display: block; - width: 36px; - height: 36px; - line-height: 36px; - text-align: center; - text-decoration: none; - color: #495057; - border-radius: 6px; - margin: 2px; - transition: all 0.2s ease; - font-weight: 500; - position: relative; -} - -/* Selectable dates */ -.calendars td a { - cursor: pointer; -} - -.calendars td a:hover { - background: #e3f2fd; - color: #1976d2; - transform: scale(1.05); - box-shadow: 0 2px 8px rgba(25, 118, 210, 0.2); -} - -/* Selected date */ -.calendars .calendars-selected a { - background: linear-gradient(135deg, #4caf50, #66bb6a) !important; - color: white !important; - font-weight: 700; - box-shadow: 0 4px 12px rgba(76, 175, 80, 0.3); -} - -/* Today */ -.calendars .calendars-today a { - background: #fff3e0; - color: #f57c00; - border: 2px solid #ff9800; - font-weight: 600; -} - -.calendars .calendars-today a:hover { - background: #ff9800; - color: white; -} - -/* Weekend days */ -.calendars .calendars-weekend a { - color: #f44336; - font-weight: 600; -} - -/* Other month dates */ -.calendars .calendars-other-month span { - color: #bdbdbd; - font-weight: 400; -} - -/* Disabled dates */ -.calendars .calendars-disabled span { - color: #e0e0e0 !important; - cursor: not-allowed; - opacity: 0.5; -} - -/* Control buttons footer */ -.calendars-commands { - background: #f8f9fa; - border-top: 1px solid #e9ecef; - padding: 12px 16px; - display: flex; - justify-content: space-between; - align-items: center; -} - -.calendars-cmd { - background: #ffffff; - border: 1px solid #dee2e6; - color: #495057; - padding: 6px 12px; - border-radius: 4px; - font-size: 12px; - cursor: pointer; - transition: all 0.2s ease; - font-weight: 500; -} - -.calendars-cmd:hover { - background: #007bff; - color: white; - border-color: #007bff; - transform: translateY(-1px); - box-shadow: 0 2px 4px rgba(0, 123, 255, 0.2); -} - -/* RTL Support */ -.calendars.calendars-rtl { - direction: rtl; -} - -.calendars.calendars-rtl .calendars-month-header { - flex-direction: row-reverse; -} - -/* Responsive design */ -@media (max-width: 480px) { - .calendars { - min-width: 260px; - } - - .calendars td a, - .calendars td span { - width: 32px; - height: 32px; - line-height: 32px; - font-size: 12px; - } - - .calendars-month-header { - padding: 10px 12px; - font-size: 13px; - } -} - -/* Animation for popup appearance */ -@keyframes hijriSlideIn { - from { - opacity: 0; - transform: translateY(-10px) scale(0.95); - } - to { - opacity: 1; - transform: translateY(0) scale(1); - } -} - -.calendars-popup { - animation: hijriSlideIn 0.2s ease-out; -} - -/* Special styling for Arabic numbers */ -.calendars.arabic-numbers { - font-family: 'Arial Unicode MS', 'Tahoma', sans-serif; -} - -/* Status bar styling if enabled */ -.calendars-status { - background: #343a40; - color: white; - padding: 8px 12px; - font-size: 11px; - text-align: center; - border-top: 1px solid #495057; -} - -/* Multiple month display */ -.calendars-multi .calendars-month { - display: inline-block; - vertical-align: top; - margin: 0 4px; -} - -/* Clear button special styling */ -.calendars-cmd.calendars-clear { - color: #dc3545; - border-color: #dc3545; -} - -.calendars-cmd.calendars-clear:hover { - background: #dc3545; - color: white; -} \ No newline at end of file diff --git a/odex25_base/web_hijri_datepicker/views/web_hijri_template.xml b/odex25_base/web_hijri_datepicker/views/web_hijri_template.xml index 65aec3db1..e4bb7ae11 100644 --- a/odex25_base/web_hijri_datepicker/views/web_hijri_template.xml +++ b/odex25_base/web_hijri_datepicker/views/web_hijri_template.xml @@ -3,28 +3,21 @@