From 19d8a5e2ac1cc3a034b91b02d1653708255c8192 Mon Sep 17 00:00:00 2001 From: Edward Opare-Aryee Date: Fri, 17 Jul 2015 15:40:50 +0100 Subject: [PATCH 1/5] display hours in track length --- app/partials/track.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/partials/track.html b/app/partials/track.html index b93a9d1a..9fbaf28c 100644 --- a/app/partials/track.html +++ b/app/partials/track.html @@ -41,5 +41,5 @@
-

{{ timer.elapsedTime | date: "m:ss" }} / {{ track.duration | date: "m:ss" }}

+

{{ timer.elapsedTime | date: "H:mm:ss" }} / {{ track.duration | date: "H:mm:ss" }}

From f263585f5283cae062544c2d257e783af98b928b Mon Sep 17 00:00:00 2001 From: Edward Opare-Aryee Date: Fri, 17 Jul 2015 16:42:05 +0100 Subject: [PATCH 2/5] remove leading zeros from track duration --- app/index.html | 1 + app/js/player/directives/track.js | 1 + app/js/player/filter/removeLeadingZeros.js | 31 ++++++++++++++++++++++ app/js/player/player.js | 3 ++- app/partials/track.html | 2 +- scripts.json | 1 + 6 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 app/js/player/filter/removeLeadingZeros.js diff --git a/app/index.html b/app/index.html index dc5add6f..8c5b8216 100644 --- a/app/index.html +++ b/app/index.html @@ -115,6 +115,7 @@ + diff --git a/app/js/player/directives/track.js b/app/js/player/directives/track.js index dd2ddde1..9787afbc 100644 --- a/app/js/player/directives/track.js +++ b/app/js/player/directives/track.js @@ -6,6 +6,7 @@ * @author SOON_ */ angular.module("FM.player.trackDirective", [ + "FM.player.removeLeadingZeros", "FM.api.PlayerQueueResource", "ui.bootstrap.popover", "template/popover/popover-template.html", diff --git a/app/js/player/filter/removeLeadingZeros.js b/app/js/player/filter/removeLeadingZeros.js new file mode 100644 index 00000000..714f7459 --- /dev/null +++ b/app/js/player/filter/removeLeadingZeros.js @@ -0,0 +1,31 @@ +"use strict"; +/** + * Removes leading 0's from time + * @module FM.player.removeLeadingZeros + * @author SOON_ + */ +angular.module("FM.player.removeLeadingZeros", [ + +]) +.filter("removeLeadingZeros", [ + function (){ + return function (input) { + + var s = input; + + if ( s && s.split ){ + var arr = s.split(":"); + + arr.map(function (currentValue, index, arr){ + if ((index < arr.length - 2) && (parseInt(currentValue) === 0)){ + arr.splice(index, 1); + } + }); + + s = arr.join(":"); + } + + return s; + }; + } +]); diff --git a/app/js/player/player.js b/app/js/player/player.js index bae17d41..d0c5d010 100644 --- a/app/js/player/player.js +++ b/app/js/player/player.js @@ -12,5 +12,6 @@ angular.module("FM.player", [ "FM.player.PlayerCtrl", "FM.player.trackDirective", "FM.player.sliderDirective", - "FM.player.TrackTimer" + "FM.player.TrackTimer", + "FM.player.removeLeadingZeros" ]); diff --git a/app/partials/track.html b/app/partials/track.html index 9fbaf28c..0ec709b1 100644 --- a/app/partials/track.html +++ b/app/partials/track.html @@ -41,5 +41,5 @@
-

{{ timer.elapsedTime | date: "H:mm:ss" }} / {{ track.duration | date: "H:mm:ss" }}

+

{{ timer.elapsedTime | date: "H:mm:ss" | removeLeadingZeros }} / {{ track.duration | date: "H:mm:ss" | removeLeadingZeros }}

diff --git a/scripts.json b/scripts.json index 2960206d..d9764b0d 100644 --- a/scripts.json +++ b/scripts.json @@ -48,6 +48,7 @@ "./app/js/player/directives/track.js", "./app/js/player/directives/slider.js", "./app/js/player/services/TrackTimer.js", + "./app/js/player/filter/removeLeadingZeros.js", "./app/js/playlist/playlist.js", "./app/js/playlist/controllers/PlaylistCtrl.js", From 1375dbc72913606118933069a64a2cfca537c3eb Mon Sep 17 00:00:00 2001 From: Edward Opare-Aryee Date: Fri, 17 Jul 2015 16:43:56 +0100 Subject: [PATCH 3/5] add filter to playlist total length --- app/js/playlist/controllers/PlaylistCtrl.js | 1 + app/partials/playlist.html | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/js/playlist/controllers/PlaylistCtrl.js b/app/js/playlist/controllers/PlaylistCtrl.js index 9f4716cb..bae72887 100644 --- a/app/js/playlist/controllers/PlaylistCtrl.js +++ b/app/js/playlist/controllers/PlaylistCtrl.js @@ -12,6 +12,7 @@ angular.module("FM.playlist.PlaylistCtrl", [ "FM.api.UsersResource", "FM.api.PlayerQueueResource", "FM.api.PaginationInterceptor", + "FM.player.removeLeadingZeros", "ngRoute", ]) /** diff --git a/app/partials/playlist.html b/app/partials/playlist.html index 22eecf42..1d75cd54 100644 --- a/app/partials/playlist.html +++ b/app/partials/playlist.html @@ -5,7 +5,7 @@

Coming up:

-

{{ meta.total }} tracks in {{ meta.play_time | date: "H:mm:ss" }}

+

{{ meta.total }} tracks in {{ meta.play_time | date: "H:mm:ss" | removeLeadingZeros }}

From dae2f340b9cc505d4121ff5e8a4ae0a8716f5c02 Mon Sep 17 00:00:00 2001 From: Edward Opare-Aryee Date: Fri, 17 Jul 2015 16:46:03 +0100 Subject: [PATCH 4/5] update documentation --- app/js/player/filter/removeLeadingZeros.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/js/player/filter/removeLeadingZeros.js b/app/js/player/filter/removeLeadingZeros.js index 714f7459..18094184 100644 --- a/app/js/player/filter/removeLeadingZeros.js +++ b/app/js/player/filter/removeLeadingZeros.js @@ -1,12 +1,18 @@ "use strict"; /** - * Removes leading 0's from time + * Removes leading 0's from time but leaves + * minutes and seconds intacted * @module FM.player.removeLeadingZeros * @author SOON_ */ angular.module("FM.player.removeLeadingZeros", [ ]) +/** + * @example + * {{ time | date: "H:mm:ss" | removeLeadingZeros }} + * @class removeLeadingZeros + */ .filter("removeLeadingZeros", [ function (){ return function (input) { From 50a44cc7b1dae76a0416142aead2a25fdad3c70e Mon Sep 17 00:00:00 2001 From: Edward Opare-Aryee Date: Fri, 17 Jul 2015 17:02:50 +0100 Subject: [PATCH 5/5] add tests --- .../unit/player/filters/removeLeadingZeros.js | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 tests/unit/player/filters/removeLeadingZeros.js diff --git a/tests/unit/player/filters/removeLeadingZeros.js b/tests/unit/player/filters/removeLeadingZeros.js new file mode 100644 index 00000000..9e96346e --- /dev/null +++ b/tests/unit/player/filters/removeLeadingZeros.js @@ -0,0 +1,40 @@ +"use strict"; + +describe("FM.player.removeLeadingZeros", function() { + var $scope, filter; + + beforeEach(module("FM.player.removeLeadingZeros")); + + beforeEach(inject(function ($rootScope, $filter, $injector) { + $scope = $rootScope.$new(); + filter = $filter("removeLeadingZeros"); + + })); + + it("should filter times", function(){ + var result = filter("0:03:46"); + expect(result).toEqual("03:46"); + + var result = filter("0:03:00"); + expect(result).toEqual("03:00"); + + var result = filter("1:03:46"); + expect(result).toEqual("1:03:46"); + + var result = filter("1:00:00"); + expect(result).toEqual("1:00:00"); + }); + + it("should NOT filter times", function(){ + var result = filter("3:46"); + expect(result).toEqual("3:46"); + + var result = filter("0:46"); + expect(result).toEqual("0:46"); + + var result = filter(1); + expect(result).toEqual(1); + }); + + +});