Skip to content

Commit 27bdbdb

Browse files
Loading animation add, incorrect class reference fix
1 parent 60d50ad commit 27bdbdb

File tree

5 files changed

+118
-2
lines changed

5 files changed

+118
-2
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "cache-visual-editor",
33
"printableName": "Cache Visual Editor",
44
"packageName": "VisualEditor",
5-
"version": "0.9.9",
5+
"version": "0.9.10",
66
"description": "Visual class editor for InterSystems Caché",
77
"main": "index.js",
88
"keywords": [

source/cache/REST/Content.cls

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ ClassMethod PrintXData(XDataName as %String = "") As %Status [ Private ]
2323
return $$$OK
2424
}
2525

26-
do ##class(VisualEditor.REST.StaticContent).PrintContent(xdata)
26+
do ..PrintContent(xdata)
2727
return $$$OK
2828
}
2929

source/client/js/classEditor/index.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { saveChanges } from "./changes";
66
import { Toast } from "../toast";
77
import { addChange } from "./changes";
88
import { init as initTerminal } from "./modules/terminal";
9+
import { showLoader, hideLoader } from "./loader";
910

1011
var PATH = "",
1112
INITIALIZED = false,
@@ -311,15 +312,22 @@ export function loadLevel (level) {
311312

312313
setURLHashParameter("level", PATH || undefined);
313314

315+
showLoader();
316+
314317
getList(NAMESPACE, PATH, (data) => {
318+
315319
grid.clear();
316320
CLASSES_RENDERED = {};
317321
if (PATH !== "")
318322
backButton.style.display = "";
323+
319324
data = orderData(data);
320325
for (let obj in data) {
321326
grid.applyChild(applyClass(data[obj]));
322327
}
328+
329+
hideLoader();
330+
323331
});
324332

325333
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { block } from "../domUtils";
2+
3+
let loader = null;
4+
5+
/**
6+
* Returns loader animated element markup.
7+
* @returns {HTMLElement}
8+
*/
9+
function getLoaderElement () {
10+
let b = block(`div`, `loader`),
11+
b1 = block(`div`, `inner one`),
12+
b2 = block(`div`, `inner two`),
13+
b3 = block(`div`, `inner three`);
14+
b.appendChild(b1);
15+
b.appendChild(b2);
16+
b.appendChild(b3);
17+
return b;
18+
}
19+
20+
export function showLoader () {
21+
22+
if (loader)
23+
return;
24+
25+
document.body.appendChild(loader = getLoaderElement());
26+
27+
}
28+
29+
export function hideLoader () {
30+
31+
if (loader && loader.parentNode)
32+
loader.parentNode.removeChild(loader);
33+
34+
loader = null;
35+
36+
}

source/client/scss/domUtils.scss

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,76 @@
33

44
.inline-input {
55
@include transition($defaultTransition);
6+
}
7+
8+
.loader {
9+
10+
position: fixed;
11+
top: calc(50% - 32px);
12+
left: calc(50% - 32px);
13+
width: 64px;
14+
height: 64px;
15+
border-radius: 50%;
16+
perspective: 800px;
17+
z-index: $zIndexTop + 10;
18+
19+
> .inner {
20+
21+
position: absolute;
22+
box-sizing: border-box;
23+
width: 100%;
24+
height: 100%;
25+
border-radius: 50%;
26+
box-shadow: 0 0 3px $colorFront;
27+
28+
&.one {
29+
left: 0;
30+
top: 0;
31+
animation: rotate-one 1s linear infinite;
32+
border-bottom: 3px solid $colorP2;
33+
}
34+
35+
&.two {
36+
right: 0;
37+
top: 0;
38+
animation: rotate-two 1s linear infinite;
39+
border-right: 3px solid $colorP3;
40+
}
41+
42+
&.three {
43+
right: 0;
44+
bottom: 0;
45+
animation: rotate-three 1s linear infinite;
46+
border-top: 3px solid $colorP4;
47+
}
48+
49+
}
50+
51+
}
52+
53+
@include keyframes(rotate-one) {
54+
0% {
55+
transform: rotateX(35deg) rotateY(-45deg) rotateZ(0deg);
56+
}
57+
100% {
58+
transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg);
59+
}
60+
}
61+
62+
@include keyframes(rotate-two) {
63+
0% {
64+
transform: rotateX(50deg) rotateY(10deg) rotateZ(0deg);
65+
}
66+
100% {
67+
transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg);
68+
}
69+
}
70+
71+
@include keyframes(rotate-three) {
72+
0% {
73+
transform: rotateX(35deg) rotateY(55deg) rotateZ(0deg);
74+
}
75+
100% {
76+
transform: rotateX(35deg) rotateY(55deg) rotateZ(360deg);
77+
}
678
}

0 commit comments

Comments
 (0)