diff --git a/app/assets/javascripts/groups/index.js b/app/assets/javascripts/groups/index.js index 934e3b8e58015f92225cb26e677b05ce1dc5dbc4..f9fe3f7f3418b89271c4e2fadda1ef5952c51071 100644 --- a/app/assets/javascripts/groups/index.js +++ b/app/assets/javascripts/groups/index.js @@ -1,11 +1,26 @@ +/* eslint-disable no-unused-vars */ + import Vue from 'vue'; import GroupsStore from './stores/groups_store'; +import GroupsService from './services/groups_service'; $(() => { + const appEl = document.querySelector('.js-groups-list-holder'); + const groupsStore = new GroupsStore(); + const groupsService = new GroupsService(appEl.dataset.endpoint); const GroupsApp = new Vue({ - el: document.querySelector('.js-groups-list-holder'), + el: appEl, data: groupsStore, + mounted() { + groupsService.getGroups() + .then((response) => { + this.groups = response.json(); + }) + .catch(() => { + // TODO: Handle error + }); + }, }); }); diff --git a/app/assets/javascripts/groups/services/groups_service.js b/app/assets/javascripts/groups/services/groups_service.js new file mode 100644 index 0000000000000000000000000000000000000000..4c5ce87f39620f0bbc48c669799b13afbaff7894 --- /dev/null +++ b/app/assets/javascripts/groups/services/groups_service.js @@ -0,0 +1,14 @@ +import Vue from 'vue'; +import VueResource from 'vue-resource'; + +Vue.use(VueResource); + +export default class GroupsService { + constructor(endpoint) { + this.groups = Vue.resource(endpoint); + } + + getGroups() { + return this.groups.get(); + } +} diff --git a/app/views/dashboard/groups/_groups.html.haml b/app/views/dashboard/groups/_groups.html.haml index d33ee450b294ef8b99d5812eb5098c7daf6dde1b..9e19b6bc34766def95210218f9b89782f54c1ef3 100644 --- a/app/views/dashboard/groups/_groups.html.haml +++ b/app/views/dashboard/groups/_groups.html.haml @@ -1,4 +1,4 @@ -.js-groups-list-holder +.js-groups-list-holder{ data: { endpoint: dashboard_groups_path(format: :json) } } %ul.content-list - @groups.each do |group| - group_member = group.group_members.find_by(user_id: current_user)