mirror of
https://github.com/frappe/air-datepicker.git
synced 2026-01-14 11:01:22 +08:00
add examples, begin options section, fix localization option
This commit is contained in:
parent
35c0c5474b
commit
ef33f4dfca
8
dist/js/datepicker.js
vendored
8
dist/js/datepicker.js
vendored
@ -145,10 +145,12 @@ var Datepicker;
|
|||||||
this.loc = Datepicker.language[lang];
|
this.loc = Datepicker.language[lang];
|
||||||
if (!this.loc) {
|
if (!this.loc) {
|
||||||
console.warn('Can\'t find language "' + lang + '" in Datepicker.language, will use "ru" instead');
|
console.warn('Can\'t find language "' + lang + '" in Datepicker.language, will use "ru" instead');
|
||||||
this.loc = Datepicker.language.ru
|
this.loc = $.extend(true, {}, Datepicker.language.ru)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.loc = $.extend(true, {}, Datepicker.language[lang], Datepicker.language.ru)
|
||||||
} else {
|
} else {
|
||||||
this.loc = $.extend({}, Datepicker.language.ru, lang)
|
this.loc = $.extend(true, {}, Datepicker.language.ru, lang)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.opts.dateFormat) {
|
if (this.opts.dateFormat) {
|
||||||
@ -418,7 +420,7 @@ var Datepicker;
|
|||||||
return _this.formatDate(format, date)
|
return _this.formatDate(format, date)
|
||||||
});
|
});
|
||||||
|
|
||||||
value.join(this.opts.multipleDatesSeparator);
|
value = value.join(this.opts.multipleDatesSeparator);
|
||||||
|
|
||||||
this.$el.val(value)
|
this.$el.val(value)
|
||||||
},
|
},
|
||||||
|
|||||||
2
dist/js/datepicker.min.js
vendored
2
dist/js/datepicker.min.js
vendored
File diff suppressed because one or more lines are too long
@ -3,7 +3,80 @@ $('#my-element').datepicker([options])
|
|||||||
|
|
||||||
// Доступ к экземпляру объекта
|
// Доступ к экземпляру объекта
|
||||||
$('#my-element').data('datepicker')
|
$('#my-element').data('datepicker')
|
||||||
</code></pre><h2>Примеры</h2><h3>Инициализация с опциями по умолчанию</h3><div class="example"><div class="example--label">Пример</div><div class="example-content"><input type="text" class="datepicker-here"></div><pre class="example-code"><code class="html"><input type='text' class='datepicker-here' /></code></pre></div></div></main></div><script>var $code = $('code');
|
</code></pre><h2>Примеры</h2><h3>Инициализация с опциями по умолчанию</h3><div class="example"><div class="example--label">Пример</div><div class="example-content"><input type="text" class="datepicker-here"></div><pre class="example-code"><code class="html"><input type='text' class='datepicker-here' />
|
||||||
|
</code></pre></div><h3>Выбор нескольких дат</h3><p>Передайте параметр<span class="example-inline"><code class="js">{multipleDates: true}</code></span>для выбора нескольких дат. Если требуется ограничить количество выбранных дат, то передайте необходимое число<span class="example-inline"><code class="js">{multipleDates: 3}</code></span>.</p><div class="example"><div class="example--label">Пример</div><div class="example-content"><input type="text" data-multiple-dates="3" data-multiple-dates-separator=", " class="datepicker-here"></div><pre class="example-code"><code class="html"><input type="text"
|
||||||
|
class="datepicker-here"
|
||||||
|
data-multiple-dates="3"
|
||||||
|
data-multiple-dates-separator=", " />
|
||||||
|
</code></pre></div><h3>Постоянно видимый календарь</h3><p>Проинициализируйте плагин на элементе, который не является текстовым полем, например на<span class="example-inline"><code class="html"><div> … </div></code></span>, либо передайте параметр<span class="example-inline"><code class="js">{inline: true}</code></span>.</p><div class="example"><div class="example--label">Пример</div><div class="example-content"><div class="datepicker-here"></div></div><pre class="example-code"><code class="html"><div class="datepicker-here"></div>
|
||||||
|
</code></pre></div><h3>Выбор месяца</h3><div class="example"><div class="example--label">Пример</div><div class="example-content"><input type="text" data-min-view="months" data-view="months" data-date-format="MM yyyy" class="datepicker-here"></div><pre class="example-code"><code class="html"><input type="text"
|
||||||
|
class="datepicker-here"
|
||||||
|
data-min-view="months"
|
||||||
|
data-view="months"
|
||||||
|
data-date-format="MM yyyy" />
|
||||||
|
</code></pre></div><h3>Минимальная и максимальные даты</h3><p>Чтобы ограничить выбор даты, используйте<span class="example-inline"><code class="js">minDate</code></span>и<span class="example-inline"><code class="js">maxDate</code></span>, которым нужно передать объект даты.</p><div class="example"><div class="example--label">Пример</div><div class="example-content"><input id="minMaxExample" type="text"><script>$('#minMaxExample').datepicker({
|
||||||
|
minDate: new Date() // Можно выбрать тольо даты, идущие за сегодняшним днем
|
||||||
|
})</script></div><pre class="example-code"><code class="js">$('#minMaxExample').datepicker({
|
||||||
|
minDate: new Date() // Можно выбрать тольо даты, идущие за сегодняшним днем
|
||||||
|
})
|
||||||
|
</code></pre></div><h3>Диапозон дат</h3><p>По умолчанию в плагине нет встроенного механизма выбора диапозона дат для нескольких текстовых полей.
|
||||||
|
Тем не менее это можно сделть вручную.</p><div class="example"><div class="example--label">Пример</div><div class="example-content"><div class="range-example"><input type="text" placeholder="Начало" id="start"><span>–</span><input type="text" placeholder="Конец" id="end"></div><script>var $start = $('#start'),
|
||||||
|
$end = $('#end');
|
||||||
|
|
||||||
|
$start.datepicker({
|
||||||
|
onSelect: function (fd, date) {
|
||||||
|
$end.data('datepicker')
|
||||||
|
.update('minDate', date)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
$end.datepicker({
|
||||||
|
onSelect: function (fd, date) {
|
||||||
|
$start.data('datepicker')
|
||||||
|
.update('maxDate', date)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script></div><pre class="example-code"><code class="js">var $start = $('#start'),
|
||||||
|
$end = $('#end');
|
||||||
|
|
||||||
|
$start.datepicker({
|
||||||
|
onSelect: function (fd, date) {
|
||||||
|
$end.data('datepicker')
|
||||||
|
.update('minDate', date)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
$end.datepicker({
|
||||||
|
onSelect: function (fd, date) {
|
||||||
|
$start.data('datepicker')
|
||||||
|
.update('maxDate', date)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</code></pre></div><article><h2>Локализация</h2><p>Вы можете добавить свою локализацию в объект<span class="example-inline"><code class="js">Datepicker.language["my-lang"]</code></span>и при вызове календаря передать название языка в параметр<span class="example-inline"><code class="js">language</code></span></p><pre class="example-code"><code class="js">Datepicker.language['my-lang'] = {...}
|
||||||
|
|
||||||
|
$('.my-datepicker').datepicker({
|
||||||
|
language: 'my-lang'
|
||||||
|
})
|
||||||
|
</code></pre><p>Также объект локализации можно передавать непосредственно в<span class="example-inline"><code class="js">language</code></span></p><pre class="example-code"><code class="js">$('.my-datepicker').datepicker({
|
||||||
|
language: {
|
||||||
|
days: [...]
|
||||||
|
...
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</code></pre><p>Если в вашей локализации не будет хватать каких-то полей, то они будут взяты из языка по умолчанию.</p><h3>Пример объекта локализации</h3><pre class="example-code"><code class="js">Datepicker.language['ru'] = {
|
||||||
|
days: ['Воскресенье','Понедельник','Вторник','Среда','Четверг','Пятница','Суббота'],
|
||||||
|
daysShort: ['Вос','Пон','Вто','Сре','Чет','Пят','Суб'],
|
||||||
|
daysMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
|
||||||
|
months: ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
|
||||||
|
monthsShort: ['Янв','Фев','Мар','Апр','Май','Июн','Июл','Авг','Сен','Окт','Ноя','Дек'],
|
||||||
|
today: 'Сегодня',
|
||||||
|
clear: 'Очистить',
|
||||||
|
dateFormat: 'dd.mm.yyyy',
|
||||||
|
firstDay: 1
|
||||||
|
};
|
||||||
|
</code></pre><article><h2>Опции</h2><div class="param"><header class="param-header"><h3>inline</h3><p class="param-header--row"><span class="param-header--label">Тип:</span><span class="example-inline"><code class="js">boolean</code></span></p><p class="param-header--row"><span class="param-header--label">Значение по умполчанию:</span><span class="example-inline"><code class="js">false</code></span></p></header><p>Если true, то календарь будет виден постоянно.</p></div><div class="param"><header class="param-header"><h3>language</h3><p class="param-header--row"><span class="param-header--label">Тип:</span><span class="example-inline"><code class="js">string|object</code></span></p><p class="param-header--row"><span class="param-header--label">Значение по умполчанию:</span><span class="example-inline"><code class="js">"ru"</code></span></p></header><p>Язык календаря. Если передается строка, то поиск языка будет осуществляться в объекте<span class="example-inline"><code class="js">Datepicker.language</code></span>Если передан объект, то данные будут браться из него.</p><p>Если в объекте локализации не будет хватать каких то полей, то они будут взяты из языка по умолчанию.</p></div><div class="param"><header class="param-header"><h3>startDate</h3><p class="param-header--row"><span class="param-header--label">Тип:</span><span class="example-inline"><code class="js">Date</code></span></p><p class="param-header--row"><span class="param-header--label">Значение по умполчанию:</span><span class="example-inline"><code class="js">new Date()</code></span></p></header><p>Какую дату нужно показывать при инициализации календаря.</p></div><div class="param"><header class="param-header"><h3>firstDay</h3><p class="param-header--row"><span class="param-header--label">Тип:</span><span class="example-inline"><code class="js">number</code></span></p><p class="param-header--row"><span class="param-header--label">Значение по умполчанию:</span><span class="example-inline"><code class="js">""</code></span></p></header><p>Индекс дня, с которого начинается неделя. Возможные значение от 0 до 6, где 0 - воскресенье и 6 - суббота.
|
||||||
|
По умолчанию берется из локализации, если значение передать сюда, то оно будет иметь больший приоритет.
|
||||||
|
</p></div><div class="param"><header class="param-header"><h3>weekends</h3><p class="param-header--row"><span class="param-header--label">Тип:</span><span class="example-inline"><code class="js">array</code></span></p><p class="param-header--row"><span class="param-header--label">Значение по умполчанию:</span><span class="example-inline"><code class="js">[6, 0]</code></span></p></header><p>Массив индексов дней, которые будут считаться выходными днями. Им будет добавлен класс<span class="example-inline"><code class="css">.-weekend-</code></span>. По умолчанию это суббота и воскресенье.</p></div><div class="param"><header class="param-header"><h3>dateFormat</h3><p class="param-header--row"><span class="param-header--label">Тип:</span><span class="example-inline"><code class="js">string</code></span></p><p class="param-header--row"><span class="param-header--label">Значение по умполчанию:</span><span class="example-inline"><code class="js">""</code></span></p></header><p>Формат даты, кобминация из d, m, yyyy, D, M, и т.д. По умолчанию берется из локализации, если передать значение сюда, то оно будет иметь больший приоритет.</p><ul><li><span class="param"><strong>d</strong></span>- дата</li><li><span class="param"><strong>dd</strong></span>- дата с лидирующем нулем</li><li><span class="param"><strong>D</strong></span>- сокращенное наименование дня</li><li><span class="param"><strong>DD</strong></span>- полное наименование дня</li><li><span class="param"><strong>m</strong></span>- номер мясяца</li><li><span class="param"><strong>mm</strong></span>- номер месяца с лидирующем нулем</li><li><span class="param"><strong>M</strong></span>- сокращенное наименовение месяца</li><li><span class="param"><strong>MM</strong></span>- полное наименовение месяца</li><li><span class="param"><strong>yy</strong></span>- сокращенный номер года</li><li><span class="param"><strong>yyyy</strong></span>- полный номер года</li><li><span class="param"><strong>yyyy1</strong></span>- первый год декады, в которую входит текущий год</li><li><span class="param"><strong>yyyy2</strong></span>- последний год декады, в которую входит текущий год</li></ul></div><div class="param"><header class="param-header"><h3>toggleSelected</h3><p class="param-header--row"><span class="param-header--label">Тип:</span><span class="example-inline"><code class="js">boolean</code></span></p><p class="param-header--row"><span class="param-header--label">Значение по умполчанию:</span><span class="example-inline"><code class="js">true</code></span></p></header><p>Если true, то клик на выделенной дате снимет выделение.</p></div></article></article></div></main></div><script>var $code = $('code');
|
||||||
$code.each(function (i, el) {
|
$code.each(function (i, el) {
|
||||||
hljs.highlightBlock(el);
|
hljs.highlightBlock(el);
|
||||||
})</script></body></html>
|
})</script></body></html>
|
||||||
@ -9,6 +9,7 @@
|
|||||||
"gulp-jade": "^1.1.0",
|
"gulp-jade": "^1.1.0",
|
||||||
"gulp-livereload": "^3.8.0",
|
"gulp-livereload": "^3.8.0",
|
||||||
"gulp-minify-css": "^1.2.1",
|
"gulp-minify-css": "^1.2.1",
|
||||||
|
"gulp-plumber": "^1.0.1",
|
||||||
"gulp-postcss": "^6.0.1",
|
"gulp-postcss": "^6.0.1",
|
||||||
"gulp-rename": "^1.2.2",
|
"gulp-rename": "^1.2.2",
|
||||||
"gulp-sass": "^2.0.4",
|
"gulp-sass": "^2.0.4",
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
.-text-center-,.promo-header{text-align:center}a,abbr,acronym,address,applet,article,aside,audio,big,blockquote,canvas,caption,center,cite,code,dd,del,details,dfn,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,header,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,strike,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font:inherit;vertical-align:baseline}body{margin:0}body,html{width:100%;height:100%}*,:after,:before{box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}b,strong{font-weight:700}i{font-style:italic}a{outline:0;color:#47A6EC}textarea{overflow:auto}html{color:#333;font-family:Tahoma,sans-serif;font-size:14px}p{line-height:1.3;margin-bottom:14px}h1,h2,h3{font-family:'Fira Sans',sans-serif;line-height:1}h2{font-weight:100;font-size:32px;margin:48px 0 8px}h3{font-weight:500;font-size:18px;margin:24px 0 8px}.container{width:960px;margin:0 auto;padding:1px 0}.container article{margin:60px 0 30px}input[type=text]{border-radius:4px;outline:0;height:32px;border:1px solid silver;padding:0 8px;margin:0 0 14px;font-family:Tahoma,sans-serif;transition:all .2s}input[type=text]:focus{border-color:gold;box-shadow:0 0 8px rgba(0,0,0,.1)}.example--label{background:#f4f4f4;border-radius:0 0 4px 4px;position:absolute;padding:4px 12px;right:8px;top:0}.hljs{font-family:Consolas,monospace;line-height:1.2;-moz-tab-size:4;tab-size:4}.example{border:1px solid #ddd;border-radius:4px;position:relative;margin:16px 0}.example .example-code{border:none;border-radius:0 0 4px 4px;border-top:1px solid #eee;margin:0}.example-inline{background:red;display:inline-block;vertical-align:middle;margin:0 4px}.example-inline .hljs{padding:4px}.example-content{padding:32px}.example-content h1:first-child,.example-content h2:first-child,.example-content h3:first-child{margin-top:0}.example-content>:last-child{margin-bottom:0!important}a:hover{color:#1373ba}.example-code{border:1px solid #ddd;border-radius:4px;overflow:hidden;margin:16px 0;font-size:13px}.example-code code{padding:16px 32px}.promo-header{font-size:48px;font-weight:100}.promo-header span{display:block;font-size:.5em}.promo-input{height:40px;margin:26px 0;width:300px}
|
.-text-center-,.promo-header{text-align:center}a,abbr,acronym,address,applet,article,aside,audio,big,blockquote,canvas,caption,center,cite,code,dd,del,details,dfn,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,header,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,strike,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font:inherit;vertical-align:baseline}body{margin:0}body,html{width:100%;height:100%}*,:after,:before{box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}b,strong{font-weight:700}i{font-style:italic}a{outline:0;color:#47A6EC}textarea{overflow:auto}html{color:#333;font-family:Tahoma,sans-serif;font-size:14px}p{line-height:1.3;margin-bottom:14px}h1,h2,h3{font-family:'Fira Sans',sans-serif;line-height:1}h2{font-weight:100;font-size:32px;margin:48px 0 8px}h3{font-weight:500;font-size:18px;margin:24px 0 8px}.container{width:960px;margin:0 auto;padding:1px 0}.container article{margin:60px 0 30px}input[type=text]{border-radius:4px;outline:0;height:32px;border:1px solid silver;padding:0 8px;margin:0 0 14px;color:#444;font-family:Tahoma,sans-serif;transition:all .2s;width:250px}input[type=text]:focus{border-color:gold;box-shadow:0 0 8px rgba(0,0,0,.1)}ul{margin:0 0 16px}ul li{list-style:none;margin-bottom:8px}.example--label{background:#f4f4f4;border-radius:0 0 4px 4px;position:absolute;padding:4px 12px;right:8px;top:0}.hljs{font-family:Consolas,monospace;line-height:1.2;-moz-tab-size:4;tab-size:4}.example{border:1px solid #ddd;border-radius:4px;position:relative;margin:16px 0}.example .example-code{border:none;border-radius:0 0 4px 4px;border-top:1px solid #eee;margin:0}.example-inline{background:red;display:inline-block;vertical-align:middle;margin:0 4px}.example-inline .hljs{padding:0 4px}.example-content{padding:32px}.example-content h1:first-child,.example-content h2:first-child,.example-content h3:first-child{margin-top:0}.example-content>:last-child{margin-bottom:0!important}a:hover{color:#1373ba}.example-code{border:1px solid #ddd;border-radius:4px;overflow:hidden;margin:16px 0;font-size:13px}.param i,.param strong{display:inline-block;margin-right:4px;vertical-align:middle}.example-code code{padding:16px 32px}.param strong{background:#efefef;color:#333;border-radius:4px;font-weight:400;padding:3px 6px 4px}.param i{color:#838383;font-size:.95em;font-style:normal;font-weight:100;font-family:'Fira Sans',sans-serif}.promo-header{font-size:48px;font-weight:100}.promo-header span{display:block;font-size:.5em}.promo-input{height:40px;margin:26px 0;width:300px}.range-example input[type=text]{width:150px}.range-example span{display:inline-block;margin:0 8px}.param-header{margin-bottom:8px}.param-header h3{margin-bottom:2px}.param-header p{margin:0;font-size:13px}.param{margin-bottom:32px}.param-header--label{color:#707070;display:inline-block;vertical-align:middle}
|
||||||
@ -3,6 +3,7 @@ include mixins/example-content
|
|||||||
include mixins/example-code
|
include mixins/example-code
|
||||||
include mixins/example-inline
|
include mixins/example-inline
|
||||||
include mixins/param
|
include mixins/param
|
||||||
|
include mixins/param-header
|
||||||
|
|
||||||
doctype html
|
doctype html
|
||||||
html
|
html
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
mixin example-inline(content, type)
|
mixin example-inline(content, type)
|
||||||
span.example-inline
|
span.example-inline
|
||||||
code(class= type).
|
code(class= type).
|
||||||
!{content}
|
#{content}
|
||||||
12
page/jade/mixins/param-header.jade
Normal file
12
page/jade/mixins/param-header.jade
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
mixin param-header(name, type, defaults)
|
||||||
|
header.param-header
|
||||||
|
h3= name
|
||||||
|
p.param-header--row
|
||||||
|
span.param-header--label Тип:
|
||||||
|
+example-inline(type, 'js')
|
||||||
|
p.param-header--row
|
||||||
|
span.param-header--label Значение по умполчанию:
|
||||||
|
if defaults
|
||||||
|
+example-inline(defaults, 'js')
|
||||||
|
if block
|
||||||
|
block
|
||||||
@ -14,9 +14,9 @@ block content
|
|||||||
|
|
||||||
h2 Использование
|
h2 Использование
|
||||||
p
|
p
|
||||||
|Календарь автоматически проинициализируется на элементах с классом
|
| Календарь автоматически проинициализируется на элементах с классом
|
||||||
+example-inline('.datepicker-here', 'css')
|
+example-inline('.datepicker-here', 'css')
|
||||||
|, при этом опции можно передать через
|
| , при этом опции можно передать через
|
||||||
+example-inline('data', 'html')
|
+example-inline('data', 'html')
|
||||||
| атрибуты.
|
| атрибуты.
|
||||||
+example-code('html')
|
+example-code('html')
|
||||||
@ -38,3 +38,233 @@ block content
|
|||||||
+example-code('html')
|
+example-code('html')
|
||||||
:code
|
:code
|
||||||
<input type='text' class='datepicker-here' />
|
<input type='text' class='datepicker-here' />
|
||||||
|
|
||||||
|
h3 Выбор нескольких дат
|
||||||
|
p
|
||||||
|
| Передайте параметр
|
||||||
|
+example-inline('{multipleDates: true}','js')
|
||||||
|
| для выбора нескольких дат. Если требуется ограничить количество выбранных дат, то передайте необходимое число
|
||||||
|
+example-inline('{multipleDates: 3}','js')
|
||||||
|
| .
|
||||||
|
+example
|
||||||
|
+example-content
|
||||||
|
input(type='text' data-multiple-dates='3' data-multiple-dates-separator=', ').datepicker-here
|
||||||
|
+example-code('html')
|
||||||
|
:code
|
||||||
|
<input type="text"
|
||||||
|
class="datepicker-here"
|
||||||
|
data-multiple-dates="3"
|
||||||
|
data-multiple-dates-separator=", " />
|
||||||
|
|
||||||
|
h3 Постоянно видимый календарь
|
||||||
|
p
|
||||||
|
| Проинициализируйте плагин на элементе, который не является текстовым полем, например на
|
||||||
|
+example-inline('<div> … </div>', 'html')
|
||||||
|
| , либо передайте параметр
|
||||||
|
+example-inline('{inline: true}', 'js')
|
||||||
|
| .
|
||||||
|
+example
|
||||||
|
+example-content
|
||||||
|
div.datepicker-here
|
||||||
|
+example-code('html')
|
||||||
|
:code
|
||||||
|
<div class="datepicker-here"></div>
|
||||||
|
|
||||||
|
h3 Выбор месяца
|
||||||
|
+example
|
||||||
|
+example-content
|
||||||
|
input.datepicker-here(type='text' data-min-view='months' data-view='months' data-date-format='MM yyyy')
|
||||||
|
+example-code('html')
|
||||||
|
:code
|
||||||
|
<input type="text"
|
||||||
|
class="datepicker-here"
|
||||||
|
data-min-view="months"
|
||||||
|
data-view="months"
|
||||||
|
data-date-format="MM yyyy" />
|
||||||
|
|
||||||
|
h3 Минимальная и максимальные даты
|
||||||
|
p
|
||||||
|
| Чтобы ограничить выбор даты, используйте
|
||||||
|
+example-inline('minDate', 'js')
|
||||||
|
| и
|
||||||
|
+example-inline('maxDate', 'js')
|
||||||
|
| , которым нужно передать объект даты.
|
||||||
|
+example
|
||||||
|
+example-content
|
||||||
|
input#minMaxExample(type='text')
|
||||||
|
script.
|
||||||
|
$('#minMaxExample').datepicker({
|
||||||
|
minDate: new Date() // Можно выбрать тольо даты, идущие за сегодняшним днем
|
||||||
|
})
|
||||||
|
+example-code('js').
|
||||||
|
$('#minMaxExample').datepicker({
|
||||||
|
minDate: new Date() // Можно выбрать тольо даты, идущие за сегодняшним днем
|
||||||
|
})
|
||||||
|
|
||||||
|
h3 Диапозон дат
|
||||||
|
p.
|
||||||
|
По умолчанию в плагине нет встроенного механизма выбора диапозона дат для нескольких текстовых полей.
|
||||||
|
Тем не менее это можно сделть вручную.
|
||||||
|
+example
|
||||||
|
+example-content
|
||||||
|
div.range-example
|
||||||
|
input(type='text' placeholder='Начало')#start
|
||||||
|
span –
|
||||||
|
input(type='text' placeholder='Конец')#end
|
||||||
|
|
||||||
|
script.
|
||||||
|
var $start = $('#start'),
|
||||||
|
$end = $('#end');
|
||||||
|
|
||||||
|
$start.datepicker({
|
||||||
|
onSelect: function (fd, date) {
|
||||||
|
$end.data('datepicker')
|
||||||
|
.update('minDate', date)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
$end.datepicker({
|
||||||
|
onSelect: function (fd, date) {
|
||||||
|
$start.data('datepicker')
|
||||||
|
.update('maxDate', date)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
+example-code('js').
|
||||||
|
var $start = $('#start'),
|
||||||
|
$end = $('#end');
|
||||||
|
|
||||||
|
$start.datepicker({
|
||||||
|
onSelect: function (fd, date) {
|
||||||
|
$end.data('datepicker')
|
||||||
|
.update('minDate', date)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
$end.datepicker({
|
||||||
|
onSelect: function (fd, date) {
|
||||||
|
$start.data('datepicker')
|
||||||
|
.update('maxDate', date)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
article
|
||||||
|
h2 Локализация
|
||||||
|
p
|
||||||
|
| Вы можете добавить свою локализацию в объект
|
||||||
|
+example-inline('Datepicker.language["my-lang"]', 'js')
|
||||||
|
| и при вызове календаря передать название языка в параметр
|
||||||
|
+example-inline('language', 'js')
|
||||||
|
|
||||||
|
+example-code('js').
|
||||||
|
Datepicker.language['my-lang'] = {...}
|
||||||
|
|
||||||
|
$('.my-datepicker').datepicker({
|
||||||
|
language: 'my-lang'
|
||||||
|
})
|
||||||
|
|
||||||
|
p
|
||||||
|
| Также объект локализации можно передавать непосредственно в
|
||||||
|
+example-inline('language', 'js')
|
||||||
|
|
||||||
|
+example-code('js').
|
||||||
|
$('.my-datepicker').datepicker({
|
||||||
|
language: {
|
||||||
|
days: [...]
|
||||||
|
...
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
p Если в вашей локализации не будет хватать каких-то полей, то они будут взяты из языка по умолчанию.
|
||||||
|
|
||||||
|
h3 Пример объекта локализации
|
||||||
|
+example-code('js').
|
||||||
|
Datepicker.language['ru'] = {
|
||||||
|
days: ['Воскресенье','Понедельник','Вторник','Среда','Четверг','Пятница','Суббота'],
|
||||||
|
daysShort: ['Вос','Пон','Вто','Сре','Чет','Пят','Суб'],
|
||||||
|
daysMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
|
||||||
|
months: ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
|
||||||
|
monthsShort: ['Янв','Фев','Мар','Апр','Май','Июн','Июл','Авг','Сен','Окт','Ноя','Дек'],
|
||||||
|
today: 'Сегодня',
|
||||||
|
clear: 'Очистить',
|
||||||
|
dateFormat: 'dd.mm.yyyy',
|
||||||
|
firstDay: 1
|
||||||
|
};
|
||||||
|
|
||||||
|
article
|
||||||
|
h2 Опции
|
||||||
|
|
||||||
|
.param
|
||||||
|
+param-header('inline', 'boolean', 'false')
|
||||||
|
p Если true, то календарь будет виден постоянно.
|
||||||
|
|
||||||
|
.param
|
||||||
|
+param-header('language', 'string|object', '"ru"')
|
||||||
|
p
|
||||||
|
| Язык календаря. Если передается строка, то поиск языка будет осуществляться в объекте
|
||||||
|
+example-inline('Datepicker.language', 'js')
|
||||||
|
| Если передан объект, то данные будут браться из него.
|
||||||
|
p Если в объекте локализации не будет хватать каких то полей, то они будут взяты из языка по умолчанию.
|
||||||
|
|
||||||
|
.param
|
||||||
|
+param-header('startDate', 'Date', 'new Date()')
|
||||||
|
p Какую дату нужно показывать при инициализации календаря.
|
||||||
|
|
||||||
|
.param
|
||||||
|
+param-header('firstDay', 'number', '""')
|
||||||
|
p.
|
||||||
|
Индекс дня, с которого начинается неделя. Возможные значение от 0 до 6, где 0 - воскресенье и 6 - суббота.
|
||||||
|
По умолчанию берется из локализации, если значение передать сюда, то оно будет иметь больший приоритет.
|
||||||
|
|
||||||
|
.param
|
||||||
|
+param-header('weekends', 'array', '[6, 0]')
|
||||||
|
p
|
||||||
|
|Массив индексов дней, которые будут считаться выходными днями. Им будет добавлен класс
|
||||||
|
+example-inline('.-weekend-','css')
|
||||||
|
|. По умолчанию это суббота и воскресенье.
|
||||||
|
|
||||||
|
.param
|
||||||
|
+param-header('dateFormat', 'string', '""')
|
||||||
|
p Формат даты, кобминация из d, m, yyyy, D, M, и т.д. По умолчанию берется из локализации, если передать значение сюда, то оно будет иметь больший приоритет.
|
||||||
|
ul
|
||||||
|
li
|
||||||
|
+param('d')
|
||||||
|
| - дата
|
||||||
|
li
|
||||||
|
+param('dd')
|
||||||
|
| - дата с лидирующем нулем
|
||||||
|
li
|
||||||
|
+param('D')
|
||||||
|
| - сокращенное наименование дня
|
||||||
|
li
|
||||||
|
+param('DD')
|
||||||
|
| - полное наименование дня
|
||||||
|
li
|
||||||
|
+param('m')
|
||||||
|
| - номер мясяца
|
||||||
|
li
|
||||||
|
+param('mm')
|
||||||
|
| - номер месяца с лидирующем нулем
|
||||||
|
li
|
||||||
|
+param('M')
|
||||||
|
| - сокращенное наименовение месяца
|
||||||
|
li
|
||||||
|
+param('MM')
|
||||||
|
| - полное наименовение месяца
|
||||||
|
li
|
||||||
|
+param('yy')
|
||||||
|
| - сокращенный номер года
|
||||||
|
li
|
||||||
|
+param('yyyy')
|
||||||
|
| - полный номер года
|
||||||
|
li
|
||||||
|
+param('yyyy1')
|
||||||
|
| - первый год декады, в которую входит текущий год
|
||||||
|
li
|
||||||
|
+param('yyyy2')
|
||||||
|
| - последний год декады, в которую входит текущий год
|
||||||
|
|
||||||
|
.param
|
||||||
|
+param-header('toggleSelected', 'boolean', 'true')
|
||||||
|
p Если true, то клик на выделенной дате снимет выделение.
|
||||||
|
|
||||||
|
|||||||
@ -54,8 +54,10 @@ input[type='text'] {
|
|||||||
border: 1px solid #c0c0c0;
|
border: 1px solid #c0c0c0;
|
||||||
padding: 0 8px;
|
padding: 0 8px;
|
||||||
margin: 0 0 14px;
|
margin: 0 0 14px;
|
||||||
|
color: #444;
|
||||||
font-family: $fontFamily;
|
font-family: $fontFamily;
|
||||||
transition: all .2s;
|
transition: all .2s;
|
||||||
|
width: 250px;
|
||||||
|
|
||||||
&:focus {
|
&:focus {
|
||||||
border-color: gold;
|
border-color: gold;
|
||||||
@ -63,6 +65,14 @@ input[type='text'] {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
margin: 0 0 16px;
|
||||||
|
li {
|
||||||
|
list-style: none;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Example
|
/* Example
|
||||||
------------------------------------------------- */
|
------------------------------------------------- */
|
||||||
|
|
||||||
@ -104,7 +114,7 @@ $exampleBorderRadius: 4px;
|
|||||||
margin: 0 4px;
|
margin: 0 4px;
|
||||||
|
|
||||||
.hljs {
|
.hljs {
|
||||||
padding: 4px;
|
padding: 0 4px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -146,6 +156,34 @@ a {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Param
|
||||||
|
// -------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
.param {
|
||||||
|
strong {
|
||||||
|
background: #efefef;
|
||||||
|
color: #333;
|
||||||
|
border-radius: $exampleBorderRadius;
|
||||||
|
font-weight: normal;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
padding: 3px 6px 4px;
|
||||||
|
margin-right: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
color: #838383;
|
||||||
|
font-size: .95em;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 100;
|
||||||
|
font-family: 'Fira Sans', sans-serif;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-right: 4px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Promo block
|
// Promo block
|
||||||
// -------------------------------------------------
|
// -------------------------------------------------
|
||||||
|
|
||||||
@ -165,3 +203,45 @@ a {
|
|||||||
margin: 26px 0;
|
margin: 26px 0;
|
||||||
width: 300px;
|
width: 300px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Range example
|
||||||
|
// -------------------------------------------------
|
||||||
|
|
||||||
|
.range-example {
|
||||||
|
input[type='text'] {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
|
span {
|
||||||
|
display: inline-block;
|
||||||
|
margin: 0 8px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Param header
|
||||||
|
// -------------------------------------------------
|
||||||
|
|
||||||
|
.param-header {
|
||||||
|
margin-bottom: 8px;
|
||||||
|
h3 {
|
||||||
|
margin-bottom: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin: 0;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.param-header--row {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.param {
|
||||||
|
margin-bottom: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.param-header--label {
|
||||||
|
color: #707070;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|||||||
@ -145,10 +145,12 @@ var Datepicker;
|
|||||||
this.loc = Datepicker.language[lang];
|
this.loc = Datepicker.language[lang];
|
||||||
if (!this.loc) {
|
if (!this.loc) {
|
||||||
console.warn('Can\'t find language "' + lang + '" in Datepicker.language, will use "ru" instead');
|
console.warn('Can\'t find language "' + lang + '" in Datepicker.language, will use "ru" instead');
|
||||||
this.loc = Datepicker.language.ru
|
this.loc = $.extend(true, {}, Datepicker.language.ru)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.loc = $.extend(true, {}, Datepicker.language[lang], Datepicker.language.ru)
|
||||||
} else {
|
} else {
|
||||||
this.loc = $.extend({}, Datepicker.language.ru, lang)
|
this.loc = $.extend(true, {}, Datepicker.language.ru, lang)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.opts.dateFormat) {
|
if (this.opts.dateFormat) {
|
||||||
@ -418,7 +420,7 @@ var Datepicker;
|
|||||||
return _this.formatDate(format, date)
|
return _this.formatDate(format, date)
|
||||||
});
|
});
|
||||||
|
|
||||||
value.join(this.opts.multipleDatesSeparator);
|
value = value.join(this.opts.multipleDatesSeparator);
|
||||||
|
|
||||||
this.$el.val(value)
|
this.$el.val(value)
|
||||||
},
|
},
|
||||||
|
|||||||
@ -1,9 +1,11 @@
|
|||||||
var gulp = require('gulp'),
|
var gulp = require('gulp'),
|
||||||
|
plumber = require('gulp-plumber'),
|
||||||
_jade = require('gulp-jade/node_modules/jade'),
|
_jade = require('gulp-jade/node_modules/jade'),
|
||||||
jade = require('gulp-jade');
|
jade = require('gulp-jade');
|
||||||
|
|
||||||
_jade.filters.code = function( block ) {
|
_jade.filters.code = function( block ) {
|
||||||
return block
|
return block
|
||||||
|
.replace( /\…/g, '…' )
|
||||||
.replace( /&/g, '&' )
|
.replace( /&/g, '&' )
|
||||||
.replace( /</g, '<' )
|
.replace( /</g, '<' )
|
||||||
.replace( />/g, '>' )
|
.replace( />/g, '>' )
|
||||||
@ -14,6 +16,7 @@ _jade.filters.code = function( block ) {
|
|||||||
|
|
||||||
module.exports = function () {
|
module.exports = function () {
|
||||||
gulp.src('page/jade/pages/*.jade')
|
gulp.src('page/jade/pages/*.jade')
|
||||||
|
.pipe(plumber())
|
||||||
.pipe(jade())
|
.pipe(jade())
|
||||||
.pipe(gulp.dest('./'))
|
.pipe(gulp.dest('./'))
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user