You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@climate.apache.org by jo...@apache.org on 2014/07/21 15:24:38 UTC

[02/50] git commit: Add ISODateToMiddleEndian filter

Add ISODateToMiddleEndian filter


Project: http://git-wip-us.apache.org/repos/asf/climate/repo
Commit: http://git-wip-us.apache.org/repos/asf/climate/commit/8f13d2b9
Tree: http://git-wip-us.apache.org/repos/asf/climate/tree/8f13d2b9
Diff: http://git-wip-us.apache.org/repos/asf/climate/diff/8f13d2b9

Branch: refs/heads/master
Commit: 8f13d2b9177367e6a9cc56e6f77e6d3f0f4214b3
Parents: b39b3dd
Author: Michael Joyce <jo...@apache.org>
Authored: Wed Jul 16 10:22:11 2014 -0700
Committer: Michael Joyce <jo...@apache.org>
Committed: Wed Jul 16 10:22:11 2014 -0700

----------------------------------------------------------------------
 ocw-ui/frontend-new/app/index.html              |  1 +
 .../scripts/filters/isodatetomiddleendian.js    | 36 ++++++++++++++++++++
 .../test/spec/filters/isodatetomiddleendian.js  | 19 +++++++++++
 3 files changed, 56 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/climate/blob/8f13d2b9/ocw-ui/frontend-new/app/index.html
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend-new/app/index.html b/ocw-ui/frontend-new/app/index.html
index 2b07b4d..5ca9aad 100644
--- a/ocw-ui/frontend-new/app/index.html
+++ b/ocw-ui/frontend-new/app/index.html
@@ -104,6 +104,7 @@
     <script src="scripts/directives/predictivefilebrowserinput.js"></script>
     <script src="scripts/directives/previewmap.js"></script>
     <script src="scripts/directives/timeline.js"></script>
+    <script src="scripts/filters/isodatetomiddleendian.js"></script>
     <!-- endbuild -->
   </body>
 </html>

http://git-wip-us.apache.org/repos/asf/climate/blob/8f13d2b9/ocw-ui/frontend-new/app/scripts/filters/isodatetomiddleendian.js
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend-new/app/scripts/filters/isodatetomiddleendian.js b/ocw-ui/frontend-new/app/scripts/filters/isodatetomiddleendian.js
new file mode 100644
index 0000000..fce091c
--- /dev/null
+++ b/ocw-ui/frontend-new/app/scripts/filters/isodatetomiddleendian.js
@@ -0,0 +1,36 @@
+'use strict';
+
+/**
+ * @ngdoc filter
+ * @name ocwUiApp.filter:ISODateToMiddleEndian
+ * @function
+ * @description
+ * # ISODateToMiddleEndian
+ * Filter in the ocwUiApp.
+ */
+angular.module('ocwUiApp')
+.filter('ISODateToMiddleEndian', function() {
+	return function(input) {
+		var original = input;
+
+		// Strip whitespace from the start and end of the string
+		input = input.replace(/(^\s+|\s+$)/g, '');
+
+		// ISO Standard says time is separated from Date with a 'T'. Our timestamps
+		// slightly modify that and use a space. We'll check for both here and prefer
+		// to split on a 'T' if it's available.
+		if (input.indexOf('T') != -1 || input.indexOf(' ') != -1) {
+			input = (input.indexOf('T') != -1) ? input.split('T')[0] : input.split(' ')[0];
+		} 
+		
+		// The components of the date should be split with hyphens. If we can't find them
+		// then the string is poorly formed.
+		if (input.indexOf('-') == -1 || input.split('-').length - 1 != 2) {
+			return original;
+		}
+
+		// At this point the date is probably valid and we should try to convert it!
+		var components = input.split('-');
+		return (components[1] + "/" + components[2] + "/" + components[0]);
+	};
+});

http://git-wip-us.apache.org/repos/asf/climate/blob/8f13d2b9/ocw-ui/frontend-new/test/spec/filters/isodatetomiddleendian.js
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend-new/test/spec/filters/isodatetomiddleendian.js b/ocw-ui/frontend-new/test/spec/filters/isodatetomiddleendian.js
new file mode 100644
index 0000000..22d30a2
--- /dev/null
+++ b/ocw-ui/frontend-new/test/spec/filters/isodatetomiddleendian.js
@@ -0,0 +1,19 @@
+'use strict';
+
+describe('Filter: ISODateToMiddleEndian', function () {
+
+  // load the filter's module
+  beforeEach(module('ocwUiApp'));
+
+  // initialize a new instance of the filter before each test
+  var ISODateToMiddleEndian;
+  beforeEach(inject(function ($filter) {
+    ISODateToMiddleEndian = $filter('ISODateToMiddleEndian');
+  }));
+
+  it('should return the input prefixed with "ISODateToMiddleEndian filter:"', function () {
+    var text = 'angularjs';
+    expect(ISODateToMiddleEndian(text)).toBe('ISODateToMiddleEndian filter: ' + text);
+  });
+
+});