blob: c349741a9feef6be2d0fe04f877d25364246bb38 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
define(function(require){
'use strict';
var XABaseCollection = require('collections/XABaseCollection');
var XAGlobals = require('utils/XAGlobals');
var VXUser = require('models/VXUser');
var VXUserListBase = XABaseCollection.extend(
/** @lends VXUserListBase.prototype */
{
url: XAGlobals.baseURL + 'xusers/users',
model : VXUser,
/**
* VXUserListBase initialize method
* @augments XABaseCollection
* @constructs
*/
initialize : function() {
this.modelName = 'VXUser';
this.modelAttrName = 'vXUsers';
var multiSelect = new Backbone.Picky.MultiSelect(this);
_.extend(this, multiSelect);
this.bindErrorEvents();
this._changes = { };
this.on('change', this._onChange);
},
_onChange : function(m){
this._changes[m.id] = m;
},
changed_models: function() {
return _.chain(this._changes).values();
},
/*************************
* Non - CRUD operations
*************************/
getUsersOfGroup : function(groupId, options){
var url = XAGlobals.baseURL + 'xusers/' + groupId + '/users';
options = _.extend({
//data : JSON.stringify(postData),
contentType : 'application/json',
dataType : 'json'
}, options);
return this.constructor.nonCrudOperation.call(this, url, 'GET', options);
},
setUsersVisibility : function(postData , options){
var url = XAGlobals.baseURL + 'xusers/secure/users/visibility';
options = _.extend({
data : JSON.stringify(postData),
contentType : 'application/json',
dataType : 'json'
}, options);
return this.constructor.nonCrudOperation.call(this, url, 'PUT', options);
},
setStatus : function(postData , options){
var url = XAGlobals.baseURL + 'xusers/secure/users/activestatus';
options = _.extend({
data : JSON.stringify(postData),
contentType : 'application/json',
dataType : 'json'
}, options);
return this.constructor.nonCrudOperation.call(this, url, 'PUT', options);
},
},{
/**
* Table Cols to be passed to Backgrid
* UI has to use this as base and extend this.
*
*/
tableCols : {}
});
return VXUserListBase;
});