mirror of
https://github.com/rstudio/shiny.git
synced 2026-04-29 03:00:45 -04:00
Add dateInput and dateRangeInput
Also: * add initialize() method for input bindings * cleanups for JShint
This commit is contained in:
@@ -4,6 +4,7 @@ these components are included below):
|
||||
|
||||
- jQuery
|
||||
- Bootstrap
|
||||
- bootstrap-datepicker, from https://github.com/eternicode/bootstrap-datepicker
|
||||
- jslider
|
||||
|
||||
|
||||
@@ -33,7 +34,7 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
Bootstrap License
|
||||
Bootstrap and bootstrap-datepicker License
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Apache License
|
||||
|
||||
@@ -23,6 +23,13 @@
|
||||
<!-- <meta name="viewport" content="width=device-width, initial-scale=1.0"/> -->
|
||||
<link rel="stylesheet" type="text/css" href="../www/shared/bootstrap/css/bootstrap-responsive.min.css"/>
|
||||
|
||||
<script src="../www/shared/datepicker/js/bootstrap-datepicker.min.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../www/shared/datepicker/css/datepicker.css"/>
|
||||
|
||||
<script src="../www/shared/bootstrap-daterangepicker/date.js"></script>
|
||||
<script src="../www/shared/bootstrap-daterangepicker/daterangepicker.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../www/shared/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
|
||||
<!-- include spec files here... -->
|
||||
<!-- <script type="text/javascript" src="spec/SpecHelper.js"></script>
|
||||
<script type="text/javascript" src="spec/PlayerSpec.js"></script>
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
beforeEach(function() {
|
||||
this.addMatchers({
|
||||
toBePlaying: function(expectedSong) {
|
||||
var player = this.actual;
|
||||
return player.currentlyPlayingSong === expectedSong &&
|
||||
player.isPlaying;
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -46,6 +46,21 @@ describe("Input Bindings", function() {
|
||||
return get_input_binding_id(id).getState($obj[0]);
|
||||
};
|
||||
|
||||
function padZeros(n, digits) {
|
||||
var str = n.toString();
|
||||
while (str.length < digits)
|
||||
str = "0" + str;
|
||||
return str;
|
||||
}
|
||||
|
||||
// Get a date string with format yyyy-mm-dd (date is in local time)
|
||||
function local_date_string() {
|
||||
var date = new Date();
|
||||
|
||||
return date.getFullYear() + '-' +
|
||||
padZeros(date.getMonth()+1, 2) + '-' +
|
||||
padZeros(date.getDate(), 2);
|
||||
}
|
||||
|
||||
|
||||
// These functions are here to reduce repetition. They are exactly the same
|
||||
@@ -501,6 +516,589 @@ describe("Input Bindings", function() {
|
||||
});
|
||||
|
||||
|
||||
// ===========================================================================
|
||||
describe("dateInputBinding", function() {
|
||||
var id = 'in_date';
|
||||
var binding_name = 'dateInput';
|
||||
|
||||
beforeEach(function(){
|
||||
// Generated by:
|
||||
// cat(format(dateInput('id', 'Date input:', value = '2013-04-10')))
|
||||
var htmlstring =
|
||||
'<div id="' + id + '"\
|
||||
class="shiny-date-input">\
|
||||
<label class="control-label" for="' + id + '">Date input:</label>\
|
||||
<input type="text"\
|
||||
name="date"\
|
||||
class="input-medium datepicker"\
|
||||
data-date-language="en"\
|
||||
data-date-weekstart="0"\
|
||||
data-date-format="yyyy-mm-dd"\
|
||||
data-date-start-view="month"\
|
||||
data-initial-date="2013-04-10"/>\
|
||||
</div>';
|
||||
|
||||
// Wrapper div for the htmlstring
|
||||
var el = $('<div id="input_binding_test">').prependTo('body');
|
||||
el.html(htmlstring);
|
||||
|
||||
Shiny.initializeInputs(el);
|
||||
Shiny.bindAll();
|
||||
});
|
||||
|
||||
afterEach(function(){
|
||||
Shiny.unbindAll();
|
||||
$('#input_binding_test').remove();
|
||||
});
|
||||
|
||||
// Run tests that are exactly the same for all InputBindings
|
||||
common_tests(id, binding_name);
|
||||
|
||||
it("getValue() works", function() {
|
||||
expect(get_value(id)).toEqual('2013-04-10');
|
||||
});
|
||||
|
||||
it("setValue() works", function() {
|
||||
set_value(id, '2012-02-29');
|
||||
expect(get_value(id)).toEqual('2012-02-29');
|
||||
|
||||
// Invalid date - no effect
|
||||
set_value(id, '2012-02-40');
|
||||
expect(get_value(id)).toEqual('2012-02-29');
|
||||
|
||||
// Date object
|
||||
set_value(id, new Date('2011-10-09'));
|
||||
expect(get_value(id)).toEqual('2011-10-09');
|
||||
|
||||
// Invalid Date object - no effect
|
||||
set_value(id, new Date('2000-01-100'));
|
||||
expect(get_value(id)).toEqual('2011-10-09');
|
||||
});
|
||||
|
||||
it("getState() works", function() {
|
||||
expect(get_state(id)).toEqual({
|
||||
label: 'Date input:',
|
||||
value: '2013-04-10',
|
||||
valueString : '2013-04-10',
|
||||
min: null,
|
||||
max: null,
|
||||
language: 'en',
|
||||
weekstart: 0,
|
||||
format: 'yyyy-mm-dd',
|
||||
startview: 'month'
|
||||
});
|
||||
});
|
||||
|
||||
it("receiveMessage() works", function() {
|
||||
// Set value
|
||||
// getValue() and getState().value should be the same
|
||||
receive_message(id, { value: '2012-02-29' });
|
||||
var fullstate = {
|
||||
label: 'Date input:',
|
||||
value: '2012-02-29',
|
||||
valueString: '2012-02-29',
|
||||
min: null,
|
||||
max: null,
|
||||
language: 'en',
|
||||
weekstart: 0,
|
||||
format: 'yyyy-mm-dd',
|
||||
startview: 'month'
|
||||
};
|
||||
expect(get_value(id)).toEqual('2012-02-29');
|
||||
expect(get_state(id)).toEqual(fullstate);
|
||||
|
||||
// Empty message has no effect
|
||||
receive_message(id, { });
|
||||
expect(get_state(id)).toEqual(fullstate);
|
||||
|
||||
// Set label
|
||||
receive_message(id, { label:'new label' });
|
||||
expect(get_state(id)).toEqual(
|
||||
$.extend(fullstate, { label:'new label' })
|
||||
);
|
||||
|
||||
// Set min and max
|
||||
receive_message(id, { min:'2011-03-02', max:'2012-03-02' });
|
||||
expect(get_state(id)).toEqual(
|
||||
$.extend(fullstate, { min:'2011-03-02', max:'2012-03-02' })
|
||||
);
|
||||
|
||||
// Unset min and max
|
||||
receive_message(id, { min:null, max:null });
|
||||
expect(get_state(id)).toEqual(
|
||||
$.extend(fullstate, { min:null, max:null })
|
||||
);
|
||||
|
||||
// Setting format isn't implemented
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// ===========================================================================
|
||||
describe("dateInputBinding with mm/dd/yy format, min, max, and startview", function() {
|
||||
var id = 'in_date';
|
||||
|
||||
beforeEach(function(){
|
||||
// Generated by:
|
||||
// cat(format(dateInput('id', 'Date input:',
|
||||
// value = '2013-04-10', min = '2012-02-01', max = '2012-05-04',
|
||||
// format = 'mm/dd/yy', startview = 'decade', language = 'de', weekstart = 1)))
|
||||
var htmlstring =
|
||||
'<div id="' + id + '"\
|
||||
class="shiny-date-input">\
|
||||
<label class="control-label" for="' + id + '">Date input:</label>\
|
||||
<input type="text"\
|
||||
class="input-medium datepicker"\
|
||||
data-date-language="de"\
|
||||
data-date-weekstart="1"\
|
||||
data-date-format="mm/dd/yy"\
|
||||
data-date-start-view="decade"\
|
||||
data-min-date="2012-02-01"\
|
||||
data-max-date="2013-05-04"\
|
||||
data-initial-date="2013-04-10"/>\
|
||||
</div>';
|
||||
|
||||
// Wrapper div for the htmlstring
|
||||
var el = $('<div id="input_binding_test">').prependTo('body');
|
||||
el.html(htmlstring);
|
||||
|
||||
Shiny.initializeInputs(el);
|
||||
Shiny.bindAll();
|
||||
});
|
||||
|
||||
afterEach(function(){
|
||||
Shiny.unbindAll();
|
||||
$('#input_binding_test').remove();
|
||||
});
|
||||
|
||||
it("getValue() works", function() {
|
||||
expect(get_value(id)).toEqual('2013-04-10');
|
||||
});
|
||||
|
||||
it("setValue() works", function() {
|
||||
set_value(id, '2012-02-29');
|
||||
expect(get_value(id)).toEqual('2012-02-29');
|
||||
|
||||
// Invalid date - no effect
|
||||
set_value(id, '2012-02-40');
|
||||
expect(get_value(id)).toEqual('2012-02-29');
|
||||
|
||||
// Date object
|
||||
set_value(id, new Date('2011-10-09'));
|
||||
expect(get_value(id)).toEqual('2011-10-09');
|
||||
|
||||
// Invalid Date object - no effect
|
||||
set_value(id, new Date('2000-01-100'));
|
||||
expect(get_value(id)).toEqual('2011-10-09');
|
||||
});
|
||||
|
||||
it("getState() works", function() {
|
||||
expect(get_state(id)).toEqual({
|
||||
label: 'Date input:',
|
||||
value: '2013-04-10',
|
||||
valueString : '04/10/13',
|
||||
min: "2012-02-01",
|
||||
max: "2013-05-04",
|
||||
language: 'de',
|
||||
weekstart: 1,
|
||||
format: 'mm/dd/yy',
|
||||
startview: 'decade'
|
||||
});
|
||||
});
|
||||
|
||||
it("receiveMessage() works", function() {
|
||||
// Set value
|
||||
// getValue() and getState().value should be the same
|
||||
receive_message(id, { value: '2012-02-29' });
|
||||
var fullstate = {
|
||||
label: 'Date input:',
|
||||
value: '2012-02-29',
|
||||
valueString: '02/29/12',
|
||||
min: "2012-02-01",
|
||||
max: "2013-05-04",
|
||||
language: 'de',
|
||||
weekstart: 1,
|
||||
format: 'mm/dd/yy',
|
||||
startview: 'decade'
|
||||
};
|
||||
expect(get_value(id)).toEqual('2012-02-29');
|
||||
expect(get_state(id)).toEqual(fullstate);
|
||||
|
||||
// Empty message has no effect
|
||||
receive_message(id, { });
|
||||
expect(get_state(id)).toEqual(fullstate);
|
||||
|
||||
// Set label
|
||||
receive_message(id, { label:'new label' });
|
||||
expect(get_state(id)).toEqual(
|
||||
$.extend(fullstate, { label:'new label' })
|
||||
);
|
||||
|
||||
// Set min and max
|
||||
// receive_message(id, { min:'2011-02-01', max:'2015-03-02' });
|
||||
// debugger;
|
||||
// expect(get_state(id)).toEqual(
|
||||
// $.extend(fullstate, { min:'2011-02-01', max:'2015-03-02' })
|
||||
// );
|
||||
|
||||
// Setting format isn't implemented
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// ===========================================================================
|
||||
describe("dateInputBinding with empty starting value", function() {
|
||||
var id = 'in_date';
|
||||
|
||||
beforeEach(function(){
|
||||
// Generated by (with some settings removed):
|
||||
// cat(format(dateInput('id', 'Date input:')))
|
||||
var htmlstring =
|
||||
'<div id="' + id + '"\
|
||||
class="shiny-date-input">\
|
||||
<label class="control-label" for="' + id + '">Date input:</label>\
|
||||
<input type="text"\
|
||||
class="input-medium datepicker"/>\
|
||||
</div>';
|
||||
|
||||
// Wrapper div for the htmlstring
|
||||
var el = $('<div id="input_binding_test">').prependTo('body');
|
||||
el.html(htmlstring);
|
||||
|
||||
Shiny.initializeInputs(el);
|
||||
Shiny.bindAll();
|
||||
});
|
||||
|
||||
afterEach(function(){
|
||||
Shiny.unbindAll();
|
||||
$('#input_binding_test').remove();
|
||||
});
|
||||
|
||||
it("default value is local date", function() {
|
||||
expect(get_value(id)).toEqual(local_date_string());
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// ===========================================================================
|
||||
describe("dateRangeInputBinding", function() {
|
||||
var id = 'in_daterange';
|
||||
var binding_name = 'dateRangeInput';
|
||||
|
||||
beforeEach(function(){
|
||||
// Generated by:
|
||||
// cat(format(dateRangeInput('id', 'Date range input:',
|
||||
// start = '2012-02-09', end = '2013-03-01')))
|
||||
var htmlstring =
|
||||
'<div id="' + id + '" class="shiny-date-range-input input-daterange">\
|
||||
<label class="control-label" for="' + id + '">Date range input:</label>\
|
||||
<input\
|
||||
class="input-small"\
|
||||
type="text"\
|
||||
data-date-language="en"\
|
||||
data-date-weekstart="0"\
|
||||
data-date-format="yyyy-mm-dd"\
|
||||
data-date-start-view="month"\
|
||||
data-initial-date="2012-02-29"/>\
|
||||
to \
|
||||
<input\
|
||||
class="input-small"\
|
||||
type="text"\
|
||||
data-date-language="en"\
|
||||
data-date-weekstart="0"\
|
||||
data-date-format="yyyy-mm-dd"\
|
||||
data-date-start-view="month"\
|
||||
data-initial-date="2013-03-01"/>\
|
||||
</div>';
|
||||
|
||||
// Wrapper div for the htmlstring
|
||||
var el = $('<div id="input_binding_test">').prependTo('body');
|
||||
el.html(htmlstring);
|
||||
|
||||
Shiny.initializeInputs(el);
|
||||
Shiny.bindAll();
|
||||
});
|
||||
|
||||
afterEach(function(){
|
||||
Shiny.unbindAll();
|
||||
$('#input_binding_test').remove();
|
||||
});
|
||||
|
||||
// Run tests that are exactly the same for all InputBindings
|
||||
common_tests(id, binding_name);
|
||||
|
||||
it("getValue() works", function() {
|
||||
expect(get_value(id)).toEqual(['2012-02-29', '2013-03-01']);
|
||||
});
|
||||
|
||||
it("setValue() works", function() {
|
||||
set_value(id, ['2001-01-01', '2014-02-28']);
|
||||
expect(get_value(id)).toEqual(['2001-01-01', '2014-02-28']);
|
||||
|
||||
// Single value only changes the min
|
||||
set_value(id, ['2002-02-02']);
|
||||
expect(get_value(id)).toEqual(['2002-02-02', '2014-02-28']);
|
||||
|
||||
// Empty first value: only changes the max
|
||||
set_value(id, [undefined, '2010-03-03']);
|
||||
expect(get_value(id)).toEqual(['2002-02-02', '2010-03-03']);
|
||||
|
||||
// Non-array value has no effect
|
||||
set_value(id, '2003-03-03');
|
||||
expect(get_value(id)).toEqual(['2002-02-02', '2010-03-03']);
|
||||
|
||||
// Null values have no effect
|
||||
set_value(id, [null, null]);
|
||||
expect(get_value(id)).toEqual(['2002-02-02', '2010-03-03']);
|
||||
|
||||
// Invalid date has no effect (the other, valid date works)
|
||||
set_value(id, ['2012-02-40', '2012-04-20']);
|
||||
expect(get_value(id)).toEqual(['2002-02-02', '2012-04-20']);
|
||||
|
||||
// Reversed order - works?
|
||||
set_value(id, ['2002-02-02', '2001-01-01']);
|
||||
expect(get_value(id)).toEqual(['2002-02-02', '2001-01-01']);
|
||||
});
|
||||
|
||||
it("getState() works", function() {
|
||||
expect(get_state(id)).toEqual({
|
||||
label: 'Date range input:',
|
||||
min: null,
|
||||
max: null,
|
||||
value: ['2012-02-29', '2013-03-01'],
|
||||
valueString: ['2012-02-29', '2013-03-01'],
|
||||
format: 'yyyy-mm-dd',
|
||||
weekstart: 0,
|
||||
language: 'en',
|
||||
startview: 'month'
|
||||
});
|
||||
});
|
||||
|
||||
it("receiveMessage() works", function() {
|
||||
var expected_state = {
|
||||
label: 'Date range input:',
|
||||
min: null,
|
||||
max: null,
|
||||
value: ['2001-01-01', '2002-02-02'],
|
||||
valueString: ['2001-01-01', '2002-02-02'],
|
||||
format: 'yyyy-mm-dd',
|
||||
weekstart: 0,
|
||||
language: 'en',
|
||||
startview: 'month'
|
||||
};
|
||||
|
||||
// Set value
|
||||
// getValue() and getState().value should be the same
|
||||
receive_message(id, { value: ['2001-01-01', '2002-02-02'] });
|
||||
expect(get_value(id)).toEqual(['2001-01-01', '2002-02-02']);
|
||||
expect(get_state(id)).toEqual(expected_state);
|
||||
|
||||
// Empty message has no effect
|
||||
receive_message(id, { });
|
||||
expect(get_state(id)).toEqual(expected_state);
|
||||
|
||||
// Set label
|
||||
receive_message(id, { label:'new label' });
|
||||
expect(get_state(id)).toEqual(
|
||||
$.extend(expected_state, { label:'new label' })
|
||||
);
|
||||
|
||||
// Set format, separator, minDate, maxDate
|
||||
receive_message(id, {
|
||||
min: '2000-01-01',
|
||||
max: '2020-12-31'
|
||||
});
|
||||
expect(get_state(id)).toEqual(
|
||||
$.extend(expected_state, {
|
||||
min: '2000-01-01',
|
||||
max: '2020-12-31'
|
||||
})
|
||||
);
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// ===========================================================================
|
||||
describe("dateRangeInputBinding with mm/dd/yy format, min, max, and startview", function() {
|
||||
var id = 'in_daterange';
|
||||
|
||||
beforeEach(function(){
|
||||
// Generated by:
|
||||
// cat(format(dateRangeInput('id', 'Date range input:',
|
||||
// start = '2012-02-09', end = '2013-03-01',
|
||||
// min = '2012-02-01', max = '2013-05-04',
|
||||
// format = 'mm/dd/yy', weekstart = 2, startview = 'decade')))
|
||||
var htmlstring =
|
||||
'<div id="' + id + '" class="shiny-date-range-input input-daterange">\
|
||||
<label class="control-label" for="' + id + '">Date range input:</label>\
|
||||
<input\
|
||||
class="input-small"\
|
||||
type="text"\
|
||||
data-date-language="en"\
|
||||
data-date-weekstart="2"\
|
||||
data-date-format="mm/dd/yy"\
|
||||
data-date-start-view="decade"\
|
||||
data-min-date="2012-02-01"\
|
||||
data-max-date="2013-05-04"\
|
||||
data-initial-date="2012-02-29"/>\
|
||||
to \
|
||||
<input\
|
||||
class="input-small"\
|
||||
type="text"\
|
||||
data-date-language="en"\
|
||||
data-date-weekstart="2"\
|
||||
data-date-format="mm/dd/yy"\
|
||||
data-date-start-view="decade"\
|
||||
data-min-date="2012-02-01"\
|
||||
data-max-date="2013-05-04"\
|
||||
data-initial-date="2013-03-01"/>\
|
||||
</div>';
|
||||
|
||||
// Wrapper div for the htmlstring
|
||||
var el = $('<div id="input_binding_test">').prependTo('body');
|
||||
el.html(htmlstring);
|
||||
|
||||
Shiny.initializeInputs(el);
|
||||
Shiny.bindAll();
|
||||
});
|
||||
|
||||
afterEach(function(){
|
||||
Shiny.unbindAll();
|
||||
$('#input_binding_test').remove();
|
||||
});
|
||||
|
||||
it("getValue() works", function() {
|
||||
expect(get_value(id)).toEqual(['2012-02-29', '2013-03-01']);
|
||||
});
|
||||
|
||||
it("setValue() works", function() {
|
||||
set_value(id, ['2001-01-01', '2014-02-28']);
|
||||
expect(get_value(id)).toEqual(['2001-01-01', '2014-02-28']);
|
||||
|
||||
// Single value only changes the min
|
||||
set_value(id, ['2002-02-02']);
|
||||
expect(get_value(id)).toEqual(['2002-02-02', '2014-02-28']);
|
||||
|
||||
// Empty first value: only changes the max
|
||||
set_value(id, [undefined, '2010-03-03']);
|
||||
expect(get_value(id)).toEqual(['2002-02-02', '2010-03-03']);
|
||||
|
||||
// Non-array value has no effect
|
||||
set_value(id, '2003-03-03');
|
||||
expect(get_value(id)).toEqual(['2002-02-02', '2010-03-03']);
|
||||
|
||||
// Null values have no effect
|
||||
set_value(id, [null, null]);
|
||||
expect(get_value(id)).toEqual(['2002-02-02', '2010-03-03']);
|
||||
|
||||
// Invalid date has no effect (the other, valid date works)
|
||||
set_value(id, ['2012-02-40', '2012-04-20']);
|
||||
expect(get_value(id)).toEqual(['2002-02-02', '2012-04-20']);
|
||||
|
||||
// Reversed order - works?
|
||||
set_value(id, ['2002-02-02', '2001-01-01']);
|
||||
expect(get_value(id)).toEqual(['2002-02-02', '2001-01-01']);
|
||||
});
|
||||
|
||||
it("getState() works", function() {
|
||||
expect(get_state(id)).toEqual({
|
||||
label: 'Date range input:',
|
||||
min: "2012-02-01",
|
||||
max: "2013-05-04",
|
||||
value: ['2012-02-29', '2013-03-01'],
|
||||
valueString: ['02/29/12', '03/01/13'],
|
||||
format: 'mm/dd/yy',
|
||||
weekstart: 2,
|
||||
language: 'en',
|
||||
startview: 'decade'
|
||||
});
|
||||
});
|
||||
|
||||
it("receiveMessage() works", function() {
|
||||
var expected_state = {
|
||||
label: 'Date range input:',
|
||||
min: "2012-02-01",
|
||||
max: "2013-05-04",
|
||||
value: ['2012-04-02', '2012-04-03'],
|
||||
valueString: ['04/02/12', '04/03/12'],
|
||||
format: 'mm/dd/yy',
|
||||
weekstart: 2,
|
||||
language: 'en',
|
||||
startview: 'decade'
|
||||
};
|
||||
|
||||
// Set value
|
||||
// getValue() and getState().value should be the same
|
||||
receive_message(id, { value: ['2012-04-02', '2012-04-03'] });
|
||||
expect(get_value(id)).toEqual(['2012-04-02', '2012-04-03']);
|
||||
expect(get_state(id)).toEqual(expected_state);
|
||||
|
||||
// Empty message has no effect
|
||||
receive_message(id, { });
|
||||
expect(get_state(id)).toEqual(expected_state);
|
||||
|
||||
// Set label
|
||||
receive_message(id, { label:'new label' });
|
||||
expect(get_state(id)).toEqual(
|
||||
$.extend(expected_state, { label:'new label' })
|
||||
);
|
||||
|
||||
// Set format, separator, minDate, maxDate
|
||||
receive_message(id, {
|
||||
min: '2000-01-01',
|
||||
max: '2020-12-31'
|
||||
});
|
||||
expect(get_state(id)).toEqual(
|
||||
$.extend(expected_state, {
|
||||
min: '2000-01-01',
|
||||
max: '2020-12-31'
|
||||
})
|
||||
);
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// ===========================================================================
|
||||
describe("dateRangeInputBinding with empty start/end values", function() {
|
||||
var id = 'in_daterange';
|
||||
|
||||
beforeEach(function(){
|
||||
// Generated by (with some bits removed):
|
||||
// cat(format(dateRangeInput('id', 'Date range input:')))
|
||||
var htmlstring =
|
||||
'<div id="' + id + '" class="shiny-date-range-input input-daterange">\
|
||||
<label class="control-label" for="' + id + '">Date range input:</label>\
|
||||
<input\
|
||||
class="input-small"\
|
||||
type="text"/>\
|
||||
to \
|
||||
<input\
|
||||
class="input-small"\
|
||||
type="text"/>\
|
||||
</div>';
|
||||
|
||||
// Wrapper div for the htmlstring
|
||||
var el = $('<div id="input_binding_test">').prependTo('body');
|
||||
el.html(htmlstring);
|
||||
|
||||
Shiny.initializeInputs(el);
|
||||
Shiny.bindAll();
|
||||
});
|
||||
|
||||
afterEach(function(){
|
||||
Shiny.unbindAll();
|
||||
$('#input_binding_test').remove();
|
||||
});
|
||||
|
||||
it("getValue() works", function() {
|
||||
var date = local_date_string()
|
||||
expect(get_value(id)).toEqual([date, date]);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// ===========================================================================
|
||||
describe("selectInputBinding", function() {
|
||||
var id = 'in_select';
|
||||
|
||||
442
inst/www/shared/datepicker/css/datepicker.css
Normal file
442
inst/www/shared/datepicker/css/datepicker.css
Normal file
@@ -0,0 +1,442 @@
|
||||
/*!
|
||||
* Datepicker for Bootstrap
|
||||
*
|
||||
* Copyright 2012 Stefan Petre
|
||||
* Improvements by Andrew Rowls
|
||||
* Licensed under the Apache License v2.0
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*/
|
||||
.datepicker {
|
||||
padding: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
direction: ltr;
|
||||
/*.dow {
|
||||
border-top: 1px solid #ddd !important;
|
||||
}*/
|
||||
|
||||
}
|
||||
.datepicker-inline {
|
||||
width: 220px;
|
||||
}
|
||||
.datepicker.datepicker-rtl {
|
||||
direction: rtl;
|
||||
}
|
||||
.datepicker.datepicker-rtl table tr td span {
|
||||
float: right;
|
||||
}
|
||||
.datepicker-dropdown {
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
.datepicker-dropdown:before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
border-left: 7px solid transparent;
|
||||
border-right: 7px solid transparent;
|
||||
border-bottom: 7px solid #ccc;
|
||||
border-bottom-color: rgba(0, 0, 0, 0.2);
|
||||
position: absolute;
|
||||
top: -7px;
|
||||
left: 6px;
|
||||
}
|
||||
.datepicker-dropdown:after {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
border-left: 6px solid transparent;
|
||||
border-right: 6px solid transparent;
|
||||
border-bottom: 6px solid #ffffff;
|
||||
position: absolute;
|
||||
top: -6px;
|
||||
left: 7px;
|
||||
}
|
||||
.datepicker > div {
|
||||
display: none;
|
||||
}
|
||||
.datepicker.days div.datepicker-days {
|
||||
display: block;
|
||||
}
|
||||
.datepicker.months div.datepicker-months {
|
||||
display: block;
|
||||
}
|
||||
.datepicker.years div.datepicker-years {
|
||||
display: block;
|
||||
}
|
||||
.datepicker table {
|
||||
margin: 0;
|
||||
}
|
||||
.datepicker td,
|
||||
.datepicker th {
|
||||
text-align: center;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
border: none;
|
||||
}
|
||||
.table-striped .datepicker table tr td,
|
||||
.table-striped .datepicker table tr th {
|
||||
background-color: transparent;
|
||||
}
|
||||
.datepicker table tr td.day:hover {
|
||||
background: #eeeeee;
|
||||
cursor: pointer;
|
||||
}
|
||||
.datepicker table tr td.old,
|
||||
.datepicker table tr td.new {
|
||||
color: #999999;
|
||||
}
|
||||
.datepicker table tr td.disabled,
|
||||
.datepicker table tr td.disabled:hover {
|
||||
background: none;
|
||||
color: #999999;
|
||||
cursor: default;
|
||||
}
|
||||
.datepicker table tr td.today,
|
||||
.datepicker table tr td.today:hover,
|
||||
.datepicker table tr td.today.disabled,
|
||||
.datepicker table tr td.today.disabled:hover {
|
||||
background-color: #fde19a;
|
||||
background-image: -moz-linear-gradient(top, #fdd49a, #fdf59a);
|
||||
background-image: -ms-linear-gradient(top, #fdd49a, #fdf59a);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a));
|
||||
background-image: -webkit-linear-gradient(top, #fdd49a, #fdf59a);
|
||||
background-image: -o-linear-gradient(top, #fdd49a, #fdf59a);
|
||||
background-image: linear-gradient(top, #fdd49a, #fdf59a);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);
|
||||
border-color: #fdf59a #fdf59a #fbed50;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||
color: #000 !important;
|
||||
}
|
||||
.datepicker table tr td.today:hover,
|
||||
.datepicker table tr td.today:hover:hover,
|
||||
.datepicker table tr td.today.disabled:hover,
|
||||
.datepicker table tr td.today.disabled:hover:hover,
|
||||
.datepicker table tr td.today:active,
|
||||
.datepicker table tr td.today:hover:active,
|
||||
.datepicker table tr td.today.disabled:active,
|
||||
.datepicker table tr td.today.disabled:hover:active,
|
||||
.datepicker table tr td.today.active,
|
||||
.datepicker table tr td.today:hover.active,
|
||||
.datepicker table tr td.today.disabled.active,
|
||||
.datepicker table tr td.today.disabled:hover.active,
|
||||
.datepicker table tr td.today.disabled,
|
||||
.datepicker table tr td.today:hover.disabled,
|
||||
.datepicker table tr td.today.disabled.disabled,
|
||||
.datepicker table tr td.today.disabled:hover.disabled,
|
||||
.datepicker table tr td.today[disabled],
|
||||
.datepicker table tr td.today:hover[disabled],
|
||||
.datepicker table tr td.today.disabled[disabled],
|
||||
.datepicker table tr td.today.disabled:hover[disabled] {
|
||||
background-color: #fdf59a;
|
||||
}
|
||||
.datepicker table tr td.today:active,
|
||||
.datepicker table tr td.today:hover:active,
|
||||
.datepicker table tr td.today.disabled:active,
|
||||
.datepicker table tr td.today.disabled:hover:active,
|
||||
.datepicker table tr td.today.active,
|
||||
.datepicker table tr td.today:hover.active,
|
||||
.datepicker table tr td.today.disabled.active,
|
||||
.datepicker table tr td.today.disabled:hover.active {
|
||||
background-color: #fbf069 \9;
|
||||
}
|
||||
.datepicker table tr td.range,
|
||||
.datepicker table tr td.range:hover,
|
||||
.datepicker table tr td.range.disabled,
|
||||
.datepicker table tr td.range.disabled:hover {
|
||||
background: #eeeeee;
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
.datepicker table tr td.range.today,
|
||||
.datepicker table tr td.range.today:hover,
|
||||
.datepicker table tr td.range.today.disabled,
|
||||
.datepicker table tr td.range.today.disabled:hover {
|
||||
background-color: #f3d17a;
|
||||
background-image: -moz-linear-gradient(top, #f3c17a, #f3e97a);
|
||||
background-image: -ms-linear-gradient(top, #f3c17a, #f3e97a);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f3c17a), to(#f3e97a));
|
||||
background-image: -webkit-linear-gradient(top, #f3c17a, #f3e97a);
|
||||
background-image: -o-linear-gradient(top, #f3c17a, #f3e97a);
|
||||
background-image: linear-gradient(top, #f3c17a, #f3e97a);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);
|
||||
border-color: #f3e97a #f3e97a #edde34;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
.datepicker table tr td.range.today:hover,
|
||||
.datepicker table tr td.range.today:hover:hover,
|
||||
.datepicker table tr td.range.today.disabled:hover,
|
||||
.datepicker table tr td.range.today.disabled:hover:hover,
|
||||
.datepicker table tr td.range.today:active,
|
||||
.datepicker table tr td.range.today:hover:active,
|
||||
.datepicker table tr td.range.today.disabled:active,
|
||||
.datepicker table tr td.range.today.disabled:hover:active,
|
||||
.datepicker table tr td.range.today.active,
|
||||
.datepicker table tr td.range.today:hover.active,
|
||||
.datepicker table tr td.range.today.disabled.active,
|
||||
.datepicker table tr td.range.today.disabled:hover.active,
|
||||
.datepicker table tr td.range.today.disabled,
|
||||
.datepicker table tr td.range.today:hover.disabled,
|
||||
.datepicker table tr td.range.today.disabled.disabled,
|
||||
.datepicker table tr td.range.today.disabled:hover.disabled,
|
||||
.datepicker table tr td.range.today[disabled],
|
||||
.datepicker table tr td.range.today:hover[disabled],
|
||||
.datepicker table tr td.range.today.disabled[disabled],
|
||||
.datepicker table tr td.range.today.disabled:hover[disabled] {
|
||||
background-color: #f3e97a;
|
||||
}
|
||||
.datepicker table tr td.range.today:active,
|
||||
.datepicker table tr td.range.today:hover:active,
|
||||
.datepicker table tr td.range.today.disabled:active,
|
||||
.datepicker table tr td.range.today.disabled:hover:active,
|
||||
.datepicker table tr td.range.today.active,
|
||||
.datepicker table tr td.range.today:hover.active,
|
||||
.datepicker table tr td.range.today.disabled.active,
|
||||
.datepicker table tr td.range.today.disabled:hover.active {
|
||||
background-color: #efe24b \9;
|
||||
}
|
||||
.datepicker table tr td.selected,
|
||||
.datepicker table tr td.selected:hover,
|
||||
.datepicker table tr td.selected.disabled,
|
||||
.datepicker table tr td.selected.disabled:hover {
|
||||
background-color: #9e9e9e;
|
||||
background-image: -moz-linear-gradient(top, #b3b3b3, #808080);
|
||||
background-image: -ms-linear-gradient(top, #b3b3b3, #808080);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b3b3b3), to(#808080));
|
||||
background-image: -webkit-linear-gradient(top, #b3b3b3, #808080);
|
||||
background-image: -o-linear-gradient(top, #b3b3b3, #808080);
|
||||
background-image: linear-gradient(top, #b3b3b3, #808080);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);
|
||||
border-color: #808080 #808080 #595959;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||
color: #fff;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.datepicker table tr td.selected:hover,
|
||||
.datepicker table tr td.selected:hover:hover,
|
||||
.datepicker table tr td.selected.disabled:hover,
|
||||
.datepicker table tr td.selected.disabled:hover:hover,
|
||||
.datepicker table tr td.selected:active,
|
||||
.datepicker table tr td.selected:hover:active,
|
||||
.datepicker table tr td.selected.disabled:active,
|
||||
.datepicker table tr td.selected.disabled:hover:active,
|
||||
.datepicker table tr td.selected.active,
|
||||
.datepicker table tr td.selected:hover.active,
|
||||
.datepicker table tr td.selected.disabled.active,
|
||||
.datepicker table tr td.selected.disabled:hover.active,
|
||||
.datepicker table tr td.selected.disabled,
|
||||
.datepicker table tr td.selected:hover.disabled,
|
||||
.datepicker table tr td.selected.disabled.disabled,
|
||||
.datepicker table tr td.selected.disabled:hover.disabled,
|
||||
.datepicker table tr td.selected[disabled],
|
||||
.datepicker table tr td.selected:hover[disabled],
|
||||
.datepicker table tr td.selected.disabled[disabled],
|
||||
.datepicker table tr td.selected.disabled:hover[disabled] {
|
||||
background-color: #808080;
|
||||
}
|
||||
.datepicker table tr td.selected:active,
|
||||
.datepicker table tr td.selected:hover:active,
|
||||
.datepicker table tr td.selected.disabled:active,
|
||||
.datepicker table tr td.selected.disabled:hover:active,
|
||||
.datepicker table tr td.selected.active,
|
||||
.datepicker table tr td.selected:hover.active,
|
||||
.datepicker table tr td.selected.disabled.active,
|
||||
.datepicker table tr td.selected.disabled:hover.active {
|
||||
background-color: #666666 \9;
|
||||
}
|
||||
.datepicker table tr td.active,
|
||||
.datepicker table tr td.active:hover,
|
||||
.datepicker table tr td.active.disabled,
|
||||
.datepicker table tr td.active.disabled:hover {
|
||||
background-color: #006dcc;
|
||||
background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
|
||||
background-image: -ms-linear-gradient(top, #0088cc, #0044cc);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
|
||||
background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
|
||||
background-image: -o-linear-gradient(top, #0088cc, #0044cc);
|
||||
background-image: linear-gradient(top, #0088cc, #0044cc);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);
|
||||
border-color: #0044cc #0044cc #002a80;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||
color: #fff;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.datepicker table tr td.active:hover,
|
||||
.datepicker table tr td.active:hover:hover,
|
||||
.datepicker table tr td.active.disabled:hover,
|
||||
.datepicker table tr td.active.disabled:hover:hover,
|
||||
.datepicker table tr td.active:active,
|
||||
.datepicker table tr td.active:hover:active,
|
||||
.datepicker table tr td.active.disabled:active,
|
||||
.datepicker table tr td.active.disabled:hover:active,
|
||||
.datepicker table tr td.active.active,
|
||||
.datepicker table tr td.active:hover.active,
|
||||
.datepicker table tr td.active.disabled.active,
|
||||
.datepicker table tr td.active.disabled:hover.active,
|
||||
.datepicker table tr td.active.disabled,
|
||||
.datepicker table tr td.active:hover.disabled,
|
||||
.datepicker table tr td.active.disabled.disabled,
|
||||
.datepicker table tr td.active.disabled:hover.disabled,
|
||||
.datepicker table tr td.active[disabled],
|
||||
.datepicker table tr td.active:hover[disabled],
|
||||
.datepicker table tr td.active.disabled[disabled],
|
||||
.datepicker table tr td.active.disabled:hover[disabled] {
|
||||
background-color: #0044cc;
|
||||
}
|
||||
.datepicker table tr td.active:active,
|
||||
.datepicker table tr td.active:hover:active,
|
||||
.datepicker table tr td.active.disabled:active,
|
||||
.datepicker table tr td.active.disabled:hover:active,
|
||||
.datepicker table tr td.active.active,
|
||||
.datepicker table tr td.active:hover.active,
|
||||
.datepicker table tr td.active.disabled.active,
|
||||
.datepicker table tr td.active.disabled:hover.active {
|
||||
background-color: #003399 \9;
|
||||
}
|
||||
.datepicker table tr td span {
|
||||
display: block;
|
||||
width: 23%;
|
||||
height: 54px;
|
||||
line-height: 54px;
|
||||
float: left;
|
||||
margin: 1%;
|
||||
cursor: pointer;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.datepicker table tr td span:hover {
|
||||
background: #eeeeee;
|
||||
}
|
||||
.datepicker table tr td span.disabled,
|
||||
.datepicker table tr td span.disabled:hover {
|
||||
background: none;
|
||||
color: #999999;
|
||||
cursor: default;
|
||||
}
|
||||
.datepicker table tr td span.active,
|
||||
.datepicker table tr td span.active:hover,
|
||||
.datepicker table tr td span.active.disabled,
|
||||
.datepicker table tr td span.active.disabled:hover {
|
||||
background-color: #006dcc;
|
||||
background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
|
||||
background-image: -ms-linear-gradient(top, #0088cc, #0044cc);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
|
||||
background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
|
||||
background-image: -o-linear-gradient(top, #0088cc, #0044cc);
|
||||
background-image: linear-gradient(top, #0088cc, #0044cc);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);
|
||||
border-color: #0044cc #0044cc #002a80;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||
color: #fff;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.datepicker table tr td span.active:hover,
|
||||
.datepicker table tr td span.active:hover:hover,
|
||||
.datepicker table tr td span.active.disabled:hover,
|
||||
.datepicker table tr td span.active.disabled:hover:hover,
|
||||
.datepicker table tr td span.active:active,
|
||||
.datepicker table tr td span.active:hover:active,
|
||||
.datepicker table tr td span.active.disabled:active,
|
||||
.datepicker table tr td span.active.disabled:hover:active,
|
||||
.datepicker table tr td span.active.active,
|
||||
.datepicker table tr td span.active:hover.active,
|
||||
.datepicker table tr td span.active.disabled.active,
|
||||
.datepicker table tr td span.active.disabled:hover.active,
|
||||
.datepicker table tr td span.active.disabled,
|
||||
.datepicker table tr td span.active:hover.disabled,
|
||||
.datepicker table tr td span.active.disabled.disabled,
|
||||
.datepicker table tr td span.active.disabled:hover.disabled,
|
||||
.datepicker table tr td span.active[disabled],
|
||||
.datepicker table tr td span.active:hover[disabled],
|
||||
.datepicker table tr td span.active.disabled[disabled],
|
||||
.datepicker table tr td span.active.disabled:hover[disabled] {
|
||||
background-color: #0044cc;
|
||||
}
|
||||
.datepicker table tr td span.active:active,
|
||||
.datepicker table tr td span.active:hover:active,
|
||||
.datepicker table tr td span.active.disabled:active,
|
||||
.datepicker table tr td span.active.disabled:hover:active,
|
||||
.datepicker table tr td span.active.active,
|
||||
.datepicker table tr td span.active:hover.active,
|
||||
.datepicker table tr td span.active.disabled.active,
|
||||
.datepicker table tr td span.active.disabled:hover.active {
|
||||
background-color: #003399 \9;
|
||||
}
|
||||
.datepicker table tr td span.old {
|
||||
color: #999999;
|
||||
}
|
||||
.datepicker th.datepicker-switch {
|
||||
width: 145px;
|
||||
}
|
||||
.datepicker thead tr:first-child th,
|
||||
.datepicker tfoot tr:first-child th {
|
||||
cursor: pointer;
|
||||
}
|
||||
.datepicker thead tr:first-child th:hover,
|
||||
.datepicker tfoot tr:first-child th:hover {
|
||||
background: #eeeeee;
|
||||
}
|
||||
.datepicker .cw {
|
||||
font-size: 10px;
|
||||
width: 12px;
|
||||
padding: 0 2px 0 5px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.datepicker thead tr:first-child th.cw {
|
||||
cursor: default;
|
||||
background-color: transparent;
|
||||
}
|
||||
.input-append.date .add-on i,
|
||||
.input-prepend.date .add-on i {
|
||||
display: block;
|
||||
cursor: pointer;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
.input-daterange input {
|
||||
text-align: center;
|
||||
}
|
||||
.input-daterange input:first-child {
|
||||
-webkit-border-radius: 3px 0 0 3px;
|
||||
-moz-border-radius: 3px 0 0 3px;
|
||||
border-radius: 3px 0 0 3px;
|
||||
}
|
||||
.input-daterange input:last-child {
|
||||
-webkit-border-radius: 0 3px 3px 0;
|
||||
-moz-border-radius: 0 3px 3px 0;
|
||||
border-radius: 0 3px 3px 0;
|
||||
}
|
||||
.input-daterange .add-on {
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
min-width: 16px;
|
||||
height: 18px;
|
||||
padding: 4px 5px;
|
||||
font-weight: normal;
|
||||
line-height: 18px;
|
||||
text-align: center;
|
||||
text-shadow: 0 1px 0 #ffffff;
|
||||
vertical-align: middle;
|
||||
background-color: #eeeeee;
|
||||
border: 1px solid #ccc;
|
||||
margin-left: -5px;
|
||||
margin-right: -5px;
|
||||
}
|
||||
1177
inst/www/shared/datepicker/js/bootstrap-datepicker.js
vendored
Normal file
1177
inst/www/shared/datepicker/js/bootstrap-datepicker.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2
inst/www/shared/datepicker/js/bootstrap-datepicker.min.js
vendored
Normal file
2
inst/www/shared/datepicker/js/bootstrap-datepicker.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.bg.js
vendored
Normal file
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.bg.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Bulgarian translation for bootstrap-datepicker
|
||||
* Apostol Apostolov <apostol.s.apostolov@gmail.com>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['bg'] = {
|
||||
days: ["Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота", "Неделя"],
|
||||
daysShort: ["Нед", "Пон", "Вто", "Сря", "Чет", "Пет", "Съб", "Нед"],
|
||||
daysMin: ["Н", "П", "В", "С", "Ч", "П", "С", "Н"],
|
||||
months: ["Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"],
|
||||
monthsShort: ["Ян", "Фев", "Мар", "Апр", "Май", "Юни", "Юли", "Авг", "Сеп", "Окт", "Ное", "Дек"],
|
||||
today: "днес"
|
||||
};
|
||||
}(jQuery));
|
||||
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.ca.js
vendored
Normal file
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.ca.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Catalan translation for bootstrap-datepicker
|
||||
* J. Garcia <jogaco.en@gmail.com>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['ca'] = {
|
||||
days: ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte", "Diumenge"],
|
||||
daysShort: ["Diu", "Dil", "Dmt", "Dmc", "Dij", "Div", "Dis", "Diu"],
|
||||
daysMin: ["dg", "dl", "dt", "dc", "dj", "dv", "ds", "dg"],
|
||||
months: ["Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"],
|
||||
monthsShort: ["Gen", "Feb", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Oct", "Nov", "Des"],
|
||||
today: "Avui"
|
||||
};
|
||||
}(jQuery));
|
||||
15
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.cs.js
vendored
Normal file
15
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.cs.js
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Czech translation for bootstrap-datepicker
|
||||
* Matěj Koubík <matej@koubik.name>
|
||||
* Fixes by Michal Remiš <michal.remis@gmail.com>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['cs'] = {
|
||||
days: ["Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota", "Neděle"],
|
||||
daysShort: ["Ned", "Pon", "Úte", "Stř", "Čtv", "Pát", "Sob", "Ned"],
|
||||
daysMin: ["Ne", "Po", "Út", "St", "Čt", "Pá", "So", "Ne"],
|
||||
months: ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"],
|
||||
monthsShort: ["Led", "Úno", "Bře", "Dub", "Kvě", "Čer", "Čnc", "Srp", "Zář", "Říj", "Lis", "Pro"],
|
||||
today: "Dnes"
|
||||
};
|
||||
}(jQuery));
|
||||
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.da.js
vendored
Normal file
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.da.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Danish translation for bootstrap-datepicker
|
||||
* Christian Pedersen <http://github.com/chripede>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['da'] = {
|
||||
days: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag", "Søndag"],
|
||||
daysShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør", "Søn"],
|
||||
daysMin: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø", "Sø"],
|
||||
months: ["Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
|
||||
today: "I Dag"
|
||||
};
|
||||
}(jQuery));
|
||||
16
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.de.js
vendored
Normal file
16
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.de.js
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
/**
|
||||
* German translation for bootstrap-datepicker
|
||||
* Sam Zurcher <sam@orelias.ch>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['de'] = {
|
||||
days: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"],
|
||||
daysShort: ["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam", "Son"],
|
||||
daysMin: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa", "So"],
|
||||
months: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"],
|
||||
monthsShort: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"],
|
||||
today: "Heute",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
};
|
||||
}(jQuery));
|
||||
13
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.el.js
vendored
Normal file
13
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.el.js
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
/**
|
||||
* Greek translation for bootstrap-datepicker
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['el'] = {
|
||||
days: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο", "Κυριακή"],
|
||||
daysShort: ["Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ", "Κυρ"],
|
||||
daysMin: ["Κυ", "Δε", "Τρ", "Τε", "Πε", "Πα", "Σα", "Κυ"],
|
||||
months: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"],
|
||||
monthsShort: ["Ιαν", "Φεβ", "Μαρ", "Απρ", "Μάι", "Ιουν", "Ιουλ", "Αυγ", "Σεπ", "Οκτ", "Νοε", "Δεκ"],
|
||||
today: "Σήμερα"
|
||||
};
|
||||
}(jQuery));
|
||||
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.es.js
vendored
Normal file
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.es.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Spanish translation for bootstrap-datepicker
|
||||
* Bruno Bonamin <bruno.bonamin@gmail.com>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['es'] = {
|
||||
days: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"],
|
||||
daysShort: ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb", "Dom"],
|
||||
daysMin: ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa", "Do"],
|
||||
months: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
|
||||
monthsShort: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"],
|
||||
today: "Hoy"
|
||||
};
|
||||
}(jQuery));
|
||||
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.fi.js
vendored
Normal file
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.fi.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Finnish translation for bootstrap-datepicker
|
||||
* Jaakko Salonen <https://github.com/jsalonen>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['fi'] = {
|
||||
days: ["sunnuntai", "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai", "sunnuntai"],
|
||||
daysShort: ["sun", "maa", "tii", "kes", "tor", "per", "lau", "sun"],
|
||||
daysMin: ["su", "ma", "ti", "ke", "to", "pe", "la", "su"],
|
||||
months: ["tammikuu", "helmikuu", "maaliskuu", "huhtikuu", "toukokuu", "kesäkuu", "heinäkuu", "elokuu", "syyskuu", "lokakuu", "marraskuu", "joulukuu"],
|
||||
monthsShort: ["tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mar", "jou"],
|
||||
today: "tänään"
|
||||
};
|
||||
}(jQuery));
|
||||
16
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.fr.js
vendored
Normal file
16
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.fr.js
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
/**
|
||||
* French translation for bootstrap-datepicker
|
||||
* Nico Mollet <nico.mollet@gmail.com>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['fr'] = {
|
||||
days: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"],
|
||||
daysShort: ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam", "Dim"],
|
||||
daysMin: ["D", "L", "Ma", "Me", "J", "V", "S", "D"],
|
||||
months: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"],
|
||||
monthsShort: ["Jan", "Fev", "Mar", "Avr", "Mai", "Jui", "Jul", "Aou", "Sep", "Oct", "Nov", "Dec"],
|
||||
today: "Aujourd'hui",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
};
|
||||
}(jQuery));
|
||||
15
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.he.js
vendored
Normal file
15
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.he.js
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Hebrew translation for bootstrap-datepicker
|
||||
* Sagie Maoz <sagie@maoz.info>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['he'] = {
|
||||
days: ["ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת", "ראשון"],
|
||||
daysShort: ["א", "ב", "ג", "ד", "ה", "ו", "ש", "א"],
|
||||
daysMin: ["א", "ב", "ג", "ד", "ה", "ו", "ש", "א"],
|
||||
months: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"],
|
||||
monthsShort: ["ינו", "פבר", "מרץ", "אפר", "מאי", "יונ", "יול", "אוג", "ספט", "אוק", "נוב", "דצמ"],
|
||||
today: "היום",
|
||||
rtl: true
|
||||
};
|
||||
}(jQuery));
|
||||
13
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.hr.js
vendored
Normal file
13
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.hr.js
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
/**
|
||||
* Croatian localisation
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['hr'] = {
|
||||
days: ["Nedjelja", "Ponedjelja", "Utorak", "Srijeda", "Četrtak", "Petak", "Subota", "Nedjelja"],
|
||||
daysShort: ["Ned", "Pon", "Uto", "Srr", "Čet", "Pet", "Sub", "Ned"],
|
||||
daysMin: ["Ne", "Po", "Ut", "Sr", "Če", "Pe", "Su", "Ne"],
|
||||
months: ["Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac"],
|
||||
monthsShort: ["Sije", "Velj", "Ožu", "Tra", "Svi", "Lip", "Jul", "Kol", "Ruj", "Lis", "Stu", "Pro"],
|
||||
today: "Danas"
|
||||
};
|
||||
}(jQuery));
|
||||
16
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.hu.js
vendored
Normal file
16
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.hu.js
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
/**
|
||||
* Hungarian translation for bootstrap-datepicker
|
||||
* Sotus László <lacisan@gmail.com>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['hu'] = {
|
||||
days: ["Vasárnap", "Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat", "Vasárnap"],
|
||||
daysShort: ["Vas", "Hét", "Ked", "Sze", "Csü", "Pén", "Szo", "Vas"],
|
||||
daysMin: ["Va", "Hé", "Ke", "Sz", "Cs", "Pé", "Sz", "Va"],
|
||||
months: ["Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Már", "Ápr", "Máj", "Jún", "Júl", "Aug", "Sze", "Okt", "Nov", "Dec"],
|
||||
today: "Ma",
|
||||
weekStart: 1,
|
||||
format: "yyyy.mm.dd"
|
||||
};
|
||||
}(jQuery));
|
||||
13
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.id.js
vendored
Normal file
13
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.id.js
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
/**
|
||||
* Bahasa translation for bootstrap-datepicker
|
||||
* Azwar Akbar <azwar.akbar@gmail.com>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['id'] = {
|
||||
days: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu", "Minggu"],
|
||||
daysShort: ["Mgu", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab", "Mgu"],
|
||||
daysMin: ["Mg", "Sn", "Sl", "Ra", "Ka", "Ju", "Sa", "Mg"],
|
||||
months: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ags", "Sep", "Okt", "Nov", "Des"]
|
||||
};
|
||||
}(jQuery));
|
||||
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.is.js
vendored
Normal file
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.is.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Icelandic translation for bootstrap-datepicker
|
||||
* Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['is'] = {
|
||||
days: ["Sunnudagur", "Mánudagur", "Þriðjudagur", "Miðvikudagur", "Fimmtudagur", "Föstudagur", "Laugardagur", "Sunnudagur"],
|
||||
daysShort: ["Sun", "Mán", "Þri", "Mið", "Fim", "Fös", "Lau", "Sun"],
|
||||
daysMin: ["Su", "Má", "Þr", "Mi", "Fi", "Fö", "La", "Su"],
|
||||
months: ["Janúar", "Febrúar", "Mars", "Apríl", "Maí", "Júní", "Júlí", "Ágúst", "September", "Október", "Nóvember", "Desember"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maí", "Jún", "Júl", "Ágú", "Sep", "Okt", "Nóv", "Des"],
|
||||
today: "Í Dag"
|
||||
};
|
||||
}(jQuery));
|
||||
16
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.it.js
vendored
Normal file
16
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.it.js
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
/**
|
||||
* Italian translation for bootstrap-datepicker
|
||||
* Enrico Rubboli <rubboli@gmail.com>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['it'] = {
|
||||
days: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato", "Domenica"],
|
||||
daysShort: ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab", "Dom"],
|
||||
daysMin: ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa", "Do"],
|
||||
months: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"],
|
||||
monthsShort: ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"],
|
||||
today: "Oggi",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
};
|
||||
}(jQuery));
|
||||
15
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.ja.js
vendored
Normal file
15
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.ja.js
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Japanese translation for bootstrap-datepicker
|
||||
* Norio Suzuki <https://github.com/suzuki/>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['ja'] = {
|
||||
days: ["日曜", "月曜", "火曜", "水曜", "木曜", "金曜", "土曜", "日曜"],
|
||||
daysShort: ["日", "月", "火", "水", "木", "金", "土", "日"],
|
||||
daysMin: ["日", "月", "火", "水", "木", "金", "土", "日"],
|
||||
months: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
|
||||
monthsShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
|
||||
today: "今日",
|
||||
format: "yyyy/mm/dd"
|
||||
};
|
||||
}(jQuery));
|
||||
13
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.kr.js
vendored
Normal file
13
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.kr.js
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
/**
|
||||
* Korean translation for bootstrap-datepicker
|
||||
* Gu Youn <http://github.com/guyoun>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['kr'] = {
|
||||
days: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일", "일요일"],
|
||||
daysShort: ["일", "월", "화", "수", "목", "금", "토", "일"],
|
||||
daysMin: ["일", "월", "화", "수", "목", "금", "토", "일"],
|
||||
months: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
|
||||
monthsShort: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"]
|
||||
};
|
||||
}(jQuery));
|
||||
16
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.lt.js
vendored
Normal file
16
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.lt.js
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
/**
|
||||
* Lithuanian translation for bootstrap-datepicker
|
||||
* Šarūnas Gliebus <ssharunas@yahoo.co.uk>
|
||||
*/
|
||||
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['lt'] = {
|
||||
days: ["Sekmadienis", "Pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis", "Sekmadienis"],
|
||||
daysShort: ["S", "Pr", "A", "T", "K", "Pn", "Š", "S"],
|
||||
daysMin: ["Sk", "Pr", "An", "Tr", "Ke", "Pn", "Št", "Sk"],
|
||||
months: ["Sausis", "Vasaris", "Kovas", "Balandis", "Gegužė", "Birželis", "Liepa", "Rugpjūtis", "Rugsėjis", "Spalis", "Lapkritis", "Gruodis"],
|
||||
monthsShort: ["Sau", "Vas", "Kov", "Bal", "Geg", "Bir", "Lie", "Rugp", "Rugs", "Spa", "Lap", "Gru"],
|
||||
today: "Šiandien",
|
||||
weekStart: 1
|
||||
};
|
||||
}(jQuery));
|
||||
16
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.lv.js
vendored
Normal file
16
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.lv.js
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
/**
|
||||
* Latvian translation for bootstrap-datepicker
|
||||
* Artis Avotins <artis@apit.lv>
|
||||
*/
|
||||
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['lv'] = {
|
||||
days: ["Svētdiena", "Pirmdiena", "Otrdiena", "Trešdiena", "Ceturtdiena", "Piektdiena", "Sestdiena", "Svētdiena"],
|
||||
daysShort: ["Sv", "P", "O", "T", "C", "Pk", "S", "Sv"],
|
||||
daysMin: ["Sv", "Pr", "Ot", "Tr", "Ce", "Pk", "St", "Sv"],
|
||||
months: ["Janvāris", "Februāris", "Marts", "Aprīlis", "Maijs", "Jūnijs", "Jūlijs", "Augusts", "Septembris", "Oktobris", "Novembris", "Decembris"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jūn", "Jūl", "Aug", "Sep", "Okt", "Nov", "Dec."],
|
||||
today: "Šodien",
|
||||
weekStart: 1
|
||||
};
|
||||
}(jQuery));
|
||||
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.ms.js
vendored
Normal file
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.ms.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Malay translation for bootstrap-datepicker
|
||||
* Ateman Faiz <noorulfaiz@gmail.com>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['ms'] = {
|
||||
days: ["Ahad", "Isnin", "Selasa", "Rabu", "Khamis", "Jumaat", "Sabtu", "Ahad"],
|
||||
daysShort: ["Aha", "Isn", "Sel", "Rab", "Kha", "Jum", "Sab", "Aha"],
|
||||
daysMin: ["Ah", "Is", "Se", "Ra", "Kh", "Ju", "Sa", "Ah"],
|
||||
months: ["Januari", "Februari", "Mac", "April", "Mei", "Jun", "Julai", "Ogos", "September", "Oktober", "November", "Disember"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ogo", "Sep", "Okt", "Nov", "Dis"],
|
||||
today: "Hari Ini"
|
||||
};
|
||||
}(jQuery));
|
||||
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.nb.js
vendored
Normal file
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.nb.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Norwegian (bokmål) translation for bootstrap-datepicker
|
||||
* Fredrik Sundmyhr <http://github.com/fsundmyhr>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['nb'] = {
|
||||
days: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag", "Søndag"],
|
||||
daysShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør", "Søn"],
|
||||
daysMin: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø", "Sø"],
|
||||
months: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"],
|
||||
today: "I Dag"
|
||||
};
|
||||
}(jQuery));
|
||||
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.nl.js
vendored
Normal file
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.nl.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Dutch translation for bootstrap-datepicker
|
||||
* Reinier Goltstein <mrgoltstein@gmail.com>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['nl'] = {
|
||||
days: ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag", "Zondag"],
|
||||
daysShort: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za", "Zo"],
|
||||
daysMin: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za", "Zo"],
|
||||
months: ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mrt", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
|
||||
today: "Vandaag"
|
||||
};
|
||||
}(jQuery));
|
||||
15
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.pl.js
vendored
Normal file
15
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.pl.js
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Polish translation for bootstrap-datepicker
|
||||
* Robert <rtpm@gazeta.pl>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['pl'] = {
|
||||
days: ["Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota", "Niedziela"],
|
||||
daysShort: ["Nie", "Pn", "Wt", "Śr", "Czw", "Pt", "So", "Nie"],
|
||||
daysMin: ["N", "Pn", "Wt", "Śr", "Cz", "Pt", "So", "N"],
|
||||
months: ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"],
|
||||
monthsShort: ["Sty", "Lu", "Mar", "Kw", "Maj", "Cze", "Lip", "Sie", "Wrz", "Pa", "Lis", "Gru"],
|
||||
today: "Dzisiaj",
|
||||
weekStart: 1
|
||||
};
|
||||
}(jQuery));
|
||||
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.pt-BR.js
vendored
Normal file
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.pt-BR.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Brazilian translation for bootstrap-datepicker
|
||||
* Cauan Cabral <cauan@radig.com.br>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['pt-BR'] = {
|
||||
days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado", "Domingo"],
|
||||
daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb", "Dom"],
|
||||
daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa", "Do"],
|
||||
months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
|
||||
monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"],
|
||||
today: "Hoje"
|
||||
};
|
||||
}(jQuery));
|
||||
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.pt.js
vendored
Normal file
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.pt.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Portuguese translation for bootstrap-datepicker
|
||||
* Original code: Cauan Cabral <cauan@radig.com.br>
|
||||
* Tiago Melo <tiago.blackcode@gmail.com>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['pt'] = {
|
||||
days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado", "Domingo"],
|
||||
daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb", "Dom"],
|
||||
daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa", "Do"],
|
||||
months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
|
||||
monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"]
|
||||
};
|
||||
}(jQuery));
|
||||
15
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.ro.js
vendored
Normal file
15
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.ro.js
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Romanian translation for bootstrap-datepicker
|
||||
* Cristian Vasile <cristi.mie@gmail.com>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['ro'] = {
|
||||
days: ["Duminică", "Luni", "Marţi", "Miercuri", "Joi", "Vineri", "Sâmbătă", "Duminică"],
|
||||
daysShort: ["Dum", "Lun", "Mar", "Mie", "Joi", "Vin", "Sâm", "Dum"],
|
||||
daysMin: ["Du", "Lu", "Ma", "Mi", "Jo", "Vi", "Sâ", "Du"],
|
||||
months: ["Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"],
|
||||
monthsShort: ["Ian", "Feb", "Mar", "Apr", "Mai", "Iun", "Iul", "Aug", "Sep", "Oct", "Nov", "Dec"],
|
||||
today: "Astăzi",
|
||||
weekStart: 1
|
||||
};
|
||||
}(jQuery));
|
||||
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.rs-latin.js
vendored
Normal file
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.rs-latin.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Serbian latin translation for bootstrap-datepicker
|
||||
* Bojan Milosavlević <milboj@gmail.com>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['rs'] = {
|
||||
days: ["Nedelja","Ponedeljak", "Utorak", "Sreda", "Četvrtak", "Petak", "Subota", "Nedelja"],
|
||||
daysShort: ["Ned", "Pon", "Uto", "Sre", "Čet", "Pet", "Sub", "Ned"],
|
||||
daysMin: ["N", "Po", "U", "Sr", "Č", "Pe", "Su", "N"],
|
||||
months: ["Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"],
|
||||
today: "Danas"
|
||||
};
|
||||
}(jQuery));
|
||||
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.rs.js
vendored
Normal file
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.rs.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Serbian cyrillic translation for bootstrap-datepicker
|
||||
* Bojan Milosavlević <milboj@gmail.com>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['rs'] = {
|
||||
days: ["Недеља","Понедељак", "Уторак", "Среда", "Четвртак", "Петак", "Субота", "Недеља"],
|
||||
daysShort: ["Нед", "Пон", "Уто", "Сре", "Чет", "Пет", "Суб", "Нед"],
|
||||
daysMin: ["Н", "По", "У", "Ср", "Ч", "Пе", "Су", "Н"],
|
||||
months: ["Јануар", "Фебруар", "Март", "Април", "Мај", "Јун", "Јул", "Август", "Септембар", "Октобар", "Новембар", "Децембар"],
|
||||
monthsShort: ["Јан", "Феб", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Нов", "Дец"],
|
||||
today: "Данас"
|
||||
};
|
||||
}(jQuery));
|
||||
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.ru.js
vendored
Normal file
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.ru.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Russian translation for bootstrap-datepicker
|
||||
* Victor Taranenko <darwin@snowdale.com>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['ru'] = {
|
||||
days: ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье"],
|
||||
daysShort: ["Вск", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб", "Вск"],
|
||||
daysMin: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс"],
|
||||
months: ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"],
|
||||
monthsShort: ["Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"],
|
||||
today: "Сегодня"
|
||||
};
|
||||
}(jQuery));
|
||||
15
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.sk.js
vendored
Normal file
15
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.sk.js
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Slovak translation for bootstrap-datepicker
|
||||
* Marek Lichtner <marek@licht.sk>
|
||||
* Fixes by Michal Remiš <michal.remis@gmail.com>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates["sk"] = {
|
||||
days: ["Nedeľa", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota", "Nedeľa"],
|
||||
daysShort: ["Ned", "Pon", "Uto", "Str", "Štv", "Pia", "Sob", "Ned"],
|
||||
daysMin: ["Ne", "Po", "Ut", "St", "Št", "Pia", "So", "Ne"],
|
||||
months: ["Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Máj", "Jún", "Júl", "Aug", "Sep", "Okt", "Nov", "Dec"],
|
||||
today: "Dnes"
|
||||
};
|
||||
}(jQuery));
|
||||
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.sl.js
vendored
Normal file
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.sl.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Slovene translation for bootstrap-datepicker
|
||||
* Gregor Rudolf <gregor.rudolf@gmail.com>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['sl'] = {
|
||||
days: ["Nedelja", "Ponedeljek", "Torek", "Sreda", "Četrtek", "Petek", "Sobota", "Nedelja"],
|
||||
daysShort: ["Ned", "Pon", "Tor", "Sre", "Čet", "Pet", "Sob", "Ned"],
|
||||
daysMin: ["Ne", "Po", "To", "Sr", "Če", "Pe", "So", "Ne"],
|
||||
months: ["Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"],
|
||||
today: "Danes"
|
||||
};
|
||||
}(jQuery));
|
||||
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.sv.js
vendored
Normal file
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.sv.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Swedish translation for bootstrap-datepicker
|
||||
* Patrik Ragnarsson <patrik@starkast.net>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['sv'] = {
|
||||
days: ["Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag", "Söndag"],
|
||||
daysShort: ["Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör", "Sön"],
|
||||
daysMin: ["Sö", "Må", "Ti", "On", "To", "Fr", "Lö", "Sö"],
|
||||
months: ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
|
||||
today: "I Dag"
|
||||
};
|
||||
}(jQuery));
|
||||
15
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.sw.js
vendored
Normal file
15
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.sw.js
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Swahili translation for bootstrap-datepicker
|
||||
* Edwin Mugendi <https://github.com/edwinmugendi>
|
||||
* Source: http://scriptsource.org/cms/scripts/page.php?item_id=entry_detail&uid=xnfaqyzcku
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['sw'] = {
|
||||
days: ["Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi", "Jumapili"],
|
||||
daysShort: ["J2", "J3", "J4", "J5", "Alh", "Ij", "J1", "J2"],
|
||||
daysMin: ["2", "3", "4", "5", "A", "I", "1", "2"],
|
||||
months: ["Januari", "Februari", "Machi", "Aprili", "Mei", "Juni", "Julai", "Agosti", "Septemba", "Oktoba", "Novemba", "Desemba"],
|
||||
monthsShort: ["Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ago", "Sep", "Okt", "Nov", "Des"],
|
||||
today: "Leo"
|
||||
};
|
||||
}(jQuery));
|
||||
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.th.js
vendored
Normal file
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.th.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Thai translation for bootstrap-datepicker
|
||||
* Suchau Jiraprapot <seroz24@gmail.com>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['th'] = {
|
||||
days: ["อาทิตย์", "จันทร์", "อังคาร", "พุธ", "พฤหัส", "ศุกร์", "เสาร์", "อาทิตย์"],
|
||||
daysShort: ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส", "อา"],
|
||||
daysMin: ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส", "อา"],
|
||||
months: ["มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฎาคม", "สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม"],
|
||||
monthsShort: ["ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค."],
|
||||
today: "วันนี้"
|
||||
};
|
||||
}(jQuery));
|
||||
15
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.tr.js
vendored
Normal file
15
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.tr.js
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Turkish translation for bootstrap-datepicker
|
||||
* Serkan Algur <kaisercrazy_2@hotmail.com>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['tr'] = {
|
||||
days: ["Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi", "Pazar"],
|
||||
daysShort: ["Pz", "Pzt", "Sal", "Çrş", "Prş", "Cu", "Cts", "Pz"],
|
||||
daysMin: ["Pz", "Pzt", "Sa", "Çr", "Pr", "Cu", "Ct", "Pz"],
|
||||
months: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"],
|
||||
monthsShort: ["Oca", "Şub", "Mar", "Nis", "May", "Haz", "Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara"],
|
||||
today: "Bugün"
|
||||
};
|
||||
}(jQuery));
|
||||
|
||||
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.uk.js
vendored
Normal file
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.uk.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Ukrainian translation for bootstrap-datepicker
|
||||
* Andrey Vityuk <andrey [dot] vityuk [at] gmail.com>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['uk'] = {
|
||||
days: ["Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота", "Неділя"],
|
||||
daysShort: ["Нед", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб", "Нед"],
|
||||
daysMin: ["Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Нд"],
|
||||
months: ["Січень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"],
|
||||
monthsShort: ["Січ", "Лют", "Бер", "Кві", "Тра", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Гру"],
|
||||
today: "Сьогодні"
|
||||
};
|
||||
}(jQuery));
|
||||
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.zh-CN.js
vendored
Normal file
14
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.zh-CN.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Simplified Chinese translation for bootstrap-datepicker
|
||||
* Yuan Cheung <advanimal@gmail.com>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['zh-CN'] = {
|
||||
days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"],
|
||||
daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"],
|
||||
daysMin: ["日", "一", "二", "三", "四", "五", "六", "日"],
|
||||
months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
|
||||
monthsShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
|
||||
today: "今日"
|
||||
};
|
||||
}(jQuery));
|
||||
13
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.zh-TW.js
vendored
Normal file
13
inst/www/shared/datepicker/js/locales/bootstrap-datepicker.zh-TW.js
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
/**
|
||||
* Traditional Chinese translation for bootstrap-datepicker
|
||||
* Rung-Sheng Jang <daniel@i-trend.co.cc>
|
||||
*/
|
||||
;(function($){
|
||||
$.fn.datepicker.dates['zh-TW'] = {
|
||||
days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"],
|
||||
daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"],
|
||||
daysMin: ["日", "一", "二", "三", "四", "五", "六", "日"],
|
||||
months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
|
||||
monthsShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"]
|
||||
};
|
||||
}(jQuery));
|
||||
230
inst/www/shared/datepicker/less/datepicker.less
Normal file
230
inst/www/shared/datepicker/less/datepicker.less
Normal file
@@ -0,0 +1,230 @@
|
||||
/*!
|
||||
* Datepicker for Bootstrap
|
||||
*
|
||||
* Copyright 2012 Stefan Petre
|
||||
* Improvements by Andrew Rowls
|
||||
* Licensed under the Apache License v2.0
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*/
|
||||
|
||||
.datepicker {
|
||||
padding: 4px;
|
||||
.border-radius(4px);
|
||||
&-inline {
|
||||
width: 220px;
|
||||
}
|
||||
direction: ltr;
|
||||
&&-rtl {
|
||||
direction: rtl;
|
||||
table tr td span {
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
&-dropdown {
|
||||
top: 0;
|
||||
left: 0;
|
||||
&:before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
border-left: 7px solid transparent;
|
||||
border-right: 7px solid transparent;
|
||||
border-bottom: 7px solid #ccc;
|
||||
border-bottom-color: rgba(0,0,0,.2);
|
||||
position: absolute;
|
||||
top: -7px;
|
||||
left: 6px;
|
||||
}
|
||||
&:after {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
border-left: 6px solid transparent;
|
||||
border-right: 6px solid transparent;
|
||||
border-bottom: 6px solid @white;
|
||||
position: absolute;
|
||||
top: -6px;
|
||||
left: 7px;
|
||||
}
|
||||
}
|
||||
>div {
|
||||
display: none;
|
||||
}
|
||||
&.days div.datepicker-days {
|
||||
display: block;
|
||||
}
|
||||
&.months div.datepicker-months {
|
||||
display: block;
|
||||
}
|
||||
&.years div.datepicker-years {
|
||||
display: block;
|
||||
}
|
||||
table{
|
||||
margin: 0;
|
||||
}
|
||||
td,
|
||||
th{
|
||||
text-align: center;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
.border-radius(4px);
|
||||
|
||||
border: none;
|
||||
}
|
||||
// Inline display inside a table presents some problems with
|
||||
// border and background colors.
|
||||
.table-striped & table tr {
|
||||
td, th {
|
||||
background-color:transparent;
|
||||
}
|
||||
}
|
||||
table tr td {
|
||||
&.day:hover {
|
||||
background: @grayLighter;
|
||||
cursor: pointer;
|
||||
}
|
||||
&.old,
|
||||
&.new {
|
||||
color: @grayLight;
|
||||
}
|
||||
&.disabled,
|
||||
&.disabled:hover {
|
||||
background: none;
|
||||
color: @grayLight;
|
||||
cursor: default;
|
||||
}
|
||||
&.today,
|
||||
&.today:hover,
|
||||
&.today.disabled,
|
||||
&.today.disabled:hover {
|
||||
@todayBackground: lighten(@orange, 30%);
|
||||
.buttonBackground(@todayBackground, spin(@todayBackground, 20));
|
||||
color: #000 !important;
|
||||
}
|
||||
&.range,
|
||||
&.range:hover,
|
||||
&.range.disabled,
|
||||
&.range.disabled:hover {
|
||||
background:@grayLighter;
|
||||
.border-radius(0);
|
||||
}
|
||||
&.range.today,
|
||||
&.range.today:hover,
|
||||
&.range.today.disabled,
|
||||
&.range.today.disabled:hover {
|
||||
@todayBackground: mix(@orange, @grayLighter);
|
||||
.buttonBackground(@todayBackground, spin(@todayBackground, 20));
|
||||
.border-radius(0);
|
||||
}
|
||||
&.selected,
|
||||
&.selected:hover,
|
||||
&.selected.disabled,
|
||||
&.selected.disabled:hover {
|
||||
.buttonBackground(lighten(@grayLight, 10), darken(@grayLight, 10));
|
||||
color: #fff;
|
||||
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
|
||||
}
|
||||
&.active,
|
||||
&.active:hover,
|
||||
&.active.disabled,
|
||||
&.active.disabled:hover {
|
||||
.buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));
|
||||
color: #fff;
|
||||
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
|
||||
}
|
||||
span {
|
||||
display: block;
|
||||
width: 23%;
|
||||
height: 54px;
|
||||
line-height: 54px;
|
||||
float: left;
|
||||
margin: 1%;
|
||||
cursor: pointer;
|
||||
.border-radius(4px);
|
||||
&:hover {
|
||||
background: @grayLighter;
|
||||
}
|
||||
&.disabled,
|
||||
&.disabled:hover {
|
||||
background:none;
|
||||
color: @grayLight;
|
||||
cursor: default;
|
||||
}
|
||||
&.active,
|
||||
&.active:hover,
|
||||
&.active.disabled,
|
||||
&.active.disabled:hover {
|
||||
.buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));
|
||||
color: #fff;
|
||||
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
|
||||
}
|
||||
&.old {
|
||||
color: @grayLight;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
th.datepicker-switch {
|
||||
width: 145px;
|
||||
}
|
||||
|
||||
thead tr:first-child th,
|
||||
tfoot tr:first-child th {
|
||||
cursor: pointer;
|
||||
&:hover{
|
||||
background: @grayLighter;
|
||||
}
|
||||
}
|
||||
/*.dow {
|
||||
border-top: 1px solid #ddd !important;
|
||||
}*/
|
||||
|
||||
// Basic styling for calendar-week cells
|
||||
.cw {
|
||||
font-size: 10px;
|
||||
width: 12px;
|
||||
padding: 0 2px 0 5px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
thead tr:first-child th.cw {
|
||||
cursor: default;
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
.input-append,
|
||||
.input-prepend {
|
||||
&.date {
|
||||
.add-on i {
|
||||
display: block;
|
||||
cursor: pointer;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.input-daterange {
|
||||
input {
|
||||
text-align:center;
|
||||
}
|
||||
input:first-child {
|
||||
.border-radius(3px 0 0 3px);
|
||||
}
|
||||
input:last-child {
|
||||
.border-radius(0 3px 3px 0);
|
||||
}
|
||||
.add-on {
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
min-width: 16px;
|
||||
height: @baseLineHeight;
|
||||
padding: 4px 5px;
|
||||
font-weight: normal;
|
||||
line-height: @baseLineHeight;
|
||||
text-align: center;
|
||||
text-shadow: 0 1px 0 @white;
|
||||
vertical-align: middle;
|
||||
background-color: @grayLighter;
|
||||
border: 1px solid #ccc;
|
||||
margin-left:-5px;
|
||||
margin-right:-5px;
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,14 @@
|
||||
return Math.floor(0x100000000 + (Math.random() * 0xF00000000)).toString(16);
|
||||
}
|
||||
|
||||
// Convert a number to a string with leading zeros
|
||||
function padZeros(n, digits) {
|
||||
var str = n.toString();
|
||||
while (str.length < digits)
|
||||
str = "0" + str;
|
||||
return str;
|
||||
}
|
||||
|
||||
function slice(blob, start, end) {
|
||||
if (blob.slice)
|
||||
return blob.slice(start, end);
|
||||
@@ -1005,6 +1013,7 @@
|
||||
renderValue: function(el, data) {
|
||||
exports.unbindAll(el);
|
||||
$(el).html(data);
|
||||
exports.initializeInputs(el);
|
||||
exports.bindAll(el);
|
||||
}
|
||||
});
|
||||
@@ -1054,7 +1063,17 @@
|
||||
this.getState = function(el, data) { throw "Not implemented"; };
|
||||
|
||||
this.getRatePolicy = function() { return null; };
|
||||
|
||||
|
||||
// Some input objects need initialization before being bound. This is
|
||||
// called when the document is ready (for statically-added input objects),
|
||||
// and when new input objects are added to the document with
|
||||
// htmlOutputBinding.renderValue() (for dynamically-added input objects).
|
||||
// This is called before the input is bound.
|
||||
this.initialize = function(el) { };
|
||||
|
||||
// This is called after unbinding the output.
|
||||
this.dispose = function(el) { };
|
||||
|
||||
}).call(InputBinding.prototype);
|
||||
|
||||
|
||||
@@ -1219,12 +1238,12 @@
|
||||
}
|
||||
},
|
||||
subscribe: function(el, callback) {
|
||||
$(el).on('change.inputBinding', function(event) {
|
||||
$(el).on('change.sliderInputBinding', function(event) {
|
||||
callback(!$(el).data('animating'));
|
||||
});
|
||||
},
|
||||
unsubscribe: function(el) {
|
||||
$(el).off('.inputBinding');
|
||||
$(el).off('.sliderInputBinding');
|
||||
},
|
||||
receiveMessage: function(el, data) {
|
||||
if (data.hasOwnProperty('value'))
|
||||
@@ -1260,7 +1279,331 @@
|
||||
});
|
||||
inputBindings.register(sliderInputBinding, 'shiny.sliderInput');
|
||||
|
||||
|
||||
|
||||
var dateInputBinding = new InputBinding();
|
||||
$.extend(dateInputBinding, {
|
||||
find: function(scope) {
|
||||
return $(scope).find('.shiny-date-input');
|
||||
},
|
||||
getType: function(el) {
|
||||
return "date";
|
||||
},
|
||||
// Return the date in an unambiguous format, yyyy-mm-dd (as opposed to a
|
||||
// format like mm/dd/yyyy)
|
||||
getValue: function(el) {
|
||||
var date = $(el).find('input').data('datepicker').getUTCDate();
|
||||
return this._formatDate(date);
|
||||
},
|
||||
// value must be an unambiguous string like '2001-01-01', or a Date object.
|
||||
setValue: function(el, value) {
|
||||
var date = this._newDate(value);
|
||||
// If date is invalid, do nothing
|
||||
if (isNaN(date))
|
||||
return;
|
||||
|
||||
$(el).find('input').datepicker('update', date);
|
||||
},
|
||||
getState: function(el) {
|
||||
var $el = $(el);
|
||||
var $input = $el.find('input');
|
||||
|
||||
var min = $input.data('datepicker').startDate;
|
||||
var max = $input.data('datepicker').endDate;
|
||||
|
||||
// Stringify min and max. If min and max aren't set, they will be
|
||||
// -Infinity and Infinity; replace these with null.
|
||||
min = (min === -Infinity) ? null : this._formatDate(min);
|
||||
max = (max === Infinity) ? null : this._formatDate(max);
|
||||
|
||||
// startViewMode is stored as a number; convert to string
|
||||
var startview = $input.data('datepicker').startViewMode;
|
||||
if (startview === 2) startview = 'decade';
|
||||
else if (startview === 1) startview = 'year';
|
||||
else if (startview === 0) startview = 'month';
|
||||
|
||||
return {
|
||||
label: $el.find('label[for=' + el.id + ']').text(),
|
||||
value: this.getValue(el),
|
||||
valueString: $input.val(),
|
||||
min: min,
|
||||
max: max,
|
||||
language: $input.data('datepicker').language,
|
||||
weekstart: $input.data('datepicker').weekStart,
|
||||
format: this._formatToString($input.data('datepicker').format),
|
||||
startview: startview
|
||||
};
|
||||
},
|
||||
receiveMessage: function(el, data) {
|
||||
var $input = $(el).find('input');
|
||||
|
||||
if (data.hasOwnProperty('value'))
|
||||
this.setValue(el, data.value);
|
||||
|
||||
if (data.hasOwnProperty('label'))
|
||||
$(el).find('label[for=' + el.id + ']').text(data.label);
|
||||
|
||||
if (data.hasOwnProperty('min'))
|
||||
this._setMin($input[0], data.min);
|
||||
|
||||
if (data.hasOwnProperty('max'))
|
||||
this._setMax($input[0], data.max);
|
||||
|
||||
$(el).trigger('change');
|
||||
},
|
||||
subscribe: function(el, callback) {
|
||||
$(el).on('keyup.dateInputBinding input.dateInputBinding', function(event) {
|
||||
// Use normal debouncing policy when typing
|
||||
callback(true);
|
||||
});
|
||||
$(el).on('changeDate.dateInputBinding change.dateInputBinding', function(event) {
|
||||
// Send immediately when clicked
|
||||
callback(false);
|
||||
});
|
||||
},
|
||||
unsubscribe: function(el) {
|
||||
$(el).off('.dateInputBinding');
|
||||
},
|
||||
getRatePolicy: function() {
|
||||
return {
|
||||
policy: 'debounce',
|
||||
delay: 250
|
||||
};
|
||||
},
|
||||
initialize: function(el) {
|
||||
var $input = $(el).find('input');
|
||||
|
||||
var date = $input.data('initial-date');
|
||||
// If initial_date is null, set to current date
|
||||
if (date === undefined || date === null) {
|
||||
// Get local date, but as UTC
|
||||
date = this._dateAsUTC(new Date());
|
||||
}
|
||||
|
||||
this.setValue(el, date);
|
||||
|
||||
// Set the start and end dates, from min-date and max-date. These always
|
||||
// use yyyy-mm-dd format, instead of bootstrap-datepicker's built-in
|
||||
// support for date-startdate and data-enddate, which use the current
|
||||
// date format.
|
||||
this._setMin($input[0], $input.data('min-date'));
|
||||
this._setMax($input[0], $input.data('max-date'));
|
||||
},
|
||||
// Given a Date object, return a string in yyyy-mm-dd format, using the
|
||||
// UTC date. This may be a day off from the date in the local time zone.
|
||||
_formatDate: function(date) {
|
||||
if (date instanceof Date) {
|
||||
return date.getUTCFullYear() + '-' +
|
||||
padZeros(date.getUTCMonth()+1, 2) + '-' +
|
||||
padZeros(date.getUTCDate(), 2);
|
||||
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
// Given a format object from a date picker, return a string
|
||||
_formatToString: function(format) {
|
||||
// Format object has structure like:
|
||||
// { parts: ['mm', 'dd', 'yy'], separators: ['', '/', '/' ,''] }
|
||||
var str = '';
|
||||
for (var i = 0; i < format.parts.length; i++) {
|
||||
str += format.separators[i] + format.parts[i];
|
||||
}
|
||||
str += format.separators[i];
|
||||
return str;
|
||||
},
|
||||
// Given an unambiguous date string or a Date object, set the min (start) date.
|
||||
// null will unset.
|
||||
_setMin: function(el, date) {
|
||||
if (date === null) {
|
||||
$(el).datepicker('setStartDate', null);
|
||||
|
||||
} else {
|
||||
date = this._newDate(date);
|
||||
if (!isNaN(date))
|
||||
$(el).datepicker('setStartDate', date);
|
||||
}
|
||||
},
|
||||
// Given an unambiguous date string or a Date object, set the max (end) date
|
||||
// null will unset.
|
||||
_setMax: function(el, date) {
|
||||
if (date === null) {
|
||||
$(el).datepicker('setEndDate', null);
|
||||
|
||||
} else {
|
||||
date = this._newDate(date);
|
||||
if (!isNaN(date))
|
||||
$(el).datepicker('setEndDate', date);
|
||||
}
|
||||
},
|
||||
// Given a date string of format yyyy-mm-dd, return a Date object with
|
||||
// that date at 12AM UTC.
|
||||
// If date is a Date object, return it unchanged.
|
||||
_newDate: function(date) {
|
||||
if (date instanceof Date)
|
||||
return date;
|
||||
if (!date)
|
||||
return null;
|
||||
|
||||
// Get Date object - this will be at 12AM in UTC, but may print
|
||||
// differently at the Javascript console.
|
||||
var d = new Date(date);
|
||||
|
||||
// If invalid date, return null
|
||||
if (isNaN(d))
|
||||
return null;
|
||||
|
||||
return new Date(d.getTime());
|
||||
},
|
||||
// Given a Date object, return a Date object which has the same "clock time"
|
||||
// in UTC. For example, if input date is 2013-02-01 23:00:00 GMT-0600 (CST),
|
||||
// output will be 2013-02-01 23:00:00 UTC. Note that the JS console may
|
||||
// print this in local time, as "Sat Feb 02 2013 05:00:00 GMT-0600 (CST)".
|
||||
_dateAsUTC: function(date) {
|
||||
return new Date(date.getTime() - date.getTimezoneOffset() * 60000);
|
||||
}
|
||||
});
|
||||
inputBindings.register(dateInputBinding, 'shiny.dateInput');
|
||||
|
||||
|
||||
var dateRangeInputBinding = {};
|
||||
$.extend(dateRangeInputBinding, dateInputBinding, {
|
||||
find: function(scope) {
|
||||
return $(scope).find('.shiny-date-range-input');
|
||||
},
|
||||
// Return the date in an unambiguous format, yyyy-mm-dd (as opposed to a
|
||||
// format like mm/dd/yyyy)
|
||||
getValue: function(el) {
|
||||
var $inputs = $(el).find('input');
|
||||
var start = $inputs.eq(0).data('datepicker').getUTCDate();
|
||||
var end = $inputs.eq(1).data('datepicker').getUTCDate();
|
||||
|
||||
return [this._formatDate(start), this._formatDate(end)];
|
||||
},
|
||||
// value must be an array of unambiguous strings like '2001-01-01', or
|
||||
// Date objects.
|
||||
setValue: function(el, value) {
|
||||
if (!(value instanceof Array)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Get the start and end input objects
|
||||
var $inputs = $(el).find('input');
|
||||
|
||||
// If value is undefined, don't try to set
|
||||
if (value[0] !== undefined) {
|
||||
var start = this._newDate(value[0]);
|
||||
$inputs.eq(0).datepicker('update', start);
|
||||
}
|
||||
if (value[1] !== undefined) {
|
||||
var end = this._newDate(value[1]);
|
||||
$inputs.eq(1).datepicker('update', end);
|
||||
}
|
||||
|
||||
// Make it so that the correct items are highlighted when the calendar is
|
||||
// displayed
|
||||
$(el).datepicker('updateDates');
|
||||
},
|
||||
getState: function(el) {
|
||||
var $el = $(el);
|
||||
var $inputs = $el.find('input');
|
||||
var $startinput = $inputs.eq(0);
|
||||
var $endinput = $inputs.eq(1);
|
||||
|
||||
// For many of the properties, assume start and end have the same values
|
||||
var min = $startinput.data('datepicker').startDate;
|
||||
var max = $startinput.data('datepicker').endDate;
|
||||
|
||||
// Stringify min and max. If min and max aren't set, they will be
|
||||
// -Infinity and Infinity; replace these with null.
|
||||
min = (min === -Infinity) ? null : this._formatDate(min);
|
||||
max = (max === Infinity) ? null : this._formatDate(max);
|
||||
|
||||
// startViewMode is stored as a number; convert to string
|
||||
var startview = $startinput.data('datepicker').startViewMode;
|
||||
if (startview === 2) startview = 'decade';
|
||||
else if (startview === 1) startview = 'year';
|
||||
else if (startview === 0) startview = 'month';
|
||||
|
||||
return {
|
||||
label: $el.find('label[for=' + el.id + ']').text(),
|
||||
value: this.getValue(el),
|
||||
valueString: [ $startinput.val(), $endinput.val() ],
|
||||
min: min,
|
||||
max: max,
|
||||
weekstart: $startinput.data('datepicker').weekStart,
|
||||
format: this._formatToString($startinput.data('datepicker').format),
|
||||
language: $startinput.data('datepicker').language,
|
||||
startview: startview
|
||||
};
|
||||
},
|
||||
receiveMessage: function(el, data) {
|
||||
var $el = $(el);
|
||||
var $inputs = $el.find('input');
|
||||
var $startinput = $inputs.eq(0);
|
||||
var $endinput = $inputs.eq(1);
|
||||
|
||||
if (data.hasOwnProperty('value'))
|
||||
this.setValue(el, data.value);
|
||||
|
||||
if (data.hasOwnProperty('label'))
|
||||
$el.find('label[for=' + el.id + ']').text(data.label);
|
||||
|
||||
if (data.hasOwnProperty('min')) {
|
||||
this._setMin($startinput[0], data.min);
|
||||
this._setMin($endinput[0], data.min);
|
||||
}
|
||||
|
||||
if (data.hasOwnProperty('max')) {
|
||||
this._setMax($startinput[0], data.max);
|
||||
this._setMax($endinput[0], data.max);
|
||||
}
|
||||
|
||||
$el.trigger('change');
|
||||
},
|
||||
initialize: function(el) {
|
||||
var $el = $(el);
|
||||
var $inputs = $el.find('input');
|
||||
var $startinput = $inputs.eq(0);
|
||||
var $endinput = $inputs.eq(1);
|
||||
|
||||
var start = $startinput.data('initial-date');
|
||||
var end = $endinput.data('initial-date');
|
||||
|
||||
// If empty/null, use local date, but as UTC
|
||||
if (start === undefined || start === null)
|
||||
start = this._dateAsUTC(new Date());
|
||||
|
||||
if (end === undefined || end === null)
|
||||
end = this._dateAsUTC(new Date());
|
||||
|
||||
this.setValue(el, [start, end]);
|
||||
|
||||
// // Set the start and end dates, from min-date and max-date. These always
|
||||
// // use yyyy-mm-dd format, instead of bootstrap-datepicker's built-in
|
||||
// // support for date-startdate and data-enddate, which use the current
|
||||
// // date format.
|
||||
this._setMin($startinput[0], $startinput.data('min-date'));
|
||||
this._setMin($endinput[0], $startinput.data('min-date'));
|
||||
this._setMax($startinput[0], $endinput.data('max-date'));
|
||||
this._setMax($endinput[0], $endinput.data('max-date'));
|
||||
},
|
||||
subscribe: function(el, callback) {
|
||||
$(el).on('keyup.dateRangeInputBinding input.dateRangeInputBinding', function(event) {
|
||||
// Use normal debouncing policy when typing
|
||||
callback(true);
|
||||
});
|
||||
$(el).on('changeDate.dateRangeInputBinding change.dateRangeInputBinding', function(event) {
|
||||
// Send immediately when clicked
|
||||
callback(false);
|
||||
});
|
||||
},
|
||||
unsubscribe: function(el) {
|
||||
$(el).off('.dateRangeInputBinding');
|
||||
}
|
||||
});
|
||||
inputBindings.register(dateRangeInputBinding, 'shiny.dateRangeInput');
|
||||
|
||||
|
||||
// Select input
|
||||
var selectInputBinding = new InputBinding();
|
||||
$.extend(selectInputBinding, {
|
||||
@@ -1579,7 +1922,7 @@
|
||||
inputBindings.register(checkboxGroupInputBinding, 'shiny.checkboxGroupInput');
|
||||
|
||||
|
||||
var actionButtonInputBinding = new Shiny.InputBinding();
|
||||
var actionButtonInputBinding = new InputBinding();
|
||||
$.extend(actionButtonInputBinding, {
|
||||
find: function(scope) {
|
||||
return $(scope).find(".action-button");
|
||||
@@ -1591,7 +1934,7 @@
|
||||
},
|
||||
subscribe: function(el, callback) {
|
||||
$(el).on("click.actionButtonInputBinding", function(e) {
|
||||
$el = $(this);
|
||||
var $el = $(this);
|
||||
var val = $el.data('val') || 0;
|
||||
$el.data('val', val + 1);
|
||||
|
||||
@@ -1607,7 +1950,7 @@
|
||||
$(el).off(".actionButtonInputBinding");
|
||||
}
|
||||
});
|
||||
Shiny.inputBindings.register(actionButtonInputBinding, 'shiny.actionButtonInput');
|
||||
inputBindings.register(actionButtonInputBinding, 'shiny.actionButtonInput');
|
||||
|
||||
|
||||
var bootstrapTabInputBinding = new InputBinding();
|
||||
@@ -1799,7 +2142,7 @@
|
||||
var fileInputBinding = new InputBinding();
|
||||
$.extend(fileInputBinding, {
|
||||
find: function(scope) {
|
||||
return scope.find('input[type="file"]');
|
||||
return $(scope).find('input[type="file"]');
|
||||
},
|
||||
getId: function(el) {
|
||||
return InputBinding.prototype.getId.call(this, el) || el.name;
|
||||
@@ -1935,8 +2278,6 @@
|
||||
if (scope === undefined)
|
||||
scope = document;
|
||||
|
||||
scope = $(scope);
|
||||
|
||||
var bindings = inputBindings.getBindings();
|
||||
|
||||
var currentValues = {};
|
||||
@@ -2115,6 +2456,31 @@
|
||||
};
|
||||
exports.unbindAll = unbindAll;
|
||||
|
||||
// Calls .initialize() for all of the input objects in all input bindings,
|
||||
// in the given scope.
|
||||
function initializeInputs(scope) {
|
||||
if (scope === undefined)
|
||||
scope = document;
|
||||
|
||||
var bindings = inputBindings.getBindings();
|
||||
|
||||
// Iterate over all bindings
|
||||
for (var i = 0; i < bindings.length; i++) {
|
||||
var binding = bindings[i].binding;
|
||||
var inputObjects = binding.find(scope) || [];
|
||||
|
||||
// Iterate over all input objects for this binding
|
||||
for (var j = 0; j < inputObjects.length; j++) {
|
||||
binding.initialize(inputObjects[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.initializeInputs = initializeInputs;
|
||||
|
||||
|
||||
// Initialize all input objects in the document, before binding
|
||||
initializeInputs(document);
|
||||
|
||||
// Binding multiInputs in this method is useful for old-style (<=0.5.0)
|
||||
// HTML generated by Shiny. This should be deprecated at some point.
|
||||
bindMultiInput('input[type="checkbox"]', false);
|
||||
|
||||
Reference in New Issue
Block a user