"YANGMAN_CUST_MOUNT_POINTS": "Display mount points",
"YANGMAN_CANCEL_MP": "Back from mountpoint",
"YANGMAN_PLUGINS_MENU": "Plugins menu",
+ "YANGMAN_PARAMS_IMPORT_EXPORT": "Import and export parameters",
+ "YANGMAN_IMPORT_PARAMS": "Import all parameters",
+ "YANGMAN_EXPORT_PARAMETERS": "Export all parameters",
"YANGMAN_NO_MOUNT_POINT": "No mount points to display",
"YANGMAN_MOUNT_POINT": "Mount point"
}
angular.module('app.yangman').controller('ParamsAdminCtrl', ParamsAdminCtrl);
- ParamsAdminCtrl.$inject = ['$mdDialog', 'parametersList'];
+ ParamsAdminCtrl.$inject = ['$mdDialog', 'YangmanService', 'HandleFileService', 'parametersList'];
- function ParamsAdminCtrl($mdDialog, parametersList) {
+ function ParamsAdminCtrl($mdDialog, YangmanService, HandleFileService, parametersList) {
var vm = this;
vm.parametersList = parametersList;
vm.filterParam = filterParam;
vm.sortBy = sortBy;
vm.sortFunc = sortFunc;
+ vm.exportParameters = exportParameters;
+ vm.importParameters = importParameters;
init();
+ /**
+ * Importing all parameters from json
+ * @param fileContent
+ */
+ function importParameters(fileContent) {
+ if (fileContent && YangmanService.validateFile(fileContent, ['key', 'value'])){
+ try {
+ vm.parametersList.createParamsFromJson(fileContent);
+ vm.parametersList.saveToStorage();
+ angular.element(document).find('#importParameters').val('');
+ createEmptyParam();
+ }
+ catch (e) {
+ angular.element(document).find('#importParameters').val('');
+ console.error('DataStorage error:', e);
+ }
+ }
+ else {
+ angular.element(document).find('#importParameters').val('');
+ }
+
+ }
+
+ /**
+ * Export all parameters to json file
+ */
+ function exportParameters() {
+
+ HandleFileService.downloadFile(
+ 'yangman_parameters.json',
+ JSON.stringify(vm.parametersList.toJSON()),
+ 'json',
+ 'charset=utf-8',
+ function (){},
+ function (e){
+ console.error('Export parameters error:', e);
+ }
+ );
+ }
+
/**
* Set attribute to use when sorting
* @param sortField
'receivedData',
'path',
'collection',
- 'parametrizedPath',
'method',
'status',
'name',
];
- if (data && RequestsService.validateFile(data, checkArray)){
+ if (data && YangmanService.validateFile(data, checkArray)){
try {
vm.collectionList.loadListFromFile(data);
vm.collectionList.saveToStorage();
if (data){
ParsingJsonService.parseJson(data).map(function (elem) {
return RequestsService.createHistoryRequest(elem.sentData, elem.receivedData, elem.path,
- elem.parametrizedPath, elem.method, elem.status, elem.name, elem.collection);
+ elem.method, elem.status, elem.name, elem.collection);
}).forEach(function (elem) {
self.addRequestToList(elem);
});
self.setName = setName;
self.addEmptyItem = addEmptyItem;
self.getKeysInArr = getKeysInArr;
+ self.toJSON = toJSON;
+ self.createParamsFromJson = createParamsFromJson;
+
+
+ /**
+ * Using when importing data from json file
+ * @param data
+ */
+ function createParamsFromJson(data){
+ if (data){
+ self.clear();
+ ParsingJsonService.parseJson(data).map(function (elem) {
+ return ParametersService.createParameter(elem);
+ }).forEach(function (elem) {
+ self.addRequestToList(elem);
+ });
+ }
+ }
+
+ /**
+ * Get all parameters in json for exporting
+ * @returns {Array}
+ */
+ function toJSON() {
+ return self.list.map(function (param){
+ return param.toJSON();
+ });
+ }
/**
* Get list of params keys in array
function clear() {
self.list = [];
- self.listGroupedByDate = {};
- self.selectedParameters = [];
}
/**
service.createHistoryRequestFromElement = createHistoryRequestFromElement;
service.createHistoryRequest = createHistoryRequest;
service.scanDataParams = scanDataParams;
- service.validateFile = validateFile;
service.replaceStringInText = replaceStringInText;
/**
}
- /**
- * Validating collection import file
- * @param data
- * @param checkArray
- * @returns {*}
- */
- function validateFile(data, checkArray){
- try {
- var obj = ParsingJsonService.parseJson(data);
- return obj && obj.every(function (el){
- return checkArray.every(function (arr){
- return el.hasOwnProperty(arr);
- });
- });
- } catch (e) {
- return e;
- }
- }
/**
* Service for creating basic history object
'YangUtilsService',
'YangUtilsRestangularService',
'ENV',
+ 'ParsingJsonService',
'RequestsService',
+
];
function YangmanService(
YangUtilsService,
YangUtilsRestangularService,
ENV,
+ ParsingJsonService,
RequestsService
){
var service = {
fillNodeFromResponse: fillNodeFromResponse,
getDataStoreIndex: getDataStoreIndex,
prepareAllRequestData: prepareAllRequestData,
+ validateFile: validateFile,
};
return service;
+ /**
+ * Validating collection import file
+ * @param data
+ * @param checkArray
+ * @returns {*}
+ */
+ function validateFile(data, checkArray){
+ try {
+ var obj = ParsingJsonService.parseJson(data);
+
+ return obj && obj.every(function (el){
+ return checkArray.every(function (arr){
+ return el.hasOwnProperty(arr);
+ });
+ });
+ } catch (e) {
+ return e;
+ }
+ }
+
/**
* Return index of selected datastore in list
* @param list
<!-- /search icon, form, clear button -->
<!-- sorting menu -->
- <md-menu class="paramsAdminDialog__searchBox__sortMenu"
- md-offset="35 15"
- layout-align="center start">
+ <md-menu md-offset="35 15" layout-align="center start">
<md-button aria-label="{{'YANGMAN_SORT'| translate}}" class="" ng-click="$mdOpenMenu()">
<i class="material-icons">sort</i>
<md-tooltip md-direction="bottom">
{{'YANGMAN_SORTING' | translate}}
</md-tooltip>
</md-button>
- <md-menu-content class="reqMenu">
+ <md-menu-content>
<!-- sort by key -->
<md-menu-item>
<md-button aria-label="{{'YANGMAN_PARAMS_KEY'| translate}}"
</md-menu>
<!-- /sorting menu -->
+ <!-- menu for import and export parameters -->
+ <input type="file" accept=".json" id="importParameters" on-read-file="paramsAdmin.importParameters($fileContent)">
+ <md-menu md-offset="35 15" layout-align="center start">
+ <md-button aria-label="{{ 'YANGMAN_PARAMS_IMPORT_EXPORT' | translate }}" ng-click="$mdOpenMenu()">
+ <i class="material-icons">import_export</i>
+ <md-tooltip md-direction="bottom">
+ {{ 'YANGMAN_PARAMS_IMPORT_EXPORT' | translate }}
+ </md-tooltip>
+ </md-button>
+ <md-menu-content>
+ <md-menu-item>
+ <md-button>
+ <label for="importParameters">
+ {{'YANGMAN_IMPORT_PARAMS'| translate}}
+ </label>
+ </md-button>
+ </md-menu-item>
+ <md-menu-item>
+ <md-button aria-label="{{'YANGMAN_EXPORT_PARAMETERS' | translate}}" ng-click="paramsAdmin.exportParameters()">
+ {{'YANGMAN_EXPORT_PARAMETERS' | translate}}
+ </md-button>
+ </md-menu-item>
+ </md-menu-content>
+ </md-menu>
+ <!-- /menu for import and export parameters -->
+
</div>
<md-divider></md-divider>
background: @colorActive;
}
+button{
+ label{
+ font-weight: normal;
+ }
+}
+
// yangman
.yangmanModule{
background-color: @appBackColor;
margin-right: 0px!important;
}
+ #importParameters{
+ display: none;
+ }
+
+ label{
+ md-icon{
+ color: @fontColor;
+ }
+ }
+
md-menu{
button{
margin-top: 5px!important;