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

Side by Side Diff: appengine/monorail/templates/tracker/admin-components-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" "showtabs"]
3
4 [if-any read_only][include "../framework/read-only-rejection.ezt"]
5 [else]
6
7 <form action="adminComponents.do" id="adminComponents" method="POST">
8 <input type="hidden" name="token" value="form_token]">
9
10 <h4>Issue components</h4>
11 [if-any perms.EditProject]
12 <span style="margin:0 .7em">Show:
13 <select id="rowfilter">
14 <option label="All components" value="all">
15 <option label="Active components" value="active" selected=true>
16 <option label="Top-level components" value="toplevel">
17 <option label="Components I administer" value="myadmin">
18 <option label="Components I am CC'd on" value="mycc">
19 <option label="Deprecated components" value="deprecated">
20 </select>
21 </span>
22 <span style="margin:0 .7em">Select:
23 <a id="selectall" href="#">All</a>
24 <a id="selectnone" href="#">None</a>
25 </span>
26 [end]
27
28 <div class="list-foot"></div>
29 [if-any perms.EditProject]
30 <form action="adminComponents.do" method="POST">
31 <a href="/p/[projectname]/components/create" class="buttonify">Create compo nent</a>
32 <input type="hidden" name="delete_components">
33 <input type="hidden" name="token" value="[form_token]">
34 <input type="submit" name="deletebtn" value="Delete Component(s)" style="ma rgin-left:2em" disabled>
35 </form>
36 <div id="deletebtnsfeedback" class="fielderror" style="margin-left:1em">
37 [if-any failed_perm]
38 You do not have permission to delete the components:
39 [failed_perm]<br/>
40 [end]
41 [if-any failed_subcomp]
42 Can not delete the following components because they have subcomponents:
43 [failed_subcomp]<br/>
44 [end]
45 [if-any failed_templ]
46 Can not delete the following components because they are listed in templa tes:
47 [failed_templ]<br/>
48 [end]
49 </div>
50 [end]
51
52 <div class="section">
53 <table cellspacing="0" cellpadding="2" border="0" class="comptable results st riped vt active" id="resultstable" width="100%">
54 <tbody>
55 <tr>
56 [if-any perms.EditProject]<th></th>[end]
57 <th>Name</th>
58 <th>Administrators</th>
59 <th>Auto Cc</th>
60 <th>Description</th>
61 </tr>
62 [if-any component_defs][else]
63 <tr>
64 <td colspan="5">
65 <div style="padding: 3em; text-align: center">
66 This project has not defined any components.
67 </div>
68 </td>
69 </tr>
70 [end]
71 [for component_defs]
72 [define detail_url]/p/[projectname]/components/detail?component=[format " url"][component_defs.path][end][end]
73 <tr data-url="[detail_url]" class="comprow [component_defs.classes]">
74 [if-any perms.EditProject]
75 <td class="cb">
76 <input type="checkbox" data-path="[component_defs.path]" class="che ckRangeSelect">
77 </td>
78 [end]
79 <td class="id">
80 <a style="white-space:nowrap" href="[detail_url]">[component_defs.pat h]</a>
81 </td>
82 <td>
83 [for component_defs.admins]
84 [include "../framework/user-link.ezt" component_defs.admins][if-ind ex component_defs.admins last][else],[end]
85 [end]
86 </td>
87 <td>
88 [for component_defs.cc]
89 [include "../framework/user-link.ezt" component_defs.cc][if-index c omponent_defs.cc last][else],[end]
90 [end]
91 </td>
92 <td>
93 [component_defs.docstring_short]
94 </td>
95 </tr>
96 [end]
97 </tbody>
98 </table>
99 </div>[# section]
100
101 <div class="list-foot"></div>
102 [if-any perms.EditProject]
103 <form action="adminComponents.do" method="POST">
104 <a href="/p/[projectname]/components/create" class="buttonify">Create compo nent</a>
105 <input type="hidden" name="delete_components">
106 <input type="hidden" name="token" value="[form_token]">
107 <input type="submit" name="deletebtn" value="Delete Component(s)" style="ma rgin-left:2em" disabled>
108 </form>
109 [end]
110
111 </form>
112
113 [end]
114
115 [include "../framework/footer-script.ezt"]
116 <script type="text/javascript" nonce="[nonce]">
117 runOnLoad(function() {
118 _onload();
119
120 if ($("selectall")) {
121 $("selectall").addEventListener("click", function() {
122 _selectAllIssues();
123 setDisabled(false);
124 });
125 }
126 if ($("selectnone")) {
127 $("selectnone").addEventListener("click", function() {
128 _selectNoneIssues();
129 setDisabled(true);
130 });
131 }
132
133 var checkboxNodes = document.getElementsByClassName("checkRangeSelect");
134 var checkboxes = Array();
135 for (var i = 0; i < checkboxNodes.length; ++i) {
136 var checkbox = checkboxNodes.item(i);
137 checkboxes.push(checkbox);
138 checkbox.addEventListener("click", function (event) {
139 _checkRangeSelect(event, event.target);
140 _highlightRow(event.target);
141 updateEnabled();
142 });
143 }
144
145 function updateEnabled() {
146 var anySelected = checkboxes.some(function(checkbox) {
147 return checkbox.checked;
148 });
149 setDisabled(!anySelected);
150 }
151
152 var deleteButtons = document.getElementsByName("deletebtn");
153 function setDisabled(disabled) {
154 for (var i = 0; i < deleteButtons.length; ++i) {
155 deleteButtons.item(i).disabled = disabled;
156 }
157 }
158
159 for (var i = 0; i < deleteButtons.length; ++i) {
160 deleteButtons.item(i).addEventListener("click", function(event) {
161 var componentsToDelete = [];
162 for (var i = 0; i< checkboxes.length; ++i) {
163 var checkbox = checkboxes[[]i];
164 if (checkbox.checked)
165 componentsToDelete.push(checkbox.getAttribute("data-path"));
166 }
167 var fields = document.getElementsByName("delete_components");
168 for (var i = 0; i< fields.length; ++i) {
169 fields.item(i).value = componentsToDelete.join();
170 }
171 if (!confirm("Are you sure you want to delete the selected components ?\nT his operation cannot be undone."))
172 event.preventDefault();
173 });
174 }
175
176 function _handleResultsClick(event) {
177 var target = event.target;
178 if (target.tagName == "A" || target.type == "checkbox" || target.className = = "cb")
179 return;
180 while (target && target.tagName != "TR") target = target.parentNode;
181 _go(target.attributes[[]"data-url"].value,
182 (event.metaKey || event.ctrlKey || event.button == 1));
183 };
184 $("resultstable").addEventListener("click", _handleResultsClick);
185
186
187 function _handleRowFilterChange(event) {
188 $("resultstable").classList.remove('all', 'active', 'toplevel', 'myadmin', ' mycc', 'deprecated');
189 $("resultstable").classList.add(event.target.value);
190 };
191 $("rowfilter").addEventListener("change", _handleRowFilterChange);
192 });
193 </script>
194
195
196 [include "../framework/master-footer.ezt"]
OLDNEW
« no previous file with comments | « appengine/monorail/templates/sitewide/usertabs.ezt ('k') | appengine/monorail/templates/tracker/admin-labels-page.ezt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698