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
10 ~ http://www.apache.org/licenses/LICENSE-2.0
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
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>
24 <ul id="repositories-tabs" class="nav nav-tabs">
26 <a data-toggle="tab" href="#managed-repositories-content">${$.i18n.prop('managedrepositories.grid.head')}</a>
29 <a data-toggle="tab" href="#remote-repositories-content">${$.i18n.prop('remoterepositories.grid.head')}</a>
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>
38 <li id="managed-repository-edit-li">
39 <a data-toggle="tab" href="#managed-repository-edit">${$.i18n.prop('add')}</a>
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'">
48 <div id="managed-repositoriesPagination"></div>
49 <div id="managed-repositories-pom-snippet"></div>
51 <div id="managed-repository-edit" class="pill-pane" data-bind='template: {name:"managed-repository-edit-tmpl"}'>
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>
62 <li id="remote-repository-edit-li">
63 <a data-toggle="tab" href="#remote-repository-edit">${$.i18n.prop('add')}</a>
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'">
72 <div id="remote-repositoriesPagination"></div>
74 <div id="remote-repository-edit" class="pill-pane" data-bind='template: {name:"remote-repository-edit-tmpl"}'>
81 <script id='ko_managed-repositoriesGrid' type='text/html'>
84 {{each(i, columnDefinition) columns}}
85 <th title="${ columnDefinition.title }">${ columnDefinition.headerText }</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('description')}</th>
94 <th>${$.i18n.prop('managedrepository.pomsnippet')}</th>
95 <th title="${$.i18n.prop('managedrepository.stats')}">${$.i18n.prop('managedrepository.stats.grid.header')}</th>
96 <th title="${$.i18n.prop('managedrepository.scan.directories')}">${$.i18n.prop('managedrepository.scan.directories.grid.header')}</th>
100 {{each(i, row) itemsOnCurrentPage()}}
101 <tr data-bind="css:{ 'modified': row.modified()}">
102 {{each(j, columnDefinition) columns}}
103 <td>${ typeof columnDefinition.rowText == 'function' ? columnDefinition.rowText(row) : row[columnDefinition.rowText] }</td>
106 {{if row.releases() == true}}
107 <img src="images/weather-clear-22-22.png" title="${$.i18n.prop('release.included')}"/>
109 <img src="images/dialog-error-22-22.png" title="${$.i18n.prop('release.notincluded')}"/>
114 {{if row.snapshots() == true}}
115 <img src="images/weather-clear-22-22.png" title="${$.i18n.prop('snapshots.included')}"/>
117 <img src="images/dialog-error-22-22.png" title="${$.i18n.prop('snapshots.notincluded')}"/>
121 <a href="#" data-bind="click: function(){ scanNow(row) }">
122 <span class="btn btn-success">
123 <i class="icon-refresh icon-white"/>
128 <a href="#" data-bind="click: function(){ editManagedRepository(row) }">
129 <span class="btn btn-primary">
130 <i class="icon-pencil icon-white"/>
135 <a href="#" data-bind="click: function(){ removeManagedRepository(row) }">
136 <span class="btn btn-danger">
137 <i class="icon-trash icon-white"/>
141 {{if row.modified()}}
143 <a href="#" class="btn btn-warning" data-bind="click: function(){ updateManagedRepository(row) }">${$.i18n.prop('save')}</a>
149 {{if row.description()}}
150 <a class="btn btn-warning btn-mini popover-doc" id="managedrepo-description-help"
151 data-content="${row.description()}" data-title="${$.i18n.prop('description')}">
152 <i class="icon-question-sign icon-white"></i>
156 <td><a href="#" data-bind="click: function(){ showPomSnippet(row) }">${$.i18n.prop('managedrepository.pomsnippet')}</a></td>
157 <td id="managedrepository-stats-${row.id()}">
158 <img src="images/utilities-system-monitor-22-22.png" data-original-title="${$.i18n.prop('managedrepository.stats')}"
159 data-bind="event: { mouseover: function(){ showStats(row) }, mouseout: function(){ hideStats(row) },}"
160 id="managedrepository-stats-img-${row.id()}"/>
163 <a href="#" data-bind="click: function(){directoriesScan(row)}">
164 <span class="btn btn-warning">
165 <i class="icon-repeat icon-white"/>
176 <script id="managed-repository-edit-tmpl" type='text/html'>
177 <form id="managed-repository-edit-form" class="well form-horizontal">
178 <fieldset id="managed-repository-edit-fieldset">
179 <div class="control-group">
180 <label class="control-label" for="id">${$.i18n.prop('id')}</label>
181 <div class="controls">
183 <span class="uneditable-input">${$data.managedRepository.id}</span>
185 <input type="text" class="xlarge required" id="id" name="id" size="50"
186 data-bind="value: managedRepository.id,css:{'uneditable-input': update},readonly:update"/>
190 <div class="control-group">
191 <label class="control-label" for="name">${$.i18n.prop('name')}</label>
192 <div class="controls">
193 <input type="text" class="xlarge required" id="name" name="name" size="50"
194 data-bind="value: managedRepository.name"/>
197 <div class="control-group">
198 <label class="control-label" for="location">${$.i18n.prop('directory')}</label>
199 <div class="controls">
200 <input type="text" class="xlarge required" id="location" name="location" size="50" data-bind="value: managedRepository.location"/>
203 <div class="control-group">
204 <label class="control-label" for="indexDirectory">${$.i18n.prop('index.directory')}</label>
205 <div class="controls">
206 <input type="text" class="xlarge" id="indexDirectory" name="indexDirectory" size="50" data-bind="value: managedRepository.indexDirectory"/>
209 <div class="control-group">
210 <label class="control-label" for="layout">${$.i18n.prop('type')}</label>
211 <div class="controls">
212 <select id="layout" data-bind="options: availableLayouts,optionsText: 'label',optionsValue:'type',value: managedRepository.layout"/>
215 <div class="control-group">
216 <label class="control-label" for="cronExpression">${$.i18n.prop('cronExpression')}</label>
217 <div class="controls">
218 <input type="text" id="cronExpression" class="required" name="cronExpression" size="40" data-bind="value: managedRepository.cronExpression"/>
219 <a class="btn btn-warning btn-mini popover-doc" id="rowcount-info-button"
220 data-original-title="${$.i18n.prop('cronExpression.help.title')}"
221 data-content="${$.i18n.prop('cronExpression.help.content')}">
222 <i class="icon-question-sign icon-white"></i>
226 <div class="control-group">
227 <label class="control-label" for="daysOlder">${$.i18n.prop('daysOlder')}</label>
228 <div class="controls">
229 <input type="text" id="daysOlder" class="digits" name="daysOlder" size="5" data-bind="value: managedRepository.daysOlder"/>
232 <div class="control-group">
233 <label class="control-label" for="retentionCount">${$.i18n.prop('retentionCount')}</label>
234 <div class="controls">
235 <input type="text" id="retentionCount" name="retentionCount" size="5" data-bind="value: managedRepository.retentionCount"/>
239 <div class="control-group">
240 <label class="control-label" for="daysOlder">${$.i18n.prop('description')}</label>
241 <div class="controls">
242 <textarea rows="3" id="description" name="description" data-bind="value: managedRepository.description"></textarea>
246 <div class="control-group">
247 <label class="control-label" for="releases">${$.i18n.prop('releases')}</label>
248 <div class="controls">
249 <input type="checkbox" id="releases" name="releases" size="5" data-bind="checked: managedRepository.releases"/>
252 <div class="control-group">
253 <label class="control-label" for="snapshots">${$.i18n.prop('snapshots')}</label>
254 <div class="controls">
255 <input type="checkbox" id="snapshots" name="snapshots" size="5" data-bind="checked: managedRepository.snapshots"/>
258 <div class="control-group">
259 <label class="control-label" for="blockRedeployments">${$.i18n.prop('blockRedeployments')}</label>
260 <div class="controls">
261 <input type="checkbox" id="blockRedeployments" name="blockRedeployments" size="5" data-bind="checked: managedRepository.blockRedeployments"/>
264 <div class="control-group">
265 <label class="control-label" for="scanned">${$.i18n.prop('scanned')}</label>
266 <div class="controls">
267 <input type="checkbox" id="scanned" name="scanned" size="5" data-bind="checked: managedRepository.scanned"/>
270 <div class="control-group">
271 <label class="control-label" for="deleteReleasedSnapshots">${$.i18n.prop('deleteReleasedSnapshots')}</label>
272 <div class="controls">
273 <input type="checkbox" id="deleteReleasedSnapshots" name="deleteReleasedSnapshots" size="5"
274 data-bind="checked: managedRepository.deleteReleasedSnapshots"/>
277 <div class="control-group">
278 <label class="control-label" for="stageRepoNeeded">${$.i18n.prop('stageRepoNeeded')}</label>
279 <div class="controls">
280 <input type="checkbox" id="stageRepoNeeded" name="stageRepoNeeded" size="5"
281 data-bind="checked: managedRepository.stageRepoNeeded"/>
285 <button data-bind="click: save" class="btn">${$.i18n.prop('save')}</button>
286 <button data-bind="click: displayGrid" class="btn">${$.i18n.prop('cancel')}</button>
290 <script id="managed-repository-delete-warning-tmpl" type='text/html'>
292 <span class="label label-warning">${$.i18n.prop('warning.not.undone.operation')}</span>
294 <span><strong>${$.i18n.prop('managedrepository.delete.warning.message')}</strong>.</span>
295 <div>${$.i18n.prop('id')}: ${id()}</div>
296 <div>${$.i18n.prop('name')}: ${name()}</div>
299 ${$.i18n.prop('managedrepository.delete.content')}: <input type="checkbox" id="managedrepository-deletecontent">
304 <script type="text/html" id="remote-repository-delete-modal-tmpl">
306 <span class="label label-warning">${$.i18n.prop('warning.not.undone.operation')}</span>
310 <script id="managed-repository-location-warning-tmpl" type='text/html'>
312 <span class="label label-warning">${$.i18n.prop('managedrepository.location.already.exists')}</span>
314 <span><strong>${$.i18n.prop('managedrepository.location.already.exists.warning.message')}</strong>.</span>
315 <div>${$.i18n.prop('id')}: ${id()}</div>
316 <div>${$.i18n.prop('name')}: ${name()}</div>
320 <script id="managed-repository-scan-now-modal-tmpl" type='text/html'>
322 ${$.i18n.prop('managedrepository.scan.all')}: <input type="checkbox" id="managed-repository-scan-now-all">
325 <script id="managed-repository-stats-tmpl" type='text/html'>
326 <div id="managedrepository-stats-${managedRepository.id()}-popover" style="display:none">
327 <div>${$.i18n.prop('managedrepository.stats.endTime')}: ${lastScanDate()}</div>
328 <div>${$.i18n.prop('managedrepository.stats.duration')}: ${duration()}ms</div>
329 <div>${$.i18n.prop('managedrepository.stats.totalFileCount')}: ${totalFileCount()}</div>
330 <div>${$.i18n.prop('managedrepository.stats.newFileCount')}: ${newFileCount()}</div>
333 <script id="pom-snippet-tmpl" type='text/html'>
334 <div class="page-header">
335 <h2>POM Snippet</h2></div>
337 <div><a href="#" onclick="$('#managed-repositories-pom-snippet').effect('blind')">${$.i18n.prop('hide')}</a></div>
343 <script id='ko_remote-repositoriesGrid' type='text/html'>
346 {{each(i, columnDefinition) columns}}
347 <th title="${ columnDefinition.title }">${ columnDefinition.headerText }</th>
349 <th>${$.i18n.prop('edit')}</th>
350 <th>${$.i18n.prop('delete')}</th>
351 <th>${$.i18n.prop('modified')}</th>
352 <th>${$.i18n.prop('remoterepository.downloadremoteindex')}</th>
356 {{each(i, row) itemsOnCurrentPage()}}
357 <tr data-bind="css:{ 'modified': row.modified()}">
358 {{each(j, columnDefinition) columns}}
359 <td>${ typeof columnDefinition.rowText == 'function' ? columnDefinition.rowText(row) : row[columnDefinition.rowText] }</td>
362 <a href="#" data-bind="click: function(){ editRemoteRepository(row) }">
363 <span class="btn btn-primary">
364 <i class="icon-pencil icon-white"/>
369 <a href="#" data-bind="click: function(){ removeRemoteRepository(row) }">
370 <span class="btn btn-danger">
371 <i class="icon-trash icon-white"/>
375 {{if row.modified()}}
377 <a href="#" class="btn btn-warning" data-bind="click: function(){ updateRemoteRepository(row) }">${$.i18n.prop('save')}</a>
383 <a href="#" data-bind="click: function(){ scheduleDownloadRemoteIndex(row) }">
384 <span class="btn btn-success">
385 <i class="icon-refresh icon-white"/>
396 <script id="remote-repository-edit-tmpl" type='text/html'>
397 <form id="remote-repository-edit-form" class="well form-horizontal">
398 <fieldset id="remote-repository-edit-fieldset">
399 <div class="control-group">
400 <label class="control-label" for="id">${$.i18n.prop('id')}</label>
401 <div class="controls">
403 <span class="uneditable-input">${$data.remoteRepository.id}</span>
405 <input type="text" class="xlarge required" id="id" name="id" size="50"
406 data-bind="value: remoteRepository.id,css:{'uneditable-input': update},readonly:update"/>
410 <div class="control-group">
411 <label class="control-label" for="name">${$.i18n.prop('name')}</label>
412 <div class="controls">
413 <input type="text" class="xlarge required" id="name" name="name" size="50"
414 data-bind="value: remoteRepository.name"/>
417 <div class="control-group">
418 <label class="control-label" for="url">${$.i18n.prop('url')}</label>
419 <div class="controls">
420 <input type="text" class="xlarge required" id="url" name="location" size="50" data-bind="value: remoteRepository.url"/>
423 <div class="control-group">
424 <label class="control-label" for="userName">${$.i18n.prop('username')}</label>
425 <div class="controls">
426 <input type="text" class="xlarge" id="userName" name="userName" size="50" data-bind="value: remoteRepository.indexDirectory"/>
429 <div class="control-group">
430 <label class="control-label" for="password">${$.i18n.prop('password')}</label>
431 <div class="controls">
432 <input type="password" class="xlarge" id="password" name="password" size="50" data-bind="value: remoteRepository.password"/>
435 <div class="control-group">
436 <label class="control-label" for="timeout">${$.i18n.prop('timeout')}</label>
437 <div class="controls">
438 <input type="text" id="timeout" class="digits" name="daysOlder" size="5" data-bind="value: remoteRepository.timeout"/>
442 <div class="control-group">
443 <label class="control-label" for="layout">${$.i18n.prop('type')}</label>
444 <div class="controls">
445 <select id="layout" data-bind="options: availableLayouts,optionsText: 'label',optionsValue:'type',value: remoteRepository.layout"/>
448 <div class="control-group">
449 <label class="control-label" for="downloadRemoteIndex">${$.i18n.prop('downloadRemoteIndex')}</label>
450 <div class="controls">
451 <input type="checkbox" id="downloadRemoteIndex" name="downloadRemoteIndex" size="5" data-bind="checked: remoteRepository.downloadRemoteIndex"/>
455 <div class="control-group">
456 <label class="control-label" for="remoteIndexUrl">${$.i18n.prop('remoteIndexUrl')}</label>
457 <div class="controls">
458 <input type="text" id="remoteIndexUrl" name="remoteIndexUrl" size="5" data-bind="value: remoteRepository.remoteIndexUrl"/>
461 <div class="control-group">
462 <label class="control-label" for="cronExpression">${$.i18n.prop('cronExpression')}</label>
463 <div class="controls">
464 <input type="text" id="cronExpression" name="cronExpression" size="40" data-bind="value: remoteRepository.cronExpression"/>
467 <div class="control-group">
468 <label class="control-label" for="indexDirectory">${$.i18n.prop('index.directory')}</label>
469 <div class="controls">
470 <input type="text" class="xlarge" id="indexDirectory" name="indexDirectory" size="50" data-bind="value: remoteRepository.indexDirectory"/>
473 <div class="control-group">
474 <label class="control-label" for="remoteDownloadTimeout">${$.i18n.prop('remoteDownloadTimeout')}</label>
475 <div class="controls">
476 <input type="text" id="remoteDownloadTimeout" class="digits" name="remoteDownloadTimeout" size="5"
477 data-bind="value: remoteRepository.remoteDownloadTimeout"/>
481 <div class="control-group">
482 <label class="control-label" for="remoteDownloadNetworkProxyId">${$.i18n.prop('remoteDownloadNetworkProxyId')}</label>
483 <div class="controls">
484 <select id="remoteDownloadNetworkProxyId" data-bind="options: networkProxies, optionsText: 'id',optionsValue:'id', value: remoteRepository.remoteDownloadNetworkProxyId, optionsCaption: 'Choose...'"></select>
489 <div class="control-group">
490 <label class="control-label" for="downloadRemoteIndexOnStartup">${$.i18n.prop('downloadRemoteIndexOnStartup')}</label>
491 <div class="controls">
492 <input type="checkbox" id="downloadRemoteIndexOnStartup" name="downloadRemoteIndexOnStartup"
493 data-bind="checked: remoteRepository.downloadRemoteIndexOnStartup"/>
498 <button data-bind="click: save" class="btn">${$.i18n.prop('save')}</button>
499 <button data-bind="click: displayGrid" class="btn">${$.i18n.prop('cancel')}</button>
503 <script id="remote-repository-scan-modal-tmpl" type='text/html'>
505 ${$.i18n.prop('remoterepository.download.remote.now')}: <input type="checkbox" id="remoterepository-scan-now">
508 ${$.i18n.prop('remoterepository.download.remote.full')}: <input type="checkbox" id="remoterepository-scan-full">
512 <script id="managed-repositories-bulk-save-tmpl" type='text/html'>
514 <a data-bind="click: updateModifiedManagedRepositories" class="btn btn-danger" href="#">${$.i18n.prop('save.all')}</a>
518 <script id="remote-repositories-bulk-save-tmpl" type='text/html'>
520 <a data-bind="click: updateModifiedRemoteRepositories" class="btn btn-danger" href="#">${$.i18n.prop('save.all')}</a>
524 <script id="networkProxiesMain" type="text/html">
525 <div class="page-header">
526 <h2><img src="images/internet-web-browser-32-32.png"/>${$.i18n.prop('network-proxies.list')}</h2>
529 <ul id="network-proxies-view-tabs" class="nav nav-tabs">
530 <li id="network-proxies-view-tabs-li-grid">
531 <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>
533 <li id="network-proxies-view-tabs-li-edit">
534 <a data-toggle="tab" href="#network-proxies-edit">${$.i18n.prop('add')}</a>
537 <div id="network-proxies-view-tabs-content" class="tab-content">
538 <div id="network-proxies-view" class="tab-pane">
539 <div id="network-proxies-bulk-save-btn" data-bind='template:{name:"network-proxies-bulk-save-tmpl"}'></div>
540 <table class="table table-striped table-bordered" id="networkProxiesTable"
541 data-bind="simpleGrid: gridViewModel,simpleGridTemplate:'ko-network-proxies-grid',pageLinksId:'network-proxiesPagination'">
543 <div id="network-proxiesPagination"></div>
545 <div id="network-proxies-edit" class="tab-pane" data-bind='template: {name:"network-proxy-edit-tmpl"}'></div>
550 <script id='ko-network-proxies-grid' type='text/html'>
553 {{each(i, columnDefinition) columns}}
554 <th>${ columnDefinition.headerText }</th>
556 <th>${$.i18n.prop('password')}</th>
557 <th>${$.i18n.prop('network.proxy.useNtlm')}</th>
558 <th>${$.i18n.prop('edit')}</th>
559 <th>${$.i18n.prop('delete')}</th>
560 <th>${$.i18n.prop('modified')}</th>
564 {{each(i, row) itemsOnCurrentPage()}}
565 <tr data-bind="css:{ 'modified': row.modified()}">
566 {{each(j, columnDefinition) columns}}
567 {{var val = (typeof columnDefinition.rowText == 'function' ? columnDefinition.rowText(row) : row[columnDefinition.rowText])}}
572 {{if row.password()}}
577 <td>${row.useNtlm()}</td>
579 <a href="#" data-bind="click: function(){ editNetworkProxy(row) }">
580 <span class="btn btn-primary">
581 <i class="icon-pencil icon-white"/>
586 <a href="#" data-bind="click: function(){ removeNetworkProxy(row) }">
587 <span class="btn btn-danger">
588 <i class="icon-trash icon-white"/>
592 {{if row.modified()}}
594 <a href="#" data-bind="click: function(){ updateNetworkProxy(row) }" class="btn btn-warning">${$.i18n.prop('save')}</a>
606 <script id="network-proxy-edit-tmpl" type='text/html'>
607 <form id="network-proxy-edit-form" class="well form-horizontal">
608 <fieldset id="network-proxy-edit-fieldset">
609 <div class="control-group">
610 <label class="control-label" for="id">${$.i18n.prop('id')}</label>
611 <div class="controls">
613 <span class="uneditable-input">${$data.networkProxy.id}</span>
615 <input type="text" class="xlarge" id="id" name="id" size="10"
616 data-bind="value: networkProxy.id,css:{'uneditable-input': update},readonly:update"/>
620 <div class="control-group">
621 <label class="control-label" for="protocol">${$.i18n.prop('protocol')}</label>
622 <div class="controls">
623 <input type="text" class="xlarge required" id="protocol" name="protocol" size="8"
624 data-bind="value: networkProxy.protocol"/>
627 <div class="control-group">
628 <label class="control-label" for="host">${$.i18n.prop('host')}</label>
629 <div class="controls">
630 <input type="text" class="xlarge required" id="host" name="host" size="15"
631 data-bind="value: networkProxy.host"/>
634 <div class="control-group">
635 <label class="control-label" for="port">${$.i18n.prop('port')}</label>
636 <div class="controls">
637 <input type="text" class="xlarge required digits" id="port" name="port" size="6"
638 data-bind="value: networkProxy.port"/>
641 <div class="control-group">
642 <label class="control-label" for="username">${$.i18n.prop('username')}</label>
643 <div class="controls">
644 <input type="text" class="xlarge" id="username" name="username" size="50"
645 data-bind="value: networkProxy.username"/>
648 <div class="control-group">
649 <label class="control-label" for="password">${$.i18n.prop('password')}</label>
650 <div class="controls">
651 <input type="password" class="xlarge" id="password" name="password" size="50"
652 data-bind="value: networkProxy.password"/>
655 <div class="control-group">
656 <label class="control-label" for="useNtlm">${$.i18n.prop('network.proxy.useNtlm')}</label>
657 <div class="controls">
658 <input type="checkbox" id="useNtlm" name="useNtlm" data-bind="checked: networkProxy.useNtlm"/>
663 <button id="network-proxy-btn-save" data-bind="click: save" class="btn">${$.i18n.prop('save')}</button>
664 {{if networkProxy.modified()}}
665 ${("#network-proxy-btn-save").button('reset')}
667 <button data-bind="click: displayGrid" class="btn">${$.i18n.prop('cancel')}</button>
671 <script id="network-proxies-bulk-save-tmpl" type='text/html'>
673 <a data-bind="click: updateModifiedNetworkProxies" class="btn btn-danger" href="#">${$.i18n.prop('save.all')}</a>
676 <script id="network-proxy-delete-warning-tmpl" type='text/html'>
678 <span class="label label-warning">${$.i18n.prop('warning.not.undone.operation')}</span>
682 <script id="proxyConnectorsMain" type="text/html">
683 <div class="page-header">
684 <h2><img src="images/preferences-system-network-proxy-32-32.png"/>${$.i18n.prop('proxy-connectors.list')}</h2>
687 <ul id="proxy-connectors-view-tabs" class="nav nav-tabs">
688 <li id="proxy-connectors-view-tabs-li-grid" class="active">
689 <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>
691 <li id="proxy-connectors-view-tabs-li-edit">
692 <a data-toggle="tab" href="#proxy-connectors-edit" id="proxy-connectors-view-tabs-a-edit">${$.i18n.prop('add')}</a>
694 <li id="proxy-connectors-view-tabs-li-edit-order">
695 <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>
698 <div id="proxy-connectors-view-tabs-content" class="tab-content">
699 <div id="proxy-connectors-view" class="tab-pane active">
700 <div id="proxy-connectors-bulk-save-btn" data-bind='template:{name:"proxy-connectors-bulk-save-tmpl"}'></div>
701 <table class="table table-striped table-bordered" id="proxyConnectorsTable"
702 data-bind="simpleGrid: gridViewModel,simpleGridTemplate:'ko-proxy-connectors-grid',pageLinksId:'proxy-connectorsPagination'">
704 <div id="proxy-connectorsPagination"></div>
706 <div id="proxy-connectors-edit" class="tab-pane"></div>
707 <div id="proxy-connector-edit-order" class="tab-pane span8">
708 <div id="proxy-connector-edit-order-managed-repository-div" data-bind='template:{name:"proxy-connector-edit-order-managed-repository-tmpl"}'></div>
709 <div id="proxy-connector-edit-order-div"
710 data-bind="sortable: { template: 'proxy-connector-edit-order-tmpl', data: proxyConnectors,afterMove: proxyConnectorMoved}">
717 <script id='ko-proxy-connectors-grid' type='text/html'>
720 <th title="${$.i18n.prop('proxy-connectors.grid.managedrepo.title')}">
721 ${$.i18n.prop('proxy-connectors.grid.managedrepo.grid.header')}
723 <th title="${$.i18n.prop('proxy-connectors.grid.remoterepo.title')}">
724 ${$.i18n.prop('proxy-connectors.grid.remoterepo.grid.header')}
726 <th>${$.i18n.prop('proxy-connectors.grid.remoterepo.settings.popover.title')}</th>
727 <th>${$.i18n.prop('edit')}</th>
728 <th>${$.i18n.prop('delete')}</th>
729 <th>${$.i18n.prop('save')}</th>
730 <th>${$.i18n.prop('proxy-connectors.grid.header.order')}</th>
734 {{each(i, row) itemsOnCurrentPage()}}
735 <tr data-bind="css:{ 'modified': row.modified()}">
736 <td>${row.sourceRepoId()}</td>
737 <td>${row.targetRepoId()}</td>
739 <a class="btn btn-info btn-mini" id="proxy-connectors-grid-remoterepo-settings-edit-${row.sourceRepoId()}-${row.targetRepoId()}"
740 data-original-title="${$.i18n.prop('proxy-connectors.grid.remoterepo.settings.popover.title')}"
741 data-content="${buildSettings(row)}" data-bind="click: showSettings">
742 <i class="icon-question-sign icon-white"></i>
747 <a data-bind="click: function(){ editProxyConnector(row)}" href="#">
748 <span class="btn btn-primary">
749 <i class="icon-pencil icon-white"/>
754 <a href="#" data-bind="click: function(){ deleteProxyConnector(row)}">
755 <span class="btn btn-danger">
756 <i class="icon-trash icon-white"/>
761 {{if row.modified()}}
762 <a href="#" class="btn btn-warning" data-bind="click: function(){ updateProxyConnector(row)}">
763 ${$.i18n.prop('save')}
768 {{if orderChangeAware(row)}}
769 <a href="#" data-bind="click: function(){ displayOrderEdit(row)}">
770 <span class="btn btn-info">
771 <i class="icon-resize-vertical icon-white"/>
772 ${$.i18n.prop('proxy-connectors.order.edit')}
776 <span class="badge badge-info">${row.order()}</span>
782 <div id="proxy-connectors-grid-remoterepo-settings-content-${val}-${targetRepoId}" style="display:none"></div>
785 <script id='proxy-connectors-remote-settings-popover-tmpl' type='text/html'>
788 ${$.i18n.prop('proxy-connectors.remoterepo.settings.networkproxy')}: ${proxyConnector.proxyId}
790 ${$.i18n.prop('proxy-connectors.remoterepo.settings.networkproxy')}: ${$.i18n.prop('none')}
792 <table class="table">
794 <th colspan="2">${$.i18n.prop('proxy-connector.policies')}</th>
797 {{each(i, entry) proxyConnector.policiesEntries}}
798 {{var name = proxyConnectorsViewModel.findPolicyInformationName(entry.key)}}
801 <td>${entry.value}</td>
809 <script id="proxy-connector-edit-form-tmpl" type='text/html'>
811 <form id="proxy-connector-edit-form" class="well form-horizontal">
812 <fieldset id="remote-repository-edit-fieldset">
813 <div class="control-group">
814 <label class="control-label" for="proxyId">${$.i18n.prop('proxy-connector.network-proxy.id')}</label>
815 <div class="controls">
817 data-bind="options: proxyConnectorsViewModel.networkProxies, optionsText: 'id',optionsValue:'id',
818 value: proxyConnector.proxyId, optionsCaption: 'direct connection'"></select>
821 <div class="control-group">
822 <label class="control-label" for="proxyId">${$.i18n.prop('proxy-connector.managed.repository.id')}</label>
823 <div class="controls">
824 <select id="sourceRepoId"
825 data-bind="options: proxyConnectorsViewModel.managedRepositories, optionsText: 'id',optionsValue:'id',
826 value: proxyConnector.sourceRepoId,attr: {disabled: isUpdate() }"></select>
829 <div class="control-group">
830 <label class="control-label" for="proxyId">${$.i18n.prop('proxy-connector.remote.repository.id')}</label>
831 <div class="controls">
832 <select id="targetRepoId"
833 data-bind="options: proxyConnectorsViewModel.remoteRepositories, optionsText: 'id',optionsValue:'id',
834 value: proxyConnector.targetRepoId,attr: {disabled: isUpdate() }"></select>
837 <div class="row-fluid">
838 <div class="control-group span6">
839 <table class="table">
841 <th colspan="2">${$.i18n.prop('proxy-connector.policies')}</th>
843 <tbody data-bind="foreach: proxyConnectorsViewModel.policyInformations()">
845 <td data-bind="text: name"></td>
847 <select data-bind="options: getPolicyOptions(id()),value:getSelectedPolicyOption(id()),
848 attr: { id: 'policy-'+id() },event: { change: function(){ changePolicyOption(id())},}">
856 <div class="row-fluid">
857 <div class="control-group span6">
858 <h4>${$.i18n.prop('proxy-connector.properties')}</h4>
859 <table class="table">
861 <th><input type="text" id="property-key"/></th>
862 <th><input type="text" id="property-value"/></th>
863 <th><a href="#" data-bind="click: function(){ addProperty() }">${$.i18n.prop('add')}</a></th>
865 <tbody data-bind="foreach: proxyConnector.propertiesEntries">
867 <td data-bind="text: key"></td>
868 <td data-bind="text: value"></td>
869 <td><a href="#" data-bind="click: function(){ $parent.deleteProperty(key)}">${$.i18n.prop('delete')}</a></td>
875 <div class="row-fluid">
876 <div class="control-group span6">
877 <h4>${$.i18n.prop('proxy-connector.blacklist')}</h4>
878 <table class="table">
880 <th><input type="text" id="blacklist-value"/></th>
881 <th><a href="#" data-bind="click: function(){ addBlacklistPattern() }">${$.i18n.prop('add')}</a></th>
883 <tbody data-bind="foreach: proxyConnector.blackListPatterns">
885 <td data-bind="text: $data"></td>
886 <td><a href="#" data-bind="click: function(){removeBlacklistPattern($data)}">${$.i18n.prop('delete')}</a></td>
892 <div class="row-fluid">
893 <div class="control-group span6">
894 <h4>${$.i18n.prop('proxy-connector.whitelist')}</h4>
895 <table class="table">
897 <th><input type="text" id="whitelist-value"/></th>
898 <th><a href="#" data-bind="click: function(){ addWhitelistPattern() }">${$.i18n.prop('add')}</a></th>
900 <tbody data-bind="foreach: proxyConnector.whiteListPatterns">
902 <td data-bind="text: $data"></td>
903 <td><a href="#" data-bind="click: function(){removeWhitelistPattern($data)}">${$.i18n.prop('delete')}</a></td>
911 <button id="proxy-connector-btn-save" data-bind="click: save" class="btn">${$.i18n.prop('save')}</button>
913 ${("#network-proxy-btn-save").button('reset')}
915 <button data-bind="click: displayGrid" class="btn">${$.i18n.prop('cancel')}</button>
920 <script id="proxy-connectors-bulk-save-tmpl" type='text/html'>
922 <a data-bind="click: updateModifiedProxyConnectors" class="btn btn-danger" href="#">${$.i18n.prop('save.all')}</a>
926 <script id="proxy-connector-edit-order-tmpl" type='text/html'>
927 <div class="well draggable-item network-proxy-remote-item">
928 {{var remoteRepository=$parent.findRemoteRepository(targetRepoId)}}
929 <div class="row-fluid">
931 <img src="images/system-software-update-32-32.png"/>
933 <img src="images/utilities-system-monitor-22-22.png"
934 id="proxy-connectors-order-remoterepo-settings-edit-${sourceRepoId()}-${targetRepoId()}"
935 data-original-title="${$.i18n.prop('proxy-connectors.grid.remoterepo.settings.popover.title')}"
936 data-bind="event: { mouseover: function(){ displaySettings(sourceRepoId(),targetRepoId())},}">
937 <div id="proxy-connectors-order-remoterepo-settings-content-${sourceRepoId()}-${targetRepoId()}"
938 style="display:none"></div>
940 <div class="span6 pull-left">
944 ${remoteRepository.name()} (<a href="${remoteRepository.url()}" target="_blank">${remoteRepository.url()}</a>)
948 <span class="badge badge-info">${order}</span>
954 <script id="proxy-connector-edit-order-managed-repository-tmpl" type="text/html">
955 <div class="well row-fluid">
957 <img src="images/applications-internet-32-32.png"/>
961 ${managedRepository.id}
963 ${managedRepository.name}
967 {{if proxyConnectorsViewModel.bulkSave()}}
969 <a data-bind="click: function(){updateModifiedProxyConnectors()}"
970 href="#" class="btn btn-warning">${$.i18n.prop('save.all')}</a></p>
976 <script id="proxy-connector-delete-warning-tmpl" type='text/html'>
978 <span class="label label-warning">${$.i18n.prop('warning.not.undone.operation')}</span>
982 <script id="repositoryGroupsMain" type="text/html">
983 <div class="page-header">
984 <h2><img src="images/applications-internet-2-32-32.png"/>${$.i18n.prop('repository.groups.list')}</h2>
986 <ul id="repository-groups-view-tabs" class="nav nav-tabs">
987 <li id="repository-groups-view-tabs-li-grid" class="active">
988 <a data-toggle="tab" href="#repository-groups-view" id="repository-groups-view-tabs-a-network-proxies-grid">
989 ${$.i18n.prop('repository-groups.grid.tab.title')}
992 <li id="repository-groups-view-tabs-li-edit">
993 <a data-toggle="tab" href="#repository-groups-edit" id="repository-groups-view-tabs-a-edit">${$.i18n.prop('add')}</a>
997 <div id="repository-groups-view-tabs-content" class="tab-content">
998 <div id="repository-groups-view" class="tab-pane active">
999 <div id="repository-groups-table" data-bind='template:{name:"repository-groups-table-tmpl"}'>
1002 <div id="repository-groups-edit" class="tab-pane">
1003 <div class="row-fluid">
1004 <div class="span5 dotted">
1005 <div id="repository-groups-edit-div" data-bind='template:{name:"repository-group-edit-tmpl"}'></div>
1006 <div id="repository-groups-edit-order-div" style="min-height: 80px"
1007 data-bind="sortable: { template: 'repository-group-edit-order-tmpl',data:repositoryGroup.managedRepositories,afterMove:repositoryMoved}">
1011 <div class="span5 dotted">
1012 <h5>${$.i18n.prop('repository.groups.available.repositories')}</h5>
1014 <div id="repository-groups-edit-available-repositories" style="min-height: 80px"
1015 data-bind="sortable: { template: 'repository-group-edit-order-tmpl',data:availableRepositories,afterMove:repositoryMoved}">
1027 <script id="repository-groups-table-tmpl" type="text/html">
1028 <table class="table table-striped table-bordered">
1030 <th>${$.i18n.prop('repository.groups.groups.grid.header')}</th>
1031 <th>${$.i18n.prop('repository.groups.repositories.grid.header')}</th>
1032 <th>${$.i18n.prop('edit')}</th>
1033 <th>${$.i18n.prop('delete')}</th>
1034 <th>${$.i18n.prop('save')}</th>
1037 {{each(i, repositoryGroup) repositoryGroups}}
1038 <tr data-bind="css:{ 'modified': repositoryGroup.modified()}">
1039 <td>${repositoryGroup.id}</td>
1042 {{each(j,id) repositoryGroup.repositories()}}
1048 <a href="#" data-bind="click: function(){editRepositoryGroup(repositoryGroup)}">
1049 <span class="btn btn-primary">
1050 <i class="icon-pencil icon-white"/>
1055 <a href="#" data-bind="click: function(){deleteRepositoryGroup(repositoryGroup)}">
1056 <span class="btn btn-danger">
1057 <i class="icon-trash icon-white"/>
1062 {{if repositoryGroup.modified()}}
1063 <a href="#" class="btn btn-warning" data-bind="click: function(){saveRepositoryGroup(repositoryGroup)}">
1064 ${$.i18n.prop('save')}
1074 <script id="repository-group-edit-tmpl" type="text/html">
1075 <div class="row-fluid">
1077 <div class="dotted span8">
1079 ${repositoryGroup.id}
1081 <a href="${window.archivaRuntimeInfo.baseUrl}/repository/${repositoryGroup.id()}" target="_blank">
1082 ${window.archivaRuntimeInfo.baseUrl}/repository/${repositoryGroup.id()}
1087 <div class="dotted span8">
1088 <form id="repository-group-edit-form" class="well">
1089 <fieldset id="repository-group-edit-fieldset">
1090 <div class="control-group">
1091 <label class="control-label" for="id">${$.i18n.prop('id')}</label>
1092 <div class="controls">
1093 <input type="text" class="xlarge required" id="id" name="id" size="15"
1094 data-bind="value: repositoryGroup.id,css:{'uneditable-input': update},readonly:update"/>
1101 {{if repositoryGroup.modified()}}
1103 <a href="#" class="btn btn-warning" data-bind="click: function(){saveRepositoryGroup(repositoryGroup)}">${$.i18n.prop('save')}</a>
1110 <script id="repository-group-edit-order-tmpl" type="text/html">
1111 <div class="well draggable-item">
1117 <a href="${window.archivaRuntimeInfo.baseUrl}/repository/${$data.id()}" target="_blank">
1118 ${window.archivaRuntimeInfo.baseUrl}/repository/${$data.id()}
1126 <script id="repository-group-delete-warning-tmpl" type='text/html'>
1128 <span class="label label-warning">${$.i18n.prop('warning.not.undone.operation')}</span>