Skip to content

Commit

Permalink
feat(calendar): support type setting as metadata & initialize without JS
Browse files Browse the repository at this point in the history
This PR allows to define the type setting as metadata.
It then also supports to automatically instantiate the calendar module when inside a form.
I also micro-optimized some small codeparts
  • Loading branch information
lubber-de authored and Sean committed Oct 18, 2019
1 parent cb8ec75 commit c4221e4
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 7 deletions.
5 changes: 5 additions & 0 deletions src/definitions/behaviors/form.js
Original file line number Diff line number Diff line change
Expand Up @@ -991,13 +991,18 @@ $.fn.form = function(parameters) {
$parent = $el.parent(),
isCheckbox = ($el.filter(selector.checkbox).length > 0),
isDropdown = $parent.is(selector.uiDropdown) && module.can.useElement('dropdown'),
$calendar = $el.closest(selector.uiCalendar),
isCalendar = ($calendar.length > 0 && module.can.useElement('calendar')),
value = (isCheckbox)
? $el.is(':checked')
: $el.val()
;
if (isDropdown) {
$parent.dropdown('save defaults');
}
else if (isCalendar) {
$calendar.calendar('refresh');
}
$el.data(metadata.defaultValue, value);
$el.data(metadata.isDirty, false);
});
Expand Down
17 changes: 10 additions & 7 deletions src/definitions/modules/calendar.js
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ $.fn.calendar = function(parameters) {
if (module.get.maxDate() !== null) {
module.set.maxDate($module.data(metadata.maxDate));
}
module.setting('type', module.get.type());
},
popup: function () {
if (settings.inline) {
Expand Down Expand Up @@ -185,17 +186,15 @@ $.fn.calendar = function(parameters) {
}
},
date: function () {
var date;
if (settings.initialDate) {
var date = parser.date(settings.initialDate, settings);
module.set.date(date, settings.formatInput, false);
date = parser.date(settings.initialDate, settings);
} else if ($module.data(metadata.date) !== undefined) {
var date = parser.date($module.data(metadata.date), settings);
module.set.date(date, settings.formatInput, false);
date = parser.date($module.data(metadata.date), settings);
} else if ($input.length) {
var val = $input.val();
var date = parser.date(val, settings);
module.set.date(date, settings.formatInput, false);
date = parser.date($input.val(), settings);
}
module.set.date(date, settings.formatInput, false);
}
},

Expand Down Expand Up @@ -627,6 +626,9 @@ $.fn.calendar = function(parameters) {
settings.type === 'month' ? 'month' :
settings.type === 'year' ? 'year' : 'day';
},
type: function() {
return $module.data(metadata.type) || settings.type;
},
validModes: function () {
var validModes = [];
if (settings.type !== 'time') {
Expand Down Expand Up @@ -1560,6 +1562,7 @@ $.fn.calendar.settings = {
minDate: 'minDate',
maxDate: 'maxDate',
mode: 'mode',
type: 'type',
monthOffset: 'monthOffset',
message: 'message',
class: 'class'
Expand Down

0 comments on commit c4221e4

Please sign in to comment.