Skip to content

Commit 684162c

Browse files
authored
Prevent leave request submission with empty leave type (#547)
* Ensure it is impossible to submit leave form with empty type * Update the tests for new year Co-authored-by: Pavlo <pavlo@>
1 parent 81587ee commit 684162c

File tree

5 files changed

+23
-14
lines changed

5 files changed

+23
-14
lines changed

public/js/global.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -280,10 +280,19 @@ $(document).ready(function() {
280280
*/
281281
$(document).ready(function(){
282282
$('.single-click').on('click', function(e) {
283-
e.stopPropagation();
283+
var form = $(e.target).closest('form');
284+
285+
// Ensure "required" fields are populated
286+
var formIsValid = true;
287+
$(form).find('[required]').each(function(el){formIsValid = formIsValid && !! el.val()});
288+
if (formIsValid) {
289+
e.stopPropagation();
290+
} else {
291+
return;
292+
}
284293

285294
$(e.target).prop('disabled', true);
286-
var form = $(e.target).closest('form');
295+
287296
var submitName = $(e.target).attr('name');
288297
if (submitName !== undefined) {
289298
$('<input>').attr({type: 'hidden', name: submitName, value: '1'}).appendTo(form);

t/integration/leave_request/leave_request_revoke.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -186,10 +186,10 @@ describe('Revoke leave request', function(){
186186
value : "2",
187187
},{
188188
selector : 'input#from',
189-
value : `${currentYear}-05-12`,
189+
value : `${currentYear}-05-11`,
190190
},{
191191
selector : 'input#to',
192-
value : `${currentYear}-05-13`,
192+
value : `${currentYear}-05-12`,
193193
}],
194194
message : /New leave request was added/,
195195
})
@@ -200,8 +200,8 @@ describe('Revoke leave request', function(){
200200
it("Check that all days are marked as pended", function(done){
201201
check_booking_func({
202202
driver : driver,
203-
full_days : [moment.utc(`${currentYear}-05-13`)],
204-
halfs_1st_days : [moment.utc(`${currentYear}-05-12`)],
203+
full_days : [moment.utc(`${currentYear}-05-12`)],
204+
halfs_1st_days : [moment.utc(`${currentYear}-05-11`)],
205205
type : 'pended',
206206
})
207207
.then(function(){ done() });

t/integration/leave_request/leave_request_revoke_by_admin.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -114,10 +114,10 @@ describe('Revoke leave request by Admin', function(){
114114
value : "2",
115115
},{
116116
selector : 'input#from',
117-
value : `${currentYear}-05-12`,
117+
value : `${currentYear}-05-11`,
118118
},{
119119
selector : 'input#to',
120-
value : `${currentYear}-05-13`,
120+
value : `${currentYear}-05-12`,
121121
}],
122122
message : /New leave request was added/,
123123
})
@@ -128,8 +128,8 @@ describe('Revoke leave request by Admin', function(){
128128
it("Check that all days are marked as pended", function(done){
129129
check_booking_func({
130130
driver : driver,
131-
full_days : [moment.utc(`${currentYear}-05-13`)],
132-
halfs_1st_days : [moment.utc(`${currentYear}-05-12`)],
131+
full_days : [moment.utc(`${currentYear}-05-12`)],
132+
halfs_1st_days : [moment.utc(`${currentYear}-05-11`)],
133133
type : 'pended',
134134
})
135135
.then(function(){ done() });

t/integration/leave_type/leave_type_limit_next_year.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,18 +115,18 @@ describe('Leave type limits for next year: ' + next_year, function(){
115115
driver : driver,
116116
form_params : [{
117117
selector : 'input#from',
118-
value : next_year + '-05-11',
118+
value : next_year + '-05-10',
119119
},{
120120
selector : 'input#to',
121-
value : next_year + '-05-11',
121+
value : next_year + '-05-10',
122122
}],
123123
message : /New leave request was added/,
124124
})
125125
// Check that all days are marked as pended
126126
.then(function(){
127127
check_booking_func({
128128
driver : driver,
129-
full_days : [moment(next_year + '-05-11')],
129+
full_days : [moment(next_year + '-05-10')],
130130
type : 'pended',
131131
})
132132
.then(function(){ done() });

views/partials/book_leave_modal.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
<div class="form-group">
2424
<label for="leave_type" class="control-label">Leave type:</label>
25-
<select class="form-control" id="leave_type" name="leave_type">
25+
<select class="form-control" id="leave_type" name="leave_type" required>
2626
{{# is_force_to_explicitly_select_type_when_requesting_new_leave}}
2727
<option disabled selected value>-- select an option --</option>
2828
{{/ is_force_to_explicitly_select_type_when_requesting_new_leave}}

0 commit comments

Comments
 (0)