"YANGMAN_CM_ENLARGE_FONT_SIZE": "Enlarge json font size (Alt +)",
"YANGMAN_CM_REDUCE_FONT_SIZE": "Reduce json font size (Alt -)",
"YANGMAN_INPUT_REQUIRED": "Required",
- "YANGMAN_ERROR_EMPTY_IDENTIFIERS": "Identifiers in path are required. Please fill empty identifiers for successful request execution."
+ "YANGMAN_ERROR_EMPTY_IDENTIFIERS": "Identifiers in path are required. Please fill empty identifiers for successful request execution.",
+ "YANGMAN_SORT_COLLECTIONS_DESC": "Sort collections descending",
+ "YANGMAN_SORT_COLLECTIONS_ASC": "Sort collections ascending"
}
reqData = params.reqData ? angular.fromJson(params.reqData) : {};
}
else {
- var historyReqData = YangmanService.prepareAllRequestData(
- $scope.selectedApi,
- $scope.selectedSubApi,
- requestHeader.selectedOperation,
- $scope.node,
- requestHeader.selectedShownDataType,
- requestHeader.requestUrl,
- reqData,
- null
- );
+ var data = { srcData: {} };
- reqData = historyReqData.reqData;
+ YangmanService.setSrcDataByDataType(data, $scope.node, {}, 'form');
+ reqData = data.srcData;
}
historyReq.setExecutionData(reqData, {}, '');
angular.module('app.yangman').controller('RequestsListCtrl', RequestsListCtrl);
RequestsListCtrl.$inject = [
- '$filter', '$mdDialog', '$scope', 'HandleFileService', 'PathUtilsService', 'RequestsService', 'YangmanService',
+ '$filter', '$mdDialog', '$scope', 'YMHandleFileService', 'PathUtilsService', 'RequestsService', 'YangmanService',
'YangmanDesignService',
];
* @param $filter
* @param $mdDialog
* @param $scope
- * @param HandleFileService
+ * @param YMHandleFileService
* @param PathUtilsService
* @param RequestsService
* @param YangmanService
* @param YangmanDesignService
* @constructor
*/
- function RequestsListCtrl($filter, $mdDialog, $scope, HandleFileService, PathUtilsService, RequestsService,
+ function RequestsListCtrl($filter, $mdDialog, $scope, YMHandleFileService, PathUtilsService, RequestsService,
YangmanService, YangmanDesignService) {
var vm = this;
vm.clearFilter = clearFilter;
vm.clearHistoryList = clearHistoryList;
vm.colMatchingReqsCount = colMatchingReqsCount;
- vm.deselectAllRequests = deselectAllRequests;
+ vm.deselectAllFilteredRequests = deselectAllFilteredReqs;
vm.downloadCollection = downloadCollection;
vm.executeRequest = executeRequest;
vm.fakeFilter = fakeFilter;
vm.filterReq = filterReq;
vm.init = init;
vm.readCollectionFromFile = readCollectionFromFile;
- vm.selectAllRequests = selectAllRequests;
+ vm.selectAllFilteredRequests = selectAllFilteredReqs;
vm.selectRequest = selectRequest;
vm.showData = showData;
vm.showDgDeleteCollection = showDgDeleteCollection;
vm.showDgSaveReq = showDgSaveReq;
vm.showForm = showForm;
vm.toggleCollectionsSort = toggleCollectionsSort;
+ vm.selectOnlyThisRequest = selectOnlyThisRequest;
+ vm.deselectAllRequests = deselectAllRequests;
+ vm.filterCollReq = filterCollReq;
* @param params
*/
function saveBcstedHistoryRequest(broadcastEvent, params) {
- vm.requestList.addRequestToList(params.params);
+ vm.requestList.addItemToList(params.params);
vm.requestList.saveToStorage();
loadHistoryList();
(params.cbk || angular.noop)();
*/
function downloadCollection(collection) {
- var cListJSON = vm.collectionList.getCollectionInJSON(collection.name);
+ var cListJSON = vm.collectionList.getCollectionInRawJSON(collection.name);
- HandleFileService.downloadFile(collection.name + '.json', cListJSON, 'json', 'charset=utf-8',
+ YMHandleFileService.downloadFile(collection.name + '.json', cListJSON, 'json', 'charset=utf-8',
function (){},
function (e){
console.error('ExportCollection error:', e);
* @param reqObj
*/
function showForm(reqObj) {
- var data = reqObj.method === 'GET' ? reqObj.receivedData : reqObj.sentData;
+ var data = reqObj.sentData;
+
+ // exception for get method
+ if ( reqObj.method === 'GET' ) {
+ data = reqObj.receivedData;
+ $scope.rootBroadcast('YANGMAN_SET_CODEMIRROR_DATA_RECEIVED', { data: reqObj.setDataForView(data) });
+ }
$scope.rootBroadcast('YANGMAN_SET_ERROR_DATA',
reqObj.receivedData && reqObj.receivedData.hasOwnProperty('errors') ? reqObj.receivedData : {});
vm.mainList.deleteRequestItem(reqObj);
}
else {
- vm.mainList.selectedRequests.forEach(function (elem){
+ vm.mainList.getSelectedItems(
+ vm.mainList === vm.collectionList ? filterCollReq : filterReq
+ ).forEach(function (elem){
vm.mainList.deleteRequestItem(elem);
});
}
* @returns {boolean}
*/
function filterReq(reqObj){
- return reqObj.path.toLowerCase().indexOf(vm.search.toLowerCase()) > -1;
+ var searchPhrase = vm.search.toLocaleLowerCase();
+ return reqObj.path.toLowerCase().indexOf(searchPhrase) > -1 ||
+ reqObj.collection.toLowerCase().indexOf(searchPhrase) > -1 ||
+ reqObj.method.toLowerCase() === searchPhrase;
}
/**
return true;
}
+
/**
* Show dialog for saving reqObj to collection (used for duplicate req too)
* @param ev
targetEvent: ev,
clickOutsideToClose: true,
locals: {
- requests: reqObj ? [reqObj] : vm.requestList.selectedRequests,
+ requests: reqObj ? [reqObj] : vm.mainList.getSelectedItems(
+ vm.mainList === vm.collectionList ? filterCollReq : filterReq
+ ),
collectionNames: vm.collectionList.getCollectionNames(),
duplicate: duplicate || false,
},
*/
function saveRequests(requests){
requests.forEach(function (reqObj){
- vm.collectionList.addRequestToList(reqObj);
+ vm.collectionList.addItemToList(reqObj);
vm.collectionList.saveToStorage();
refreshCollectionsWithExpansion();
});
vm.requestList = RequestsService.createEmptyHistoryList('yangman_requestsList');
+
+ // if request was selected, deselect requests in all other instances of RequestsListCtrl
+ $scope.$on('YANGMAN_DESELECT_REQUESTS', function (event, params) {
+ if (params.params.broadcastingCtrl !== vm) {
+ deselectAllRequests();
+ }
+ });
+
$scope.$on('YANGMAN_REFRESH_COLLECTIONS', loadCollectionsList);
// list type dependend operations
$scope.$on('YANGMAN_REFRESH_HISTORY', loadHistoryList);
// saving from request header after execution
$scope.$on('YANGMAN_SAVE_EXECUTED_REQUEST', saveBcstedHistoryRequest);
- // saving from request header
- $scope.$on('YANGMAN_SAVE_REQUEST_TO_COLLECTION', saveRequestFromExt);
// select newest request
$scope.$on('YANGMAN_SELECT_THE_NEWEST_REQUEST', selectNewestRequest);
}
else {
vm.mainList = vm.collectionList;
-
+ // saving from request header
+ $scope.$on('YANGMAN_SAVE_REQUEST_TO_COLLECTION', saveRequestFromExt);
// saving collections expanded status on refresh
$scope.$on('YANGMAN_REFRESH_AND_EXPAND_COLLECTIONS', function(event, params){
$scope.rootBroadcast('YANGMAN_REFRESH_COLLECTIONS');
* @param requestObj
*/
function selectRequest(event, requestObj){
+ $scope.rootBroadcast('YANGMAN_DESELECT_REQUESTS', { broadcastingCtrl: vm });
vm.mainList.toggleReqSelection(!event.ctrlKey, requestObj);
- $scope.setHistoryReqsSelected(vm.requestList.selectedRequests.length > 0);
if (!event.ctrlKey){
vm.showData(requestObj, true);
}
}
+ /**
+ * Mark only requestObj in current list as selected
+ * Used for example when user clicks on request submenu
+ * @param requestObj
+ */
+ function selectOnlyThisRequest(requestObj){
+ vm.mainList.toggleReqSelection(true, requestObj);
+ }
+
/**
* Deselect history requests
*/
- function deselectAllRequests(){
- vm.mainList.deselectReqs();
+ function deselectAllFilteredReqs(){
+ vm.mainList.deselectAllFilteredItems(vm.mainList === vm.collectionList ? filterCollReq : vm.filterReq);
+ }
+
+ function deselectAllRequests() {
+ vm.mainList.deselectAllItems();
}
/**
* Select history requests
*/
- function selectAllRequests(){
- deselectAllRequests();
- vm.mainList.dateGroups.forEach(function (group){
- vm.mainList.selectReqs(group.requests);
- });
+ function selectAllFilteredReqs(){
+ vm.mainList.selectAllFilteredItems(vm.mainList === vm.collectionList ? filterCollReq : vm.filterReq);
+ }
+
+ /**
+ * Use when selecting filtered requests if they are saved to some collection
+ * Additional filter is if the collection of the request is expanded
+ * @param request
+ * @returns {*|boolean}
+ */
+ function filterCollReq(request) {
+ return vm.collectionList.getCollection(request.collection).expanded && vm.filterReq(request);
}
/**
'app/yangman/controllers/request-header.controller',
'app/yangman/controllers/request-data.controller',
'app/yangman/services/yangman.services',
+ 'app/yangman/services/handle-file.services',
'app/yangman/services/yangman-design.services',
'app/yangman/services/requests.services',
'app/yangman/services/parameters.services',
$scope.setApi = setApi;
$scope.setDataStore = setDataStore;
$scope.setGlobalParams = setGlobalParams;
- $scope.setHistoryReqsSelected = setHistoryReqsSelected;
$scope.setJsonView = setJsonView;
$scope.setLeftPanel = setLeftPanel;
$scope.setModule = setModule;
* @param parametersList
*/
function setParametersList(parametersList) {
- console.debug('setting params to $scope', parametersList);
$scope.parametersList = parametersList;
- //$scope.rootBroadcast('YANGMAN_REFRESH_PARAMS_IN_CM');
}
- /**
- * Set if any history requests are selected in history tab
- * @param {boolean} selected
- */
- function setHistoryReqsSelected(selected) {
- $scope.historyReqsSelected = selected;
- }
/**
* Broadcast from this main controller to all children ctrls
* @constructor
* @param ParsingJsonService
*/
- function BaseListModel(ParsingJsonService) {
+ function BaseListModel($filter, ParsingJsonService) {
var self = this;
+ /**
+ * General list of all objects to simply treat them
+ * @type {Array}
+ */
+ self.list = [];
+ /**
+ * Simple list of selected items from self.list
+ * @type {Array}
+ */
+ self.selectedItems = [];
+
self.addFromJSON = addFromJSON;
- self.addRequestToList = addRequestToList;
- self.createEntry = createEntry;
- self.errorEditCbk = errorEditCbk;
+ self.addItemToList = addItemToList;
+ self.createItem = createItem;
self.loadListFromStorage = loadListFromStorage;
- self.refresh = refresh;
self.saveToStorage = saveToStorage;
- self.successfullEditCbk = successfullEditCbk;
self.setName = setName;
+ self.selectAllFilteredItems = selectAllFilteredItems;
+ self.deselectAllFilteredItems = deselectAllFilteredItems;
+ self.getSelectedItems = getSelectedItems;
+ self.deselectAllItems = deselectAllItems;
- function setName(name) {
- self.name = name;
+ function deselectAllItems() {
+ self.list.forEach(function (item) {
+ item.selected = false;
+ });
+ self.selectedItems = [];
}
- function createEntry(elem) {
- return elem;
+ /**
+ * @returns {Array}
+ */
+ function getSelectedItems(filterFunc) {
+ if (filterFunc) {
+ return $filter('filter')(self.selectedItems, filterFunc);
+ }
+ else {
+ return self.selectedItems;
+ }
}
- function addRequestToList(){}
+ /**
+ * Mark all items matching filter as selected
+ * Toggle only items matching filter, other items let be as they are
+ * @param filterFunc function returning boolean
+ */
+ function selectAllFilteredItems(filterFunc) {
+ $filter('filter')(self.list, filterFunc).forEach(function (item) {
+ item.selected = true;
+ if (self.selectedItems.indexOf(item) === -1){
+ self.selectedItems.push(item);
+ }
+ });
+ }
- function refresh(){}
+ /**
+ * Mark all requests matching filter as deselected
+ * Toggle only requests matching filter, other requests let be as they are
+ * @param filterFunc
+ */
+ function deselectAllFilteredItems(filterFunc) {
+ $filter('filter')(self.list, filterFunc).forEach(function (item) {
+ item.selected = false;
+ self.selectedItems.splice(self.selectedItems.indexOf(item), 1);
+ });
+ }
- function successfullEditCbk(){}
+ function setName(name) {
+ self.name = name;
+ }
+
+ function createItem(elem) {
+ return elem;
+ }
- function errorEditCbk(){}
+ function addItemToList(){}
/**
* Loading from localStorage
if (storageList){
self.clear();
ParsingJsonService.parseJson(storageList).map(function (elem) {
- return self.createEntry(elem);
+ return self.createItem(elem);
}).forEach(function (elem) {
- self.addRequestToList(elem);
+ self.addItemToList(elem);
});
}
}
*/
function addFromJSON(json) {
json.forEach(function (elem) {
- var req = self.createEntry(elem);
- self.addRequestToList(req);
+ var item = self.createItem(elem);
+ self.addItemToList(item);
});
}
}
* @param ParsingJsonService
* @param RequestsService
*/
- function CollectionListModel(ParsingJsonService, RequestsService){
+ function CollectionListModel($filter, ParsingJsonService, RequestsService){
- BaseListModel.call(this, ParsingJsonService);
+ BaseListModel.call(this, $filter, ParsingJsonService);
/* jshint validthis: true */
var self = this;
+ /**
+ * Array of collections in which are requests from self.list groupped
+ * @type {Array}
+ */
self.collections = [];
- self.selectedRequests = [];
- self.addRequestToList = addRequestToList;
+ self.addItemToList = addItemToList;
self.clear = clear;
self.collectionExists = collectionExists;
- self.createEntry = createEntry;
+ self.createItem = createItem;
self.deleteCollection = deleteCollection;
self.deleteRequestItem = deleteRequestItem;
self.duplicateCollection = duplicateCollection;
self.getCollectionInJSON = getCollectionInJSON;
self.getExpandedCollectionNames = getExpandedCollectionNames;
self.expandCollectionByNames = expandCollectionByNames;
+ self.getCollectionInRawJSON = getCollectionInRawJSON;
/**
*
return JSON.stringify(self.toJSON(collectionName));
}
+ function getCollectionInRawJSON(collectionName){
+ return self.toJSON(collectionName);
+ }
+
+
/**
* @param collObj
*/
*/
function toggleReqSelection(onlyOneSelected, reqObj){
- self.collections.forEach(function (collection){
- collection.data.forEach(function (req){
- req.selected = reqObj === req;
+ //self.collections.forEach(function (collection){
+ // collection.data.forEach(function (req){
+ // req.selected = reqObj === req;
+ // });
+ //});
+
+ if (onlyOneSelected){
+ self.selectedItems.forEach(function (req){
+ req.selected = false;
});
- });
+ self.selectedItems = [];
+ }
+
+ if (reqObj.selected && !onlyOneSelected){
+ self.selectedItems.splice(self.selectedItems.indexOf(reqObj), 1);
+ }
+
+ reqObj.selected = (reqObj.selected && onlyOneSelected) || !reqObj.selected;
+ if (reqObj.selected){
+ self.selectedItems.push(reqObj);
+ }
}
/**
* @param elem
* @returns {HistoryRequest|*}
*/
- function createEntry(elem) {
+ function createItem(elem) {
return RequestsService.createHistoryRequestFromElement(elem);
}
*
* @param reqObj
*/
- function addRequestToList(reqObj){
+ function addItemToList(reqObj){
+ self.list.push(reqObj);
if (reqObj.collection) {
var col = null;
if (self.collectionExists(reqObj.collection)) {
function clear() {
self.collections = [];
+ self.selectedItems = [];
+ self.list = [];
}
/**
return RequestsService.createHistoryRequest(elem.sentData, elem.receivedData, elem.path,
elem.method, elem.status, elem.name, elem.collection);
}).forEach(function (elem) {
- self.addRequestToList(elem);
+ self.addItemToList(elem);
});
}
}
/**
* Base history list object
+
* @constructor
* @param ParsingJsonService
* @param RequestsService
*/
function HistoryListModel($filter, ParsingJsonService, RequestsService){
- BaseListModel.call(this, ParsingJsonService);
+ BaseListModel.call(this, $filter, ParsingJsonService);
/* jshint validthis: true */
var self = this;
- self.list = [];
+
+
+ /**
+ * Array of groups in which are requests from self.list groupped
+ * @type {Array}
+ */
self.dateGroups = [];
- self.selectedRequests = [];
- self.addRequestToList = addRequestToList;
+ self.addItemToList = addItemToList;
self.clear = clear;
- self.createEntry = createEntry;
+ self.createItem = createItem;
self.deleteRequestItem = deleteRequestItem;
self.deselectReqs = deselectReqs;
self.selectReqs = selectReqs;
self.toggleReqSelection = toggleReqSelection;
self.getNewestRequest = getNewestRequest;
+
/**
* Get request with max timestamp (was executed as the last)
*/
*/
function toggleReqSelection(onlyOneSelected, reqObj){
if (onlyOneSelected){
- self.selectedRequests.forEach(function (req){
+ self.selectedItems.forEach(function (req){
req.selected = false;
});
- self.selectedRequests = [];
+ self.selectedItems = [];
}
if (reqObj.selected && !onlyOneSelected){
- self.selectedRequests.splice(self.selectedRequests.indexOf(reqObj), 1);
+ self.selectedItems.splice(self.selectedItems.indexOf(reqObj), 1);
}
reqObj.selected = (reqObj.selected && onlyOneSelected) || !reqObj.selected;
if (reqObj.selected){
- self.selectedRequests.push(reqObj);
+ self.selectedItems.push(reqObj);
}
}
* @param elem
* @returns {HistoryRequest|*}
*/
- function createEntry(elem) {
+ function createItem(elem) {
return RequestsService.createHistoryRequestFromElement(elem);
}
*
* @param reqObj
*/
- function addRequestToList(reqObj){
+ function addItemToList(reqObj){
self.list.push(reqObj);
addElemToListDateGroup(reqObj);
}
function clear() {
self.list = [];
self.dateGroups = [];
- self.selectedRequests = [];
+ self.selectedItems = [];
}
/**
* Mark all history requests as deselected
*/
function deselectReqs(){
- self.selectedRequests.forEach(function (request){
+ self.selectedItems.forEach(function (request){
request.selected = false;
});
- self.selectedRequests = [];
+ self.selectedItems = [];
}
/**
function selectReqs(requestsList){
requestsList.forEach(function (reqObj){
reqObj.selected = true;
- self.selectedRequests.push(reqObj);
+ self.selectedItems.push(reqObj);
});
}
}
* @param ParsingJsonService
* @param ParametersService
*/
- function ParametersListModel(ParsingJsonService, ParametersService){
+ function ParametersListModel($filter, ParsingJsonService, ParametersService){
- BaseListModel.call(this, ParsingJsonService);
+ BaseListModel.call(this, $filter, ParsingJsonService);
/* jshint validthis: true */
var self = this;
self.list = [];
- self.addRequestToList = addRequestToList;
+ self.addItemToList = addItemToList;
self.clear = clear;
- self.createEntry = createEntry;
+ self.createItem = createItem;
self.deleteParameterItem = deleteParameterItem;
self.setName = setName;
self.addEmptyItem = addEmptyItem;
ParsingJsonService.parseJson(data).map(function (elem) {
return ParametersService.createParameter(elem);
}).forEach(function (elem) {
- self.addRequestToList(elem);
+ self.addItemToList(elem);
});
}
}
* Add empty param to list
*/
function addEmptyItem() {
- self.addRequestToList(self.createEntry());
+ self.addItemToList(self.createItem());
}
function removeEmptyParams() {
* @param elem
* @returns {Parameter|*}
*/
- function createEntry(element) {
+ function createItem(element) {
if (!element){
element = {
name: '',
*
* @param paramObj
*/
- function addRequestToList(paramObj){
+ function addItemToList(paramObj){
self.list.push(paramObj);
}
-define(['angular'], function (angular) {
+define([], function () {
'use strict';
- angular.module('app.yangman').service('HandleFileService', HandleFileService);
+ angular.module('app.yangman').service('YMHandleFileService', YMHandleFileService);
- function HandleFileService(){
+ function YMHandleFileService(){
var service = {
downloadFile: downloadFile,
};
*/
function downloadFile(filename, data, format, charset, successCbk, errorCbk){
try {
- var blob = new Blob([data], { type: 'application/' + format + '; ' + charset + ';' }),
+ var blob = new Blob([JSON.stringify(data, null, 4)], { type: 'application/' + format + '; ' + charset + ';' }),
downloadLink = angular.element('<a></a>');
downloadLink.attr('href', window.URL.createObjectURL(blob));
angular.module('app.yangman').service('ParametersService', ParametersService);
- ParametersService.$inject = ['ParsingJsonService'];
+ ParametersService.$inject = ['$filter', 'ParsingJsonService'];
- function ParametersService(ParsingJsonService){
+ function ParametersService($filter, ParsingJsonService){
var service = {};
* @returns {*}
*/
function createEmptyParametersList(name){
- var result = new ParametersListModel(ParsingJsonService, service);
+ var result = new ParametersListModel($filter, ParsingJsonService, service);
result.setName(name);
return result;
}
* @returns {CollectionList}
*/
function createEmptyCollectionList(name){
- var result = new CollectionListModel(ParsingJsonService, service);
+ var result = new CollectionListModel($filter, ParsingJsonService, service);
result.setName(name);
return result;
}
'ENV',
'ParsingJsonService',
'RequestsService',
+ 'PathUtilsService',
];
YangUtilsRestangularService,
ENV,
ParsingJsonService,
- RequestsService
+ RequestsService,
+ PathUtilsService
){
var service = {
cutUrl: cutUrl,
prepareAllRequestData: prepareAllRequestData,
prepareReceivedData: prepareReceivedData,
putIntoObj: putIntoObj,
+ setSrcDataByDataType: setSrcDataByDataType,
validateFile: validateFile,
};
* @param destinationObj
*/
function putIntoObj(sourceObj, destinationObj, containter){
- Object.keys(sourceObj).forEach(function(prop){
- destinationObj[containter] = destinationObj[containter] ? destinationObj[containter] : {};
- destinationObj[containter][prop] = sourceObj[prop];
- });
+ if ( sourceObj ) {
+ Object.keys(sourceObj).forEach(function(prop){
+ destinationObj[containter] = destinationObj[containter] ? destinationObj[containter] : {};
+ destinationObj[containter][prop] = sourceObj[prop];
+ });
+ }
}
/**
if ( outputType === 'form' ){
var dObj = {};
+
+ if ( !sData ) {
+ sData = {};
+ sData[node.label] = {};
+ }
+
putIntoObj(rData, dObj, node.label);
putIntoObj(sData[node.label] ? sData[node.label] : sData, dObj, node.label);
return dObj;
return result ? rIndex : null;
}
+ /**
+ * Apply all parametrized values into request (data, url, pathArray)
+ * @param allPreparedData
+ * @param params
+ * @param selSubApiCopy
+ * @param requestUrl
+ */
+ function setParametrizedData(allPreparedData, params, selSubApiCopy, requestUrl){
+ allPreparedData.reqFullUrl = RequestsService.applyParamsToStr(params, requestUrl);
+
+ // apply parametrized value into request data in string form
+ allPreparedData.reqString =
+ selSubApiCopy ? RequestsService.applyParamsToStr(params, selSubApiCopy.buildApiRequestString()) : '';
+
+ if ( !angular.equals(allPreparedData.reqFullUrl, requestUrl) && selSubApiCopy ){
+ // fill parametrized data into path array
+ PathUtilsService.fillPath(selSubApiCopy.pathArray, allPreparedData.reqFullUrl);
+ }
+
+ allPreparedData.reqData = RequestsService.applyParamsToObj(params, allPreparedData.srcData);
+ }
+
+ /**
+ * Set source data into request object based on shown data type
+ * @param allPreparedData
+ * @param node
+ * @param requestData
+ * @param dataType
+ */
+ function setSrcDataByDataType(allPreparedData, node, requestData, dataType){
+ if ( dataType === 'form' && node){
+ node.buildRequest(RequestBuilderService, requestData, node.module);
+ allPreparedData.srcData = angular.copy(requestData);
+ }
+ else {
+ allPreparedData.srcData = requestData;
+ }
+ }
+
/**
* Prepare all necessary data for executing or saving request
* @param selectedApi
function prepareAllRequestData(selectedApi, selectedSubApi, operation, node, dataType, requestUrl, requestData,
params) {
var allPreparedData = {
- customRestangular: null,
- headers: {},
- operation: '',
- reqString:
- selectedSubApi ?
- RequestsService.applyParamsToStr(params, selectedSubApi.buildApiRequestString()) : '',
- reqHeaders: {},
- reqData: '',
- srcData: '',
- };
-
- if ( dataType === 'form' && node){
- node.buildRequest(RequestBuilderService, requestData, node.module);
- allPreparedData.srcData = angular.copy(requestData);
- }
- else {
- allPreparedData.srcData = requestData;
- }
-
- allPreparedData.reqData = RequestsService.applyParamsToObj(params, allPreparedData.srcData);
+ customRestangular: null,
+ headers: {},
+ operation: '',
+ reqString: '',
+ reqHeaders: {},
+ reqData: '',
+ srcData: '',
+ reqFullUrl: '',
+ },
+ selSubApiCopy = angular.copy(selectedSubApi);
+ setSrcDataByDataType(allPreparedData, node, requestData, dataType);
+ setParametrizedData(allPreparedData, params, selSubApiCopy, requestUrl);
// prepare req data
if (operation === 'GET' || operation === 'DELETE'){
}
else if ( operation === 'POST' ){
- if ( selectedSubApi ) {
+ if ( selSubApiCopy ) {
allPreparedData.reqData = YangUtilsService.postRequestData(
allPreparedData.reqData,
allPreparedData.reqString,
- selectedSubApi
+ selSubApiCopy
);
}
}
// set correct host into restangular based on shown data type and prepare data
if ( dataType === 'req-data' ){
- requestUrl = RequestsService.applyParamsToStr(params, requestUrl);
- var parser = locationHelper(requestUrl, ['pathname', 'origin']),
+ var parser = locationHelper(allPreparedData.reqFullUrl, ['pathname', 'origin']),
raParam = '';
YangUtilsRestangularService.setBaseUrl(parser.origin);
<!-- sorting -->
<md-button ng-click="reqList.toggleCollectionsSort()"
ng-disabled="reqList.collectionList.collections.length <= 1">
- <md-icon class="material-icons clickable" >
- sort
- </md-icon>
- <md-tooltip md-direction="bottom">{{ ( reqList.collectionsSortAsc ? 'YANGMAN_SORT_DESC' : 'YANGMAN_SORT_ASC' )| translate}}</md-tooltip>
+ <md-icon class="material-icons clickable" > sort</md-icon>
+ <md-tooltip md-direction="bottom">
+ {{ ( reqList.collectionsSortAsc ? 'YANGMAN_SORT_COLLECTIONS_DESC' : 'YANGMAN_SORT_COLLECTIONS_ASC' )| translate}}
+ </md-tooltip>
</md-button>
<!-- /sorting -->
+ <!-- save -->
+ <md-button ng-click="reqList.showDgSaveReq($event)"
+ ng-disabled="reqList.mainList.getSelectedItems(reqList.filterCollReq).length === 0">
+ <md-icon class="material-icons clickable">
+ save
+ </md-icon>
+ <md-tooltip md-direction="bottom">{{'YANGMAN_REQS_SAVE_TO_COL'| translate}}</md-tooltip>
+ </md-button>
+ <!-- /save -->
+
<!-- importing -->
<input type="file" accept=".json" id="importCollection" on-read-file="reqList.readCollectionFromFile($fileContent)">
<md-button>
</md-button>
<!-- /importing -->
- <!-- delete collections -->
- <md-button ng-click="reqList.clearCollectionList($event)"
- ng-disabled="!reqList.mainList.collections.length">
- <md-icon class="material-icons clickable" >
- delete_forever
- </md-icon>
- <md-tooltip md-direction="bottom">{{'YANGMAN_DELETE_COLLECTIONS' | translate}}</md-tooltip>
- </md-button>
- <!-- / delete collections -->
+ <md-menu layout-align="center start">
+ <md-button ng-disabled="!reqList.mainList.list.length" aria-label="menu" ng-click="$mdOpenMenu()">
+ <md-icon class="material-icons clickable"> delete</md-icon>
+ <md-tooltip md-direction="bottom">{{'YANGMAN_DELETE_OPTIONS' | translate}}</md-tooltip>
+ </md-button>
+ <md-menu-content>
+ <!-- delete selected -->
+ <md-menu-item>
+ <md-button aria-label="{{'YANGMAN_REQS_DELETE'| translate}}"
+ ng-click="reqList.showDgDeleteRequests($event)"
+ ng-disabled="reqList.mainList.getSelectedItems(reqList.filterCollReq).length === 0">
+ <md-icon class="material-icons clickable">
+ delete
+ </md-icon>
+ {{'YANGMAN_REQS_DELETE'| translate}}
+ </md-button>
+ </md-menu-item>
+ <!-- / delete selected -->
+ <!-- clear collections -->
+ <md-menu-item>
+ <md-button aria-label="{{'YANGMAN_DELETE_COLLECTIONS' | translate}}"
+ ng-click="reqList.clearCollectionList($event)">
+ <md-icon class="material-icons clickable">
+ delete_forever
+ </md-icon>
+ {{'YANGMAN_DELETE_COLLECTIONS' | translate}}
+ </md-button>
+ </md-menu-item>
+ <!-- / clear history -->
+ </md-menu-content>
+ </md-menu>
+ <!-- / menu for deleting and clearing -->
+
+ <!-- menu for selecting and deselecting-->
+ <md-menu layout-align="center start">
+ <md-button ng-disabled="( !reqList.mainList.list.length)" aria-label="menu" ng-click="$mdOpenMenu()">
+ <md-icon class="material-icons clickable">
+ playlist_add_check
+ </md-icon>
+ <md-tooltip md-direction="bottom">{{'YANGMAN_SELECT_OPTIONS' | translate}}</md-tooltip>
+ </md-button>
+ <md-menu-content>
+ <!-- select all -->
+ <md-menu-item>
+ <md-button aria-label="{{'YANGMAN_SELECT_ALL' | translate}}"
+ ng-click="reqList.selectAllFilteredRequests()">
+ <md-icon class="material-icons clickable">
+ done
+ </md-icon>
+ {{'YANGMAN_SELECT_ALL' | translate}}
+ </md-button>
+ </md-menu-item>
+ <!-- /select all -->
+ <!-- deselect all -->
+ <md-menu-item>
+ <md-button aria-label="{{'YANGMAN_DESELECT_ALL' | translate}}"
+ ng-click="reqList.deselectAllFilteredRequests()"
+ ng-disabled="reqList.mainList.getSelectedItems(reqList.filterCollReq).length === 0">
+ <md-icon class="material-icons clickable">
+ close
+ </md-icon>
+ {{'YANGMAN_DESELECT_ALL' | translate}}
+ </md-button>
+ </md-menu-item>
+ <!-- / deselect all -->
+ </md-menu-content>
+ </md-menu>
+ <!-- / menu for selecting and deselecting -->
</md-content>
<md-divider></md-divider>
<md-list ng-show="collection.expanded" class="yangmanModule__requests-list__collection__requests">
- <div ng-repeat="request in collection.data"
+ <div ng-repeat="request in collection.data | filter: reqList.filterReq"
layout="row"
class="yangmanModule__requests-list__item-container"
ng-include src="globalViewPath + 'leftpanel/request-item.tpl.html'">
</md-input-container>
<!-- save -->
- <md-button ng-click="reqList.showDgSaveReq($event, main.currentPath)"
- ng-disabled="!reqList.mainList.selectedRequests.length">
+ <md-button ng-click="reqList.showDgSaveReq($event)"
+ ng-disabled="!reqList.mainList.getSelectedItems(reqList.filterReq).length">
<md-icon class="material-icons clickable">
save
</md-icon>
<!-- menu for deleting and clearing-->
<md-menu layout-align="center start">
<md-button ng-disabled="!reqList.mainList.list.length" aria-label="menu" ng-click="$mdOpenMenu()">
- <md-icon class="material-icons clickable">
- delete
- </md-icon>
+ <md-icon class="material-icons clickable"> delete</md-icon>
<md-tooltip md-direction="bottom">{{'YANGMAN_DELETE_OPTIONS' | translate}}</md-tooltip>
</md-button>
<md-menu-content>
<md-menu-item>
<md-button aria-label="{{'YANGMAN_REQS_DELETE'| translate}}"
ng-click="reqList.showDgDeleteRequests($event)"
- ng-disabled="!(reqList.mainList.selectedRequests.length || reqList.mainList.selectedRequests.length)">
- <md-icon class="material-icons clickable">
- delete
- </md-icon>
+ ng-disabled="!reqList.mainList.getSelectedItems(reqList.filterReq).length">
+ <md-icon class="material-icons clickable"> delete</md-icon>
{{'YANGMAN_REQS_DELETE'| translate}}
</md-button>
</md-menu-item>
<!-- clear history -->
<md-menu-item>
<md-button aria-label="{{'YANGMAN_DELETE_HISTORY' | translate}}"
- ng-click="reqList.clearHistoryList($event)">
- <md-icon class="material-icons clickable">
- delete_forever
- </md-icon>
+ ng-click="reqList.clearHistoryList($event)"
+ ng-disabled="!reqList.mainList.list.length">
+ <md-icon class="material-icons clickable"> delete_forever</md-icon>
{{'YANGMAN_DELETE_HISTORY' | translate}}
</md-button>
</md-menu-item>
<!-- menu for selecting and deselecting-->
<md-menu layout-align="center start">
- <md-button ng-disabled="( !reqList.mainList.list.length)" aria-label="menu" ng-click="$mdOpenMenu()">
+ <md-button ng-disabled="!reqList.mainList.list.length" aria-label="menu" ng-click="$mdOpenMenu()">
<md-icon class="material-icons clickable">
playlist_add_check
</md-icon>
<!-- select all -->
<md-menu-item>
<md-button aria-label="{{'YANGMAN_SELECT_ALL' | translate}}"
- ng-click="reqList.selectAllRequests()"
- ng-disabled="(reqList.mainList.selectedRequests.length === reqList.mainList.list.length)">
+ ng-click="reqList.selectAllFilteredRequests()">
<md-icon class="material-icons clickable">
done
</md-icon>
<!-- deselect all -->
<md-menu-item>
<md-button aria-label="{{'YANGMAN_DESELECT_ALL' | translate}}"
- ng-click="reqList.deselectAllRequests()"
- ng-disabled="!(reqList.mainList.selectedRequests.length && reqList.mainList.list.length)">
+ ng-click="reqList.deselectAllFilteredRequests()" ng-disabled="reqList.mainList.getSelectedItems(reqList.filterReq).length === 0">
<md-icon class="material-icons clickable">
close
</md-icon>
layout-align="center start"
ng-class="{selected: request.selected}">
- <md-button aria-label="menu" class="md-primary" ng-click="$mdOpenMenu()">
+ <md-button aria-label="menu" class="md-primary" ng-click="reqList.selectOnlyThisRequest(request); $mdOpenMenu()">
<i class="material-icons">menu</i>
</md-button>
filter: paramsAdmin.filterParam |
orderBy: paramsAdmin.sortFunc : !paramsAdmin.sortAsc
track by $index">
-
<!-- name input -->
<md-input-container>
<label>{{'YANGMAN_PARAM_KEY' | translate}}</label>
color: @dashedBorderColor;
}
+ button, md-menu button{
+ margin: 6px 0 0 0;
+ min-width: 35px;
+ }
+
+
+
+
+
.md-has-icon.modules-list-search{
padding: 2px 25px;
margin: 0;
}
> button{
- margin: 6px 10px 0 0;
+ margin: 6px 0 0 0;
height: 30px;
- min-width: 30px;
+ min-width: 35px;
padding: 0;
}
md-menu{
margin: 0;
height: 30px;
- min-width: 30px;
+ min-width: 35px;
padding: 0;
> button{
- min-width: 30px;
+ min-width: 35px;
}
}
.selected{
button{
- background-color: rgba(158,158,158,0.2);
+ //background-color: rgba(158,158,158,0.2);
}
}
.selected{
button{
- background-color: rgba(158,158,158,0.2);
+ //background-color: rgba(158,158,158,0.2);
}
}
}