Skip to content

Commit

Permalink
Merge pull request #362 from devansh-webkul/component-seperated
Browse files Browse the repository at this point in the history
Two seperate components provided #361
  • Loading branch information
jitendra-webkul committed Sep 30, 2021
2 parents 9400a67 + c01fb07 commit aa5579e
Show file tree
Hide file tree
Showing 6 changed files with 163 additions and 65 deletions.
2 changes: 1 addition & 1 deletion packages/Webkul/UI/publishable/assets/js/ui.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/Webkul/UI/publishable/assets/mix-manifest.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"/js/ui.js": "/js/ui.js?id=9cc13fbbb9a0e78e8737",
"/js/ui.js": "/js/ui.js?id=dff64f19ce567cdc7f1f",
"/css/ui.css": "/css/ui.css?id=a86fe6fd721910983b0e",
"/images/add-icon.svg": "/images/add-icon.svg?id=9135b4e0e1c239c36981",
"/images/align-justify-icon.svg": "/images/align-justify-icon.svg?id=ee8d48e636b80417a884",
Expand Down
9 changes: 5 additions & 4 deletions packages/Webkul/UI/src/Resources/assets/js/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Vue.directive('debounce', require('./directives/debounce').default);
Vue.filter('formatDate', function(value) {
if (value) {
var date = new Date(value);

return `${date.getDate()} ${date.toLocaleString('default', {month: 'short'})} ${date.getFullYear()} ${date.getHours()}:${date.getMinutes()}`;
}
});
Expand All @@ -36,7 +36,7 @@ Vue.mixin({
methods: {
addFlashMessages: function (flash) {
flash.type = flash.type || "success";

window.addFlashMessages(flash);
},

Expand Down Expand Up @@ -81,6 +81,7 @@ Vue.component('tree-view', require('./components/tree-view/tree-view').default);
Vue.component('tree-item', require('./components/tree-view/tree-item').default);
Vue.component('tree-checkbox', require('./components/tree-view/tree-checkbox').default);
Vue.component('tree-radio', require('./components/tree-view/tree-radio').default);
Vue.component('date-range-basic', require('./components/date-range-basic').default);
Vue.component('date-range', require('./components/date-range').default);
Vue.component('spinner-meter', require('./components/spinner-meter').default);

Expand All @@ -99,8 +100,8 @@ Vue.filter('truncate', function (value, limit, trail) {
Vue.filter('date', function (value) {
return value ? moment(val).format("YYYY-MM-DD") : "";
});


require('flatpickr/dist/flatpickr.css');

require('@babel/polyfill');
require('@babel/polyfill');
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,11 @@
<template
v-else-if="data.filterable && data.type == 'date_range'"
>
<date-range
<date-range-basic
:start-date="data.values[0]"
:end-date="data.values[1]"
@onChange="changeDateRange(key, $event)"
></date-range>
></date-range-basic>
</template>

<template
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
<template>
<div>
<div class="date-container">
<input
ref="startDate"
type="text"
class="control half"
placeholder="Start Date"
/>
</div>

<span class="middle-text">{{ __("ui.datagrid.filter.to") }}</span>

<div class="date-container">
<input
ref="endDate"
type="text"
class="control half"
placeholder="End Date"
/>
</div>
</div>
</template>

<script>
import Flatpickr from "flatpickr";
export default {
props: ["startDate", "endDate"],
data: function() {
return {
dates: [this.startDate, this.endDate],
config: {
allowInput: true,
altFormat: "Y-m-d",
dateFormat: "Y-m-d",
weekNumbers: true
},
startDatePicker: null,
endDatePicker: null
};
},
mounted: function() {
this.activateStartDatePicker();
this.activateEndDatePicker();
},
methods: {
activateStartDatePicker: function() {
let self = this;
this.startDatePicker = new Flatpickr(this.$refs.startDate, {
...this.config,
onChange: function(selectedDates, dateStr, instance) {
self.dates[0] = dateStr;
self.endDatePicker.set("minDate", dateStr);
self.$emit("onChange", self.dates);
}
});
},
activateEndDatePicker: function() {
let self = this;
this.endDatePicker = new Flatpickr(this.$refs.endDate, {
...this.config,
onChange: function(selectedDates, dateStr, instance) {
self.dates[1] = dateStr;
self.startDatePicker.set("maxDate", dateStr);
self.$emit("onChange", self.dates);
}
});
}
}
};
</script>
128 changes: 71 additions & 57 deletions packages/Webkul/UI/src/Resources/assets/js/components/date-range.vue
Original file line number Diff line number Diff line change
@@ -1,82 +1,96 @@
<template>
<div>
<div class="date-container">
<input
ref="startDate"
type="text"
class="control half"
placeholder="Start Date"
/>
</div>

<span class="middle-text">{{ __("ui.datagrid.filter.to") }}</span>

<div class="date-container">
<input
ref="endDate"
type="text"
class="control half"
placeholder="End Date"
/>
</div>
</div>
<date-range-picker
ref="picker"
:class="classes"
:opens="opens"
:minDate="minDate"
:maxDate="maxDate"
:singleDatePicker="singleDatePicker"
:timePicker="timePicker"
:timePicker24Hour="timePicker24Hour"
:showWeekNumbers="showWeekNumbers"
:showDropdowns="showDropdowns"
:autoApply="autoApply"
:ranges="show_ranges ? undefined : false"
:linkedCalendars="linkedCalendars"
:dateFormat="dateFormat"
:always-show-calendars="false"
:alwaysShowCalendars="alwaysShowCalendars"
:append-to-body="appendToBody"
:closeOnEsc="closeOnEsc"
v-model="dateRange"
@update="updateValues"
@toggle="checkOpen"
>
<template v-slot:input="picker" style="min-width: 350px;">
{{ picker.startDate | moment("D MMM YYYY") }} -
{{ picker.endDate | moment("D MMM YYYY") }}
</template>
</date-range-picker>
</template>

<script>
import Flatpickr from "flatpickr";
import DateRangePicker from "vue2-daterange-picker";
import "vue2-daterange-picker/dist/vue2-daterange-picker.css";
export default {
props: ["startDate", "endDate"],
components: { DateRangePicker },
props: ["classes", "endDate", "startDate", "update"],
data: function() {
return {
dates: [this.startDate, this.endDate],
config: {
allowInput: true,
altFormat: "Y-m-d",
dateFormat: "Y-m-d",
weekNumbers: true
opens: "left",
minDate: "2021-03-01",
maxDate: this.$moment().format("YYYY-MM-DD"),
dateRange: {
endDate: this.endDate,
startDate: this.startDate
},
startDatePicker: null,
endDatePicker: null
single_range_picker: true,
show_ranges: true,
singleDatePicker: false,
timePicker: false,
timePicker24Hour: true,
showDropdowns: true,
autoApply: false,
showWeekNumbers: true,
linkedCalendars: true,
alwaysShowCalendars: true,
appendToBody: false,
closeOnEsc: true
};
},
mounted: function() {
this.activateStartDatePicker();
this.activateEndDatePicker();
},
methods: {
activateStartDatePicker: function() {
let self = this;
updateValues: function(values) {
this.dateRange.startDate = values.startDate;
this.startDatePicker = new Flatpickr(this.$refs.startDate, {
...this.config,
onChange: function(selectedDates, dateStr, instance) {
self.dates[0] = dateStr;
this.dateRange.endDate = values.endDate;
self.endDatePicker.set("minDate", dateStr);
let datesRange = [
this.$moment(this.dateRange.startDate).format("YYYY-MM-DD"),
this.$moment(this.dateRange.endDate).format("YYYY-MM-DD")
];
self.$emit("onChange", self.dates);
}
});
datesRange = datesRange.join(",");
this.update({ datesRange });
},
activateEndDatePicker: function() {
let self = this;
checkOpen(open) {},
dateFormat(classes, date) {
let yesterday = new Date();
this.endDatePicker = new Flatpickr(this.$refs.endDate, {
...this.config,
onChange: function(selectedDates, dateStr, instance) {
self.dates[1] = dateStr;
let d1 = date;
let d2 = yesterday.setDate(yesterday.getDate() - 1);
self.startDatePicker.set("maxDate", dateStr);
if (!classes.disabled) {
classes.disabled = d1 === d2;
}
self.$emit("onChange", self.dates);
}
});
return classes;
}
}
};
Expand Down

0 comments on commit aa5579e

Please sign in to comment.