| @@ 1816-1870 (lines=55) @@ | ||
| 1813 | }; |
|
| 1814 | }]) |
|
| 1815 | ||
| 1816 | .controller('UibYearpickerController', ['$scope', '$element', 'dateFilter', function(scope, $element, dateFilter) { |
|
| 1817 | var columns, range; |
|
| 1818 | this.element = $element; |
|
| 1819 | ||
| 1820 | function getStartingYear(year) { |
|
| 1821 | return parseInt((year - 1) / range, 10) * range + 1; |
|
| 1822 | } |
|
| 1823 | ||
| 1824 | this.yearpickerInit = function() { |
|
| 1825 | columns = this.yearColumns; |
|
| 1826 | range = this.yearRows * columns; |
|
| 1827 | this.step = { years: range }; |
|
| 1828 | }; |
|
| 1829 | ||
| 1830 | this._refreshView = function() { |
|
| 1831 | var years = new Array(range), date; |
|
| 1832 | ||
| 1833 | for (var i = 0, start = getStartingYear(this.activeDate.getFullYear()); i < range; i++) { |
|
| 1834 | date = new Date(this.activeDate); |
|
| 1835 | date.setFullYear(start + i, 0, 1); |
|
| 1836 | years[i] = angular.extend(this.createDateObject(date, this.formatYear), { |
|
| 1837 | uid: scope.uniqueId + '-' + i |
|
| 1838 | }); |
|
| 1839 | } |
|
| 1840 | ||
| 1841 | scope.title = [years[0].label, years[range - 1].label].join(' - '); |
|
| 1842 | scope.rows = this.split(years, columns); |
|
| 1843 | scope.columns = columns; |
|
| 1844 | }; |
|
| 1845 | ||
| 1846 | this.compare = function(date1, date2) { |
|
| 1847 | return date1.getFullYear() - date2.getFullYear(); |
|
| 1848 | }; |
|
| 1849 | ||
| 1850 | this.handleKeyDown = function(key, evt) { |
|
| 1851 | var date = this.activeDate.getFullYear(); |
|
| 1852 | ||
| 1853 | if (key === 'left') { |
|
| 1854 | date = date - 1; |
|
| 1855 | } else if (key === 'up') { |
|
| 1856 | date = date - columns; |
|
| 1857 | } else if (key === 'right') { |
|
| 1858 | date = date + 1; |
|
| 1859 | } else if (key === 'down') { |
|
| 1860 | date = date + columns; |
|
| 1861 | } else if (key === 'pageup' || key === 'pagedown') { |
|
| 1862 | date += (key === 'pageup' ? - 1 : 1) * range; |
|
| 1863 | } else if (key === 'home') { |
|
| 1864 | date = getStartingYear(this.activeDate.getFullYear()); |
|
| 1865 | } else if (key === 'end') { |
|
| 1866 | date = getStartingYear(this.activeDate.getFullYear()) + range - 1; |
|
| 1867 | } |
|
| 1868 | this.activeDate.setFullYear(date); |
|
| 1869 | }; |
|
| 1870 | }]) |
|
| 1871 | ||
| 1872 | .directive('uibDatepicker', function() { |
|
| 1873 | return { |
|
| @@ 1815-1869 (lines=55) @@ | ||
| 1812 | }; |
|
| 1813 | }]) |
|
| 1814 | ||
| 1815 | .controller('UibYearpickerController', ['$scope', '$element', 'dateFilter', function(scope, $element, dateFilter) { |
|
| 1816 | var columns, range; |
|
| 1817 | this.element = $element; |
|
| 1818 | ||
| 1819 | function getStartingYear(year) { |
|
| 1820 | return parseInt((year - 1) / range, 10) * range + 1; |
|
| 1821 | } |
|
| 1822 | ||
| 1823 | this.yearpickerInit = function() { |
|
| 1824 | columns = this.yearColumns; |
|
| 1825 | range = this.yearRows * columns; |
|
| 1826 | this.step = { years: range }; |
|
| 1827 | }; |
|
| 1828 | ||
| 1829 | this._refreshView = function() { |
|
| 1830 | var years = new Array(range), date; |
|
| 1831 | ||
| 1832 | for (var i = 0, start = getStartingYear(this.activeDate.getFullYear()); i < range; i++) { |
|
| 1833 | date = new Date(this.activeDate); |
|
| 1834 | date.setFullYear(start + i, 0, 1); |
|
| 1835 | years[i] = angular.extend(this.createDateObject(date, this.formatYear), { |
|
| 1836 | uid: scope.uniqueId + '-' + i |
|
| 1837 | }); |
|
| 1838 | } |
|
| 1839 | ||
| 1840 | scope.title = [years[0].label, years[range - 1].label].join(' - '); |
|
| 1841 | scope.rows = this.split(years, columns); |
|
| 1842 | scope.columns = columns; |
|
| 1843 | }; |
|
| 1844 | ||
| 1845 | this.compare = function(date1, date2) { |
|
| 1846 | return date1.getFullYear() - date2.getFullYear(); |
|
| 1847 | }; |
|
| 1848 | ||
| 1849 | this.handleKeyDown = function(key, evt) { |
|
| 1850 | var date = this.activeDate.getFullYear(); |
|
| 1851 | ||
| 1852 | if (key === 'left') { |
|
| 1853 | date = date - 1; |
|
| 1854 | } else if (key === 'up') { |
|
| 1855 | date = date - columns; |
|
| 1856 | } else if (key === 'right') { |
|
| 1857 | date = date + 1; |
|
| 1858 | } else if (key === 'down') { |
|
| 1859 | date = date + columns; |
|
| 1860 | } else if (key === 'pageup' || key === 'pagedown') { |
|
| 1861 | date += (key === 'pageup' ? - 1 : 1) * range; |
|
| 1862 | } else if (key === 'home') { |
|
| 1863 | date = getStartingYear(this.activeDate.getFullYear()); |
|
| 1864 | } else if (key === 'end') { |
|
| 1865 | date = getStartingYear(this.activeDate.getFullYear()) + range - 1; |
|
| 1866 | } |
|
| 1867 | this.activeDate.setFullYear(date); |
|
| 1868 | }; |
|
| 1869 | }]) |
|
| 1870 | ||
| 1871 | .directive('uibDatepicker', function() { |
|
| 1872 | return { |
|