1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
/*******************************************************************************
* Copyright (c) 2012-2013 University of Stuttgart.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and the Apache License 2.0 which both accompany this distribution,
* and are available at http://www.eclipse.org/legal/epl-v10.html
* and http://www.apache.org/licenses/LICENSE-2.0
*
* Contributors:
* Oliver Kopp - initial API and implementation and/or initial documentation
*******************************************************************************/
// also loaded from the repository
// TODO: winery-common should be required -> encodeID; typing could be required (but that is no AMD module)
define([], function() {
$("#artifactTemplateName").typing({
start: function(event, $elem) {
flagArtifactTemplateNameAsUpdating();
},
stop: function(event, $elem) {
checkArtifactTemplateName();
}
});
$("#artifactTemplateNS").on("blur", checkArtifactTemplateName).on("change", checkArtifactTemplateName).on("focus", flagArtifactTemplateNameAsUpdating);
var repositoryURL;
return {
setRepositoryURL: function(url) {
repositoryURL = url;
},
checkArtifactTemplateName: checkArtifactTemplateName,
flagArtifactTemplateNameAsUpdating: flagArtifactTemplateNameAsUpdating
};
function checkArtifactTemplateName() {
var ns = $("#artifactTemplateNS").val();
var name = $("#artifactTemplateName").val();
var url = repositoryURL + "/artifacttemplates/" + encodeID(ns) + "/" + encodeID(name) + "/";
if (name == "") {
var valid = false;
var invalidReason = "No name provided";
setValidityStatus(valid, invalidReason);
} else {
$.ajax(url, {
type: 'HEAD',
dataType: 'html',
error: function(jqXHR, textStatus, errorThrown) {
if (jqXHR.status == 404) {
// artifact template does not exist: everything is allright
setValidityStatus(true, null);
} else {
setValidityStatus(false, textStatus);
}
},
success: function(data, textStatus, jqXHR) {
setValidityStatus(false, "artifact template already exists");
}
});
}
}
function flagArtifactTemplateNameAsUpdating() {
$("#artifactTemplateNameIsValid").removeClass("invalid").removeClass("valid").addClass("unknown");
$("#artifactTemplateNameIsInvalidReason").text("");
}
function setValidityStatus(valid, invalidReason) {
$("#artifactTemplateNameIsValid").removeClass("unknown");
if (valid) {
$("#artifactTemplateNameIsValid").addClass("valid");
$("#artifactTemplateNameIsInvalidReason").text("Ok");
} else {
$("#artifactTemplateNameIsValid").addClass("invalid");
$("#artifactTemplateNameIsInvalidReason").text(invalidReason);
}
}
});
|