Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(647)

Side by Side Diff: appengine/monorail/templates/sitewide/project-create-page.ezt

Issue 1868553004: Open Source Monorail (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Rebase Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 [define category_css]css/ph_detail.css[end]
2 [include "../framework/master-header.ezt" "hidetabs"]
3
4 <h2>Create a new project</h2>
5
6 [if-any read_only][include "../framework/read-only-rejection.ezt"]
7 [else]
8
9 <form action="createProject.do" method="POST" id="create_project_form"
10 style="margin:1em" enctype="multipart/form-data">
11 <input type="hidden" name="token" value="[form_token]">
12
13 [if-any cue_remaining_projects]
14 <table align="center" border="0" cellspacing="0" cellpadding="0" style="marg in-bottom: 6px">
15 <tr><td class="notice">
16 <b>Note:</b> You can create at most [cue_remaining_projects] more projec ts.
17 </td></tr>
18 </table>
19 [end]
20
21
22 Project name:<br>
23 <input size="30" type="text" id="projectname" name="projectname" autocomplete= "off"
24 value="[initial_name]">
25 <span class="graytext">Example: my-project-name</span>
26 <div class="fielderror">&nbsp;
27 <span id="projectnamefeedback">
28 [if-any errors.projectname][errors.projectname][end]
29 </span>
30 </div>
31
32 [include "../framework/project-descriptive-fields.ezt"]
33 <br>
34
35 Viewable by:
36 [include "../framework/project-access-part.ezt" "checksubmit"]
37 <br>
38
39 [if-any show_captcha]
40 <div>Word verification</div>
41 <div>[include "../framework/captcha-field.ezt"]</div>
42 [end]
43 <br>
44 <input type="submit" id="submit_btn" name="btn" value="Create project">
45 </form>
46
47
48 [include "../framework/footer-script.ezt"]
49
50 <script type="text/javascript" nonce="[nonce]">
51 runOnLoad(function() {
52 _onload();
53
54 [# TODO(jrobbins): move this to compiled Javascript. ]
55 var submit = document.getElementById('submit_btn');
56 submit.disabled = 'disabled';
57 var projectname = document.getElementById('projectname');
58 var access = document.getElementById('access');
59 var summary = document.getElementById('summary');
60 var description = document.getElementById('description');
61 var cg = document.getElementById('cg');
62 var oldName = '';
63 projectname.focus();
64 var solelyDigits = /^[[]-0-9]+$/
65 var hasUppercase = /[[]A-Z]/
66 var projectRE = /^[[]a-z0-9][[]-a-z0-9]*$/
67
68 function checkprojectname() {
69 name = projectname.value;
70 if (name != oldName) {
71 oldName = name;
72 feedback = document.getElementById('projectnamefeedback');
73 submit.disabled='disabled';
74 if (name == '') {
75 feedback.innerText = '';
76 } else if (hasUppercase.test(name)) {
77 feedback.innerText = 'Must be all lowercase';
78 } else if (solelyDigits.test(name)) {
79 feedback.innerText = 'Must include a lowercase letter';
80 } else if (!projectRE.test(name)) {
81 feedback.innerText = 'Invalid project name';
82 } else if (name.length > [max_project_name_length]) {
83 feedback.innerText = 'Project name is too long';
84 } else if(name[[]name.length - 1] == '-') {
85 feedback.innerText = "Project name cannot end with a '-'";
86 } else {
87 feedback.innerText = '';
88 checkname()
89 checksubmit()
90 }
91 }
92 }
93
94 function checkname() {
95 _CP_checkProjectName(projectname.value);
96 }
97
98 function checkempty(elemId) {
99 var elem = document.getElementById(elemId);
100 feedback = document.getElementById(elemId + 'feedback');
101 if (elem.value.length == 0) {
102 feedback.innerText = 'Please enter a ' + elemId;
103 } else {
104 feedback.innerText = ' ';
105 }
106 checksubmit();
107 }
108
109 function checksubmit() {
110 feedback = document.getElementById('projectnamefeedback');
111 submit.disabled='disabled';
112 if (projectname.value.length > 0 &&
113 summary.value.length > 0 &&
114 description.value.length > 0 &&
115 (cg == undefined || cg.value.length > 1) &&
116 feedback.innerText == '') {
117 submit.disabled='';
118 }
119 }
120 setInterval(checkprojectname, 700); [# catch changes that were not keystrokes. ]
121 $("projectname").addEventListener("keyup", checkprojectname);
122 $("summary").addEventListener("keyup", function() { checkempty("summary"); });
123 $("description").addEventListener("keyup", function() { checkempty("descriptio n"); });
124 $("create_project_form").addEventListener("submit", function () {
125 $("submit_btn").value = "Creating project...";
126 $("submit_btn").disabled = "disabled";
127 });
128
129 });
130 </script>
131
132 [end][# not read-only]
133
134 [include "../framework/master-footer.ezt"]
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698