* @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;
self.createParamsFromJson = createParamsFromJson;
self.isNameUnique = isNameUnique;
self.removeEmptyParams = removeEmptyParams;
+ self.applyValsForFilters = applyValsForFilters;
+ self.clone = clone;
+
+ /**
+ * Create copy of parameters list model
+ */
+ function clone() {
+ var result = ParametersService.createEmptyParametersList(self.name);
+ self.list.forEach(function (param) {
+ result.addItemToList(param.clone());
+ });
+ return result;
+ }
+
+ /**
+ * Apply all parameters names and values for filtering
+ */
+ function applyValsForFilters() {
+ self.list.forEach(function (param) {
+ param.applyValsForFilters();
+ });
+ }
/**
* Returns false if name is already used
* @returns {boolean}
*/
function isNameUnique(nameValue) {
- return nameValue.length === 0 || self.list.filter(function (item) {
+ return !nameValue || self.list.filter(function (item) {
return item.name === nameValue;
}).length === 1;
}
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() {
self.list = self.list.filter(function (param) {
- return param.name.length > 0;
+ return param.name && param.name.length > 0;
});
}
* @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);
}