diff --git a/js/components/forms/edit_environment_role.js b/js/components/forms/edit_environment_role.js new file mode 100644 index 00000000..30f9460e --- /dev/null +++ b/js/components/forms/edit_environment_role.js @@ -0,0 +1,58 @@ +import FormMixin from '../../mixins/form' +import textinput from '../text_input' +import Selector from '../selector' +import Modal from '../../mixins/modal' +import toggler from '../toggler' + +export default { + name: 'edit-environment-role', + + mixins: [FormMixin, Modal], + + components: { + toggler, + Modal, + Selector, + textinput + }, + + props: { + choices: Array, + initialData: String, + revoke: Boolean, + }, + + data: function () { + return { + new_role: this.initialData, + } + }, + + methods: { + change: function (e) { + e.preventDefault() + this.new_role = this.revoke ? "" : e.target.value + }, + cancel: function () { + this.new_role = this.initialData + }, + }, + + computed: { + displayName: function () { + for (var arr in this.choices) { + if (this.choices[arr][0] == this.new_role) { + return this.choices[arr][1].name + } + } + return this.new_role ? this.new_role : "no access" + }, + label_class: function () { + return this.displayName === "no access" ? + "label" : "label label--success" + }, + }, + newRole: function () { + return this.revoke ? "" : this.new_role + } +} diff --git a/js/components/forms/edit_project_roles.js b/js/components/forms/edit_project_roles.js new file mode 100644 index 00000000..86d7f243 --- /dev/null +++ b/js/components/forms/edit_project_roles.js @@ -0,0 +1,23 @@ +import FormMixin from '../../mixins/form' +import Modal from '../../mixins/modal' +import toggler from '../toggler' +import EditEnvironmentRole from './edit_environment_role' + +export default { + name: 'edit-project-roles', + + mixins: [FormMixin, Modal], + + components: { + toggler, + EditEnvironmentRole, + }, + + props: { + name: String + }, + + data: function() { + return { revoke: false } + } +} diff --git a/js/index.js b/js/index.js index 52e9d83c..a91f06c2 100644 --- a/js/index.js +++ b/js/index.js @@ -14,6 +14,7 @@ import financial from './components/forms/financial' import toggler from './components/toggler' import NewProject from './components/forms/new_project' import EditEnvironmentRole from './components/forms/edit_environment_role' +import EditProjectRoles from './components/forms/edit_project_roles' import Modal from './mixins/modal' import selector from './components/selector' import BudgetChart from './components/charts/budget_chart' @@ -42,6 +43,7 @@ const app = new Vue({ CcpoApproval, LocalDatetime, EditEnvironmentRole, + EditProjectRoles, }, mounted: function() { diff --git a/templates/workspaces/members/edit.html b/templates/workspaces/members/edit.html index c997b651..856a58ba 100644 --- a/templates/workspaces/members/edit.html +++ b/templates/workspaces/members/edit.html @@ -52,6 +52,7 @@ {% for project in projects %} {% set revoke_modal_name = project.name + 'RevokeModal' %} +
+
{% endfor %}