mirror of https://gitee.com/bigwinds/arangodb
Modified karma tests to work with the same concatenated file delivered to the frontend.
This commit is contained in:
parent
cc1a52d159
commit
a4b34b2fe3
|
@ -163,6 +163,12 @@
|
||||||
'clusterFrontend/scss/{,*/}*.{scss,sass}',
|
'clusterFrontend/scss/{,*/}*.{scss,sass}',
|
||||||
],
|
],
|
||||||
tasks: ['sass:dev']
|
tasks: ['sass:dev']
|
||||||
|
},
|
||||||
|
concat_in_order: {
|
||||||
|
files: [
|
||||||
|
'frontend/js/{,*/}*.js'
|
||||||
|
],
|
||||||
|
tasks: ['concat_in_order:default']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -172,8 +178,13 @@
|
||||||
grunt.registerTask('default', [
|
grunt.registerTask('default', [
|
||||||
'sass:dev',
|
'sass:dev',
|
||||||
'concat_in_order:default',
|
'concat_in_order:default',
|
||||||
|
'watch'
|
||||||
|
]);
|
||||||
|
|
||||||
|
grunt.registerTask('deploy', [
|
||||||
|
'sass:dist',
|
||||||
|
'concat_in_order:default',
|
||||||
'uglify:dist'
|
'uglify:dist'
|
||||||
// 'watch'
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -2,17 +2,21 @@
|
||||||
/*global EJS, window, _, $*/
|
/*global EJS, window, _, $*/
|
||||||
(function() {
|
(function() {
|
||||||
"use strict";
|
"use strict";
|
||||||
var TemplateEngine = function() {
|
// For tests the templates are loaded some where else.
|
||||||
var exports = {};
|
// We need to use a different engine there.
|
||||||
exports.createTemplate = function(id) {
|
if (!window.hasOwnProperty("TEST_BUILD")) {
|
||||||
var template = $("#" + id.replace(".", "\\.")).html();
|
var TemplateEngine = function() {
|
||||||
return {
|
var exports = {};
|
||||||
render: function(params) {
|
exports.createTemplate = function(id) {
|
||||||
return _.template(template, params);
|
var template = $("#" + id.replace(".", "\\.")).html();
|
||||||
}
|
return {
|
||||||
|
render: function(params) {
|
||||||
|
return _.template(template, params);
|
||||||
|
}
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
return exports;
|
||||||
};
|
};
|
||||||
return exports;
|
window.templateEngine = new TemplateEngine();
|
||||||
};
|
}
|
||||||
window.templateEngine = new TemplateEngine();
|
|
||||||
}());
|
}());
|
||||||
|
|
|
@ -3594,7 +3594,18 @@ var SPECIALS = '()<>[]:;@\\,."';
|
||||||
|
|
||||||
// matches valid IPv4 addresses from the end of a string
|
// matches valid IPv4 addresses from the end of a string
|
||||||
var IPv4_REGEX = /\b(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/;
|
var IPv4_REGEX = /\b(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/;
|
||||||
var IPv6_REGEX = /^[a-fA-F\d]{0,4}$/, IPv6_REGEX_TEST = IPv6_REGEX.test.bind(IPv6_REGEX);
|
|
||||||
|
|
||||||
|
// ---- Modification -----
|
||||||
|
// Removed for Karma tests
|
||||||
|
var IPv6_REGEX = /^[a-fA-F\d]{0,4}$/;
|
||||||
|
var IPv6_REGEX_TEST;
|
||||||
|
if (!window.hasOwnProperty("TEST_BUILD")) {
|
||||||
|
IPv6_REGEX_TEST = IPv6_REGEX.test.bind(IPv6_REGEX);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// ---- End of Modification -----
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the largest number in the array.
|
* Get the largest number in the array.
|
||||||
|
@ -7175,4 +7186,4 @@ function hasOwnProperty(obj, prop) {
|
||||||
},{"./support/isBuffer":30,"_process":29,"inherits":27}],"joi":[function(require,module,exports){
|
},{"./support/isBuffer":30,"_process":29,"inherits":27}],"joi":[function(require,module,exports){
|
||||||
arguments[4][16][0].apply(exports,arguments)
|
arguments[4][16][0].apply(exports,arguments)
|
||||||
},{"./lib":10}]},{},[])("joi")
|
},{"./lib":10}]},{},[])("joi")
|
||||||
});
|
});
|
||||||
|
|
|
@ -3,11 +3,13 @@
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
// We have to start the app only in production mode, not in test mode
|
||||||
$(document).ready(function() {
|
if (!window.hasOwnProperty("TEST_BUILD")) {
|
||||||
window.App = new window.Router();
|
$(document).ready(function() {
|
||||||
Backbone.history.start();
|
window.App = new window.Router();
|
||||||
window.App.handleResize();
|
Backbone.history.start();
|
||||||
});
|
window.App.handleResize();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}());
|
}());
|
||||||
|
|
|
@ -1,512 +0,0 @@
|
||||||
/*jshint browser: true */
|
|
||||||
/*jshint unused: false */
|
|
||||||
/*global Backbone, $, window, _, templateEngine, alert*/
|
|
||||||
|
|
||||||
(function() {
|
|
||||||
"use strict";
|
|
||||||
function splitSnakeCase(snakeCase) {
|
|
||||||
var str = snakeCase.replace(/([a-z])([A-Z])/g, "$1 $2");
|
|
||||||
str = str.replace(/([a-z])([0-9])/gi, "$1 $2");
|
|
||||||
str = str.replace(/_+/, " ");
|
|
||||||
return _.map(str.split(/\s+/), function(s) {
|
|
||||||
return s.charAt(0).toUpperCase() + s.slice(1).toLowerCase();
|
|
||||||
}).join(" ");
|
|
||||||
}
|
|
||||||
window.FoxxInstalledView = Backbone.View.extend({
|
|
||||||
tagName: "div",
|
|
||||||
className: "tile",
|
|
||||||
template: templateEngine.createTemplate("foxxInstalledView.ejs"),
|
|
||||||
|
|
||||||
events: {
|
|
||||||
//"click .install": "installDialog",
|
|
||||||
//"click .purge": "removeDialog",
|
|
||||||
"click .icon_arangodb_settings2": "infoDialog"
|
|
||||||
},
|
|
||||||
|
|
||||||
renderVersion: function(e) {
|
|
||||||
var name = this.model.get("name"),
|
|
||||||
selectOptions = this.model.get("selectOptions"),
|
|
||||||
versionToRender = $("#"+name+"Select").val();
|
|
||||||
this.model.set("activeVersion", versionToRender);
|
|
||||||
|
|
||||||
var toRender = this.model.collection.findWhere({
|
|
||||||
name: name,
|
|
||||||
version: versionToRender
|
|
||||||
});
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
initialize: function(){
|
|
||||||
_.bindAll(this, "render");
|
|
||||||
var buttonConfig = [
|
|
||||||
window.modalView.createSuccessButton(
|
|
||||||
"Install", this.install.bind(this)
|
|
||||||
)
|
|
||||||
];
|
|
||||||
var buttonPurgeConfig = [
|
|
||||||
window.modalView.createDeleteButton(
|
|
||||||
"Remove", this.confirmRemovalSingle.bind(this)
|
|
||||||
)
|
|
||||||
];
|
|
||||||
var buttonInfoConfig = [
|
|
||||||
window.modalView.createDeleteButton(
|
|
||||||
"Remove", this.confirmRemovalSingle.bind(this)
|
|
||||||
),
|
|
||||||
window.modalView.createSuccessButton(
|
|
||||||
"Install", this.installDialog.bind(this)
|
|
||||||
)
|
|
||||||
];
|
|
||||||
var buttonInfoConfigUpdate = [
|
|
||||||
window.modalView.createDeleteButton(
|
|
||||||
"Remove", this.confirmRemovalSingle.bind(this)
|
|
||||||
),
|
|
||||||
window.modalView.createSuccessButton(
|
|
||||||
"Update", this.update.bind(this)
|
|
||||||
),
|
|
||||||
window.modalView.createSuccessButton(
|
|
||||||
"Install", this.installDialog.bind(this)
|
|
||||||
)
|
|
||||||
];
|
|
||||||
var buttonInfoMultipleVersionsConfig = [
|
|
||||||
window.modalView.createDeleteButton(
|
|
||||||
"Remove All", this.confirmRemovalAll.bind(this)
|
|
||||||
),
|
|
||||||
window.modalView.createDeleteButton(
|
|
||||||
"Remove", this.confirmRemovalSingle.bind(this)
|
|
||||||
),
|
|
||||||
window.modalView.createSuccessButton(
|
|
||||||
"Install", this.installDialog.bind(this)
|
|
||||||
)
|
|
||||||
];
|
|
||||||
var buttonInfoMultipleVersionsConfigUpdate = [
|
|
||||||
window.modalView.createDeleteButton(
|
|
||||||
"Remove All", this.confirmRemovalAll.bind(this)
|
|
||||||
),
|
|
||||||
window.modalView.createDeleteButton(
|
|
||||||
"Remove", this.confirmRemovalSingle.bind(this)
|
|
||||||
),
|
|
||||||
window.modalView.createSuccessButton(
|
|
||||||
"Update", this.update.bind(this)
|
|
||||||
),
|
|
||||||
window.modalView.createSuccessButton(
|
|
||||||
"Install", this.installDialog.bind(this)
|
|
||||||
)
|
|
||||||
];
|
|
||||||
this.showMod = window.modalView.show.bind(
|
|
||||||
window.modalView,
|
|
||||||
"modalTable.ejs",
|
|
||||||
"Install Application",
|
|
||||||
buttonConfig
|
|
||||||
);
|
|
||||||
this.showInfoMod = window.modalView.show.bind(
|
|
||||||
window.modalView,
|
|
||||||
"modalTable.ejs",
|
|
||||||
"Application Settings",
|
|
||||||
buttonInfoConfig
|
|
||||||
);
|
|
||||||
this.showInfoModUpdate = window.modalView.show.bind(
|
|
||||||
window.modalView,
|
|
||||||
"modalTable.ejs",
|
|
||||||
"Application Settings",
|
|
||||||
buttonInfoConfigUpdate
|
|
||||||
);
|
|
||||||
this.showInfoMultipleVersionsMod = window.modalView.show.bind(
|
|
||||||
window.modalView,
|
|
||||||
"modalTable.ejs",
|
|
||||||
"Application Settings",
|
|
||||||
buttonInfoMultipleVersionsConfig
|
|
||||||
);
|
|
||||||
this.showInfoMultipleVersionsModUpdate = window.modalView.show.bind(
|
|
||||||
window.modalView,
|
|
||||||
"modalTable.ejs",
|
|
||||||
"Application Settings",
|
|
||||||
buttonInfoMultipleVersionsConfigUpdate
|
|
||||||
);
|
|
||||||
this.showPurgeMod = window.modalView.show.bind(
|
|
||||||
window.modalView,
|
|
||||||
"modalTable.ejs",
|
|
||||||
"Remove Application",
|
|
||||||
buttonPurgeConfig
|
|
||||||
);
|
|
||||||
this.appsView = this.options.appsView;
|
|
||||||
},
|
|
||||||
|
|
||||||
//add select here too
|
|
||||||
fillPurgeValues: function(mountinfo) {
|
|
||||||
var list = [],
|
|
||||||
isSystem,
|
|
||||||
mountvars = [];
|
|
||||||
if (this.model.get("isSystem")) {
|
|
||||||
isSystem = "Yes";
|
|
||||||
} else {
|
|
||||||
isSystem = "No";
|
|
||||||
}
|
|
||||||
list.push(window.modalView.createReadOnlyEntry(
|
|
||||||
"id_name", "Name", this.model.get("name")
|
|
||||||
));
|
|
||||||
if (this.model.get("selectOptions")) {
|
|
||||||
list.push(window.modalView.createSelectEntry(
|
|
||||||
"foxx-version",
|
|
||||||
"Version",
|
|
||||||
"",
|
|
||||||
"Select version of the Foxx application",
|
|
||||||
this.model.get("selectOptions")
|
|
||||||
));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
list.push(window.modalView.createReadOnlyEntry(
|
|
||||||
"id_version", "Version", this.model.get("version")
|
|
||||||
));
|
|
||||||
}
|
|
||||||
list.push(window.modalView.createReadOnlyEntry(
|
|
||||||
"id_system", "System", isSystem
|
|
||||||
));
|
|
||||||
list.push(window.modalView.createReadOnlyEntry(
|
|
||||||
"id_just_info", "Info", "All mount points will be unmounted and removed"
|
|
||||||
));
|
|
||||||
if (mountinfo) {
|
|
||||||
_.each(mountinfo, function(m) {
|
|
||||||
mountvars.push(m.mount);
|
|
||||||
});
|
|
||||||
|
|
||||||
list.push(window.modalView.createReadOnlyEntry(
|
|
||||||
"id_just_mountinfo", "Mount-points", JSON.stringify(mountvars)
|
|
||||||
));
|
|
||||||
}
|
|
||||||
return list;
|
|
||||||
},
|
|
||||||
|
|
||||||
fillValues: function() {
|
|
||||||
var list = [],
|
|
||||||
isSystem;
|
|
||||||
if (this.model.get("isSystem")) {
|
|
||||||
isSystem = "Yes";
|
|
||||||
} else {
|
|
||||||
isSystem = "No";
|
|
||||||
}
|
|
||||||
list.push(window.modalView.createReadOnlyEntry(
|
|
||||||
"id_name", "Name", this.model.get("name")
|
|
||||||
));
|
|
||||||
list.push(window.modalView.createTextEntry(
|
|
||||||
"mount-point", "Mount", "/" + this.model.get("name"),
|
|
||||||
"The path where the app can be reached.",
|
|
||||||
"mount-path",
|
|
||||||
true
|
|
||||||
));
|
|
||||||
|
|
||||||
var configs = this.model.get("manifest").configuration;
|
|
||||||
if (configs && _.keys(configs).length) {
|
|
||||||
_.each(_.keys(configs), function(key) {
|
|
||||||
var opt = configs[key];
|
|
||||||
var prettyKey = opt.label || splitSnakeCase(key);
|
|
||||||
if (opt.type === "boolean") {
|
|
||||||
list.push(window.modalView.createCheckboxEntry(
|
|
||||||
"foxx_configs_" + key,
|
|
||||||
prettyKey,
|
|
||||||
true,
|
|
||||||
opt.description,
|
|
||||||
opt.default
|
|
||||||
));
|
|
||||||
} else {
|
|
||||||
list.push(window.modalView.createTextEntry(
|
|
||||||
"foxx_configs_" + key,
|
|
||||||
prettyKey,
|
|
||||||
opt.default === undefined ? "" : opt.default,
|
|
||||||
opt.description,
|
|
||||||
splitSnakeCase(key).toLowerCase().replace(/\s+/g, "-"),
|
|
||||||
opt.default === undefined
|
|
||||||
));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (this.model.get("selectOptions")) {
|
|
||||||
list.push(window.modalView.createSelectEntry(
|
|
||||||
"foxx-version",
|
|
||||||
"Version",
|
|
||||||
"",
|
|
||||||
"Select version of the Foxx application",
|
|
||||||
this.model.get("selectOptions")
|
|
||||||
));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
list.push(window.modalView.createReadOnlyEntry(
|
|
||||||
"id_version", "Version", this.model.get("version")
|
|
||||||
));
|
|
||||||
}
|
|
||||||
list.push(window.modalView.createReadOnlyEntry(
|
|
||||||
"id_system", "System", isSystem
|
|
||||||
));
|
|
||||||
return list;
|
|
||||||
},
|
|
||||||
|
|
||||||
fillInfoValues: function() {
|
|
||||||
var list = [],
|
|
||||||
isSystem;
|
|
||||||
if (this.model.get("isSystem")) {
|
|
||||||
isSystem = "Yes";
|
|
||||||
} else {
|
|
||||||
isSystem = "No";
|
|
||||||
}
|
|
||||||
list.push(window.modalView.createReadOnlyEntry(
|
|
||||||
"id_name", "Name", this.model.get("name")
|
|
||||||
));
|
|
||||||
list.push(window.modalView.createReadOnlyEntry(
|
|
||||||
"id_description", "Description", this.model.get("description")
|
|
||||||
));
|
|
||||||
list.push(window.modalView.createReadOnlyEntry(
|
|
||||||
"id_author", "Author", this.model.get("author")
|
|
||||||
));
|
|
||||||
if (this.model.get("selectOptions")) {
|
|
||||||
list.push(window.modalView.createSelectEntry(
|
|
||||||
"foxx-version",
|
|
||||||
"Version",
|
|
||||||
"",
|
|
||||||
"Select version of the Foxx application",
|
|
||||||
this.model.get("selectOptions")
|
|
||||||
));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
list.push(window.modalView.createReadOnlyEntry(
|
|
||||||
"id_version", "Version", this.model.get("version")
|
|
||||||
));
|
|
||||||
}
|
|
||||||
list.push(window.modalView.createReadOnlyEntry(
|
|
||||||
"id_system", "System", isSystem
|
|
||||||
));
|
|
||||||
if (this.model.get("git")) {
|
|
||||||
list.push(window.modalView.createReadOnlyEntry(
|
|
||||||
"id_git", "Git", this.model.get("git")
|
|
||||||
));
|
|
||||||
}
|
|
||||||
return list;
|
|
||||||
},
|
|
||||||
|
|
||||||
removeDialog: function(event) {
|
|
||||||
event.stopPropagation();
|
|
||||||
var name = this.model.get("name");
|
|
||||||
var mountinfo = this.model.collection.mountInfo(name);
|
|
||||||
this.showPurgeMod(this.fillPurgeValues(mountinfo));
|
|
||||||
},
|
|
||||||
|
|
||||||
confirmRemovalSingle: function(event) {
|
|
||||||
|
|
||||||
var version, self = this;
|
|
||||||
|
|
||||||
if (this.model.get("versions")) {
|
|
||||||
version = $("#foxx-version").val();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
version = this.model.get("version");
|
|
||||||
}
|
|
||||||
|
|
||||||
//find correct app install version
|
|
||||||
var toDelete = this.model.collection.findWhere({
|
|
||||||
name: self.model.get("name"),
|
|
||||||
version: version
|
|
||||||
});
|
|
||||||
|
|
||||||
var name = toDelete.get("app");
|
|
||||||
var result = toDelete.collection.purgeFoxx(name);
|
|
||||||
|
|
||||||
if (result === true) {
|
|
||||||
window.modalView.hide();
|
|
||||||
window.App.applicationsView.reload();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
confirmRemovalAll: function(event) {
|
|
||||||
var name = this.model.get("name");
|
|
||||||
var result = this.model.collection.purgeAllFoxxes(name);
|
|
||||||
|
|
||||||
if (result === true) {
|
|
||||||
window.modalView.hide();
|
|
||||||
window.App.applicationsView.reload();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
infoDialog: function(event) {
|
|
||||||
var name = this.model.get("name"),
|
|
||||||
mountinfo = this.model.collection.gitInfo(name),
|
|
||||||
isGit;
|
|
||||||
|
|
||||||
if (mountinfo.git === true) {
|
|
||||||
this.model.set("isGit", mountinfo.git);
|
|
||||||
this.model.set("gitUrl", mountinfo.url);
|
|
||||||
}
|
|
||||||
|
|
||||||
isGit = this.model.get("isGit");
|
|
||||||
|
|
||||||
event.stopPropagation();
|
|
||||||
|
|
||||||
this[
|
|
||||||
this.model.get("versions")
|
|
||||||
? (isGit ? 'showInfoMultipleVersionsModUpdate' : 'showInfoMultipleVersionsMod')
|
|
||||||
: (isGit ? 'showInfoModUpdate' : 'showInfoMod')
|
|
||||||
](this.fillInfoValues());
|
|
||||||
|
|
||||||
this.selectHighestVersion();
|
|
||||||
},
|
|
||||||
|
|
||||||
installDialog: function(event) {
|
|
||||||
|
|
||||||
var currentVersion = $(".modalSelect").val();
|
|
||||||
|
|
||||||
window.modalView.hide();
|
|
||||||
event.stopPropagation();
|
|
||||||
this.showMod(this.fillValues());
|
|
||||||
|
|
||||||
this.selectSpecificVersion(currentVersion);
|
|
||||||
},
|
|
||||||
|
|
||||||
update: function() {
|
|
||||||
var url = this.model.get("gitUrl"),
|
|
||||||
version = "master",
|
|
||||||
name = "",
|
|
||||||
result;
|
|
||||||
|
|
||||||
if (url === undefined || url === "") {
|
|
||||||
// if no git is defined
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
result = this.model.collection.installFoxxFromGithub(url, name, version);
|
|
||||||
if (result === true) {
|
|
||||||
window.modalView.hide();
|
|
||||||
window.App.applicationsView.reload();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
install: function() {
|
|
||||||
var mountPoint = $("#mount-point").val(),
|
|
||||||
version = "",
|
|
||||||
self = this;
|
|
||||||
if (/^\/_.+$/.test(mountPoint)) {
|
|
||||||
alert("Sorry, mount paths starting with an underscore are reserved for internal use.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!/^(\/[^\/\s]+)+$/.test(mountPoint)){
|
|
||||||
alert("Sorry, you have to give a valid mount point, e.g.: /myPath");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.model.get("selectOptions")) {
|
|
||||||
version = $("#foxx-version").val();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
version = this.model.get("version");
|
|
||||||
}
|
|
||||||
|
|
||||||
var cfg = {};
|
|
||||||
var opts = this.model.get("manifest").configuration;
|
|
||||||
if (opts && _.keys(opts).length) {
|
|
||||||
try {
|
|
||||||
_.each(opts, function(opt, key) {
|
|
||||||
var $el = $("#foxx_configs_" + key);
|
|
||||||
var val = $el.val();
|
|
||||||
if (opt.type === "boolean") {
|
|
||||||
cfg[key] = $el.is(":checked");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (val === "" && !opt.hasOwnProperty("default")) {
|
|
||||||
throw new SyntaxError(
|
|
||||||
"Must specify value for field \"" +
|
|
||||||
(opt.label || splitSnakeCase(key)) +
|
|
||||||
"\"!"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (opt.type === "number") {
|
|
||||||
cfg[key] = parseFloat(val);
|
|
||||||
} else if (opt.type === "integer") {
|
|
||||||
cfg[key] = parseInt(val, 10);
|
|
||||||
} else {
|
|
||||||
cfg[key] = val;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (_.isNaN(cfg[key])) {
|
|
||||||
throw new SyntaxError(
|
|
||||||
"Invalid value for field \"" +
|
|
||||||
(opt.label || splitSnakeCase(key)) +
|
|
||||||
"\"!"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (opt.type === "integer" && cfg[key] !== Math.floor(parseFloat(val))) {
|
|
||||||
throw new SyntaxError(
|
|
||||||
"Expected non-decimal value in field \"" +
|
|
||||||
(opt.label || splitSnakeCase(key)) +
|
|
||||||
"\"!"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch (err) {
|
|
||||||
if (err instanceof SyntaxError) {
|
|
||||||
alert(err.message);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
throw err;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//find correct app install version
|
|
||||||
var toCreate = this.model.collection.findWhere({
|
|
||||||
name: self.model.get("name"),
|
|
||||||
version: version
|
|
||||||
});
|
|
||||||
|
|
||||||
toCreate.collection.create({
|
|
||||||
mount: mountPoint,
|
|
||||||
name: toCreate.get("name"),
|
|
||||||
version: toCreate.get("version"),
|
|
||||||
options: {
|
|
||||||
configuration: cfg
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
success: function() {
|
|
||||||
window.modalView.hide();
|
|
||||||
self.appsView.reload();
|
|
||||||
},
|
|
||||||
error: function(e, info) {
|
|
||||||
if (info.responseText.indexOf("already used by") > -1) {
|
|
||||||
alert("Mount-Path already in use.");
|
|
||||||
} else if (info.responseText.indexOf("app is not defined") > -1) {
|
|
||||||
//temp ignore this message, fix needs to be server-side
|
|
||||||
window.modalView.hide();
|
|
||||||
self.appsView.reload();
|
|
||||||
} else {
|
|
||||||
alert(info.statusText);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
selectSpecificVersion: function(version) {
|
|
||||||
$(".modalSelect").val(version);
|
|
||||||
},
|
|
||||||
|
|
||||||
selectHighestVersion: function() {
|
|
||||||
var versions = this.model.get("versions"),
|
|
||||||
toRender = "0";
|
|
||||||
|
|
||||||
_.each(versions, function(version) {
|
|
||||||
if(version >= toRender) {
|
|
||||||
toRender = version;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$(".modalSelect").val(toRender);
|
|
||||||
},
|
|
||||||
|
|
||||||
render: function(){
|
|
||||||
var activeVersion = this.model.get("activeVersion");
|
|
||||||
|
|
||||||
if (activeVersion === 0 || activeVersion === undefined) {
|
|
||||||
activeVersion = this.model.get("highestVersion");
|
|
||||||
}
|
|
||||||
|
|
||||||
$(this.el).html(this.template.render(this.model));
|
|
||||||
|
|
||||||
return $(this.el);
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
}());
|
|
|
@ -1,190 +1,16 @@
|
||||||
{ "files": [
|
{ "files": [
|
||||||
"test/lib/jasmine-1.3.1/jasmine-html.js",
|
"test/lib/jasmine-1.3.1/jasmine-html.js",
|
||||||
"test/lib/jshint.js",
|
|
||||||
{ "pattern": "frontend/js/templates/*.ejs", "served": true, "included": false, "watched": true},
|
{ "pattern": "frontend/js/templates/*.ejs", "served": true, "included": false, "watched": true},
|
||||||
{ "pattern": "clusterFrontend/js/templates/*.ejs", "served": true, "included": false, "watched": true},
|
{ "pattern": "clusterFrontend/js/templates/*.ejs", "served": true, "included": false, "watched": true},
|
||||||
"frontend/js/lib/jquery-2.1.0.min.js",
|
"test/mocks/activateTest.js",
|
||||||
"test/mocks/overwriteAjax.js",
|
|
||||||
"frontend/js/lib/jquery-ui-1.9.2.custom.js",
|
|
||||||
"frontend/js/lib/jquery.autogrow.js",
|
|
||||||
"frontend/js/lib/jquery.jeditable.js",
|
|
||||||
"frontend/js/lib/jquery.jeditable.autogrow.js",
|
|
||||||
"frontend/js/lib/jquery.snippet.js",
|
|
||||||
"frontend/js/lib/jquery.slideto.min.js",
|
|
||||||
"frontend/js/lib/jquery.wiggle.min.js",
|
|
||||||
"frontend/js/lib/jquery.contextmenu.js",
|
|
||||||
"frontend/js/lib/select2.min.js",
|
|
||||||
"frontend/js/lib/handlebars-1.0.rc.1.js",
|
|
||||||
"frontend/js/lib/underscore.js",
|
|
||||||
"frontend/js/lib/backbone.js",
|
|
||||||
"frontend/js/lib/d3.v3.min.js",
|
|
||||||
"frontend/js/lib/nv.d3.js",
|
|
||||||
"frontend/js/lib/dygraph-combined.js",
|
|
||||||
"frontend/js/lib/d3.fisheye.js",
|
|
||||||
"frontend/js/lib/bootstrap.js",
|
|
||||||
"frontend/js/lib/bootstrap-pagination.js",
|
|
||||||
"frontend/js/lib/jsoneditor-min.js",
|
|
||||||
"frontend/src/ace.js",
|
|
||||||
"frontend/js/lib/jqconsole.min.js",
|
|
||||||
"frontend/js/lib/swagger.js",
|
|
||||||
"frontend/js/lib/swagger-ui.js",
|
|
||||||
"frontend/js/lib/highlight.7.3.pack.js",
|
|
||||||
"frontend/js/lib/joi.browser.js",
|
|
||||||
"frontend/js/lib/md5.js",
|
|
||||||
"test/mocks/disableEJS.js",
|
|
||||||
"frontend/js/arango/arango.js",
|
|
||||||
"frontend/js/shell/browser.js",
|
|
||||||
"frontend/js/modules/org/arangodb/arango-collection-common.js",
|
|
||||||
"frontend/js/modules/org/arangodb/arango-collection.js",
|
|
||||||
"frontend/js/modules/org/arangodb/arango-database.js",
|
|
||||||
"frontend/js/modules/org/arangodb/arango-query-cursor.js",
|
|
||||||
"frontend/js/modules/org/arangodb/arango-statement-common.js",
|
|
||||||
"frontend/js/modules/org/arangodb/arango-statement.js",
|
|
||||||
"frontend/js/modules/org/arangodb/arangosh.js",
|
|
||||||
"frontend/js/modules/org/arangodb/graph-common.js",
|
|
||||||
"frontend/js/modules/org/arangodb/graph.js",
|
|
||||||
"frontend/js/modules/org/arangodb/mimetypes.js",
|
|
||||||
"frontend/js/modules/org/arangodb/simple-query-common.js",
|
|
||||||
"frontend/js/modules/org/arangodb/simple-query.js",
|
|
||||||
"frontend/js/modules/org/arangodb/aql/functions.js",
|
|
||||||
"frontend/js/modules/org/arangodb/graph/traversal.js",
|
|
||||||
"frontend/js/modules/org/arangodb-common.js",
|
|
||||||
"frontend/js/modules/org/arangodb.js",
|
|
||||||
"frontend/js/bootstrap/errors.js",
|
|
||||||
"frontend/js/bootstrap/monkeypatches.js",
|
|
||||||
"frontend/js/bootstrap/module-internal.js",
|
|
||||||
"frontend/js/client/bootstrap/module-internal.js",
|
|
||||||
"frontend/js/client/client.js",
|
|
||||||
"test/specs/graphViewer/helper/eventHelper.js",
|
"test/specs/graphViewer/helper/eventHelper.js",
|
||||||
"test/specs/graphViewer/helper/objectsHelper.js",
|
"test/specs/graphViewer/helper/objectsHelper.js",
|
||||||
"test/specs/graphViewer/helper/mocks.js",
|
"test/specs/graphViewer/helper/mocks.js",
|
||||||
"test/specs/graphViewer/helper/commMock.js",
|
"test/specs/graphViewer/helper/commMock.js",
|
||||||
"test/specs/graphViewer/helper/uiMatchers.js",
|
"test/specs/graphViewer/helper/uiMatchers.js",
|
||||||
|
"test/mocks/disableEJS.js",
|
||||||
|
|
||||||
"frontend/js/graphViewer/graphViewer.js",
|
"frontend/build/app.js",
|
||||||
"frontend/js/graphViewer/graph/domObserverFactory.js",
|
|
||||||
"frontend/js/graphViewer/graph/colourMapper.js",
|
|
||||||
"frontend/js/graphViewer/graph/communityNode.js",
|
|
||||||
"frontend/js/graphViewer/graph/webWorkerWrapper.js",
|
|
||||||
"frontend/js/graphViewer/graph/nodeShaper.js",
|
|
||||||
"frontend/js/graphViewer/graph/abstractAdapter.js",
|
|
||||||
"frontend/js/graphViewer/graph/JSONAdapter.js",
|
|
||||||
"frontend/js/graphViewer/graph/arangoAdapter.js",
|
|
||||||
"frontend/js/graphViewer/graph/gharialAdapter.js",
|
|
||||||
"frontend/js/graphViewer/graph/foxxAdapter.js",
|
|
||||||
"frontend/js/graphViewer/graph/previewAdapter.js",
|
|
||||||
"frontend/js/graphViewer/graph/edgeShaper.js",
|
|
||||||
"frontend/js/graphViewer/graph/forceLayouter.js",
|
|
||||||
"frontend/js/graphViewer/graph/eventDispatcher.js",
|
|
||||||
"frontend/js/graphViewer/graph/eventLibrary.js",
|
|
||||||
"frontend/js/graphViewer/graph/zoomManager.js",
|
|
||||||
"frontend/js/graphViewer/graph/nodeReducer.js",
|
|
||||||
"frontend/js/graphViewer/graph/modularityJoiner.js",
|
|
||||||
|
|
||||||
"frontend/js/graphViewer/ui/modalDialogHelper.js",
|
|
||||||
"frontend/js/graphViewer/ui/contextMenuHelper.js",
|
|
||||||
"frontend/js/graphViewer/ui/nodeShaperControls.js",
|
|
||||||
"frontend/js/graphViewer/ui/edgeShaperControls.js",
|
|
||||||
"frontend/js/graphViewer/ui/arangoAdapterControls.js",
|
|
||||||
"frontend/js/graphViewer/ui/gharialAdapterControls.js",
|
|
||||||
"frontend/js/graphViewer/ui/layouterControls.js",
|
|
||||||
"frontend/js/graphViewer/ui/uiComponentsHelper.js",
|
|
||||||
"frontend/js/graphViewer/ui/eventDispatcherControls.js",
|
|
||||||
"frontend/js/graphViewer/ui/graphViewerUI.js",
|
|
||||||
"frontend/js/graphViewer/ui/graphViewerWidget.js",
|
|
||||||
"frontend/js/graphViewer/ui/graphViewerPreview.js",
|
|
||||||
"frontend/js/models/arangoCollectionModel.js",
|
|
||||||
"frontend/js/models/arangoDatabase.js",
|
|
||||||
"frontend/js/models/arangoDocument.js",
|
|
||||||
"frontend/js/models/newArangoLog.js",
|
|
||||||
"frontend/js/models/arangoReplication.js",
|
|
||||||
"frontend/js/models/arangoSession.js",
|
|
||||||
"frontend/js/models/arangoStatistics.js",
|
|
||||||
"frontend/js/models/arangoStatisticsDescription.js",
|
|
||||||
"frontend/js/models/arangoUsers.js",
|
|
||||||
"frontend/js/models/currentDatabase.js",
|
|
||||||
"frontend/js/models/foxx.js",
|
|
||||||
"frontend/js/models/graph.js",
|
|
||||||
"frontend/js/models/notification.js",
|
|
||||||
"frontend/js/models/arangoQuery.js",
|
|
||||||
"clusterFrontend/js/models/clusterServer.js",
|
|
||||||
"clusterFrontend/js/models/clusterCoordinator.js",
|
|
||||||
"clusterFrontend/js/models/clusterDatabase.js",
|
|
||||||
"clusterFrontend/js/models/clusterCollection.js",
|
|
||||||
"clusterFrontend/js/models/clusterShard.js",
|
|
||||||
"clusterFrontend/js/models/clusterPlan.js",
|
|
||||||
"clusterFrontend/js/models/clusterType.js",
|
|
||||||
|
|
||||||
"frontend/js/config/dygraphConfig.js",
|
|
||||||
|
|
||||||
"frontend/js/collections/_paginatedCollection.js",
|
|
||||||
"frontend/js/collections/arangoCollections.js",
|
|
||||||
"frontend/js/collections/arangoDocuments.js",
|
|
||||||
"frontend/js/collections/arangoDocument.js",
|
|
||||||
"frontend/js/collections/arangoDatabase.js",
|
|
||||||
"frontend/js/collections/arangoReplication.js",
|
|
||||||
"frontend/js/collections/arangoUsers.js",
|
|
||||||
"frontend/js/collections/arangoLogs.js",
|
|
||||||
"frontend/js/collections/arangoStatisticsCollection.js",
|
|
||||||
"frontend/js/collections/arangoStatisticsDescriptionCollection.js",
|
|
||||||
"frontend/js/collections/foxxCollection.js",
|
|
||||||
"frontend/js/collections/graphCollection.js",
|
|
||||||
"frontend/js/collections/notificationCollection.js",
|
|
||||||
"frontend/js/collections/arangoQueries.js",
|
|
||||||
"clusterFrontend/js/collections/_automaticRetryCollection.js",
|
|
||||||
"clusterFrontend/js/collections/clusterServers.js",
|
|
||||||
"clusterFrontend/js/collections/clusterCoordinators.js",
|
|
||||||
"clusterFrontend/js/collections/clusterDatabases.js",
|
|
||||||
"clusterFrontend/js/collections/clusterCollections.js",
|
|
||||||
"clusterFrontend/js/collections/clusterShards.js",
|
|
||||||
"clusterFrontend/js/collections/arangoClusterStatisticsCollection.js",
|
|
||||||
|
|
||||||
"frontend/js/views/_paginationView.js",
|
|
||||||
"frontend/js/views/tableView.js",
|
|
||||||
"frontend/js/views/apiView.js",
|
|
||||||
"frontend/js/views/appDocumentationView.js",
|
|
||||||
"frontend/js/views/applicationsView.js",
|
|
||||||
"frontend/js/views/applicationDetailView.js",
|
|
||||||
"frontend/js/views/collectionsItemView.js",
|
|
||||||
"frontend/js/views/collectionsView.js",
|
|
||||||
"frontend/js/views/databaseView.js",
|
|
||||||
"frontend/js/views/dbSelectionView.js",
|
|
||||||
"frontend/js/views/documentsView.js",
|
|
||||||
"frontend/js/views/documentView.js",
|
|
||||||
"frontend/js/views/editListEntryView.js",
|
|
||||||
"frontend/js/views/footerView.js",
|
|
||||||
"frontend/js/views/foxxActiveListView.js",
|
|
||||||
"frontend/js/views/foxxActiveView.js",
|
|
||||||
"frontend/js/views/graphManagementView.js",
|
|
||||||
"frontend/js/views/loginView.js",
|
|
||||||
"frontend/js/views/modalView.js",
|
|
||||||
"frontend/js/views/navigationView.js",
|
|
||||||
"frontend/js/views/dashboardView.js",
|
|
||||||
"frontend/js/views/logsView.js",
|
|
||||||
"frontend/js/views/notificationView.js",
|
|
||||||
"frontend/js/views/queryView.js",
|
|
||||||
"frontend/js/views/shellView.js",
|
|
||||||
"frontend/js/views/statisticBarView.js",
|
|
||||||
"frontend/js/views/testView.js",
|
|
||||||
"frontend/js/views/userBarView.js",
|
|
||||||
"frontend/js/views/userManagementView.js",
|
|
||||||
"frontend/js/views/progressView.js",
|
|
||||||
|
|
||||||
"clusterFrontend/js/views/clusterDownView.js",
|
|
||||||
"clusterFrontend/js/views/loginModalView.js",
|
|
||||||
"clusterFrontend/js/views/planScenarioSelectorView.js",
|
|
||||||
"clusterFrontend/js/views/planSymmetricView.js",
|
|
||||||
"clusterFrontend/js/views/planTestView.js",
|
|
||||||
"clusterFrontend/js/views/shutdownButtonView.js",
|
|
||||||
"clusterFrontend/js/views/showClusterView.js",
|
|
||||||
"clusterFrontend/js/views/showShardsView.js",
|
|
||||||
"clusterFrontend/js/views/dbServerDashboardView.js",
|
|
||||||
|
|
||||||
"clusterFrontend/js/views/showClusterView.js",
|
|
||||||
|
|
||||||
"frontend/js/routers/versionCheck.js",
|
|
||||||
"frontend/js/routers/router.js",
|
|
||||||
"clusterFrontend/js/routers/clusterRouter.js",
|
|
||||||
|
|
||||||
"test/specs/graphViewer/specColourMapper/colourMapperSpec.js",
|
"test/specs/graphViewer/specColourMapper/colourMapperSpec.js",
|
||||||
"test/specs/graphViewer/specWindowObjects/domObserverFactorySpec.js",
|
"test/specs/graphViewer/specWindowObjects/domObserverFactorySpec.js",
|
||||||
|
@ -216,9 +42,8 @@
|
||||||
"test/specs/graphViewer/specNodeReducer/modularityJoinerSpec.js",
|
"test/specs/graphViewer/specNodeReducer/modularityJoinerSpec.js",
|
||||||
"test/specs/graphViewer/specContextMenu/contextMenuSpec.js",
|
"test/specs/graphViewer/specContextMenu/contextMenuSpec.js",
|
||||||
"test/specs/arango/arangoSpec.js",
|
"test/specs/arango/arangoSpec.js",
|
||||||
|
"test/specs/config/dygraphConfigSpec.js",
|
||||||
"test/specs/models/currentDatabaseSpec.js",
|
"test/specs/models/currentDatabaseSpec.js",
|
||||||
"test/specs/models/clusterPlanSpec.js",
|
|
||||||
"test/specs/models/graphSpec.js",
|
"test/specs/models/graphSpec.js",
|
||||||
"test/specs/models/arangoCollectionModelSpec.js",
|
"test/specs/models/arangoCollectionModelSpec.js",
|
||||||
"test/specs/models/arangoDatabaseSpec.js",
|
"test/specs/models/arangoDatabaseSpec.js",
|
||||||
|
@ -229,8 +54,6 @@
|
||||||
"test/specs/models/arangoUsersSpec.js",
|
"test/specs/models/arangoUsersSpec.js",
|
||||||
"test/specs/models/foxxSpec.js",
|
"test/specs/models/foxxSpec.js",
|
||||||
|
|
||||||
"test/specs/config/dygraphConfigSpec.js",
|
|
||||||
|
|
||||||
"test/specs/collections/arangoCollectionsSpec.js",
|
"test/specs/collections/arangoCollectionsSpec.js",
|
||||||
"test/specs/collections/arangoDatabaseSpec.js",
|
"test/specs/collections/arangoDatabaseSpec.js",
|
||||||
"test/specs/collections/arangoDocumentSpec.js",
|
"test/specs/collections/arangoDocumentSpec.js",
|
||||||
|
@ -242,7 +65,6 @@
|
||||||
"test/specs/collections/foxxCollectionSpec.js",
|
"test/specs/collections/foxxCollectionSpec.js",
|
||||||
"test/specs/collections/graphCollectionSpec.js",
|
"test/specs/collections/graphCollectionSpec.js",
|
||||||
"test/specs/collections/notificationCollectionSpec.js",
|
"test/specs/collections/notificationCollectionSpec.js",
|
||||||
"test/specs/collections/ClusterStatisticsCollectionSpec.js",
|
|
||||||
|
|
||||||
|
|
||||||
"test/specs/views/apiViewSpec.js",
|
"test/specs/views/apiViewSpec.js",
|
||||||
|
@ -266,6 +88,8 @@
|
||||||
"test/specs/router/routerSpec.js",
|
"test/specs/router/routerSpec.js",
|
||||||
"test/specs/router/clusterRouterSpec.js",
|
"test/specs/router/clusterRouterSpec.js",
|
||||||
|
|
||||||
|
"test/specs/router/routerSpec.js",
|
||||||
|
|
||||||
"test/specs/router/versionCheckSpec.js"
|
"test/specs/router/versionCheckSpec.js"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
// Generated on Thu Jul 04 2013 11:39:34 GMT+0200 (CEST)
|
// Generated on Thu Jul 04 2013 11:39:34 GMT+0200 (CEST)
|
||||||
|
|
||||||
filesJSON = require("./files.json");
|
filesJSON = require("./files.json");
|
||||||
filesJSON.files.push('test/specJSLint/jsLintSpec.js');
|
// filesJSON.files.push('test/specJSLint/jsLintSpec.js');
|
||||||
|
|
||||||
module.exports = function(karma) {
|
module.exports = function(karma) {
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
/*global window*/
|
||||||
|
(function() {
|
||||||
|
"use strict";
|
||||||
|
window.TEST_BUILD = true;
|
||||||
|
}());
|
Loading…
Reference in New Issue