diff --git a/src/common.js b/src/common.js
index 9bf56c62e9..a94479daf4 100644
--- a/src/common.js
+++ b/src/common.js
@@ -3269,10 +3269,16 @@
'id': 'processing',
'class': 'text-center'
});
- this.el.append(jQuery('', {
+ var label = jQuery('', {
'class': 'label label-info',
- 'text': Sao.i18n.gettext('Processing...')
- }));
+ 'text': Sao.i18n.gettext('Processing'),
+ }).appendTo(this.el);
+ for (var i = 0; i < 3; i ++) {
+ label.append(jQuery('', {
+ 'class': 'dot',
+ 'text': '.',
+ }));
+ }
this.el.hide();
jQuery(function() {
this.el.appendTo('body');
diff --git a/src/sao.less b/src/sao.less
index b2398ca135..0a66690e50 100644
--- a/src/sao.less
+++ b/src/sao.less
@@ -839,11 +839,28 @@ input.column-boolean {
}
}
+@keyframes blink {
+ 50% {
+ color: transparent;
+ }
+}
+
#processing {
position: fixed;
top: 0px;
width: 100%;
z-index: 2000;
+
+ .dot {
+ animation: 1s blink infinite;
+
+ &:nth-child(2) {
+ animation-delay: 250ms;
+ }
+ &:nth-child(3) {
+ animation-delay: 500ms;
+ }
+ }
}
.scrollbar {