define([
'components/common/modals',
- 'react',
- 'components/select-list/main',
- '../../api/permissions',
+ 'components/common/select-list',
'./templates'
-], function (Modal, React, SelectList, Permissions) {
+], function (Modal) {
return Modal.extend({
template: Templates['global-permissions-groups'],
onRender: function () {
- var that = this;
this._super();
- var props = {
- loadItems: function (options, callback) {
- var _data = { permission: that.options.permission, p: options.page, ps: 100 };
- options.query ? _.extend(_data, { q: options.query }) : _.extend(_data, { selected: options.selection });
- Permissions.getGroups(_data).done(function (r) {
- var paging = _.defaults({}, r.paging, { total: 0, pageIndex: 1 });
- callback(r.groups, paging);
- });
+ new window.SelectList({
+ el: this.$('#global-permissions-groups'),
+ width: '100%',
+ readOnly: false,
+ focusSearch: false,
+ format: function (item) {
+ return item.name;
},
- renderItem: function (group) {
- return group.name;
+ queryParam: 'q',
+ searchUrl: baseUrl + '/api/permissions/groups?ps=100&permission=' + this.options.permission,
+ selectUrl: baseUrl + '/api/permissions/add_group',
+ deselectUrl: baseUrl + '/api/permissions/remove_group',
+ extra: {
+ permission: this.options.permission
},
- getItemKey: function (group) {
- return group.name;
- },
- selectItem: function (group, callback) {
- Permissions.grantToGroup(that.options.permission, group.name).done(callback);
- },
- deselectItem: function (group, callback) {
- Permissions.revokeFromGroup(that.options.permission, group.name).done(callback);
+ selectParameter: 'groupName',
+ selectParameterValue: 'name',
+ parse: function (r) {
+ this.more = false;
+ return r.groups;
}
- };
- React.render(
- React.createElement(SelectList, props),
- this.$('#global-permissions-groups')[0]
- );
+ });
},
onDestroy: function () {
define([
'components/common/modals',
- 'react',
- 'components/select-list/main',
- '../../api/permissions',
+ 'components/common/select-list',
'./templates'
-], function (Modal, React, SelectList, Permissions) {
+], function (Modal) {
return Modal.extend({
template: Templates['global-permissions-users'],
onRender: function () {
- var that = this;
this._super();
- var props = {
- loadItems: function (options, callback) {
- var data = { permission: that.options.permission, p: options.page, ps: 100 };
- options.query ? _.extend(data, { q: options.query }) : _.extend(data, { selected: options.selection });
- Permissions.getUsers(data).done(function (r) {
- var paging = _.defaults({}, r.paging, { total: 0, pageIndex: 1 });
- callback(r.users, paging);
- });
+ new window.SelectList({
+ el: this.$('#global-permissions-users'),
+ width: '100%',
+ readOnly: false,
+ focusSearch: false,
+ format: function (item) {
+ return item.name + '<br><span class="note">' + item.login + '</span>';
},
- renderItem: function (user) {
- return user.name + '<br><span class="note">' + user.login + '</span>';
+ queryParam: 'q',
+ searchUrl: baseUrl + '/api/permissions/users?ps=100&permission=' + this.options.permission,
+ selectUrl: baseUrl + '/api/permissions/add_user',
+ deselectUrl: baseUrl + '/api/permissions/remove_user',
+ extra: {
+ permission: this.options.permission
},
- getItemKey: function (user) {
- return user.login;
- },
- selectItem: function (user, callback) {
- Permissions.grantToUser(that.options.permission, user.login).done(callback);
- },
- deselectItem: function (user, callback) {
- Permissions.revokeFromUser(that.options.permission, user.login).done(callback);
+ selectParameter: 'login',
+ selectParameterValue: 'login',
+ parse: function (r) {
+ this.more = false;
+ return r.users;
}
- };
- React.render(
- React.createElement(SelectList, props),
- this.$('#global-permissions-users')[0]
- );
+ });
},
onDestroy: function () {
define([
'components/common/modals',
- 'react',
- 'components/select-list/main',
- '../../api/permissions',
+ 'components/common/select-list',
'./templates'
-], function (Modal, React, SelectList, Permissions) {
+], function (Modal) {
return Modal.extend({
template: Templates['project-permissions-groups'],
onRender: function () {
- var that = this;
this._super();
- var props = {
- loadItems: function (options, callback) {
- var _data = { permission: that.options.permission, projectId: that.options.project, p: options.page, ps: 100 };
- options.query ? _.extend(_data, { q: options.query }) : _.extend(_data, { selected: options.selection });
- Permissions.getGroups(_data).done(function (r) {
- var paging = _.defaults({}, r.paging, { total: 0, pageIndex: 1 });
- callback(r.groups, paging);
- });
+ new window.SelectList({
+ el: this.$('#project-permissions-groups'),
+ width: '100%',
+ readOnly: false,
+ focusSearch: false,
+ format: function (item) {
+ return item.name;
},
- renderItem: function (group) {
- return group.name;
+ queryParam: 'q',
+ searchUrl: baseUrl + '/api/permissions/groups?ps=100&permission=' + this.options.permission + '&projectId=' + this.options.project,
+ selectUrl: baseUrl + '/api/permissions/add_group',
+ deselectUrl: baseUrl + '/api/permissions/remove_group',
+ extra: {
+ permission: this.options.permission,
+ projectId: this.options.project
},
- getItemKey: function (group) {
- return group.name;
- },
- selectItem: function (group, callback) {
- Permissions.grantToGroup(that.options.permission, group.name, that.options.project).done(callback);
- },
- deselectItem: function (group, callback) {
- Permissions.revokeFromGroup(that.options.permission, group.name, that.options.project).done(callback);
+ selectParameter: 'groupName',
+ selectParameterValue: 'name',
+ parse: function (r) {
+ this.more = false;
+ return r.groups;
}
- };
- React.render(
- React.createElement(SelectList, props),
- this.$('#project-permissions-groups')[0]
- );
+ });
},
onDestroy: function () {
this.options.refresh && this.options.refresh();
this._super();
+ },
+
+ serializeData: function () {
+ return _.extend(Modal.prototype.serializeData.apply(this, arguments), {
+ projectName: this.options.projectName
+ })
}
});
new GroupsView({
permission: permission,
project: this.props.project.uuid,
+ projectName: this.props.project.name,
refresh: this.props.refresh
}).render();
},
new UsersView({
permission: permission,
project: this.props.project.uuid,
+ projectName: this.props.project.name,
refresh: this.props.refresh
}).render();
},
<div class="modal-head">
- <h2>Update Groups</h2>
+ <h2>Update Groups of "{{projectName}}"</h2>
</div>
<div class="modal-body">
<div class="js-modal-messages"></div>
<div class="modal-head">
- <h2>Update Users</h2>
+ <h2>Update Users of "{{projectName}}"</h2>
</div>
<div class="modal-body">
<div class="js-modal-messages"></div>
define([
'components/common/modals',
- 'react',
- 'components/select-list/main',
- '../../api/permissions',
+ 'components/common/select-list',
'./templates'
-], function (Modal, React, SelectList, Permissions) {
+], function (Modal) {
return Modal.extend({
template: Templates['project-permissions-users'],
onRender: function () {
- var that = this;
this._super();
- var props = {
- loadItems: function (options, callback) {
- var data = { permission: that.options.permission, projectId: that.options.project, p: options.page, ps: 100 };
- options.query ? _.extend(data, { q: options.query }) : _.extend(data, { selected: options.selection });
- Permissions.getUsers(data).done(function (r) {
- var paging = _.defaults({}, r.paging, { total: 0, pageIndex: 1 });
- callback(r.users, paging);
- });
+ new window.SelectList({
+ el: this.$('#project-permissions-users'),
+ width: '100%',
+ readOnly: false,
+ focusSearch: false,
+ format: function (item) {
+ return item.name + '<br><span class="note">' + item.login + '</span>';
},
- renderItem: function (user) {
- return user.name + '<br><span class="note">' + user.login + '</span>';
+ queryParam: 'q',
+ searchUrl: baseUrl + '/api/permissions/users?ps=100&permission=' + this.options.permission + '&projectId=' + this.options.project,
+ selectUrl: baseUrl + '/api/permissions/add_user',
+ deselectUrl: baseUrl + '/api/permissions/remove_user',
+ extra: {
+ permission: this.options.permission,
+ projectId: this.options.project
},
- getItemKey: function (user) {
- return user.login;
- },
- selectItem: function (user, callback) {
- Permissions.grantToUser(that.options.permission, user.login, that.options.project).done(callback);
- },
- deselectItem: function (user, callback) {
- Permissions.revokeFromUser(that.options.permission, user.login, that.options.project).done(callback);
+ selectParameter: 'login',
+ selectParameterValue: 'login',
+ parse: function (r) {
+ this.more = false;
+ return r.users;
}
- };
- React.render(
- React.createElement(SelectList, props),
- this.$('#project-permissions-users')[0]
- );
+ });
},
onDestroy: function () {
this.options.refresh && this.options.refresh();
this._super();
+ },
+
+ serializeData: function () {
+ return _.extend(Modal.prototype.serializeData.apply(this, arguments), {
+ projectName: this.options.projectName
+ })
}
});
projects_role.role=Role Membership For New
projects_role.groups=Groups
projects_role.admin=Administer
-projects_role.admin.desc=Ability to access project settings and perform administration tasks. (Users will also need "Browse" permission)
+projects_role.admin.desc=Access project settings and perform administration tasks. (Users will also need "Browse" permission)
projects_role.issueadmin=Administer Issues
-projects_role.issueadmin.desc=Grants the permission to perform advanced editing on issues: marking an issue False Positive / Won't Fix or changing an Issue's severity. (Users will also need "Browse" permission)
+projects_role.issueadmin.desc=Perform advanced editing on issues: marking an issue False Positive / Won't Fix, and changing an Issue's severity. (Users will also need "Brose" permission)
projects_role.user=Browse
-projects_role.user.desc=Ability to access a project, browse its measures, and create/edit issues for it.
+projects_role.user.desc=Access a project, browse its measures, and create/edit issues for it.
projects_role.codeviewer=See Source Code
-projects_role.codeviewer.desc=Ability to view the project's source code. (Users will also need "Browse" permission)
+projects_role.codeviewer.desc=View the project's source code. (Users will also need "Browse" permission)
projects_role.bulk_change=Bulk Change
projects_role.apply_template=Apply Permission Template
projects_role.apply_template_to_xxx=Apply Permission Template To "{0}"