1 define(['app/yangman/models/baselist.model'], function (BaseListModel){
5 * Base parameters list object
7 * @param ParsingJsonService
8 * @param ParametersService
10 function ParametersListModel(ParsingJsonService, ParametersService){
12 BaseListModel.call(this, ParsingJsonService);
14 /* jshint validthis: true */
18 self.addRequestToList = addRequestToList;
20 self.createEntry = createEntry;
21 self.deleteParameterItem = deleteParameterItem;
22 self.setName = setName;
23 self.addEmptyItem = addEmptyItem;
25 self.createParamsFromJson = createParamsFromJson;
26 self.isNameUnique = isNameUnique;
27 self.removeEmptyParams = removeEmptyParams;
30 * Returns false if name is already used
34 function isNameUnique(nameValue) {
35 return nameValue.length === 0 || self.list.filter(function (item) {
36 return item.name === nameValue;
41 * Using when importing data from json file
44 function createParamsFromJson(data){
47 ParsingJsonService.parseJson(data).map(function (elem) {
48 return ParametersService.createParameter(elem);
49 }).forEach(function (elem) {
50 self.addRequestToList(elem);
56 * Get all parameters in json for exporting
60 return self.list.map(function (param){
61 return param.toJSON();
69 function setName(name) {
74 * Add empty param to list
76 function addEmptyItem() {
77 self.addRequestToList(self.createEntry());
80 function removeEmptyParams() {
81 self.list = self.list.filter(function (param) {
82 return param.name.length > 0;
89 * @returns {Parameter|*}
91 function createEntry(element) {
98 return ParametersService.createParameter(element);
105 function addRequestToList(paramObj){
106 self.list.push(paramObj);
113 function deleteParameterItem(paramObj){
114 self.list.splice(self.list.indexOf(paramObj), 1);
125 self.toJSON = function () {
126 return self.list.filter(notEmptyParam).map(function (elem) {
127 return elem.toJSON();
130 function notEmptyParam(item){
136 ParametersListModel.prototype = Object.create(BaseListModel.prototype);
138 return ParametersListModel;