Skip to content
This repository was archived by the owner on Jan 10, 2021. It is now read-only.

Commit 984ba29

Browse files
committed
Checked text validation on comments and modal
1 parent 3c224e8 commit 984ba29

File tree

5 files changed

+67
-13
lines changed

5 files changed

+67
-13
lines changed

static/components/comment/comment.html

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,10 @@
3535
<div v-if="!comment.edit">
3636
{{comment.content}}
3737
</div>
38-
<textarea v-if="comment.edit" :class="{'is-danger' : comment.error}"
38+
<textarea v-if="comment.edit" :class="{'is-danger' : comment.error || comment.text_type_error}"
3939
v-model="comment.new_content" class="textarea"></textarea>
4040
<span class="has-text-danger" v-if="comment.error">Required Field</span>
41+
<span class="has-text-danger" v-if="comment.text_type_error">Field must be Alphanumeric</span>
4142
</div>
4243
</div>
4344
<div class="level" v-if="comment.edit">
@@ -55,12 +56,10 @@
5556
</div>
5657
<div class="box" v-if="edit">
5758
<div class="columns">
58-
<!--div class="column is-one-fifth">
59-
<img src="https://laughingsquid.com/wp-content/uploads/2014/11/Screenshot-2014-11-19-17.41.33.png">
60-
</div-->
6159
<div class="column">
62-
<textarea :class="{'is-danger' : error}" v-model="new_comment" class="textarea"></textarea>
60+
<textarea :class="{'is-danger' : error || text_type_error}" v-model="new_comment" class="textarea"></textarea>
6361
<span v-if="error" class="has-text-danger">Required Field</span>
62+
<span class="has-text-danger" v-if="text_type_error">Field must be Alphanumeric</span>
6463
</div>
6564
</div>
6665
<!-- i'm not sure why, but to get a level-right to display correctly, there needs to be a level left -->

static/components/comment/comment.js

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@
1919
add_url: this.add_url,
2020
edit_url: this.edit_url,
2121
delete_url: this.delete_url,
22-
error: false
22+
error: false,
23+
text_type_error: false,
2324
};
2425

2526
data = comment.methods.load(data);
@@ -33,6 +34,7 @@
3334
c.show_settings = false;
3435
c.edit = false;
3536
c.error = false;
37+
c.text_type_error = false;
3638
}
3739
return comments;
3840
};
@@ -75,6 +77,16 @@
7577
return;
7678
}
7779

80+
if (!this.new_comment || sluggo.checkNameString(this.new_comment) === false) {
81+
this.text_type_error = true;
82+
this.sleep(2000)().then(() => {
83+
this.text_type_error = false;
84+
});
85+
return;
86+
}
87+
88+
89+
7890
axios.post(this.add_url, {
7991
content: this.new_comment,
8092
ticket_id: this.ticket_id
@@ -120,7 +132,16 @@
120132
selected.error = true;
121133
this.comments.splice(idx, 1, selected);
122134
this.sleep(2000)().then(() => {
123-
selected.error = false;
135+
selected.text_type_error = false;
136+
this.comments.splice(idx, 1, selected);
137+
});
138+
return;
139+
}
140+
if (sluggo.checkNameString(selected.new_content) === false) {
141+
selected.text_type_error = true;
142+
this.comments.splice(idx, 1, selected);
143+
this.sleep(2000)().then(() => {
144+
selected.text_type_error = false;
124145
this.comments.splice(idx, 1, selected);
125146
});
126147
return;

static/components/ticket_modal/ticket_modal.html

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,18 @@
66
<div class="column is-three-quarters">
77
<div class="field">
88
<span class="subtitle">Title</span>
9-
<input type="text" v-model="ticket.ticket_title" class="input" :class="{'is-danger' : text_error}" placeholder="Enter new title here">
9+
<input type="text" v-model="ticket.ticket_title" class="input" :class="{'is-danger' : text_error || title_type_error}" placeholder="Enter new title here">
1010
<span class="has-text-danger" v-if="text_error">Required Field</span>
11+
<span class="has-text-danger" v-if="title_type_error">Field must be Alphanumeric</span>
1112
</div>
1213
<div class="field">
1314
<span class="subtitle">Tags</span>
1415
<v-select class="tag-chooser" maxHeight="100px" multiple placeholder="Choose Tags" v-model="selected" :options="options"></v-select>
1516
</div>
1617
<div class="field">
1718
<span class="subtitle">Description</span>
18-
<textarea v-model="ticket.ticket_text" class="textarea is-fullwidth" placeholder="Enter new ticket here"></textarea>
19+
<textarea v-model="ticket.ticket_text" class="textarea is-fullwidth" :class="{'is-danger' : text_type_error}" placeholder="Enter new ticket here"></textarea>
20+
<span class="has-text-danger" v-if="text_type_error">Field must be Alphanumeric</span>
1921
</div>
2022
</div>
2123
<div class="column">

static/components/ticket_modal/ticket_modal.js

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ Vue.component('v-select', VueSelect.VueSelect);
1919
assigned_user: "",
2020
text_error: false,
2121
date_error: false,
22+
title_type_error: false,
23+
text_type_error: false,
2224
time_zone: luxon.DateTime.local().zoneName
2325
};
2426
};
@@ -28,8 +30,8 @@ Vue.component('v-select', VueSelect.VueSelect);
2830
return new Promise(resolve => setTimeout(() => resolve(x), ms));
2931
};
3032
};
31-
32-
33+
34+
3335
// the data can either come in mm / dd / yyyy (on mac) or
3436
// yyyy-mm-dd because using normal things is not the safari way
3537
// so we have a function that handles that hogwash for us
@@ -71,7 +73,7 @@ Vue.component('v-select', VueSelect.VueSelect);
7173
});
7274
error = true;
7375
}
74-
76+
7577
if(!this.ticket.ticket_title || this.ticket.ticket_title.length === 0) {
7678
this.text_error = true;
7779
this.sleep(2000)().then(() => {
@@ -80,6 +82,23 @@ Vue.component('v-select', VueSelect.VueSelect);
8082
error = true;
8183
}
8284

85+
if(sluggo.checkNameString(this.ticket.ticket_title) === false) {
86+
this.title_type_error = true;
87+
this.sleep(2000)().then(() => {
88+
this.title_type_error = false;
89+
});
90+
error = true;
91+
92+
}
93+
94+
if(sluggo.checkNameString(this.ticket.ticket_text) === false) {
95+
this.text_type_error = true;
96+
this.sleep(2000)().then(() => {
97+
this.text_type_error = false;
98+
});
99+
error = true;
100+
101+
}
83102
if(!error) {
84103

85104
// TODO: convert the timestamp
@@ -99,4 +118,4 @@ Vue.component('v-select', VueSelect.VueSelect);
99118
ticket_modal.template = template.data;
100119
return ticket_modal;
101120
});
102-
})();
121+
})();

static/js/sluggo.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ sluggo.isOverdue = (dueDate) => {
2929

3030
sluggo.checkTagsList = (tag_list) => {
3131

32+
if(!tag_list) {
33+
return false;
34+
}
35+
3236
if(tag_list.length === 0) {
3337
return true;
3438
}
@@ -48,6 +52,10 @@ sluggo.checkTagsList = (tag_list) => {
4852

4953
sluggo.checkTagsString = (tag) => {
5054

55+
if(!tag) {
56+
return false;
57+
}
58+
5159
if(tag.length === 0) {
5260
return true;
5361
}
@@ -69,6 +77,11 @@ sluggo.checkTagsString = (tag) => {
6977

7078
sluggo.checkNameString = (name) => {
7179

80+
81+
if(!name) {
82+
return false;
83+
}
84+
7285
if(name.length === 0) {
7386
return true;
7487
}

0 commit comments

Comments
 (0)