File tree Expand file tree Collapse file tree 6 files changed +223
-0
lines changed Expand file tree Collapse file tree 6 files changed +223
-0
lines changed Original file line number Diff line number Diff line change 1+ <template >
2+ <div >
3+ <v-card flat >
4+ <v-list >
5+ <v-list-tile
6+ v-for =" org in orgsData"
7+ :key =" org.name"
8+ @click =" viewOrg(org.name)"
9+ avatar
10+ ripple
11+ >
12+ <v-list-tile-avatar >
13+ <img :src =" org.avatar" >
14+ </v-list-tile-avatar >
15+
16+ <v-list-tile-content >
17+ <v-list-tile-title v-html =" org.name" ></v-list-tile-title >
18+ </v-list-tile-content >
19+ </v-list-tile >
20+ </v-list >
21+ </v-card >
22+ </div >
23+ </template >
24+
25+ <script >
26+ export default {
27+ name: ' OrgList' ,
28+ computed: {
29+ orgsData () {
30+ return this .$store .getters .orgsData ;
31+ }
32+ },
33+ methods: {
34+ viewOrg (name ) {
35+ this .$router .push ({ name: ' orgView' , params: { name: name } });
36+ }
37+ }
38+ };
39+ </script >
40+
41+ <style lang="scss" scoped>
42+ </style >
Original file line number Diff line number Diff line change 1+ <template >
2+ <div >
3+ <v-card flat ripple >
4+ <v-layout justify-center row >
5+ <v-flex >
6+ <v-avatar size =" 80" >
7+ <img :src =" userData.dp" >
8+ </v-avatar >
9+ </v-flex >
10+ <v-flex >
11+ <div class =" username ml-3" >{{userData.username}}</div >
12+ <div class =" github-name ml-3" >{{userData.githubName}}</div >
13+ </v-flex >
14+ </v-layout >
15+ </v-card >
16+ </div >
17+ </template >
18+
19+ <script >
20+ export default {
21+ name: ' UserDetails' ,
22+ computed: {
23+ userData () {
24+ return this .$store .getters .userData ;
25+ }
26+ }
27+ };
28+ </script >
29+
30+ <style lang="scss" scoped>
31+ .username {
32+ font-size : 20px ;
33+ }
34+ .github-name {
35+ color : grey ;
36+ font-size : 15px ;
37+ }
38+ </style >
Original file line number Diff line number Diff line change 1+ <template >
2+ <div >
3+ <div v-if =" !isLoading" >
4+ <v-card flat >
5+ <OrgDetails :dp =" org.avatar_url" :name =" org.login" />
6+ <OrgRepos :orgName =" org.login" :repos =" orgRepos" />
7+ </v-card >
8+ </div >
9+
10+ <div v-if =" isLoading" >
11+ <img src =" @/assets/loaders/block.svg" alt =" loading..." >
12+ </div >
13+ </div >
14+ </template >
15+
16+ <script >
17+ import OrgDetails from ' ./OrgDetails' ;
18+ import OrgRepos from ' ./OrgRepos' ;
19+ import axios from ' axios' ;
20+ import AxiosHelper from ' ../../config/AxiosHelper' ;
21+ import AuthService from ' ../../services/authService' ;
22+
23+ const authService = new AuthService ();
24+
25+ export default {
26+ name: ' Org' ,
27+ data () {
28+ return {
29+ org: [],
30+ orgRepos: [],
31+ isLoading: false
32+ };
33+ },
34+ components: {
35+ OrgDetails,
36+ OrgRepos
37+ },
38+ computed: {
39+ name () {
40+ return this .$route .params .name ;
41+ }
42+ },
43+ methods: {
44+ loadOrg () {
45+ axios
46+ .get (` ${ AxiosHelper .baseUrl } /orgs/${ this .name } ` , {
47+ headers: {
48+ Authorization: ` token ${ authService .getToken ()} `
49+ }
50+ })
51+ .then (res => {
52+ this .org = res .data ;
53+ this .loadOrgRepos ();
54+ })
55+ .catch (err => console .log (err));
56+ },
57+
58+ // Can be done in a single call
59+ loadOrgRepos () {
60+ axios
61+ .get (` ${ AxiosHelper .baseUrl } /orgs/${ this .name } /repos` , {
62+ headers: {
63+ Authorization: ` token ${ authService .getToken ()} `
64+ }
65+ })
66+ .then (res => {
67+ this .isLoading = false ;
68+ this .orgRepos = res .data ;
69+ })
70+ .catch (err => console .log (err));
71+ }
72+ },
73+ created () {
74+ this .isLoading = true ;
75+ this .loadOrg ();
76+ }
77+ };
78+ </script >
79+
80+ <style lang="scss" scoped>
81+ </style >
Original file line number Diff line number Diff line change 1+ <template >
2+ <div >
3+ <v-layout class =" ma-5" justify-center >
4+ <div v-if =" !isLoading" >
5+ <UserDetails />
6+ <div class =" mt-5 orgs" >Organizations</div >
7+ <OrgList />
8+ </div >
9+ <div v-if =" isLoading" >
10+ <img src =" @/assets/loaders/block.svg" alt =" loading..." >
11+ </div >
12+ </v-layout >
13+ </div >
14+ </template >
15+
16+ <script >
17+ import UserDetails from ' ../components/home/UserDetails' ;
18+ import OrgList from ' ../components/home/OrgList' ;
19+
20+ export default {
21+ name: ' HomeView' ,
22+ computed: {
23+ isLoading () {
24+ return this .$store .state .user == ' ' && this .$store .state .userOrgs == ' '
25+ ? true
26+ : false ;
27+ }
28+ },
29+ components: {
30+ UserDetails,
31+ OrgList
32+ },
33+ created () {
34+ this .$store .dispatch (' loadUser' );
35+ this .$store .dispatch (' loadUserOrgs' );
36+ }
37+ };
38+ </script >
39+
40+ <style lang="scss" scoped>
41+ .orgs {
42+ font-size : 20px ;
43+ }
44+ </style >
You can’t perform that action at this time.
0 commit comments