]> source.dussan.org Git - archiva.git/blob
12e54a3c0cb442984e84d616a75472042a0a4cee
[archiva.git] /
1 <!--
2   ~ Licensed to the Apache Software Foundation (ASF) under one
3   ~ or more contributor license agreements.  See the NOTICE file
4   ~ distributed with this work for additional information
5   ~ regarding copyright ownership.  The ASF licenses this file
6   ~ to you under the Apache License, Version 2.0 (the
7   ~ "License"); you may not use this file except in compliance
8   ~ with the License.  You may obtain a copy of the License at
9   ~
10   ~   http://www.apache.org/licenses/LICENSE-2.0
11   ~
12   ~ Unless required by applicable law or agreed to in writing,
13   ~ software distributed under the License is distributed on an
14   ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   ~ KIND, either express or implied.  See the License for the
16   ~ specific language governing permissions and limitations
17   ~ under the License.
18 -->
19 <script id="repositoriesMain" type="text/html">
20     <div class="page-header">
21       <h2><img src="images/system-file-manager-32-32.png"/>${$.i18n.prop('administration.repositories')}</h2>
22     </div>
23
24       <ul id="repositories-tabs" class="nav nav-tabs">
25         <li class="active">
26           <a data-toggle="tab" href="#managed-repositories-content">${$.i18n.prop('managedrepositories.grid.head')}</a>
27         </li>  
28         <li>
29           <a data-toggle="tab" href="#remote-repositories-content">${$.i18n.prop('remoterepositories.grid.head')}</a>
30         </li>
31       </ul>  
32       <div class="tab-content">
33         <div id="managed-repositories-content" class="tab-pane active">
34             <ul id="managed-repositories-pills" class="nav nav-pills">
35               <li class="active" id="managed-repositories-view-li">
36                 <a data-toggle="tab" href="#managed-repositories-view" id="managed-repositories-view-a">${$.i18n.prop('managedrepositories.grid.tab.title')}</a>
37               </li>
38               <li id="managed-repository-edit-li">
39                 <a data-toggle="tab" href="#managed-repository-edit">${$.i18n.prop('add')}</a>
40               </li>
41             </ul>
42             <div id="managed-repositories-tabs-content" class="pill-content">
43               <div id="managed-repositories-view" class="pill-pane active">
44                 <div id="managed-repositories-bulk-save-btn" data-bind='template:{name:"managed-repositories-bulk-save-tmpl"}'></div>
45                 <table class="table table-striped table-bordered" id="managed-repositories-table"
46                        data-bind="simpleGrid: gridViewModel,simpleGridTemplate:'ko_managed-repositoriesGrid',pageLinksId:'managed-repositoriesPagination',data:'managedRepositories'">
47                 </table>
48                 <div id="managed-repositoriesPagination"></div>
49                 <div id="managed-repositories-pom-snippet"></div>
50               </div>
51               <div id="managed-repository-edit" class="pill-pane" data-bind='template: {name:"managed-repository-edit-tmpl"}'>
52               </div>
53             </div>
54         </div>
55
56
57         <div id="remote-repositories-content" class="tab-pane">
58             <ul id="remote-repositories-pills" class="nav nav-pills">
59               <li class="active" id="remote-repositories-view-li">
60                 <a data-toggle="tab" href="#remote-repositories-view" id="remote-repositories-view-a">${$.i18n.prop('remoterepositories.grid.tab.title')}</a>
61               </li>
62               <li id="remote-repository-edit-li">
63                 <a data-toggle="tab" href="#remote-repository-edit">${$.i18n.prop('add')}</a>
64               </li>
65             </ul>
66             <div id="remote-repositories-tabs-content" class="pill-content">
67               <div id="remote-repositories-view" class="pill-pane active">
68                   <div id="remote-repositories-bulk-save-btn" data-bind='template:{name:"remote-repositories-bulk-save-tmpl"}'></div>
69                   <table class="table table-striped table-bordered" id="remote-repositories-table"
70                          data-bind="simpleGrid: gridViewModel,simpleGridTemplate:'ko_remote-repositoriesGrid',pageLinksId:'remote-repositoriesPagination',data:'remoteRepositories'">
71                   </table>
72                   <div id="remote-repositoriesPagination"></div>
73               </div>
74               <div id="remote-repository-edit" class="pill-pane" data-bind='template: {name:"remote-repository-edit-tmpl"}'>
75               </div>
76             </div>
77         </div>
78       </div>
79 </script>
80
81 <script id='ko_managed-repositoriesGrid' type='text/html'>
82   <thead>
83       <tr>
84         {{each(i, columnDefinition) columns}}
85           <th title="${ columnDefinition.title }">${ columnDefinition.headerText }</th>
86         {{/each}}
87         <th>Releases</th>
88         <th>Snapshots</th>
89         <th title="${$.i18n.prop('managedrepository.scan.index')}">${$.i18n.prop('managedrepository.scan.grid.header')}</th>
90         <th>${$.i18n.prop('edit')}</th>
91         <th>${$.i18n.prop('delete')}</th>
92         <th>${$.i18n.prop('modified')}</th>
93         <th>${$.i18n.prop('managedrepository.pomsnippet')}</th>
94         <th title="${$.i18n.prop('managedrepository.stats')}">${$.i18n.prop('managedrepository.stats.grid.header')}</th>
95         <th title="${$.i18n.prop('managedrepository.scan.directories')}">${$.i18n.prop('managedrepository.scan.directories.grid.header')}</th>
96       </tr>
97   </thead>
98   <tbody>
99       {{each(i, row) itemsOnCurrentPage()}}
100           <tr data-bind="css:{ 'modified': row.modified()}">
101             {{each(j, columnDefinition) columns}}
102               <td>${ typeof columnDefinition.rowText == 'function' ? columnDefinition.rowText(row) : row[columnDefinition.rowText] }</td>
103             {{/each}}
104             <td>
105             {{if row.releases() == true}}
106               <img src="images/weather-clear-22-22.png" title="${$.i18n.prop('release.included')}"/>
107             {{else}}
108               <img src="images/dialog-error-22-22.png" title="${$.i18n.prop('release.notincluded')}"/>
109             {{/if}}
110             </td>
111
112             <td>
113               {{if row.snapshots() == true}}
114                 <img src="images/weather-clear-22-22.png" title="${$.i18n.prop('snapshots.included')}"/>
115               {{else}}
116                 <img src="images/dialog-error-22-22.png" title="${$.i18n.prop('snapshots.notincluded')}"/>
117               {{/if}}
118             </td>
119             <td>
120               <a href="#" data-bind="click: function(){ scanNow(row) }">
121                 <span class="btn btn-success">
122                   <i class="icon-refresh icon-white"/>
123                 </span>
124               </a>
125             </td>
126             <td>
127               <a href="#" data-bind="click: function(){ editManagedRepository(row) }">
128                 <span class="btn btn-primary">
129                   <i class="icon-pencil icon-white"/>
130                 </span>
131               </a>
132             </td>
133             <td>
134               <a href="#" data-bind="click: function(){ removeManagedRepository(row) }">
135                 <span class="btn btn-danger">
136                   <i class="icon-trash icon-white"/>
137                 </span>
138               </a>
139             </td>
140             {{if row.modified()}}
141               <td>
142                 <a href="#" class="btn btn-warning" data-bind="click: function(){ updateManagedRepository(row) }">${$.i18n.prop('save')}</a>
143               </td>
144             {{else}}
145               <td></td>
146             {{/if}}
147             <td><a href="#" data-bind="click: function(){ showPomSnippet(row) }">${$.i18n.prop('managedrepository.pomsnippet')}</a></td>
148             <td id="managedrepository-stats-${row.id()}">
149               <img src="images/utilities-system-monitor-22-22.png" data-original-title="${$.i18n.prop('managedrepository.stats')}"
150                    data-bind="event: { mouseover: function(){ showStats(row) }, mouseout: function(){ hideStats(row) },}"
151                    id="managedrepository-stats-img-${row.id()}"/>
152             </td>
153             <td>
154               <a href="#" data-bind="click: function(){directoriesScan(row)}">
155                 <span class="btn btn-warning">
156                   <i class="icon-repeat icon-white"/>
157                 </span>
158               </a>
159
160             </td>
161           </tr>
162       {{/each}}
163   </tbody>
164
165 </script>
166
167 <script id="managed-repository-edit-tmpl" type='text/html'>
168     <form id="managed-repository-edit-form" class="well form-horizontal">
169       <fieldset id="managed-repository-edit-fieldset">
170         <div class="control-group">
171           <label class="control-label" for="id">${$.i18n.prop('id')}</label>
172           <div class="controls">
173             {{if update}}
174               <span class="uneditable-input">${$data.managedRepository.id}</span>
175             {{else}}
176               <input type="text" class="xlarge required" id="id" name="id" size="50"
177                      data-bind="value: managedRepository.id,css:{'uneditable-input': update},readonly:update"/>
178             {{/if}}
179           </div>
180         </div>
181         <div class="control-group">
182           <label class="control-label" for="name">${$.i18n.prop('name')}</label>
183           <div class="controls">
184             <input type="text" class="xlarge required" id="name" name="name" size="50"
185                    data-bind="value: managedRepository.name"/>
186           </div>
187         </div>
188         <div class="control-group">
189           <label class="control-label" for="location">${$.i18n.prop('directory')}</label>
190           <div class="controls">
191             <input type="text" class="xlarge required" id="location" name="location" size="50" data-bind="value: managedRepository.location"/>
192           </div>
193         </div>
194         <div class="control-group">
195           <label class="control-label" for="indexDirectory">${$.i18n.prop('index.directory')}</label>
196           <div class="controls">
197             <input type="text" class="xlarge" id="indexDirectory" name="indexDirectory" size="50" data-bind="value: managedRepository.indexDirectory"/>
198           </div>
199         </div>
200         <div class="control-group">
201           <label class="control-label" for="layout">${$.i18n.prop('type')}</label>
202           <div class="controls">
203             <select id="layout" data-bind="options: availableLayouts,optionsText: 'label',optionsValue:'type',value: managedRepository.layout"/>
204           </div>
205         </div>
206         <div class="control-group">
207           <label class="control-label" for="cronExpression">${$.i18n.prop('cronExpression')}</label>
208           <div class="controls">
209             <input type="text" id="cronExpression" class="required" name="cronExpression" size="40" data-bind="value: managedRepository.cronExpression"/>
210           </div>
211         </div>
212         <div class="control-group">
213           <label class="control-label" for="daysOlder">${$.i18n.prop('daysOlder')}</label>
214           <div class="controls">
215             <input type="text" id="daysOlder" class="digits" name="daysOlder" size="5" data-bind="value: managedRepository.daysOlder"/>
216           </div>
217         </div>
218         <div class="control-group">
219           <label class="control-label" for="retentionCount">${$.i18n.prop('retentionCount')}</label>
220           <div class="controls">
221             <input type="text" id="retentionCount" name="retentionCount" size="5" data-bind="value: managedRepository.retentionCount"/>
222           </div>
223         </div>
224         <div class="control-group">
225           <label class="control-label" for="releases">${$.i18n.prop('releases')}</label>
226           <div class="controls">
227             <input type="checkbox" id="releases" name="releases" size="5" data-bind="checked: managedRepository.releases"/>
228           </div>
229         </div>
230         <div class="control-group">
231           <label class="control-label" for="snapshots">${$.i18n.prop('snapshots')}</label>
232           <div class="controls">
233             <input type="checkbox" id="snapshots" name="snapshots" size="5" data-bind="checked: managedRepository.snapshots"/>
234           </div>
235         </div>
236         <div class="control-group">
237           <label class="control-label" for="blockRedeployments">${$.i18n.prop('blockRedeployments')}</label>
238           <div class="controls">
239             <input type="checkbox" id="blockRedeployments" name="blockRedeployments" size="5" data-bind="checked: managedRepository.blockRedeployments"/>
240           </div>
241         </div>
242         <div class="control-group">
243           <label class="control-label" for="scanned">${$.i18n.prop('scanned')}</label>
244           <div class="controls">
245             <input type="checkbox" id="scanned" name="scanned" size="5" data-bind="checked: managedRepository.scanned"/>
246           </div>
247         </div>
248         <div class="control-group">
249           <label class="control-label" for="deleteReleasedSnapshots">${$.i18n.prop('deleteReleasedSnapshots')}</label>
250           <div class="controls">
251             <input type="checkbox" id="deleteReleasedSnapshots" name="deleteReleasedSnapshots" size="5"
252                    data-bind="checked: managedRepository.deleteReleasedSnapshots"/>
253           </div>
254         </div>
255         <div class="control-group">
256           <label class="control-label" for="stageRepoNeeded">${$.i18n.prop('stageRepoNeeded')}</label>
257           <div class="controls">
258             <input type="checkbox" id="stageRepoNeeded" name="stageRepoNeeded" size="5"
259                    data-bind="checked: managedRepository.stageRepoNeeded"/>
260           </div>
261         </div>
262       </fieldset>
263       <button data-bind="click: save" class="btn">${$.i18n.prop('save')}</button>
264       <button data-bind="click: displayGrid" class="btn">${$.i18n.prop('cancel')}</button>
265     </form>
266 </script>
267
268 <script id="managed-repository-delete-warning-tmpl" type='text/html'>
269   <div>
270     <span class="label label-warning">${$.i18n.prop('warning.not.undone.operation')}</span>
271     <div>
272       <span><strong>${$.i18n.prop('managedrepository.delete.warning.message')}</strong>.</span>
273       <div>${$.i18n.prop('id')}: ${id()}</div>
274       <div>${$.i18n.prop('name')}: ${name()}</div>
275     </div>
276     <div>
277         ${$.i18n.prop('managedrepository.delete.content')}: <input type="checkbox" id="managedrepository-deletecontent">
278     </div>
279   </div>
280 </script>
281
282 <script type="text/html" id="remote-repository-delete-modal-tmpl">
283     <div>
284       <span class="label label-warning">${$.i18n.prop('warning.not.undone.operation')}</span>
285     </div>
286 </script>
287
288 <script id="managed-repository-location-warning-tmpl" type='text/html'>
289   <div>
290     <span class="label label-warning">${$.i18n.prop('managedrepository.location.already.exists')}</span>
291     <div>
292       <span><strong>${$.i18n.prop('managedrepository.location.already.exists.warning.message')}</strong>.</span>
293       <div>${$.i18n.prop('id')}: ${id()}</div>
294       <div>${$.i18n.prop('name')}: ${name()}</div>
295     </div>
296   </div>
297 </script>
298 <script id="managed-repository-scan-now-modal-tmpl" type='text/html'>
299   <div>
300     ${$.i18n.prop('managedrepository.scan.all')}: <input type="checkbox" id="managed-repository-scan-now-all">
301   </div>
302 </script>
303 <script id="managed-repository-stats-tmpl" type='text/html'>
304   <div id="managedrepository-stats-${managedRepository.id()}-popover" style="display:none">
305     <div>${$.i18n.prop('managedrepository.stats.endTime')}: ${lastScanDate()}</div>
306     <div>${$.i18n.prop('managedrepository.stats.duration')}: ${duration()}ms</div>
307     <div>${$.i18n.prop('managedrepository.stats.totalFileCount')}: ${totalFileCount()}</div>
308     <div>${$.i18n.prop('managedrepository.stats.newFileCount')}: ${newFileCount()}</div>
309   </div>
310 </script>
311 <script id="pom-snippet-tmpl" type='text/html'>
312   <div class="page-header">
313     <h2>POM Snippet</h2></div>
314   </div>
315   <div><a href="#" onclick="$('#managed-repositories-pom-snippet').effect('blind')">${$.i18n.prop('hide')}</a></div>
316   <pre>${$data}</pre>
317 </script>
318
319 <!-- remote part -->
320
321 <script id='ko_remote-repositoriesGrid' type='text/html'>
322   <thead>
323       <tr>
324         {{each(i, columnDefinition) columns}}
325           <th title="${ columnDefinition.title }">${ columnDefinition.headerText }</th>
326         {{/each}}
327         <th>${$.i18n.prop('edit')}</th>
328         <th>${$.i18n.prop('delete')}</th>
329         <th>${$.i18n.prop('modified')}</th>
330         <th>${$.i18n.prop('remoterepository.downloadremoteindex')}</th>
331       </tr>
332   </thead>
333   <tbody>
334       {{each(i, row) itemsOnCurrentPage()}}
335           <tr data-bind="css:{ 'modified': row.modified()}">
336             {{each(j, columnDefinition) columns}}
337               <td>${ typeof columnDefinition.rowText == 'function' ? columnDefinition.rowText(row) : row[columnDefinition.rowText] }</td>
338             {{/each}}
339             <td>
340               <a href="#" data-bind="click: function(){ editRemoteRepository(row) }">
341                 <span class="btn btn-primary">
342                   <i class="icon-pencil icon-white"/>
343                 </span>
344               </a>
345             </td>
346             <td>
347               <a href="#" data-bind="click: function(){ removeRemoteRepository(row) }">
348                 <span class="btn btn-danger">
349                   <i class="icon-trash icon-white"/>
350                 </span>
351               </a>
352             </td>
353             {{if row.modified()}}
354               <td>
355                 <a href="#" class="btn btn-warning" data-bind="click: function(){ updateRemoteRepository(row) }">${$.i18n.prop('save')}</a>
356               </td>
357             {{else}}
358               <td></td>
359             {{/if}}
360             <td>
361               <a href="#" data-bind="click: function(){ scheduleDownloadRemoteIndex(row) }">
362                 <span class="btn btn-success">
363                   <i class="icon-refresh icon-white"/>
364                 </span>
365               </a>
366             </td>
367           </tr>
368       {{/each}}
369   </tbody>
370
371 </script>
372
373
374 <script id="remote-repository-edit-tmpl" type='text/html'>
375     <form id="remote-repository-edit-form" class="well form-horizontal">
376       <fieldset id="remote-repository-edit-fieldset">
377         <div class="control-group">
378           <label class="control-label" for="id">${$.i18n.prop('id')}</label>
379           <div class="controls">
380             {{if update}}
381               <span class="uneditable-input">${$data.remoteRepository.id}</span>
382             {{else}}
383               <input type="text" class="xlarge required" id="id" name="id" size="50"
384                      data-bind="value: remoteRepository.id,css:{'uneditable-input': update},readonly:update"/>
385             {{/if}}
386           </div>
387         </div>
388         <div class="control-group">
389           <label class="control-label" for="name">${$.i18n.prop('name')}</label>
390           <div class="controls">
391             <input type="text" class="xlarge required" id="name" name="name" size="50"
392                    data-bind="value: remoteRepository.name"/>
393           </div>
394         </div>
395         <div class="control-group">
396           <label class="control-label" for="url">${$.i18n.prop('url')}</label>
397           <div class="controls">
398             <input type="text" class="xlarge required" id="url" name="location" size="50" data-bind="value: remoteRepository.url"/>
399           </div>
400         </div>
401         <div class="control-group">
402           <label class="control-label" for="userName">${$.i18n.prop('username')}</label>
403           <div class="controls">
404             <input type="text" class="xlarge" id="userName" name="userName" size="50" data-bind="value: remoteRepository.indexDirectory"/>
405           </div>
406         </div>
407         <div class="control-group">
408           <label class="control-label" for="password">${$.i18n.prop('password')}</label>
409            <div class="controls">
410              <input type="password" class="xlarge" id="password" name="password" size="50" data-bind="value: remoteRepository.password"/>
411           </div>
412         </div>
413         <div class="control-group">
414           <label class="control-label" for="timeout">${$.i18n.prop('timeout')}</label>
415           <div class="controls">
416             <input type="text" id="timeout" class="digits" name="daysOlder" size="5" data-bind="value: remoteRepository.timeout"/>
417           </div>
418         </div>
419
420         <div class="control-group">
421           <label class="control-label" for="layout">${$.i18n.prop('type')}</label>
422           <div class="controls">
423             <select id="layout" data-bind="options: availableLayouts,optionsText: 'label',optionsValue:'type',value: remoteRepository.layout"/>
424           </div>
425         </div>
426         <div class="control-group">
427           <label class="control-label" for="downloadRemoteIndex">${$.i18n.prop('downloadRemoteIndex')}</label>
428           <div class="controls">
429             <input type="checkbox" id="downloadRemoteIndex" name="downloadRemoteIndex" size="5" data-bind="checked: remoteRepository.downloadRemoteIndex"/>
430           </div>
431         </div>
432
433         <div class="control-group">
434           <label class="control-label" for="remoteIndexUrl">${$.i18n.prop('remoteIndexUrl')}</label>
435           <div class="controls">
436             <input type="text" id="remoteIndexUrl" name="remoteIndexUrl" size="5" data-bind="value: remoteRepository.remoteIndexUrl"/>
437           </div>
438         </div>
439         <div class="control-group">
440           <label class="control-label" for="cronExpression">${$.i18n.prop('cronExpression')}</label>
441           <div class="controls">
442             <input type="text" id="cronExpression" name="cronExpression" size="40" data-bind="value: remoteRepository.cronExpression"/>
443           </div>
444         </div>
445         <div class="control-group">
446           <label class="control-label" for="indexDirectory">${$.i18n.prop('index.directory')}</label>
447           <div class="controls">
448             <input type="text" class="xlarge" id="indexDirectory" name="indexDirectory" size="50" data-bind="value: remoteRepository.indexDirectory"/>
449           </div>
450         </div>
451         <div class="control-group">
452           <label class="control-label" for="remoteDownloadTimeout">${$.i18n.prop('remoteDownloadTimeout')}</label>
453           <div class="controls">
454             <input type="text" id="remoteDownloadTimeout" class="digits" name="remoteDownloadTimeout" size="5"
455                    data-bind="value: remoteRepository.remoteDownloadTimeout"/>
456           </div>
457         </div>
458
459         <div class="control-group">
460           <label class="control-label" for="remoteDownloadNetworkProxyId">${$.i18n.prop('remoteDownloadNetworkProxyId')}</label>
461           <div class="controls">
462             <select id="remoteDownloadNetworkProxyId" data-bind="options: networkProxies, optionsText: 'id',optionsValue:'id', value: remoteRepository.remoteDownloadNetworkProxyId, optionsCaption: 'Choose...'"></select>
463           </div>
464         </div>
465
466
467         <div class="control-group">
468           <label class="control-label" for="downloadRemoteIndexOnStartup">${$.i18n.prop('downloadRemoteIndexOnStartup')}</label>
469           <div class="controls">
470             <input type="checkbox" id="downloadRemoteIndexOnStartup" name="downloadRemoteIndexOnStartup"
471                    data-bind="checked: remoteRepository.downloadRemoteIndexOnStartup"/>
472           </div>
473         </div>
474
475       </fieldset>
476       <button data-bind="click: save" class="btn">${$.i18n.prop('save')}</button>
477       <button data-bind="click: displayGrid" class="btn">${$.i18n.prop('cancel')}</button>
478     </form>
479 </script>
480
481 <script id="remote-repository-scan-modal-tmpl" type='text/html'>
482     <div>
483       ${$.i18n.prop('remoterepository.download.remote.now')}: <input type="checkbox" id="remoterepository-scan-now">
484     </div>
485     <div>
486       ${$.i18n.prop('remoterepository.download.remote.full')}: <input type="checkbox" id="remoterepository-scan-full">
487     </div>
488 </script>
489
490 <script id="managed-repositories-bulk-save-tmpl" type='text/html'>
491   {{if bulkSave()}}
492     <a data-bind="click: updateModifiedManagedRepositories" class="btn btn-danger" href="#">${$.i18n.prop('save.all')}</a>
493   {{/if}}
494 </script>
495
496 <script id="remote-repositories-bulk-save-tmpl" type='text/html'>
497   {{if bulkSave()}}
498     <a data-bind="click: updateModifiedRemoteRepositories" class="btn btn-danger" href="#">${$.i18n.prop('save.all')}</a>
499   {{/if}}
500 </script>
501
502 <script id="networkProxiesMain" type="text/html">
503   <div class="page-header">
504     <h2><img src="images/internet-web-browser-32-32.png"/>${$.i18n.prop('network-proxies.list')}</h2>
505   </div>
506
507   <ul id="network-proxies-view-tabs" class="nav nav-tabs">
508     <li id="network-proxies-view-tabs-li-grid">
509       <a data-toggle="tab" href="#network-proxies-view" id="network-proxies-view-tabs-a-network-proxies-grid">${$.i18n.prop('network-proxies.grid.tab.title')}</a>
510     </li>
511     <li id="network-proxies-view-tabs-li-edit">
512       <a data-toggle="tab" href="#network-proxies-edit">${$.i18n.prop('add')}</a>
513     </li>
514   </ul>
515   <div id="network-proxies-view-tabs-content" class="tab-content">
516     <div id="network-proxies-view" class="tab-pane">
517         <div id="network-proxies-bulk-save-btn" data-bind='template:{name:"network-proxies-bulk-save-tmpl"}'></div>
518         <table class="table table-striped table-bordered" id="networkProxiesTable"
519                data-bind="simpleGrid: gridViewModel,simpleGridTemplate:'ko-network-proxies-grid',pageLinksId:'network-proxiesPagination'">
520         </table>
521         <div id="network-proxiesPagination"></div>
522     </div>
523     <div id="network-proxies-edit" class="tab-pane" data-bind='template: {name:"network-proxy-edit-tmpl"}'></div>
524   </div>
525
526 </script>
527
528 <script id='ko-network-proxies-grid' type='text/html'>
529     <thead>
530     <tr>
531         {{each(i, columnDefinition) columns}}
532         <th>${ columnDefinition.headerText }</th>
533         {{/each}}
534         <th>${$.i18n.prop('password')}</th>
535         <th>${$.i18n.prop('network.proxy.useNtlm')}</th>
536         <th>${$.i18n.prop('edit')}</th>
537         <th>${$.i18n.prop('delete')}</th>
538         <th>${$.i18n.prop('modified')}</th>
539     </tr>
540     </thead>
541     <tbody>
542     {{each(i, row) itemsOnCurrentPage()}}
543       <tr data-bind="css:{ 'modified': row.modified()}">
544         {{each(j, columnDefinition) columns}}
545         {{var val = (typeof columnDefinition.rowText == 'function' ? columnDefinition.rowText(row) : row[columnDefinition.rowText])}}
546           <td>
547               ${val}
548           </td>
549         {{/each}}
550         {{if row.password()}}
551           <td>*****</td>
552         {{else}}
553           <td></td>
554         {{/if}}
555           <td>${row.useNtlm()}</td>
556           <td>
557             <a href="#" data-bind="click: function(){ editNetworkProxy(row) }">
558               <span class="btn btn-primary">
559                 <i class="icon-pencil icon-white"/>
560               </span>
561             </a>
562           </td>
563           <td>
564             <a href="#" data-bind="click: function(){ removeNetworkProxy(row) }">
565               <span class="btn btn-danger">
566                 <i class="icon-trash icon-white"/>
567               </span>
568             </a>
569           </td>
570         {{if row.modified()}}
571           <td>
572             <a href="#" data-bind="click: function(){ updateNetworkProxy(row) }" class="btn btn-warning">${$.i18n.prop('save')}</a>
573           </td>
574         {{else}}
575           <td></td>
576         {{/if}}
577
578     </tr>
579     {{/each}}
580     </tbody>
581
582 </script>
583
584 <script id="network-proxy-edit-tmpl" type='text/html'>
585     <form id="network-proxy-edit-form" class="well form-horizontal">
586       <fieldset id="network-proxy-edit-fieldset">
587         <div class="control-group">
588           <label class="control-label" for="id">${$.i18n.prop('id')}</label>
589           <div class="controls">
590             {{if update}}
591               <span class="uneditable-input">${$data.networkProxy.id}</span>
592             {{else}}
593               <input type="text" class="xlarge" id="id" name="id" size="10"
594                      data-bind="value: networkProxy.id,css:{'uneditable-input': update},readonly:update"/>
595             {{/if}}
596           </div>
597         </div>
598         <div class="control-group">
599           <label class="control-label" for="protocol">${$.i18n.prop('protocol')}</label>
600           <div class="controls">
601             <input type="text" class="xlarge required" id="protocol" name="protocol" size="8"
602                    data-bind="value: networkProxy.protocol"/>
603           </div>
604         </div>
605         <div class="control-group">
606           <label class="control-label" for="host">${$.i18n.prop('host')}</label>
607           <div class="controls">
608             <input type="text" class="xlarge required" id="host" name="host" size="15"
609                    data-bind="value: networkProxy.host"/>
610           </div>
611         </div>
612         <div class="control-group">
613           <label class="control-label" for="port">${$.i18n.prop('port')}</label>
614           <div class="controls">
615             <input type="text" class="xlarge required digits" id="port" name="port" size="6"
616                    data-bind="value: networkProxy.port"/>
617           </div>
618         </div>
619         <div class="control-group">
620           <label class="control-label" for="username">${$.i18n.prop('username')}</label>
621           <div class="controls">
622             <input type="text" class="xlarge" id="username" name="username" size="50"
623                    data-bind="value: networkProxy.username"/>
624           </div>
625         </div>
626         <div class="control-group">
627           <label class="control-label" for="password">${$.i18n.prop('password')}</label>
628           <div class="controls">
629             <input type="password" class="xlarge" id="password" name="password" size="50"
630                    data-bind="value: networkProxy.password"/>
631           </div>
632         </div>
633         <div class="control-group">
634           <label class="control-label" for="useNtlm">${$.i18n.prop('network.proxy.useNtlm')}</label>
635           <div class="controls">
636             <input type="checkbox" id="useNtlm" name="useNtlm" data-bind="checked: networkProxy.useNtlm"/>
637           </div>
638         </div>
639
640       </fieldset>
641       <button id="network-proxy-btn-save" data-bind="click: save" class="btn">${$.i18n.prop('save')}</button>
642       {{if networkProxy.modified()}}
643        ${("#network-proxy-btn-save").button('reset')}
644       {{/if}}
645       <button data-bind="click: displayGrid" class="btn">${$.i18n.prop('cancel')}</button>
646     </form>
647 </script>
648
649 <script id="network-proxies-bulk-save-tmpl" type='text/html'>
650   {{if bulkSave()}}
651     <a data-bind="click: updateModifiedNetworkProxies" class="btn btn-danger" href="#">${$.i18n.prop('save.all')}</a>
652   {{/if}}
653 </script>
654 <script id="network-proxy-delete-warning-tmpl" type='text/html'>
655     <div>
656       <span class="label label-warning">${$.i18n.prop('warning.not.undone.operation')}</span>
657     </div>
658 </script>
659
660 <script id="proxyConnectorsMain" type="text/html">
661   <div class="page-header">
662     <h2><img src="images/preferences-system-network-proxy-32-32.png"/>${$.i18n.prop('proxy-connectors.list')}</h2>
663   </div>
664
665   <ul id="proxy-connectors-view-tabs" class="nav nav-tabs">
666     <li id="proxy-connectors-view-tabs-li-grid" class="active">
667       <a data-toggle="tab" href="#proxy-connectors-view" id="proxy-connectors-view-tabs-a-network-proxies-grid">${$.i18n.prop('proxy-connectors.grid.tab.title')}</a>
668     </li>
669     <li id="proxy-connectors-view-tabs-li-edit">
670       <a data-toggle="tab" href="#proxy-connectors-edit" id="proxy-connectors-view-tabs-a-edit">${$.i18n.prop('add')}</a>
671     </li>
672     <li id="proxy-connectors-view-tabs-li-edit-order">
673       <a data-toggle="tab" href="#proxy-connectors-edit-order" id="proxy-connectors-view-tabs-a-edit-order">${$.i18n.prop('proxy-connectors.grid.tab.edit.order')}</a>
674     </li>
675   </ul>
676   <div id="proxy-connectors-view-tabs-content" class="tab-content">
677     <div id="proxy-connectors-view" class="tab-pane active">
678       <div id="proxy-connectors-bulk-save-btn" data-bind='template:{name:"proxy-connectors-bulk-save-tmpl"}'></div>
679       <table class="table table-striped table-bordered" id="proxyConnectorsTable"
680              data-bind="simpleGrid: gridViewModel,simpleGridTemplate:'ko-proxy-connectors-grid',pageLinksId:'proxy-connectorsPagination'">
681       </table>
682       <div id="proxy-connectorsPagination"></div>
683     </div>
684     <div id="proxy-connectors-edit" class="tab-pane"></div>
685     <div id="proxy-connector-edit-order" class="tab-pane span8">
686       <div id="proxy-connector-edit-order-managed-repository-div" data-bind='template:{name:"proxy-connector-edit-order-managed-repository-tmpl"}'></div>
687       <div id="proxy-connector-edit-order-div"
688          data-bind="sortable: { template: 'proxy-connector-edit-order-tmpl', data: proxyConnectors,afterMove: proxyConnectorMoved}">
689       </div>
690     </div>
691   </div>
692
693 </script>
694
695 <script id='ko-proxy-connectors-grid' type='text/html'>
696     <thead>
697       <tr>
698         <th title="${$.i18n.prop('proxy-connectors.grid.managedrepo.title')}">
699           ${$.i18n.prop('proxy-connectors.grid.managedrepo.grid.header')}
700         </th>
701         <th title="${$.i18n.prop('proxy-connectors.grid.remoterepo.title')}">
702           ${$.i18n.prop('proxy-connectors.grid.remoterepo.grid.header')}
703         </th>
704         <th>${$.i18n.prop('proxy-connectors.grid.remoterepo.settings.popover.title')}</th>
705         <th>${$.i18n.prop('edit')}</th>
706         <th>${$.i18n.prop('delete')}</th>
707         <th>${$.i18n.prop('save')}</th>
708         <th>${$.i18n.prop('proxy-connectors.grid.header.order')}</th>
709       </tr>
710     </thead>
711     <tbody>
712     {{each(i, row) itemsOnCurrentPage()}}
713     <tr data-bind="css:{ 'modified': row.modified()}">
714       <td>${row.sourceRepoId()}</td>
715       <td>${row.targetRepoId()}</td>
716       <td>
717           <img src="images/utilities-system-monitor-22-22.png" id="proxy-connectors-grid-remoterepo-settings-edit-${row.sourceRepoId()}-${row.targetRepoId()}"
718                data-original-title="${$.i18n.prop('proxy-connectors.grid.remoterepo.settings.popover.title')}"
719                data-bind="event: { mouseover: function(){ showSettings(row)},}">
720           <div id="proxy-connectors-grid-remoterepo-settings-content-${row.sourceRepoId()}-${row.targetRepoId()}"
721                style="display:none"></div>
722       </td>
723       <td>
724         <a data-bind="click: function(){ editProxyConnector(row)}" href="#">
725           <span class="btn btn-primary">
726             <i class="icon-pencil icon-white"/>
727           </span>
728         </a>
729       </td>
730       <td>
731         <a href="#" data-bind="click: function(){ deleteProxyConnector(row)}">
732           <span class="btn btn-danger">
733             <i class="icon-trash icon-white"/>
734           </span>
735         </a>
736       </td>
737       <td>
738         {{if row.modified()}}
739           <a href="#" class="btn btn-warning" data-bind="click: function(){ updateProxyConnector(row)}">
740               ${$.i18n.prop('save')}
741           </a>
742         {{/if}}
743       </td>
744       <td>
745         {{if orderChangeAware(row)}}
746           <a href="#" data-bind="click: function(){ displayOrderEdit(row)}">
747             <span class="btn btn-info">
748               <i class="icon-resize-vertical icon-white"/>
749                ${$.i18n.prop('proxy-connectors.order.edit')}
750             </span>
751
752           </a>
753           <span class="badge badge-info">${row.order()}</span>
754         {{/if}}
755       </td>
756     </tr>
757     {{/each}}
758     </tbody>
759     <div id="proxy-connectors-grid-remoterepo-settings-content-${val}-${targetRepoId}" style="display:none"></div>
760 </script>
761
762 <script id='proxy-connectors-remote-settings-popover-tmpl' type='text/html'>
763   <div>
764     {{if proxyId}}
765       ${$.i18n.prop('proxy-connectors.remoterepo.settings.networkproxy')}: ${proxyConnector.proxyId}
766     {{else}}
767       ${$.i18n.prop('proxy-connectors.remoterepo.settings.networkproxy')}: ${$.i18n.prop('none')}
768     {{/if}}
769     <table class="table">
770       <thead>
771         <th colspan="2">${$.i18n.prop('proxy-connector.policies')}</th>
772       </thead>
773       <tbody>
774         {{each(i, entry) proxyConnector.policiesEntries}}
775         {{var name = proxyConnectorsViewModel.findPolicyInformationName(entry.key)}}
776         <tr>
777           <td>${name}</td>
778           <td>${entry.value}</td>
779         </tr>
780         {{/each}}
781       </tbody>
782     </table>
783   </div>
784 </script>
785
786 <script id="proxy-connector-edit-form-tmpl" type='text/html'>
787
788     <form id="proxy-connector-edit-form" class="well form-horizontal">
789       <fieldset id="remote-repository-edit-fieldset">
790         <div class="control-group">
791           <label class="control-label" for="proxyId">${$.i18n.prop('proxy-connector.network-proxy.id')}</label>
792           <div class="controls">
793             <select id="proxyId"
794                     data-bind="options: proxyConnectorsViewModel.networkProxies, optionsText: 'id',optionsValue:'id',
795                      value: proxyConnector.proxyId, optionsCaption: 'direct connection'"></select>
796           </div>
797         </div>
798         <div class="control-group">
799           <label class="control-label" for="proxyId">${$.i18n.prop('proxy-connector.managed.repository.id')}</label>
800           <div class="controls">
801               <select id="sourceRepoId"
802                       data-bind="options: proxyConnectorsViewModel.managedRepositories, optionsText: 'id',optionsValue:'id',
803                       value: proxyConnector.sourceRepoId,attr: {disabled: isUpdate() }"></select>
804           </div>
805         </div>
806         <div class="control-group">
807           <label class="control-label" for="proxyId">${$.i18n.prop('proxy-connector.remote.repository.id')}</label>
808           <div class="controls">
809             <select id="targetRepoId"
810                     data-bind="options: proxyConnectorsViewModel.remoteRepositories, optionsText: 'id',optionsValue:'id',
811                      value: proxyConnector.targetRepoId,attr: {disabled: isUpdate() }"></select>
812           </div>
813         </div>
814         <div class="row-fluid">
815           <div class="control-group span6">
816             <table class="table">
817               <thead>
818                 <th colspan="2">${$.i18n.prop('proxy-connector.policies')}</th>
819               </thead>
820               <tbody data-bind="foreach: proxyConnectorsViewModel.policyInformations()">
821                   <tr>
822                     <td data-bind="text: name"></td>
823                     <td>
824                       <select data-bind="options: getPolicyOptions(id()),value:getSelectedPolicyOption(id()),
825                               attr: { id: 'policy-'+id() },event: { change: function(){ changePolicyOption(id())},}">
826                       </select>
827                     </td>
828                   </tr>
829               </tbody>
830             </table>
831           </div>
832         </div>
833         <div class="row-fluid">
834           <div class="control-group span6">
835             <h4>${$.i18n.prop('proxy-connector.properties')}</h4>
836             <table class="table">
837               <thead>
838                 <th><input type="text" id="property-key"/></th>
839                 <th><input type="text" id="property-value"/></th>
840                 <th><a href="#" data-bind="click: function(){ addProperty() }">${$.i18n.prop('add')}</a></th>
841               </thead>
842               <tbody data-bind="foreach: proxyConnector.propertiesEntries">
843                 <tr>
844                   <td data-bind="text: key"></td>
845                   <td data-bind="text: value"></td>
846                   <td><a href="#" data-bind="click: function(){ $parent.deleteProperty(key)}">${$.i18n.prop('delete')}</a></td>
847                 </tr>
848               </tbody>
849             </table>
850           </div>
851         </div>
852         <div class="row-fluid">
853           <div class="control-group span6">
854             <h4>${$.i18n.prop('proxy-connector.blacklist')}</h4>
855             <table class="table">
856               <thead>
857                 <th><input type="text" id="blacklist-value"/></th>
858                 <th><a href="#" data-bind="click: function(){ addBlacklistPattern() }">${$.i18n.prop('add')}</a></th>
859               </thead>
860               <tbody data-bind="foreach: proxyConnector.blackListPatterns">
861                 <tr>
862                   <td data-bind="text: $data"></td>
863                   <td><a href="#" data-bind="click: function(){removeBlacklistPattern($data)}">${$.i18n.prop('delete')}</a></td>
864                 </tr>
865               </tbody>
866             </table>
867           </div>
868         </div>
869         <div class="row-fluid">
870           <div class="control-group span6">
871             <h4>${$.i18n.prop('proxy-connector.whitelist')}</h4>
872             <table class="table">
873               <thead>
874                 <th><input type="text" id="whitelist-value"/></th>
875                 <th><a href="#" data-bind="click: function(){ addWhitelistPattern() }">${$.i18n.prop('add')}</a></th>
876               </thead>
877               <tbody data-bind="foreach: proxyConnector.whiteListPatterns">
878                 <tr>
879                   <td data-bind="text: $data"></td>
880                   <td><a href="#" data-bind="click: function(){removeWhitelistPattern($data)}">${$.i18n.prop('delete')}</a></td>
881                 </tr>
882               </tbody>
883             </table>
884           </div>
885         </div>
886       </fieldset>
887
888       <button id="proxy-connector-btn-save" data-bind="click: save" class="btn">${$.i18n.prop('save')}</button>
889       {{if modified()}}
890        ${("#network-proxy-btn-save").button('reset')}
891       {{/if}}
892       <button data-bind="click: displayGrid" class="btn">${$.i18n.prop('cancel')}</button>
893
894     </form>
895
896 </script>
897 <script id="proxy-connectors-bulk-save-tmpl" type='text/html'>
898   {{if bulkSave()}}
899     <a data-bind="click: updateModifiedProxyConnectors" class="btn btn-danger" href="#">${$.i18n.prop('save.all')}</a>
900   {{/if}}
901 </script>
902
903 <script id="proxy-connector-edit-order-tmpl" type='text/html'>
904   <div class="well draggable-item network-proxy-remote-item">
905     {{var remoteRepository=$parent.findRemoteRepository(targetRepoId)}}
906     <div class="row-fluid">
907       <div class="span1">
908         <img src="images/system-software-update-32-32.png"/>
909           <br/>
910           <img src="images/utilities-system-monitor-22-22.png"
911                id="proxy-connectors-order-remoterepo-settings-edit-${sourceRepoId()}-${targetRepoId()}"
912                data-original-title="${$.i18n.prop('proxy-connectors.grid.remoterepo.settings.popover.title')}"
913                data-bind="event: { mouseover: function(){ displaySettings(sourceRepoId(),targetRepoId())},}">
914           <div id="proxy-connectors-order-remoterepo-settings-content-${sourceRepoId()}-${targetRepoId()}"
915                style="display:none"></div>
916       </div>
917       <div class="span6 pull-left">
918         <blockquote>
919             ${targetRepoId}
920             <br/>
921             ${remoteRepository.name()}&nbsp;(<a href="${remoteRepository.url()}" target="_blank">${remoteRepository.url()}</a>)
922         </blockquote>
923       </div>
924       <div class="span2">
925         <span class="badge badge-info">${order}</span>
926       </div>
927     </div>
928   </div>
929 </script>
930
931 <script id="proxy-connector-edit-order-managed-repository-tmpl" type="text/html">
932   <div class="well row-fluid">
933     <div class="span1">
934       <img src="images/applications-internet-32-32.png"/>
935     </div>
936     <div class="span6">
937       <blockquote>
938         ${managedRepository.id}
939         <br/>
940         ${managedRepository.name}
941       </blockquote>
942     </div>
943     <div class="span2">
944       {{if proxyConnectorsViewModel.bulkSave()}}
945         <p>
946           <a data-bind="click: function(){updateModifiedProxyConnectors()}"
947              href="#" class="btn btn-warning">${$.i18n.prop('save.all')}</a></p>
948       {{/if}}
949     </div>
950   </div>
951 </script>
952
953 <script id="proxy-connector-delete-warning-tmpl" type='text/html'>
954     <div>
955       <span class="label label-warning">${$.i18n.prop('warning.not.undone.operation')}</span>
956     </div>
957 </script>
958
959 <script id="repositoryGroupsMain" type="text/html">
960   <div class="page-header">
961     <h2><img src="images/applications-internet-2-32-32.png"/>${$.i18n.prop('repository.groups.list')}</h2>
962   </div>
963   <ul id="repository-groups-view-tabs" class="nav nav-tabs">
964     <li id="repository-groups-view-tabs-li-grid" class="active">
965       <a data-toggle="tab" href="#repository-groups-view" id="repository-groups-view-tabs-a-network-proxies-grid">
966         ${$.i18n.prop('repository-groups.grid.tab.title')}
967       </a>
968     </li>
969     <li id="repository-groups-view-tabs-li-edit">
970       <a data-toggle="tab" href="#repository-groups-edit" id="repository-groups-view-tabs-a-edit">${$.i18n.prop('add')}</a>
971     </li>
972
973   </ul>
974   <div id="repository-groups-view-tabs-content" class="tab-content">
975         <div id="repository-groups-view" class="tab-pane active">
976           <div id="repository-groups-table" data-bind='template:{name:"repository-groups-table-tmpl"}'>
977           </div>
978         </div>
979         <div id="repository-groups-edit" class="tab-pane">
980               <div class="row-fluid">
981                 <div class="span5 dotted">
982                   <div id="repository-groups-edit-div" data-bind='template:{name:"repository-group-edit-tmpl"}'></div>
983                   <div id="repository-groups-edit-order-div" style="min-height: 80px"
984                      data-bind="sortable: { template: 'repository-group-edit-order-tmpl',data:repositoryGroup.managedRepositories,afterMove:repositoryMoved}">
985                   </div>
986                 </div>
987
988                 <div class="span5 dotted">
989                   <h5>${$.i18n.prop('repository.groups.available.repositories')}</h5>
990                   <br/>
991                   <div id="repository-groups-edit-available-repositories" style="min-height: 80px"
992                        data-bind="sortable: { template: 'repository-group-edit-order-tmpl',data:availableRepositories,afterMove:repositoryMoved}">
993
994                   </div>
995                 </div>
996
997               </div>
998
999         </div>
1000
1001   </div>
1002 </script>
1003
1004 <script id="repository-groups-table-tmpl" type="text/html">
1005   <table class="table table-striped table-bordered">
1006     <thead>
1007       <th>${$.i18n.prop('repository.groups.groups.grid.header')}</th>
1008       <th>${$.i18n.prop('repository.groups.repositories.grid.header')}</th>
1009       <th>${$.i18n.prop('edit')}</th>
1010       <th>${$.i18n.prop('delete')}</th>
1011       <th>${$.i18n.prop('save')}</th>
1012     </thead>
1013     <tbody>
1014     {{each(i, repositoryGroup) repositoryGroups}}
1015       <tr data-bind="css:{ 'modified': repositoryGroup.modified()}">
1016         <td>${repositoryGroup.id}</td>
1017         <td>
1018           <ul>
1019           {{each(j,id) repositoryGroup.repositories()}}
1020             <li>${id}</li>
1021           {{/each}}
1022           </ul>
1023         </td>
1024         <td>
1025           <a href="#" data-bind="click: function(){editRepositoryGroup(repositoryGroup)}">
1026             <span class="btn btn-primary">
1027               <i class="icon-pencil icon-white"/>
1028             </span>
1029           </a>
1030         </td>
1031         <td>
1032           <a href="#" data-bind="click: function(){deleteRepositoryGroup(repositoryGroup)}">
1033             <span class="btn btn-danger">
1034               <i class="icon-trash icon-white"/>
1035             </span>
1036           </a>
1037         </td>
1038         <td>
1039           {{if repositoryGroup.modified()}}
1040             <a href="#" class="btn btn-warning" data-bind="click: function(){saveRepositoryGroup(repositoryGroup)}">
1041               ${$.i18n.prop('save')}
1042             </a>
1043           {{/if}}
1044         </td>
1045       </tr>
1046     {{/each}}
1047     </tbody>
1048   </table>
1049 </script>
1050
1051 <script id="repository-group-edit-tmpl" type="text/html">
1052   <div class="row-fluid">
1053   {{if update}}
1054     <div class="dotted span8">
1055       <blockquote>
1056         ${repositoryGroup.id}
1057         <br/>
1058         <a href="${window.archivaRuntimeInfo.baseUrl}/repository/${repositoryGroup.id()}" target="_blank">
1059           ${window.archivaRuntimeInfo.baseUrl}/repository/${repositoryGroup.id()}
1060         </a>
1061       </blockquote>
1062     </div>
1063   {{else}}
1064     <div class="dotted span8">
1065       <form id="repository-group-edit-form" class="well">
1066         <fieldset id="repository-group-edit-fieldset">
1067           <div class="control-group">
1068             <label class="control-label" for="id">${$.i18n.prop('id')}</label>
1069             <div class="controls">
1070               <input type="text" class="xlarge required" id="id" name="id" size="15"
1071                    data-bind="value: repositoryGroup.id,css:{'uneditable-input': update},readonly:update"/>
1072             </div>
1073           </div>
1074         </fieldset>
1075       </form>
1076     </div>
1077   {{/if}}
1078   {{if repositoryGroup.modified()}}
1079     <div class="span3">
1080       <a href="#" class="btn btn-warning" data-bind="click: function(){saveRepositoryGroup(repositoryGroup)}">${$.i18n.prop('save')}</a>
1081     </div>
1082     <br/>
1083   {{/if}}
1084   </div>
1085 </script>
1086
1087 <script id="repository-group-edit-order-tmpl" type="text/html">
1088   <div class="well draggable-item">
1089     <blockquote>
1090       ${$data.id()}
1091       <br/>
1092       ${$data.name()}
1093       <br/>
1094       <a href="${window.archivaRuntimeInfo.baseUrl}/repository/${$data.id()}" target="_blank">
1095         ${window.archivaRuntimeInfo.baseUrl}/repository/${$data.id()}
1096       </a>
1097       <br/>
1098     </blockquote>
1099
1100   </div>
1101 </script>
1102
1103 <script id="repository-group-delete-warning-tmpl" type='text/html'>
1104     <div>
1105       <span class="label label-warning">${$.i18n.prop('warning.not.undone.operation')}</span>
1106     </div>
1107 </script>