').append($label).appendTo(this.$input);
+ }
+ },
+
+ value2str: function(value) {
+ return $.isArray(value) ? value.join($.trim(this.options.separator)) : '';
+ },
+
+ //parse separated string
+ str2value: function(str) {
+ var reg, value = null;
+ if(typeof str === 'string' && str.length) {
+ reg = new RegExp('\s*'+$.trim(this.options.separator)+'\s*');
+ value = str.split(reg);
+ } else if($.isArray(str)) {
+ value = str;
+ }
+ return value;
+ },
+
+ //set checked on required checkboxes
+ value2input: function(value) {
+ var $checks = this.$input.find('input[type="checkbox"]');
+ $checks.removeAttr('checked');
+ if($.isArray(value) && value.length) {
+ $checks.each(function(i, el) {
+ if($.inArray($(el).val(), value) !== -1) {
+ $(el).attr('checked', 'checked');
+ }
+ });
+ }
+ },
+
+ input2value: function() {
+ var checked = [];
+ this.$input.find('input:checked').each(function(i, el) {
+ checked.push($(el).val());
+ });
+ return checked;
+ },
+
+ //collect text of checked boxes
+ value2htmlFinal: function(value, element) {
+ var selected = [], html = '';
+ if($.isArray(value) && value.length <= this.options.limit) {
+ for(var i=0; i
').text(item.text).html());
+ }
+ }
+ html = selected.join(this.options.viewseparator);
+ } else {
+ html = this.options.limitText.replace('{checked}', $.isArray(value) ? value.length : 0).replace('{count}', this.sourceData.length);
+ }
+ $(element).html(html);
+ }
+ });
+
+ Checklist.defaults = $.extend({}, $.fn.editableform.types.list.defaults, {
+ /**
+ @property tpl
+ @default
+ **/
+ tpl:'',
+
+ /**
+ Separator of values in string when sending to server
+
+ @property separator
+ @type string
+ @default ', '
+ **/
+ separator: ',',
+ /**
+ Separator of text when display as element content.
+
+ @property viewseparator
+ @type string
+ @default ', '
+ **/
+ viewseparator: '
',
+ /**
+ Maximum number of items shown as element content.
+ If checked more items - limitText will be shown.
+
+ @property limit
+ @type integer
+ @default 4
+ **/
+ limit: 4,
+ /**
+ Text shown when count of checked items is greater than limit parameter.
+ You can use {checked} and count placeholders.
+
+ @property limitText
+ @type string
+ @default 'Checked {checked} options of {count}'
+ **/
+ limitText: 'Checked {checked} options of {count}'
+ });
+
+ $.fn.editableform.types.checklist = Checklist;
+
+}(window.jQuery));
\ No newline at end of file
diff --git a/src/inputs/date/date.js b/src/inputs/date/date.js
index 38680e8..5081db2 100644
--- a/src/inputs/date/date.js
+++ b/src/inputs/date/date.js
@@ -5,6 +5,7 @@ For localization you can include js file from here: https://github.com/eternicod
@class date
@extends abstract
+@final
@example
15/05/1984