summaryrefslogtreecommitdiff
path: root/frontend/beta/js/Clipperz/PM/Date.js
Unidiff
Diffstat (limited to 'frontend/beta/js/Clipperz/PM/Date.js') (more/less context) (ignore whitespace changes)
-rw-r--r--frontend/beta/js/Clipperz/PM/Date.js22
1 files changed, 10 insertions, 12 deletions
diff --git a/frontend/beta/js/Clipperz/PM/Date.js b/frontend/beta/js/Clipperz/PM/Date.js
index 13116e9..36c10c8 100644
--- a/frontend/beta/js/Clipperz/PM/Date.js
+++ b/frontend/beta/js/Clipperz/PM/Date.js
@@ -1,190 +1,188 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 25if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
28if (typeof(Clipperz.PM.Date) == 'undefined') { Clipperz.PM.Date = {}; } 26if (typeof(Clipperz.PM.Date) == 'undefined') { Clipperz.PM.Date = {}; }
29 27
30Clipperz.PM.Date.VERSION = "0.1"; 28Clipperz.PM.Date.VERSION = "0.1";
31Clipperz.PM.Date.NAME = "Clipperz.PM.Date"; 29Clipperz.PM.Date.NAME = "Clipperz.PM.Date";
32 30
33MochiKit.Base.update(Clipperz.PM.Date, { 31MochiKit.Base.update(Clipperz.PM.Date, {
34 32
35 '__repr__': function () { 33 '__repr__': function () {
36 return "[" + this.NAME + " " + this.VERSION + "]"; 34 return "[" + this.NAME + " " + this.VERSION + "]";
37 }, 35 },
38 36
39 //------------------------------------------------------------------------- 37 //-------------------------------------------------------------------------
40 38
41 'toString': function () { 39 'toString': function () {
42 return this.__repr__(); 40 return this.__repr__();
43 }, 41 },
44 42
45 //------------------------------------------------------------------------- 43 //-------------------------------------------------------------------------
46 44
47 'locale': function() { 45 'locale': function() {
48 return { 46 return {
49 'amDesignation':Clipperz.PM.Strings['calendarStrings']['amDesignation'], 47 'amDesignation':Clipperz.PM.Strings['calendarStrings']['amDesignation'],
50 'pmDesignation':Clipperz.PM.Strings['calendarStrings']['pmDesignation'], 48 'pmDesignation':Clipperz.PM.Strings['calendarStrings']['pmDesignation'],
51 'days': Clipperz.PM.Strings['calendarStrings']['days'], 49 'days': Clipperz.PM.Strings['calendarStrings']['days'],
52 'shortDays': Clipperz.PM.Strings['calendarStrings']['shortDays'], 50 'shortDays': Clipperz.PM.Strings['calendarStrings']['shortDays'],
53 'shortMonths': Clipperz.PM.Strings['calendarStrings']['shortMonths'], 51 'shortMonths': Clipperz.PM.Strings['calendarStrings']['shortMonths'],
54 'months': Clipperz.PM.Strings['calendarStrings']['months'] 52 'months': Clipperz.PM.Strings['calendarStrings']['months']
55 } 53 }
56 }, 54 },
57 55
58 //========================================================================= 56 //=========================================================================
59/* 57/*
60 'formatDateWithPHPLikeTemplate': function(aDate, aTemplate) { 58 'formatDateWithPHPLikeTemplate': function(aDate, aTemplate) {
61 return Clipperz.Date.formatDateWithPHPLikeTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale()); 59 return Clipperz.Date.formatDateWithPHPLikeTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale());
62 }, 60 },
63 61
64 'parseDateWithPHPLikeTemplate': function(aDate, aTemplate) { 62 'parseDateWithPHPLikeTemplate': function(aDate, aTemplate) {
65 return Clipperz.Date.parseDateWithPHPTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale()); 63 return Clipperz.Date.parseDateWithPHPTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale());
66 }, 64 },
67 65
68 //========================================================================= 66 //=========================================================================
69 67
70 'formatDateWithJavaLikeTemplate': function(aDate, aTemplate) { 68 'formatDateWithJavaLikeTemplate': function(aDate, aTemplate) {
71 return Clipperz.Date.formatDateWithJavaLikeTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale()); 69 return Clipperz.Date.formatDateWithJavaLikeTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale());
72 }, 70 },
73 71
74 'parseDateWithJavaLikeTemplate': function(aDate, aTemplate) { 72 'parseDateWithJavaLikeTemplate': function(aDate, aTemplate) {
75 return Clipperz.Date.parseDateWithJavaLikeTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale()); 73 return Clipperz.Date.parseDateWithJavaLikeTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale());
76 }, 74 },
77*/ 75*/
78 //========================================================================= 76 //=========================================================================
79 77
80 'formatDateWithTemplate': function(aDate, aTemplate) { 78 'formatDateWithTemplate': function(aDate, aTemplate) {
81 var result; 79 var result;
82 80
83 if (aDate == null) { 81 if (aDate == null) {
84 result = "" 82 result = ""
85 } else { 83 } else {
86 result = Clipperz.Date.formatDateWithPHPLikeTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale()); 84 result = Clipperz.Date.formatDateWithPHPLikeTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale());
87 }; 85 };
88 86
89 return result; 87 return result;
90 }, 88 },
91 89
92 'parseDateWithTemplate': function(aValue, aTemplate) { 90 'parseDateWithTemplate': function(aValue, aTemplate) {
93 return Clipperz.Date.parseDateWithPHPTemplateAndLocale(aValue, aTemplate, Clipperz.PM.Date.locale()); 91 return Clipperz.Date.parseDateWithPHPTemplateAndLocale(aValue, aTemplate, Clipperz.PM.Date.locale());
94 }, 92 },
95 93
96 //========================================================================= 94 //=========================================================================
97 95
98 'formatDateWithUTCFormat': function(aDate) { 96 'formatDateWithUTCFormat': function(aDate) {
99 return Clipperz.Date.formatDateWithUTCFormatAndLocale(aDate, Clipperz.PM.Date.locale()); 97 return Clipperz.Date.formatDateWithUTCFormatAndLocale(aDate, Clipperz.PM.Date.locale());
100 }, 98 },
101 99
102 'parseDateWithUTCFormat': function(aValue) { 100 'parseDateWithUTCFormat': function(aValue) {
103 var result; 101 var result;
104 102
105 if (aValue == null) { 103 if (aValue == null) {
106 result = null; 104 result = null;
107 } else { 105 } else {
108 result = Clipperz.Date.parseDateWithUTCFormatAndLocale(aValue, Clipperz.PM.Date.locale()); 106 result = Clipperz.Date.parseDateWithUTCFormatAndLocale(aValue, Clipperz.PM.Date.locale());
109 } 107 }
110 108
111 return result; 109 return result;
112 }, 110 },
113 111
114 //========================================================================= 112 //=========================================================================
115 113
116 'getElapsedTimeDescription': function(aDate) { 114 'getElapsedTimeDescription': function(aDate) {
117 var result; 115 var result;
118 116
119 result = "" 117 result = ""
120 118
121 if (aDate != null) { 119 if (aDate != null) {
122 var now; 120 var now;
123 var elapsedTime; 121 var elapsedTime;
124 122
125 var millisencondsInAMinute; 123 var millisencondsInAMinute;
126 var millisencondsInAnHour; 124 var millisencondsInAnHour;
127 var millisencondsInADay; 125 var millisencondsInADay;
128 var millisencondsInAWeek; 126 var millisencondsInAWeek;
129 var millisencondsInAMonth; 127 var millisencondsInAMonth;
130 128
131 now = new Date(); 129 now = new Date();
132 elapsedTime = now.getTime() - aDate.getTime(); 130 elapsedTime = now.getTime() - aDate.getTime();
133 131
134 millisencondsInAMinute = 60 * 1000; 132 millisencondsInAMinute = 60 * 1000;
135 millisencondsInAnHour = millisencondsInAMinute * 60; 133 millisencondsInAnHour = millisencondsInAMinute * 60;
136 millisencondsInADay = millisencondsInAnHour * 24; 134 millisencondsInADay = millisencondsInAnHour * 24;
137 millisencondsInAWeek = millisencondsInADay * 7; 135 millisencondsInAWeek = millisencondsInADay * 7;
138 millisencondsInAMonth = millisencondsInAWeek * 5; 136 millisencondsInAMonth = millisencondsInAWeek * 5;
139 137
140 if ((elapsedTime / millisencondsInAMonth) > 1) { 138 if ((elapsedTime / millisencondsInAMonth) > 1) {
141 result = Clipperz.PM.Strings['elapsedTimeDescriptions']['MORE_THAN_A_MONTH_AGO']; 139 result = Clipperz.PM.Strings['elapsedTimeDescriptions']['MORE_THAN_A_MONTH_AGO'];
142 } else if ((elapsedTime / millisencondsInAWeek) > 1) { 140 } else if ((elapsedTime / millisencondsInAWeek) > 1) {
143 var elapsedWeeks; 141 var elapsedWeeks;
144 142
145 elapsedWeeks = Math.floor((elapsedTime / millisencondsInAWeek)); 143 elapsedWeeks = Math.floor((elapsedTime / millisencondsInAWeek));
146 if (elapsedWeeks == 1) { 144 if (elapsedWeeks == 1) {
147 result = Clipperz.PM.Strings['elapsedTimeDescriptions']['MORE_THAN_A_WEEK_AGO']; 145 result = Clipperz.PM.Strings['elapsedTimeDescriptions']['MORE_THAN_A_WEEK_AGO'];
148 } else { 146 } else {
149 result = Clipprez.PM.Strings['elapsedTimeDescriptions']['MORE_THAN_*_WEEKS_AGO'].replace(/__elapsed__/, elapsedWeeks); 147 result = Clipprez.PM.Strings['elapsedTimeDescriptions']['MORE_THAN_*_WEEKS_AGO'].replace(/__elapsed__/, elapsedWeeks);
150 } 148 }
151 } else if ((elapsedTime / millisencondsInADay) > 1) { 149 } else if ((elapsedTime / millisencondsInADay) > 1) {
152 var elapsedDays; 150 var elapsedDays;
153 151
154 elapsedDays = Math.floor((elapsedTime / millisencondsInADay)); 152 elapsedDays = Math.floor((elapsedTime / millisencondsInADay));
155 if (elapsedDays == 1) { 153 if (elapsedDays == 1) {
156 result = Clipperz.PM.Strings['elapsedTimeDescriptions']['YESTERDAY']; 154 result = Clipperz.PM.Strings['elapsedTimeDescriptions']['YESTERDAY'];
157 } else { 155 } else {
158 result = Clipperz.PM.Strings['elapsedTimeDescriptions']['*_DAYS_AGO'].replace(/__elapsed__/, elapsedDays); 156 result = Clipperz.PM.Strings['elapsedTimeDescriptions']['*_DAYS_AGO'].replace(/__elapsed__/, elapsedDays);
159 } 157 }
160 } else if ((elapsedTime / millisencondsInAnHour) > 1) { 158 } else if ((elapsedTime / millisencondsInAnHour) > 1) {
161 var elapsedHours; 159 var elapsedHours;
162 160
163 elapsedHours = Math.floor((elapsedTime / millisencondsInAnHour)); 161 elapsedHours = Math.floor((elapsedTime / millisencondsInAnHour));
164 if (elapsedHours == 1) { 162 if (elapsedHours == 1) {
165 result = Clipperz.PM.Strings['elapsedTimeDescriptions']['ABOUT_AN_HOUR_AGO']; 163 result = Clipperz.PM.Strings['elapsedTimeDescriptions']['ABOUT_AN_HOUR_AGO'];
166 } else { 164 } else {
167 result = Clipperz.PM.Strings['elapsedTimeDescriptions']['*_HOURS_AGO'].replace(/__elapsed__/, elapsedHours); 165 result = Clipperz.PM.Strings['elapsedTimeDescriptions']['*_HOURS_AGO'].replace(/__elapsed__/, elapsedHours);
168 } 166 }
169 } else { 167 } else {
170 var elapsed10Minutes; 168 var elapsed10Minutes;
171 169
172 elapsed10Minutes = (Math.floor((elapsedTime / millisencondsInAMinute) / 10)) * 10; 170 elapsed10Minutes = (Math.floor((elapsedTime / millisencondsInAMinute) / 10)) * 10;
173 if (elapsed10Minutes == 0) { 171 if (elapsed10Minutes == 0) {
174 result = Clipperz.PM.Strings['elapsedTimeDescriptions']['JUST_A_FEW_MINUTES_AGO']; 172 result = Clipperz.PM.Strings['elapsedTimeDescriptions']['JUST_A_FEW_MINUTES_AGO'];
175 } else { 173 } else {
176 result = Clipperz.PM.Strings['elapsedTimeDescriptions']['ABOUT_*_MINUTES_AGO'].replace(/__elapsed__/, elapsed10Minutes+""); 174 result = Clipperz.PM.Strings['elapsedTimeDescriptions']['ABOUT_*_MINUTES_AGO'].replace(/__elapsed__/, elapsed10Minutes+"");
177 } 175 }
178 } 176 }
179 } 177 }
180 178
181 return result; 179 return result;
182 }, 180 },
183 181
184 //------------------------------------------------------------------------- 182 //-------------------------------------------------------------------------
185 183
186 //------------------------------------------------------------------------- 184 //-------------------------------------------------------------------------
187 __syntaxFix__: "syntax fix" 185 __syntaxFix__: "syntax fix"
188 186
189}); 187});
190 188