This repository was archived by the owner on Jan 10, 2021. It is now read-only.
File tree Expand file tree Collapse file tree 7 files changed +109
-3
lines changed
Expand file tree Collapse file tree 7 files changed +109
-3
lines changed Original file line number Diff line number Diff line change @@ -16,11 +16,11 @@ let init = (app) => {
1616 all_tags : [ ] ,
1717 add_tag_text : "" ,
1818 length_check : false ,
19+ tag_wrong : false ,
1920 user_email : user_email ,
2021
2122 } ;
2223
23-
2424 app . reindex = ( a ) => {
2525 let idx = 0 ;
2626 for ( p of a ) {
@@ -120,6 +120,13 @@ let init = (app) => {
120120
121121 } ;
122122
123+
124+ app . sleep = ( ms ) => {
125+ return function ( x ) {
126+ return new Promise ( resolve => setTimeout ( ( ) => resolve ( x ) , ms ) ) ;
127+ } ;
128+ } ;
129+
123130 app . saveTag = ( tag_index ) => {
124131
125132 let tag = app . data . all_tags [ tag_index ] ;
@@ -143,10 +150,20 @@ let init = (app) => {
143150 app . addTag = ( ) => {
144151
145152 let val = app . data . add_tag_text ;
153+
146154 if ( val . trim ( ) . length === 0 ) {
147155 app . data . length_check = true ;
148156 return ;
149157 }
158+
159+ if ( sluggo . checkTagsString ( val ) == false ) {
160+ app . data . tag_wrong = true ;
161+ app . sleep ( 3000 ) ( )
162+ . then ( ( ) => {
163+ app . data . tag_wrong = false ;
164+ } ) ;
165+ return ;
166+ }
150167 app . data . length_check = false ;
151168
152169 app . data . text_check = false ;
Original file line number Diff line number Diff line change @@ -16,6 +16,7 @@ let init = (app) => {
1616 options : tags ,
1717 bio_empty : false ,
1818 tag_empty : false ,
19+ tag_wrong : false ,
1920 admin : admin === "True" ? true : false ,
2021
2122 // Complete.
@@ -29,6 +30,13 @@ let init = (app) => {
2930 }
3031
3132 if ( app . data . bio_text . trim ( ) . length !== 0 ) {
33+
34+
35+ if ( sluggo . checkTagsList ( app . data . selected ) == false ) {
36+ app . data . tag_wrong = true ;
37+ return ;
38+ }
39+
3240 axios . post ( add_user_url , {
3341 bio : app . data . bio_text ,
3442 tags : app . data . selected
Original file line number Diff line number Diff line change @@ -16,12 +16,71 @@ sluggo.capitalizeString = (str) => {
1616sluggo . isOverdue = ( dueDate ) => {
1717 // get current date
1818 let currDateTime = new Date ( new Date ( ) . toDateString ( ) ) ;
19- // round due date
19+ // round due date
2020 let fixedDueDate = new Date ( new Date ( dueDate ) . getTime ( ) + ( new Date ( ) ) . getTimezoneOffset ( ) * 60 * 1000 )
2121
2222 let difference = currDateTime . getTime ( ) - fixedDueDate . getTime ( ) ;
23-
23+
2424 console . log ( difference ) ;
2525
2626 return ( difference > 0 ) ;
2727}
28+
29+
30+ sluggo . checkTagsList = ( tag_list ) => {
31+
32+ if ( tag_list . length === 0 ) {
33+ return true ;
34+ }
35+
36+ let patt = / ^ [ \w ] + $ / ;
37+
38+ let matches = tag_list . filter ( ( e ) => e . match ( patt ) ) ;
39+
40+
41+ if ( matches . length < tag_list . length ) {
42+ return false ;
43+ }
44+
45+ return true ;
46+ } ;
47+
48+
49+ sluggo . checkTagsString = ( tag ) => {
50+
51+ if ( tag . length === 0 ) {
52+ return true ;
53+ }
54+
55+ let patt = / ^ [ \w ] + $ / ;
56+
57+ let matches = patt . test ( tag ) ;
58+
59+
60+ if ( ! matches ) {
61+ return false ;
62+ }
63+
64+ return true ;
65+ } ;
66+
67+
68+
69+
70+ sluggo . checkNameString = ( name ) => {
71+
72+ if ( name . length === 0 ) {
73+ return true ;
74+ }
75+
76+ let patt = / ^ [ \w ] + $ / ;
77+
78+ let matches = patt . test ( name ) ;
79+
80+
81+ if ( ! matches ) {
82+ return false ;
83+ }
84+
85+ return true ;
86+ } ;
Original file line number Diff line number Diff line change @@ -19,6 +19,8 @@ let init = (app) => {
1919 is_pending : false ,
2020 error : false ,
2121 success : false ,
22+ tag_wrong : false ,
23+ name_wrong : false ,
2224 id : id ,
2325 selected : "" ,
2426 isAdmin : admin == "True" ,
@@ -52,6 +54,8 @@ let init = (app) => {
5254 } ;
5355
5456
57+
58+
5559 app . updateCurrent = ( ) => {
5660 let user = app . data . current_user ;
5761
@@ -63,6 +67,20 @@ let init = (app) => {
6367 return ;
6468 }
6569
70+ if ( sluggo . checkTagsList ( user . tags_list ) == false ) {
71+ app . data . tag_wrong = true ;
72+ app . show_value ( 0 ) ;
73+ return ;
74+ }
75+
76+ if ( sluggo . checkNameString ( user . full_name ) == false ) {
77+ app . data . name_wrong = true ;
78+ app . show_value ( 0 ) ;
79+ return ;
80+ }
81+
82+ app . data . tag_wrong = false ;
83+ app . data . name_wrong = false ;
6684
6785 axios . post ( edit_user_url , { bio : user . bio ,
6886 role : app . data . selected ,
Original file line number Diff line number Diff line change 160160 </ div >
161161 </ div >
162162 < p v-if ="length_check " class ="has-text-danger "> Tag cannot be blank </ p >
163+ < p v-if ="tag_wrong " class ="has-text-danger "> Tags must be one word and alphanumeric.</ p >
163164 </ div >
164165 </ div >
165166
Original file line number Diff line number Diff line change 3232 </ template >
3333 </ v-select >
3434 < p v-if ="tag_empty " class ="has-text-danger "> Please create at least one tag</ p >
35+ < p v-if ="tag_wrong " class ="has-text-danger "> Tags must be one word and alphanumeric.</ p >
3536 </ div >
3637 < div class ="field ">
3738 < span class ="subtitle "> Bio</ span >
Original file line number Diff line number Diff line change 2222 < div class ="control ">
2323 < input v-if ="checkUser() " v-model ="current_user.full_name " class ="input is-hovered " type ="text ">
2424 < input v-else disabled v-model ="current_user.full_name " class ="input is-hovered " type ="text ">
25+ < p v-if ="name_wrong " class ="has-text-danger "> No special characters allowed</ p >
2526 </ div >
2627 </ div >
2728
3233 < v-select v-if ="checkUnapproved() " multiple v-model ="current_user.tags_list " :options ="options "> </ v-select >
3334 < v-select v-else-if ="checkUser() || checkAdmin() " taggable multiple push-tags v-model ="current_user.tags_list " :options ="options "> </ v-select >
3435 < v-select v-else disabled multiple v-model ="current_user.tags_list "> </ v-select >
36+ < p v-if ="tag_wrong " class ="has-text-danger "> Tags must be one word and alphanumeric.</ p >
3537 </ div >
3638
3739 <!-- Role Field -->
You can’t perform that action at this time.
0 commit comments