@@ 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 { |