Skip to content

Commit 469ad43

Browse files
committed
Fix "saving" div, set display: none it when it isn't active
[#95683166] So it doesn't overlap and doesn't block any other elements (e.g. buttons).
1 parent 164f38c commit 469ad43

File tree

3 files changed

+22
-29
lines changed

3 files changed

+22
-29
lines changed

app/assets/javascripts/image_question_drawing_tool.js.coffee

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ class ImageQuestionDrawingTool
7878
proxy: DRAWING_TOOL_PROXY
7979
})
8080

81+
@save_indicator = SaveIndicator.instance()
82+
8183
# See: https://www.pivotaltracker.com/story/show/77973722
8284
@drawing_tool.setStrokeColor('#e66665') if @is_snapshot_question()
8385

@@ -123,11 +125,11 @@ class ImageQuestionDrawingTool
123125
@$displayed_answer.html(data.answer_html)
124126
@update_display()
125127
@hide_dialog()
126-
@show_saved()
128+
@save_indicator.showSaved()
127129
@set_dialog_buttons_enabled(true)
128130
stopWaiting()
129131
).on('ajax:error', (e, xhr, status, error) =>
130-
@save_failed()
132+
@save_indicator.showSaveFailed()
131133
@set_dialog_buttons_enabled(true)
132134
stopWaiting()
133135
)
@@ -136,7 +138,7 @@ class ImageQuestionDrawingTool
136138
$('#modal-dialog').html "<div class='dialog-error'>#{message}</div>"
137139
$('#modal-dialog').dialog(title: "Network error", modal: true, dialogClass:"network-error")
138140
stopWaiting()
139-
@save_failed()
141+
@save_indicator.showSaveFailed()
140142
@set_dialog_buttons_enabled(true)
141143

142144
take_interactive_snapshot: ->
@@ -212,22 +214,8 @@ class ImageQuestionDrawingTool
212214
@drawing_tool.resetHistory()
213215
)
214216

215-
show_saved: ->
216-
@saveTimer = setTimeout ->
217-
$("#save").html("Saved.")
218-
# Fade out.
219-
$("#save").animate({"opacity": "0"}, "slow")
220-
, 1000
221-
222-
save_failed: ->
223-
$("#save").html("Save failed!")
224-
225-
show_saving: ->
226-
$("#save").html("Saving...")
227-
$("#save").animate({"opacity": "1.0"}, "fast")
228-
229217
start_saving: ->
230-
@show_saving()
218+
@save_indicator.showSaving()
231219
@set_dialog_buttons_enabled(false)
232220
startWaiting t('PLEASE_WAIT_SAVING_DRAWING')
233221
# Clear selection so it's not visible on the screenshot.

app/assets/javascripts/save-indicator.coffee

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,33 +11,34 @@ class SaveIndicator
1111
@$elem = $(id)
1212
@clear() # start hidden.
1313

14-
clear: () ->
14+
clear: ->
15+
@$elem.removeClass('msg-visible')
1516
@$elem.removeClass('error')
16-
@$elem.css('opacity',0)
17+
@$elem.css('opacity', 0)
1718

1819
showSaveFailed: (message="Save failed!") ->
19-
@$elem.removeClass("pending")
20+
@$elem.addClass('msg-visible')
2021
@$elem.addClass("error")
2122
@$elem.html(message)
2223

2324
showUnauthorized: (message="Unauthorized!") ->
24-
@$elem.removeClass("pending")
25-
@$elem.addClass("error")
25+
@$elem.addClass('msg-visible')
26+
@$elem.addClass('error')
2627
@$elem.html(message)
2728

2829
showSaved: (message="Saved.") ->
2930
# Wait a ½ second before actually displaying:
3031
@saveTimer = setTimeout =>
31-
@$elem.removeClass("error")
32-
@$elem.removeClass("pending")
32+
@$elem.addClass('msg-visible')
33+
@$elem.removeClass('error')
3334
@$elem.html(message)
34-
@$elem.animate({'opacity': '0'}, 'slow') # Fade out.
35+
@$elem.animate({'opacity': '0'}, {duration: 'slow', complete: => @clear()}) # Fade out.
3536
, 500
3637

3738
showSaving: ->
38-
@$elem.removeClass("error")
39-
@$elem.addClass("pending")
40-
@$elem.html("Saving...")
39+
@$elem.addClass('msg-visible')
40+
@$elem.removeClass('error')
41+
@$elem.html('Saving...')
4142
@$elem.css({'opacity': '0.5'})
4243
@$elem.animate({'opacity': '1.0'}, 'fast')
4344

app/assets/stylesheets/save-on-change.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
right: 20px;
1515
background-color: rgba( lighten($med-blue, 20%), 0.9 );
1616
border: 1px solid lighten($med-blue, 17%);
17+
display: none;
1718
@include border-radius(3px);
1819
@include trans;
1920
&.error {
@@ -24,6 +25,9 @@
2425
&.saved {
2526
// background-color: #EEE;
2627
}
28+
&.msg-visible {
29+
display: block;
30+
}
2731
}//save
2832
.question.did_try_to_navigate {
2933
.missing_required {

0 commit comments

Comments
 (0)