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"
45 data-bind='template:{name:"managed-repositories-bulk-save-tmpl"}'></div>
46 <table class="table table-striped table-bordered" id="managed-repositories-table"
47 data-bind="simpleGrid: gridViewModel,simpleGridTemplate:'ko_managed-repositoriesGrid',pageLinksId:'managed-repositoriesPagination',data:'managedRepositories'">
49 <div id="managed-repositoriesPagination"></div>
50 <div id="managed-repositories-pom-snippet"></div>
52 <div id="managed-repository-edit" class="pill-pane" data-bind='template: {name:"managed-repository-edit-tmpl"}'>
58 <div id="remote-repositories-content" class="tab-pane">
59 <ul id="remote-repositories-pills" class="nav nav-pills">
60 <li class="active" id="remote-repositories-view-li">
61 <a data-toggle="tab" href="#remote-repositories-view" id="remote-repositories-view-a">${$.i18n.prop('remoterepositories.grid.tab.title')}</a>
63 <li id="remote-repository-edit-li">
64 <a data-toggle="tab" href="#remote-repository-edit">${$.i18n.prop('add')}</a>
67 <div id="remote-repositories-tabs-content" class="pill-content">
68 <div id="remote-repositories-view" class="pill-pane active">
69 <div id="remote-repositories-bulk-save-btn"
70 data-bind='template:{name:"remote-repositories-bulk-save-tmpl"}'></div>
71 <table class="table table-striped table-bordered" id="remote-repositories-table"
72 data-bind="simpleGrid: gridViewModel,simpleGridTemplate:'ko_remote-repositoriesGrid',pageLinksId:'remote-repositoriesPagination',data:'remoteRepositories'">
74 <div id="remote-repositoriesPagination"></div>
76 <div id="remote-repository-edit" class="pill-pane" data-bind='template:{name:"remote-repository-edit-tmpl"}'>
83 <script id='ko_managed-repositoriesGrid' type='text/html'>
86 {{each(i, columnDefinition) columns}}
87 <th title="${ columnDefinition.title }">${ columnDefinition.headerText }</th>
91 <th>${$.i18n.prop('managedrepository.actions')}</th>
92 <th>${$.i18n.prop('edit')}</th>
93 <th>${$.i18n.prop('delete')}</th>
94 <th>${$.i18n.prop('modified')}</th>
95 <th>${$.i18n.prop('managed.repository.rss.header')}</th>
96 <th title="${$.i18n.prop('managedrepository.stats')}">${$.i18n.prop('managedrepository.stats.grid.header')}</th>
100 {{each(i, row) itemsOnCurrentPage()}}
101 <tr data-bind="css:{ 'modified': row.modified()}">
102 {{each(j, columnDefinition) columns}}
104 ${ typeof columnDefinition.rowText == 'function' ? columnDefinition.rowText(row) : row[columnDefinition.rowText] }
108 {{if row.releases() == true}}
109 <img src="images/weather-clear-22-22.png" title="${$.i18n.prop('release.included')}"/>
111 <img src="images/dialog-error-22-22.png" title="${$.i18n.prop('release.notincluded')}"/>
116 {{if row.snapshots() == true}}
117 <img src="images/weather-clear-22-22.png" title="${$.i18n.prop('snapshots.included')}"/>
119 <img src="images/dialog-error-22-22.png" title="${$.i18n.prop('snapshots.notincluded')}"/>
123 <div class="btn-group">
124 <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">Actions<span class="caret"></span> </a>
125 <ul class="dropdown-menu">
127 <a href="#" data-bind="click: function(){ scanNow(row) }">
128 <span class="btn btn-success">
129 <i class="icon-refresh icon-white"></i>
131 ${$.i18n.prop('managedrepository.scan.grid.header')}
135 <a href="#" data-bind="click: function(){directoriesScan(row)}">
136 <span class="btn btn-warning">
137 <i class="icon-wrench icon-white"></i>
139 ${$.i18n.prop('managedrepository.scan.directories.grid.header')}
143 <a href="#" data-bind="click: function(){ showPomSnippet(row) }">
144 <span class="btn btn-info">
145 <i class="icon-user icon-white"></i>
147 ${$.i18n.prop('managedrepository.pomsnippet')}
151 {{if row.stageRepoNeeded()}}
156 <!-- todo check archiva-merge-repository operation -->
157 <a href="#" data-bind="click: function(){ mergeRepo(row) }">
158 <span class="btn btn-info">
159 <i class="icon-share icon-white"></i>
161 ${$.i18n.prop('managedrepository.mergerepo')}
168 <a href="#" data-bind="click: function(){ editManagedRepository(row) }">
169 <span class="btn btn-primary">
170 <i class="icon-pencil icon-white"/>
175 <a href="#" data-bind="click: function(){ removeManagedRepository(row) }">
176 <span class="btn btn-danger">
177 <i class="icon-trash icon-white"/>
181 {{if row.modified()}}
183 <a href="#" class="btn btn-warning" data-bind="click: function(){ updateManagedRepository(row) }">${$.i18n.prop('save')}</a>
189 <a href="${row.feedsUrl}"><img src="images/atom.gif" alt=""
190 title="${$.i18n.prop('managedrepository.feeds')} ${row.name()}"/></a>
192 <td id="managedrepository-stats-${row.id()}">
193 <img src="images/utilities-system-monitor-22-22.png"
194 data-original-title="${$.i18n.prop('managedrepository.stats')}"
195 data-bind="event: { mouseover: function(){ showStats(row) }, mouseout: function(){ hideStats(row) },}"
196 id="managedrepository-stats-img-${row.id()}"/>
204 <script id="managed-repository-edit-tmpl" type='text/html'>
205 <form id="managed-repository-edit-form" class="well form-horizontal">
206 <fieldset id="managed-repository-edit-fieldset">
207 <div class="control-group">
208 <label class="control-label" for="id">${$.i18n.prop('id')}</label>
210 <div class="controls">
212 <span class="uneditable-input">${$data.managedRepository.id}</span>
214 <input type="text" class="input-xlarge required" id="id" name="id" size="50"
215 data-bind="value: managedRepository.id,css:{'uneditable-input': update},readonly:update"/>
217 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-id-info-button"
218 data-original-title="${$.i18n.prop('managedRepository.id.help.title')}"
219 data-content="${$.i18n.prop('managedRepository.id.help.content')}">
220 <i class="icon-question-sign icon-white"></i>
224 <div class="control-group">
225 <label class="control-label" for="name">${$.i18n.prop('name')}</label>
227 <div class="controls">
228 <input type="text" class="input-xlarge required" id="name" name="name" size="50"
229 data-bind="value: managedRepository.name"/>
230 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-name-info-button"
231 data-original-title="${$.i18n.prop('managedRepository.name.help.title')}"
232 data-content="${$.i18n.prop('managedRepository.name.help.content')}">
233 <i class="icon-question-sign icon-white"></i>
237 <div class="control-group">
238 <label class="control-label" for="location">${$.i18n.prop('directory')}</label>
240 <div class="controls">
241 <input type="text" class="input-xxlarge required" id="location" name="location" size="50"
242 data-bind="value: managedRepository.location"/>
243 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-location-info-button"
244 data-original-title="${$.i18n.prop('managedRepository.location.help.title')}"
245 data-content="${$.i18n.prop('managedRepository.location.help.content')}">
246 <i class="icon-question-sign icon-white"></i>
250 <div class="control-group">
251 <label class="control-label" for="indexDirectory">${$.i18n.prop('index.directory')}</label>
253 <div class="controls">
254 <input type="text" class="input-xxlarge" id="indexDirectory" name="indexDirectory" size="50"
255 data-bind="value: managedRepository.indexDirectory"/>
256 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-indexDirectory-info-button"
257 data-original-title="${$.i18n.prop('managedRepository.indexDirectory.help.title')}"
258 data-content="${$.i18n.prop('managedRepository.indexDirectory.help.content')}">
259 <i class="icon-question-sign icon-white"></i>
263 <div class="control-group">
264 <label class="control-label" for="layout">${$.i18n.prop('type')}</label>
266 <div class="controls">
268 data-bind="options: availableLayouts,optionsText: 'label',optionsValue:'type',value: managedRepository.layout"/>
271 <div class="control-group">
272 <label class="control-label" for="cronExpression">${$.i18n.prop('cronExpression')}</label>
274 <div class="controls">
275 <input type="text" id="cronExpression" class="required" name="cronExpression" size="40"
276 data-bind="value: managedRepository.cronExpression"/>
277 <a class="btn btn-warning btn-mini popover-doc" id="cronExpression-info-button"
278 data-original-title="${$.i18n.prop('cronExpression.help.title')}"
279 data-content="${$.i18n.prop('cronExpression.help.content')}">
280 <i class="icon-question-sign icon-white"></i>
284 <div class="control-group">
285 <label class="control-label" for="daysOlder">${$.i18n.prop('daysOlder')}</label>
287 <div class="controls">
288 <input type="text" id="daysOlder" class="digits" name="daysOlder" size="5"
289 data-bind="value: managedRepository.daysOlder"/>
290 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-daysOlder-info-button"
291 data-original-title="${$.i18n.prop('managedRepository.daysOlder.help.title')}"
292 data-content="${$.i18n.prop('managedRepository.daysOlder.help.content')}">
293 <i class="icon-question-sign icon-white"></i>
297 <div class="control-group">
298 <label class="control-label" for="retentionCount">${$.i18n.prop('retentionCount')}</label>
300 <div class="controls">
301 <input type="text" id="retentionCount" name="retentionCount" size="5"
302 data-bind="value: managedRepository.retentionCount"/>
303 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-retentionCount-info-button"
304 data-original-title="${$.i18n.prop('managedRepository.retentionCount.help.title')}"
305 data-content="${$.i18n.prop('managedRepository.retentionCount.help.content')}">
306 <i class="icon-question-sign icon-white"></i>
310 <div class="control-group">
311 <label class="control-label" for="description">${$.i18n.prop('description')}</label>
313 <div class="controls">
314 <textarea rows="3" id="description" name="description"
315 data-bind="value: managedRepository.description"></textarea>
316 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-description-info-button"
317 data-original-title="${$.i18n.prop('managedRepository.description.help.title')}"
318 data-content="${$.i18n.prop('managedRepository.description.help.content')}">
319 <i class="icon-question-sign icon-white"></i>
323 <div class="control-group">
324 <label class="control-label" for="releases">${$.i18n.prop('releases')}</label>
326 <div class="controls">
327 <input type="checkbox" id="releases" name="releases" size="5"
328 data-bind="checked: managedRepository.releases"/>
329 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-release-info-button"
330 data-original-title="${$.i18n.prop('managedRepository.release.help.title')}"
331 data-content="${$.i18n.prop('managedRepository.release.help.content')}">
332 <i class="icon-question-sign icon-white"></i>
336 <div class="control-group">
337 <label class="control-label" for="snapshots">${$.i18n.prop('snapshots')}</label>
339 <div class="controls">
340 <input type="checkbox" id="snapshots" name="snapshots" size="5"
341 data-bind="checked: managedRepository.snapshots"/>
342 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-snapshots-info-button"
343 data-original-title="${$.i18n.prop('managedRepository.snapshots.help.title')}"
344 data-content="${$.i18n.prop('managedRepository.snapshots.help.content')}">
345 <i class="icon-question-sign icon-white"></i>
349 <div class="control-group">
350 <label class="control-label" for="blockRedeployments">${$.i18n.prop('blockRedeployments')}</label>
352 <div class="controls">
353 <input type="checkbox" id="blockRedeployments" name="blockRedeployments" size="5"
354 data-bind="checked: managedRepository.blockRedeployments"/>
355 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-blockRedeployments-info-button"
356 data-original-title="${$.i18n.prop('managedRepository.blockRedeployments.help.title')}"
357 data-content="${$.i18n.prop('managedRepository.blockRedeployments.help.content')}">
358 <i class="icon-question-sign icon-white"></i>
362 <div class="control-group">
363 <label class="control-label" for="scanned">${$.i18n.prop('scanned')}</label>
365 <div class="controls">
366 <input type="checkbox" id="scanned" name="scanned" size="5" data-bind="checked: managedRepository.scanned"/>
367 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-scanned-info-button"
368 data-original-title="${$.i18n.prop('managedRepository.scanned.help.title')}"
369 data-content="${$.i18n.prop('managedRepository.scanned.help.content')}">
370 <i class="icon-question-sign icon-white"></i>
374 <div class="control-group">
375 <label class="control-label" for="deleteReleasedSnapshots">${$.i18n.prop('deleteReleasedSnapshots')}</label>
377 <div class="controls">
378 <input type="checkbox" id="deleteReleasedSnapshots" name="deleteReleasedSnapshots" size="5"
379 data-bind="checked: managedRepository.deleteReleasedSnapshots"/>
380 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-deleteReleasedSnapshots-info-button"
381 data-original-title="${$.i18n.prop('managedRepository.deleteReleasedSnapshots.help.title')}"
382 data-content="${$.i18n.prop('managedRepository.deleteReleasedSnapshots.help.content')}">
383 <i class="icon-question-sign icon-white"></i>
387 <div class="control-group">
388 <label class="control-label" for="stageRepoNeeded">${$.i18n.prop('stageRepoNeeded')}</label>
390 <div class="controls">
391 <input type="checkbox" id="stageRepoNeeded" name="stageRepoNeeded" size="5"
392 data-bind="checked: managedRepository.stageRepoNeeded"/>
393 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-stageRepoNeeded-info-button"
394 data-original-title="${$.i18n.prop('managedRepository.stageRepoNeeded.help.title')}"
395 data-content="${$.i18n.prop('managedRepository.stageRepoNeeded.help.content')}">
396 <i class="icon-question-sign icon-white"></i>
400 <div class="control-group">
401 <label class="control-label" for="skipPackedIndexCreation">${$.i18n.prop('skipPackedIndexCreation')}</label>
403 <div class="controls">
404 <input type="checkbox" id="skipPackedIndexCreation" name="skipPackedIndexCreation" size="5"
405 data-bind="checked: managedRepository.skipPackedIndexCreation"/>
406 <a class="btn btn-warning btn-mini popover-doc" id="skipPackedIndexCreation-info-button"
407 data-original-title="${$.i18n.prop('skipPackedIndexCreation.help.title')}"
408 data-content="${$.i18n.prop('skipPackedIndexCreation.help.content')}">
409 <i class="icon-question-sign icon-white"></i>
415 <button data-bind="click: save" class="btn" id="managed-repository-save-button">${$.i18n.prop('save')}</button>
416 <button data-bind="click: displayGrid" class="btn">${$.i18n.prop('cancel')}</button>
420 <script id="managed-repository-delete-warning-tmpl" type='text/html'>
422 <span class="label label-warning">${$.i18n.prop('warning.not.undone.operation')}</span>
425 <span><strong>${$.i18n.prop('managedrepository.delete.warning.message')}</strong>.</span>
427 <div>${$.i18n.prop('id')}: ${id()}</div>
428 <div>${$.i18n.prop('name')}: ${name()}</div>
431 ${$.i18n.prop('managedrepository.delete.content')}: <input type="checkbox" id="managedrepository-deletecontent">
436 <script type="text/html" id="remote-repository-delete-modal-tmpl">
438 <span class="label label-warning">${$.i18n.prop('warning.not.undone.operation')}</span>
442 <script id="managed-repository-location-warning-tmpl" type='text/html'>
444 <span class="label label-warning">${$.i18n.prop('managedrepository.location.already.exists')}</span>
447 <span><strong>${$.i18n.prop('managedrepository.location.already.exists.warning.message')}</strong>.</span>
449 <div>${$.i18n.prop('id')}: ${id()}</div>
450 <div>${$.i18n.prop('name')}: ${name()}</div>
454 <script id="managed-repository-scan-now-modal-tmpl" type='text/html'>
456 ${$.i18n.prop('managedrepository.scan.all')}: <input type="checkbox" id="managed-repository-scan-now-all">
459 <script id="managed-repository-stats-tmpl" type='text/html'>
460 <div id="managedrepository-stats-${managedRepository.id()}-popover" style="display:none">
461 <div>${$.i18n.prop('managedrepository.stats.endTime')}: ${lastScanDate()}</div>
462 <div>${$.i18n.prop('managedrepository.stats.duration')}: ${duration()}ms</div>
463 <div>${$.i18n.prop('managedrepository.stats.totalFileCount')}: ${totalFileCount()}</div>
464 <div>${$.i18n.prop('managedrepository.stats.newFileCount')}: ${newFileCount()}</div>
467 <script id="pom-snippet-tmpl" type='text/html'>
468 <div class="page-header">
469 <h2>POM Snippet</h2></div>
471 <div><a onclick="$('#managed-repositories-pom-snippet').effect('blind')">${$.i18n.prop('hide')}</a></div>
477 <script id='ko_remote-repositoriesGrid' type='text/html'>
480 {{each(i, columnDefinition) columns}}
481 <th title="${ columnDefinition.title }">${ columnDefinition.headerText }</th>
483 <th>${$.i18n.prop('edit')}</th>
484 <th>${$.i18n.prop('delete')}</th>
485 <th>${$.i18n.prop('modified')}</th>
486 <th>${$.i18n.prop('description')}</th>
487 <th>${$.i18n.prop('remoterepository.downloadremoteindex')}</th>
491 {{each(i, row) itemsOnCurrentPage()}}
492 <tr data-bind="css:{ 'modified': row.modified()}">
493 {{each(j, columnDefinition) columns}}
495 ${ typeof columnDefinition.rowText == 'function' ? columnDefinition.rowText(row) : row[columnDefinition.rowText] }
499 <a href="#" data-bind="click: function(){ editRemoteRepository(row) }">
500 <span class="btn btn-primary">
501 <i class="icon-pencil icon-white"/>
506 <a href="#" data-bind="click: function(){ removeRemoteRepository(row) }">
507 <span class="btn btn-danger">
508 <i class="icon-trash icon-white"/>
512 {{if row.modified()}}
514 <a href="#" class="btn btn-warning" data-bind="click: function(){ updateRemoteRepository(row) }">${$.i18n.prop('save')}</a>
520 {{if row.description()}}
521 <a class="btn btn-warning btn-mini popover-doc" id="remoterepo-description-help"
522 data-content="${row.description()}" data-title="${$.i18n.prop('description')}">
523 <i class="icon-question-sign icon-white"></i>
528 <a href="#" data-bind="click: function(){ scheduleDownloadRemoteIndex(row) }">
529 <span class="btn btn-success">
530 <i class="icon-refresh icon-white"/>
541 <script id="remote-repository-edit-tmpl" type='text/html'>
544 <form id="remote-repository-edit-form" class="well form-horizontal">
545 <fieldset id="remote-repository-edit-fieldset">
546 <div class="control-group">
547 <label class="control-label" for="id">${$.i18n.prop('id')}</label>
549 <div class="controls">
551 <span class="uneditable-input">${$data.remoteRepository.id}</span>
553 <input type="text" class="input-xlarge required" id="id" name="id" size="50"
554 data-bind="value: remoteRepository.id,css:{'uneditable-input': update},readonly:update"/>
558 <div class="control-group">
559 <label class="control-label" for="name">${$.i18n.prop('name')}</label>
561 <div class="controls">
562 <input type="text" class="input-xlarge required" id="name" name="name" size="50"
563 data-bind="value: remoteRepository.name"/>
566 <div class="control-group">
567 <label class="control-label" for="url">${$.i18n.prop('url')}</label>
569 <div class="controls">
570 <input type="text" class="input-xxlarge required" id="url" name="location" size="50"
571 data-bind="value: remoteRepository.url"/>
574 <div class="control-group">
575 <label class="control-label" for="userName">${$.i18n.prop('username')}</label>
577 <div class="controls">
578 <input type="text" class="input-xlarge" id="userName" name="userName" size="50"
579 data-bind="value: remoteRepository.userName"/>
582 <div class="control-group">
583 <label class="control-label" for="password">${$.i18n.prop('password')}</label>
585 <div class="controls">
586 <input type="password" class="input-xlarge" id="password" name="password" size="50"
587 data-bind="value: remoteRepository.password"/>
590 <div class="control-group">
591 <label class="control-label" for="timeout">${$.i18n.prop('timeout')}</label>
593 <div class="controls">
594 <input type="text" id="timeout" class="digits" name="daysOlder" size="5"
595 data-bind="value: remoteRepository.timeout"/>
599 <div class="control-group">
600 <label class="control-label" for="layout">${$.i18n.prop('type')}</label>
602 <div class="controls">
604 data-bind="options: availableLayouts,optionsText: 'label',optionsValue:'type',value: remoteRepository.layout"/>
607 <div class="control-group">
608 <label class="control-label" for="downloadRemoteIndex">${$.i18n.prop('downloadRemoteIndex')}</label>
610 <div class="controls">
611 <input type="checkbox" id="downloadRemoteIndex" name="downloadRemoteIndex" size="5"
612 data-bind="checked: remoteRepository.downloadRemoteIndex"/>
616 <div class="control-group">
617 <label class="control-label" for="remoteIndexUrl">${$.i18n.prop('remoteIndexUrl')}</label>
619 <div class="controls">
620 <input type="text" class="input-xxlarge" id="remoteIndexUrl" name="remoteIndexUrl" size="5"
621 data-bind="value: remoteRepository.remoteIndexUrl"/>
624 <div class="control-group">
625 <label class="control-label" for="cronExpression">${$.i18n.prop('cronExpression')}</label>
627 <div class="controls">
628 <input type="text" id="cronExpression" name="cronExpression" size="40"
629 data-bind="value: remoteRepository.cronExpression"/>
630 <a class="btn btn-warning btn-mini popover-doc" id="cronExpression-info-button"
631 data-original-title="${$.i18n.prop('cronExpression.help.title')}"
632 data-content="${$.i18n.prop('cronExpression.help.content')}">
633 <i class="icon-question-sign icon-white"></i>
637 <div class="control-group">
638 <label class="control-label" for="indexDirectory">${$.i18n.prop('index.directory')}</label>
640 <div class="controls">
641 <input type="text" class="input-xlarge" id="indexDirectory" name="indexDirectory" size="50"
642 data-bind="value: remoteRepository.indexDirectory"/>
645 <div class="control-group">
646 <label class="control-label" for="remoteDownloadTimeout">${$.i18n.prop('remoteDownloadTimeout')}</label>
648 <div class="controls">
649 <input type="text" id="remoteDownloadTimeout" class="digits" name="remoteDownloadTimeout" size="5"
650 data-bind="value: remoteRepository.remoteDownloadTimeout"/>
654 <div class="control-group">
655 <label class="control-label"
656 for="remoteDownloadNetworkProxyId">${$.i18n.prop('remoteDownloadNetworkProxyId')}</label>
658 <div class="controls">
659 <select id="remoteDownloadNetworkProxyId"
660 data-bind="options: networkProxies, optionsText: 'id',optionsValue:'id', value: remoteRepository.remoteDownloadNetworkProxyId, optionsCaption: 'Choose...'"></select>
664 <div class="control-group">
665 <label class="control-label"
666 for="downloadRemoteIndexOnStartup">${$.i18n.prop('downloadRemoteIndexOnStartup')}</label>
668 <div class="controls">
669 <input type="checkbox" id="downloadRemoteIndexOnStartup" name="downloadRemoteIndexOnStartup"
670 data-bind="checked: remoteRepository.downloadRemoteIndexOnStartup"/>
674 <div class="control-group">
675 <label class="control-label" for="daysOlder">${$.i18n.prop('description')}</label>
677 <div class="controls">
678 <textarea rows="3" id="description" name="description"
679 data-bind="value: remoteRepository.description"></textarea>
683 <div class="row-fluid">
684 <div class="control-group span6">
685 <h4>${$.i18n.prop('remoteRepository.extraParametersEntries')}</h4>
687 <div id="extra-parameters-error"></div>
688 <table class="table">
690 <th>${$.i18n.prop('key')}:<input type="text" id="extraParameter-key"/></th>
691 <th>${$.i18n.prop('value')}:<input type="text" id="extraParameter-value"/></th>
692 <th><a href="#" data-bind="click: function(){ addExtraParameter() }">${$.i18n.prop('add')}</a></th>
695 {{each(i, extraParameterEntry) remoteRepository.extraParametersEntries}}
697 <td>${extraParameterEntry.key}</td>
698 <td>${extraParameterEntry.value}</td>
699 <td><a href="#" data-bind="click: function(){ deleteExtraParameter(extraParameterEntry.key)}">${$.i18n.prop('delete')}</a>
708 <div class="row-fluid">
709 <div class="control-group span6">
710 <h4>${$.i18n.prop('remoteRepository.extraHeadersEntries')}</h4>
712 <div id="extra-headers-error"></div>
713 <table class="table">
715 <th>${$.i18n.prop('key')}:<input type="text" id="extraHeader-key"/></th>
716 <th>${$.i18n.prop('value')}:<input type="text" id="extraHeader-value"/></th>
717 <th><a href="#" data-bind="click: function(){ addExtraHeader() }">${$.i18n.prop('add')}</a></th>
720 {{each(i, extraHeaderEntry) remoteRepository.extraHeadersEntries}}
722 <td>${extraHeaderEntry.key}</td>
723 <td>${extraHeaderEntry.value}</td>
724 <td><a href="#" data-bind="click: function(){ deleteExtraHeader(extraHeaderEntry.key)}">${$.i18n.prop('delete')}</a>
734 <button data-bind="click: save" data-loading-text="${$.i18n.prop('common.loading')}"
735 id="remote-repository-save-button" class="btn">${$.i18n.prop('save')}
737 <button data-bind="click: displayGrid" class="btn">${$.i18n.prop('cancel')}</button>
741 <script id="remote-repository-scan-modal-tmpl" type='text/html'>
743 ${$.i18n.prop('remoterepository.download.remote.now')}: <input type="checkbox" id="remoterepository-scan-now">
746 ${$.i18n.prop('remoterepository.download.remote.full')}: <input type="checkbox" id="remoterepository-scan-full">
750 <script id="managed-repositories-bulk-save-tmpl" type='text/html'>
752 <a data-bind="click: updateModifiedManagedRepositories" class="btn btn-danger" href="#">${$.i18n.prop('save.all')}</a>
756 <script id="remote-repositories-bulk-save-tmpl" type='text/html'>
758 <a data-bind="click: updateModifiedRemoteRepositories" class="btn btn-danger" href="#">${$.i18n.prop('save.all')}</a>
762 <script id="networkProxiesMain" type="text/html">
763 <div class="page-header">
764 <h2><img src="images/internet-web-browser-32-32.png"/>${$.i18n.prop('network-proxies.list')}</h2>
767 <ul id="network-proxies-view-tabs" class="nav nav-tabs">
768 <li id="network-proxies-view-tabs-li-grid">
769 <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>
771 <li id="network-proxies-view-tabs-li-edit">
772 <a data-toggle="tab" href="#network-proxies-edit">${$.i18n.prop('add')}</a>
775 <div id="network-proxies-view-tabs-content" class="tab-content">
776 <div id="network-proxies-view" class="tab-pane">
777 <div id="network-proxies-bulk-save-btn" data-bind='template:{name:"network-proxies-bulk-save-tmpl"}'></div>
778 <table class="table table-striped table-bordered" id="networkProxiesTable"
779 data-bind="simpleGrid: gridViewModel,simpleGridTemplate:'ko-network-proxies-grid',pageLinksId:'network-proxiesPagination'">
781 <div id="network-proxiesPagination"></div>
783 <div id="network-proxies-edit" class="tab-pane" data-bind='template: {name:"network-proxy-edit-tmpl"}'></div>
788 <script id='ko-network-proxies-grid' type='text/html'>
791 {{each(i, columnDefinition) columns}}
792 <th>${ columnDefinition.headerText }</th>
794 <th>${$.i18n.prop('password')}</th>
795 <th>${$.i18n.prop('network.proxy.useNtlm')}</th>
796 <th>${$.i18n.prop('edit')}</th>
797 <th>${$.i18n.prop('delete')}</th>
798 <th>${$.i18n.prop('modified')}</th>
802 {{each(i, row) itemsOnCurrentPage()}}
803 <tr data-bind="css:{ 'modified': row.modified()}">
804 {{each(j, columnDefinition) columns}}
805 {{var val = (typeof columnDefinition.rowText == 'function' ? columnDefinition.rowText(row) :
806 row[columnDefinition.rowText])}}
811 {{if row.password()}}
816 <td>${row.useNtlm()}</td>
818 <a href="#" data-bind="click: function(){ editNetworkProxy(row) }">
819 <span class="btn btn-primary">
820 <i class="icon-pencil icon-white"/>
825 <a href="#" data-bind="click: function(){ removeNetworkProxy(row) }">
826 <span class="btn btn-danger">
827 <i class="icon-trash icon-white"/>
831 {{if row.modified()}}
833 <a href="#" data-bind="click: function(){ updateNetworkProxy(row) }" class="btn btn-warning">${$.i18n.prop('save')}</a>
845 <script id="network-proxy-edit-tmpl" type='text/html'>
846 <form id="network-proxy-edit-form" class="well form-horizontal">
847 <fieldset id="network-proxy-edit-fieldset">
848 <div class="control-group">
849 <label class="control-label" for="id">${$.i18n.prop('id')}</label>
851 <div class="controls">
853 <span class="uneditable-input">${$data.networkProxy.id}</span>
855 <input type="text" class="xlarge" id="id" name="id" size="10"
856 data-bind="value: networkProxy.id,css:{'uneditable-input': update},readonly:update"/>
860 <div class="control-group">
861 <label class="control-label" for="protocol">${$.i18n.prop('protocol')}</label>
863 <div class="controls">
864 <input type="text" class="xlarge required" id="protocol" name="protocol" size="8"
865 data-bind="value: networkProxy.protocol"/>
868 <div class="control-group">
869 <label class="control-label" for="host">${$.i18n.prop('host')}</label>
871 <div class="controls">
872 <input type="text" class="xlarge required" id="host" name="host" size="15"
873 data-bind="value: networkProxy.host"/>
876 <div class="control-group">
877 <label class="control-label" for="port">${$.i18n.prop('port')}</label>
879 <div class="controls">
880 <input type="text" class="xlarge required digits" id="port" name="port" size="6"
881 data-bind="value: networkProxy.port"/>
884 <div class="control-group">
885 <label class="control-label" for="username">${$.i18n.prop('username')}</label>
887 <div class="controls">
888 <input type="text" class="xlarge" id="username" name="username" size="50"
889 data-bind="value: networkProxy.username"/>
892 <div class="control-group">
893 <label class="control-label" for="password">${$.i18n.prop('password')}</label>
895 <div class="controls">
896 <input type="password" class="xlarge" id="password" name="password" size="50"
897 data-bind="value: networkProxy.password"/>
900 <div class="control-group">
901 <label class="control-label" for="useNtlm">${$.i18n.prop('network.proxy.useNtlm')}</label>
903 <div class="controls">
904 <input type="checkbox" id="useNtlm" name="useNtlm" data-bind="checked: networkProxy.useNtlm"/>
909 <button id="network-proxy-btn-save" data-bind="click: save" class="btn">${$.i18n.prop('save')}</button>
910 {{if networkProxy.modified()}}
911 ${("#network-proxy-btn-save").button('reset')}
913 <button data-bind="click: displayGrid" class="btn">${$.i18n.prop('cancel')}</button>
917 <script id="network-proxies-bulk-save-tmpl" type='text/html'>
919 <a data-bind="click: updateModifiedNetworkProxies" class="btn btn-danger" href="#">${$.i18n.prop('save.all')}</a>
922 <script id="network-proxy-delete-warning-tmpl" type='text/html'>
924 <span class="label label-warning">${$.i18n.prop('warning.not.undone.operation')}</span>
928 <script id="proxyConnectorsMain" type="text/html">
929 <div class="page-header">
930 <h2><img src="images/preferences-system-network-proxy-32-32.png"/>${$.i18n.prop('proxy-connectors.list')}</h2>
933 <ul id="proxy-connectors-view-tabs" class="nav nav-tabs">
934 <li id="proxy-connectors-view-tabs-li-grid" class="active">
935 <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>
937 <li id="proxy-connectors-view-tabs-li-edit">
938 <a data-toggle="tab" href="#proxy-connectors-edit"
939 id="proxy-connectors-view-tabs-a-edit">${$.i18n.prop('add')}</a>
941 <li id="proxy-connectors-view-tabs-li-edit-order">
942 <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>
945 <div id="proxy-connectors-view-tabs-content" class="tab-content">
946 <div id="proxy-connectors-view" class="tab-pane active">
947 <div id="proxy-connectors-bulk-save-btn" data-bind='template:{name:"proxy-connectors-bulk-save-tmpl"}'></div>
948 <table class="table table-striped table-bordered" id="proxyConnectorsTable"
949 data-bind="simpleGrid: gridViewModel,simpleGridTemplate:'ko-proxy-connectors-grid',pageLinksId:'proxy-connectorsPagination'">
951 <div id="proxy-connectorsPagination"></div>
953 <div id="proxy-connectors-edit" class="tab-pane"></div>
954 <div id="proxy-connector-edit-order" class="tab-pane span8">
955 <div id="proxy-connector-edit-order-managed-repository-div"
956 data-bind='template:{name:"proxy-connector-edit-order-managed-repository-tmpl"}'></div>
957 <div id="proxy-connector-edit-order-div"
958 data-bind="sortable: { template: 'proxy-connector-edit-order-tmpl', data: proxyConnectors,afterMove: proxyConnectorMoved}">
965 <script id='ko-proxy-connectors-grid' type='text/html'>
968 <th title="${$.i18n.prop('proxy-connectors.grid.managedrepo.title')}">
969 ${$.i18n.prop('proxy-connectors.grid.managedrepo.grid.header')}
971 <th title="${$.i18n.prop('proxy-connectors.grid.remoterepo.title')}">
972 ${$.i18n.prop('proxy-connectors.grid.remoterepo.grid.header')}
974 <th>${$.i18n.prop('proxy-connectors.grid.remoterepo.settings.popover.title')}</th>
975 <th>${$.i18n.prop('edit')}</th>
976 <th>${$.i18n.prop('delete')}</th>
977 <th>${$.i18n.prop('save')}</th>
978 <th>${$.i18n.prop('proxy-connectors.grid.header.order')}</th>
982 {{each(i, row) itemsOnCurrentPage()}}
983 <tr data-bind="css:{ 'modified': row.modified()}">
984 <td>${row.sourceRepoId()}</td>
985 <td>${row.targetRepoId()}</td>
987 <a class="btn btn-info btn-mini"
988 id="proxy-connectors-grid-remoterepo-settings-edit-${row.sourceRepoId()}-${row.targetRepoId()}"
989 data-original-title="${$.i18n.prop('proxy-connectors.grid.remoterepo.settings.popover.title')}"
990 data-content="${buildSettings(row)}" data-bind="click: showSettings" data-html="true">
991 <i class="icon-question-sign icon-white"></i>
996 <a data-bind="click: function(){ editProxyConnector(row)}" href="#">
997 <span class="btn btn-primary">
998 <i class="icon-pencil icon-white"/>
1003 <a href="#" data-bind="click: function(){ deleteProxyConnector(row)}">
1004 <span class="btn btn-danger">
1005 <i class="icon-trash icon-white"/>
1010 {{if row.modified()}}
1011 <a href="#" class="btn btn-warning" data-bind="click: function(){ updateProxyConnector(row)}">
1012 ${$.i18n.prop('save')}
1017 {{if orderChangeAware(row)}}
1018 <a href="#" data-bind="click: function(){ displayOrderEdit(row)}">
1019 <span class="btn btn-info">
1020 <i class="icon-resize-vertical icon-white"/>
1021 ${$.i18n.prop('proxy-connectors.order.edit')}
1025 <span class="badge badge-info">${row.order()}</span>
1031 <div id="proxy-connectors-grid-remoterepo-settings-content-${val}-${targetRepoId}" style="display:none"></div>
1034 <script id='proxy-connectors-remote-settings-popover-tmpl' type='text/html'>
1037 ${$.i18n.prop('proxy-connectors.remoterepo.settings.networkproxy')}: ${proxyConnector.proxyId}
1039 ${$.i18n.prop('proxy-connectors.remoterepo.settings.networkproxy')}: ${$.i18n.prop('none')}
1041 <table class="table table-bordered">
1043 <th colspan="2">${$.i18n.prop('proxy-connector.policies')}</th>
1046 {{each(i, entry) proxyConnector.policiesEntries}}
1047 {{var name = proxyConnectorsViewModel.findPolicyInformationName(entry.key)}}
1050 <td>${entry.value}</td>
1058 <script id="proxy-connector-edit-form-tmpl" type='text/html'>
1060 <form id="proxy-connector-edit-form" class="well form-horizontal">
1061 <fieldset id="remote-repository-edit-fieldset">
1062 <div class="control-group">
1063 <label class="control-label" for="proxyId">${$.i18n.prop('proxy-connector.network-proxy.id')}</label>
1065 <div class="controls">
1066 <select id="proxyId"
1067 data-bind="options: proxyConnectorsViewModel.networkProxies, optionsText: 'id',optionsValue:'id',
1068 value: proxyConnector.proxyId, optionsCaption: 'direct connection'"></select>
1071 <div class="control-group">
1072 <label class="control-label" for="proxyId">${$.i18n.prop('proxy-connector.managed.repository.id')}</label>
1074 <div class="controls">
1075 <select id="sourceRepoId"
1076 data-bind="options: proxyConnectorsViewModel.managedRepositories, optionsText: 'id',optionsValue:'id',
1077 value: proxyConnector.sourceRepoId,attr: {disabled: isUpdate() }"></select>
1080 <div class="control-group">
1081 <label class="control-label" for="proxyId">${$.i18n.prop('proxy-connector.remote.repository.id')}</label>
1083 <div class="controls">
1084 <select id="targetRepoId"
1085 data-bind="options: proxyConnectorsViewModel.remoteRepositories, optionsText: 'id',optionsValue:'id',
1086 value: proxyConnector.targetRepoId,attr: {disabled: isUpdate() }"></select>
1089 <div class="row-fluid">
1090 <div class="control-group span6">
1091 <table class="table">
1093 <th colspan="2">${$.i18n.prop('proxy-connector.policies')}</th>
1095 <tbody data-bind="foreach: proxyConnectorsViewModel.policyInformations()">
1097 <td data-bind="text: name"></td>
1099 <select data-bind="options: getPolicyOptions(id()),value:getSelectedPolicyOption(id()),
1100 attr: { id: 'policy-'+id() },event: { change: function(){ changePolicyOption(id())},}">
1108 <div class="row-fluid">
1109 <div class="control-group span6">
1110 <h4>${$.i18n.prop('proxy-connector.properties')}</h4>
1111 <table class="table">
1113 <th><input type="text" id="property-key"/></th>
1114 <th><input type="text" id="property-value"/></th>
1115 <th><a href="#" data-bind="click: function(){ addProperty() }">${$.i18n.prop('add')}</a></th>
1117 <tbody data-bind="foreach: proxyConnector.propertiesEntries">
1119 <td data-bind="text: key"></td>
1120 <td data-bind="text: value"></td>
1121 <td><a href="#" data-bind="click: function(){ $parent.deleteProperty(key)}">${$.i18n.prop('delete')}</a>
1128 <div class="row-fluid">
1129 <div class="control-group span6">
1130 <h4>${$.i18n.prop('proxy-connector.blacklist')}</h4>
1131 <table class="table">
1133 <th><input type="text" id="blacklist-value"/></th>
1134 <th><a href="#" data-bind="click: function(){ addBlacklistPattern() }">${$.i18n.prop('add')}</a></th>
1136 <tbody data-bind="foreach: proxyConnector.blackListPatterns">
1138 <td data-bind="text: $data"></td>
1139 <td><a href="#" data-bind="click: function(){removeBlacklistPattern($data)}">${$.i18n.prop('delete')}</a>
1146 <div class="row-fluid">
1147 <div class="control-group span6">
1148 <h4>${$.i18n.prop('proxy-connector.whitelist')}</h4>
1149 <table class="table">
1151 <th><input type="text" id="whitelist-value"/></th>
1152 <th><a href="#" data-bind="click: function(){ addWhitelistPattern() }">${$.i18n.prop('add')}</a></th>
1154 <tbody data-bind="foreach: proxyConnector.whiteListPatterns">
1156 <td data-bind="text: $data"></td>
1157 <td><a href="#" data-bind="click: function(){removeWhitelistPattern($data)}">${$.i18n.prop('delete')}</a>
1166 <button id="proxy-connector-btn-save" data-bind="click: save" data-loading-text="${$.i18n.prop('common.loading')}"
1167 class="btn">${$.i18n.prop('save')}
1170 ${("#network-proxy-btn-save").button('reset')}
1172 <button data-bind="click: displayGrid" class="btn">${$.i18n.prop('cancel')}</button>
1177 <script id="proxy-connectors-bulk-save-tmpl" type='text/html'>
1179 <a data-bind="click: updateModifiedProxyConnectors" class="btn btn-danger" href="#">${$.i18n.prop('save.all')}</a>
1183 <script id="proxy-connector-edit-order-tmpl" type='text/html'>
1184 <div class="well draggable-item network-proxy-remote-item">
1185 {{var remoteRepository=$parent.findRemoteRepository(targetRepoId)}}
1186 <div class="row-fluid">
1188 <img src="images/system-software-update-32-32.png"/>
1190 <img src="images/utilities-system-monitor-22-22.png"
1191 id="proxy-connectors-order-remoterepo-settings-edit-${sourceRepoId()}-${targetRepoId()}"
1192 data-original-title="${$.i18n.prop('proxy-connectors.grid.remoterepo.settings.popover.title')}"
1193 data-bind="event: { mouseover: function(){ displaySettings(sourceRepoId(),targetRepoId())},}">
1195 <div id="proxy-connectors-order-remoterepo-settings-content-${sourceRepoId()}-${targetRepoId()}"
1196 style="display:none"></div>
1198 <div class="span6 pull-left">
1202 ${remoteRepository.name()} (<a href="${remoteRepository.url()}"
1203 target="_blank">${remoteRepository.url()}</a>)
1207 <span class="badge badge-info">${order}</span>
1213 <script id="proxy-connector-edit-order-managed-repository-tmpl" type="text/html">
1214 <div class="well row-fluid">
1216 <img src="images/applications-internet-32-32.png"/>
1220 ${managedRepository.id}
1222 ${managedRepository.name}
1226 {{if proxyConnectorsViewModel.bulkSave()}}
1228 <a data-bind="click: function(){updateModifiedProxyConnectors()}"
1229 href="#" class="btn btn-warning">${$.i18n.prop('save.all')}</a></p>
1235 <script id="proxy-connector-delete-warning-tmpl" type='text/html'>
1237 <span class="label label-warning">${$.i18n.prop('warning.not.undone.operation')}</span>
1241 <script id="repositoryGroupsMain" type="text/html">
1242 <div class="page-header">
1243 <h2><img src="images/applications-internet-2-32-32.png"/>${$.i18n.prop('repository.groups.list')}</h2>
1245 <ul id="repository-groups-view-tabs" class="nav nav-tabs">
1246 <li id="repository-groups-view-tabs-li-grid" class="active">
1247 <a data-toggle="tab" href="#repository-groups-view" id="repository-groups-view-tabs-a-network-proxies-grid">
1248 ${$.i18n.prop('repository-groups.grid.tab.title')}
1251 <li id="repository-groups-view-tabs-li-edit">
1252 <a data-toggle="tab" href="#repository-groups-edit"
1253 id="repository-groups-view-tabs-a-edit">${$.i18n.prop('add')}</a>
1257 <div id="repository-groups-view-tabs-content" class="tab-content">
1258 <div id="repository-groups-view" class="tab-pane active">
1259 <div id="repository-groups-table" data-bind='template:{name:"repository-groups-table-tmpl"}'>
1262 <div id="repository-groups-edit" class="tab-pane">
1263 <div class="row-fluid">
1264 <div class="span6 dotted">
1265 <div id="repository-groups-edit-div" data-bind='template:{name:"repository-group-edit-tmpl"}'></div>
1266 <div id="repository-groups-edit-order-div" style="min-height: 80px"
1267 data-bind="sortable: { template: 'repository-group-edit-order-tmpl-choosed',data:repositoryGroup.managedRepositories,afterMove:repositoryMoved}">
1271 <div class="span6 dotted">
1272 <h5>${$.i18n.prop('repository.groups.available.repositories')}</h5>
1275 <div id="repository-groups-edit-available-repositories" style="min-height: 80px"
1276 data-bind="sortable: { template: 'repository-group-edit-order-tmpl-available',data:availableRepositories,afterMove:repositoryMoved}">
1288 <script id="repository-group-edit-order-tmpl-choosed" type="text/html">
1289 <div class="well draggable-item">
1290 <span class="pull-right">
1291 <i class="icon-minus-sign cursor-hand" id="minus-${$data.id()}"/>
1298 <a href="${$data.url}" target="_blank">
1307 <script id="repository-group-edit-order-tmpl-available" type="text/html">
1308 <div class="well draggable-item">
1309 <span class="pull-right">
1310 <i class="icon-plus-sign cursor-hand" id="plus-${$data.id()}"/>
1317 <a href="${$data.url}" target="_blank">
1326 <script id="repository-groups-table-tmpl" type="text/html">
1327 <table class="table table-striped table-bordered">
1329 <th>${$.i18n.prop('repository.groups.groups.grid.header')}</th>
1330 <th>${$.i18n.prop('repository.groups.repositories.grid.header')}</th>
1331 <th>${$.i18n.prop('edit')}</th>
1332 <th>${$.i18n.prop('delete')}</th>
1333 <th>${$.i18n.prop('save')}</th>
1336 {{each(i, repositoryGroup) repositoryGroups}}
1337 <tr data-bind="css:{ 'modified': repositoryGroup.modified()}">
1338 <td>${repositoryGroup.id}</td>
1341 {{each(j,id) repositoryGroup.repositories()}}
1347 <a href="#" data-bind="click: function(){editRepositoryGroup(repositoryGroup)}">
1348 <span class="btn btn-primary">
1349 <i class="icon-pencil icon-white"/>
1354 <a href="#" data-bind="click: function(){deleteRepositoryGroup(repositoryGroup)}">
1355 <span class="btn btn-danger">
1356 <i class="icon-trash icon-white"/>
1361 {{if repositoryGroup.modified()}}
1362 <a href="#" class="btn btn-warning" data-bind="click: function(){saveRepositoryGroup(repositoryGroup)}">
1363 ${$.i18n.prop('save')}
1373 <script id="repository-group-edit-tmpl" type="text/html">
1374 <div class="row-fluid">
1376 <div class="dotted span8">
1378 ${repositoryGroup.id}
1380 <a href="${window.archivaRuntimeInfo.baseUrl}/repository/${repositoryGroup.id()}" target="_blank">
1381 ${applicationUrl}/repository/${repositoryGroup.id()}
1386 <div class="dotted span8">
1387 <form id="repository-group-edit-form" class="well">
1388 <fieldset id="repository-group-edit-fieldset">
1389 <div class="control-group">
1390 <label class="control-label" for="id">${$.i18n.prop('id')}</label>
1392 <div class="controls">
1393 <input type="text" class="input-medium required" id="id" name="id" size="15"
1394 data-bind="value: repositoryGroup.id,css:{'uneditable-input': update},readonly:update"/>
1401 {{if repositoryGroup.modified()}}
1403 <a href="#" class="btn btn-warning" data-loading-text="${$.i18n.prop('common.loading')}"
1404 id="repository-group-save" data-bind="click: function(){saveRepositoryGroup(repositoryGroup)}">${$.i18n.prop('save')}</a>
1412 <script id="repository-group-delete-warning-tmpl" type='text/html'>
1414 <span class="label label-warning">${$.i18n.prop('warning.not.undone.operation')}</span>
1419 <script id="merge-repo-dialog-content" type="text/html">
1420 <div class="btn-group btn-group-vertical">
1421 {{each(i, repository) repositories}}
1422 <button class="btn" type="button"
1423 onclick="mergeRepositories(encodeURIComponent('${sourceRepoId}'),encodeURIComponent('${repository.id()}'))">
1424 ${repository.name()}
1430 <script id="merge-repo-skip-conflicts" type="text/html">
1433 {{each(i, artifact) artifacts}}
1434 <li>${artifact.groupId}:${artifact.artifactId}:${artifact.version}</li>
1439 <button class="btn btn-success"
1440 onclick="doMerge(encodeURIComponent('${sourceRepository}'),encodeURIComponent('${targetRepository}'),false);"
1441 type="button">${$.i18n.prop('managedrepository.merge.domerge')}
1443 {{if artifacts.length > 0}}
1444 <button class="btn btn-warning"
1445 onclick="doMerge(encodeURIComponent('${sourceRepository}'),encodeURIComponent('${targetRepository}'),true);"
1446 type="button">${$.i18n.prop('managedrepository.merge.domerge.skipconflicts')}
1453 <script id="proxyConnectorsRulesMain" type="text/html">
1454 <div class="page-header">
1455 <h2>${$.i18n.prop('proxy-connector-rules.list')}</h2>
1458 <ul id="proxy-connectors-rules-view-tabs" class="nav nav-tabs">
1459 <li id="proxy-connectors-rules-view-tabs-li-grid" class="active">
1460 <a data-toggle="tab" href="#proxy-connector-rules-view" id="proxy-connectors-rules-view-tabs-a-grid">${$.i18n.prop('proxy-connectors-rules.grid.tab.title')}</a>
1462 <li id="proxy-connectors-rules-view-tabs-li-edit">
1463 <a data-toggle="tab" href="#proxy-connector-rules-edit" id="proxy-connectors-rules-view-tabs-a-edit">${$.i18n.prop('add')}</a>
1466 <div id="proxy-connectors-rules-view-tabs-content" class="tab-content">
1467 <div id="proxy-connector-rules-view" class="tab-pane active">
1468 <div id="proxy-connectors-rules-view-tabs-bulk-save-btn"
1469 data-bind='template:{name:"proxy-connectors-rules-view-tabs-bulk-save-tmpl"}'></div>
1470 <table class="table table-striped table-bordered" id="proxy-connectors-rules-view-tabsTable"
1471 data-bind="simpleGrid: gridViewModel,simpleGridTemplate:'ko-proxy-connectors-rules-grid',pageLinksId:'proxy-connectors-rules-pagination'">
1473 <div id="proxy-connectors-rules-view-tabs-pagination"></div>
1475 <div id="proxy-connector-rules-edit" class="tab-pane">
1476 <div class="row-fluid">
1477 <div class="span6 dotted">
1478 <div id="proxy-connectors-rules-edit-div"
1479 data-bind='template:{name:"proxy-connectors-rules-edit-tmpl"}'></div>
1480 <div id="proxy-connectors-rules-edit-order-div" style="min-height: 80px"
1481 data-bind="sortable: { template: 'proxy-connectors-rules-edit-proxy-connectors-tmpl-choosen',data:proxyConnectorRule.proxyConnectors,afterMove:proxyConnectorMoved}">
1485 <div class="span6 dotted">
1486 <h5>${$.i18n.prop('proxy-connector-rules.available.proxyConnectors')}</h5>
1489 <div id="proxy-connectors-rules-available-proxy-connectors" style="min-height: 80px"
1490 data-bind="sortable: { template: 'proxy-connectors-rules-edit-proxy-connectors-tmpl-availables',data:availableProxyConnectors,afterMove:proxyConnectorMoved}">
1502 <script id='ko-proxy-connectors-rules-grid' type='text/html'>
1505 <th title="${$.i18n.prop('proxy-connector-rules.grid.pattern.title')}">
1506 ${$.i18n.prop('proxy-connector-rules.grid.pattern.header')}
1508 <th title="${$.i18n.prop('proxy-connector-rules.grid.type.title')}">
1509 ${$.i18n.prop('proxy-connector-rules.grid.type.header')}
1511 <th>${$.i18n.prop('proxy-connector-rules.grid.proxy-connectors.header')}</th>
1512 <th>${$.i18n.prop('edit')}</th>
1513 <th>${$.i18n.prop('delete')}</th>
1514 <th>${$.i18n.prop('save')}</th>
1518 {{each(i, row) itemsOnCurrentPage()}}
1519 <tr data-bind="css:{ 'modified': row.modified()}">
1520 <td>${row.pattern()}</td>
1521 <td><img src="${row.ruleType.image}" title="${row.ruleType.label}"></img></td>
1524 {{each(j,proxyConnector) row.proxyConnectors()}}
1525 <li>${proxyConnector.sourceRepoId()} <-> ${proxyConnector.targetRepoId()}</li>
1530 <a href="#" data-bind="click: function(){ editProxyConnectorRule(row) }">
1531 <span class="btn btn-primary" data-loading-text="${$.i18n.prop('common.loading')}">
1532 <i class="icon-pencil icon-white"/>
1537 <a data-bind="click: function(){ removeProxyConnectorRule(row) }"
1538 data-loading-text="${$.i18n.prop('common.loading')}">
1539 <span class="btn btn-danger" data-loading-text="${$.i18n.prop('common.loading')}">
1540 <i class="icon-trash icon-white"/>
1545 {{if row.modified()}}
1546 <a href="#" id="proxy-connector-rule-update-btn" class="btn btn-warning"
1547 data-loading-text="${$.i18n.prop('common.loading')}"
1548 data-bind="click: function(){ updateProxyConnectorRule(row) }">${$.i18n.prop('save')}</a>
1556 <script id="proxy-connectors-rules-view-tabs-bulk-save-tmpl" type="text/html">
1560 <script id="proxy-connectors-rules-edit-tmpl" type="text/html">
1561 <div class="row-fluid">
1563 <div class="dotted span8">
1565 ${proxyConnectorRule.pattern()}
1567 ${proxyConnectorRule.ruleType.label}
1571 <div class="dotted span8">
1572 <form id="proxy-connector-rule-edit-form" class="well">
1573 <fieldset id="proxy-connector-rule-edit-fieldset">
1574 <div class="control-group">
1575 <label class="control-label" for="id">${$.i18n.prop('proxy-connector-rule.pattern')}</label>
1577 <div class="controls">
1578 <input type="text" class="input-large required" id="pattern" name="pattern" size="15"
1579 data-bind="value:proxyConnectorRule.pattern,css:{'uneditable-input': update},readonly:update"/>
1582 <div class="control-group">
1583 <label class="control-label" for="layout">${$.i18n.prop('type')}</label>
1585 <div class="controls">
1586 <select id="proxy-connector-rule-pattern-type"
1587 data-bind="options: proxyConnectorRulesViewModel.ruleTypes,optionsText: 'label',optionsValue:'type',value: proxyConnectorRule.proxyConnectorRuleType"/>
1595 <div class="span3" data-bind="visible: proxyConnectorRule.modified()">
1596 {{if update && proxyConnectorRule.modified()}}
1597 <a href="#" class="btn btn-warning" data-loading-text="${$.i18n.prop('common.loading')}"
1598 id="proxy-connector-rule-update-btn"
1599 data-bind="click: function(){updateProxyConnectorRule(proxyConnectorRule)}">${$.i18n.prop('update')}</a>
1601 <a href="#" class="btn btn-warning" data-loading-text="${$.i18n.prop('common.loading')}"
1602 id="proxy-connector-rule-add-btn" data-bind="click: function(){addProxyConnectorRule(proxyConnectorRule)}">${$.i18n.prop('add')}</a>
1611 <script id="proxy-connectors-rules-edit-proxy-connectors-tmpl-choosen" type="text/html">
1612 <div class="well draggable-item">
1613 <i class="icon-minus-sign cursor-hand pull-right" data-source-repoId="${$data.sourceRepoId()}"
1614 data-target-repoId="${$data.targetRepoId()}"/>
1616 ${$data.sourceRepoId()} <-> ${$data.targetRepoId()}
1622 <script id="proxy-connectors-rules-edit-proxy-connectors-tmpl-availables" type="text/html">
1623 <div class="well draggable-item">
1624 <i class="icon-plus-sign cursor-hand pull-right" data-source-repoId="${$data.sourceRepoId()}"
1625 data-target-repoId="${$data.targetRepoId()}"/>
1627 ${$data.sourceRepoId()} <-> ${$data.targetRepoId()}