|
1 | 1 | /** |
2 | | - * angular-timer - v1.3.0 - 2015-03-03 5:32 PM |
| 2 | + * angular-timer - v1.3.0 - 2015-03-05 1:08 PM |
3 | 3 | * https://github.com/siddii/angular-timer |
4 | 4 | * |
5 | 5 | * Copyright (c) 2015 Siddique Hameed |
6 | 6 | * Licensed MIT <https://github.com/siddii/angular-timer/blob/master/LICENSE.txt> |
7 | 7 | */ |
8 | | -var app = angular.module('timer'); |
9 | | - |
10 | | -app.factory('I18nService', function() { |
11 | | - |
12 | | - var I18nService = function() {}; |
13 | | - |
14 | | - I18nService.prototype.language = 'en'; |
15 | | - I18nService.prototype.timeHumanizer = {}; |
16 | | - |
17 | | - I18nService.prototype.init = function init(lang){ |
18 | | - this.language = lang; |
19 | | - //moment init |
20 | | - moment.locale(this.language); //@TODO maybe to remove, it should be handle by the user's application itself, and not inside the directive |
21 | | - |
22 | | - //human duration init, using it because momentjs does not allow accurate time ( |
23 | | - // momentJS: a few moment ago, human duration : 4 seconds ago |
24 | | - this.timeHumanizer = humanizeDuration.humanizer({ |
25 | | - language: this.language, |
26 | | - halfUnit:false |
27 | | - }); |
28 | | - }; |
29 | | - |
30 | | - /** |
31 | | - * get time with units from momentJS i18n |
32 | | - * @param {int} millis |
33 | | - * @returns {{millis: string, seconds: string, minutes: string, hours: string, days: string, months: string, years: string}} |
34 | | - */ |
35 | | - I18nService.prototype.getTimeUnits = function getTimeUnits(millis) { |
36 | | - var diffFromAlarm = Math.round(millis/1000) * 1000; //time in milliseconds, get rid of the last 3 ms value to avoid 2.12 seconds display |
37 | | - |
38 | | - var time = {}; |
39 | | - |
40 | | - if (typeof this.timeHumanizer != 'undefined'){ |
41 | | - time = { |
42 | | - 'millis' : this.timeHumanizer(diffFromAlarm, { units: ["milliseconds"] }), |
43 | | - 'seconds' : this.timeHumanizer(diffFromAlarm, { units: ["seconds"] }), |
44 | | - 'minutes' : this.timeHumanizer(diffFromAlarm, { units: ["minutes", "seconds"] }) , |
45 | | - 'hours' : this.timeHumanizer(diffFromAlarm, { units: ["hours", "minutes", "seconds"] }) , |
46 | | - 'days' : this.timeHumanizer(diffFromAlarm, { units: ["days", "hours", "minutes", "seconds"] }) , |
47 | | - 'months' : this.timeHumanizer(diffFromAlarm, { units: ["months", "days", "hours", "minutes", "seconds"] }) , |
48 | | - 'years' : this.timeHumanizer(diffFromAlarm, { units: ["years", "months", "days", "hours", "minutes", "seconds"] }) |
49 | | - }; |
50 | | - } |
51 | | - else { |
52 | | - console.error('i18nService has not been initialized. You must call i18nService.init("en") for example'); |
53 | | - } |
54 | | - |
55 | | - return time; |
56 | | - }; |
57 | | - |
58 | | - return I18nService; |
59 | | -}); |
60 | | - |
61 | 8 | var timerModule = angular.module('timer', []) |
62 | 9 | .directive('timer', ['$compile', function ($compile) { |
63 | 10 | return { |
@@ -366,3 +313,56 @@ var timerModule = angular.module('timer', []) |
366 | 313 | if (typeof module !== "undefined" && typeof exports !== "undefined" && module.exports === exports){ |
367 | 314 | module.exports = timerModule; |
368 | 315 | } |
| 316 | + |
| 317 | +var app = angular.module('timer'); |
| 318 | + |
| 319 | +app.factory('I18nService', function() { |
| 320 | + |
| 321 | + var I18nService = function() {}; |
| 322 | + |
| 323 | + I18nService.prototype.language = 'en'; |
| 324 | + I18nService.prototype.timeHumanizer = {}; |
| 325 | + |
| 326 | + I18nService.prototype.init = function init(lang){ |
| 327 | + this.language = lang; |
| 328 | + //moment init |
| 329 | + moment.locale(this.language); //@TODO maybe to remove, it should be handle by the user's application itself, and not inside the directive |
| 330 | + |
| 331 | + //human duration init, using it because momentjs does not allow accurate time ( |
| 332 | + // momentJS: a few moment ago, human duration : 4 seconds ago |
| 333 | + this.timeHumanizer = humanizeDuration.humanizer({ |
| 334 | + language: this.language, |
| 335 | + halfUnit:false |
| 336 | + }); |
| 337 | + }; |
| 338 | + |
| 339 | + /** |
| 340 | + * get time with units from momentJS i18n |
| 341 | + * @param {int} millis |
| 342 | + * @returns {{millis: string, seconds: string, minutes: string, hours: string, days: string, months: string, years: string}} |
| 343 | + */ |
| 344 | + I18nService.prototype.getTimeUnits = function getTimeUnits(millis) { |
| 345 | + var diffFromAlarm = Math.round(millis/1000) * 1000; //time in milliseconds, get rid of the last 3 ms value to avoid 2.12 seconds display |
| 346 | + |
| 347 | + var time = {}; |
| 348 | + |
| 349 | + if (typeof this.timeHumanizer != 'undefined'){ |
| 350 | + time = { |
| 351 | + 'millis' : this.timeHumanizer(diffFromAlarm, { units: ["milliseconds"] }), |
| 352 | + 'seconds' : this.timeHumanizer(diffFromAlarm, { units: ["seconds"] }), |
| 353 | + 'minutes' : this.timeHumanizer(diffFromAlarm, { units: ["minutes", "seconds"] }) , |
| 354 | + 'hours' : this.timeHumanizer(diffFromAlarm, { units: ["hours", "minutes", "seconds"] }) , |
| 355 | + 'days' : this.timeHumanizer(diffFromAlarm, { units: ["days", "hours", "minutes", "seconds"] }) , |
| 356 | + 'months' : this.timeHumanizer(diffFromAlarm, { units: ["months", "days", "hours", "minutes", "seconds"] }) , |
| 357 | + 'years' : this.timeHumanizer(diffFromAlarm, { units: ["years", "months", "days", "hours", "minutes", "seconds"] }) |
| 358 | + }; |
| 359 | + } |
| 360 | + else { |
| 361 | + console.error('i18nService has not been initialized. You must call i18nService.init("en") for example'); |
| 362 | + } |
| 363 | + |
| 364 | + return time; |
| 365 | + }; |
| 366 | + |
| 367 | + return I18nService; |
| 368 | +}); |
0 commit comments