Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAli Rahimi <alirahimi818@gmail.com>2024-01-02 11:32:21 +0300
committerGitHub <noreply@github.com>2024-01-02 11:32:21 +0300
commitc76199514a62c921901b2b2a1c4dd3f93ff8df2a (patch)
treeef82233fb8e7035be22c21a7375be6d0fb1c8868 /web/html/xui/component
parent31e9734414f084b9d1725d5ae9be46d3720ac122 (diff)
added Jalalian datepicker (shamsi) (#1460)
* added datepicker option in setting page jalalian datepicker component was added translate files for datepicker updated * dark mode bug fixed
Diffstat (limited to 'web/html/xui/component')
-rw-r--r--web/html/xui/component/persianDatepicker.html60
1 files changed, 60 insertions, 0 deletions
diff --git a/web/html/xui/component/persianDatepicker.html b/web/html/xui/component/persianDatepicker.html
new file mode 100644
index 00000000..34ae4f8d
--- /dev/null
+++ b/web/html/xui/component/persianDatepicker.html
@@ -0,0 +1,60 @@
+{{define "component/persianDatepickerTemplate"}}
+<template>
+ <div>
+ <a-input :value="value" type="text" v-model="date" data-jdp class="persian-datepicker"
+ @input="$emit('input', convertToGregorian($event.target.value)); jalaliDatepicker.hide();"
+ placeholder="انتخاب تاریخ">
+ <template #addonAfter>
+ <a-icon type="calendar" style="font-size: 16px;"/>
+ </template>
+ </a-input>
+ </div>
+</template>
+{{end}}
+
+{{define "component/persianDatepicker"}}
+<link rel="stylesheet" href="{{ .base_path }}assets/persian-datepicker/persian-datepicker.min.css"/>
+<script src="{{ .base_path }}assets/moment/moment-jalali.min.js"></script>
+<script src="{{ .base_path }}assets/persian-datepicker/persian-datepicker.min.js"></script>
+<script>
+
+ const persianDatepicker = {};
+
+ Vue.component('persian-datepicker', {
+ props: ['dropdown-class-name', 'format', 'value'],
+ template: `{{template "component/persianDatepickerTemplate"}}`,
+ data() {
+ return {
+ date: '',
+ persianDatepicker,
+ };
+ },
+ watch: {
+ value: function (date) {
+ this.date = this.convertToJalalian(date)
+ }
+ },
+ mounted() {
+ this.date = this.convertToJalalian(this.value)
+ this.listenToDatepicker()
+ },
+ methods: {
+ convertToGregorian(date) {
+ return date ? moment(moment(date, 'jYYYY/jMM/jDD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss')) : null
+ },
+ convertToJalalian(date) {
+ return date && moment.isMoment(date) ? date.format('jYYYY/jMM/jDD HH:mm:ss') : null
+ },
+ listenToDatepicker() {
+ jalaliDatepicker.startWatch({
+ time: true,
+ container: '.ant-modal-wrap',
+ hideAfterChange: true,
+ useDropDownYears: false,
+ changeMonthRotateYear: true,
+ });
+ },
+ }
+ });
+</script>
+{{end}} \ No newline at end of file