kopia lustrzana https://github.com/c9/core
add loading state to the tree checkbox
rodzic
21755657a5
commit
eea9f67331
|
@ -130,8 +130,22 @@ define(function(require, exports, module) {
|
||||||
btnReloadLast.onclick = function() { commands.exec("reloadLastPlugin") };
|
btnReloadLast.onclick = function() { commands.exec("reloadLastPlugin") };
|
||||||
updateReloadLastButton();
|
updateReloadLastButton();
|
||||||
|
|
||||||
readAvailablePlugins();
|
readAvailablePlugins(function() {
|
||||||
|
if (sessionStorage.localPackages) {
|
||||||
|
loadPackage(
|
||||||
|
util.safeParseJson(sessionStorage.localPackages) || []
|
||||||
|
);
|
||||||
|
}
|
||||||
|
var updateSessionStorage = function() {
|
||||||
|
sessionStorage.localPackages = JSON.stringify(Object.keys(packages).map(function(x) {
|
||||||
|
if (packages[x] && packages[x].fromVfs && packages[x].enabled)
|
||||||
|
return packages[x].filePath;
|
||||||
|
}).filter(Boolean));
|
||||||
|
};
|
||||||
|
plugin.on("enablePackage", updateSessionStorage);
|
||||||
|
plugin.on("disablePackage", updateSessionStorage);
|
||||||
|
});
|
||||||
|
|
||||||
commands.addCommand({
|
commands.addCommand({
|
||||||
name: "reloadLastPlugin",
|
name: "reloadLastPlugin",
|
||||||
bindKey: { mac: "F4", win: "F4" },
|
bindKey: { mac: "F4", win: "F4" },
|
||||||
|
@ -162,22 +176,6 @@ define(function(require, exports, module) {
|
||||||
ext.on("register", function() {
|
ext.on("register", function() {
|
||||||
setTimeout(reloadModel);
|
setTimeout(reloadModel);
|
||||||
});
|
});
|
||||||
|
|
||||||
if (DEBUG) {
|
|
||||||
if (sessionStorage.localPackages) {
|
|
||||||
loadPackage(
|
|
||||||
util.safeParseJson(sessionStorage.localPackages) || []
|
|
||||||
);
|
|
||||||
}
|
|
||||||
var updateSessionStorage = function() {
|
|
||||||
sessionStorage.localPackages = JSON.stringify(Object.keys(packages).map(function(x) {
|
|
||||||
if (packages[x] && packages[x].fromVfs && packages[x].enabled)
|
|
||||||
return packages[x].filePath;
|
|
||||||
}).filter(Boolean));
|
|
||||||
};
|
|
||||||
plugin.on("enablePackage", updateSessionStorage);
|
|
||||||
plugin.on("disablePackage", updateSessionStorage);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var drawn;
|
var drawn;
|
||||||
|
@ -360,6 +358,7 @@ define(function(require, exports, module) {
|
||||||
var enabled = node.enabled;
|
var enabled = node.enabled;
|
||||||
if (enabled == null || node.isGroup) return "";
|
if (enabled == null || node.isGroup) return "";
|
||||||
return "<span class='checkbox "
|
return "<span class='checkbox "
|
||||||
|
+ (node.loading ? "loading" : "")
|
||||||
+ (enabled == -1
|
+ (enabled == -1
|
||||||
? "half-checked "
|
? "half-checked "
|
||||||
: (enabled ? "checked " : ""))
|
: (enabled ? "checked " : ""))
|
||||||
|
@ -723,6 +722,7 @@ define(function(require, exports, module) {
|
||||||
node.packageConfig = pkg;
|
node.packageConfig = pkg;
|
||||||
node.className = pkg.__error ? "load-error" : "";
|
node.className = pkg.__error ? "load-error" : "";
|
||||||
node.__error = pkg.__error;
|
node.__error = pkg.__error;
|
||||||
|
node.loading = pkg.loading;
|
||||||
}
|
}
|
||||||
|
|
||||||
architectApp.config.forEach(function(plugin) {
|
architectApp.config.forEach(function(plugin) {
|
||||||
|
@ -771,6 +771,7 @@ define(function(require, exports, module) {
|
||||||
other.packageConfig = node.packageConfig;
|
other.packageConfig = node.packageConfig;
|
||||||
other.filePath = node.filePath;
|
other.filePath = node.filePath;
|
||||||
other.url = node.url;
|
other.url = node.url;
|
||||||
|
other.loading = node.loading;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!node.isGroup) {
|
if (!node.isGroup) {
|
||||||
|
@ -1054,6 +1055,8 @@ define(function(require, exports, module) {
|
||||||
var id = options.rootDir + "/" + name;
|
var id = options.rootDir + "/" + name;
|
||||||
var pathMappings = {};
|
var pathMappings = {};
|
||||||
|
|
||||||
|
if (packages[name]) packages[name].loading = true;
|
||||||
|
|
||||||
unloadPlugins("plugins/" + options.name);
|
unloadPlugins("plugins/" + options.name);
|
||||||
|
|
||||||
pathMappings[id] = options.url;
|
pathMappings[id] = options.url;
|
||||||
|
@ -1062,7 +1065,13 @@ define(function(require, exports, module) {
|
||||||
|
|
||||||
if (/\.js$/.test(root)) {
|
if (/\.js$/.test(root)) {
|
||||||
require([options.url + "/" + root], function(json) {
|
require([options.url + "/" + root], function(json) {
|
||||||
json = json || require(options.id + "/" + options.packageName);
|
json = json || require(id + "/" + options.packageName);
|
||||||
|
if (!json) {
|
||||||
|
var err = new Error("Didn't provide " + id + "/" + options.packageName);
|
||||||
|
return addError("Error loading plugin", err);
|
||||||
|
}
|
||||||
|
if (json.name && json.name != name)
|
||||||
|
name = json.name;
|
||||||
getPluginsFromPackage(json, callback);
|
getPluginsFromPackage(json, callback);
|
||||||
}, function(err) {
|
}, function(err) {
|
||||||
addError("Error loading plugin", err);
|
addError("Error loading plugin", err);
|
||||||
|
@ -1102,6 +1111,7 @@ define(function(require, exports, module) {
|
||||||
packages[name].filePath = options.path;
|
packages[name].filePath = options.path;
|
||||||
packages[name].url = options.url;
|
packages[name].url = options.url;
|
||||||
packages[name].__error = new Error(message + "\n" + err.message);
|
packages[name].__error = new Error(message + "\n" + err.message);
|
||||||
|
packages[name].loading = false;
|
||||||
|
|
||||||
reloadModel();
|
reloadModel();
|
||||||
|
|
||||||
|
@ -1136,7 +1146,13 @@ define(function(require, exports, module) {
|
||||||
json.path = id;
|
json.path = id;
|
||||||
|
|
||||||
emit("enablePackage", json);
|
emit("enablePackage", json);
|
||||||
loadPlugins(plugins, callback);
|
loadPlugins(plugins, function(err, result) {
|
||||||
|
if (err) return addError("Error loading plugins", err);
|
||||||
|
if (packages[name])
|
||||||
|
packages[name].loading = false;
|
||||||
|
reloadModel();
|
||||||
|
callback && callback(err, result);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,6 +65,22 @@
|
||||||
background-color: #565656;
|
background-color: #565656;
|
||||||
background-position: -2px -18px;
|
background-position: -2px -18px;
|
||||||
}
|
}
|
||||||
|
.ace_tree .tree-row .checkbox.loading:after{
|
||||||
|
content:" ";
|
||||||
|
position:relative;
|
||||||
|
display:block;
|
||||||
|
top:0; left:0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
border-radius: 20%;
|
||||||
|
background-color: @color;
|
||||||
|
animation: scaleout 1.2s infinite ease-in-out
|
||||||
|
}
|
||||||
|
@keyframes scaleout {
|
||||||
|
0% { transform: scale(0) }
|
||||||
|
80% { transform: scale(1); opacity: 0;}
|
||||||
|
100% { transform: scale(1); opacity: 0;}
|
||||||
|
}
|
||||||
|
|
||||||
.custom-tree.ace_tree .tree-row .toggler{
|
.custom-tree.ace_tree .tree-row .toggler{
|
||||||
.image-2x("@{tree-arrow}", 20px, 10px);
|
.image-2x("@{tree-arrow}", 20px, 10px);
|
||||||
|
|
Ładowanie…
Reference in New Issue