diff options
Diffstat (limited to 'bitbake/lib/toaster/toastergui/static/js')
-rw-r--r-- | bitbake/lib/toaster/toastergui/static/js/newcustomimage_modal.js | 37 |
1 files changed, 32 insertions, 5 deletions
diff --git a/bitbake/lib/toaster/toastergui/static/js/newcustomimage_modal.js b/bitbake/lib/toaster/toastergui/static/js/newcustomimage_modal.js index 16e42b3d27..0b9d31aa6c 100644 --- a/bitbake/lib/toaster/toastergui/static/js/newcustomimage_modal.js +++ b/bitbake/lib/toaster/toastergui/static/js/newcustomimage_modal.js | |||
@@ -5,24 +5,51 @@ function newCustomImageModalInit(){ | |||
5 | 5 | ||
6 | var newCustomImgBtn = $("#create-new-custom-image-btn"); | 6 | var newCustomImgBtn = $("#create-new-custom-image-btn"); |
7 | var imgCustomModal = $("#new-custom-image-modal"); | 7 | var imgCustomModal = $("#new-custom-image-modal"); |
8 | var invalidNameHelp = $("#invalid-name-help"); | ||
9 | var nameInput = imgCustomModal.find('input'); | ||
10 | |||
11 | var invalidMsg = "Image names cannot contain spaces or capital letters. The only allowed special character is dash (-)."; | ||
8 | 12 | ||
9 | newCustomImgBtn.click(function(e){ | 13 | newCustomImgBtn.click(function(e){ |
10 | e.preventDefault(); | 14 | e.preventDefault(); |
11 | 15 | ||
12 | var name = imgCustomModal.find('input').val(); | ||
13 | var baseRecipeId = imgCustomModal.data('recipe'); | 16 | var baseRecipeId = imgCustomModal.data('recipe'); |
14 | 17 | ||
15 | if (name.length > 0) { | 18 | if (nameInput.val().length > 0) { |
16 | imgCustomModal.modal('hide'); | 19 | libtoaster.createCustomRecipe(nameInput.val(), baseRecipeId, |
17 | libtoaster.createCustomRecipe(name, baseRecipeId, function(ret) { | 20 | function(ret) { |
18 | if (ret.error !== "ok") { | 21 | if (ret.error !== "ok") { |
19 | console.warn(ret.error); | 22 | console.warn(ret.error); |
23 | if (ret.error === "invalid-name") { | ||
24 | showError(invalidMsg); | ||
25 | } else if (ret.error === "already-exists") { | ||
26 | showError("An image with this name already exists. Image names must be unique."); | ||
27 | } | ||
20 | } else { | 28 | } else { |
29 | imgCustomModal.modal('hide'); | ||
21 | window.location.replace(ret.url + '?notify=new'); | 30 | window.location.replace(ret.url + '?notify=new'); |
22 | } | 31 | } |
23 | }); | 32 | }); |
33 | } | ||
34 | }); | ||
35 | |||
36 | function showError(text){ | ||
37 | invalidNameHelp.text(text); | ||
38 | invalidNameHelp.show(); | ||
39 | } | ||
40 | |||
41 | nameInput.on('keyup', function(){ | ||
42 | if (nameInput.val().length === 0){ | ||
43 | newCustomImgBtn.prop("disabled", true); | ||
44 | return | ||
45 | } | ||
46 | |||
47 | if (nameInput.val().search(/[^a-z|0-9|-]/) != -1){ | ||
48 | showError(invalidMsg); | ||
49 | newCustomImgBtn.prop("disabled", true); | ||
24 | } else { | 50 | } else { |
25 | console.warn("TODO No name supplied"); | 51 | invalidNameHelp.hide(); |
52 | newCustomImgBtn.prop("disabled", false); | ||
26 | } | 53 | } |
27 | }); | 54 | }); |
28 | } | 55 | } |