summaryrefslogtreecommitdiffstats
path: root/src/utils
diff options
context:
space:
mode:
authorShawn Severin <shawn.severin@amdocs.com>2017-12-07 15:19:25 -0500
committerShawn Severin <shawn.severin@amdocs.com>2017-12-07 15:19:46 -0500
commita7b4b96afee33a2ff458f906742d88cd306ed961 (patch)
treedcf2b16fdc4f52368327d372112cebaf126a1ded /src/utils
parent6ac2e7c0bef5ee478b36181b8bb384119ad3d937 (diff)
Adding filter bar
Issue-ID: AAI-543 Change-Id: I18ec69f4585a9f01feafd009fcd30493a039b064 Signed-off-by: Shawn Severin <shawn.severin@amdocs.com>
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/Crypto.js22
-rw-r--r--src/utils/DateTimeChartUtil.js33
-rw-r--r--src/utils/Routes.js112
3 files changed, 129 insertions, 38 deletions
diff --git a/src/utils/Crypto.js b/src/utils/Crypto.js
new file mode 100644
index 0000000..c2b34a0
--- /dev/null
+++ b/src/utils/Crypto.js
@@ -0,0 +1,22 @@
+/**
+ * Created by salmaat on 7/13/2017.
+ */
+import CryptoJS from 'crypto-js';
+
+var key = 'key2017';
+
+function encrypt(text) {
+ var encrypted = CryptoJS.AES.encrypt(text, key);
+ return encrypted.toString().split('/').join('*');
+}
+
+function decrypt(text) {
+ var decrypted = CryptoJS.AES.decrypt(text.split('*').join('/'), key);
+ return decrypted.toString(CryptoJS.enc.Utf8);
+}
+
+
+module.exports = {
+ encrypt: encrypt,
+ decrypt: decrypt
+};
diff --git a/src/utils/DateTimeChartUtil.js b/src/utils/DateTimeChartUtil.js
index f0735e5..44224a3 100644
--- a/src/utils/DateTimeChartUtil.js
+++ b/src/utils/DateTimeChartUtil.js
@@ -1,25 +1,28 @@
/*
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ============LICENSE_START===================================================
+ * SPARKY (AAI UI service)
+ * ============================================================================
+ * Copyright © 2017 AT&T Intellectual Property.
* Copyright © 2017 Amdocs
- * ================================================================================
+ * All rights reserved.
+ * ============================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- * ============LICENSE_END=========================================================
+ * ============LICENSE_END=====================================================
*
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * ECOMP and OpenECOMP are trademarks
+ * and service marks of AT&T Intellectual Property.
*/
+
let moment = require('moment');
let d3Scale = require('d3-scale');
let d3Time = require('d3-time');
@@ -33,6 +36,14 @@ export function dateFormatLocalTimeZoneMMDDYYYY(time) {
};
/**
+ * Converts specified time (ms since epoc) into a
+ * YYYY-MM-DD format for the local timezone
+ */
+export function dateFormatLocalTimeZoneYYYYMMDD(time) {
+ return moment(time).format('YYYY-MM-DD');
+};
+
+/**
* Build a map of 'ticks' to be used on a graph axis based on the date range
* identified by the specified JSON attribute (ticks will be on a daily basis)
* @param data - the array of JSON data
@@ -44,12 +55,12 @@ export function getTicks(data, attrKey) {
if (!data || !data.length) {
return [];
}
-
+
const domain = [new Date(data[0][attrKey]),
new Date(data[data.length - 1][attrKey])];
const scale = d3Scale.scaleTime().domain(domain).range([0, 1]);
const ticks = scale.ticks(d3Time.timeDay, 1);
-
+
return ticks.map(entry => +entry);
};
@@ -64,7 +75,7 @@ export function getTicksData(data, ticks, attrKey) {
if (!data || !data.length) {
return [];
}
-
+
const dataMap = new Map(data.map((i) => [i[attrKey], i]));
ticks.forEach(function (item) {
if (!dataMap.has(item)) {
diff --git a/src/utils/Routes.js b/src/utils/Routes.js
index 9d15177..5a5e089 100644
--- a/src/utils/Routes.js
+++ b/src/utils/Routes.js
@@ -1,36 +1,94 @@
-/*
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
- * Copyright © 2017 Amdocs
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
+import {encrypt } from './Crypto.js';
+import { decrypt } from '../utils/Crypto.js';
+
+
export function changeUrlAddress(pathObj, historyObj) {
- let toGo = '/' +
- pathObj.route +
- '/' +
- pathObj.hashId;
+ let toGo = '/' + pathObj.route;
+ // left global search to act the same as before for our 2 static views for now
+ // until we decide to change those 2 views too to act like extensible views.
+ if (pathObj.route === 'schema' || pathObj.route === 'vnfSearch') {
+ if (pathObj.filterValues && pathObj.filterValues.length > 0) {
+ let filterList = [];
+ for (let index in pathObj.filterValues) {
+ if (pathObj.filterValues[index].filterValue !== undefined) {
+ filterList.push(pathObj.filterValues[index].filterId +
+ '=' +
+ pathObj.filterValues[index].filterValue);
+ } else {
+ filterList.push(pathObj.filterValues[index].filterId + '=');
+ }
+ }
+ toGo = toGo + '/' + filterList.toString();
+ } else {
+ toGo = toGo + '/' + pathObj.hashId;
+ }
+ } else {
+ toGo += '/' + encrypt(JSON.stringify(pathObj));
+ }
historyObj.push(toGo, {lastRoute: pathObj.route});
}
-export function buildRouteObj(routePath, routeHash) {
+export function buildRouteObjWithHash(routePath, routeHash) {
return {
route: routePath,
hashId: routeHash
};
}
+
+
+export function decryptParamsForView(params) {
+ let jsonParam = {};
+
+ function isJson(str) {
+ try {
+ JSON.parse(str);
+ } catch (e) {
+ return false;
+ }
+ return true;
+ };
+
+ let stringParams;
+
+ try {
+ stringParams = decrypt(params);
+ } catch(e) {
+ //add inline message in next story
+ //happens when user changes the url.
+ }
+
+ if(!isJson(stringParams)) {
+ return jsonParam;
+ }
+
+ jsonParam = JSON.parse(stringParams);
+ return jsonParam;
+}
+
+export function buildRouteObjWithFilters(routePath, routeFiltersObj) {
+ let filterValues = [];
+ if (routeFiltersObj !== undefined) {
+ for (let id in routeFiltersObj) {
+ if (routeFiltersObj[id] !== undefined) {
+ filterValues.push(
+ {
+ 'filterId': id,
+ 'filterValue': routeFiltersObj[id]
+ }
+ );
+ } else {
+ filterValues.push(
+ {
+ 'filterId': id,
+ 'filterValue': ''
+ }
+ );
+ }
+ }
+ }
+
+ return {
+ route: routePath,
+ filterValues: filterValues
+ };
+}