From 1fff14f0a5e25adaa851537c71c7bd8381c1bbb1 Mon Sep 17 00:00:00 2001 From: Koren Lev Date: Mon, 2 Oct 2017 11:37:03 +0300 Subject: ui move to docker Change-Id: Iff31ebb3fff782e848704801b7800fdf480264a1 Signed-off-by: Koren Lev (cherry picked from commit a9691f5fe78af32c474754f841a71a68e2d2a484) --- .../scanning-request/scanning-request.js | 383 --------------------- 1 file changed, 383 deletions(-) delete mode 100644 ui/imports/ui/components/scanning-request/scanning-request.js (limited to 'ui/imports/ui/components/scanning-request/scanning-request.js') diff --git a/ui/imports/ui/components/scanning-request/scanning-request.js b/ui/imports/ui/components/scanning-request/scanning-request.js deleted file mode 100644 index 44b2f79..0000000 --- a/ui/imports/ui/components/scanning-request/scanning-request.js +++ /dev/null @@ -1,383 +0,0 @@ -///////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2017 Koren Lev (Cisco Systems), Yaron Yogev (Cisco Systems) and others / -// / -// All rights reserved. This program and the accompanying materials / -// are made available under the terms of the Apache License, Version 2.0 / -// which accompanies this distribution, and is available at / -// http://www.apache.org/licenses/LICENSE-2.0 / -///////////////////////////////////////////////////////////////////////////////////////// -/* - * Template Component: ScanningRequest - */ - -//import { Meteor } from 'meteor/meteor'; -import { Template } from 'meteor/templating'; -import { ReactiveDict } from 'meteor/reactive-dict'; -import { SimpleSchema } from 'meteor/aldeed:simple-schema'; -import * as R from 'ramda'; - -import { Constants } from '/imports/api/constants/constants'; -//import { createInputArgs } from '/imports/ui/lib/input-model'; -import { createSelectArgs } from '/imports/ui/lib/select-model'; -import { Scans } from '/imports/api/scans/scans'; - -import '/imports/ui/components/input-model/input-model'; -import '/imports/ui/components/select-model/select-model'; - -import { - insert, -} from '/imports/api/scans/methods'; - -import './scanning-request.html'; - -const noteTypeScanExists = { - type: 'scanExists', - message: 'There is already a scan in progess in the system. Please wait until it ends.' -}; - -/* - * Lifecycles - */ - -Template.ScanningRequest.onCreated(function() { - let instance = this; - instance.state = new ReactiveDict(); - instance.state.setDefault({ - env: null, - action: 'insert', - isError: false, - isSuccess: false, - isMessage: false, - message: null, - disabled: false, - notifications: {}, - model: {}, - beforeInsert: true, - reload: null, - }); - - instance.autorun(function () { - let data = Template.currentData(); - instance.state.get('reload'); - - new SimpleSchema({ - action: { type: String, allowedValues: ['insert', 'view', 'update'] }, - env: { type: String, optional: true }, - _id: { - type: { _str: { type: String, regEx: SimpleSchema.RegEx.Id } }, - optional: true - }, - }).validate(data); - - instance.state.set('isError', false); - instance.state.set('isSuccess', false); - instance.state.set('isMessage', false); - instance.state.set('message', null); - instance.state.set('disabled', false); - - switch (data.action) { - case 'insert': - initInsertView(instance, data); - break; - - case 'view': - initViewView(instance, data); - break; - - default: - throw 'unimplemented action'; - } - }); -}); - -/* -Template.ScanningRequest.rendered = function() { -}; -*/ - -/* -* Events -*/ - -Template.ScanningRequest.events({ - 'click .js-submit-button': function(event, instance) { - submitItem(instance); - } -}); - -/* -* Helpers -*/ - -Template.ScanningRequest.helpers({ - getState: function (key) { - let instance = Template.instance(); - return instance.state.get(key); - }, - - notifications: function () { - let instance = Template.instance(); - let notifications = instance.state.get('notifications'); - let notesExpaned = R.pipe( - R.map((noteType) => { - switch(noteType) { - case noteTypeScanExists.type: - return noteTypeScanExists.message; - default: - return ''; - } - }), - R.values() - )(notifications); - - return notesExpaned; - }, - - notificationsExists: function () { - let instance = Template.instance(); - return R.keys(instance.state.get('notifications')).length > 0; - }, - - model: function () { - let instance = Template.instance(); - return instance.state.get('model'); - }, - - createInputArgs: function (params) { - let instance = Template.instance(); - - return { - value: params.hash.value, - type: params.hash.type, - classes: params.hash.classes, - placeholder: params.hash.placeholder, - disabled: params.hash.disabled, - setModel: function (value) { - let key = params.hash.key; - let model = instance.state.get('model'); - let newModel = model; - - if(R.indexOf(key, Scans.scansOnlyFields) >= 0) { - newModel = setRadioValues(Scans.scansOnlyFields, key, value, model); - }else { - newModel = R.assoc(key, value, newModel); - } - - instance.state.set('model', newModel); - }, - }; - }, - - createSelectArgs: createSelectArgs, - - calcSetModelFn: function (key) { - let instance = Template.instance(); - let intf = { - fn: (values) => { - let model = instance.state.get('model'); - let newModel = R.assoc(key, values, model); - instance.state.set('model', newModel); - }, - sample: 'text' - }; - - return intf; - }, - - getFieldDesc: function (key) { - //let instance = Template.instance(); - return Scans.schemaRelated[key].description; - }, - - commandOptions: function () { - let array = []; - - R.mapObjIndexed((value, key) => { - array = R.append({ - name: key, - info: value - }, array); - }, Scans.schemaRelated); - - return array; - }, - - getModelKeyValue: function (key) { - let instance = Template.instance(); - return R.path([key], instance.state.get('model')); - }, - - calcInputType: function(fieldInfo) { - if (fieldInfo.type == Boolean) { - return 'checkbox'; - } - - if (fieldInfo.type == String) { - return 'textbox'; - } - - return 'textbox'; - }, - - isCommandOptionSelectType(commandOption) { - return (R.path(['info', 'subtype'], commandOption) === 'select'); - }, - - calcCommandSelectOptions(commandOption) { - let item = Constants.findOne({ name: R.path(['info', 'options'], commandOption) }); - if (R.isNil(item)) { return []; } - return item.data; - }, - - pageHeader() { - let instance = Template.instance(); - let action = instance.state.get('action'); - - switch (action) { - case 'insert': - return 'New Scanning Request'; - - case 'view': - return 'Scan Information'; - - default: - return ''; - } - }, - - isUpdateableAction() { - let instance = Template.instance(); - let action = instance.state.get('action'); - - return R.contains(action, ['insert', 'update']); - }, - - isCommandDisabled(isSpecificCommandDisabled) { - let instance = Template.instance(); - let action = instance.state.get('action'); - - return isSpecificCommandDisabled || (action === 'view'); - } -}); - -function submitItem(instance) { - let action = instance.state.get('action'); - let model = instance.state.get('model'); - - instance.state.set('isError', false); - instance.state.set('isSuccess', false); - instance.state.set('isMessage', false); - instance.state.set('message', null); - - switch (action) { - case 'insert': - insert.call({ - environment: model.environment, - inventory: model.inventory, - object_id: model.object_id, - log_level: model.log_level, - clear: model.clear, - scan_only_inventory: model.scan_only_inventory, - scan_only_links: model.scan_only_links, - scan_only_cliques: model.scan_only_cliques, - }, processActionResult.bind(null, instance)); - break; - default: - // todo - break; - } -} - -function setRadioValues(radioFields, key, value, modal) { - let newModal = modal; - let currentRadioFields = R.filter(f => modal[f], radioFields); - - for(let field of currentRadioFields) { - newModal = R.assoc(field, false, newModal); - } - - newModal = R.assoc(key, value, newModal); - return newModal; -} - -function processActionResult(instance, error) { - let action = instance.state.get('action'); - - if (error) { - instance.state.set('isError', true); - instance.state.set('isSuccess', false); - instance.state.set('isMessage', true); - - if (typeof error === 'string') { - instance.state.set('message', error); - } else { - instance.state.set('message', error.message); - } - - } else { - instance.state.set('isError', false); - instance.state.set('isSuccess', true); - instance.state.set('isMessage', true); - - if (action === 'insert') { - instance.state.set('message', 'Record had been added successfully'); - instance.state.set('disabled', true); - instance.state.set('beforeInsert', false); - } else if (action === 'update') { - instance.state.set('message', 'Record had been updated successfully'); - } - - setTimeout(() => { - instance.state.set('reload', Date.now()); - }, 7000); - } -} - -function initInsertView(instance, data) { - instance.state.set('action', data.action); - instance.state.set('env', data.env); - instance.state.set('model', Scans.schema.clean({ - environment: instance.state.get('env') - })); - - instance.subscribe('constants'); - instance.subscribe('scans?env', data.env); - - updateNotificationSameScanExistsForInsert(instance, data.env); - - // todo -} - -function updateNotificationSameScanExistsForInsert(instance, env) { - let notifications = instance.state.get('notifications'); - if (Scans.find({ - environment: env, - status: { - $in: ['pending', 'running'] - } }).count() > 0) { - - instance.state.set('notifications', R.assoc( - noteTypeScanExists.type, - noteTypeScanExists.type, - notifications - )); - } else { - instance.state.set('notifications', R.dissoc( - noteTypeScanExists.type, - notifications - )); - } -} - -function initViewView(instance, data) { - instance.state.set('action', data.action); - instance.state.set('env', data.env); - instance.state.set('id', data._id); - - instance.subscribe('constants'); - instance.subscribe('scans?id', data._id); - - let model = Scans.findOne({ _id: data._id }); - instance.state.set('model', model); - // todo -} -- cgit 1.2.3-korg