From 262753bde6bafea3c284700cef30569dc07897ce Mon Sep 17 00:00:00 2001 From: Yehor Butko Date: Fri, 4 Jan 2019 13:32:21 +0200 Subject: [PATCH] V3-1029 Update list Project Logic (#966) --- pkg/satellite/satellitedb/dbx/satellitedb.dbx | 1 + pkg/satellite/satellitedb/dbx/satellitedb.dbx.go | 10 +++++----- pkg/satellite/satellitedb/projects.go | 2 +- web/satellite/src/views/Dashboard.vue | 13 +++++++++---- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/pkg/satellite/satellitedb/dbx/satellitedb.dbx b/pkg/satellite/satellitedb/dbx/satellitedb.dbx index 8a319a39c..c43e71854 100644 --- a/pkg/satellite/satellitedb/dbx/satellitedb.dbx +++ b/pkg/satellite/satellitedb/dbx/satellitedb.dbx @@ -46,6 +46,7 @@ read all ( select project join project.id = project_member.project_id where project_member.member_id = ? + orderby asc project.name ) create project ( ) update project ( where project.id = ? ) diff --git a/pkg/satellite/satellitedb/dbx/satellitedb.dbx.go b/pkg/satellite/satellitedb/dbx/satellitedb.dbx.go index ae492ddfc..14ef1e3e2 100644 --- a/pkg/satellite/satellitedb/dbx/satellitedb.dbx.go +++ b/pkg/satellite/satellitedb/dbx/satellitedb.dbx.go @@ -1167,11 +1167,11 @@ func (obj *sqlite3Impl) Get_Project_By_Id(ctx context.Context, } -func (obj *sqlite3Impl) All_Project_By_ProjectMember_MemberId(ctx context.Context, +func (obj *sqlite3Impl) All_Project_By_ProjectMember_MemberId_OrderBy_Asc_Project_Name(ctx context.Context, project_member_member_id ProjectMember_MemberId_Field) ( rows []*Project, err error) { - var __embed_stmt = __sqlbundle_Literal("SELECT projects.id, projects.name, projects.description, projects.terms_accepted, projects.created_at FROM projects JOIN project_members ON projects.id = project_members.project_id WHERE project_members.member_id = ?") + var __embed_stmt = __sqlbundle_Literal("SELECT projects.id, projects.name, projects.description, projects.terms_accepted, projects.created_at FROM projects JOIN project_members ON projects.id = project_members.project_id WHERE project_members.member_id = ? ORDER BY projects.name") var __values []interface{} __values = append(__values, project_member_member_id.value()) @@ -1804,14 +1804,14 @@ func (rx *Rx) All_ProjectMember_By_MemberId(ctx context.Context, return tx.All_ProjectMember_By_MemberId(ctx, project_member_member_id) } -func (rx *Rx) All_Project_By_ProjectMember_MemberId(ctx context.Context, +func (rx *Rx) All_Project_By_ProjectMember_MemberId_OrderBy_Asc_Project_Name(ctx context.Context, project_member_member_id ProjectMember_MemberId_Field) ( rows []*Project, err error) { var tx *Tx if tx, err = rx.getTx(ctx); err != nil { return } - return tx.All_Project_By_ProjectMember_MemberId(ctx, project_member_member_id) + return tx.All_Project_By_ProjectMember_MemberId_OrderBy_Asc_Project_Name(ctx, project_member_member_id) } func (rx *Rx) Create_ApiKey(ctx context.Context, @@ -2006,7 +2006,7 @@ type Methods interface { project_member_member_id ProjectMember_MemberId_Field) ( rows []*ProjectMember, err error) - All_Project_By_ProjectMember_MemberId(ctx context.Context, + All_Project_By_ProjectMember_MemberId_OrderBy_Asc_Project_Name(ctx context.Context, project_member_member_id ProjectMember_MemberId_Field) ( rows []*Project, err error) diff --git a/pkg/satellite/satellitedb/projects.go b/pkg/satellite/satellitedb/projects.go index fcbc88e87..4f026dd78 100644 --- a/pkg/satellite/satellitedb/projects.go +++ b/pkg/satellite/satellitedb/projects.go @@ -31,7 +31,7 @@ func (projects *projects) GetAll(ctx context.Context) ([]satellite.Project, erro // GetByUserID is a method for querying all projects from the database by userID. func (projects *projects) GetByUserID(ctx context.Context, userID uuid.UUID) ([]satellite.Project, error) { - projectsDbx, err := projects.db.All_Project_By_ProjectMember_MemberId(ctx, dbx.ProjectMember_MemberId(userID[:])) + projectsDbx, err := projects.db.All_Project_By_ProjectMember_MemberId_OrderBy_Asc_Project_Name(ctx, dbx.ProjectMember_MemberId(userID[:])) if err != nil { return nil, err } diff --git a/web/satellite/src/views/Dashboard.vue b/web/satellite/src/views/Dashboard.vue index 78cacf13a..d4b26033b 100644 --- a/web/satellite/src/views/Dashboard.vue +++ b/web/satellite/src/views/Dashboard.vue @@ -21,17 +21,22 @@ import { removeToken } from '@/utils/tokenManager'; @Component({ beforeMount: async function() { + // TODO: should place here some animation while all needed data is fetching let response: RequestResponse = await this.$store.dispatch('getUser'); - if (response.isSuccess) { + if (!response.isSuccess) { + this.$store.dispatch('error', response.errorMessage); + this.$router.push('/login'); + removeToken(); return; } - this.$store.dispatch('error', response.errorMessage); - this.$router.push('/login'); - removeToken(); + let getProjectsResponse: RequestResponse = await this.$store.dispatch('fetchProjects'); + if (getProjectsResponse.isSuccess && getProjectsResponse.data.length > 0) { + this.$store.dispatch('selectProject', getProjectsResponse.data[0].id); + } }, components: { NavigationArea,