fe 2.3.0 → 2.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/javascripts/fe/fe.common.js.erb +9 -0
- data/app/assets/javascripts/fe/fe.public.nojquery.js.erb +11 -0
- data/app/models/fe/reference_sheet.rb +4 -0
- data/lib/fe/version.rb +1 -1
- data/spec/controllers/fe/answer_pages_controller_spec.rb +13 -0
- data/spec/dummy/log/test.log +5973 -24815
- data/spec/dummy/tmp/local_secret.txt +1 -1
- data/spec/models/fe/reference_sheet_spec.rb +12 -0
- metadata +7 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 63c54a49ce10c97d77e21066af68ae2e4d138f57e1d78789a0b304f2ea26d771
|
|
4
|
+
data.tar.gz: 860211697773fc5643d50e85617065cd49697725ac2479fb644d321eac620c91
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 20f8c1697604eb9bdf58be607a9c81e86ee4dd0ca9e12e740113c173cbe1402a6371dfa9861ef6861c46b1d9fc6e9ae9f48c069dea829a130ac92d4e32f0e685
|
|
7
|
+
data.tar.gz: 498cec05620ede4dbee334badd0c2e3810c7d3719816a8a3b7c986238badc9deba878ae0a75ef0a84385330bd17a0a40a2c5cae404e5b32e6a0d688ccaf30591
|
|
@@ -59,6 +59,7 @@ window.setUpSortables = function setUpSortables() {
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
window.setUpCalendars = function setUpCalendars() {
|
|
62
|
+
if (!$.fn.datepicker) { return; }
|
|
62
63
|
let now = new Date();
|
|
63
64
|
let year = now.getFullYear() + 10;
|
|
64
65
|
$('[data-calendar]').datepicker({
|
|
@@ -68,6 +69,14 @@ window.setUpCalendars = function setUpCalendars() {
|
|
|
68
69
|
})
|
|
69
70
|
}
|
|
70
71
|
|
|
72
|
+
// A Turbo snapshot must not carry initialized pickers: jQuery UI refuses to re-init an input
|
|
73
|
+
// marked hasDatepicker, and skips appending its popup when a stale #ui-datepicker-div exists.
|
|
74
|
+
document.addEventListener('turbo:before-cache', function() {
|
|
75
|
+
if (!$.fn.datepicker) { return; }
|
|
76
|
+
$('[data-calendar].hasDatepicker').datepicker('destroy');
|
|
77
|
+
$('#ui-datepicker-div').detach();
|
|
78
|
+
});
|
|
79
|
+
|
|
71
80
|
window.setUpJsHelpers = function setUpJsHelpers() {
|
|
72
81
|
// ==================
|
|
73
82
|
// Sortable
|
|
@@ -583,6 +583,12 @@ $(document).on('ready turbo:load', function () {
|
|
|
583
583
|
});
|
|
584
584
|
<% end %>
|
|
585
585
|
|
|
586
|
+
// Keep in step with Fe::ReferenceSheet#email=, which strips the value on the server.
|
|
587
|
+
let validateEmail = $.validator.methods.email;
|
|
588
|
+
$.validator.methods.email = function(value, element, param) {
|
|
589
|
+
return validateEmail.call(this, $.trim(value), element, param);
|
|
590
|
+
};
|
|
591
|
+
|
|
586
592
|
$(document).on('click', '.save_button', function() {
|
|
587
593
|
fe.debugLog('[fe concurrency] Save button clicked');
|
|
588
594
|
fe.pageHandler.savePage($(this).closest('.answer-page'), true);
|
|
@@ -646,6 +652,11 @@ $(function() {
|
|
|
646
652
|
setUpCalendars();
|
|
647
653
|
});
|
|
648
654
|
|
|
655
|
+
document.addEventListener('turbo:load', function() {
|
|
656
|
+
fixGridColumnWidths();
|
|
657
|
+
setUpCalendars();
|
|
658
|
+
});
|
|
659
|
+
|
|
649
660
|
|
|
650
661
|
window.updateTotal = function updateTotal(id) {
|
|
651
662
|
try {
|
|
@@ -114,6 +114,10 @@ module Fe
|
|
|
114
114
|
|
|
115
115
|
def email_sent?() !self.email_sent_at.nil? end
|
|
116
116
|
|
|
117
|
+
def email=(value)
|
|
118
|
+
super(value.is_a?(String) ? value.gsub(/\A[[:space:]]+|[[:space:]]+\z/, '') : value)
|
|
119
|
+
end
|
|
120
|
+
|
|
117
121
|
# send email invite
|
|
118
122
|
def send_invite(host)
|
|
119
123
|
return if self.email.blank?
|
data/lib/fe/version.rb
CHANGED
|
@@ -76,6 +76,19 @@ describe Fe::AnswerPagesController, type: :controller do
|
|
|
76
76
|
expect(reference_sheet.reload.email).to eq('email@reference.com')
|
|
77
77
|
end
|
|
78
78
|
|
|
79
|
+
it 'strips whitespace around the reference email' do
|
|
80
|
+
reference_sheet = create(:reference_sheet, applicant_answer_sheet_id: answer_sheet.id, email: 'initial@ref.com')
|
|
81
|
+
|
|
82
|
+
put :update, params: {
|
|
83
|
+
answers: { "#{element.id}" => 'answer here' },
|
|
84
|
+
reference: { "#{reference_sheet.id}" => { email: ' email@reference.com ' } },
|
|
85
|
+
id: page.id,
|
|
86
|
+
answer_sheet_id: answer_sheet.id
|
|
87
|
+
}, xhr: true
|
|
88
|
+
|
|
89
|
+
expect(reference_sheet.reload.email).to eq('email@reference.com')
|
|
90
|
+
end
|
|
91
|
+
|
|
79
92
|
it 'should store a reference sheet answer' do
|
|
80
93
|
# create a normal applicant sheet to make sure the answer isn't saved to that
|
|
81
94
|
# ref
|