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('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>
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>
105 {{if row.releases() == true}}
106 <img src="images/weather-clear-22-22.png" title="${$.i18n.prop('release.included')}"/>
108 <img src="images/dialog-error-22-22.png" title="${$.i18n.prop('release.notincluded')}"/>
113 {{if row.snapshots() == true}}
114 <img src="images/weather-clear-22-22.png" title="${$.i18n.prop('snapshots.included')}"/>
116 <img src="images/dialog-error-22-22.png" title="${$.i18n.prop('snapshots.notincluded')}"/>
120 <a href="#" data-bind="click: function(){ scanNow(row) }">
121 <span class="btn btn-success">
122 <i class="icon-refresh icon-white"/>
127 <a href="#" data-bind="click: function(){ editManagedRepository(row) }">
128 <span class="btn btn-primary">
129 <i class="icon-pencil icon-white"/>
134 <a href="#" data-bind="click: function(){ removeManagedRepository(row) }">
135 <span class="btn btn-danger">
136 <i class="icon-trash icon-white"/>
140 {{if row.modified()}}
142 <a href="#" class="btn btn-warning" data-bind="click: function(){ updateManagedRepository(row) }">${$.i18n.prop('save')}</a>
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()}"/>
154 <a href="#" data-bind="click: function(){directoriesScan(row)}">
155 <span class="btn btn-warning">
156 <i class="icon-repeat icon-white"/>
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">
174 <span class="uneditable-input">${$data.managedRepository.id}</span>
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"/>
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"/>
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"/>
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"/>
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"/>
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"/>
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"/>
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"/>
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"/>
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"/>
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"/>
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"/>
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"/>
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"/>
263 <button data-bind="click: save" class="btn">${$.i18n.prop('save')}</button>
264 <button data-bind="click: displayGrid" class="btn">${$.i18n.prop('cancel')}</button>
268 <script id="managed-repository-delete-warning-tmpl" type='text/html'>
270 <span class="label label-warning">${$.i18n.prop('warning.not.undone.operation')}</span>
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>
277 ${$.i18n.prop('managedrepository.delete.content')}: <input type="checkbox" id="managedrepository-deletecontent">
282 <script type="text/html" id="remote-repository-delete-modal-tmpl">
284 <span class="label label-warning">${$.i18n.prop('warning.not.undone.operation')}</span>
288 <script id="managed-repository-location-warning-tmpl" type='text/html'>
290 <span class="label label-warning">${$.i18n.prop('managedrepository.location.already.exists')}</span>
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>
298 <script id="managed-repository-scan-now-modal-tmpl" type='text/html'>
300 ${$.i18n.prop('managedrepository.scan.all')}: <input type="checkbox" id="managed-repository-scan-now-all">
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>
311 <script id="pom-snippet-tmpl" type='text/html'>
312 <div class="page-header">
313 <h2>POM Snippet</h2></div>
315 <div><a href="#" onclick="$('#managed-repositories-pom-snippet').effect('blind')">${$.i18n.prop('hide')}</a></div>
321 <script id='ko_remote-repositoriesGrid' type='text/html'>
324 {{each(i, columnDefinition) columns}}
325 <th title="${ columnDefinition.title }">${ columnDefinition.headerText }</th>
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>
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>
340 <a href="#" data-bind="click: function(){ editRemoteRepository(row) }">
341 <span class="btn btn-primary">
342 <i class="icon-pencil icon-white"/>
347 <a href="#" data-bind="click: function(){ removeRemoteRepository(row) }">
348 <span class="btn btn-danger">
349 <i class="icon-trash icon-white"/>
353 {{if row.modified()}}
355 <a href="#" class="btn btn-warning" data-bind="click: function(){ updateRemoteRepository(row) }">${$.i18n.prop('save')}</a>
361 <a href="#" data-bind="click: function(){ scheduleDownloadRemoteIndex(row) }">
362 <span class="btn btn-success">
363 <i class="icon-refresh icon-white"/>
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">
381 <span class="uneditable-input">${$data.remoteRepository.id}</span>
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"/>
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"/>
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"/>
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"/>
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"/>
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"/>
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"/>
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"/>
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"/>
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"/>
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"/>
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"/>
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>
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"/>
476 <button data-bind="click: save" class="btn">${$.i18n.prop('save')}</button>
477 <button data-bind="click: displayGrid" class="btn">${$.i18n.prop('cancel')}</button>
481 <script id="remote-repository-scan-modal-tmpl" type='text/html'>
483 ${$.i18n.prop('remoterepository.download.remote.now')}: <input type="checkbox" id="remoterepository-scan-now">
486 ${$.i18n.prop('remoterepository.download.remote.full')}: <input type="checkbox" id="remoterepository-scan-full">
490 <script id="managed-repositories-bulk-save-tmpl" type='text/html'>
492 <a data-bind="click: updateModifiedManagedRepositories" class="btn btn-danger" href="#">${$.i18n.prop('save.all')}</a>
496 <script id="remote-repositories-bulk-save-tmpl" type='text/html'>
498 <a data-bind="click: updateModifiedRemoteRepositories" class="btn btn-danger" href="#">${$.i18n.prop('save.all')}</a>
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>
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>
511 <li id="network-proxies-view-tabs-li-edit">
512 <a data-toggle="tab" href="#network-proxies-edit">${$.i18n.prop('add')}</a>
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'">
521 <div id="network-proxiesPagination"></div>
523 <div id="network-proxies-edit" class="tab-pane" data-bind='template: {name:"network-proxy-edit-tmpl"}'></div>
528 <script id='ko-network-proxies-grid' type='text/html'>
531 {{each(i, columnDefinition) columns}}
532 <th>${ columnDefinition.headerText }</th>
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>
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])}}
550 {{if row.password()}}
555 <td>${row.useNtlm()}</td>
557 <a href="#" data-bind="click: function(){ editNetworkProxy(row) }">
558 <span class="btn btn-primary">
559 <i class="icon-pencil icon-white"/>
564 <a href="#" data-bind="click: function(){ removeNetworkProxy(row) }">
565 <span class="btn btn-danger">
566 <i class="icon-trash icon-white"/>
570 {{if row.modified()}}
572 <a href="#" data-bind="click: function(){ updateNetworkProxy(row) }" class="btn btn-warning">${$.i18n.prop('save')}</a>
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">
591 <span class="uneditable-input">${$data.networkProxy.id}</span>
593 <input type="text" class="xlarge" id="id" name="id" size="10"
594 data-bind="value: networkProxy.id,css:{'uneditable-input': update},readonly:update"/>
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"/>
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"/>
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"/>
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"/>
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"/>
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"/>
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')}
645 <button data-bind="click: displayGrid" class="btn">${$.i18n.prop('cancel')}</button>
649 <script id="network-proxies-bulk-save-tmpl" type='text/html'>
651 <a data-bind="click: updateModifiedNetworkProxies" class="btn btn-danger" href="#">${$.i18n.prop('save.all')}</a>
654 <script id="network-proxy-delete-warning-tmpl" type='text/html'>
656 <span class="label label-warning">${$.i18n.prop('warning.not.undone.operation')}</span>
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>
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>
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>
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>
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'">
682 <div id="proxy-connectorsPagination"></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}">
695 <script id='ko-proxy-connectors-grid' type='text/html'>
698 <th title="${$.i18n.prop('proxy-connectors.grid.managedrepo.title')}">
699 ${$.i18n.prop('proxy-connectors.grid.managedrepo.grid.header')}
701 <th title="${$.i18n.prop('proxy-connectors.grid.remoterepo.title')}">
702 ${$.i18n.prop('proxy-connectors.grid.remoterepo.grid.header')}
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>
712 {{each(i, row) itemsOnCurrentPage()}}
713 <tr data-bind="css:{ 'modified': row.modified()}">
714 <td>${row.sourceRepoId()}</td>
715 <td>${row.targetRepoId()}</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>
724 <a data-bind="click: function(){ editProxyConnector(row)}" href="#">
725 <span class="btn btn-primary">
726 <i class="icon-pencil icon-white"/>
731 <a href="#" data-bind="click: function(){ deleteProxyConnector(row)}">
732 <span class="btn btn-danger">
733 <i class="icon-trash icon-white"/>
738 {{if row.modified()}}
739 <a href="#" class="btn btn-warning" data-bind="click: function(){ updateProxyConnector(row)}">
740 ${$.i18n.prop('save')}
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')}
753 <span class="badge badge-info">${row.order()}</span>
759 <div id="proxy-connectors-grid-remoterepo-settings-content-${val}-${targetRepoId}" style="display:none"></div>
762 <script id='proxy-connectors-remote-settings-popover-tmpl' type='text/html'>
765 ${$.i18n.prop('proxy-connectors.remoterepo.settings.networkproxy')}: ${proxyConnector.proxyId}
767 ${$.i18n.prop('proxy-connectors.remoterepo.settings.networkproxy')}: ${$.i18n.prop('none')}
769 <table class="table">
771 <th colspan="2">${$.i18n.prop('proxy-connector.policies')}</th>
774 {{each(i, entry) proxyConnector.policiesEntries}}
775 {{var name = proxyConnectorsViewModel.findPolicyInformationName(entry.key)}}
778 <td>${entry.value}</td>
786 <script id="proxy-connector-edit-form-tmpl" type='text/html'>
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">
794 data-bind="options: proxyConnectorsViewModel.networkProxies, optionsText: 'id',optionsValue:'id',
795 value: proxyConnector.proxyId, optionsCaption: 'direct connection'"></select>
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>
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>
815 <div class="control-group span6">
816 <table class="table">
818 <th colspan="2">${$.i18n.prop('proxy-connector.policies')}</th>
820 <tbody data-bind="foreach: proxyConnectorsViewModel.policyInformations()">
822 <td data-bind="text: name"></td>
824 <select data-bind="options: getPolicyOptions(id()),value:getSelectedPolicyOption(id()),
825 attr: { id: 'policy-'+id() },event: { change: function(){ changePolicyOption(id())},}">
834 <div class="control-group span6">
835 <h4>${$.i18n.prop('proxy-connector.properties')}</h4>
836 <table class="table">
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>
842 <tbody data-bind="foreach: proxyConnector.propertiesEntries">
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>
853 <div class="control-group span6">
854 <h4>${$.i18n.prop('proxy-connector.blacklist')}</h4>
855 <table class="table">
857 <th><input type="text" id="blacklist-value"/></th>
858 <th><a href="#" data-bind="click: function(){ addBlacklistPattern() }">${$.i18n.prop('add')}</a></th>
860 <tbody data-bind="foreach: proxyConnector.blackListPatterns">
862 <td data-bind="text: $data"></td>
863 <td><a href="#" data-bind="click: function(){removeBlacklistPattern($data)}">${$.i18n.prop('delete')}</a></td>
870 <div class="control-group span6">
871 <h4>${$.i18n.prop('proxy-connector.whitelist')}</h4>
872 <table class="table">
874 <th><input type="text" id="whitelist-value"/></th>
875 <th><a href="#" data-bind="click: function(){ addWhitelistPattern() }">${$.i18n.prop('add')}</a></th>
877 <tbody data-bind="foreach: proxyConnector.whiteListPatterns">
879 <td data-bind="text: $data"></td>
880 <td><a href="#" data-bind="click: function(){removeWhitelistPattern($data)}">${$.i18n.prop('delete')}</a></td>
888 <button id="proxy-connector-btn-save" data-bind="click: save" class="btn">${$.i18n.prop('save')}</button>
890 ${("#network-proxy-btn-save").button('reset')}
892 <button data-bind="click: displayGrid" class="btn">${$.i18n.prop('cancel')}</button>
897 <script id="proxy-connectors-bulk-save-tmpl" type='text/html'>
899 <a data-bind="click: updateModifiedProxyConnectors" class="btn btn-danger" href="#">${$.i18n.prop('save.all')}</a>
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">
908 <img src="images/system-software-update-32-32.png"/>
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>
917 <div class="span6 pull-left">
921 ${remoteRepository.name()} (<a href="${remoteRepository.url()}" target="_blank">${remoteRepository.url()}</a>)
925 <span class="badge badge-info">${order}</span>
931 <script id="proxy-connector-edit-order-managed-repository-tmpl" type="text/html">
932 <div class="well row-fluid">
934 <img src="images/applications-internet-32-32.png"/>
938 ${managedRepository.id}
940 ${managedRepository.name}
944 {{if proxyConnectorsViewModel.bulkSave()}}
946 <a data-bind="click: function(){updateModifiedProxyConnectors()}"
947 href="#" class="btn btn-warning">${$.i18n.prop('save.all')}</a></p>
953 <script id="proxy-connector-delete-warning-tmpl" type='text/html'>
955 <span class="label label-warning">${$.i18n.prop('warning.not.undone.operation')}</span>