Merge lp:~openerp-dev/openerp-web/trunk-ui-to-bootstrap-datetimepicker into lp:openerp-web

Proposed by Antony Lesuisse (OpenERP)
Status: Work in progress
Proposed branch: lp:~openerp-dev/openerp-web/trunk-ui-to-bootstrap-datetimepicker
Merge into: lp:openerp-web
Diff against target: 8402 lines (+6520/-1419)
74 files modified
addons/web/__openerp__.py (+4/-2)
addons/web/static/lib/bootstrap-datetimepicker/README.md (+127/-0)
addons/web/static/lib/bootstrap-datetimepicker/moment/moment.js (+6/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/css/bootstrap-datetimepicker.css (+184/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/css/bootstrap-datetimepicker.min.css (+8/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/bootstrap-datetimepicker.js (+1111/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/bootstrap-datetimepicker.min.js (+28/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ar-ma.js (+56/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ar.js (+56/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.bg.js (+86/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.br.js (+107/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.bs.js (+139/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ca.js (+66/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.cs.js (+155/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.cv.js (+59/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.da.js (+56/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.de.js (+71/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.el.js (+79/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.en-au.js (+62/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.en-ca.js (+59/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.en-gb.js (+63/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.eo.js (+65/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.es.js (+66/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.et.js (+60/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.eu.js (+60/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.fa.js (+97/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.fi.js (+103/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.fr-ca.js (+54/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.fr.js (+58/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.gl.js (+71/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.he.js (+77/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.hi.js (+105/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.hr.js (+140/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.hu.js (+98/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.id.js (+67/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.is.js (+124/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.it.js (+59/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ja.js (+58/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ka.js (+108/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ko.js (+56/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.lt.js (+118/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.lv.js (+77/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ml.js (+64/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.mr.js (+104/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ms-my.js (+66/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.nb.js (+57/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ne.js (+105/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.nl.js (+67/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.nn.js (+56/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.pl.js (+98/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.pt-BR.js (+56/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.pt.js (+60/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ro.js (+56/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ru.js (+163/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.sk.js (+156/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.sl.js (+144/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.sq.js (+57/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.sv.js (+63/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.th.js (+58/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.tr.js (+93/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.tzm-la.js (+55/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.tzm.js (+55/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.uk.js (+157/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.uz.js (+55/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.vn.js (+62/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.zh-CN.js (+108/-0)
addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.zh-TW.js (+84/-0)
addons/web/static/lib/jquery.ui.timepicker/css/jquery-ui-timepicker-addon.css (+0/-6)
addons/web/static/lib/jquery.ui.timepicker/js/jquery-ui-timepicker-addon.js (+0/-1326)
addons/web/static/src/css/base.css (+19/-1)
addons/web/static/src/css/base.sass (+13/-0)
addons/web/static/src/js/formats.js (+49/-0)
addons/web/static/src/js/view_form.js (+29/-76)
addons/web/static/src/xml/base.xml (+8/-8)
To merge this branch: bzr merge lp:~openerp-dev/openerp-web/trunk-ui-to-bootstrap-datetimepicker
Reviewer Review Type Date Requested Status
OpenERP R&D Web Team Pending
Review via email: mp+206502@code.launchpad.net
To post a comment you must log in.

Unmerged revisions

3922. By Paramjit Singh Sahota(OpenERP)

[MERGE] Merged lp:openerp-web

3921. By Paramjit Singh Sahota(OpenERP)

For right now fixed the issue by hacking the lib.

3920. By Paramjit Singh Sahota(OpenERP)

Uncommit the last change of revno 3919 which breaks the datetimepicker functionality

3919. By Paramjit Singh Sahota(OpenERP)

[FIX] Right now fixed the issue from library but will be do it properly soon when the datejs lib will completely be removed.

3918. By Paramjit Singh Sahota(OpenERP)

[MERGE] Merged lp:openerp-web.

3917. By Paramjit Singh Sahota(OpenERP)

[FIX] After changing the date time format in languages its not loading the new translation untill the server restarts.

3916. By Paramjit Singh Sahota(OpenERP)

[IMP] Added code for converting python.strftime format into moment.js format.

3915. By Paramjit Singh Sahota(OpenERP)

[LIB] Updated the lib with one feature of displaying calendarWeeks and proposal of this feature to add in the library is sent.

3914. By Paramjit Singh Sahota(OpenERP)

[MERGE] Merged lp:openerp-web

3913. By Paramjit Singh Sahota(OpenERP)

[IMP] Improved code according to the new improvements in the library.
The seconds are now visible.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'addons/web/__openerp__.py'
--- addons/web/__openerp__.py 2014-01-23 15:19:34 +0000
+++ addons/web/__openerp__.py 2014-02-14 15:04:13 +0000
@@ -32,7 +32,6 @@
32 "static/lib/jquery.hotkeys/jquery.hotkeys.js",32 "static/lib/jquery.hotkeys/jquery.hotkeys.js",
33 "static/lib/jquery.placeholder/jquery.placeholder.js",33 "static/lib/jquery.placeholder/jquery.placeholder.js",
34 "static/lib/jquery.ui/js/jquery-ui-1.9.1.custom.js",34 "static/lib/jquery.ui/js/jquery-ui-1.9.1.custom.js",
35 "static/lib/jquery.ui.timepicker/js/jquery-ui-timepicker-addon.js",
36 "static/lib/jquery.ui.notify/js/jquery.notify.js",35 "static/lib/jquery.ui.notify/js/jquery.notify.js",
37 "static/lib/jquery.deferred-queue/jquery.deferred-queue.js",36 "static/lib/jquery.deferred-queue/jquery.deferred-queue.js",
38 "static/lib/jquery.scrollTo/jquery.scrollTo-min.js",37 "static/lib/jquery.scrollTo/jquery.scrollTo-min.js",
@@ -40,6 +39,9 @@
40 "static/lib/jquery.textext/jquery.textext.js",39 "static/lib/jquery.textext/jquery.textext.js",
41 "static/lib/jquery.timeago/jquery.timeago.js",40 "static/lib/jquery.timeago/jquery.timeago.js",
42 "static/lib/bootstrap/js/bootstrap.js",41 "static/lib/bootstrap/js/bootstrap.js",
42 "static/lib/bootstrap-datetimepicker/moment/moment.js",
43 "static/lib/bootstrap-datetimepicker/src/js/bootstrap-datetimepicker.js",
44 "static/lib/bootstrap-datetimepicker/src/js/locales/*.js",
43 "static/lib/qweb/qweb2.js",45 "static/lib/qweb/qweb2.js",
44 "static/lib/underscore/underscore.js",46 "static/lib/underscore/underscore.js",
45 "static/lib/underscore.string/lib/underscore.string.js",47 "static/lib/underscore.string/lib/underscore.string.js",
@@ -65,7 +67,7 @@
65 ],67 ],
66 'css' : [68 'css' : [
67 "static/lib/jquery.ui.bootstrap/css/custom-theme/jquery-ui-1.9.0.custom.css",69 "static/lib/jquery.ui.bootstrap/css/custom-theme/jquery-ui-1.9.0.custom.css",
68 "static/lib/jquery.ui.timepicker/css/jquery-ui-timepicker-addon.css",70 "static/lib/bootstrap-datetimepicker/src/css/bootstrap-datetimepicker.css",
69 "static/lib/jquery.ui.notify/css/ui.notify.css",71 "static/lib/jquery.ui.notify/css/ui.notify.css",
70 "static/lib/jquery.tipsy/tipsy.css",72 "static/lib/jquery.tipsy/tipsy.css",
71 "static/lib/jquery.textext/jquery.textext.css",73 "static/lib/jquery.textext/jquery.textext.css",
7274
=== added directory 'addons/web/static/lib/bootstrap-datetimepicker'
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/README.md'
--- addons/web/static/lib/bootstrap-datetimepicker/README.md 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/README.md 2014-02-14 15:04:13 +0000
@@ -0,0 +1,127 @@
1# Bootstrap v3 datetimepicker widget
2
3![DateTimePicker](http://i.imgur.com/nfnvh5g.png)
4
5### [⇢ View the manual and demos](http://eonasdan.github.io/bootstrap-datetimepicker/)
6
7##Where do you use this?
8I'd love to know if your public site is using this plugin and list your logo on the documentation site. Please email me `eonasdan at outlook dot com`
9
10## Quick installation using
11
12## [bower](http://bower.io):
13
14Run the following command:
15````
16bower install eonasdan-bootstrap-datetimepicker#latest --save
17````
18## [Nuget](https://www.nuget.org/packages/Bootstrap.v3.Datetimepicker/):
19````
20PM> Install-Package Bootstrap.v3.Datetimepicker
21````
22
23## See the [Change Log](#change-log) for important changes and updates
24
25Include necessary scripts and styles:
26````html
27<head>
28 <!-- ... -->
29 <script type="text/javascript" src="/bower_components/jquery/jquery.min.js"></script>
30 <script type="text/javascript" src="/bower_components/moment/min/moment.min.js"></script>
31 <script type="text/javascript" src="/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
32 <script type="text/javascript" src="/bower_components/eonasdan-bootstrap-datetimepicker/build/bootstrap-datetimepicker.min.js"></script>
33 <link rel="stylesheet" href="/bower_components/bootstrap/dist/css/boostrap.min.css" />
34 <link rel="stylesheet" href="/bower_components/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css" />
35</head>
36````
37
38Done! [Now take a look at the manual](http://eonasdan.github.io/bootstrap-datetimepicker/) for examples and available options.
39
40
41
42## Manual installation
43
44### [Moment.js](https://github.com/moment/moment)
45Datetimepicker requires moment.js. This allows for better support for various date formats and locales. See [documentation](http://eonasdan.github.io/bootstrap-datetimepicker/) for examples. Check [Momentjs' homepage](http://momentjs.com/) for documentation on date formats. If you can't use moment.js there's still older version of datetimewidget [available here](https://github.com/Eonasdan/bootstrap-datetimepicker/tree/version1).
46
47````html
48<script type="text/javascript" src="/path/to/moment.js"></script>
49````
50
51### Bootstrap 3 collapse and transition plugins
52Make sure to include *.JS files for plugins [collapse](http://getbootstrap.com/javascript/#collapse) and [transitions](http://getbootstrap.com/javascript/#transitions). They are included with [bootstrap in js/ directory](https://github.com/twbs/bootstrap/tree/master/js)
53
54````html
55<script type="text/javascript" src="/path/to/bootstrap/js/transition.js"></script>
56<script type="text/javascript" src="/path/to/bootstrap/js/collapse.js"></script>
57````
58
59Alternatively you could include the whole bundle of bootstrap plugins from [bootstrap.js](https://github.com/twbs/bootstrap/tree/master/dist/js)
60
61````html
62<script type="text/javascript" src="/path/to/bootstrap/dist/bootstrap.min.js"></script>
63````
64
65
66### CSS styles
67
68#### Using LESS
69````css
70@import "/path/to/bootstrap/less/variables";
71@import "/path/to/bootstrap-datetimepicker/src/less/bootstrap-datetimepicker";
72
73// [...] your custom styles and variables
74````
75
76#### Using CSS (default color palette)
77````html
78<link rel="stylesheet" href="/path/to/bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css" />
79````
80
81### Main JS file
82
83Finally include the main javascript file.
84````html
85<script type="text/javascript" src="/path/to/bootstrap-datetimepicker.min.js"></script>
86````
87
88# Change Log
89
90## New features (2.1.20)!
91* Fix for #83: Changes to the picker should fire native `change` event for knockout and the like as well as `change.dp` which contains the old date and the new date
92* Fix for #78: Script has been update for breaking changes in Moment 2.4.0
93* Fix for #73: IE8 should be working now
94
95* Enhancement for #79: `minuteStepping` option takes a number (default is 1). Changing the minutes in the time picker will step by this number.
96* Enhancement for #74 and #65: `useMinutes` and `useSeconds` are now options. Disabling seconds will hide the seconds spinner. Disabling minutes will display `00` and hide the arrows
97* Enhancement for #67: Picker will now attempt to convert all `data-OPTION` into its appropriate option
98
99## New features (2.1.11)!
100* Fix for #51, #60
101* Fix for #52: Picker has its own `moment` object since moment 2.4.0 has removed global reference
102* Fix for #57: New option for `useStrict`. When validating dates in `update` and `change`, the picker can use a stricter formatting validation
103* Fix for #61: Picker should now properly take formatted date. Should also have correct start of the week for locales.
104* Fix for #62: Default format will properly validate time picker only.
105
106## New features (2.1.5)!
107* Custom icons, such as Font Awesome, are now supported. (#49) See [Example#9](http://eonasdan.github.io/bootstrap-datetimepicker/#example9)
108* If more then one `input-group-addon` is present use `datepickerbutton` to identify where the picker should popup from. (#48)
109* New Event: `error.dp`. Fires when Moment cannot parse the date or when the timepicker cannot change because of a `disabledDates` setting. Returns a Moment date object. The specific error can be found be using `invalidAt()`. For more information see [Moment's docs](http://momentjs.com/docs/#/parsing/is-valid/)
110* Fix for #42, plugin will now check for `A` or `a` in the format string to determine if the AM/PM selector should display.
111* Fix for #45, fixed null/empty and invalid dates
112* Fix for #46, fixed active date highlighting
113* Fix for #47, `change.dp` event to also include the previous date.
114
115####New features (2.0.1)!
116* New event `error.dp` fires when plugin cannot parse date or when increase/descreasing hours/minutes to a disabled date. See [Example#7](http://eonasdan.github.io/bootstrap-datetimepicker/#example7)
117* Minor fixes
118
119####New features (2.0.0)!
120* `disabledDates` is now an option to set the disabled dates. It accepts date objects like `new Date("November 12, 2013 00:00:00")` and `12/25/2013' and `moment` date objects. See [Example#7](http://eonasdan.github.io/bootstrap-datetimepicker/#example7) for usage.
121* Events are easier to use; see [Example#8](http://eonasdan.github.io/bootstrap-datetimepicker/#example8)
122
123###Removed features
124* pickSeconds
125* pick12HourFormat
126* maskInput
127
0128
=== added directory 'addons/web/static/lib/bootstrap-datetimepicker/moment'
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/moment/moment.js'
--- addons/web/static/lib/bootstrap-datetimepicker/moment/moment.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/moment/moment.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,6 @@
1//! moment.js
2//! version : 2.5.0
3//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
4//! license : MIT
5//! momentjs.com
6(function(a){function b(a,b){return function(c){return i(a.call(this,c),b)}}function c(a,b){return function(c){return this.lang().ordinal(a.call(this,c),b)}}function d(){}function e(a){u(a),g(this,a)}function f(a){var b=o(a),c=b.year||0,d=b.month||0,e=b.week||0,f=b.day||0,g=b.hour||0,h=b.minute||0,i=b.second||0,j=b.millisecond||0;this._milliseconds=+j+1e3*i+6e4*h+36e5*g,this._days=+f+7*e,this._months=+d+12*c,this._data={},this._bubble()}function g(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return b.hasOwnProperty("toString")&&(a.toString=b.toString),b.hasOwnProperty("valueOf")&&(a.valueOf=b.valueOf),a}function h(a){return 0>a?Math.ceil(a):Math.floor(a)}function i(a,b,c){for(var d=Math.abs(a)+"",e=a>=0;d.length<b;)d="0"+d;return(e?c?"+":"":"-")+d}function j(a,b,c,d){var e,f,g=b._milliseconds,h=b._days,i=b._months;g&&a._d.setTime(+a._d+g*c),(h||i)&&(e=a.minute(),f=a.hour()),h&&a.date(a.date()+h*c),i&&a.month(a.month()+i*c),g&&!d&&cb.updateOffset(a),(h||i)&&(a.minute(e),a.hour(f))}function k(a){return"[object Array]"===Object.prototype.toString.call(a)}function l(a){return"[object Date]"===Object.prototype.toString.call(a)||a instanceof Date}function m(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;e>d;d++)(c&&a[d]!==b[d]||!c&&q(a[d])!==q(b[d]))&&g++;return g+f}function n(a){if(a){var b=a.toLowerCase().replace(/(.)s$/,"$1");a=Qb[a]||Rb[b]||b}return a}function o(a){var b,c,d={};for(c in a)a.hasOwnProperty(c)&&(b=n(c),b&&(d[b]=a[c]));return d}function p(b){var c,d;if(0===b.indexOf("week"))c=7,d="day";else{if(0!==b.indexOf("month"))return;c=12,d="month"}cb[b]=function(e,f){var g,h,i=cb.fn._lang[b],j=[];if("number"==typeof e&&(f=e,e=a),h=function(a){var b=cb().utc().set(d,a);return i.call(cb.fn._lang,b,e||"")},null!=f)return h(f);for(g=0;c>g;g++)j.push(h(g));return j}}function q(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=b>=0?Math.floor(b):Math.ceil(b)),c}function r(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function s(a){return t(a)?366:365}function t(a){return a%4===0&&a%100!==0||a%400===0}function u(a){var b;a._a&&-2===a._pf.overflow&&(b=a._a[ib]<0||a._a[ib]>11?ib:a._a[jb]<1||a._a[jb]>r(a._a[hb],a._a[ib])?jb:a._a[kb]<0||a._a[kb]>23?kb:a._a[lb]<0||a._a[lb]>59?lb:a._a[mb]<0||a._a[mb]>59?mb:a._a[nb]<0||a._a[nb]>999?nb:-1,a._pf._overflowDayOfYear&&(hb>b||b>jb)&&(b=jb),a._pf.overflow=b)}function v(a){a._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function w(a){return null==a._isValid&&(a._isValid=!isNaN(a._d.getTime())&&a._pf.overflow<0&&!a._pf.empty&&!a._pf.invalidMonth&&!a._pf.nullInput&&!a._pf.invalidFormat&&!a._pf.userInvalidated,a._strict&&(a._isValid=a._isValid&&0===a._pf.charsLeftOver&&0===a._pf.unusedTokens.length)),a._isValid}function x(a){return a?a.toLowerCase().replace("_","-"):a}function y(a,b){return b._isUTC?cb(a).zone(b._offset||0):cb(a).local()}function z(a,b){return b.abbr=a,ob[a]||(ob[a]=new d),ob[a].set(b),ob[a]}function A(a){delete ob[a]}function B(a){var b,c,d,e,f=0,g=function(a){if(!ob[a]&&pb)try{require("./lang/"+a)}catch(b){}return ob[a]};if(!a)return cb.fn._lang;if(!k(a)){if(c=g(a))return c;a=[a]}for(;f<a.length;){for(e=x(a[f]).split("-"),b=e.length,d=x(a[f+1]),d=d?d.split("-"):null;b>0;){if(c=g(e.slice(0,b).join("-")))return c;if(d&&d.length>=b&&m(e,d,!0)>=b-1)break;b--}f++}return cb.fn._lang}function C(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function D(a){var b,c,d=a.match(tb);for(b=0,c=d.length;c>b;b++)d[b]=Vb[d[b]]?Vb[d[b]]:C(d[b]);return function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof Function?d[b].call(e,a):d[b];return f}}function E(a,b){return a.isValid()?(b=F(b,a.lang()),Sb[b]||(Sb[b]=D(b)),Sb[b](a)):a.lang().invalidDate()}function F(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(ub.lastIndex=0;d>=0&&ub.test(a);)a=a.replace(ub,c),ub.lastIndex=0,d-=1;return a}function G(a,b){var c,d=b._strict;switch(a){case"DDDD":return Gb;case"YYYY":case"GGGG":case"gggg":return d?Hb:xb;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return d?Ib:yb;case"S":if(d)return Eb;case"SS":if(d)return Fb;case"SSS":case"DDD":return d?Gb:wb;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Ab;case"a":case"A":return B(b._l)._meridiemParse;case"X":return Db;case"Z":case"ZZ":return Bb;case"T":return Cb;case"SSSS":return zb;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return d?Fb:vb;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return d?Eb:vb;default:return c=new RegExp(O(N(a.replace("\\","")),"i"))}}function H(a){a=a||"";var b=a.match(Bb)||[],c=b[b.length-1]||[],d=(c+"").match(Nb)||["-",0,0],e=+(60*d[1])+q(d[2]);return"+"===d[0]?-e:e}function I(a,b,c){var d,e=c._a;switch(a){case"M":case"MM":null!=b&&(e[ib]=q(b)-1);break;case"MMM":case"MMMM":d=B(c._l).monthsParse(b),null!=d?e[ib]=d:c._pf.invalidMonth=b;break;case"D":case"DD":null!=b&&(e[jb]=q(b));break;case"DDD":case"DDDD":null!=b&&(c._dayOfYear=q(b));break;case"YY":e[hb]=q(b)+(q(b)>68?1900:2e3);break;case"YYYY":case"YYYYY":case"YYYYYY":e[hb]=q(b);break;case"a":case"A":c._isPm=B(c._l).isPM(b);break;case"H":case"HH":case"h":case"hh":e[kb]=q(b);break;case"m":case"mm":e[lb]=q(b);break;case"s":case"ss":e[mb]=q(b);break;case"S":case"SS":case"SSS":case"SSSS":e[nb]=q(1e3*("0."+b));break;case"X":c._d=new Date(1e3*parseFloat(b));break;case"Z":case"ZZ":c._useUTC=!0,c._tzm=H(b);break;case"w":case"ww":case"W":case"WW":case"d":case"dd":case"ddd":case"dddd":case"e":case"E":a=a.substr(0,1);case"gg":case"gggg":case"GG":case"GGGG":case"GGGGG":a=a.substr(0,2),b&&(c._w=c._w||{},c._w[a]=b)}}function J(a){var b,c,d,e,f,g,h,i,j,k,l=[];if(!a._d){for(d=L(a),a._w&&null==a._a[jb]&&null==a._a[ib]&&(f=function(b){var c=parseInt(b,10);return b?b.length<3?c>68?1900+c:2e3+c:c:null==a._a[hb]?cb().weekYear():a._a[hb]},g=a._w,null!=g.GG||null!=g.W||null!=g.E?h=Y(f(g.GG),g.W||1,g.E,4,1):(i=B(a._l),j=null!=g.d?U(g.d,i):null!=g.e?parseInt(g.e,10)+i._week.dow:0,k=parseInt(g.w,10)||1,null!=g.d&&j<i._week.dow&&k++,h=Y(f(g.gg),k,j,i._week.doy,i._week.dow)),a._a[hb]=h.year,a._dayOfYear=h.dayOfYear),a._dayOfYear&&(e=null==a._a[hb]?d[hb]:a._a[hb],a._dayOfYear>s(e)&&(a._pf._overflowDayOfYear=!0),c=T(e,0,a._dayOfYear),a._a[ib]=c.getUTCMonth(),a._a[jb]=c.getUTCDate()),b=0;3>b&&null==a._a[b];++b)a._a[b]=l[b]=d[b];for(;7>b;b++)a._a[b]=l[b]=null==a._a[b]?2===b?1:0:a._a[b];l[kb]+=q((a._tzm||0)/60),l[lb]+=q((a._tzm||0)%60),a._d=(a._useUTC?T:S).apply(null,l)}}function K(a){var b;a._d||(b=o(a._i),a._a=[b.year,b.month,b.day,b.hour,b.minute,b.second,b.millisecond],J(a))}function L(a){var b=new Date;return a._useUTC?[b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()]:[b.getFullYear(),b.getMonth(),b.getDate()]}function M(a){a._a=[],a._pf.empty=!0;var b,c,d,e,f,g=B(a._l),h=""+a._i,i=h.length,j=0;for(d=F(a._f,g).match(tb)||[],b=0;b<d.length;b++)e=d[b],c=(h.match(G(e,a))||[])[0],c&&(f=h.substr(0,h.indexOf(c)),f.length>0&&a._pf.unusedInput.push(f),h=h.slice(h.indexOf(c)+c.length),j+=c.length),Vb[e]?(c?a._pf.empty=!1:a._pf.unusedTokens.push(e),I(e,c,a)):a._strict&&!c&&a._pf.unusedTokens.push(e);a._pf.charsLeftOver=i-j,h.length>0&&a._pf.unusedInput.push(h),a._isPm&&a._a[kb]<12&&(a._a[kb]+=12),a._isPm===!1&&12===a._a[kb]&&(a._a[kb]=0),J(a),u(a)}function N(a){return a.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e})}function O(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function P(a){var b,c,d,e,f;if(0===a._f.length)return a._pf.invalidFormat=!0,a._d=new Date(0/0),void 0;for(e=0;e<a._f.length;e++)f=0,b=g({},a),v(b),b._f=a._f[e],M(b),w(b)&&(f+=b._pf.charsLeftOver,f+=10*b._pf.unusedTokens.length,b._pf.score=f,(null==d||d>f)&&(d=f,c=b));g(a,c||b)}function Q(a){var b,c=a._i,d=Jb.exec(c);if(d){for(a._pf.iso=!0,b=4;b>0;b--)if(d[b]){a._f=Lb[b-1]+(d[6]||" ");break}for(b=0;4>b;b++)if(Mb[b][1].exec(c)){a._f+=Mb[b][0];break}c.match(Bb)&&(a._f+="Z"),M(a)}else a._d=new Date(c)}function R(b){var c=b._i,d=qb.exec(c);c===a?b._d=new Date:d?b._d=new Date(+d[1]):"string"==typeof c?Q(b):k(c)?(b._a=c.slice(0),J(b)):l(c)?b._d=new Date(+c):"object"==typeof c?K(b):b._d=new Date(c)}function S(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return 1970>a&&h.setFullYear(a),h}function T(a){var b=new Date(Date.UTC.apply(null,arguments));return 1970>a&&b.setUTCFullYear(a),b}function U(a,b){if("string"==typeof a)if(isNaN(a)){if(a=b.weekdaysParse(a),"number"!=typeof a)return null}else a=parseInt(a,10);return a}function V(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function W(a,b,c){var d=gb(Math.abs(a)/1e3),e=gb(d/60),f=gb(e/60),g=gb(f/24),h=gb(g/365),i=45>d&&["s",d]||1===e&&["m"]||45>e&&["mm",e]||1===f&&["h"]||22>f&&["hh",f]||1===g&&["d"]||25>=g&&["dd",g]||45>=g&&["M"]||345>g&&["MM",gb(g/30)]||1===h&&["y"]||["yy",h];return i[2]=b,i[3]=a>0,i[4]=c,V.apply({},i)}function X(a,b,c){var d,e=c-b,f=c-a.day();return f>e&&(f-=7),e-7>f&&(f+=7),d=cb(a).add("d",f),{week:Math.ceil(d.dayOfYear()/7),year:d.year()}}function Y(a,b,c,d,e){var f,g,h=new Date(i(a,6,!0)+"-01-01").getUTCDay();return c=null!=c?c:e,f=e-h+(h>d?7:0),g=7*(b-1)+(c-e)+f+1,{year:g>0?a:a-1,dayOfYear:g>0?g:s(a-1)+g}}function Z(a){var b=a._i,c=a._f;return"undefined"==typeof a._pf&&v(a),null===b?cb.invalid({nullInput:!0}):("string"==typeof b&&(a._i=b=B().preparse(b)),cb.isMoment(b)?(a=g({},b),a._d=new Date(+b._d)):c?k(c)?P(a):M(a):R(a),new e(a))}function $(a,b){cb.fn[a]=cb.fn[a+"s"]=function(a){var c=this._isUTC?"UTC":"";return null!=a?(this._d["set"+c+b](a),cb.updateOffset(this),this):this._d["get"+c+b]()}}function _(a){cb.duration.fn[a]=function(){return this._data[a]}}function ab(a,b){cb.duration.fn["as"+a]=function(){return+this/b}}function bb(a){var b=!1,c=cb;"undefined"==typeof ender&&(a?(fb.moment=function(){return!b&&console&&console.warn&&(b=!0,console.warn("Accessing Moment through the global scope is deprecated, and will be removed in an upcoming release.")),c.apply(null,arguments)},g(fb.moment,c)):fb.moment=cb)}for(var cb,db,eb="2.5.0",fb=this,gb=Math.round,hb=0,ib=1,jb=2,kb=3,lb=4,mb=5,nb=6,ob={},pb="undefined"!=typeof module&&module.exports&&"undefined"!=typeof require,qb=/^\/?Date\((\-?\d+)/i,rb=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,sb=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,tb=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g,ub=/(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,vb=/\d\d?/,wb=/\d{1,3}/,xb=/\d{1,4}/,yb=/[+\-]?\d{1,6}/,zb=/\d+/,Ab=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Bb=/Z|[\+\-]\d\d:?\d\d/gi,Cb=/T/i,Db=/[\+\-]?\d+(\.\d{1,3})?/,Eb=/\d/,Fb=/\d\d/,Gb=/\d{3}/,Hb=/\d{4}/,Ib=/[+\-]?\d{6}/,Jb=/^\s*\d{4}-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Kb="YYYY-MM-DDTHH:mm:ssZ",Lb=["YYYY-MM-DD","GGGG-[W]WW","GGGG-[W]WW-E","YYYY-DDD"],Mb=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d{1,3}/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],Nb=/([\+\-]|\d\d)/gi,Ob="Date|Hours|Minutes|Seconds|Milliseconds".split("|"),Pb={Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6},Qb={ms:"millisecond",s:"second",m:"minute",h:"hour",d:"day",D:"date",w:"week",W:"isoWeek",M:"month",y:"year",DDD:"dayOfYear",e:"weekday",E:"isoWeekday",gg:"weekYear",GG:"isoWeekYear"},Rb={dayofyear:"dayOfYear",isoweekday:"isoWeekday",isoweek:"isoWeek",weekyear:"weekYear",isoweekyear:"isoWeekYear"},Sb={},Tb="DDD w W M D d".split(" "),Ub="M D H h m s w W".split(" "),Vb={M:function(){return this.month()+1},MMM:function(a){return this.lang().monthsShort(this,a)},MMMM:function(a){return this.lang().months(this,a)},D:function(){return this.date()},DDD:function(){return this.dayOfYear()},d:function(){return this.day()},dd:function(a){return this.lang().weekdaysMin(this,a)},ddd:function(a){return this.lang().weekdaysShort(this,a)},dddd:function(a){return this.lang().weekdays(this,a)},w:function(){return this.week()},W:function(){return this.isoWeek()},YY:function(){return i(this.year()%100,2)},YYYY:function(){return i(this.year(),4)},YYYYY:function(){return i(this.year(),5)},YYYYYY:function(){var a=this.year(),b=a>=0?"+":"-";return b+i(Math.abs(a),6)},gg:function(){return i(this.weekYear()%100,2)},gggg:function(){return this.weekYear()},ggggg:function(){return i(this.weekYear(),5)},GG:function(){return i(this.isoWeekYear()%100,2)},GGGG:function(){return this.isoWeekYear()},GGGGG:function(){return i(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.lang().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.lang().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return q(this.milliseconds()/100)},SS:function(){return i(q(this.milliseconds()/10),2)},SSS:function(){return i(this.milliseconds(),3)},SSSS:function(){return i(this.milliseconds(),3)},Z:function(){var a=-this.zone(),b="+";return 0>a&&(a=-a,b="-"),b+i(q(a/60),2)+":"+i(q(a)%60,2)},ZZ:function(){var a=-this.zone(),b="+";return 0>a&&(a=-a,b="-"),b+i(q(a/60),2)+i(q(a)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},X:function(){return this.unix()},Q:function(){return this.quarter()}},Wb=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"];Tb.length;)db=Tb.pop(),Vb[db+"o"]=c(Vb[db],db);for(;Ub.length;)db=Ub.pop(),Vb[db+db]=b(Vb[db],2);for(Vb.DDDD=b(Vb.DDD,3),g(d.prototype,{set:function(a){var b,c;for(c in a)b=a[c],"function"==typeof b?this[c]=b:this["_"+c]=b},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(a){return this._months[a.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(a){return this._monthsShort[a.month()]},monthsParse:function(a){var b,c,d;for(this._monthsParse||(this._monthsParse=[]),b=0;12>b;b++)if(this._monthsParse[b]||(c=cb.utc([2e3,b]),d="^"+this.months(c,"")+"|^"+this.monthsShort(c,""),this._monthsParse[b]=new RegExp(d.replace(".",""),"i")),this._monthsParse[b].test(a))return b},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(a){return this._weekdays[a.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(a){return this._weekdaysShort[a.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(a){return this._weekdaysMin[a.day()]},weekdaysParse:function(a){var b,c,d;for(this._weekdaysParse||(this._weekdaysParse=[]),b=0;7>b;b++)if(this._weekdaysParse[b]||(c=cb([2e3,1]).day(b),d="^"+this.weekdays(c,"")+"|^"+this.weekdaysShort(c,"")+"|^"+this.weekdaysMin(c,""),this._weekdaysParse[b]=new RegExp(d.replace(".",""),"i")),this._weekdaysParse[b].test(a))return b},_longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D YYYY",LLL:"MMMM D YYYY LT",LLLL:"dddd, MMMM D YYYY LT"},longDateFormat:function(a){var b=this._longDateFormat[a];return!b&&this._longDateFormat[a.toUpperCase()]&&(b=this._longDateFormat[a.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a]=b),b},isPM:function(a){return"p"===(a+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(a,b){var c=this._calendar[a];return"function"==typeof c?c.apply(b):c},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(a,b,c,d){var e=this._relativeTime[c];return"function"==typeof e?e(a,b,c,d):e.replace(/%d/i,a)},pastFuture:function(a,b){var c=this._relativeTime[a>0?"future":"past"];return"function"==typeof c?c(b):c.replace(/%s/i,b)},ordinal:function(a){return this._ordinal.replace("%d",a)},_ordinal:"%d",preparse:function(a){return a},postformat:function(a){return a},week:function(a){return X(a,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),cb=function(b,c,d,e){return"boolean"==typeof d&&(e=d,d=a),Z({_i:b,_f:c,_l:d,_strict:e,_isUTC:!1})},cb.utc=function(b,c,d,e){var f;return"boolean"==typeof d&&(e=d,d=a),f=Z({_useUTC:!0,_isUTC:!0,_l:d,_i:b,_f:c,_strict:e}).utc()},cb.unix=function(a){return cb(1e3*a)},cb.duration=function(a,b){var c,d,e,g=a,h=null;return cb.isDuration(a)?g={ms:a._milliseconds,d:a._days,M:a._months}:"number"==typeof a?(g={},b?g[b]=a:g.milliseconds=a):(h=rb.exec(a))?(c="-"===h[1]?-1:1,g={y:0,d:q(h[jb])*c,h:q(h[kb])*c,m:q(h[lb])*c,s:q(h[mb])*c,ms:q(h[nb])*c}):(h=sb.exec(a))&&(c="-"===h[1]?-1:1,e=function(a){var b=a&&parseFloat(a.replace(",","."));return(isNaN(b)?0:b)*c},g={y:e(h[2]),M:e(h[3]),d:e(h[4]),h:e(h[5]),m:e(h[6]),s:e(h[7]),w:e(h[8])}),d=new f(g),cb.isDuration(a)&&a.hasOwnProperty("_lang")&&(d._lang=a._lang),d},cb.version=eb,cb.defaultFormat=Kb,cb.updateOffset=function(){},cb.lang=function(a,b){var c;return a?(b?z(x(a),b):null===b?(A(a),a="en"):ob[a]||B(a),c=cb.duration.fn._lang=cb.fn._lang=B(a),c._abbr):cb.fn._lang._abbr},cb.langData=function(a){return a&&a._lang&&a._lang._abbr&&(a=a._lang._abbr),B(a)},cb.isMoment=function(a){return a instanceof e},cb.isDuration=function(a){return a instanceof f},db=Wb.length-1;db>=0;--db)p(Wb[db]);for(cb.normalizeUnits=function(a){return n(a)},cb.invalid=function(a){var b=cb.utc(0/0);return null!=a?g(b._pf,a):b._pf.userInvalidated=!0,b},cb.parseZone=function(a){return cb(a).parseZone()},g(cb.fn=e.prototype,{clone:function(){return cb(this)},valueOf:function(){return+this._d+6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().lang("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){var a=cb(this).utc();return 0<a.year()&&a.year()<=9999?E(a,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):E(a,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")},toArray:function(){var a=this;return[a.year(),a.month(),a.date(),a.hours(),a.minutes(),a.seconds(),a.milliseconds()]},isValid:function(){return w(this)},isDSTShifted:function(){return this._a?this.isValid()&&m(this._a,(this._isUTC?cb.utc(this._a):cb(this._a)).toArray())>0:!1},parsingFlags:function(){return g({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(){return this.zone(0)},local:function(){return this.zone(0),this._isUTC=!1,this},format:function(a){var b=E(this,a||cb.defaultFormat);return this.lang().postformat(b)},add:function(a,b){var c;return c="string"==typeof a?cb.duration(+b,a):cb.duration(a,b),j(this,c,1),this},subtract:function(a,b){var c;return c="string"==typeof a?cb.duration(+b,a):cb.duration(a,b),j(this,c,-1),this},diff:function(a,b,c){var d,e,f=y(a,this),g=6e4*(this.zone()-f.zone());return b=n(b),"year"===b||"month"===b?(d=432e5*(this.daysInMonth()+f.daysInMonth()),e=12*(this.year()-f.year())+(this.month()-f.month()),e+=(this-cb(this).startOf("month")-(f-cb(f).startOf("month")))/d,e-=6e4*(this.zone()-cb(this).startOf("month").zone()-(f.zone()-cb(f).startOf("month").zone()))/d,"year"===b&&(e/=12)):(d=this-f,e="second"===b?d/1e3:"minute"===b?d/6e4:"hour"===b?d/36e5:"day"===b?(d-g)/864e5:"week"===b?(d-g)/6048e5:d),c?e:h(e)},from:function(a,b){return cb.duration(this.diff(a)).lang(this.lang()._abbr).humanize(!b)},fromNow:function(a){return this.from(cb(),a)},calendar:function(){var a=y(cb(),this).startOf("day"),b=this.diff(a,"days",!0),c=-6>b?"sameElse":-1>b?"lastWeek":0>b?"lastDay":1>b?"sameDay":2>b?"nextDay":7>b?"nextWeek":"sameElse";return this.format(this.lang().calendar(c,this))},isLeapYear:function(){return t(this.year())},isDST:function(){return this.zone()<this.clone().month(0).zone()||this.zone()<this.clone().month(5).zone()},day:function(a){var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=U(a,this.lang()),this.add({d:a-b})):b},month:function(a){var b,c=this._isUTC?"UTC":"";return null!=a?"string"==typeof a&&(a=this.lang().monthsParse(a),"number"!=typeof a)?this:(b=this.date(),this.date(1),this._d["set"+c+"Month"](a),this.date(Math.min(b,this.daysInMonth())),cb.updateOffset(this),this):this._d["get"+c+"Month"]()},startOf:function(a){switch(a=n(a)){case"year":this.month(0);case"month":this.date(1);case"week":case"isoWeek":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===a?this.weekday(0):"isoWeek"===a&&this.isoWeekday(1),this},endOf:function(a){return a=n(a),this.startOf(a).add("isoWeek"===a?"week":a,1).subtract("ms",1)},isAfter:function(a,b){return b="undefined"!=typeof b?b:"millisecond",+this.clone().startOf(b)>+cb(a).startOf(b)},isBefore:function(a,b){return b="undefined"!=typeof b?b:"millisecond",+this.clone().startOf(b)<+cb(a).startOf(b)},isSame:function(a,b){return b=b||"ms",+this.clone().startOf(b)===+y(a,this).startOf(b)},min:function(a){return a=cb.apply(null,arguments),this>a?this:a},max:function(a){return a=cb.apply(null,arguments),a>this?this:a},zone:function(a){var b=this._offset||0;return null==a?this._isUTC?b:this._d.getTimezoneOffset():("string"==typeof a&&(a=H(a)),Math.abs(a)<16&&(a=60*a),this._offset=a,this._isUTC=!0,b!==a&&j(this,cb.duration(b-a,"m"),1,!0),this)},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.zone(this._tzm):"string"==typeof this._i&&this.zone(this._i),this},hasAlignedHourOffset:function(a){return a=a?cb(a).zone():0,(this.zone()-a)%60===0},daysInMonth:function(){return r(this.year(),this.month())},dayOfYear:function(a){var b=gb((cb(this).startOf("day")-cb(this).startOf("year"))/864e5)+1;return null==a?b:this.add("d",a-b)},quarter:function(){return Math.ceil((this.month()+1)/3)},weekYear:function(a){var b=X(this,this.lang()._week.dow,this.lang()._week.doy).year;return null==a?b:this.add("y",a-b)},isoWeekYear:function(a){var b=X(this,1,4).year;return null==a?b:this.add("y",a-b)},week:function(a){var b=this.lang().week(this);return null==a?b:this.add("d",7*(a-b))},isoWeek:function(a){var b=X(this,1,4).week;return null==a?b:this.add("d",7*(a-b))},weekday:function(a){var b=(this.day()+7-this.lang()._week.dow)%7;return null==a?b:this.add("d",a-b)},isoWeekday:function(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)},get:function(a){return a=n(a),this[a]()},set:function(a,b){return a=n(a),"function"==typeof this[a]&&this[a](b),this},lang:function(b){return b===a?this._lang:(this._lang=B(b),this)}}),db=0;db<Ob.length;db++)$(Ob[db].toLowerCase().replace(/s$/,""),Ob[db]);$("year","FullYear"),cb.fn.days=cb.fn.day,cb.fn.months=cb.fn.month,cb.fn.weeks=cb.fn.week,cb.fn.isoWeeks=cb.fn.isoWeek,cb.fn.toJSON=cb.fn.toISOString,g(cb.duration.fn=f.prototype,{_bubble:function(){var a,b,c,d,e=this._milliseconds,f=this._days,g=this._months,i=this._data;i.milliseconds=e%1e3,a=h(e/1e3),i.seconds=a%60,b=h(a/60),i.minutes=b%60,c=h(b/60),i.hours=c%24,f+=h(c/24),i.days=f%30,g+=h(f/30),i.months=g%12,d=h(g/12),i.years=d},weeks:function(){return h(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*q(this._months/12)},humanize:function(a){var b=+this,c=W(b,!a,this.lang());return a&&(c=this.lang().pastFuture(b,c)),this.lang().postformat(c)},add:function(a,b){var c=cb.duration(a,b);return this._milliseconds+=c._milliseconds,this._days+=c._days,this._months+=c._months,this._bubble(),this},subtract:function(a,b){var c=cb.duration(a,b);return this._milliseconds-=c._milliseconds,this._days-=c._days,this._months-=c._months,this._bubble(),this},get:function(a){return a=n(a),this[a.toLowerCase()+"s"]()},as:function(a){return a=n(a),this["as"+a.charAt(0).toUpperCase()+a.slice(1)+"s"]()},lang:cb.fn.lang,toIsoString:function(){var a=Math.abs(this.years()),b=Math.abs(this.months()),c=Math.abs(this.days()),d=Math.abs(this.hours()),e=Math.abs(this.minutes()),f=Math.abs(this.seconds()+this.milliseconds()/1e3);return this.asSeconds()?(this.asSeconds()<0?"-":"")+"P"+(a?a+"Y":"")+(b?b+"M":"")+(c?c+"D":"")+(d||e||f?"T":"")+(d?d+"H":"")+(e?e+"M":"")+(f?f+"S":""):"P0D"}});for(db in Pb)Pb.hasOwnProperty(db)&&(ab(db,Pb[db]),_(db.toLowerCase()));ab("Weeks",6048e5),cb.duration.fn.asMonths=function(){return(+this-31536e6*this.years())/2592e6+12*this.years()},cb.lang("en",{ordinal:function(a){var b=a%10,c=1===q(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),pb?(module.exports=cb,bb(!0)):"function"==typeof define&&define.amd?define("moment",function(b,c,d){return d.config&&d.config()&&d.config().noGlobal!==!0&&bb(d.config().noGlobal===a),cb}):bb()}).call(this);
0\ No newline at end of file7\ No newline at end of file
18
=== added directory 'addons/web/static/lib/bootstrap-datetimepicker/src'
=== added directory 'addons/web/static/lib/bootstrap-datetimepicker/src/css'
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/css/bootstrap-datetimepicker.css'
--- addons/web/static/lib/bootstrap-datetimepicker/src/css/bootstrap-datetimepicker.css 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/css/bootstrap-datetimepicker.css 2014-02-14 15:04:13 +0000
@@ -0,0 +1,184 @@
1/**
2 * Build file for the dist version of datetimepicker.css
3 */
4/*!
5 * Datetimepicker for Bootstrap v3
6 * https://github.com/Eonasdan/bootstrap-datetimepicker/
7 * Copyright 2012 Stefan Petre
8 * Licensed under the Apache License v2.0
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 */
12.bootstrap-datetimepicker-widget {
13 top: 0;
14 left: 0;
15 width: 250px;
16 padding: 4px;
17 margin-top: 1px;
18 z-index: 9999;
19 border-radius: 4px;
20 /*.dow {
21 border-top: 1px solid #ddd !important;
22 }*/
23}
24.bootstrap-datetimepicker-widget .btn {
25 padding: 6px;
26}
27.bootstrap-datetimepicker-widget:before {
28 content: '';
29 display: inline-block;
30 border-left: 7px solid transparent;
31 border-right: 7px solid transparent;
32 border-bottom: 7px solid #ccc;
33 border-bottom-color: rgba(0, 0, 0, 0.2);
34 position: absolute;
35 top: -7px;
36 left: 6px;
37}
38.bootstrap-datetimepicker-widget:after {
39 content: '';
40 display: inline-block;
41 border-left: 6px solid transparent;
42 border-right: 6px solid transparent;
43 border-bottom: 6px solid white;
44 position: absolute;
45 top: -6px;
46 left: 7px;
47}
48.bootstrap-datetimepicker-widget.pull-right:before {
49 left: auto;
50 right: 6px;
51}
52.bootstrap-datetimepicker-widget.pull-right:after {
53 left: auto;
54 right: 7px;
55}
56.bootstrap-datetimepicker-widget > ul {
57 list-style-type: none;
58 margin: 0;
59}
60.bootstrap-datetimepicker-widget .timepicker-hour,
61.bootstrap-datetimepicker-widget .timepicker-minute,
62.bootstrap-datetimepicker-widget .timepicker-second {
63 width: 100%;
64 font-weight: bold;
65 font-size: 1.2em;
66}
67.bootstrap-datetimepicker-widget table[data-hour-format="12"] .separator {
68 width: 4px;
69 padding: 0;
70 margin: 0;
71}
72.bootstrap-datetimepicker-widget .datepicker > div {
73 display: none;
74}
75.bootstrap-datetimepicker-widget .picker-switch {
76 text-align: center;
77}
78.bootstrap-datetimepicker-widget table {
79 width: 100%;
80 margin: 0;
81}
82.bootstrap-datetimepicker-widget td,
83.bootstrap-datetimepicker-widget th {
84 text-align: center;
85 width: 20px;
86 height: 20px;
87 border-radius: 4px;
88}
89.bootstrap-datetimepicker-widget td.day:hover,
90.bootstrap-datetimepicker-widget td.hour:hover,
91.bootstrap-datetimepicker-widget td.minute:hover,
92.bootstrap-datetimepicker-widget td.second:hover {
93 background: #eeeeee;
94 cursor: pointer;
95}
96.bootstrap-datetimepicker-widget td.old,
97.bootstrap-datetimepicker-widget td.new {
98 color: #999999;
99}
100.bootstrap-datetimepicker-widget td.active,
101.bootstrap-datetimepicker-widget td.active:hover {
102 background-color: #428bca;
103 color: #fff;
104 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
105}
106.bootstrap-datetimepicker-widget td.disabled,
107.bootstrap-datetimepicker-widget td.disabled:hover {
108 background: none;
109 color: #999999;
110 cursor: not-allowed;
111}
112.bootstrap-datetimepicker-widget td span {
113 display: block;
114 width: 47px;
115 height: 54px;
116 line-height: 54px;
117 float: left;
118 margin: 2px;
119 cursor: pointer;
120 border-radius: 4px;
121}
122.bootstrap-datetimepicker-widget td span:hover {
123 background: #eeeeee;
124}
125.bootstrap-datetimepicker-widget td span.active {
126 background-color: #428bca;
127 color: #fff;
128 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
129}
130.bootstrap-datetimepicker-widget td span.old {
131 color: #999999;
132}
133.bootstrap-datetimepicker-widget td span.disabled,
134.bootstrap-datetimepicker-widget td span.disabled:hover {
135 background: none;
136 color: #999999;
137 cursor: not-allowed;
138}
139.bootstrap-datetimepicker-widget th.switch {
140 width: 145px;
141}
142.bootstrap-datetimepicker-widget th.next,
143.bootstrap-datetimepicker-widget th.prev {
144 font-size: 21px;
145}
146.bootstrap-datetimepicker-widget th.disabled,
147.bootstrap-datetimepicker-widget th.disabled:hover {
148 background: none;
149 color: #999999;
150 cursor: not-allowed;
151}
152.bootstrap-datetimepicker-widget thead tr:first-child th {
153 cursor: pointer;
154}
155.bootstrap-datetimepicker-widget thead tr:first-child th:hover {
156 background: #eeeeee;
157}
158.input-group.date .input-group-addon span {
159 display: block;
160 cursor: pointer;
161 width: 16px;
162 height: 16px;
163}
164.bootstrap-datetimepicker-widget.left-oriented:before {
165 left: auto;
166 right: 6px;
167}
168.bootstrap-datetimepicker-widget.left-oriented:after {
169 left: auto;
170 right: 7px;
171}
172.bootstrap-datetimepicker-widget ul.list-unstyled li.in div.timepicker div.timepicker-picker table.table-condensed tbody > tr > td {
173 padding: 0px !important;
174}
175.bootstrap-datetimepicker-widget .cw {
176 font-size: 10px;
177 width: 12px;
178 padding: 0 2px 0 5px;
179 vertical-align: middle;
180}
181.bootstrap-datetimepicker-widget thead tr:first-child th.cw {
182 cursor: default;
183 background-color: transparent;
184}
0\ No newline at end of file185\ No newline at end of file
1186
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/css/bootstrap-datetimepicker.min.css'
--- addons/web/static/lib/bootstrap-datetimepicker/src/css/bootstrap-datetimepicker.min.css 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/css/bootstrap-datetimepicker.min.css 2014-02-14 15:04:13 +0000
@@ -0,0 +1,8 @@
1/*!
2 * Datetimepicker for Bootstrap v3
3 * https://github.com/Eonasdan/bootstrap-datetimepicker/
4 * Copyright 2012 Stefan Petre
5 * Licensed under the Apache License v2.0
6 * http://www.apache.org/licenses/LICENSE-2.0
7 *
8 */.bootstrap-datetimepicker-widget{top:0;left:0;width:250px;padding:4px;margin-top:1px;z-index:9999;border-radius:4px}.bootstrap-datetimepicker-widget .btn{padding:6px}.bootstrap-datetimepicker-widget: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}.bootstrap-datetimepicker-widget:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;top:-6px;left:7px}.bootstrap-datetimepicker-widget.pull-right:before{left:auto;right:6px}.bootstrap-datetimepicker-widget.pull-right:after{left:auto;right:7px}.bootstrap-datetimepicker-widget>ul{list-style-type:none;margin:0}.bootstrap-datetimepicker-widget .timepicker-hour,.bootstrap-datetimepicker-widget .timepicker-minute,.bootstrap-datetimepicker-widget .timepicker-second{width:100%;font-weight:bold;font-size:1.2em}.bootstrap-datetimepicker-widget table[data-hour-format="12"] .separator{width:4px;padding:0;margin:0}.bootstrap-datetimepicker-widget .datepicker>div{display:none}.bootstrap-datetimepicker-widget .picker-switch{text-align:center}.bootstrap-datetimepicker-widget table{width:100%;margin:0}.bootstrap-datetimepicker-widget td,.bootstrap-datetimepicker-widget th{text-align:center;width:20px;height:20px;border-radius:4px}.bootstrap-datetimepicker-widget td.day:hover,.bootstrap-datetimepicker-widget td.hour:hover,.bootstrap-datetimepicker-widget td.minute:hover,.bootstrap-datetimepicker-widget td.second:hover{background:#eee;cursor:pointer}.bootstrap-datetimepicker-widget td.old,.bootstrap-datetimepicker-widget td.new{color:#999}.bootstrap-datetimepicker-widget td.active,.bootstrap-datetimepicker-widget td.active:hover{background-color:#428bca;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.bootstrap-datetimepicker-widget td.disabled,.bootstrap-datetimepicker-widget td.disabled:hover{background:none;color:#999;cursor:not-allowed}.bootstrap-datetimepicker-widget td span{display:block;width:47px;height:54px;line-height:54px;float:left;margin:2px;cursor:pointer;border-radius:4px}.bootstrap-datetimepicker-widget td span:hover{background:#eee}.bootstrap-datetimepicker-widget td span.active{background-color:#428bca;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.bootstrap-datetimepicker-widget td span.old{color:#999}.bootstrap-datetimepicker-widget td span.disabled,.bootstrap-datetimepicker-widget td span.disabled:hover{background:none;color:#999;cursor:not-allowed}.bootstrap-datetimepicker-widget th.switch{width:145px}.bootstrap-datetimepicker-widget th.next,.bootstrap-datetimepicker-widget th.prev{font-size:21px}.bootstrap-datetimepicker-widget th.disabled,.bootstrap-datetimepicker-widget th.disabled:hover{background:none;color:#999;cursor:not-allowed}.bootstrap-datetimepicker-widget thead tr:first-child th{cursor:pointer}.bootstrap-datetimepicker-widget thead tr:first-child th:hover{background:#eee}.input-group.date .input-group-addon span{display:block;cursor:pointer;width:16px;height:16px}.bootstrap-datetimepicker-widget.left-oriented:before{left:auto;right:6px}.bootstrap-datetimepicker-widget.left-oriented:after{left:auto;right:7px}.bootstrap-datetimepicker-widget ul.list-unstyled li.in div.timepicker div.timepicker-picker table.table-condensed tbody>tr>td{padding:0 !important}.bootstrap-datetimepicker-widget .cw {font-size: 10px;width: 12px;padding: 0 2px 0 5px;vertical-align: middle;}.bootstrap-datetimepicker-widget thead tr:first-child th.cw {cursor: default;background-color: transparent;}
0\ No newline at end of file9\ No newline at end of file
110
=== added directory 'addons/web/static/lib/bootstrap-datetimepicker/src/js'
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/bootstrap-datetimepicker.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/bootstrap-datetimepicker.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/bootstrap-datetimepicker.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,1111 @@
1/**
2 * version 2.1.20
3 * @license
4 * =========================================================
5 * bootstrap-datetimepicker.js
6 * http://www.eyecon.ro/bootstrap-datepicker
7 * =========================================================
8 * Copyright 2012 Stefan Petre
9 *
10 * Contributions:
11 * - updated for Bootstrap v3 by Jonathan Peterson (@Eonasdan) and (almost)
12 * completely rewritten to use Momentjs
13 * - based on tarruda's bootstrap-datepicker
14 *
15 * Licensed under the Apache License, Version 2.0 (the "License");
16 * you may not use this file except in compliance with the License.
17 * You may obtain a copy of the License at
18 *
19 * http://www.apache.org/licenses/LICENSE-2.0
20 *
21 * Unless required by applicable law or agreed to in writing, software
22 * distributed under the License is distributed on an "AS IS" BASIS,
23 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24 * See the License for the specific language governing permissions and
25 * limitations under the License.
26 * =========================================================
27 */
28(function (factory) {
29 if (typeof define === 'function' && define.amd) {
30 // AMD is used - Register as an anonymous module.
31 define(['jquery', 'moment'], factory);
32 } else {
33 // AMD is not used - Attempt to fetch dependencies from scope.
34 if(!jQuery){
35 throw 'bootstrap-datetimepicker requires jQuery to be loaded first';
36 }else if(!moment) {
37 throw 'bootstrap-datetimepicker requires moment.js to be loaded first';
38 }else{
39 factory(jQuery, moment);
40 }
41 }
42}
43
44(function ($, moment) {
45 if (typeof moment === 'undefined') {
46 alert("momentjs is requried");
47 throw new Error('momentjs is requried');
48 };
49
50 var dpgId = 0,
51
52 pMoment = moment,
53
54// ReSharper disable once InconsistentNaming
55 DateTimePicker = function (element, options) {
56 var defaults = {
57 pickDate: true,
58 pickTime: true,
59 useMinutes: true,
60 useSeconds: false,
61 minuteStepping: 1,
62 startDate: new pMoment({ y: 1970 }),
63 endDate: new pMoment().add(50, "y"),
64 collapse: true,
65 language: "en",
66 defaultDate: "",
67 disabledDates: [],
68 enabledDates: false,
69 icons: {},
70 useStrict: false,
71 calendarWeeks: false,
72 },
73
74 icons = {
75 time: 'glyphicon glyphicon-time',
76 date: 'glyphicon glyphicon-calendar',
77 up: 'glyphicon glyphicon-chevron-up',
78 down: 'glyphicon glyphicon-chevron-down'
79 },
80
81 picker = this,
82
83 init = function () {
84
85 var icon = false, i, dDate, longDateFormat;
86 picker.options = $.extend({}, defaults, options);
87 picker.options.icons = $.extend({}, icons, picker.options.icons);
88
89 picker.element = $(element);
90
91 dataToOptions();
92
93 if (!(picker.options.pickTime || picker.options.pickDate))
94 throw new Error('Must choose at least one picker');
95
96 picker.id = dpgId++;
97 pMoment.lang(picker.options.language);
98 picker.date = pMoment();
99 picker.unset = false;
100 picker.isInput = picker.element.is('input');
101 picker.component = false;
102
103 if (picker.element.hasClass('input-group')) {
104 if (picker.element.find('.datepickerbutton').size() == 0) {//in case there is more then one 'input-group-addon` #48
105 picker.component = picker.element.find("[class^='input-group-']");
106 }
107 else {
108 picker.component = picker.element.find('.datepickerbutton');
109 }
110 }
111 picker.format = picker.options.format;
112
113 longDateFormat = pMoment()._lang._longDateFormat;
114
115 if (!picker.format) {
116 if (picker.isInput) picker.format = picker.element.data('format');
117 else picker.format = picker.element.find('input').data('format');
118 if (!picker.format) {
119 picker.format = (picker.options.pickDate ? longDateFormat.L : '');
120 if (picker.options.pickDate && picker.options.pickTime) picker.format += ' ';
121 picker.format += (picker.options.pickTime ? longDateFormat.LT : '');
122 if (picker.options.useSeconds) {
123 if (~longDateFormat.LT.indexOf(' A')) {
124 picker.format = picker.format.split(" A")[0] + ":ss A";
125 }
126 else {
127 picker.format += ':ss';
128 }
129 }
130 }
131 }
132
133 picker.options.use24hours = picker.format.toLowerCase().indexOf("a") < 1;
134
135 if (picker.component) icon = picker.component.find('span');
136
137 if (picker.options.pickTime) {
138 if (icon) icon.addClass(picker.options.icons.time);
139 }
140 if (picker.options.pickDate) {
141 if (icon) {
142 icon.removeClass(picker.options.icons.time);
143 icon.addClass(picker.options.icons.date);
144 }
145 }
146
147 picker.widget = $(getTemplate(picker.options.pickDate, picker.options.pickTime, picker.options.collapse)).appendTo('body');
148 picker.minViewMode = picker.options.minViewMode || picker.element.data('date-minviewmode') || 0;
149 if (typeof picker.minViewMode === 'string') {
150 switch (picker.minViewMode) {
151 case 'months':
152 picker.minViewMode = 1;
153 break;
154 case 'years':
155 picker.minViewMode = 2;
156 break;
157 default:
158 picker.minViewMode = 0;
159 break;
160 }
161 }
162
163 if (picker.options.calendarWeeks)
164 picker.widget.find('tfoot th.today')
165 .attr('colspan', function(i, val){
166 return parseInt(val) + 1;
167 });
168
169 picker.viewMode = picker.options.viewMode || picker.element.data('date-viewmode') || 0;
170 if (typeof picker.viewMode === 'string') {
171 switch (picker.viewMode) {
172 case 'months':
173 picker.viewMode = 1;
174 break;
175 case 'years':
176 picker.viewMode = 2;
177 break;
178 default:
179 picker.viewMode = 0;
180 break;
181 }
182 }
183
184 for (i = 0; i < picker.options.disabledDates.length; i++) {
185 dDate = picker.options.disabledDates[i];
186 dDate = pMoment(dDate);
187 //if this is not a valid date then set it to the startdate -1 day so it's disabled.
188 if (!dDate.isValid()) dDate = pMoment(picker.options.startDate).subtract(1, "day");
189 picker.options.disabledDates[i] = dDate.format("L");
190 }
191
192 for (i = 0; i < picker.options.enabledDates.length; i++) {
193 dDate = picker.options.enabledDates[i];
194 dDate = pMoment(dDate);
195 //if this is not a valid date then set it to the startdate -1 day so it's disabled.
196 if (!dDate.isValid()) dDate = pMoment(picker.options.startDate).subtract(1, "day");
197 picker.options.enabledDates[i] = dDate.format("L");
198 }
199 picker.startViewMode = picker.viewMode;
200 picker.setStartDate(picker.options.startDate || picker.element.data('date-startdate'));
201 picker.setEndDate(picker.options.endDate || picker.element.data('date-enddate'));
202 fillDow();
203 fillMonths();
204 fillHours();
205 fillMinutes();
206 fillSeconds();
207 update();
208 showMode();
209 attachDatePickerEvents();
210 if (picker.options.defaultDate !== "") picker.setValue(picker.options.defaultDate);
211 },
212
213 dataToOptions = function () {
214 var eData = picker.element.data();
215 if (eData.pickdate !== undefined) picker.options.pickDate = eData.pickdate;
216 if (eData.picktime !== undefined) picker.options.pickTime = eData.picktime;
217 if (eData.useminutes !== undefined) picker.options.useMinutes = eData.useminutes;
218 if (eData.useseconds !== undefined) picker.options.useSeconds = eData.useseconds;
219 if (eData.minutestepping !== undefined) picker.options.minuteStepping = eData.minutestepping;
220 if (eData.startdate !== undefined) picker.options.startDate = eData.startdate;
221 if (eData.enddate !== undefined) picker.options.endDate = eData.enddate;
222 if (eData.collapse !== undefined) picker.options.collapse = eData.collapse;
223 if (eData.language !== undefined) picker.options.language = eData.language;
224 if (eData.defaultdate !== undefined) picker.options.defaultDate = eData.defaultdate;
225 if (eData.disableddates !== undefined) picker.options.disabledDates = eData.disableddates;
226 if (eData.enableddates !== undefined) picker.options.enabledDates = eData.enableddates;
227 if (eData.icons !== undefined) picker.options.icons = eData.icons;
228 if (eData.usestrict !== undefined) picker.options.useStrict = eData.usestrict;
229 if (eData.calendarWeeks !== undefined) picker.options.calendarWeeks = eData.calendarWeeks;
230 },
231
232 place = function () {
233 var position = 'absolute',
234 offset = picker.component ? picker.component.offset() : picker.element.offset(), $window = $(window);
235 picker.width = picker.component ? picker.component.outerWidth() : picker.element.outerWidth();
236 offset.top = offset.top + picker.element.outerHeight();
237
238 //if (offset.top + picker.widget.height() > $window.height()) offset.top = offset.top - (picker.widget.height() + picker.height + 10);
239
240 if (picker.options.width !== undefined) {
241 picker.widget.width(picker.options.width);
242 }
243
244 if (picker.options.orientation === 'left') {
245 picker.widget.addClass('left-oriented');
246 offset.left = offset.left - picker.widget.width() + 20;
247 }
248
249 if (isInFixed()) {
250 position = 'fixed';
251 offset.top -= $window.scrollTop();
252 offset.left -= $window.scrollLeft();
253 }
254
255 if ($window.width() < offset.left + picker.widget.outerWidth()) {
256 offset.right = $window.width() - offset.left - picker.width;
257 offset.left = 'auto';
258 picker.widget.addClass('pull-right');
259 } else {
260 offset.right = 'auto';
261 picker.widget.removeClass('pull-right');
262 }
263
264 picker.widget.css({
265 position: position,
266 top: offset.top,
267 left: offset.left,
268 right: offset.right
269 });
270 },
271
272 notifyChange = function (oldDate, eventType) {
273 picker.element.trigger({
274 type: 'change.dp',
275 date: pMoment(picker.date),
276 oldDate: pMoment(oldDate)
277 });
278
279 //if (eventType !== 'change')
280 //picker.element.change();
281 },
282
283 notifyError = function (date) {
284 picker.element.trigger({
285 type: 'error.dp',
286 date: pMoment(date)
287 });
288 },
289
290 update = function (newDate) {
291 pMoment.lang(picker.options.language);
292 var dateStr = newDate;
293 if (!dateStr) {
294 if (picker.isInput) {
295 dateStr = picker.element.val();
296 } else {
297 dateStr = picker.element.find('input').val();
298 }
299 if (dateStr) picker.date = pMoment(dateStr, picker.format, picker.options.useStrict);
300 if (!picker.date) picker.date = pMoment();
301 }
302 picker.viewDate = pMoment(picker.date).startOf("month");
303 fillDate();
304 fillTime();
305 },
306
307
308 fillDow = function () {
309 pMoment.lang(picker.options.language);
310 var html = $('<tr>'), weekdaysMin = pMoment.weekdaysMin(), i;
311 if(picker.options.calendarWeeks){
312 var cell = '<th class="cw">Wk</th>';
313 html.append(cell);
314 // picker.widget.find('.datepicker-days thead tr:first-child').prepend(cell);
315 }
316 if (pMoment()._lang._week.dow == 0) { // starts on Sunday
317 for(i = 0; i < 7; i++) {
318 html.append('<th class="dow">' + weekdaysMin[i] + '</th>');
319 }
320 } else {
321 for (i = 1; i < 8; i++) {
322 if (i == 7) {
323 html.append('<th class="dow">' + weekdaysMin[0] + '</th>');
324 } else {
325 html.append('<th class="dow">' + weekdaysMin[i] + '</th>');
326 }
327 }
328 }
329 picker.widget.find('.datepicker-days thead').append(html);
330 },
331
332 fillMonths = function () {
333 pMoment.lang(picker.options.language);
334 var html = '', i = 0, monthsShort = pMoment.monthsShort();
335 while (i < 12) {
336 html += '<span class="month">' + monthsShort[i++] + '</span>';
337 }
338 picker.widget.find('.datepicker-months td').append(html);
339 },
340
341 d = function() {
342 return new Date(Date.UTC.apply(Date, arguments))
343 },
344
345 fillDate = function () {
346 pMoment.lang(picker.options.language);
347 var year = picker.viewDate.year(),
348 month = picker.viewDate.month(),
349 startYear = picker.options.startDate.year(),
350 startMonth = picker.options.startDate.month(),
351 endYear = picker.options.endDate.year(),
352 endMonth = picker.options.endDate.month(),
353 prevMonth, nextMonth, html = [], row, clsName, i, days, yearCont, currentYear, months = pMoment.months();
354
355 picker.widget.find('.datepicker-days').find('.disabled').removeClass('disabled');
356 picker.widget.find('.datepicker-months').find('.disabled').removeClass('disabled');
357 picker.widget.find('.datepicker-years').find('.disabled').removeClass('disabled');
358
359 picker.widget.find('.datepicker-days th:eq(1)').text(
360 months[month] + ' ' + year);
361
362 prevMonth = pMoment(picker.viewDate).subtract("months", 1);
363 days = prevMonth.daysInMonth();
364 prevMonth.date(days).startOf('week');
365 if ((year == startYear && month <= startMonth) || year < startYear) {
366 picker.widget.find('.datepicker-days th:eq(0)').addClass('disabled');
367 }
368 if ((year == endYear && month >= endMonth) || year > endYear) {
369 picker.widget.find('.datepicker-days th:eq(2)').addClass('disabled');
370 }
371
372 nextMonth = pMoment(prevMonth).add(42, "d");
373 while (prevMonth.isBefore(nextMonth)) {
374 if (prevMonth.weekday() === pMoment().startOf('week').weekday()) {
375 row = $('<tr>');
376 html.push(row);
377 if(picker.options.calendarWeeks){
378 var
379 ws = new Date(+prevMonth + (pMoment().startOf('week').weekday() - prevMonth.weekday() - 7) % 7 * 864e5),
380 th = new Date(+ws + (7 + 4 - ws.getUTCDay()) % 7 * 864e5),
381 yth = new Date(+(yth = d(th.getUTCFullYear(), 0, 1)) + (7 + 4 - yth.getUTCDay())%7*864e5),
382 calWeek = (th - yth) / 864e5 / 7 + 1;
383 row.append('<td class="cw">'+ parseInt(calWeek) +'</td>');
384 }
385 }
386 clsName = '';
387 if (prevMonth.year() < year || (prevMonth.year() == year && prevMonth.month() < month)) {
388 clsName += ' old';
389 } else if (prevMonth.year() > year || (prevMonth.year() == year && prevMonth.month() > month)) {
390 clsName += ' new';
391 }
392 if (prevMonth.isSame(pMoment({ y: picker.date.year(), M: picker.date.month(), d: picker.date.date() }))) {
393 clsName += ' active';
394 }
395 if ((pMoment(prevMonth).add(1, "d") <= picker.options.startDate) || (prevMonth > picker.options.endDate) || isInDisableDates(prevMonth) || !isInEnableDates(prevMonth)) {
396 clsName += ' disabled';
397 }
398 row.append('<td class="day' + clsName + '">' + prevMonth.date() + '</td>');
399 prevMonth.add(1, "d");
400 }
401 picker.widget.find('.datepicker-days tbody').empty().append(html);
402 currentYear = pMoment().year(), months = picker.widget.find('.datepicker-months')
403 .find('th:eq(1)').text(year).end().find('span').removeClass('active');
404 if (currentYear === year) {
405 months.eq(pMoment().month()).addClass('active');
406 }
407 if (currentYear - 1 < startYear) {
408 picker.widget.find('.datepicker-months th:eq(0)').addClass('disabled');
409 }
410 if (currentYear + 1 > endYear) {
411 picker.widget.find('.datepicker-months th:eq(2)').addClass('disabled');
412 }
413 for (i = 0; i < 12; i++) {
414 if ((year == startYear && startMonth > i) || (year < startYear)) {
415 $(months[i]).addClass('disabled');
416 } else if ((year == endYear && endMonth < i) || (year > endYear)) {
417 $(months[i]).addClass('disabled');
418 }
419 }
420
421 html = '';
422 year = parseInt(year / 10, 10) * 10;
423 yearCont = picker.widget.find('.datepicker-years').find(
424 'th:eq(1)').text(year + '-' + (year + 9)).end().find('td');
425 picker.widget.find('.datepicker-years').find('th').removeClass('disabled');
426 if (startYear > year) {
427 picker.widget.find('.datepicker-years').find('th:eq(0)').addClass('disabled');
428 }
429 if (endYear < year + 9) {
430 picker.widget.find('.datepicker-years').find('th:eq(2)').addClass('disabled');
431 }
432 year -= 1;
433 for (i = -1; i < 11; i++) {
434 html += '<span class="year' + (i === -1 || i === 10 ? ' old' : '') + (currentYear === year ? ' active' : '') + ((year < startYear || year > endYear) ? ' disabled' : '') + '">' + year + '</span>';
435 year += 1;
436 }
437 yearCont.html(html);
438 },
439
440 fillHours = function () {
441 pMoment.lang(picker.options.language);
442 var table = picker.widget.find('.timepicker .timepicker-hours table'), html = '', current, i, j;
443 table.parent().hide();
444 if (picker.options.use24hours) {
445 current = 0;
446 for (i = 0; i < 6; i += 1) {
447 html += '<tr>';
448 for (j = 0; j < 4; j += 1) {
449 html += '<td class="hour">' + padLeft(current.toString()) + '</td>';
450 current++;
451 }
452 html += '</tr>';
453 }
454 }
455 else {
456 current = 1;
457 for (i = 0; i < 3; i += 1) {
458 html += '<tr>';
459 for (j = 0; j < 4; j += 1) {
460 html += '<td class="hour">' + padLeft(current.toString()) + '</td>';
461 current++;
462 }
463 html += '</tr>';
464 }
465 }
466 table.html(html);
467 },
468
469 fillMinutes = function () {
470 var table = picker.widget.find('.timepicker .timepicker-minutes table'), html = '', current = 0, i, j;
471 table.parent().hide();
472 for (i = 0; i < 5; i++) {
473 html += '<tr>';
474 for (j = 0; j < 4; j += 1) {
475 html += '<td class="minute">' + padLeft(current.toString()) + '</td>';
476 current += 3;
477 }
478 html += '</tr>';
479 }
480 table.html(html);
481 },
482
483 fillSeconds = function () {
484 var table = picker.widget.find('.timepicker .timepicker-seconds table'), html = '', current = 0, i, j;
485 table.parent().hide();
486 for (i = 0; i < 5; i++) {
487 html += '<tr>';
488 for (j = 0; j < 4; j += 1) {
489 html += '<td class="second">' + padLeft(current.toString()) + '</td>';
490 current += 3;
491 }
492 html += '</tr>';
493 }
494 table.html(html);
495 },
496
497 fillTime = function () {
498 if (!picker.date) return;
499 var timeComponents = picker.widget.find('.timepicker span[data-time-component]'),
500 hour = picker.date.hours(),
501 period = 'AM';
502 if (!picker.options.use24hours) {
503 if (hour >= 12) period = 'PM';
504 if (hour === 0) hour = 12;
505 else if (hour != 12) hour = hour % 12;
506 picker.widget.find('.timepicker [data-action=togglePeriod]').text(period);
507 }
508 timeComponents.filter('[data-time-component=hours]').text(padLeft(hour));
509 timeComponents.filter('[data-time-component=minutes]').text(padLeft(picker.date.minutes()));
510 timeComponents.filter('[data-time-component=seconds]').text(padLeft(picker.date.second()));
511 },
512
513 click = function (e) {
514 e.stopPropagation();
515 e.preventDefault();
516 picker.unset = false;
517 var target = $(e.target).closest('span, td, th'), month, year, step, day, oldDate = pMoment(picker.date);
518 if (target.length === 1) {
519 if (!target.is('.disabled')) {
520 switch (target[0].nodeName.toLowerCase()) {
521 case 'th':
522 switch (target[0].className) {
523 case 'switch':
524 showMode(1);
525 break;
526 case 'prev':
527 case 'next':
528 step = dpGlobal.modes[picker.viewMode].navStep;
529 if (target[0].className === 'prev') step = step * -1;
530 picker.viewDate.add(step, dpGlobal.modes[picker.viewMode].navFnc);
531 fillDate();
532 break;
533 }
534 break;
535 case 'span':
536 if (target.is('.month')) {
537 month = target.parent().find('span').index(target);
538 picker.viewDate.month(month);
539 } else {
540 year = parseInt(target.text(), 10) || 0;
541 picker.viewDate.year(year);
542 }
543 if (picker.viewMode !== 0) {
544 picker.date = pMoment({
545 y: picker.viewDate.year(),
546 M: picker.viewDate.month(),
547 d: picker.viewDate.date(),
548 h: picker.date.hours(),
549 m: picker.date.minutes()
550 });
551 notifyChange(oldDate, e.type);
552 }
553 showMode(-1);
554 fillDate();
555 break;
556 case 'td':
557 if (target.is('.day')) {
558 day = parseInt(target.text(), 10) || 1;
559 month = picker.viewDate.month();
560 year = picker.viewDate.year();
561 if (target.is('.old')) {
562 if (month === 0) {
563 month = 11;
564 year -= 1;
565 } else {
566 month -= 1;
567 }
568 } else if (target.is('.new')) {
569 if (month == 11) {
570 month = 0;
571 year += 1;
572 } else {
573 month += 1;
574 }
575 }
576 picker.date = pMoment({
577 y: year,
578 M: month,
579 d: day,
580 h: picker.date.hours(),
581 m: picker.date.minutes()
582 }
583 );
584 picker.viewDate = pMoment({
585 y: year, M: month, d: Math.min(28, day)
586 });
587 fillDate();
588 set();
589 notifyChange(oldDate, e.type);
590 }
591 break;
592 }
593 }
594 }
595 },
596
597 actions = {
598 incrementHours: function () {
599 checkDate("add", "hours", 1);
600 },
601
602 incrementMinutes: function () {
603 checkDate("add", "minutes", picker.options.minuteStepping);
604 },
605
606 incrementSeconds: function () {
607 checkDate("add", "seconds", 1);
608 },
609
610 decrementHours: function () {
611 checkDate("subtract", "hours", 1);
612 },
613
614 decrementMinutes: function () {
615 checkDate("subtract", "minutes", picker.options.minuteStepping);
616 },
617
618 decrementSeconds: function () {
619 checkDate("subtract", "seconds", 1);
620 },
621
622 togglePeriod: function () {
623 var hour = picker.date.hours();
624 if (hour >= 12) hour -= 12;
625 else hour += 12;
626 picker.date.hours(hour);
627 },
628
629 showPicker: function () {
630 picker.widget.find('.timepicker > div:not(.timepicker-picker)').hide();
631 picker.widget.find('.timepicker .timepicker-picker').show();
632 },
633
634 showHours: function () {
635 picker.widget.find('.timepicker .timepicker-picker').hide();
636 picker.widget.find('.timepicker .timepicker-hours').show();
637 },
638
639 showMinutes: function () {
640 picker.widget.find('.timepicker .timepicker-picker').hide();
641 picker.widget.find('.timepicker .timepicker-minutes').show();
642 },
643
644 showSeconds: function () {
645 picker.widget.find('.timepicker .timepicker-picker').hide();
646 picker.widget.find('.timepicker .timepicker-seconds').show();
647 },
648
649 selectHour: function (e) {
650 picker.date.hours(parseInt($(e.target).text(), 10));
651 actions.showPicker.call(picker);
652 },
653
654 selectMinute: function (e) {
655 picker.date.minutes(parseInt($(e.target).text(), 10));
656 actions.showPicker.call(picker);
657 },
658
659 selectSecond: function (e) {
660 picker.date.seconds(parseInt($(e.target).text(), 10));
661 actions.showPicker.call(picker);
662 }
663 },
664
665 doAction = function (e) {
666 var oldDate = pMoment(picker.date), action = $(e.currentTarget).data('action'), rv = actions[action].apply(picker, arguments);
667 stopEvent(e);
668 if (!picker.date) picker.date = pMoment({ y: 1970 });
669 set();
670 fillTime();
671 notifyChange(oldDate);
672 return rv;
673 },
674
675 stopEvent = function (e) {
676 e.stopPropagation();
677 e.preventDefault();
678 },
679
680 change = function (e) {
681 pMoment.lang(picker.options.language);
682 var input = $(e.target), oldDate = pMoment(picker.date), d = pMoment(input.val(), Date.parse(picker.format), picker.options.useStrict);
683 if (d.isValid()) {
684 update();
685 picker.setValue(d);
686 notifyChange(oldDate);
687 set();
688 }
689 else {
690 picker.viewDate = oldDate;
691 //picker.setValue(""); // unset the date when the input is erased
692 notifyChange(oldDate);
693 // notifyError(d); // We don't won't the error message.
694 picker.unset = true;
695 // input.val(''); // We don't need to clear the value of the inputbox.
696 }
697 },
698
699 showMode = function (dir) {
700 if (dir) {
701 picker.viewMode = Math.max(picker.minViewMode, Math.min(2, picker.viewMode + dir));
702 }
703
704 picker.widget.find('.datepicker > div').hide().filter('.datepicker-' + dpGlobal.modes[picker.viewMode].clsName).show();
705 },
706
707 attachDatePickerEvents = function () {
708 var $this, $parent, expanded, closed, collapseData;
709 picker.widget.on('click', '.datepicker *', $.proxy(click, this)); // this handles date picker clicks
710 picker.widget.on('click', '[data-action]', $.proxy(doAction, this)); // this handles time picker clicks
711 picker.widget.on('mousedown', $.proxy(stopEvent, this));
712 if (picker.options.pickDate && picker.options.pickTime) {
713 picker.widget.on('click.togglePicker', '.accordion-toggle', function (e) {
714 e.stopPropagation();
715 $this = $(this);
716 $parent = $this.closest('ul');
717 expanded = $parent.find('.in');
718 closed = $parent.find('.collapse:not(.in)');
719
720 if (expanded && expanded.length) {
721 collapseData = expanded.data('collapse');
722 if (collapseData && collapseData.transitioning) return;
723 expanded.collapse('hide');
724 closed.collapse('show');
725 $this.find('span').toggleClass(picker.options.icons.time + ' ' + picker.options.icons.date);
726 picker.element.find('.input-group-addon span').toggleClass(picker.options.icons.time + ' ' + picker.options.icons.date);
727 }
728 });
729 }
730 if (picker.isInput) {
731 picker.element.on({
732 'focus': $.proxy(picker.show, this),
733 'change': $.proxy(change, this),
734 'blur': $.proxy(picker.hide, this)
735 });
736 } else {
737 picker.element.on({
738 'change': $.proxy(change, this)
739 }, 'input');
740 if (picker.component) {
741 picker.component.on('click', $.proxy(picker.show, this));
742 } else {
743 picker.element.on('click', $.proxy(picker.show, this));
744 }
745 }
746 },
747
748 attachDatePickerGlobalEvents = function () {
749 $(window).on(
750 'resize.datetimepicker' + picker.id, $.proxy(place, this));
751 if (!picker.isInput) {
752 $(document).on(
753 'mousedown.datetimepicker' + picker.id, $.proxy(picker.hide, this));
754 }
755 },
756
757 detachDatePickerEvents = function () {
758 picker.widget.off('click', '.datepicker *', picker.click);
759 picker.widget.off('click', '[data-action]');
760 picker.widget.off('mousedown', picker.stopEvent);
761 if (picker.options.pickDate && picker.options.pickTime) {
762 picker.widget.off('click.togglePicker');
763 }
764 if (picker.isInput) {
765 picker.element.off({
766 'focus': picker.show,
767 'change': picker.change
768 });
769 } else {
770 picker.element.off({
771 'change': picker.change
772 }, 'input');
773 if (picker.component) {
774 picker.component.off('click', picker.show);
775 } else {
776 picker.element.off('click', picker.show);
777 }
778 }
779 },
780
781 detachDatePickerGlobalEvents = function () {
782 $(window).off('resize.datetimepicker' + picker.id);
783 if (!picker.isInput) {
784 $(document).off('mousedown.datetimepicker' + picker.id);
785 }
786 },
787
788 isInFixed = function () {
789 if (picker.element) {
790 var parents = picker.element.parents(), inFixed = false, i;
791 for (i = 0; i < parents.length; i++) {
792 if ($(parents[i]).css('position') == 'fixed') {
793 inFixed = true;
794 break;
795 }
796 }
797 ;
798 return inFixed;
799 } else {
800 return false;
801 }
802 },
803
804 set = function () {
805 pMoment.lang(picker.options.language);
806 var formatted = '', input;
807 if (!picker.unset) formatted = pMoment(picker.date).format(picker.format);
808 if (!picker.isInput) {
809 if (picker.component) {
810 input = picker.element.find('input');
811 input.val(formatted);
812 }
813 picker.element.data('date', formatted);
814 } else {
815 picker.element.val(formatted);
816 }
817 if (!picker.options.pickTime) picker.hide();
818 },
819
820 checkDate = function (direction, unit, amount) {
821 pMoment.lang(picker.options.language);
822 var newDate;
823 if (direction == "add") {
824 newDate = pMoment(picker.date);
825 if (newDate.hours() == 23) newDate.add(amount, unit);
826 newDate.add(amount, unit);
827 }
828 else {
829 newDate = pMoment(picker.date).subtract(amount, unit);
830 }
831 if (newDate.isAfter(picker.options.endDate) || pMoment(newDate.subtract(amount, unit)).isBefore(picker.options.startDate) || isInDisableDates(newDate)) {
832 notifyError(newDate.format(picker.format));
833 return;
834 }
835
836 if (direction == "add") {
837 picker.date.add(amount, unit);
838 }
839 else {
840 picker.date.subtract(amount, unit);
841 }
842 },
843
844 isInDisableDates = function (date) {
845 pMoment.lang(picker.options.language);
846 var disabled = picker.options.disabledDates, i;
847 for (i in disabled) {
848 if (disabled[i] == pMoment(date).format("L")) {
849 return true;
850 }
851 }
852 return false;
853 },
854
855 isInEnableDates = function (date) {
856 pMoment.lang(picker.options.language);
857 var enabled = picker.options.enabledDates, i;
858 if (enabled.length) {
859 for (i in enabled) {
860 if (enabled[i] == pMoment(date).format("L")) {
861 return true;
862 }
863 }
864 return false;
865 }
866 return enabled === false ? true : false;
867 },
868 padLeft = function (string) {
869 string = string.toString();
870 if (string.length >= 2) return string;
871 else return '0' + string;
872 },
873
874 getTemplate = function (pickDate, pickTime, collapse) {
875 if (pickDate && pickTime) {
876 return (
877 '<div class="bootstrap-datetimepicker-widget dropdown-menu" style="z-index:9999 !important;">' +
878 '<ul class="list-unstyled">' +
879 '<li' + (collapse ? ' class="collapse in"' : '') + '>' +
880 '<div class="datepicker">' + dpGlobal.template + '</div>' +
881 '</li>' +
882 '<li class="picker-switch accordion-toggle"><a class="btn" style="width:100%"><span class="' + picker.options.icons.time + '"></span></a></li>' +
883 '<li' + (collapse ? ' class="collapse"' : '') + '>' +
884 '<div class="timepicker">' + tpGlobal.getTemplate() + '</div>' +
885 '</li>' +
886 '</ul>' +
887 '</div>'
888 );
889 } else if (pickTime) {
890 return (
891 '<div class="bootstrap-datetimepicker-widget dropdown-menu">' +
892 '<div class="timepicker">' + tpGlobal.getTemplate() + '</div>' +
893 '</div>'
894 );
895 } else {
896 return (
897 '<div class="bootstrap-datetimepicker-widget dropdown-menu">' +
898 '<div class="datepicker">' + dpGlobal.template + '</div>' +
899 '</div>'
900 );
901 }
902 },
903
904 dpGlobal = {
905 modes: [
906 {
907 clsName: 'days',
908 navFnc: 'month',
909 navStep: 1
910 },
911 {
912 clsName: 'months',
913 navFnc: 'year',
914 navStep: 1
915 },
916 {
917 clsName: 'years',
918 navFnc: 'year',
919 navStep: 10
920 }],
921 headTemplate:
922 '<thead>' +
923 '<tr>' +
924 '<th class="prev">&lsaquo;</th><th colspan="5" class="switch"></th><th class="next">&rsaquo;</th>' +
925 '</tr>' +
926 '</thead>',
927 contTemplate:
928 '<tbody><tr><td colspan="7"></td></tr></tbody>'
929 },
930
931 tpGlobal = {
932 hourTemplate: '<span data-action="showHours" data-time-component="hours" class="timepicker-hour"></span>',
933 minuteTemplate: '<span data-action="showMinutes" data-time-component="minutes" class="timepicker-minute"></span>',
934 secondTemplate: '<span data-action="showSeconds" data-time-component="seconds" class="timepicker-second"></span>'
935 };
936
937 dpGlobal.template =
938 '<div class="datepicker-days">' +
939 '<table class="table-condensed">' + dpGlobal.headTemplate + '<tbody></tbody></table>' +
940 '</div>' +
941 '<div class="datepicker-months">' +
942 '<table class="table-condensed">' + dpGlobal.headTemplate + dpGlobal.contTemplate + '</table>' +
943 '</div>' +
944 '<div class="datepicker-years">' +
945 '<table class="table-condensed">' + dpGlobal.headTemplate + dpGlobal.contTemplate + '</table>' +
946 '</div>';
947
948 tpGlobal.getTemplate = function () {
949 return (
950 '<div class="timepicker-picker">' +
951 '<table class="table-condensed">' +
952 '<tr>' +
953 '<td><a href="#" class="btn" data-action="incrementHours"><span class="' + picker.options.icons.up + '"></span></a></td>' +
954 '<td class="separator"></td>' +
955 '<td>' + (picker.options.useMinutes ? '<a href="#" class="btn" data-action="incrementMinutes"><span class="' + picker.options.icons.up + '"></span></a>' : '') + '</td>' +
956 (picker.options.useSeconds ?
957 '<td class="separator"></td><td><a href="#" class="btn" data-action="incrementSeconds"><span class="' + picker.options.icons.up + '"></span></a></td>' : '') +
958 (picker.options.use24hours ? '' : '<td class="separator"></td>') +
959 '</tr>' +
960 '<tr>' +
961 '<td>' + tpGlobal.hourTemplate + '</td> ' +
962 '<td class="separator">:</td>' +
963 '<td>' + (picker.options.useMinutes ? tpGlobal.minuteTemplate : '<span class="timepicker-minute">00</span>') + '</td> ' +
964 (picker.options.useSeconds ?
965 '<td class="separator">:</td><td>' + tpGlobal.secondTemplate + '</td>' : '') +
966 (picker.options.use24hours ? '' : '<td class="separator"></td>' +
967 '<td><button type="button" class="btn btn-primary" data-action="togglePeriod"></button></td>') +
968 '</tr>' +
969 '<tr>' +
970 '<td><a href="#" class="btn" data-action="decrementHours"><span class="' + picker.options.icons.down + '"></span></a></td>' +
971 '<td class="separator"></td>' +
972 '<td>' + (picker.options.useMinutes ? '<a href="#" class="btn" data-action="decrementMinutes"><span class="' + picker.options.icons.down + '"></span></a>' : '') + '</td>' +
973 (picker.options.useSeconds ?
974 '<td class="separator"></td><td><a href="#" class="btn" data-action="decrementSeconds"><span class="' + picker.options.icons.down + '"></span></a></td>' : '') +
975 (picker.options.use24hours ? '' : '<td class="separator"></td>') +
976 '</tr>' +
977 '</table>' +
978 '</div>' +
979 '<div class="timepicker-hours" data-action="selectHour">' +
980 '<table class="table-condensed"></table>' +
981 '</div>' +
982 '<div class="timepicker-minutes" data-action="selectMinute">' +
983 '<table class="table-condensed"></table>' +
984 '</div>' +
985 (picker.options.useSeconds ?
986 '<div class="timepicker-seconds" data-action="selectSecond"><table class="table-condensed"></table></div>' : '')
987 );
988 };
989
990 picker.destroy = function () {
991 detachDatePickerEvents();
992 detachDatePickerGlobalEvents();
993 picker.widget.remove();
994 picker.element.removeData('DateTimePicker');
995 if (picker.component)
996 picker.component.removeData('DateTimePicker');
997 };
998
999 picker.show = function (e) {
1000 picker.widget.show();
1001 picker.height = picker.component ? picker.component.outerHeight() : picker.element.outerHeight();
1002 place();
1003 picker.element.trigger({
1004 type: 'show.dp',
1005 date: pMoment(picker.date)
1006 });
1007 attachDatePickerGlobalEvents();
1008 if (e) {
1009 stopEvent(e);
1010 }
1011 },
1012
1013 picker.disable = function () {
1014 var input = picker.element.find('input');
1015 if(!input.prop('disabled')) return;
1016
1017 input.prop('disabled', true);
1018 detachDatePickerEvents();
1019 },
1020
1021 picker.enable = function () {
1022 var input = picker.element.find('input');
1023 if(!input.prop('disabled')) return;
1024
1025 input.prop('disabled', true);
1026 attachDatePickerEvents();
1027 },
1028
1029 picker.hide = function (event) {
1030 if (event && $(event.target).is(picker.element.attr("id")))
1031 return;
1032 // Ignore event if in the middle of a picker transition
1033 var collapse = picker.widget.find('.collapse'), i, collapseData;
1034 for (i = 0; i < collapse.length; i++) {
1035 collapseData = collapse.eq(i).data('collapse');
1036 if (collapseData && collapseData.transitioning)
1037 return;
1038 }
1039 picker.widget.hide();
1040 picker.viewMode = picker.startViewMode;
1041 showMode();
1042 picker.element.trigger({
1043 type: 'hide.dp',
1044 date: pMoment(picker.date)
1045 });
1046 detachDatePickerGlobalEvents();
1047 },
1048
1049 picker.setValue = function (newDate) {
1050 pMoment.lang(picker.options.language);
1051 if (!newDate) {
1052 picker.unset = true;
1053 } else {
1054 picker.unset = false;
1055 }
1056 if (!pMoment.isMoment(newDate)) newDate = pMoment(newDate);
1057 if (newDate.isValid()) {
1058 picker.date = newDate;
1059 set();
1060 picker.viewDate = pMoment({ y: picker.date.year(), M: picker.date.month() });
1061 fillDate();
1062 fillTime();
1063 }
1064 else {
1065 notifyError(newDate);
1066 }
1067 },
1068
1069 picker.getDate = function () {
1070 if (picker.unset) return null;
1071 return picker.date;
1072 },
1073
1074 picker.setDate = function (date) {
1075 date = pMoment(date);
1076 if (!date) picker.setValue(null);
1077 else picker.setValue(date);
1078 },
1079
1080 picker.setEnabledDates = function (dates) {
1081 if (!dates) picker.options.enabledDates = false;
1082 else picker.options.enabledDates = dates;
1083 if (picker.viewDate) update();
1084 },
1085
1086 picker.setEndDate = function (date) {
1087 picker.options.endDate = pMoment(date);
1088 if (!picker.options.endDate.isValid()) {
1089 picker.options.endDate = pMoment().add(50, "y");
1090 }
1091 if (picker.viewDate) update();
1092 },
1093
1094 picker.setStartDate = function (date) {
1095 picker.options.startDate = pMoment(date);
1096 if (!picker.options.startDate.isValid()) {
1097 picker.options.startDate = pMoment({ y: 1970 });
1098 }
1099 if (picker.viewDate) update();
1100 };
1101
1102 init();
1103 };
1104
1105 $.fn.datetimepicker = function (options) {
1106 return this.each(function () {
1107 var $this = $(this), data = $this.data('DateTimePicker');
1108 if (!data) $this.data('DateTimePicker', new DateTimePicker(this, options));
1109 });
1110 };
1111}));
01112
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/bootstrap-datetimepicker.min.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/bootstrap-datetimepicker.min.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/bootstrap-datetimepicker.min.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,28 @@
1/**
2 * version 2.1.20
3 * @license
4 * =========================================================
5 * bootstrap-datetimepicker.js
6 * http://www.eyecon.ro/bootstrap-datepicker
7 * =========================================================
8 * Copyright 2012 Stefan Petre
9 *
10 * Contributions:
11 * - updated for Bootstrap v3 by Jonathan Peterson (@Eonasdan) and (almost)
12 * completely rewritten to use Momentjs
13 * - based on tarruda's bootstrap-datepicker
14 *
15 * Licensed under the Apache License, Version 2.0 (the "License");
16 * you may not use this file except in compliance with the License.
17 * You may obtain a copy of the License at
18 *
19 * http://www.apache.org/licenses/LICENSE-2.0
20 *
21 * Unless required by applicable law or agreed to in writing, software
22 * distributed under the License is distributed on an "AS IS" BASIS,
23 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24 * See the License for the specific language governing permissions and
25 * limitations under the License.
26 * =========================================================
27 */
28(function(e){if(typeof define==="function"&&define.amd){define(["jquery","moment"],e)}else{if(!jQuery){throw"bootstrap-datetimepicker requires jQuery to be loaded first"}else if(!moment){throw"bootstrap-datetimepicker requires moment.js to be loaded first"}else{e(jQuery,moment)}}})(function(e,t){if(typeof t==="undefined"){alert("momentjs is requried");throw new Error("momentjs is requried")}var n=0,r=t,i=function(t,i){var s={pickDate:true,pickTime:true,useMinutes:true,useSeconds:false,minuteStepping:1,startDate:new r({y:1970}),endDate:(new r).add(50,"y"),collapse:true,language:"en",defaultDate:"",disabledDates:[],enabledDates:false,icons:{},useStrict:false,calendarWeeks:false},o={time:"glyphicon glyphicon-time",date:"glyphicon glyphicon-calendar",up:"glyphicon glyphicon-chevron-up",down:"glyphicon glyphicon-chevron-down"},u=this,a=function(){var a=false,l,c,h;u.options=e.extend({},s,i);u.options.icons=e.extend({},o,u.options.icons);u.element=e(t);f();if(!(u.options.pickTime||u.options.pickDate))throw new Error("Must choose at least one picker");u.id=n++;r.lang(u.options.language);u.date=r();u.unset=false;u.isInput=u.element.is("input");u.component=false;if(u.element.hasClass("input-group")){if(u.element.find(".datepickerbutton").size()==0){u.component=u.element.find("[class^='input-group-']")}else{u.component=u.element.find(".datepickerbutton")}}u.format=u.options.format;h=r()._lang._longDateFormat;if(!u.format){if(u.isInput)u.format=u.element.data("format");else u.format=u.element.find("input").data("format");if(!u.format){u.format=u.options.pickDate?h.L:"";if(u.options.pickDate&&u.options.pickTime)u.format+=" ";u.format+=u.options.pickTime?h.LT:"";if(u.options.useSeconds){if(~h.LT.indexOf(" A")){u.format=u.format.split(" A")[0]+":ss A"}else{u.format+=":ss"}}}}u.options.use24hours=u.format.toLowerCase().indexOf("a")<1;if(u.component)a=u.component.find("span");if(u.options.pickTime){if(a)a.addClass(u.options.icons.time)}if(u.options.pickDate){if(a){a.removeClass(u.options.icons.time);a.addClass(u.options.icons.date)}}u.widget=e(F(u.options.pickDate,u.options.pickTime,u.options.collapse)).appendTo("body");u.minViewMode=u.options.minViewMode||u.element.data("date-minviewmode")||0;if(typeof u.minViewMode==="string"){switch(u.minViewMode){case"months":u.minViewMode=1;break;case"years":u.minViewMode=2;break;default:u.minViewMode=0;break}}if(u.options.calendarWeeks)u.widget.find("tfoot th.today").attr("colspan",function(e,t){return parseInt(t)+1});u.viewMode=u.options.viewMode||u.element.data("date-viewmode")||0;if(typeof u.viewMode==="string"){switch(u.viewMode){case"months":u.viewMode=1;break;case"years":u.viewMode=2;break;default:u.viewMode=0;break}}for(l=0;l<u.options.disabledDates.length;l++){c=u.options.disabledDates[l];c=r(c);if(!c.isValid())c=r(u.options.startDate).subtract(1,"day");u.options.disabledDates[l]=c.format("L")}for(l=0;l<u.options.enabledDates.length;l++){c=u.options.enabledDates[l];c=r(c);if(!c.isValid())c=r(u.options.startDate).subtract(1,"day");u.options.enabledDates[l]=c.format("L")}u.startViewMode=u.viewMode;u.setStartDate(u.options.startDate||u.element.data("date-startdate"));u.setEndDate(u.options.endDate||u.element.data("date-enddate"));d();v();y();b();w();p();k();L();if(u.options.defaultDate!=="")u.setValue(u.options.defaultDate)},f=function(){var e=u.element.data();if(e.pickdate!==undefined)u.options.pickDate=e.pickdate;if(e.picktime!==undefined)u.options.pickTime=e.picktime;if(e.useminutes!==undefined)u.options.useMinutes=e.useminutes;if(e.useseconds!==undefined)u.options.useSeconds=e.useseconds;if(e.minutestepping!==undefined)u.options.minuteStepping=e.minutestepping;if(e.startdate!==undefined)u.options.startDate=e.startdate;if(e.enddate!==undefined)u.options.endDate=e.enddate;if(e.collapse!==undefined)u.options.collapse=e.collapse;if(e.language!==undefined)u.options.language=e.language;if(e.defaultdate!==undefined)u.options.defaultDate=e.defaultdate;if(e.disableddates!==undefined)u.options.disabledDates=e.disableddates;if(e.enableddates!==undefined)u.options.enabledDates=e.enableddates;if(e.icons!==undefined)u.options.icons=e.icons;if(e.usestrict!==undefined)u.options.useStrict=e.usestrict;if(e.calendarWeeks!==undefined)u.options.calendarWeeks=e.calendarWeeks},l=function(){var t="absolute",n=u.component?u.component.offset():u.element.offset(),r=e(window);u.width=u.component?u.component.outerWidth():u.element.outerWidth();n.top=n.top+u.element.outerHeight();if(u.options.width!==undefined){u.widget.width(u.options.width)}if(u.options.orientation==="left"){u.widget.addClass("left-oriented");n.left=n.left-u.widget.width()+20}if(_()){t="fixed";n.top-=r.scrollTop();n.left-=r.scrollLeft()}if(r.width()<n.left+u.widget.outerWidth()){n.right=r.width()-n.left-u.width;n.left="auto";u.widget.addClass("pull-right")}else{n.right="auto";u.widget.removeClass("pull-right")}u.widget.css({position:t,top:n.top,left:n.left,right:n.right})},c=function(e,t){u.element.trigger({type:"change.dp",date:r(u.date),oldDate:r(e)})},h=function(e){u.element.trigger({type:"error.dp",date:r(e)})},p=function(e){r.lang(u.options.language);var t=e;if(!t){if(u.isInput){t=u.element.val()}else{t=u.element.find("input").val()}if(t)u.date=r(t,u.format,u.options.useStrict);if(!u.date)u.date=r()}u.viewDate=r(u.date).startOf("month");g();E()},d=function(){r.lang(u.options.language);var t=e("<tr>"),n=r.weekdaysMin(),i;if(u.options.calendarWeeks){var s='<th class="cw">Wk</th>';t.append(s)}if(r()._lang._week.dow==0){for(i=0;i<7;i++){t.append('<th class="dow">'+n[i]+"</th>")}}else{for(i=1;i<8;i++){if(i==7){t.append('<th class="dow">'+n[0]+"</th>")}else{t.append('<th class="dow">'+n[i]+"</th>")}}}u.widget.find(".datepicker-days thead").append(t)},v=function(){r.lang(u.options.language);var e="",t=0,n=r.monthsShort();while(t<12){e+='<span class="month">'+n[t++]+"</span>"}u.widget.find(".datepicker-months td").append(e)},m=function(){return new Date(Date.UTC.apply(Date,arguments))},g=function(){r.lang(u.options.language);var t=u.viewDate.year(),n=u.viewDate.month(),i=u.options.startDate.year(),s=u.options.startDate.month(),o=u.options.endDate.year(),a=u.options.endDate.month(),f,l,c=[],h,p,d,v,g,y,b=r.months();u.widget.find(".datepicker-days").find(".disabled").removeClass("disabled");u.widget.find(".datepicker-months").find(".disabled").removeClass("disabled");u.widget.find(".datepicker-years").find(".disabled").removeClass("disabled");u.widget.find(".datepicker-days th:eq(1)").text(b[n]+" "+t);f=r(u.viewDate).subtract("months",1);v=f.daysInMonth();f.date(v).startOf("week");if(t==i&&n<=s||t<i){u.widget.find(".datepicker-days th:eq(0)").addClass("disabled")}if(t==o&&n>=a||t>o){u.widget.find(".datepicker-days th:eq(2)").addClass("disabled")}l=r(f).add(42,"d");while(f.isBefore(l)){if(f.weekday()===r().startOf("week").weekday()){h=e("<tr>");c.push(h);if(u.options.calendarWeeks){var w=new Date(+f+(r().startOf("week").weekday()-f.weekday()-7)%7*864e5),E=new Date(+w+(7+4-w.getUTCDay())%7*864e5),S=new Date(+(S=m(E.getUTCFullYear(),0,1))+(7+4-S.getUTCDay())%7*864e5),x=(E-S)/864e5/7+1;h.append('<td class="cw">'+parseInt(x)+"</td>")}}p="";if(f.year()<t||f.year()==t&&f.month()<n){p+=" old"}else if(f.year()>t||f.year()==t&&f.month()>n){p+=" new"}if(f.isSame(r({y:u.date.year(),M:u.date.month(),d:u.date.date()}))){p+=" active"}if(r(f).add(1,"d")<=u.options.startDate||f>u.options.endDate||H(f)||!B(f)){p+=" disabled"}h.append('<td class="day'+p+'">'+f.date()+"</td>");f.add(1,"d")}u.widget.find(".datepicker-days tbody").empty().append(c);y=r().year(),b=u.widget.find(".datepicker-months").find("th:eq(1)").text(t).end().find("span").removeClass("active");if(y===t){b.eq(r().month()).addClass("active")}if(y-1<i){u.widget.find(".datepicker-months th:eq(0)").addClass("disabled")}if(y+1>o){u.widget.find(".datepicker-months th:eq(2)").addClass("disabled")}for(d=0;d<12;d++){if(t==i&&s>d||t<i){e(b[d]).addClass("disabled")}else if(t==o&&a<d||t>o){e(b[d]).addClass("disabled")}}c="";t=parseInt(t/10,10)*10;g=u.widget.find(".datepicker-years").find("th:eq(1)").text(t+"-"+(t+9)).end().find("td");u.widget.find(".datepicker-years").find("th").removeClass("disabled");if(i>t){u.widget.find(".datepicker-years").find("th:eq(0)").addClass("disabled")}if(o<t+9){u.widget.find(".datepicker-years").find("th:eq(2)").addClass("disabled")}t-=1;for(d=-1;d<11;d++){c+='<span class="year'+(d===-1||d===10?" old":"")+(y===t?" active":"")+(t<i||t>o?" disabled":"")+'">'+t+"</span>";t+=1}g.html(c)},y=function(){r.lang(u.options.language);var e=u.widget.find(".timepicker .timepicker-hours table"),t="",n,i,s;e.parent().hide();if(u.options.use24hours){n=0;for(i=0;i<6;i+=1){t+="<tr>";for(s=0;s<4;s+=1){t+='<td class="hour">'+j(n.toString())+"</td>";n++}t+="</tr>"}}else{n=1;for(i=0;i<3;i+=1){t+="<tr>";for(s=0;s<4;s+=1){t+='<td class="hour">'+j(n.toString())+"</td>";n++}t+="</tr>"}}e.html(t)},b=function(){var e=u.widget.find(".timepicker .timepicker-minutes table"),t="",n=0,r,i;e.parent().hide();for(r=0;r<5;r++){t+="<tr>";for(i=0;i<4;i+=1){t+='<td class="minute">'+j(n.toString())+"</td>";n+=3}t+="</tr>"}e.html(t)},w=function(){var e=u.widget.find(".timepicker .timepicker-seconds table"),t="",n=0,r,i;e.parent().hide();for(r=0;r<5;r++){t+="<tr>";for(i=0;i<4;i+=1){t+='<td class="second">'+j(n.toString())+"</td>";n+=3}t+="</tr>"}e.html(t)},E=function(){if(!u.date)return;var e=u.widget.find(".timepicker span[data-time-component]"),t=u.date.hours(),n="AM";if(!u.options.use24hours){if(t>=12)n="PM";if(t===0)t=12;else if(t!=12)t=t%12;u.widget.find(".timepicker [data-action=togglePeriod]").text(n)}e.filter("[data-time-component=hours]").text(j(t));e.filter("[data-time-component=minutes]").text(j(u.date.minutes()));e.filter("[data-time-component=seconds]").text(j(u.date.second()))},S=function(t){t.stopPropagation();t.preventDefault();u.unset=false;var n=e(t.target).closest("span, td, th"),i,s,o,a,f=r(u.date);if(n.length===1){if(!n.is(".disabled")){switch(n[0].nodeName.toLowerCase()){case"th":switch(n[0].className){case"switch":k(1);break;case"prev":case"next":o=I.modes[u.viewMode].navStep;if(n[0].className==="prev")o=o*-1;u.viewDate.add(o,I.modes[u.viewMode].navFnc);g();break}break;case"span":if(n.is(".month")){i=n.parent().find("span").index(n);u.viewDate.month(i)}else{s=parseInt(n.text(),10)||0;u.viewDate.year(s)}if(u.viewMode!==0){u.date=r({y:u.viewDate.year(),M:u.viewDate.month(),d:u.viewDate.date(),h:u.date.hours(),m:u.date.minutes()});c(f,t.type)}k(-1);g();break;case"td":if(n.is(".day")){a=parseInt(n.text(),10)||1;i=u.viewDate.month();s=u.viewDate.year();if(n.is(".old")){if(i===0){i=11;s-=1}else{i-=1}}else if(n.is(".new")){if(i==11){i=0;s+=1}else{i+=1}}u.date=r({y:s,M:i,d:a,h:u.date.hours(),m:u.date.minutes()});u.viewDate=r({y:s,M:i,d:Math.min(28,a)});g();D();c(f,t.type)}break}}}},x={incrementHours:function(){P("add","hours",1)},incrementMinutes:function(){P("add","minutes",u.options.minuteStepping)},incrementSeconds:function(){P("add","seconds",1)},decrementHours:function(){P("subtract","hours",1)},decrementMinutes:function(){P("subtract","minutes",u.options.minuteStepping)},decrementSeconds:function(){P("subtract","seconds",1)},togglePeriod:function(){var e=u.date.hours();if(e>=12)e-=12;else e+=12;u.date.hours(e)},showPicker:function(){u.widget.find(".timepicker > div:not(.timepicker-picker)").hide();u.widget.find(".timepicker .timepicker-picker").show()},showHours:function(){u.widget.find(".timepicker .timepicker-picker").hide();u.widget.find(".timepicker .timepicker-hours").show()},showMinutes:function(){u.widget.find(".timepicker .timepicker-picker").hide();u.widget.find(".timepicker .timepicker-minutes").show()},showSeconds:function(){u.widget.find(".timepicker .timepicker-picker").hide();u.widget.find(".timepicker .timepicker-seconds").show()},selectHour:function(t){u.date.hours(parseInt(e(t.target).text(),10));x.showPicker.call(u)},selectMinute:function(t){u.date.minutes(parseInt(e(t.target).text(),10));x.showPicker.call(u)},selectSecond:function(t){u.date.seconds(parseInt(e(t.target).text(),10));x.showPicker.call(u)}},T=function(t){var n=r(u.date),i=e(t.currentTarget).data("action"),s=x[i].apply(u,arguments);N(t);if(!u.date)u.date=r({y:1970});D();E();c(n);return s},N=function(e){e.stopPropagation();e.preventDefault()},C=function(t){r.lang(u.options.language);var n=e(t.target),i=r(u.date),s=r(n.val(),u.format,u.options.useStrict);if(s.isValid()){p();u.setValue(s);c(i);D()}else{u.viewDate=i;c(i);h(s);u.unset=true;n.val("")}},k=function(e){if(e){u.viewMode=Math.max(u.minViewMode,Math.min(2,u.viewMode+e))}u.widget.find(".datepicker > div").hide().filter(".datepicker-"+I.modes[u.viewMode].clsName).show()},L=function(){var t,n,r,i,s;u.widget.on("click",".datepicker *",e.proxy(S,this));u.widget.on("click","[data-action]",e.proxy(T,this));u.widget.on("mousedown",e.proxy(N,this));if(u.options.pickDate&&u.options.pickTime){u.widget.on("click.togglePicker",".accordion-toggle",function(o){o.stopPropagation();t=e(this);n=t.closest("ul");r=n.find(".in");i=n.find(".collapse:not(.in)");if(r&&r.length){s=r.data("collapse");if(s&&s.transitioning)return;r.collapse("hide");i.collapse("show");t.find("span").toggleClass(u.options.icons.time+" "+u.options.icons.date);u.element.find(".input-group-addon span").toggleClass(u.options.icons.time+" "+u.options.icons.date)}})}if(u.isInput){u.element.on({focus:e.proxy(u.show,this),change:e.proxy(C,this),blur:e.proxy(u.hide,this)})}else{u.element.on({change:e.proxy(C,this)},"input");if(u.component){u.component.on("click",e.proxy(u.show,this))}else{u.element.on("click",e.proxy(u.show,this))}}},A=function(){e(window).on("resize.datetimepicker"+u.id,e.proxy(l,this));if(!u.isInput){e(document).on("mousedown.datetimepicker"+u.id,e.proxy(u.hide,this))}},O=function(){u.widget.off("click",".datepicker *",u.click);u.widget.off("click","[data-action]");u.widget.off("mousedown",u.stopEvent);if(u.options.pickDate&&u.options.pickTime){u.widget.off("click.togglePicker")}if(u.isInput){u.element.off({focus:u.show,change:u.change})}else{u.element.off({change:u.change},"input");if(u.component){u.component.off("click",u.show)}else{u.element.off("click",u.show)}}},M=function(){e(window).off("resize.datetimepicker"+u.id);if(!u.isInput){e(document).off("mousedown.datetimepicker"+u.id)}},_=function(){if(u.element){var t=u.element.parents(),n=false,r;for(r=0;r<t.length;r++){if(e(t[r]).css("position")=="fixed"){n=true;break}}return n}else{return false}},D=function(){r.lang(u.options.language);var e="",t;if(!u.unset)e=r(u.date).format(u.format);if(!u.isInput){if(u.component){t=u.element.find("input");t.val(e)}u.element.data("date",e)}else{u.element.val(e)}if(!u.options.pickTime)u.hide()},P=function(e,t,n){r.lang(u.options.language);var i;if(e=="add"){i=r(u.date);if(i.hours()==23)i.add(n,t);i.add(n,t)}else{i=r(u.date).subtract(n,t)}if(i.isAfter(u.options.endDate)||r(i.subtract(n,t)).isBefore(u.options.startDate)||H(i)){h(i.format(u.format));return}if(e=="add"){u.date.add(n,t)}else{u.date.subtract(n,t)}},H=function(e){r.lang(u.options.language);var t=u.options.disabledDates,n;for(n in t){if(t[n]==r(e).format("L")){return true}}return false},B=function(e){r.lang(u.options.language);var t=u.options.enabledDates,n;if(t.length){for(n in t){if(t[n]==r(e).format("L")){return true}}return false}return t===false?true:false},j=function(e){e=e.toString();if(e.length>=2)return e;else return"0"+e},F=function(e,t,n){if(e&&t){return'<div class="bootstrap-datetimepicker-widget dropdown-menu" style="z-index:9999 !important;">'+'<ul class="list-unstyled">'+"<li"+(n?' class="collapse in"':"")+">"+'<div class="datepicker">'+I.template+"</div>"+"</li>"+'<li class="picker-switch accordion-toggle"><a class="btn" style="width:100%"><span class="'+u.options.icons.time+'"></span></a></li>'+"<li"+(n?' class="collapse"':"")+">"+'<div class="timepicker">'+q.getTemplate()+"</div>"+"</li>"+"</ul>"+"</div>"}else if(t){return'<div class="bootstrap-datetimepicker-widget dropdown-menu">'+'<div class="timepicker">'+q.getTemplate()+"</div>"+"</div>"}else{return'<div class="bootstrap-datetimepicker-widget dropdown-menu">'+'<div class="datepicker">'+I.template+"</div>"+"</div>"}},I={modes:[{clsName:"days",navFnc:"month",navStep:1},{clsName:"months",navFnc:"year",navStep:1},{clsName:"years",navFnc:"year",navStep:10}],headTemplate:"<thead>"+"<tr>"+'<th class="prev">&lsaquo;</th><th colspan="5" class="switch"></th><th class="next">&rsaquo;</th>'+"</tr>"+"</thead>",contTemplate:'<tbody><tr><td colspan="7"></td></tr></tbody>'},q={hourTemplate:'<span data-action="showHours" data-time-component="hours" class="timepicker-hour"></span>',minuteTemplate:'<span data-action="showMinutes" data-time-component="minutes" class="timepicker-minute"></span>',secondTemplate:'<span data-action="showSeconds" data-time-component="seconds" class="timepicker-second"></span>'};I.template='<div class="datepicker-days">'+'<table class="table-condensed">'+I.headTemplate+"<tbody></tbody></table>"+"</div>"+'<div class="datepicker-months">'+'<table class="table-condensed">'+I.headTemplate+I.contTemplate+"</table>"+"</div>"+'<div class="datepicker-years">'+'<table class="table-condensed">'+I.headTemplate+I.contTemplate+"</table>"+"</div>";q.getTemplate=function(){return'<div class="timepicker-picker">'+'<table class="table-condensed">'+"<tr>"+'<td><a href="#" class="btn" data-action="incrementHours"><span class="'+u.options.icons.up+'"></span></a></td>'+'<td class="separator"></td>'+"<td>"+(u.options.useMinutes?'<a href="#" class="btn" data-action="incrementMinutes"><span class="'+u.options.icons.up+'"></span></a>':"")+"</td>"+(u.options.useSeconds?'<td class="separator"></td><td><a href="#" class="btn" data-action="incrementSeconds"><span class="'+u.options.icons.up+'"></span></a></td>':"")+(u.options.use24hours?"":'<td class="separator"></td>')+"</tr>"+"<tr>"+"<td>"+q.hourTemplate+"</td> "+'<td class="separator">:</td>'+"<td>"+(u.options.useMinutes?q.minuteTemplate:'<span class="timepicker-minute">00</span>')+"</td> "+(u.options.useSeconds?'<td class="separator">:</td><td>'+q.secondTemplate+"</td>":"")+(u.options.use24hours?"":'<td class="separator"></td>'+'<td><button type="button" class="btn btn-primary" data-action="togglePeriod"></button></td>')+"</tr>"+"<tr>"+'<td><a href="#" class="btn" data-action="decrementHours"><span class="'+u.options.icons.down+'"></span></a></td>'+'<td class="separator"></td>'+"<td>"+(u.options.useMinutes?'<a href="#" class="btn" data-action="decrementMinutes"><span class="'+u.options.icons.down+'"></span></a>':"")+"</td>"+(u.options.useSeconds?'<td class="separator"></td><td><a href="#" class="btn" data-action="decrementSeconds"><span class="'+u.options.icons.down+'"></span></a></td>':"")+(u.options.use24hours?"":'<td class="separator"></td>')+"</tr>"+"</table>"+"</div>"+'<div class="timepicker-hours" data-action="selectHour">'+'<table class="table-condensed"></table>'+"</div>"+'<div class="timepicker-minutes" data-action="selectMinute">'+'<table class="table-condensed"></table>'+"</div>"+(u.options.useSeconds?'<div class="timepicker-seconds" data-action="selectSecond"><table class="table-condensed"></table></div>':"")};u.destroy=function(){O();M();u.widget.remove();u.element.removeData("DateTimePicker");if(u.component)u.component.removeData("DateTimePicker")};u.show=function(e){u.widget.show();u.height=u.component?u.component.outerHeight():u.element.outerHeight();l();u.element.trigger({type:"show.dp",date:r(u.date)});A();if(e){N(e)}},u.disable=function(){var e=u.element.find("input");if(!e.prop("disabled"))return;e.prop("disabled",true);O()},u.enable=function(){var e=u.element.find("input");if(!e.prop("disabled"))return;e.prop("disabled",true);L()},u.hide=function(t){if(t&&e(t.target).is(u.element.attr("id")))return;var n=u.widget.find(".collapse"),i,s;for(i=0;i<n.length;i++){s=n.eq(i).data("collapse");if(s&&s.transitioning)return}u.widget.hide();u.viewMode=u.startViewMode;k();u.element.trigger({type:"hide.dp",date:r(u.date)});M()},u.setValue=function(e){r.lang(u.options.language);if(!e){u.unset=true}else{u.unset=false}if(!r.isMoment(e))e=r(e);if(e.isValid()){u.date=e;D();u.viewDate=r({y:u.date.year(),M:u.date.month()});g();E()}else{h(e)}},u.getDate=function(){if(u.unset)return null;return u.date},u.setDate=function(e){e=r(e);if(!e)u.setValue(null);else u.setValue(e)},u.setEnabledDates=function(e){if(!e)u.options.enabledDates=false;else u.options.enabledDates=e;if(u.viewDate)p()},u.setEndDate=function(e){u.options.endDate=r(e);if(!u.options.endDate.isValid()){u.options.endDate=r().add(50,"y")}if(u.viewDate)p()},u.setStartDate=function(e){u.options.startDate=r(e);if(!u.options.startDate.isValid()){u.options.startDate=r({y:1970})}if(u.viewDate)p()};a()};e.fn.datetimepicker=function(t){return this.each(function(){var n=e(this),r=n.data("DateTimePicker");if(!r)n.data("DateTimePicker",new i(this,t))})}});
029
=== added directory 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales'
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ar-ma.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ar-ma.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ar-ma.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,56 @@
1// moment.js language configuration
2// language : Moroccan Arabic (ar-ma)
3// author : ElFadili Yassine : https://github.com/ElFadiliY
4// author : Abdel Said : https://github.com/abdelsaid
5
6(function (factory) {
7 if (typeof define === 'function' && define.amd) {
8 define(['moment'], factory); // AMD
9 } else if (typeof exports === 'object') {
10 module.exports = factory(require('../moment')); // Node
11 } else {
12 factory(window.moment); // Browser global
13 }
14}(function (moment) {
15 return moment.lang('ar-ma', {
16 months : "يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),
17 monthsShort : "يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),
18 weekdays : "الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),
19 weekdaysShort : "احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),
20 weekdaysMin : "ح_ن_ث_ر_خ_ج_س".split("_"),
21 longDateFormat : {
22 LT : "HH:mm",
23 L : "DD/MM/YYYY",
24 LL : "D MMMM YYYY",
25 LLL : "D MMMM YYYY LT",
26 LLLL : "dddd D MMMM YYYY LT"
27 },
28 calendar : {
29 sameDay: "[اليوم على الساعة] LT",
30 nextDay: '[غدا على الساعة] LT',
31 nextWeek: 'dddd [على الساعة] LT',
32 lastDay: '[أمس على الساعة] LT',
33 lastWeek: 'dddd [على الساعة] LT',
34 sameElse: 'L'
35 },
36 relativeTime : {
37 future : "في %s",
38 past : "منذ %s",
39 s : "ثوان",
40 m : "دقيقة",
41 mm : "%d دقائق",
42 h : "ساعة",
43 hh : "%d ساعات",
44 d : "يوم",
45 dd : "%d أيام",
46 M : "شهر",
47 MM : "%d أشهر",
48 y : "سنة",
49 yy : "%d سنوات"
50 },
51 week : {
52 dow : 6, // Saturday is the first day of the week.
53 doy : 12 // The week that contains Jan 1st is the first week of the year.
54 }
55 });
56}));
057
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ar.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ar.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ar.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,56 @@
1// moment.js language configuration
2// language : Arabic (ar)
3// author : Abdel Said : https://github.com/abdelsaid
4// changes in months, weekdays : Ahmed Elkhatib
5
6(function (factory) {
7 if (typeof define === 'function' && define.amd) {
8 define(['moment'], factory); // AMD
9 } else if (typeof exports === 'object') {
10 module.exports = factory(require('../moment')); // Node
11 } else {
12 factory(window.moment); // Browser global
13 }
14}(function (moment) {
15 return moment.lang('ar', {
16 months : "يناير/ كانون الثاني_فبراير/ شباط_مارس/ آذار_أبريل/ نيسان_مايو/ أيار_يونيو/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتمبر/ أيلول_أكتوبر/ تشرين الأول_نوفمبر/ تشرين الثاني_ديسمبر/ كانون الأول".split("_"),
17 monthsShort : "يناير/ كانون الثاني_فبراير/ شباط_مارس/ آذار_أبريل/ نيسان_مايو/ أيار_يونيو/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتمبر/ أيلول_أكتوبر/ تشرين الأول_نوفمبر/ تشرين الثاني_ديسمبر/ كانون الأول".split("_"),
18 weekdays : "الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),
19 weekdaysShort : "الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),
20 weekdaysMin : "ح_ن_ث_ر_خ_ج_س".split("_"),
21 longDateFormat : {
22 LT : "HH:mm",
23 L : "DD/MM/YYYY",
24 LL : "D MMMM YYYY",
25 LLL : "D MMMM YYYY LT",
26 LLLL : "dddd D MMMM YYYY LT"
27 },
28 calendar : {
29 sameDay: "[اليوم على الساعة] LT",
30 nextDay: '[غدا على الساعة] LT',
31 nextWeek: 'dddd [على الساعة] LT',
32 lastDay: '[أمس على الساعة] LT',
33 lastWeek: 'dddd [على الساعة] LT',
34 sameElse: 'L'
35 },
36 relativeTime : {
37 future : "في %s",
38 past : "منذ %s",
39 s : "ثوان",
40 m : "دقيقة",
41 mm : "%d دقائق",
42 h : "ساعة",
43 hh : "%d ساعات",
44 d : "يوم",
45 dd : "%d أيام",
46 M : "شهر",
47 MM : "%d أشهر",
48 y : "سنة",
49 yy : "%d سنوات"
50 },
51 week : {
52 dow : 6, // Saturday is the first day of the week.
53 doy : 12 // The week that contains Jan 1st is the first week of the year.
54 }
55 });
56}));
057
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.bg.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.bg.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.bg.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,86 @@
1// moment.js language configuration
2// language : bulgarian (bg)
3// author : Krasen Borisov : https://github.com/kraz
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 return moment.lang('bg', {
15 months : "януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),
16 monthsShort : "янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),
17 weekdays : "неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),
18 weekdaysShort : "нед_пон_вто_сря_чет_пет_съб".split("_"),
19 weekdaysMin : "нд_пн_вт_ср_чт_пт_сб".split("_"),
20 longDateFormat : {
21 LT : "H:mm",
22 L : "D.MM.YYYY",
23 LL : "D MMMM YYYY",
24 LLL : "D MMMM YYYY LT",
25 LLLL : "dddd, D MMMM YYYY LT"
26 },
27 calendar : {
28 sameDay : '[Днес в] LT',
29 nextDay : '[Утре в] LT',
30 nextWeek : 'dddd [в] LT',
31 lastDay : '[Вчера в] LT',
32 lastWeek : function () {
33 switch (this.day()) {
34 case 0:
35 case 3:
36 case 6:
37 return '[В изминалата] dddd [в] LT';
38 case 1:
39 case 2:
40 case 4:
41 case 5:
42 return '[В изминалия] dddd [в] LT';
43 }
44 },
45 sameElse : 'L'
46 },
47 relativeTime : {
48 future : "след %s",
49 past : "преди %s",
50 s : "няколко секунди",
51 m : "минута",
52 mm : "%d минути",
53 h : "час",
54 hh : "%d часа",
55 d : "ден",
56 dd : "%d дни",
57 M : "месец",
58 MM : "%d месеца",
59 y : "година",
60 yy : "%d години"
61 },
62 ordinal : function (number) {
63 var lastDigit = number % 10,
64 last2Digits = number % 100;
65 if (number === 0) {
66 return number + '-ев';
67 } else if (last2Digits === 0) {
68 return number + '-ен';
69 } else if (last2Digits > 10 && last2Digits < 20) {
70 return number + '-ти';
71 } else if (lastDigit === 1) {
72 return number + '-ви';
73 } else if (lastDigit === 2) {
74 return number + '-ри';
75 } else if (lastDigit === 7 || lastDigit === 8) {
76 return number + '-ми';
77 } else {
78 return number + '-ти';
79 }
80 },
81 week : {
82 dow : 1, // Monday is the first day of the week.
83 doy : 7 // The week that contains Jan 1st is the first week of the year.
84 }
85 });
86}));
087
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.br.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.br.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.br.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,107 @@
1// moment.js language configuration
2// language : breton (br)
3// author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 function relativeTimeWithMutation(number, withoutSuffix, key) {
15 var format = {
16 'mm': "munutenn",
17 'MM': "miz",
18 'dd': "devezh"
19 };
20 return number + ' ' + mutation(format[key], number);
21 }
22
23 function specialMutationForYears(number) {
24 switch (lastNumber(number)) {
25 case 1:
26 case 3:
27 case 4:
28 case 5:
29 case 9:
30 return number + ' bloaz';
31 default:
32 return number + ' vloaz';
33 }
34 }
35
36 function lastNumber(number) {
37 if (number > 9) {
38 return lastNumber(number % 10);
39 }
40 return number;
41 }
42
43 function mutation(text, number) {
44 if (number === 2) {
45 return softMutation(text);
46 }
47 return text;
48 }
49
50 function softMutation(text) {
51 var mutationTable = {
52 'm': 'v',
53 'b': 'v',
54 'd': 'z'
55 };
56 if (mutationTable[text.charAt(0)] === undefined) {
57 return text;
58 }
59 return mutationTable[text.charAt(0)] + text.substring(1);
60 }
61
62 return moment.lang('br', {
63 months : "Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),
64 monthsShort : "Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),
65 weekdays : "Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),
66 weekdaysShort : "Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),
67 weekdaysMin : "Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),
68 longDateFormat : {
69 LT : "h[e]mm A",
70 L : "DD/MM/YYYY",
71 LL : "D [a viz] MMMM YYYY",
72 LLL : "D [a viz] MMMM YYYY LT",
73 LLLL : "dddd, D [a viz] MMMM YYYY LT"
74 },
75 calendar : {
76 sameDay : '[Hiziv da] LT',
77 nextDay : '[Warc\'hoazh da] LT',
78 nextWeek : 'dddd [da] LT',
79 lastDay : '[Dec\'h da] LT',
80 lastWeek : 'dddd [paset da] LT',
81 sameElse : 'L'
82 },
83 relativeTime : {
84 future : "a-benn %s",
85 past : "%s 'zo",
86 s : "un nebeud segondennoù",
87 m : "ur vunutenn",
88 mm : relativeTimeWithMutation,
89 h : "un eur",
90 hh : "%d eur",
91 d : "un devezh",
92 dd : relativeTimeWithMutation,
93 M : "ur miz",
94 MM : relativeTimeWithMutation,
95 y : "ur bloaz",
96 yy : specialMutationForYears
97 },
98 ordinal : function (number) {
99 var output = (number === 1) ? 'añ' : 'vet';
100 return number + output;
101 },
102 week : {
103 dow : 1, // Monday is the first day of the week.
104 doy : 4 // The week that contains Jan 4th is the first week of the year.
105 }
106 });
107}));
0108
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.bs.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.bs.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.bs.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,139 @@
1// moment.js language configuration
2// language : bosnian (bs)
3// author : Nedim Cholich : https://github.com/frontyard
4// based on (hr) translation by Bojan Marković
5
6(function (factory) {
7 if (typeof define === 'function' && define.amd) {
8 define(['moment'], factory); // AMD
9 } else if (typeof exports === 'object') {
10 module.exports = factory(require('../moment')); // Node
11 } else {
12 factory(window.moment); // Browser global
13 }
14}(function (moment) {
15
16 function translate(number, withoutSuffix, key) {
17 var result = number + " ";
18 switch (key) {
19 case 'm':
20 return withoutSuffix ? 'jedna minuta' : 'jedne minute';
21 case 'mm':
22 if (number === 1) {
23 result += 'minuta';
24 } else if (number === 2 || number === 3 || number === 4) {
25 result += 'minute';
26 } else {
27 result += 'minuta';
28 }
29 return result;
30 case 'h':
31 return withoutSuffix ? 'jedan sat' : 'jednog sata';
32 case 'hh':
33 if (number === 1) {
34 result += 'sat';
35 } else if (number === 2 || number === 3 || number === 4) {
36 result += 'sata';
37 } else {
38 result += 'sati';
39 }
40 return result;
41 case 'dd':
42 if (number === 1) {
43 result += 'dan';
44 } else {
45 result += 'dana';
46 }
47 return result;
48 case 'MM':
49 if (number === 1) {
50 result += 'mjesec';
51 } else if (number === 2 || number === 3 || number === 4) {
52 result += 'mjeseca';
53 } else {
54 result += 'mjeseci';
55 }
56 return result;
57 case 'yy':
58 if (number === 1) {
59 result += 'godina';
60 } else if (number === 2 || number === 3 || number === 4) {
61 result += 'godine';
62 } else {
63 result += 'godina';
64 }
65 return result;
66 }
67 }
68
69 return moment.lang('bs', {
70 months : "januar_februar_mart_april_maj_juni_juli_avgust_septembar_oktobar_novembar_decembar".split("_"),
71 monthsShort : "jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),
72 weekdays : "nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),
73 weekdaysShort : "ned._pon._uto._sri._čet._pet._sub.".split("_"),
74 weekdaysMin : "ne_po_ut_sr_če_pe_su".split("_"),
75 longDateFormat : {
76 LT : "H:mm",
77 L : "DD. MM. YYYY",
78 LL : "D. MMMM YYYY",
79 LLL : "D. MMMM YYYY LT",
80 LLLL : "dddd, D. MMMM YYYY LT"
81 },
82 calendar : {
83 sameDay : '[danas u] LT',
84 nextDay : '[sutra u] LT',
85
86 nextWeek : function () {
87 switch (this.day()) {
88 case 0:
89 return '[u] [nedjelju] [u] LT';
90 case 3:
91 return '[u] [srijedu] [u] LT';
92 case 6:
93 return '[u] [subotu] [u] LT';
94 case 1:
95 case 2:
96 case 4:
97 case 5:
98 return '[u] dddd [u] LT';
99 }
100 },
101 lastDay : '[jučer u] LT',
102 lastWeek : function () {
103 switch (this.day()) {
104 case 0:
105 case 3:
106 return '[prošlu] dddd [u] LT';
107 case 6:
108 return '[prošle] [subote] [u] LT';
109 case 1:
110 case 2:
111 case 4:
112 case 5:
113 return '[prošli] dddd [u] LT';
114 }
115 },
116 sameElse : 'L'
117 },
118 relativeTime : {
119 future : "za %s",
120 past : "prije %s",
121 s : "par sekundi",
122 m : translate,
123 mm : translate,
124 h : translate,
125 hh : translate,
126 d : "dan",
127 dd : translate,
128 M : "mjesec",
129 MM : translate,
130 y : "godinu",
131 yy : translate
132 },
133 ordinal : '%d.',
134 week : {
135 dow : 1, // Monday is the first day of the week.
136 doy : 7 // The week that contains Jan 1st is the first week of the year.
137 }
138 });
139}));
0140
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ca.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ca.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ca.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,66 @@
1// moment.js language configuration
2// language : catalan (ca)
3// author : Juan G. Hurtado : https://github.com/juanghurtado
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 return moment.lang('ca', {
15 months : "Gener_Febrer_Març_Abril_Maig_Juny_Juliol_Agost_Setembre_Octubre_Novembre_Desembre".split("_"),
16 monthsShort : "Gen._Febr._Mar._Abr._Mai._Jun._Jul._Ag._Set._Oct._Nov._Des.".split("_"),
17 weekdays : "Diumenge_Dilluns_Dimarts_Dimecres_Dijous_Divendres_Dissabte".split("_"),
18 weekdaysShort : "Dg._Dl._Dt._Dc._Dj._Dv._Ds.".split("_"),
19 weekdaysMin : "Dg_Dl_Dt_Dc_Dj_Dv_Ds".split("_"),
20 longDateFormat : {
21 LT : "H:mm",
22 L : "DD/MM/YYYY",
23 LL : "D MMMM YYYY",
24 LLL : "D MMMM YYYY LT",
25 LLLL : "dddd D MMMM YYYY LT"
26 },
27 calendar : {
28 sameDay : function () {
29 return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
30 },
31 nextDay : function () {
32 return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
33 },
34 nextWeek : function () {
35 return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
36 },
37 lastDay : function () {
38 return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
39 },
40 lastWeek : function () {
41 return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
42 },
43 sameElse : 'L'
44 },
45 relativeTime : {
46 future : "en %s",
47 past : "fa %s",
48 s : "uns segons",
49 m : "un minut",
50 mm : "%d minuts",
51 h : "una hora",
52 hh : "%d hores",
53 d : "un dia",
54 dd : "%d dies",
55 M : "un mes",
56 MM : "%d mesos",
57 y : "un any",
58 yy : "%d anys"
59 },
60 ordinal : '%dº',
61 week : {
62 dow : 1, // Monday is the first day of the week.
63 doy : 4 // The week that contains Jan 4th is the first week of the year.
64 }
65 });
66}));
067
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.cs.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.cs.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.cs.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,155 @@
1// moment.js language configuration
2// language : czech (cs)
3// author : petrbela : https://github.com/petrbela
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 var months = "leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),
15 monthsShort = "led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_");
16
17 function plural(n) {
18 return (n > 1) && (n < 5) && (~~(n / 10) !== 1);
19 }
20
21 function translate(number, withoutSuffix, key, isFuture) {
22 var result = number + " ";
23 switch (key) {
24 case 's': // a few seconds / in a few seconds / a few seconds ago
25 return (withoutSuffix || isFuture) ? 'pár vteřin' : 'pár vteřinami';
26 case 'm': // a minute / in a minute / a minute ago
27 return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');
28 case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
29 if (withoutSuffix || isFuture) {
30 return result + (plural(number) ? 'minuty' : 'minut');
31 } else {
32 return result + 'minutami';
33 }
34 break;
35 case 'h': // an hour / in an hour / an hour ago
36 return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
37 case 'hh': // 9 hours / in 9 hours / 9 hours ago
38 if (withoutSuffix || isFuture) {
39 return result + (plural(number) ? 'hodiny' : 'hodin');
40 } else {
41 return result + 'hodinami';
42 }
43 break;
44 case 'd': // a day / in a day / a day ago
45 return (withoutSuffix || isFuture) ? 'den' : 'dnem';
46 case 'dd': // 9 days / in 9 days / 9 days ago
47 if (withoutSuffix || isFuture) {
48 return result + (plural(number) ? 'dny' : 'dní');
49 } else {
50 return result + 'dny';
51 }
52 break;
53 case 'M': // a month / in a month / a month ago
54 return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem';
55 case 'MM': // 9 months / in 9 months / 9 months ago
56 if (withoutSuffix || isFuture) {
57 return result + (plural(number) ? 'měsíce' : 'měsíců');
58 } else {
59 return result + 'měsíci';
60 }
61 break;
62 case 'y': // a year / in a year / a year ago
63 return (withoutSuffix || isFuture) ? 'rok' : 'rokem';
64 case 'yy': // 9 years / in 9 years / 9 years ago
65 if (withoutSuffix || isFuture) {
66 return result + (plural(number) ? 'roky' : 'let');
67 } else {
68 return result + 'lety';
69 }
70 break;
71 }
72 }
73
74 return moment.lang('cs', {
75 months : months,
76 monthsShort : monthsShort,
77 monthsParse : (function (months, monthsShort) {
78 var i, _monthsParse = [];
79 for (i = 0; i < 12; i++) {
80 // use custom parser to solve problem with July (červenec)
81 _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');
82 }
83 return _monthsParse;
84 }(months, monthsShort)),
85 weekdays : "neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),
86 weekdaysShort : "ne_po_út_st_čt_pá_so".split("_"),
87 weekdaysMin : "ne_po_út_st_čt_pá_so".split("_"),
88 longDateFormat : {
89 LT: "H:mm",
90 L : "DD.MM.YYYY",
91 LL : "D. MMMM YYYY",
92 LLL : "D. MMMM YYYY LT",
93 LLLL : "dddd D. MMMM YYYY LT"
94 },
95 calendar : {
96 sameDay: "[dnes v] LT",
97 nextDay: '[zítra v] LT',
98 nextWeek: function () {
99 switch (this.day()) {
100 case 0:
101 return '[v neděli v] LT';
102 case 1:
103 case 2:
104 return '[v] dddd [v] LT';
105 case 3:
106 return '[ve středu v] LT';
107 case 4:
108 return '[ve čtvrtek v] LT';
109 case 5:
110 return '[v pátek v] LT';
111 case 6:
112 return '[v sobotu v] LT';
113 }
114 },
115 lastDay: '[včera v] LT',
116 lastWeek: function () {
117 switch (this.day()) {
118 case 0:
119 return '[minulou neděli v] LT';
120 case 1:
121 case 2:
122 return '[minulé] dddd [v] LT';
123 case 3:
124 return '[minulou středu v] LT';
125 case 4:
126 case 5:
127 return '[minulý] dddd [v] LT';
128 case 6:
129 return '[minulou sobotu v] LT';
130 }
131 },
132 sameElse: "L"
133 },
134 relativeTime : {
135 future : "za %s",
136 past : "před %s",
137 s : translate,
138 m : translate,
139 mm : translate,
140 h : translate,
141 hh : translate,
142 d : translate,
143 dd : translate,
144 M : translate,
145 MM : translate,
146 y : translate,
147 yy : translate
148 },
149 ordinal : '%d.',
150 week : {
151 dow : 1, // Monday is the first day of the week.
152 doy : 4 // The week that contains Jan 4th is the first week of the year.
153 }
154 });
155}));
0156
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.cv.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.cv.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.cv.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,59 @@
1// moment.js language configuration
2// language : chuvash (cv)
3// author : Anatoly Mironov : https://github.com/mirontoli
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 return moment.lang('cv', {
15 months : "кăрлач_нарăс_пуш_ака_май_çĕртме_утă_çурла_авăн_юпа_чӳк_раштав".split("_"),
16 monthsShort : "кăр_нар_пуш_ака_май_çĕр_утă_çур_ав_юпа_чӳк_раш".split("_"),
17 weekdays : "вырсарникун_тунтикун_ытларикун_юнкун_кĕçнерникун_эрнекун_шăматкун".split("_"),
18 weekdaysShort : "выр_тун_ытл_юн_кĕç_эрн_шăм".split("_"),
19 weekdaysMin : "вр_тн_ыт_юн_кç_эр_шм".split("_"),
20 longDateFormat : {
21 LT : "HH:mm",
22 L : "DD-MM-YYYY",
23 LL : "YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ]",
24 LLL : "YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT",
25 LLLL : "dddd, YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT"
26 },
27 calendar : {
28 sameDay: '[Паян] LT [сехетре]',
29 nextDay: '[Ыран] LT [сехетре]',
30 lastDay: '[Ĕнер] LT [сехетре]',
31 nextWeek: '[Çитес] dddd LT [сехетре]',
32 lastWeek: '[Иртнĕ] dddd LT [сехетре]',
33 sameElse: 'L'
34 },
35 relativeTime : {
36 future : function (output) {
37 var affix = /сехет$/i.exec(output) ? "рен" : /çул$/i.exec(output) ? "тан" : "ран";
38 return output + affix;
39 },
40 past : "%s каялла",
41 s : "пĕр-ик çеккунт",
42 m : "пĕр минут",
43 mm : "%d минут",
44 h : "пĕр сехет",
45 hh : "%d сехет",
46 d : "пĕр кун",
47 dd : "%d кун",
48 M : "пĕр уйăх",
49 MM : "%d уйăх",
50 y : "пĕр çул",
51 yy : "%d çул"
52 },
53 ordinal : '%d-мĕш',
54 week : {
55 dow : 1, // Monday is the first day of the week.
56 doy : 7 // The week that contains Jan 1st is the first week of the year.
57 }
58 });
59}));
060
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.da.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.da.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.da.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,56 @@
1// moment.js language configuration
2// language : danish (da)
3// author : Ulrik Nielsen : https://github.com/mrbase
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 return moment.lang('da', {
15 months : "januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),
16 monthsShort : "jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),
17 weekdays : "søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),
18 weekdaysShort : "søn_man_tir_ons_tor_fre_lør".split("_"),
19 weekdaysMin : "sø_ma_ti_on_to_fr_lø".split("_"),
20 longDateFormat : {
21 LT : "HH:mm",
22 L : "DD/MM/YYYY",
23 LL : "D MMMM YYYY",
24 LLL : "D MMMM YYYY LT",
25 LLLL : "dddd D. MMMM, YYYY LT"
26 },
27 calendar : {
28 sameDay : '[I dag kl.] LT',
29 nextDay : '[I morgen kl.] LT',
30 nextWeek : 'dddd [kl.] LT',
31 lastDay : '[I går kl.] LT',
32 lastWeek : '[sidste] dddd [kl] LT',
33 sameElse : 'L'
34 },
35 relativeTime : {
36 future : "om %s",
37 past : "%s siden",
38 s : "få sekunder",
39 m : "et minut",
40 mm : "%d minutter",
41 h : "en time",
42 hh : "%d timer",
43 d : "en dag",
44 dd : "%d dage",
45 M : "en måned",
46 MM : "%d måneder",
47 y : "et år",
48 yy : "%d år"
49 },
50 ordinal : '%d.',
51 week : {
52 dow : 1, // Monday is the first day of the week.
53 doy : 4 // The week that contains Jan 4th is the first week of the year.
54 }
55 });
56}));
057
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.de.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.de.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.de.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,71 @@
1// moment.js language configuration
2// language : german (de)
3// author : lluchs : https://github.com/lluchs
4// author: Menelion Elensúle: https://github.com/Oire
5
6(function (factory) {
7 if (typeof define === 'function' && define.amd) {
8 define(['moment'], factory); // AMD
9 } else if (typeof exports === 'object') {
10 module.exports = factory(require('../moment')); // Node
11 } else {
12 factory(window.moment); // Browser global
13 }
14}(function (moment) {
15 function processRelativeTime(number, withoutSuffix, key, isFuture) {
16 var format = {
17 'm': ['eine Minute', 'einer Minute'],
18 'h': ['eine Stunde', 'einer Stunde'],
19 'd': ['ein Tag', 'einem Tag'],
20 'dd': [number + ' Tage', number + ' Tagen'],
21 'M': ['ein Monat', 'einem Monat'],
22 'MM': [number + ' Monate', number + ' Monaten'],
23 'y': ['ein Jahr', 'einem Jahr'],
24 'yy': [number + ' Jahre', number + ' Jahren']
25 };
26 return withoutSuffix ? format[key][0] : format[key][1];
27 }
28
29 return moment.lang('de', {
30 months : "Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),
31 monthsShort : "Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),
32 weekdays : "Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),
33 weekdaysShort : "So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),
34 weekdaysMin : "So_Mo_Di_Mi_Do_Fr_Sa".split("_"),
35 longDateFormat : {
36 LT: "H:mm [Uhr]",
37 L : "DD.MM.YYYY",
38 LL : "D. MMMM YYYY",
39 LLL : "D. MMMM YYYY LT",
40 LLLL : "dddd, D. MMMM YYYY LT"
41 },
42 calendar : {
43 sameDay: "[Heute um] LT",
44 sameElse: "L",
45 nextDay: '[Morgen um] LT',
46 nextWeek: 'dddd [um] LT',
47 lastDay: '[Gestern um] LT',
48 lastWeek: '[letzten] dddd [um] LT'
49 },
50 relativeTime : {
51 future : "in %s",
52 past : "vor %s",
53 s : "ein paar Sekunden",
54 m : processRelativeTime,
55 mm : "%d Minuten",
56 h : processRelativeTime,
57 hh : "%d Stunden",
58 d : processRelativeTime,
59 dd : processRelativeTime,
60 M : processRelativeTime,
61 MM : processRelativeTime,
62 y : processRelativeTime,
63 yy : processRelativeTime
64 },
65 ordinal : '%d.',
66 week : {
67 dow : 1, // Monday is the first day of the week.
68 doy : 4 // The week that contains Jan 4th is the first week of the year.
69 }
70 });
71}));
072
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.el.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.el.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.el.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,79 @@
1// moment.js language configuration
2// language : modern greek (el)
3// author : Aggelos Karalias : https://github.com/mehiel
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 return moment.lang('el', {
15 monthsNominativeEl : "Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),
16 monthsGenitiveEl : "Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),
17 months : function (momentToFormat, format) {
18 if (/D/.test(format.substring(0, format.indexOf("MMMM")))) { // if there is a day number before 'MMMM'
19 return this._monthsGenitiveEl[momentToFormat.month()];
20 } else {
21 return this._monthsNominativeEl[momentToFormat.month()];
22 }
23 },
24 monthsShort : "Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),
25 weekdays : "Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),
26 weekdaysShort : "Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),
27 weekdaysMin : "Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),
28 meridiem : function (hours, minutes, isLower) {
29 if (hours > 11) {
30 return isLower ? 'μμ' : 'ΜΜ';
31 } else {
32 return isLower ? 'πμ' : 'ΠΜ';
33 }
34 },
35 longDateFormat : {
36 LT : "h:mm A",
37 L : "DD/MM/YYYY",
38 LL : "D MMMM YYYY",
39 LLL : "D MMMM YYYY LT",
40 LLLL : "dddd, D MMMM YYYY LT"
41 },
42 calendarEl : {
43 sameDay : '[Σήμερα {}] LT',
44 nextDay : '[Αύριο {}] LT',
45 nextWeek : 'dddd [{}] LT',
46 lastDay : '[Χθες {}] LT',
47 lastWeek : '[την προηγούμενη] dddd [{}] LT',
48 sameElse : 'L'
49 },
50 calendar : function (key, mom) {
51 var output = this._calendarEl[key],
52 hours = mom && mom.hours();
53
54 return output.replace("{}", (hours % 12 === 1 ? "στη" : "στις"));
55 },
56 relativeTime : {
57 future : "σε %s",
58 past : "%s πριν",
59 s : "δευτερόλεπτα",
60 m : "ένα λεπτό",
61 mm : "%d λεπτά",
62 h : "μία ώρα",
63 hh : "%d ώρες",
64 d : "μία μέρα",
65 dd : "%d μέρες",
66 M : "ένας μήνας",
67 MM : "%d μήνες",
68 y : "ένας χρόνος",
69 yy : "%d χρόνια"
70 },
71 ordinal : function (number) {
72 return number + 'η';
73 },
74 week : {
75 dow : 1, // Monday is the first day of the week.
76 doy : 4 // The week that contains Jan 4st is the first week of the year.
77 }
78 });
79}));
080
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.en-au.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.en-au.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.en-au.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,62 @@
1// moment.js language configuration
2// language : australian english (en-au)
3
4(function (factory) {
5 if (typeof define === 'function' && define.amd) {
6 define(['moment'], factory); // AMD
7 } else if (typeof exports === 'object') {
8 module.exports = factory(require('../moment')); // Node
9 } else {
10 factory(window.moment); // Browser global
11 }
12}(function (moment) {
13 return moment.lang('en-au', {
14 months : "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
15 monthsShort : "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
16 weekdays : "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
17 weekdaysShort : "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),
18 weekdaysMin : "Su_Mo_Tu_We_Th_Fr_Sa".split("_"),
19 longDateFormat : {
20 LT : "h:mm A",
21 L : "DD/MM/YYYY",
22 LL : "D MMMM YYYY",
23 LLL : "D MMMM YYYY LT",
24 LLLL : "dddd, D MMMM YYYY LT"
25 },
26 calendar : {
27 sameDay : '[Today at] LT',
28 nextDay : '[Tomorrow at] LT',
29 nextWeek : 'dddd [at] LT',
30 lastDay : '[Yesterday at] LT',
31 lastWeek : '[Last] dddd [at] LT',
32 sameElse : 'L'
33 },
34 relativeTime : {
35 future : "in %s",
36 past : "%s ago",
37 s : "a few seconds",
38 m : "a minute",
39 mm : "%d minutes",
40 h : "an hour",
41 hh : "%d hours",
42 d : "a day",
43 dd : "%d days",
44 M : "a month",
45 MM : "%d months",
46 y : "a year",
47 yy : "%d years"
48 },
49 ordinal : function (number) {
50 var b = number % 10,
51 output = (~~ (number % 100 / 10) === 1) ? 'th' :
52 (b === 1) ? 'st' :
53 (b === 2) ? 'nd' :
54 (b === 3) ? 'rd' : 'th';
55 return number + output;
56 },
57 week : {
58 dow : 1, // Monday is the first day of the week.
59 doy : 4 // The week that contains Jan 4th is the first week of the year.
60 }
61 });
62}));
063
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.en-ca.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.en-ca.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.en-ca.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,59 @@
1// moment.js language configuration
2// language : canadian english (en-ca)
3// author : Jonathan Abourbih : https://github.com/jonbca
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 return moment.lang('en-ca', {
15 months : "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
16 monthsShort : "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
17 weekdays : "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
18 weekdaysShort : "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),
19 weekdaysMin : "Su_Mo_Tu_We_Th_Fr_Sa".split("_"),
20 longDateFormat : {
21 LT : "h:mm A",
22 L : "YYYY-MM-DD",
23 LL : "D MMMM, YYYY",
24 LLL : "D MMMM, YYYY LT",
25 LLLL : "dddd, D MMMM, YYYY LT"
26 },
27 calendar : {
28 sameDay : '[Today at] LT',
29 nextDay : '[Tomorrow at] LT',
30 nextWeek : 'dddd [at] LT',
31 lastDay : '[Yesterday at] LT',
32 lastWeek : '[Last] dddd [at] LT',
33 sameElse : 'L'
34 },
35 relativeTime : {
36 future : "in %s",
37 past : "%s ago",
38 s : "a few seconds",
39 m : "a minute",
40 mm : "%d minutes",
41 h : "an hour",
42 hh : "%d hours",
43 d : "a day",
44 dd : "%d days",
45 M : "a month",
46 MM : "%d months",
47 y : "a year",
48 yy : "%d years"
49 },
50 ordinal : function (number) {
51 var b = number % 10,
52 output = (~~ (number % 100 / 10) === 1) ? 'th' :
53 (b === 1) ? 'st' :
54 (b === 2) ? 'nd' :
55 (b === 3) ? 'rd' : 'th';
56 return number + output;
57 }
58 });
59}));
060
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.en-gb.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.en-gb.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.en-gb.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,63 @@
1// moment.js language configuration
2// language : great britain english (en-gb)
3// author : Chris Gedrim : https://github.com/chrisgedrim
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 return moment.lang('en-gb', {
15 months : "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
16 monthsShort : "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
17 weekdays : "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
18 weekdaysShort : "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),
19 weekdaysMin : "Su_Mo_Tu_We_Th_Fr_Sa".split("_"),
20 longDateFormat : {
21 LT : "HH:mm",
22 L : "DD/MM/YYYY",
23 LL : "D MMMM YYYY",
24 LLL : "D MMMM YYYY LT",
25 LLLL : "dddd, D MMMM YYYY LT"
26 },
27 calendar : {
28 sameDay : '[Today at] LT',
29 nextDay : '[Tomorrow at] LT',
30 nextWeek : 'dddd [at] LT',
31 lastDay : '[Yesterday at] LT',
32 lastWeek : '[Last] dddd [at] LT',
33 sameElse : 'L'
34 },
35 relativeTime : {
36 future : "in %s",
37 past : "%s ago",
38 s : "a few seconds",
39 m : "a minute",
40 mm : "%d minutes",
41 h : "an hour",
42 hh : "%d hours",
43 d : "a day",
44 dd : "%d days",
45 M : "a month",
46 MM : "%d months",
47 y : "a year",
48 yy : "%d years"
49 },
50 ordinal : function (number) {
51 var b = number % 10,
52 output = (~~ (number % 100 / 10) === 1) ? 'th' :
53 (b === 1) ? 'st' :
54 (b === 2) ? 'nd' :
55 (b === 3) ? 'rd' : 'th';
56 return number + output;
57 },
58 week : {
59 dow : 1, // Monday is the first day of the week.
60 doy : 4 // The week that contains Jan 4th is the first week of the year.
61 }
62 });
63}));
064
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.eo.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.eo.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.eo.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,65 @@
1// moment.js language configuration
2// language : esperanto (eo)
3// author : Colin Dean : https://github.com/colindean
4// komento: Mi estas malcerta se mi korekte traktis akuzativojn en tiu traduko.
5// Se ne, bonvolu korekti kaj avizi min por ke mi povas lerni!
6
7(function (factory) {
8 if (typeof define === 'function' && define.amd) {
9 define(['moment'], factory); // AMD
10 } else if (typeof exports === 'object') {
11 module.exports = factory(require('../moment')); // Node
12 } else {
13 factory(window.moment); // Browser global
14 }
15}(function (moment) {
16 return moment.lang('eo', {
17 months : "januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),
18 monthsShort : "jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec".split("_"),
19 weekdays : "Dimanĉo_Lundo_Mardo_Merkredo_Ĵaŭdo_Vendredo_Sabato".split("_"),
20 weekdaysShort : "Dim_Lun_Mard_Merk_Ĵaŭ_Ven_Sab".split("_"),
21 weekdaysMin : "Di_Lu_Ma_Me_Ĵa_Ve_Sa".split("_"),
22 longDateFormat : {
23 LT : "HH:mm",
24 L : "YYYY-MM-DD",
25 LL : "D[-an de] MMMM, YYYY",
26 LLL : "D[-an de] MMMM, YYYY LT",
27 LLLL : "dddd, [la] D[-an de] MMMM, YYYY LT"
28 },
29 meridiem : function (hours, minutes, isLower) {
30 if (hours > 11) {
31 return isLower ? 'p.t.m.' : 'P.T.M.';
32 } else {
33 return isLower ? 'a.t.m.' : 'A.T.M.';
34 }
35 },
36 calendar : {
37 sameDay : '[Hodiaŭ je] LT',
38 nextDay : '[Morgaŭ je] LT',
39 nextWeek : 'dddd [je] LT',
40 lastDay : '[Hieraŭ je] LT',
41 lastWeek : '[pasinta] dddd [je] LT',
42 sameElse : 'L'
43 },
44 relativeTime : {
45 future : "je %s",
46 past : "antaŭ %s",
47 s : "sekundoj",
48 m : "minuto",
49 mm : "%d minutoj",
50 h : "horo",
51 hh : "%d horoj",
52 d : "tago",//ne 'diurno', ĉar estas uzita por proksimumo
53 dd : "%d tagoj",
54 M : "monato",
55 MM : "%d monatoj",
56 y : "jaro",
57 yy : "%d jaroj"
58 },
59 ordinal : "%da",
60 week : {
61 dow : 1, // Monday is the first day of the week.
62 doy : 7 // The week that contains Jan 1st is the first week of the year.
63 }
64 });
65}));
066
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.es.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.es.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.es.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,66 @@
1// moment.js language configuration
2// language : spanish (es)
3// author : Julio Napurí : https://github.com/julionc
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 return moment.lang('es', {
15 months : "enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),
16 monthsShort : "ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),
17 weekdays : "domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),
18 weekdaysShort : "dom._lun._mar._mié._jue._vie._sáb.".split("_"),
19 weekdaysMin : "Do_Lu_Ma_Mi_Ju_Vi_Sá".split("_"),
20 longDateFormat : {
21 LT : "H:mm",
22 L : "DD/MM/YYYY",
23 LL : "D [de] MMMM [de] YYYY",
24 LLL : "D [de] MMMM [de] YYYY LT",
25 LLLL : "dddd, D [de] MMMM [de] YYYY LT"
26 },
27 calendar : {
28 sameDay : function () {
29 return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
30 },
31 nextDay : function () {
32 return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
33 },
34 nextWeek : function () {
35 return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
36 },
37 lastDay : function () {
38 return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
39 },
40 lastWeek : function () {
41 return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
42 },
43 sameElse : 'L'
44 },
45 relativeTime : {
46 future : "en %s",
47 past : "hace %s",
48 s : "unos segundos",
49 m : "un minuto",
50 mm : "%d minutos",
51 h : "una hora",
52 hh : "%d horas",
53 d : "un día",
54 dd : "%d días",
55 M : "un mes",
56 MM : "%d meses",
57 y : "un año",
58 yy : "%d años"
59 },
60 ordinal : '%dº',
61 week : {
62 dow : 1, // Monday is the first day of the week.
63 doy : 4 // The week that contains Jan 4th is the first week of the year.
64 }
65 });
66}));
067
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.et.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.et.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.et.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,60 @@
1// moment.js language configuration
2// language : estonian (et)
3// author : Henry Kehlmann : https://github.com/madhenry
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 function translateSeconds(number, withoutSuffix, key, isFuture) {
15 return (isFuture || withoutSuffix) ? 'paari sekundi' : 'paar sekundit';
16 }
17
18 return moment.lang('et', {
19 months : "jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),
20 monthsShort : "jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),
21 weekdays : "pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),
22 weekdaysShort : "P_E_T_K_N_R_L".split("_"),
23 weekdaysMin : "P_E_T_K_N_R_L".split("_"),
24 longDateFormat : {
25 LT : "H:mm",
26 L : "DD.MM.YYYY",
27 LL : "D. MMMM YYYY",
28 LLL : "D. MMMM YYYY LT",
29 LLLL : "dddd, D. MMMM YYYY LT"
30 },
31 calendar : {
32 sameDay : '[Täna,] LT',
33 nextDay : '[Homme,] LT',
34 nextWeek : '[Järgmine] dddd LT',
35 lastDay : '[Eile,] LT',
36 lastWeek : '[Eelmine] dddd LT',
37 sameElse : 'L'
38 },
39 relativeTime : {
40 future : "%s pärast",
41 past : "%s tagasi",
42 s : translateSeconds,
43 m : "minut",
44 mm : "%d minutit",
45 h : "tund",
46 hh : "%d tundi",
47 d : "päev",
48 dd : "%d päeva",
49 M : "kuu",
50 MM : "%d kuud",
51 y : "aasta",
52 yy : "%d aastat"
53 },
54 ordinal : '%d.',
55 week : {
56 dow : 1, // Monday is the first day of the week.
57 doy : 4 // The week that contains Jan 4th is the first week of the year.
58 }
59 });
60}));
061
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.eu.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.eu.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.eu.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,60 @@
1// moment.js language configuration
2// language : euskara (eu)
3// author : Eneko Illarramendi : https://github.com/eillarra
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 return moment.lang('eu', {
15 months : "urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),
16 monthsShort : "urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),
17 weekdays : "igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),
18 weekdaysShort : "ig._al._ar._az._og._ol._lr.".split("_"),
19 weekdaysMin : "ig_al_ar_az_og_ol_lr".split("_"),
20 longDateFormat : {
21 LT : "HH:mm",
22 L : "YYYY-MM-DD",
23 LL : "YYYY[ko] MMMM[ren] D[a]",
24 LLL : "YYYY[ko] MMMM[ren] D[a] LT",
25 LLLL : "dddd, YYYY[ko] MMMM[ren] D[a] LT",
26 l : "YYYY-M-D",
27 ll : "YYYY[ko] MMM D[a]",
28 lll : "YYYY[ko] MMM D[a] LT",
29 llll : "ddd, YYYY[ko] MMM D[a] LT"
30 },
31 calendar : {
32 sameDay : '[gaur] LT[etan]',
33 nextDay : '[bihar] LT[etan]',
34 nextWeek : 'dddd LT[etan]',
35 lastDay : '[atzo] LT[etan]',
36 lastWeek : '[aurreko] dddd LT[etan]',
37 sameElse : 'L'
38 },
39 relativeTime : {
40 future : "%s barru",
41 past : "duela %s",
42 s : "segundo batzuk",
43 m : "minutu bat",
44 mm : "%d minutu",
45 h : "ordu bat",
46 hh : "%d ordu",
47 d : "egun bat",
48 dd : "%d egun",
49 M : "hilabete bat",
50 MM : "%d hilabete",
51 y : "urte bat",
52 yy : "%d urte"
53 },
54 ordinal : '%d.',
55 week : {
56 dow : 1, // Monday is the first day of the week.
57 doy : 7 // The week that contains Jan 1st is the first week of the year.
58 }
59 });
60}));
061
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.fa.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.fa.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.fa.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,97 @@
1// moment.js language configuration
2// language : Persian Language
3// author : Ebrahim Byagowi : https://github.com/ebraminio
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 var symbolMap = {
15 '1': '۱',
16 '2': '۲',
17 '3': '۳',
18 '4': '۴',
19 '5': '۵',
20 '6': '۶',
21 '7': '۷',
22 '8': '۸',
23 '9': '۹',
24 '0': '۰'
25 }, numberMap = {
26 '۱': '1',
27 '۲': '2',
28 '۳': '3',
29 '۴': '4',
30 '۵': '5',
31 '۶': '6',
32 '۷': '7',
33 '۸': '8',
34 '۹': '9',
35 '۰': '0'
36 };
37
38 return moment.lang('fa', {
39 months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
40 monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
41 weekdays : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
42 weekdaysShort : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
43 weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'),
44 longDateFormat : {
45 LT : 'HH:mm',
46 L : 'DD/MM/YYYY',
47 LL : 'D MMMM YYYY',
48 LLL : 'D MMMM YYYY LT',
49 LLLL : 'dddd, D MMMM YYYY LT'
50 },
51 meridiem : function (hour, minute, isLower) {
52 if (hour < 12) {
53 return "قبل از ظهر";
54 } else {
55 return "بعد از ظهر";
56 }
57 },
58 calendar : {
59 sameDay : '[امروز ساعت] LT',
60 nextDay : '[فردا ساعت] LT',
61 nextWeek : 'dddd [ساعت] LT',
62 lastDay : '[دیروز ساعت] LT',
63 lastWeek : 'dddd [پیش] [ساعت] LT',
64 sameElse : 'L'
65 },
66 relativeTime : {
67 future : 'در %s',
68 past : '%s پیش',
69 s : 'چندین ثانیه',
70 m : 'یک دقیقه',
71 mm : '%d دقیقه',
72 h : 'یک ساعت',
73 hh : '%d ساعت',
74 d : 'یک روز',
75 dd : '%d روز',
76 M : 'یک ماه',
77 MM : '%d ماه',
78 y : 'یک سال',
79 yy : '%d سال'
80 },
81 preparse: function (string) {
82 return string.replace(/[۰-۹]/g, function (match) {
83 return numberMap[match];
84 }).replace(/،/g, ',');
85 },
86 postformat: function (string) {
87 return string.replace(/\d/g, function (match) {
88 return symbolMap[match];
89 }).replace(/,/g, '،');
90 },
91 ordinal : '%dم',
92 week : {
93 dow : 6, // Saturday is the first day of the week.
94 doy : 12 // The week that contains Jan 1st is the first week of the year.
95 }
96 });
97}));
098
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.fi.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.fi.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.fi.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,103 @@
1// moment.js language configuration
2// language : finnish (fi)
3// author : Tarmo Aidantausta : https://github.com/bleadof
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 var numbers_past = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),
15 numbers_future = ['nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',
16 numbers_past[7], numbers_past[8], numbers_past[9]];
17
18 function translate(number, withoutSuffix, key, isFuture) {
19 var result = "";
20 switch (key) {
21 case 's':
22 return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';
23 case 'm':
24 return isFuture ? 'minuutin' : 'minuutti';
25 case 'mm':
26 result = isFuture ? 'minuutin' : 'minuuttia';
27 break;
28 case 'h':
29 return isFuture ? 'tunnin' : 'tunti';
30 case 'hh':
31 result = isFuture ? 'tunnin' : 'tuntia';
32 break;
33 case 'd':
34 return isFuture ? 'päivän' : 'päivä';
35 case 'dd':
36 result = isFuture ? 'päivän' : 'päivää';
37 break;
38 case 'M':
39 return isFuture ? 'kuukauden' : 'kuukausi';
40 case 'MM':
41 result = isFuture ? 'kuukauden' : 'kuukautta';
42 break;
43 case 'y':
44 return isFuture ? 'vuoden' : 'vuosi';
45 case 'yy':
46 result = isFuture ? 'vuoden' : 'vuotta';
47 break;
48 }
49 result = verbal_number(number, isFuture) + " " + result;
50 return result;
51 }
52
53 function verbal_number(number, isFuture) {
54 return number < 10 ? (isFuture ? numbers_future[number] : numbers_past[number]) : number;
55 }
56
57 return moment.lang('fi', {
58 months : "tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),
59 monthsShort : "tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),
60 weekdays : "sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),
61 weekdaysShort : "su_ma_ti_ke_to_pe_la".split("_"),
62 weekdaysMin : "su_ma_ti_ke_to_pe_la".split("_"),
63 longDateFormat : {
64 LT : "HH.mm",
65 L : "DD.MM.YYYY",
66 LL : "Do MMMM[ta] YYYY",
67 LLL : "Do MMMM[ta] YYYY, [klo] LT",
68 LLLL : "dddd, Do MMMM[ta] YYYY, [klo] LT",
69 l : "D.M.YYYY",
70 ll : "Do MMM YYYY",
71 lll : "Do MMM YYYY, [klo] LT",
72 llll : "ddd, Do MMM YYYY, [klo] LT"
73 },
74 calendar : {
75 sameDay : '[tänään] [klo] LT',
76 nextDay : '[huomenna] [klo] LT',
77 nextWeek : 'dddd [klo] LT',
78 lastDay : '[eilen] [klo] LT',
79 lastWeek : '[viime] dddd[na] [klo] LT',
80 sameElse : 'L'
81 },
82 relativeTime : {
83 future : "%s päästä",
84 past : "%s sitten",
85 s : translate,
86 m : translate,
87 mm : translate,
88 h : translate,
89 hh : translate,
90 d : translate,
91 dd : translate,
92 M : translate,
93 MM : translate,
94 y : translate,
95 yy : translate
96 },
97 ordinal : "%d.",
98 week : {
99 dow : 1, // Monday is the first day of the week.
100 doy : 4 // The week that contains Jan 4th is the first week of the year.
101 }
102 });
103}));
0104
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.fr-ca.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.fr-ca.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.fr-ca.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,54 @@
1// moment.js language configuration
2// language : canadian french (fr-ca)
3// author : Jonathan Abourbih : https://github.com/jonbca
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 return moment.lang('fr-ca', {
15 months : "janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),
16 monthsShort : "janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),
17 weekdays : "dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),
18 weekdaysShort : "dim._lun._mar._mer._jeu._ven._sam.".split("_"),
19 weekdaysMin : "Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),
20 longDateFormat : {
21 LT : "HH:mm",
22 L : "YYYY-MM-DD",
23 LL : "D MMMM YYYY",
24 LLL : "D MMMM YYYY LT",
25 LLLL : "dddd D MMMM YYYY LT"
26 },
27 calendar : {
28 sameDay: "[Aujourd'hui à] LT",
29 nextDay: '[Demain à] LT',
30 nextWeek: 'dddd [à] LT',
31 lastDay: '[Hier à] LT',
32 lastWeek: 'dddd [dernier à] LT',
33 sameElse: 'L'
34 },
35 relativeTime : {
36 future : "dans %s",
37 past : "il y a %s",
38 s : "quelques secondes",
39 m : "une minute",
40 mm : "%d minutes",
41 h : "une heure",
42 hh : "%d heures",
43 d : "un jour",
44 dd : "%d jours",
45 M : "un mois",
46 MM : "%d mois",
47 y : "un an",
48 yy : "%d ans"
49 },
50 ordinal : function (number) {
51 return number + (number === 1 ? 'er' : '');
52 }
53 });
54}));
055
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.fr.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.fr.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.fr.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,58 @@
1// moment.js language configuration
2// language : french (fr)
3// author : John Fischer : https://github.com/jfroffice
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 return moment.lang('fr', {
15 months : "janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),
16 monthsShort : "janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),
17 weekdays : "dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),
18 weekdaysShort : "dim._lun._mar._mer._jeu._ven._sam.".split("_"),
19 weekdaysMin : "Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),
20 longDateFormat : {
21 LT : "HH:mm",
22 L : "DD/MM/YYYY",
23 LL : "D MMMM YYYY",
24 LLL : "D MMMM YYYY LT",
25 LLLL : "dddd D MMMM YYYY LT"
26 },
27 calendar : {
28 sameDay: "[Aujourd'hui à] LT",
29 nextDay: '[Demain à] LT',
30 nextWeek: 'dddd [à] LT',
31 lastDay: '[Hier à] LT',
32 lastWeek: 'dddd [dernier à] LT',
33 sameElse: 'L'
34 },
35 relativeTime : {
36 future : "dans %s",
37 past : "il y a %s",
38 s : "quelques secondes",
39 m : "une minute",
40 mm : "%d minutes",
41 h : "une heure",
42 hh : "%d heures",
43 d : "un jour",
44 dd : "%d jours",
45 M : "un mois",
46 MM : "%d mois",
47 y : "un an",
48 yy : "%d ans"
49 },
50 ordinal : function (number) {
51 return number + (number === 1 ? 'er' : '');
52 },
53 week : {
54 dow : 1, // Monday is the first day of the week.
55 doy : 4 // The week that contains Jan 4th is the first week of the year.
56 }
57 });
58}));
059
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.gl.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.gl.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.gl.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,71 @@
1// moment.js language configuration
2// language : galician (gl)
3// author : Juan G. Hurtado : https://github.com/juanghurtado
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 return moment.lang('gl', {
15 months : "Xaneiro_Febreiro_Marzo_Abril_Maio_Xuño_Xullo_Agosto_Setembro_Outubro_Novembro_Decembro".split("_"),
16 monthsShort : "Xan._Feb._Mar._Abr._Mai._Xuñ._Xul._Ago._Set._Out._Nov._Dec.".split("_"),
17 weekdays : "Domingo_Luns_Martes_Mércores_Xoves_Venres_Sábado".split("_"),
18 weekdaysShort : "Dom._Lun._Mar._Mér._Xov._Ven._Sáb.".split("_"),
19 weekdaysMin : "Do_Lu_Ma_Mé_Xo_Ve_Sá".split("_"),
20 longDateFormat : {
21 LT : "H:mm",
22 L : "DD/MM/YYYY",
23 LL : "D MMMM YYYY",
24 LLL : "D MMMM YYYY LT",
25 LLLL : "dddd D MMMM YYYY LT"
26 },
27 calendar : {
28 sameDay : function () {
29 return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
30 },
31 nextDay : function () {
32 return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
33 },
34 nextWeek : function () {
35 return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
36 },
37 lastDay : function () {
38 return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT';
39 },
40 lastWeek : function () {
41 return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
42 },
43 sameElse : 'L'
44 },
45 relativeTime : {
46 future : function (str) {
47 if (str === "uns segundos") {
48 return "nuns segundos";
49 }
50 return "en " + str;
51 },
52 past : "hai %s",
53 s : "uns segundos",
54 m : "un minuto",
55 mm : "%d minutos",
56 h : "unha hora",
57 hh : "%d horas",
58 d : "un día",
59 dd : "%d días",
60 M : "un mes",
61 MM : "%d meses",
62 y : "un ano",
63 yy : "%d anos"
64 },
65 ordinal : '%dº',
66 week : {
67 dow : 1, // Monday is the first day of the week.
68 doy : 7 // The week that contains Jan 1st is the first week of the year.
69 }
70 });
71}));
072
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.he.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.he.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.he.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,77 @@
1// moment.js language configuration
2// language : Hebrew (he)
3// author : Tomer Cohen : https://github.com/tomer
4// author : Moshe Simantov : https://github.com/DevelopmentIL
5// author : Tal Ater : https://github.com/TalAter
6
7(function (factory) {
8 if (typeof define === 'function' && define.amd) {
9 define(['moment'], factory); // AMD
10 } else if (typeof exports === 'object') {
11 module.exports = factory(require('../moment')); // Node
12 } else {
13 factory(window.moment); // Browser global
14 }
15}(function (moment) {
16 return moment.lang('he', {
17 months : "ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),
18 monthsShort : "ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),
19 weekdays : "ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),
20 weekdaysShort : "א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),
21 weekdaysMin : "א_ב_ג_ד_ה_ו_ש".split("_"),
22 longDateFormat : {
23 LT : "HH:mm",
24 L : "DD/MM/YYYY",
25 LL : "D [ב]MMMM YYYY",
26 LLL : "D [ב]MMMM YYYY LT",
27 LLLL : "dddd, D [ב]MMMM YYYY LT",
28 l : "D/M/YYYY",
29 ll : "D MMM YYYY",
30 lll : "D MMM YYYY LT",
31 llll : "ddd, D MMM YYYY LT"
32 },
33 calendar : {
34 sameDay : '[היום ב־]LT',
35 nextDay : '[מחר ב־]LT',
36 nextWeek : 'dddd [בשעה] LT',
37 lastDay : '[אתמול ב־]LT',
38 lastWeek : '[ביום] dddd [האחרון בשעה] LT',
39 sameElse : 'L'
40 },
41 relativeTime : {
42 future : "בעוד %s",
43 past : "לפני %s",
44 s : "מספר שניות",
45 m : "דקה",
46 mm : "%d דקות",
47 h : "שעה",
48 hh : function (number) {
49 if (number === 2) {
50 return "שעתיים";
51 }
52 return number + " שעות";
53 },
54 d : "יום",
55 dd : function (number) {
56 if (number === 2) {
57 return "יומיים";
58 }
59 return number + " ימים";
60 },
61 M : "חודש",
62 MM : function (number) {
63 if (number === 2) {
64 return "חודשיים";
65 }
66 return number + " חודשים";
67 },
68 y : "שנה",
69 yy : function (number) {
70 if (number === 2) {
71 return "שנתיים";
72 }
73 return number + " שנים";
74 }
75 }
76 });
77}));
078
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.hi.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.hi.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.hi.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,105 @@
1// moment.js language configuration
2// language : hindi (hi)
3// author : Mayank Singhal : https://github.com/mayanksinghal
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 var symbolMap = {
15 '1': '१',
16 '2': '२',
17 '3': '३',
18 '4': '४',
19 '5': '५',
20 '6': '६',
21 '7': '७',
22 '8': '८',
23 '9': '९',
24 '0': '०'
25 },
26 numberMap = {
27 '१': '1',
28 '२': '2',
29 '३': '3',
30 '४': '4',
31 '५': '5',
32 '६': '6',
33 '७': '7',
34 '८': '8',
35 '९': '9',
36 '०': '0'
37 };
38
39 return moment.lang('hi', {
40 months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split("_"),
41 monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split("_"),
42 weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split("_"),
43 weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split("_"),
44 weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split("_"),
45 longDateFormat : {
46 LT : "A h:mm बजे",
47 L : "DD/MM/YYYY",
48 LL : "D MMMM YYYY",
49 LLL : "D MMMM YYYY, LT",
50 LLLL : "dddd, D MMMM YYYY, LT"
51 },
52 calendar : {
53 sameDay : '[आज] LT',
54 nextDay : '[कल] LT',
55 nextWeek : 'dddd, LT',
56 lastDay : '[कल] LT',
57 lastWeek : '[पिछले] dddd, LT',
58 sameElse : 'L'
59 },
60 relativeTime : {
61 future : "%s में",
62 past : "%s पहले",
63 s : "कुछ ही क्षण",
64 m : "एक मिनट",
65 mm : "%d मिनट",
66 h : "एक घंटा",
67 hh : "%d घंटे",
68 d : "एक दिन",
69 dd : "%d दिन",
70 M : "एक महीने",
71 MM : "%d महीने",
72 y : "एक वर्ष",
73 yy : "%d वर्ष"
74 },
75 preparse: function (string) {
76 return string.replace(/[१२३४५६७८९०]/g, function (match) {
77 return numberMap[match];
78 });
79 },
80 postformat: function (string) {
81 return string.replace(/\d/g, function (match) {
82 return symbolMap[match];
83 });
84 },
85 // Hindi notation for meridiems are quite fuzzy in practice. While there exists
86 // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
87 meridiem : function (hour, minute, isLower) {
88 if (hour < 4) {
89 return "रात";
90 } else if (hour < 10) {
91 return "सुबह";
92 } else if (hour < 17) {
93 return "दोपहर";
94 } else if (hour < 20) {
95 return "शाम";
96 } else {
97 return "रात";
98 }
99 },
100 week : {
101 dow : 0, // Sunday is the first day of the week.
102 doy : 6 // The week that contains Jan 1st is the first week of the year.
103 }
104 });
105}));
0106
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.hr.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.hr.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.hr.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,140 @@
1// moment.js language configuration
2// language : hrvatski (hr)
3// author : Bojan Marković : https://github.com/bmarkovic
4
5// based on (sl) translation by Robert Sedovšek
6
7(function (factory) {
8 if (typeof define === 'function' && define.amd) {
9 define(['moment'], factory); // AMD
10 } else if (typeof exports === 'object') {
11 module.exports = factory(require('../moment')); // Node
12 } else {
13 factory(window.moment); // Browser global
14 }
15}(function (moment) {
16
17 function translate(number, withoutSuffix, key) {
18 var result = number + " ";
19 switch (key) {
20 case 'm':
21 return withoutSuffix ? 'jedna minuta' : 'jedne minute';
22 case 'mm':
23 if (number === 1) {
24 result += 'minuta';
25 } else if (number === 2 || number === 3 || number === 4) {
26 result += 'minute';
27 } else {
28 result += 'minuta';
29 }
30 return result;
31 case 'h':
32 return withoutSuffix ? 'jedan sat' : 'jednog sata';
33 case 'hh':
34 if (number === 1) {
35 result += 'sat';
36 } else if (number === 2 || number === 3 || number === 4) {
37 result += 'sata';
38 } else {
39 result += 'sati';
40 }
41 return result;
42 case 'dd':
43 if (number === 1) {
44 result += 'dan';
45 } else {
46 result += 'dana';
47 }
48 return result;
49 case 'MM':
50 if (number === 1) {
51 result += 'mjesec';
52 } else if (number === 2 || number === 3 || number === 4) {
53 result += 'mjeseca';
54 } else {
55 result += 'mjeseci';
56 }
57 return result;
58 case 'yy':
59 if (number === 1) {
60 result += 'godina';
61 } else if (number === 2 || number === 3 || number === 4) {
62 result += 'godine';
63 } else {
64 result += 'godina';
65 }
66 return result;
67 }
68 }
69
70 return moment.lang('hr', {
71 months : "sječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_"),
72 monthsShort : "sje._vel._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),
73 weekdays : "nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),
74 weekdaysShort : "ned._pon._uto._sri._čet._pet._sub.".split("_"),
75 weekdaysMin : "ne_po_ut_sr_če_pe_su".split("_"),
76 longDateFormat : {
77 LT : "H:mm",
78 L : "DD. MM. YYYY",
79 LL : "D. MMMM YYYY",
80 LLL : "D. MMMM YYYY LT",
81 LLLL : "dddd, D. MMMM YYYY LT"
82 },
83 calendar : {
84 sameDay : '[danas u] LT',
85 nextDay : '[sutra u] LT',
86
87 nextWeek : function () {
88 switch (this.day()) {
89 case 0:
90 return '[u] [nedjelju] [u] LT';
91 case 3:
92 return '[u] [srijedu] [u] LT';
93 case 6:
94 return '[u] [subotu] [u] LT';
95 case 1:
96 case 2:
97 case 4:
98 case 5:
99 return '[u] dddd [u] LT';
100 }
101 },
102 lastDay : '[jučer u] LT',
103 lastWeek : function () {
104 switch (this.day()) {
105 case 0:
106 case 3:
107 return '[prošlu] dddd [u] LT';
108 case 6:
109 return '[prošle] [subote] [u] LT';
110 case 1:
111 case 2:
112 case 4:
113 case 5:
114 return '[prošli] dddd [u] LT';
115 }
116 },
117 sameElse : 'L'
118 },
119 relativeTime : {
120 future : "za %s",
121 past : "prije %s",
122 s : "par sekundi",
123 m : translate,
124 mm : translate,
125 h : translate,
126 hh : translate,
127 d : "dan",
128 dd : translate,
129 M : "mjesec",
130 MM : translate,
131 y : "godinu",
132 yy : translate
133 },
134 ordinal : '%d.',
135 week : {
136 dow : 1, // Monday is the first day of the week.
137 doy : 7 // The week that contains Jan 1st is the first week of the year.
138 }
139 });
140}));
0141
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.hu.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.hu.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.hu.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,98 @@
1// moment.js language configuration
2// language : hungarian (hu)
3// author : Adam Brunner : https://github.com/adambrunner
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');
15
16 function translate(number, withoutSuffix, key, isFuture) {
17 var num = number,
18 suffix;
19
20 switch (key) {
21 case 's':
22 return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';
23 case 'm':
24 return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');
25 case 'mm':
26 return num + (isFuture || withoutSuffix ? ' perc' : ' perce');
27 case 'h':
28 return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');
29 case 'hh':
30 return num + (isFuture || withoutSuffix ? ' óra' : ' órája');
31 case 'd':
32 return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');
33 case 'dd':
34 return num + (isFuture || withoutSuffix ? ' nap' : ' napja');
35 case 'M':
36 return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
37 case 'MM':
38 return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
39 case 'y':
40 return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');
41 case 'yy':
42 return num + (isFuture || withoutSuffix ? ' év' : ' éve');
43 }
44
45 return '';
46 }
47
48 function week(isFuture) {
49 return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';
50 }
51
52 return moment.lang('hu', {
53 months : "január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),
54 monthsShort : "jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),
55 weekdays : "vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),
56 weekdaysShort : "vas_hét_kedd_sze_csüt_pén_szo".split("_"),
57 weekdaysMin : "v_h_k_sze_cs_p_szo".split("_"),
58 longDateFormat : {
59 LT : "H:mm",
60 L : "YYYY.MM.DD.",
61 LL : "YYYY. MMMM D.",
62 LLL : "YYYY. MMMM D., LT",
63 LLLL : "YYYY. MMMM D., dddd LT"
64 },
65 calendar : {
66 sameDay : '[ma] LT[-kor]',
67 nextDay : '[holnap] LT[-kor]',
68 nextWeek : function () {
69 return week.call(this, true);
70 },
71 lastDay : '[tegnap] LT[-kor]',
72 lastWeek : function () {
73 return week.call(this, false);
74 },
75 sameElse : 'L'
76 },
77 relativeTime : {
78 future : "%s múlva",
79 past : "%s",
80 s : translate,
81 m : translate,
82 mm : translate,
83 h : translate,
84 hh : translate,
85 d : translate,
86 dd : translate,
87 M : translate,
88 MM : translate,
89 y : translate,
90 yy : translate
91 },
92 ordinal : '%d.',
93 week : {
94 dow : 1, // Monday is the first day of the week.
95 doy : 7 // The week that contains Jan 1st is the first week of the year.
96 }
97 });
98}));
099
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.id.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.id.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.id.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,67 @@
1// moment.js language configuration
2// language : Bahasa Indonesia (id)
3// author : Mohammad Satrio Utomo : https://github.com/tyok
4// reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan
5
6(function (factory) {
7 if (typeof define === 'function' && define.amd) {
8 define(['moment'], factory); // AMD
9 } else if (typeof exports === 'object') {
10 module.exports = factory(require('../moment')); // Node
11 } else {
12 factory(window.moment); // Browser global
13 }
14}(function (moment) {
15 return moment.lang('id', {
16 months : "Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),
17 monthsShort : "Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des".split("_"),
18 weekdays : "Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),
19 weekdaysShort : "Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),
20 weekdaysMin : "Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),
21 longDateFormat : {
22 LT : "HH.mm",
23 L : "DD/MM/YYYY",
24 LL : "D MMMM YYYY",
25 LLL : "D MMMM YYYY [pukul] LT",
26 LLLL : "dddd, D MMMM YYYY [pukul] LT"
27 },
28 meridiem : function (hours, minutes, isLower) {
29 if (hours < 11) {
30 return 'pagi';
31 } else if (hours < 15) {
32 return 'siang';
33 } else if (hours < 19) {
34 return 'sore';
35 } else {
36 return 'malam';
37 }
38 },
39 calendar : {
40 sameDay : '[Hari ini pukul] LT',
41 nextDay : '[Besok pukul] LT',
42 nextWeek : 'dddd [pukul] LT',
43 lastDay : '[Kemarin pukul] LT',
44 lastWeek : 'dddd [lalu pukul] LT',
45 sameElse : 'L'
46 },
47 relativeTime : {
48 future : "dalam %s",
49 past : "%s yang lalu",
50 s : "beberapa detik",
51 m : "semenit",
52 mm : "%d menit",
53 h : "sejam",
54 hh : "%d jam",
55 d : "sehari",
56 dd : "%d hari",
57 M : "sebulan",
58 MM : "%d bulan",
59 y : "setahun",
60 yy : "%d tahun"
61 },
62 week : {
63 dow : 1, // Monday is the first day of the week.
64 doy : 7 // The week that contains Jan 1st is the first week of the year.
65 }
66 });
67}));
068
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.is.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.is.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.is.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,124 @@
1// moment.js language configuration
2// language : icelandic (is)
3// author : Hinrik Örn Sigurðsson : https://github.com/hinrik
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 function plural(n) {
15 if (n % 100 === 11) {
16 return true;
17 } else if (n % 10 === 1) {
18 return false;
19 }
20 return true;
21 }
22
23 function translate(number, withoutSuffix, key, isFuture) {
24 var result = number + " ";
25 switch (key) {
26 case 's':
27 return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';
28 case 'm':
29 return withoutSuffix ? 'mínúta' : 'mínútu';
30 case 'mm':
31 if (plural(number)) {
32 return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');
33 } else if (withoutSuffix) {
34 return result + 'mínúta';
35 }
36 return result + 'mínútu';
37 case 'hh':
38 if (plural(number)) {
39 return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');
40 }
41 return result + 'klukkustund';
42 case 'd':
43 if (withoutSuffix) {
44 return 'dagur';
45 }
46 return isFuture ? 'dag' : 'degi';
47 case 'dd':
48 if (plural(number)) {
49 if (withoutSuffix) {
50 return result + 'dagar';
51 }
52 return result + (isFuture ? 'daga' : 'dögum');
53 } else if (withoutSuffix) {
54 return result + 'dagur';
55 }
56 return result + (isFuture ? 'dag' : 'degi');
57 case 'M':
58 if (withoutSuffix) {
59 return 'mánuður';
60 }
61 return isFuture ? 'mánuð' : 'mánuði';
62 case 'MM':
63 if (plural(number)) {
64 if (withoutSuffix) {
65 return result + 'mánuðir';
66 }
67 return result + (isFuture ? 'mánuði' : 'mánuðum');
68 } else if (withoutSuffix) {
69 return result + 'mánuður';
70 }
71 return result + (isFuture ? 'mánuð' : 'mánuði');
72 case 'y':
73 return withoutSuffix || isFuture ? 'ár' : 'ári';
74 case 'yy':
75 if (plural(number)) {
76 return result + (withoutSuffix || isFuture ? 'ár' : 'árum');
77 }
78 return result + (withoutSuffix || isFuture ? 'ár' : 'ári');
79 }
80 }
81
82 return moment.lang('is', {
83 months : "janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),
84 monthsShort : "jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),
85 weekdays : "sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),
86 weekdaysShort : "sun_mán_þri_mið_fim_fös_lau".split("_"),
87 weekdaysMin : "Su_Má_Þr_Mi_Fi_Fö_La".split("_"),
88 longDateFormat : {
89 LT : "H:mm",
90 L : "DD/MM/YYYY",
91 LL : "D. MMMM YYYY",
92 LLL : "D. MMMM YYYY [kl.] LT",
93 LLLL : "dddd, D. MMMM YYYY [kl.] LT"
94 },
95 calendar : {
96 sameDay : '[í dag kl.] LT',
97 nextDay : '[á morgun kl.] LT',
98 nextWeek : 'dddd [kl.] LT',
99 lastDay : '[í gær kl.] LT',
100 lastWeek : '[síðasta] dddd [kl.] LT',
101 sameElse : 'L'
102 },
103 relativeTime : {
104 future : "eftir %s",
105 past : "fyrir %s síðan",
106 s : translate,
107 m : translate,
108 mm : translate,
109 h : "klukkustund",
110 hh : translate,
111 d : translate,
112 dd : translate,
113 M : translate,
114 MM : translate,
115 y : translate,
116 yy : translate
117 },
118 ordinal : '%d.',
119 week : {
120 dow : 1, // Monday is the first day of the week.
121 doy : 4 // The week that contains Jan 4th is the first week of the year.
122 }
123 });
124}));
0125
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.it.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.it.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.it.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,59 @@
1// moment.js language configuration
2// language : italian (it)
3// author : Lorenzo : https://github.com/aliem
4// author: Mattia Larentis: https://github.com/nostalgiaz
5
6(function (factory) {
7 if (typeof define === 'function' && define.amd) {
8 define(['moment'], factory); // AMD
9 } else if (typeof exports === 'object') {
10 module.exports = factory(require('../moment')); // Node
11 } else {
12 factory(window.moment); // Browser global
13 }
14}(function (moment) {
15 return moment.lang('it', {
16 months : "Gennaio_Febbraio_Marzo_Aprile_Maggio_Giugno_Luglio_Agosto_Settembre_Ottobre_Novembre_Dicembre".split("_"),
17 monthsShort : "Gen_Feb_Mar_Apr_Mag_Giu_Lug_Ago_Set_Ott_Nov_Dic".split("_"),
18 weekdays : "Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato".split("_"),
19 weekdaysShort : "Dom_Lun_Mar_Mer_Gio_Ven_Sab".split("_"),
20 weekdaysMin : "D_L_Ma_Me_G_V_S".split("_"),
21 longDateFormat : {
22 LT : "HH:mm",
23 L : "DD/MM/YYYY",
24 LL : "D MMMM YYYY",
25 LLL : "D MMMM YYYY LT",
26 LLLL : "dddd, D MMMM YYYY LT"
27 },
28 calendar : {
29 sameDay: '[Oggi alle] LT',
30 nextDay: '[Domani alle] LT',
31 nextWeek: 'dddd [alle] LT',
32 lastDay: '[Ieri alle] LT',
33 lastWeek: '[lo scorso] dddd [alle] LT',
34 sameElse: 'L'
35 },
36 relativeTime : {
37 future : function (s) {
38 return ((/^[0-9].+$/).test(s) ? "tra" : "in") + " " + s;
39 },
40 past : "%s fa",
41 s : "secondi",
42 m : "un minuto",
43 mm : "%d minuti",
44 h : "un'ora",
45 hh : "%d ore",
46 d : "un giorno",
47 dd : "%d giorni",
48 M : "un mese",
49 MM : "%d mesi",
50 y : "un anno",
51 yy : "%d anni"
52 },
53 ordinal: '%dº',
54 week : {
55 dow : 1, // Monday is the first day of the week.
56 doy : 4 // The week that contains Jan 4th is the first week of the year.
57 }
58 });
59}));
060
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ja.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ja.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ja.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,58 @@
1// moment.js language configuration
2// language : japanese (ja)
3// author : LI Long : https://github.com/baryon
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 return moment.lang('ja', {
15 months : "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),
16 monthsShort : "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),
17 weekdays : "日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),
18 weekdaysShort : "日_月_火_水_木_金_土".split("_"),
19 weekdaysMin : "日_月_火_水_木_金_土".split("_"),
20 longDateFormat : {
21 LT : "Ah時m分",
22 L : "YYYY/MM/DD",
23 LL : "YYYY年M月D日",
24 LLL : "YYYY年M月D日LT",
25 LLLL : "YYYY年M月D日LT dddd"
26 },
27 meridiem : function (hour, minute, isLower) {
28 if (hour < 12) {
29 return "午前";
30 } else {
31 return "午後";
32 }
33 },
34 calendar : {
35 sameDay : '[今日] LT',
36 nextDay : '[明日] LT',
37 nextWeek : '[来週]dddd LT',
38 lastDay : '[昨日] LT',
39 lastWeek : '[前週]dddd LT',
40 sameElse : 'L'
41 },
42 relativeTime : {
43 future : "%s後",
44 past : "%s前",
45 s : "数秒",
46 m : "1分",
47 mm : "%d分",
48 h : "1時間",
49 hh : "%d時間",
50 d : "1日",
51 dd : "%d日",
52 M : "1ヶ月",
53 MM : "%dヶ月",
54 y : "1年",
55 yy : "%d年"
56 }
57 });
58}));
059
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ka.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ka.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ka.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,108 @@
1// moment.js language configuration
2// language : Georgian (ka)
3// author : Irakli Janiashvili : https://github.com/irakli-janiashvili
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14
15 function monthsCaseReplace(m, format) {
16 var months = {
17 'nominative': 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),
18 'accusative': 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_')
19 },
20
21 nounCase = (/D[oD] *MMMM?/).test(format) ?
22 'accusative' :
23 'nominative';
24
25 return months[nounCase][m.month()];
26 }
27
28 function weekdaysCaseReplace(m, format) {
29 var weekdays = {
30 'nominative': 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),
31 'accusative': 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_')
32 },
33
34 nounCase = (/(წინა|შემდეგ)/).test(format) ?
35 'accusative' :
36 'nominative';
37
38 return weekdays[nounCase][m.day()];
39 }
40
41 return moment.lang('ka', {
42 months : monthsCaseReplace,
43 monthsShort : "იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),
44 weekdays : weekdaysCaseReplace,
45 weekdaysShort : "კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),
46 weekdaysMin : "კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),
47 longDateFormat : {
48 LT : "h:mm A",
49 L : "DD/MM/YYYY",
50 LL : "D MMMM YYYY",
51 LLL : "D MMMM YYYY LT",
52 LLLL : "dddd, D MMMM YYYY LT"
53 },
54 calendar : {
55 sameDay : '[დღეს] LT[-ზე]',
56 nextDay : '[ხვალ] LT[-ზე]',
57 lastDay : '[გუშინ] LT[-ზე]',
58 nextWeek : '[შემდეგ] dddd LT[-ზე]',
59 lastWeek : '[წინა] dddd LT-ზე',
60 sameElse : 'L'
61 },
62 relativeTime : {
63 future : function (s) {
64 return (/(წამი|წუთი|საათი|წელი)/).test(s) ?
65 s.replace(/ი$/, "ში") :
66 s + "ში";
67 },
68 past : function (s) {
69 if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) {
70 return s.replace(/(ი|ე)$/, "ის წინ");
71 }
72 if ((/წელი/).test(s)) {
73 return s.replace(/წელი$/, "წლის წინ");
74 }
75 },
76 s : "რამდენიმე წამი",
77 m : "წუთი",
78 mm : "%d წუთი",
79 h : "საათი",
80 hh : "%d საათი",
81 d : "დღე",
82 dd : "%d დღე",
83 M : "თვე",
84 MM : "%d თვე",
85 y : "წელი",
86 yy : "%d წელი"
87 },
88 ordinal : function (number) {
89 if (number === 0) {
90 return number;
91 }
92
93 if (number === 1) {
94 return number + "-ლი";
95 }
96
97 if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) {
98 return "მე-" + number;
99 }
100
101 return number + "-ე";
102 },
103 week : {
104 dow : 1,
105 doy : 7
106 }
107 });
108}));
0109
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ko.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ko.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ko.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,56 @@
1// moment.js language configuration
2// language : korean (ko)
3// author : Kyungwook, Park : https://github.com/kyungw00k
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 return moment.lang('ko', {
15 months : "1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),
16 monthsShort : "1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),
17 weekdays : "일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),
18 weekdaysShort : "일_월_화_수_목_금_토".split("_"),
19 weekdaysMin : "일_월_화_수_목_금_토".split("_"),
20 longDateFormat : {
21 LT : "A h시 mm분",
22 L : "YYYY.MM.DD",
23 LL : "YYYY년 MMMM D일",
24 LLL : "YYYY년 MMMM D일 LT",
25 LLLL : "YYYY년 MMMM D일 dddd LT"
26 },
27 meridiem : function (hour, minute, isUpper) {
28 return hour < 12 ? '오전' : '오후';
29 },
30 calendar : {
31 sameDay : '오늘 LT',
32 nextDay : '내일 LT',
33 nextWeek : 'dddd LT',
34 lastDay : '어제 LT',
35 lastWeek : '지난주 dddd LT',
36 sameElse : 'L'
37 },
38 relativeTime : {
39 future : "%s 후",
40 past : "%s 전",
41 s : "몇초",
42 ss : "%d초",
43 m : "일분",
44 mm : "%d분",
45 h : "한시간",
46 hh : "%d시간",
47 d : "하루",
48 dd : "%d일",
49 M : "한달",
50 MM : "%d달",
51 y : "일년",
52 yy : "%d년"
53 },
54 ordinal : '%d일'
55 });
56}));
057
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.lt.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.lt.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.lt.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,118 @@
1// moment.js language configuration
2// language : Lithuanian (lt)
3// author : Mindaugas Mozūras : https://github.com/mmozuras
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 var units = {
15 "m" : "minutė_minutės_minutę",
16 "mm": "minutės_minučių_minutes",
17 "h" : "valanda_valandos_valandą",
18 "hh": "valandos_valandų_valandas",
19 "d" : "diena_dienos_dieną",
20 "dd": "dienos_dienų_dienas",
21 "M" : "mėnuo_mėnesio_mėnesį",
22 "MM": "mėnesiai_mėnesių_mėnesius",
23 "y" : "metai_metų_metus",
24 "yy": "metai_metų_metus"
25 },
26 weekDays = "pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis_sekmadienis".split("_");
27
28 function translateSeconds(number, withoutSuffix, key, isFuture) {
29 if (withoutSuffix) {
30 return "kelios sekundės";
31 } else {
32 return isFuture ? "kelių sekundžių" : "kelias sekundes";
33 }
34 }
35
36 function translateSingular(number, withoutSuffix, key, isFuture) {
37 return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);
38 }
39
40 function special(number) {
41 return number % 10 === 0 || (number > 10 && number < 20);
42 }
43
44 function forms(key) {
45 return units[key].split("_");
46 }
47
48 function translate(number, withoutSuffix, key, isFuture) {
49 var result = number + " ";
50 if (number === 1) {
51 return result + translateSingular(number, withoutSuffix, key[0], isFuture);
52 } else if (withoutSuffix) {
53 return result + (special(number) ? forms(key)[1] : forms(key)[0]);
54 } else {
55 if (isFuture) {
56 return result + forms(key)[1];
57 } else {
58 return result + (special(number) ? forms(key)[1] : forms(key)[2]);
59 }
60 }
61 }
62
63 function relativeWeekDay(moment, format) {
64 var nominative = format.indexOf('dddd LT') === -1,
65 weekDay = weekDays[moment.weekday()];
66
67 return nominative ? weekDay : weekDay.substring(0, weekDay.length - 2) + "į";
68 }
69
70 return moment.lang("lt", {
71 months : "sausio_vasario_kovo_balandžio_gegužės_biržėlio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),
72 monthsShort : "sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),
73 weekdays : relativeWeekDay,
74 weekdaysShort : "Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),
75 weekdaysMin : "S_P_A_T_K_Pn_Š".split("_"),
76 longDateFormat : {
77 LT : "HH:mm",
78 L : "YYYY-MM-DD",
79 LL : "YYYY [m.] MMMM D [d.]",
80 LLL : "YYYY [m.] MMMM D [d.], LT [val.]",
81 LLLL : "YYYY [m.] MMMM D [d.], dddd, LT [val.]",
82 l : "YYYY-MM-DD",
83 ll : "YYYY [m.] MMMM D [d.]",
84 lll : "YYYY [m.] MMMM D [d.], LT [val.]",
85 llll : "YYYY [m.] MMMM D [d.], ddd, LT [val.]"
86 },
87 calendar : {
88 sameDay : "[Šiandien] LT",
89 nextDay : "[Rytoj] LT",
90 nextWeek : "dddd LT",
91 lastDay : "[Vakar] LT",
92 lastWeek : "[Praėjusį] dddd LT",
93 sameElse : "L"
94 },
95 relativeTime : {
96 future : "po %s",
97 past : "prieš %s",
98 s : translateSeconds,
99 m : translateSingular,
100 mm : translate,
101 h : translateSingular,
102 hh : translate,
103 d : translateSingular,
104 dd : translate,
105 M : translateSingular,
106 MM : translate,
107 y : translateSingular,
108 yy : translate
109 },
110 ordinal : function (number) {
111 return number + '-oji';
112 },
113 week : {
114 dow : 1, // Monday is the first day of the week.
115 doy : 4 // The week that contains Jan 4th is the first week of the year.
116 }
117 });
118}));
0119
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.lv.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.lv.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.lv.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,77 @@
1// moment.js language configuration
2// language : latvian (lv)
3// author : Kristaps Karlsons : https://github.com/skakri
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 var units = {
15 'mm': 'minūti_minūtes_minūte_minūtes',
16 'hh': 'stundu_stundas_stunda_stundas',
17 'dd': 'dienu_dienas_diena_dienas',
18 'MM': 'mēnesi_mēnešus_mēnesis_mēneši',
19 'yy': 'gadu_gadus_gads_gadi'
20 };
21
22 function format(word, number, withoutSuffix) {
23 var forms = word.split('_');
24 if (withoutSuffix) {
25 return number % 10 === 1 && number !== 11 ? forms[2] : forms[3];
26 } else {
27 return number % 10 === 1 && number !== 11 ? forms[0] : forms[1];
28 }
29 }
30
31 function relativeTimeWithPlural(number, withoutSuffix, key) {
32 return number + ' ' + format(units[key], number, withoutSuffix);
33 }
34
35 return moment.lang('lv', {
36 months : "janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),
37 monthsShort : "jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),
38 weekdays : "svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),
39 weekdaysShort : "Sv_P_O_T_C_Pk_S".split("_"),
40 weekdaysMin : "Sv_P_O_T_C_Pk_S".split("_"),
41 longDateFormat : {
42 LT : "HH:mm",
43 L : "DD.MM.YYYY",
44 LL : "YYYY. [gada] D. MMMM",
45 LLL : "YYYY. [gada] D. MMMM, LT",
46 LLLL : "YYYY. [gada] D. MMMM, dddd, LT"
47 },
48 calendar : {
49 sameDay : '[Šodien pulksten] LT',
50 nextDay : '[Rīt pulksten] LT',
51 nextWeek : 'dddd [pulksten] LT',
52 lastDay : '[Vakar pulksten] LT',
53 lastWeek : '[Pagājušā] dddd [pulksten] LT',
54 sameElse : 'L'
55 },
56 relativeTime : {
57 future : "%s vēlāk",
58 past : "%s agrāk",
59 s : "dažas sekundes",
60 m : "minūti",
61 mm : relativeTimeWithPlural,
62 h : "stundu",
63 hh : relativeTimeWithPlural,
64 d : "dienu",
65 dd : relativeTimeWithPlural,
66 M : "mēnesi",
67 MM : relativeTimeWithPlural,
68 y : "gadu",
69 yy : relativeTimeWithPlural
70 },
71 ordinal : '%d.',
72 week : {
73 dow : 1, // Monday is the first day of the week.
74 doy : 4 // The week that contains Jan 4th is the first week of the year.
75 }
76 });
77}));
078
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ml.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ml.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ml.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,64 @@
1// moment.js language configuration
2// language : malayalam (ml)
3// author : Floyd Pink : https://github.com/floydpink
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 return moment.lang('ml', {
15 months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split("_"),
16 monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split("_"),
17 weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split("_"),
18 weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split("_"),
19 weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split("_"),
20 longDateFormat : {
21 LT : "A h:mm -നു",
22 L : "DD/MM/YYYY",
23 LL : "D MMMM YYYY",
24 LLL : "D MMMM YYYY, LT",
25 LLLL : "dddd, D MMMM YYYY, LT"
26 },
27 calendar : {
28 sameDay : '[ഇന്ന്] LT',
29 nextDay : '[നാളെ] LT',
30 nextWeek : 'dddd, LT',
31 lastDay : '[ഇന്നലെ] LT',
32 lastWeek : '[കഴിഞ്ഞ] dddd, LT',
33 sameElse : 'L'
34 },
35 relativeTime : {
36 future : "%s കഴിഞ്ഞ്",
37 past : "%s മുൻപ്",
38 s : "അൽപ നിമിഷങ്ങൾ",
39 m : "ഒരു മിനിറ്റ്",
40 mm : "%d മിനിറ്റ്",
41 h : "ഒരു മണിക്കൂർ",
42 hh : "%d മണിക്കൂർ",
43 d : "ഒരു ദിവസം",
44 dd : "%d ദിവസം",
45 M : "ഒരു മാസം",
46 MM : "%d മാസം",
47 y : "ഒരു വർഷം",
48 yy : "%d വർഷം"
49 },
50 meridiem : function (hour, minute, isLower) {
51 if (hour < 4) {
52 return "രാത്രി";
53 } else if (hour < 12) {
54 return "രാവിലെ";
55 } else if (hour < 17) {
56 return "ഉച്ച കഴിഞ്ഞ്";
57 } else if (hour < 20) {
58 return "വൈകുന്നേരം";
59 } else {
60 return "രാത്രി";
61 }
62 }
63 });
64}));
065
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.mr.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.mr.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.mr.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,104 @@
1// moment.js language configuration
2// language : Marathi (mr)
3// author : Harshad Kale : https://github.com/kalehv
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 var symbolMap = {
15 '1': '१',
16 '2': '२',
17 '3': '३',
18 '4': '४',
19 '5': '५',
20 '6': '६',
21 '7': '७',
22 '8': '८',
23 '9': '९',
24 '0': '०'
25 },
26 numberMap = {
27 '१': '1',
28 '२': '2',
29 '३': '3',
30 '४': '4',
31 '५': '5',
32 '६': '6',
33 '७': '7',
34 '८': '8',
35 '९': '9',
36 '०': '0'
37 };
38
39 return moment.lang('mr', {
40 months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split("_"),
41 monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split("_"),
42 weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split("_"),
43 weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split("_"),
44 weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split("_"),
45 longDateFormat : {
46 LT : "A h:mm वाजता",
47 L : "DD/MM/YYYY",
48 LL : "D MMMM YYYY",
49 LLL : "D MMMM YYYY, LT",
50 LLLL : "dddd, D MMMM YYYY, LT"
51 },
52 calendar : {
53 sameDay : '[आज] LT',
54 nextDay : '[उद्या] LT',
55 nextWeek : 'dddd, LT',
56 lastDay : '[काल] LT',
57 lastWeek: '[मागील] dddd, LT',
58 sameElse : 'L'
59 },
60 relativeTime : {
61 future : "%s नंतर",
62 past : "%s पूर्वी",
63 s : "सेकंद",
64 m: "एक मिनिट",
65 mm: "%d मिनिटे",
66 h : "एक तास",
67 hh : "%d तास",
68 d : "एक दिवस",
69 dd : "%d दिवस",
70 M : "एक महिना",
71 MM : "%d महिने",
72 y : "एक वर्ष",
73 yy : "%d वर्षे"
74 },
75 preparse: function (string) {
76 return string.replace(/[१२३४५६७८९०]/g, function (match) {
77 return numberMap[match];
78 });
79 },
80 postformat: function (string) {
81 return string.replace(/\d/g, function (match) {
82 return symbolMap[match];
83 });
84 },
85 meridiem: function (hour, minute, isLower)
86 {
87 if (hour < 4) {
88 return "रात्री";
89 } else if (hour < 10) {
90 return "सकाळी";
91 } else if (hour < 17) {
92 return "दुपारी";
93 } else if (hour < 20) {
94 return "सायंकाळी";
95 } else {
96 return "रात्री";
97 }
98 },
99 week : {
100 dow : 0, // Sunday is the first day of the week.
101 doy : 6 // The week that contains Jan 1st is the first week of the year.
102 }
103 });
104}));
0105
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ms-my.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ms-my.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ms-my.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,66 @@
1// moment.js language configuration
2// language : Bahasa Malaysia (ms-MY)
3// author : Weldan Jamili : https://github.com/weldan
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 return moment.lang('ms-my', {
15 months : "Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),
16 monthsShort : "Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),
17 weekdays : "Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),
18 weekdaysShort : "Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),
19 weekdaysMin : "Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),
20 longDateFormat : {
21 LT : "HH.mm",
22 L : "DD/MM/YYYY",
23 LL : "D MMMM YYYY",
24 LLL : "D MMMM YYYY [pukul] LT",
25 LLLL : "dddd, D MMMM YYYY [pukul] LT"
26 },
27 meridiem : function (hours, minutes, isLower) {
28 if (hours < 11) {
29 return 'pagi';
30 } else if (hours < 15) {
31 return 'tengahari';
32 } else if (hours < 19) {
33 return 'petang';
34 } else {
35 return 'malam';
36 }
37 },
38 calendar : {
39 sameDay : '[Hari ini pukul] LT',
40 nextDay : '[Esok pukul] LT',
41 nextWeek : 'dddd [pukul] LT',
42 lastDay : '[Kelmarin pukul] LT',
43 lastWeek : 'dddd [lepas pukul] LT',
44 sameElse : 'L'
45 },
46 relativeTime : {
47 future : "dalam %s",
48 past : "%s yang lepas",
49 s : "beberapa saat",
50 m : "seminit",
51 mm : "%d minit",
52 h : "sejam",
53 hh : "%d jam",
54 d : "sehari",
55 dd : "%d hari",
56 M : "sebulan",
57 MM : "%d bulan",
58 y : "setahun",
59 yy : "%d tahun"
60 },
61 week : {
62 dow : 1, // Monday is the first day of the week.
63 doy : 7 // The week that contains Jan 1st is the first week of the year.
64 }
65 });
66}));
067
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.nb.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.nb.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.nb.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,57 @@
1// moment.js language configuration
2// language : norwegian bokmål (nb)
3// authors : Espen Hovlandsdal : https://github.com/rexxars
4// Sigurd Gartmann : https://github.com/sigurdga
5
6(function (factory) {
7 if (typeof define === 'function' && define.amd) {
8 define(['moment'], factory); // AMD
9 } else if (typeof exports === 'object') {
10 module.exports = factory(require('../moment')); // Node
11 } else {
12 factory(window.moment); // Browser global
13 }
14}(function (moment) {
15 return moment.lang('nb', {
16 months : "januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),
17 monthsShort : "jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),
18 weekdays : "søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),
19 weekdaysShort : "sø._ma._ti._on._to._fr._lø.".split("_"),
20 weekdaysMin : "sø_ma_ti_on_to_fr_lø".split("_"),
21 longDateFormat : {
22 LT : "H.mm",
23 L : "DD.MM.YYYY",
24 LL : "D. MMMM YYYY",
25 LLL : "D. MMMM YYYY [kl.] LT",
26 LLLL : "dddd D. MMMM YYYY [kl.] LT"
27 },
28 calendar : {
29 sameDay: '[i dag kl.] LT',
30 nextDay: '[i morgen kl.] LT',
31 nextWeek: 'dddd [kl.] LT',
32 lastDay: '[i går kl.] LT',
33 lastWeek: '[forrige] dddd [kl.] LT',
34 sameElse: 'L'
35 },
36 relativeTime : {
37 future : "om %s",
38 past : "for %s siden",
39 s : "noen sekunder",
40 m : "ett minutt",
41 mm : "%d minutter",
42 h : "en time",
43 hh : "%d timer",
44 d : "en dag",
45 dd : "%d dager",
46 M : "en måned",
47 MM : "%d måneder",
48 y : "ett år",
49 yy : "%d år"
50 },
51 ordinal : '%d.',
52 week : {
53 dow : 1, // Monday is the first day of the week.
54 doy : 4 // The week that contains Jan 4th is the first week of the year.
55 }
56 });
57}));
058
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ne.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ne.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.ne.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,105 @@
1// moment.js language configuration
2// language : nepali/nepalese
3// author : suvash : https://github.com/suvash
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 var symbolMap = {
15 '1': '१',
16 '2': '२',
17 '3': '३',
18 '4': '४',
19 '5': '५',
20 '6': '६',
21 '7': '७',
22 '8': '८',
23 '9': '९',
24 '0': '०'
25 },
26 numberMap = {
27 '१': '1',
28 '२': '2',
29 '३': '3',
30 '४': '4',
31 '५': '5',
32 '६': '6',
33 '७': '7',
34 '८': '8',
35 '९': '9',
36 '०': '0'
37 };
38
39 return moment.lang('ne', {
40 months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split("_"),
41 monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split("_"),
42 weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split("_"),
43 weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split("_"),
44 weekdaysMin : 'आइ._सो._मङ्_बु._बि._शु._श.'.split("_"),
45 longDateFormat : {
46 LT : "Aको h:mm बजे",
47 L : "DD/MM/YYYY",
48 LL : "D MMMM YYYY",
49 LLL : "D MMMM YYYY, LT",
50 LLLL : "dddd, D MMMM YYYY, LT"
51 },
52 preparse: function (string) {
53 return string.replace(/[१२३४५६७८९०]/g, function (match) {
54 return numberMap[match];
55 });
56 },
57 postformat: function (string) {
58 return string.replace(/\d/g, function (match) {
59 return symbolMap[match];
60 });
61 },
62 meridiem : function (hour, minute, isLower) {
63 if (hour < 3) {
64 return "राती";
65 } else if (hour < 10) {
66 return "बिहान";
67 } else if (hour < 15) {
68 return "दिउँसो";
69 } else if (hour < 18) {
70 return "बेलुका";
71 } else if (hour < 20) {
72 return "साँझ";
73 } else {
74 return "राती";
75 }
76 },
77 calendar : {
78 sameDay : '[आज] LT',
79 nextDay : '[भोली] LT',
80 nextWeek : '[आउँदो] dddd[,] LT',
81 lastDay : '[हिजो] LT',
82 lastWeek : '[गएको] dddd[,] LT',
83 sameElse : 'L'
84 },
85 relativeTime : {
86 future : "%sमा",
87 past : "%s अगाडी",
88 s : "केही समय",
89 m : "एक मिनेट",
90 mm : "%d मिनेट",
91 h : "एक घण्टा",
92 hh : "%d घण्टा",
93 d : "एक दिन",
94 dd : "%d दिन",
95 M : "एक महिना",
96 MM : "%d महिना",
97 y : "एक बर्ष",
98 yy : "%d बर्ष"
99 },
100 week : {
101 dow : 1, // Monday is the first day of the week.
102 doy : 7 // The week that contains Jan 1st is the first week of the year.
103 }
104 });
105}));
0106
=== added file 'addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.nl.js'
--- addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.nl.js 1970-01-01 00:00:00 +0000
+++ addons/web/static/lib/bootstrap-datetimepicker/src/js/locales/bootstrap-datetimepicker.nl.js 2014-02-14 15:04:13 +0000
@@ -0,0 +1,67 @@
1// moment.js language configuration
2// language : dutch (nl)
3// author : Joris Röling : https://github.com/jjupiter
4
5(function (factory) {
6 if (typeof define === 'function' && define.amd) {
7 define(['moment'], factory); // AMD
8 } else if (typeof exports === 'object') {
9 module.exports = factory(require('../moment')); // Node
10 } else {
11 factory(window.moment); // Browser global
12 }
13}(function (moment) {
14 var monthsShortWithDots = "jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),
15 monthsShortWithoutDots = "jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_");
16
17 return moment.lang('nl', {
18 months : "januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),
19 monthsShort : function (m, format) {
20 if (/-MMM-/.test(format)) {
21 return monthsShortWithoutDots[m.month()];
22 } else {
23 return monthsShortWithDots[m.month()];
24 }
25 },
26 weekdays : "zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),
27 weekdaysShort : "zo._ma._di._wo._do._vr._za.".split("_"),
28 weekdaysMin : "Zo_Ma_Di_Wo_Do_Vr_Za".split("_"),
29 longDateFormat : {
30 LT : "HH:mm",
31 L : "DD-MM-YYYY",
The diff has been truncated for viewing.