1 define(['app/yangman/models/baselist.model'], function (BaseListModel){
5 * Base parameters list object
7 * @param ParsingJsonService
8 * @param ParametersService
10 function ParametersListModel($filter, ParsingJsonService, ParametersService){
12 BaseListModel.call(this, $filter, ParsingJsonService);
14 /* jshint validthis: true */
18 self.addItemToList = addItemToList;
20 self.createItem = createItem;
21 self.deleteParameterItem = deleteParameterItem;
22 self.setName = setName;
23 self.addEmptyItem = addEmptyItem;
25 self.createParamsFromJson = createParamsFromJson;
26 self.isNameUnique = isNameUnique;
27 self.removeEmptyParams = removeEmptyParams;
28 self.applyValsForFilters = applyValsForFilters;
31 * Apply all parameters names and values for filtering
33 function applyValsForFilters() {
34 self.list.forEach(function (param) {
35 param.applyValsForFilters();
40 * Returns false if name is already used
44 function isNameUnique(nameValue) {
45 return !nameValue || self.list.filter(function (item) {
46 return item.name === nameValue;
51 * Using when importing data from json file
54 function createParamsFromJson(data){
57 ParsingJsonService.parseJson(data).map(function (elem) {
58 return ParametersService.createParameter(elem);
59 }).forEach(function (elem) {
60 self.addItemToList(elem);
66 * Get all parameters in json for exporting
70 return self.list.map(function (param){
71 return param.toJSON();
79 function setName(name) {
84 * Add empty param to list
86 function addEmptyItem() {
87 self.addItemToList(self.createItem());
90 function removeEmptyParams() {
91 self.list = self.list.filter(function (param) {
92 return param.name && param.name.length > 0;
99 * @returns {Parameter|*}
101 function createItem(element) {
108 return ParametersService.createParameter(element);
115 function addItemToList(paramObj){
116 self.list.push(paramObj);
123 function deleteParameterItem(paramObj){
124 self.list.splice(self.list.indexOf(paramObj), 1);
135 self.toJSON = function () {
136 return self.list.filter(notEmptyParam).map(function (elem) {
137 return elem.toJSON();
140 function notEmptyParam(item){
146 ParametersListModel.prototype = Object.create(BaseListModel.prototype);
148 return ParametersListModel;