Merge PR #4410: إصلاح placeholder التاريخ الميلادي
إصلاح placeholder التاريخ الميلادي - تطبيقه بعد تهيئة datetimepicker widget
This commit is contained in:
commit
8c0d42777b
|
|
@ -35,7 +35,7 @@ odoo.define('web_hijri_datepicker.datepicker', function (require) {
|
|||
this.$input = this.$('input.o_datepicker_input');
|
||||
this.$input_hijri = this.$('input.o_hijri');
|
||||
|
||||
// إضافة placeholders ديناميكية حسب اللغة
|
||||
// تحديد اللغة
|
||||
var locale = this.options.locale || 'en';
|
||||
var userLang = (odoo.session_info && odoo.session_info.user_context && odoo.session_info.user_context.lang) || 'en_US';
|
||||
|
||||
|
|
@ -49,8 +49,11 @@ odoo.define('web_hijri_datepicker.datepicker', function (require) {
|
|||
hijriPlaceholder = 'Hijri Date';
|
||||
}
|
||||
|
||||
// تطبيق placeholders على الحقول
|
||||
this.$input.attr('placeholder', gregorianPlaceholder);
|
||||
// حفظ placeholders للاستخدام لاحقاً
|
||||
this.gregorianPlaceholder = gregorianPlaceholder;
|
||||
this.hijriPlaceholder = hijriPlaceholder;
|
||||
|
||||
// تطبيق placeholder للتاريخ الهجري
|
||||
this.$input_hijri.attr('placeholder', hijriPlaceholder);
|
||||
|
||||
this.$input_hijri.click(function (e) {
|
||||
|
|
@ -63,11 +66,36 @@ odoo.define('web_hijri_datepicker.datepicker', function (require) {
|
|||
closeOnDateSelect: false,
|
||||
onSelect: this._convertDateToHijri.bind(this),
|
||||
});
|
||||
|
||||
// تهيئة datetimepicker
|
||||
this.__libInput++;
|
||||
this.$el.datetimepicker(this.options);
|
||||
this.__libInput--;
|
||||
|
||||
// تطبيق placeholder للتاريخ الميلادي بعد تهيئة datetimepicker
|
||||
// نستخدم setTimeout لضمان تطبيقه بعد أي تغييرات من datetimepicker
|
||||
setTimeout(function() {
|
||||
self.$input.attr('placeholder', gregorianPlaceholder);
|
||||
}, 0);
|
||||
|
||||
// إعادة تطبيق placeholder عند فقدان التركيز
|
||||
this.$input.on('blur', function() {
|
||||
if (!$(this).val()) {
|
||||
$(this).attr('placeholder', gregorianPlaceholder);
|
||||
}
|
||||
});
|
||||
|
||||
this._setReadonly(false);
|
||||
},
|
||||
|
||||
changeDatetime: function () {
|
||||
this._super.apply(this, arguments);
|
||||
// إعادة تطبيق placeholder بعد تغيير التاريخ
|
||||
if (this.gregorianPlaceholder && !this.$input.val()) {
|
||||
this.$input.attr('placeholder', this.gregorianPlaceholder);
|
||||
}
|
||||
},
|
||||
|
||||
_convertGregorianToHijri: function (date) {
|
||||
var year, month, day, jd, formatted_date;
|
||||
var calendar = $.calendars.instance('islamic');
|
||||
|
|
@ -115,6 +143,14 @@ odoo.define('web_hijri_datepicker.datepicker', function (require) {
|
|||
var parsed_date = value ? this._parseDate(value) : null;
|
||||
var hijri_value = parsed_date ? this._convertGregorianToHijri(parsed_date) : null;
|
||||
this.$input_hijri.val(hijri_value);
|
||||
|
||||
// إعادة تطبيق placeholders عند مسح القيم
|
||||
if (!value && this.gregorianPlaceholder) {
|
||||
this.$input.attr('placeholder', this.gregorianPlaceholder);
|
||||
}
|
||||
if (!hijri_value && this.hijriPlaceholder) {
|
||||
this.$input_hijri.attr('placeholder', this.hijriPlaceholder);
|
||||
}
|
||||
},
|
||||
destroy: function () {
|
||||
if (this.$el) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue