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('managedrepository.actions')}</th>
91 <th>${$.i18n.prop('edit')}</th>
92 <th>${$.i18n.prop('delete')}</th>
93 <th>${$.i18n.prop('modified')}</th>
94 <!--th>${$.i18n.prop('description')}</th-->
95 <th>${$.i18n.prop('managed.repository.rss.header')}</th>
96 <th title="${$.i18n.prop('managedrepository.stats')}">${$.i18n.prop('managedrepository.stats.grid.header')}</th>
97 <!--th title="${$.i18n.prop('managedrepository.scan.directories')}">${$.i18n.prop('managedrepository.scan.directories.grid.header')}</th-->
101 {{each(i, row) itemsOnCurrentPage()}}
102 <tr data-bind="css:{ 'modified': row.modified()}">
103 {{each(j, columnDefinition) columns}}
104 <td>${ typeof columnDefinition.rowText == 'function' ? columnDefinition.rowText(row) : row[columnDefinition.rowText] }</td>
107 {{if row.releases() == true}}
108 <img src="images/weather-clear-22-22.png" title="${$.i18n.prop('release.included')}"/>
110 <img src="images/dialog-error-22-22.png" title="${$.i18n.prop('release.notincluded')}"/>
115 {{if row.snapshots() == true}}
116 <img src="images/weather-clear-22-22.png" title="${$.i18n.prop('snapshots.included')}"/>
118 <img src="images/dialog-error-22-22.png" title="${$.i18n.prop('snapshots.notincluded')}"/>
122 <div class="btn-group">
123 <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">Actions<span class="caret"></span> </a>
124 <ul class="dropdown-menu">
126 <a href="#" data-bind="click: function(){ scanNow(row) }">
127 <span class="btn btn-success">
128 <i class="icon-refresh icon-white"></i>
130 ${$.i18n.prop('managedrepository.scan.grid.header')}
134 <a href="#" data-bind="click: function(){directoriesScan(row)}">
135 <span class="btn btn-warning">
136 <i class="icon-wrench icon-white"></i>
138 ${$.i18n.prop('managedrepository.scan.directories.grid.header')}
142 <a href="#" data-bind="click: function(){ showPomSnippet(row) }">
143 <span class="btn btn-info">
144 <i class="icon-user icon-white"></i>
146 ${$.i18n.prop('managedrepository.pomsnippet')}
150 {{if row.stageRepoNeeded()}}
155 <!-- todo check archiva-merge-repository operation -->
156 <a href="#" data-bind="click: function(){ mergeRepo(row) }">
157 <span class="btn btn-info">
158 <i class="icon-share icon-white"></i>
160 ${$.i18n.prop('managedrepository.mergerepo')}
167 <a href="#" data-bind="click: function(){ editManagedRepository(row) }">
168 <span class="btn btn-primary">
169 <i class="icon-pencil icon-white"/>
174 <a href="#" data-bind="click: function(){ removeManagedRepository(row) }">
175 <span class="btn btn-danger">
176 <i class="icon-trash icon-white"/>
180 {{if row.modified()}}
182 <a href="#" class="btn btn-warning" data-bind="click: function(){ updateManagedRepository(row) }">${$.i18n.prop('save')}</a>
188 <a href="${row.feedsUrl}"><img src="images/atom.gif" alt="" title="${$.i18n.prop('managedrepository.feeds')} ${row.name()}"/></a>
191 {{if row.description()}}
192 <a class="btn btn-warning btn-mini popover-doc" id="managedrepo-description-help"
193 data-content="${row.description()}" data-title="${$.i18n.prop('description')}"
194 data-placement="left">
195 <i class="icon-question-sign icon-white"></i>
199 <td id="managedrepository-stats-${row.id()}">
200 <img src="images/utilities-system-monitor-22-22.png" data-original-title="${$.i18n.prop('managedrepository.stats')}"
201 data-bind="event: { mouseover: function(){ showStats(row) }, mouseout: function(){ hideStats(row) },}"
202 id="managedrepository-stats-img-${row.id()}"/>
210 <script id="managed-repository-edit-tmpl" type='text/html'>
211 <form id="managed-repository-edit-form" class="well form-horizontal">
212 <fieldset id="managed-repository-edit-fieldset">
213 <div class="control-group">
214 <label class="control-label" for="id">${$.i18n.prop('id')}</label>
215 <div class="controls">
217 <span class="uneditable-input">${$data.managedRepository.id}</span>
219 <input type="text" class="input-xlarge required" id="id" name="id" size="50"
220 data-bind="value: managedRepository.id,css:{'uneditable-input': update},readonly:update"/>
222 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-id-info-button"
223 data-original-title="${$.i18n.prop('managedRepository.id.help.title')}"
224 data-content="${$.i18n.prop('managedRepository.id.help.content')}">
225 <i class="icon-question-sign icon-white"></i>
229 <div class="control-group">
230 <label class="control-label" for="name">${$.i18n.prop('name')}</label>
231 <div class="controls">
232 <input type="text" class="input-xlarge required" id="name" name="name" size="50"
233 data-bind="value: managedRepository.name"/>
234 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-name-info-button"
235 data-original-title="${$.i18n.prop('managedRepository.name.help.title')}"
236 data-content="${$.i18n.prop('managedRepository.name.help.content')}">
237 <i class="icon-question-sign icon-white"></i>
241 <div class="control-group">
242 <label class="control-label" for="location">${$.i18n.prop('directory')}</label>
243 <div class="controls">
244 <input type="text" class="input-xxlarge required" id="location" name="location" size="50" data-bind="value: managedRepository.location"/>
245 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-location-info-button"
246 data-original-title="${$.i18n.prop('managedRepository.location.help.title')}"
247 data-content="${$.i18n.prop('managedRepository.location.help.content')}">
248 <i class="icon-question-sign icon-white"></i>
252 <div class="control-group">
253 <label class="control-label" for="indexDirectory">${$.i18n.prop('index.directory')}</label>
254 <div class="controls">
255 <input type="text" class="input-xxlarge" id="indexDirectory" name="indexDirectory" size="50" 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>
265 <div class="controls">
266 <select id="layout" data-bind="options: availableLayouts,optionsText: 'label',optionsValue:'type',value: managedRepository.layout"/>
269 <div class="control-group">
270 <label class="control-label" for="cronExpression">${$.i18n.prop('cronExpression')}</label>
271 <div class="controls">
272 <input type="text" id="cronExpression" class="required" name="cronExpression" size="40" data-bind="value: managedRepository.cronExpression"/>
273 <a class="btn btn-warning btn-mini popover-doc" id="cronExpression-info-button"
274 data-original-title="${$.i18n.prop('cronExpression.help.title')}"
275 data-content="${$.i18n.prop('cronExpression.help.content')}">
276 <i class="icon-question-sign icon-white"></i>
280 <div class="control-group">
281 <label class="control-label" for="daysOlder">${$.i18n.prop('daysOlder')}</label>
282 <div class="controls">
283 <input type="text" id="daysOlder" class="digits" name="daysOlder" size="5" data-bind="value: managedRepository.daysOlder"/>
284 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-daysOlder-info-button"
285 data-original-title="${$.i18n.prop('managedRepository.daysOlder.help.title')}"
286 data-content="${$.i18n.prop('managedRepository.daysOlder.help.content')}">
287 <i class="icon-question-sign icon-white"></i>
291 <div class="control-group">
292 <label class="control-label" for="retentionCount">${$.i18n.prop('retentionCount')}</label>
293 <div class="controls">
294 <input type="text" id="retentionCount" name="retentionCount" size="5" data-bind="value: managedRepository.retentionCount"/>
295 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-retentionCount-info-button"
296 data-original-title="${$.i18n.prop('managedRepository.retentionCount.help.title')}"
297 data-content="${$.i18n.prop('managedRepository.retentionCount.help.content')}">
298 <i class="icon-question-sign icon-white"></i>
302 <div class="control-group">
303 <label class="control-label" for="description">${$.i18n.prop('description')}</label>
304 <div class="controls">
305 <textarea rows="3" id="description" name="description" data-bind="value: managedRepository.description"></textarea>
306 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-description-info-button"
307 data-original-title="${$.i18n.prop('managedRepository.description.help.title')}"
308 data-content="${$.i18n.prop('managedRepository.description.help.content')}">
309 <i class="icon-question-sign icon-white"></i>
313 <div class="control-group">
314 <label class="control-label" for="releases">${$.i18n.prop('releases')}</label>
315 <div class="controls">
316 <input type="checkbox" id="releases" name="releases" size="5" data-bind="checked: managedRepository.releases"/>
317 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-release-info-button"
318 data-original-title="${$.i18n.prop('managedRepository.release.help.title')}"
319 data-content="${$.i18n.prop('managedRepository.release.help.content')}">
320 <i class="icon-question-sign icon-white"></i>
324 <div class="control-group">
325 <label class="control-label" for="snapshots">${$.i18n.prop('snapshots')}</label>
326 <div class="controls">
327 <input type="checkbox" id="snapshots" name="snapshots" size="5" data-bind="checked: managedRepository.snapshots"/>
328 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-snapshots-info-button"
329 data-original-title="${$.i18n.prop('managedRepository.snapshots.help.title')}"
330 data-content="${$.i18n.prop('managedRepository.snapshots.help.content')}">
331 <i class="icon-question-sign icon-white"></i>
335 <div class="control-group">
336 <label class="control-label" for="blockRedeployments">${$.i18n.prop('blockRedeployments')}</label>
337 <div class="controls">
338 <input type="checkbox" id="blockRedeployments" name="blockRedeployments" size="5" data-bind="checked: managedRepository.blockRedeployments"/>
339 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-blockRedeployments-info-button"
340 data-original-title="${$.i18n.prop('managedRepository.blockRedeployments.help.title')}"
341 data-content="${$.i18n.prop('managedRepository.blockRedeployments.help.content')}">
342 <i class="icon-question-sign icon-white"></i>
346 <div class="control-group">
347 <label class="control-label" for="scanned">${$.i18n.prop('scanned')}</label>
348 <div class="controls">
349 <input type="checkbox" id="scanned" name="scanned" size="5" data-bind="checked: managedRepository.scanned"/>
350 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-scanned-info-button"
351 data-original-title="${$.i18n.prop('managedRepository.scanned.help.title')}"
352 data-content="${$.i18n.prop('managedRepository.scanned.help.content')}">
353 <i class="icon-question-sign icon-white"></i>
357 <div class="control-group">
358 <label class="control-label" for="deleteReleasedSnapshots">${$.i18n.prop('deleteReleasedSnapshots')}</label>
359 <div class="controls">
360 <input type="checkbox" id="deleteReleasedSnapshots" name="deleteReleasedSnapshots" size="5"
361 data-bind="checked: managedRepository.deleteReleasedSnapshots"/>
362 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-deleteReleasedSnapshots-info-button"
363 data-original-title="${$.i18n.prop('managedRepository.deleteReleasedSnapshots.help.title')}"
364 data-content="${$.i18n.prop('managedRepository.deleteReleasedSnapshots.help.content')}">
365 <i class="icon-question-sign icon-white"></i>
369 <div class="control-group">
370 <label class="control-label" for="stageRepoNeeded">${$.i18n.prop('stageRepoNeeded')}</label>
371 <div class="controls">
372 <input type="checkbox" id="stageRepoNeeded" name="stageRepoNeeded" size="5"
373 data-bind="checked: managedRepository.stageRepoNeeded"/>
374 <a class="btn btn-warning btn-mini popover-doc" id="managedRepository-stageRepoNeeded-info-button"
375 data-original-title="${$.i18n.prop('managedRepository.stageRepoNeeded.help.title')}"
376 data-content="${$.i18n.prop('managedRepository.stageRepoNeeded.help.content')}">
377 <i class="icon-question-sign icon-white"></i>
381 <div class="control-group">
382 <label class="control-label" for="skipPackedIndexCreation">${$.i18n.prop('skipPackedIndexCreation')}</label>
383 <div class="controls">
384 <input type="checkbox" id="skipPackedIndexCreation" name="skipPackedIndexCreation" size="5"
385 data-bind="checked: managedRepository.skipPackedIndexCreation"/>
386 <a class="btn btn-warning btn-mini popover-doc" id="skipPackedIndexCreation-info-button"
387 data-original-title="${$.i18n.prop('skipPackedIndexCreation.help.title')}"
388 data-content="${$.i18n.prop('skipPackedIndexCreation.help.content')}">
389 <i class="icon-question-sign icon-white"></i>
395 <button data-bind="click: save" class="btn" id="managed-repository-save-button">${$.i18n.prop('save')}</button>
396 <button data-bind="click: displayGrid" class="btn">${$.i18n.prop('cancel')}</button>
400 <script id="managed-repository-delete-warning-tmpl" type='text/html'>
402 <span class="label label-warning">${$.i18n.prop('warning.not.undone.operation')}</span>
404 <span><strong>${$.i18n.prop('managedrepository.delete.warning.message')}</strong>.</span>
405 <div>${$.i18n.prop('id')}: ${id()}</div>
406 <div>${$.i18n.prop('name')}: ${name()}</div>
409 ${$.i18n.prop('managedrepository.delete.content')}: <input type="checkbox" id="managedrepository-deletecontent">
414 <script type="text/html" id="remote-repository-delete-modal-tmpl">
416 <span class="label label-warning">${$.i18n.prop('warning.not.undone.operation')}</span>
420 <script id="managed-repository-location-warning-tmpl" type='text/html'>
422 <span class="label label-warning">${$.i18n.prop('managedrepository.location.already.exists')}</span>
424 <span><strong>${$.i18n.prop('managedrepository.location.already.exists.warning.message')}</strong>.</span>
425 <div>${$.i18n.prop('id')}: ${id()}</div>
426 <div>${$.i18n.prop('name')}: ${name()}</div>
430 <script id="managed-repository-scan-now-modal-tmpl" type='text/html'>
432 ${$.i18n.prop('managedrepository.scan.all')}: <input type="checkbox" id="managed-repository-scan-now-all">
435 <script id="managed-repository-stats-tmpl" type='text/html'>
436 <div id="managedrepository-stats-${managedRepository.id()}-popover" style="display:none">
437 <div>${$.i18n.prop('managedrepository.stats.endTime')}: ${lastScanDate()}</div>
438 <div>${$.i18n.prop('managedrepository.stats.duration')}: ${duration()}ms</div>
439 <div>${$.i18n.prop('managedrepository.stats.totalFileCount')}: ${totalFileCount()}</div>
440 <div>${$.i18n.prop('managedrepository.stats.newFileCount')}: ${newFileCount()}</div>
443 <script id="pom-snippet-tmpl" type='text/html'>
444 <div class="page-header">
445 <h2>POM Snippet</h2></div>
447 <div><a onclick="$('#managed-repositories-pom-snippet').effect('blind')">${$.i18n.prop('hide')}</a></div>
453 <script id='ko_remote-repositoriesGrid' type='text/html'>
456 {{each(i, columnDefinition) columns}}
457 <th title="${ columnDefinition.title }">${ columnDefinition.headerText }</th>
459 <th>${$.i18n.prop('edit')}</th>
460 <th>${$.i18n.prop('delete')}</th>
461 <th>${$.i18n.prop('modified')}</th>
462 <th>${$.i18n.prop('description')}</th>
463 <th>${$.i18n.prop('remoterepository.downloadremoteindex')}</th>
467 {{each(i, row) itemsOnCurrentPage()}}
468 <tr data-bind="css:{ 'modified': row.modified()}">
469 {{each(j, columnDefinition) columns}}
470 <td>${ typeof columnDefinition.rowText == 'function' ? columnDefinition.rowText(row) : row[columnDefinition.rowText] }</td>
473 <a href="#" data-bind="click: function(){ editRemoteRepository(row) }">
474 <span class="btn btn-primary">
475 <i class="icon-pencil icon-white"/>
480 <a href="#" data-bind="click: function(){ removeRemoteRepository(row) }">
481 <span class="btn btn-danger">
482 <i class="icon-trash icon-white"/>
486 {{if row.modified()}}
488 <a href="#" class="btn btn-warning" data-bind="click: function(){ updateRemoteRepository(row) }">${$.i18n.prop('save')}</a>
494 {{if row.description()}}
495 <a class="btn btn-warning btn-mini popover-doc" id="remoterepo-description-help"
496 data-content="${row.description()}" data-title="${$.i18n.prop('description')}">
497 <i class="icon-question-sign icon-white"></i>
502 <a href="#" data-bind="click: function(){ scheduleDownloadRemoteIndex(row) }">
503 <span class="btn btn-success">
504 <i class="icon-refresh icon-white"/>
515 <script id="remote-repository-edit-tmpl" type='text/html'>
518 <form id="remote-repository-edit-form" class="well form-horizontal">
519 <fieldset id="remote-repository-edit-fieldset">
520 <div class="control-group">
521 <label class="control-label" for="id">${$.i18n.prop('id')}</label>
522 <div class="controls">
524 <span class="uneditable-input">${$data.remoteRepository.id}</span>
526 <input type="text" class="input-xlarge required" id="id" name="id" size="50"
527 data-bind="value: remoteRepository.id,css:{'uneditable-input': update},readonly:update"/>
531 <div class="control-group">
532 <label class="control-label" for="name">${$.i18n.prop('name')}</label>
533 <div class="controls">
534 <input type="text" class="input-xlarge required" id="name" name="name" size="50"
535 data-bind="value: remoteRepository.name"/>
538 <div class="control-group">
539 <label class="control-label" for="url">${$.i18n.prop('url')}</label>
540 <div class="controls">
541 <input type="text" class="input-xxlarge required" id="url" name="location" size="50" data-bind="value: remoteRepository.url"/>
544 <div class="control-group">
545 <label class="control-label" for="userName">${$.i18n.prop('username')}</label>
546 <div class="controls">
547 <input type="text" class="input-xlarge" id="userName" name="userName" size="50" data-bind="value: remoteRepository.userName"/>
550 <div class="control-group">
551 <label class="control-label" for="password">${$.i18n.prop('password')}</label>
552 <div class="controls">
553 <input type="password" class="input-xlarge" id="password" name="password" size="50" data-bind="value: remoteRepository.password"/>
556 <div class="control-group">
557 <label class="control-label" for="timeout">${$.i18n.prop('timeout')}</label>
558 <div class="controls">
559 <input type="text" id="timeout" class="digits" name="daysOlder" size="5" data-bind="value: remoteRepository.timeout"/>
563 <div class="control-group">
564 <label class="control-label" for="layout">${$.i18n.prop('type')}</label>
565 <div class="controls">
566 <select id="layout" data-bind="options: availableLayouts,optionsText: 'label',optionsValue:'type',value: remoteRepository.layout"/>
569 <div class="control-group">
570 <label class="control-label" for="downloadRemoteIndex">${$.i18n.prop('downloadRemoteIndex')}</label>
571 <div class="controls">
572 <input type="checkbox" id="downloadRemoteIndex" name="downloadRemoteIndex" size="5" data-bind="checked: remoteRepository.downloadRemoteIndex"/>
576 <div class="control-group">
577 <label class="control-label" for="remoteIndexUrl">${$.i18n.prop('remoteIndexUrl')}</label>
578 <div class="controls">
579 <input type="text" class="input-xxlarge" id="remoteIndexUrl" name="remoteIndexUrl" size="5" data-bind="value: remoteRepository.remoteIndexUrl"/>
582 <div class="control-group">
583 <label class="control-label" for="cronExpression">${$.i18n.prop('cronExpression')}</label>
584 <div class="controls">
585 <input type="text" id="cronExpression" name="cronExpression" size="40" data-bind="value: remoteRepository.cronExpression"/>
586 <a class="btn btn-warning btn-mini popover-doc" id="cronExpression-info-button"
587 data-original-title="${$.i18n.prop('cronExpression.help.title')}"
588 data-content="${$.i18n.prop('cronExpression.help.content')}">
589 <i class="icon-question-sign icon-white"></i>
593 <div class="control-group">
594 <label class="control-label" for="indexDirectory">${$.i18n.prop('index.directory')}</label>
595 <div class="controls">
596 <input type="text" class="input-xlarge" id="indexDirectory" name="indexDirectory" size="50" data-bind="value: remoteRepository.indexDirectory"/>
599 <div class="control-group">
600 <label class="control-label" for="remoteDownloadTimeout">${$.i18n.prop('remoteDownloadTimeout')}</label>
601 <div class="controls">
602 <input type="text" id="remoteDownloadTimeout" class="digits" name="remoteDownloadTimeout" size="5"
603 data-bind="value: remoteRepository.remoteDownloadTimeout"/>
607 <div class="control-group">
608 <label class="control-label" for="remoteDownloadNetworkProxyId">${$.i18n.prop('remoteDownloadNetworkProxyId')}</label>
609 <div class="controls">
610 <select id="remoteDownloadNetworkProxyId" data-bind="options: networkProxies, optionsText: 'id',optionsValue:'id', value: remoteRepository.remoteDownloadNetworkProxyId, optionsCaption: 'Choose...'"></select>
614 <div class="control-group">
615 <label class="control-label" for="downloadRemoteIndexOnStartup">${$.i18n.prop('downloadRemoteIndexOnStartup')}</label>
616 <div class="controls">
617 <input type="checkbox" id="downloadRemoteIndexOnStartup" name="downloadRemoteIndexOnStartup"
618 data-bind="checked: remoteRepository.downloadRemoteIndexOnStartup"/>
622 <div class="control-group">
623 <label class="control-label" for="daysOlder">${$.i18n.prop('description')}</label>
624 <div class="controls">
625 <textarea rows="3" id="description" name="description" data-bind="value: remoteRepository.description"></textarea>
629 <div class="row-fluid">
630 <div class="control-group span6">
631 <h4>${$.i18n.prop('remoteRepository.extraParametersEntries')}</h4>
632 <div id="extra-parameters-error"></div>
633 <table class="table">
635 <th>${$.i18n.prop('key')}:<input type="text" id="extraParameter-key"/></th>
636 <th>${$.i18n.prop('value')}:<input type="text" id="extraParameter-value"/></th>
637 <th><a href="#" data-bind="click: function(){ addExtraParameter() }">${$.i18n.prop('add')}</a></th>
640 {{each(i, extraParameterEntry) remoteRepository.extraParametersEntries}}
642 <td>${extraParameterEntry.key}</td>
643 <td>${extraParameterEntry.value}</td>
644 <td><a href="#" data-bind="click: function(){ deleteExtraParameter(extraParameterEntry.key)}">${$.i18n.prop('delete')}</a></td>
652 <div class="row-fluid">
653 <div class="control-group span6">
654 <h4>${$.i18n.prop('remoteRepository.extraHeadersEntries')}</h4>
655 <div id="extra-headers-error"></div>
656 <table class="table">
658 <th>${$.i18n.prop('key')}:<input type="text" id="extraHeader-key"/></th>
659 <th>${$.i18n.prop('value')}:<input type="text" id="extraHeader-value"/></th>
660 <th><a href="#" data-bind="click: function(){ addExtraHeader() }">${$.i18n.prop('add')}</a></th>
663 {{each(i, extraHeaderEntry) remoteRepository.extraHeadersEntries}}
665 <td>${extraHeaderEntry.key}</td>
666 <td>${extraHeaderEntry.value}</td>
667 <td><a href="#" data-bind="click: function(){ deleteExtraHeader(extraHeaderEntry.key)}">${$.i18n.prop('delete')}</a></td>
676 <button data-bind="click: save" data-loading-text="${$.i18n.prop('common.loading')}" id="remote-repository-save-button" class="btn">${$.i18n.prop('save')}</button>
677 <button data-bind="click: displayGrid" class="btn">${$.i18n.prop('cancel')}</button>
681 <script id="remote-repository-scan-modal-tmpl" type='text/html'>
683 ${$.i18n.prop('remoterepository.download.remote.now')}: <input type="checkbox" id="remoterepository-scan-now">
686 ${$.i18n.prop('remoterepository.download.remote.full')}: <input type="checkbox" id="remoterepository-scan-full">
690 <script id="managed-repositories-bulk-save-tmpl" type='text/html'>
692 <a data-bind="click: updateModifiedManagedRepositories" class="btn btn-danger" href="#">${$.i18n.prop('save.all')}</a>
696 <script id="remote-repositories-bulk-save-tmpl" type='text/html'>
698 <a data-bind="click: updateModifiedRemoteRepositories" class="btn btn-danger" href="#">${$.i18n.prop('save.all')}</a>
702 <script id="networkProxiesMain" type="text/html">
703 <div class="page-header">
704 <h2><img src="images/internet-web-browser-32-32.png"/>${$.i18n.prop('network-proxies.list')}</h2>
707 <ul id="network-proxies-view-tabs" class="nav nav-tabs">
708 <li id="network-proxies-view-tabs-li-grid">
709 <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>
711 <li id="network-proxies-view-tabs-li-edit">
712 <a data-toggle="tab" href="#network-proxies-edit">${$.i18n.prop('add')}</a>
715 <div id="network-proxies-view-tabs-content" class="tab-content">
716 <div id="network-proxies-view" class="tab-pane">
717 <div id="network-proxies-bulk-save-btn" data-bind='template:{name:"network-proxies-bulk-save-tmpl"}'></div>
718 <table class="table table-striped table-bordered" id="networkProxiesTable"
719 data-bind="simpleGrid: gridViewModel,simpleGridTemplate:'ko-network-proxies-grid',pageLinksId:'network-proxiesPagination'">
721 <div id="network-proxiesPagination"></div>
723 <div id="network-proxies-edit" class="tab-pane" data-bind='template: {name:"network-proxy-edit-tmpl"}'></div>
728 <script id='ko-network-proxies-grid' type='text/html'>
731 {{each(i, columnDefinition) columns}}
732 <th>${ columnDefinition.headerText }</th>
734 <th>${$.i18n.prop('password')}</th>
735 <th>${$.i18n.prop('network.proxy.useNtlm')}</th>
736 <th>${$.i18n.prop('edit')}</th>
737 <th>${$.i18n.prop('delete')}</th>
738 <th>${$.i18n.prop('modified')}</th>
742 {{each(i, row) itemsOnCurrentPage()}}
743 <tr data-bind="css:{ 'modified': row.modified()}">
744 {{each(j, columnDefinition) columns}}
745 {{var val = (typeof columnDefinition.rowText == 'function' ? columnDefinition.rowText(row) : row[columnDefinition.rowText])}}
750 {{if row.password()}}
755 <td>${row.useNtlm()}</td>
757 <a href="#" data-bind="click: function(){ editNetworkProxy(row) }">
758 <span class="btn btn-primary">
759 <i class="icon-pencil icon-white"/>
764 <a href="#" data-bind="click: function(){ removeNetworkProxy(row) }">
765 <span class="btn btn-danger">
766 <i class="icon-trash icon-white"/>
770 {{if row.modified()}}
772 <a href="#" data-bind="click: function(){ updateNetworkProxy(row) }" class="btn btn-warning">${$.i18n.prop('save')}</a>
784 <script id="network-proxy-edit-tmpl" type='text/html'>
785 <form id="network-proxy-edit-form" class="well form-horizontal">
786 <fieldset id="network-proxy-edit-fieldset">
787 <div class="control-group">
788 <label class="control-label" for="id">${$.i18n.prop('id')}</label>
789 <div class="controls">
791 <span class="uneditable-input">${$data.networkProxy.id}</span>
793 <input type="text" class="xlarge" id="id" name="id" size="10"
794 data-bind="value: networkProxy.id,css:{'uneditable-input': update},readonly:update"/>
798 <div class="control-group">
799 <label class="control-label" for="protocol">${$.i18n.prop('protocol')}</label>
800 <div class="controls">
801 <input type="text" class="xlarge required" id="protocol" name="protocol" size="8"
802 data-bind="value: networkProxy.protocol"/>
805 <div class="control-group">
806 <label class="control-label" for="host">${$.i18n.prop('host')}</label>
807 <div class="controls">
808 <input type="text" class="xlarge required" id="host" name="host" size="15"
809 data-bind="value: networkProxy.host"/>
812 <div class="control-group">
813 <label class="control-label" for="port">${$.i18n.prop('port')}</label>
814 <div class="controls">
815 <input type="text" class="xlarge required digits" id="port" name="port" size="6"
816 data-bind="value: networkProxy.port"/>
819 <div class="control-group">
820 <label class="control-label" for="username">${$.i18n.prop('username')}</label>
821 <div class="controls">
822 <input type="text" class="xlarge" id="username" name="username" size="50"
823 data-bind="value: networkProxy.username"/>
826 <div class="control-group">
827 <label class="control-label" for="password">${$.i18n.prop('password')}</label>
828 <div class="controls">
829 <input type="password" class="xlarge" id="password" name="password" size="50"
830 data-bind="value: networkProxy.password"/>
833 <div class="control-group">
834 <label class="control-label" for="useNtlm">${$.i18n.prop('network.proxy.useNtlm')}</label>
835 <div class="controls">
836 <input type="checkbox" id="useNtlm" name="useNtlm" data-bind="checked: networkProxy.useNtlm"/>
841 <button id="network-proxy-btn-save" data-bind="click: save" class="btn">${$.i18n.prop('save')}</button>
842 {{if networkProxy.modified()}}
843 ${("#network-proxy-btn-save").button('reset')}
845 <button data-bind="click: displayGrid" class="btn">${$.i18n.prop('cancel')}</button>
849 <script id="network-proxies-bulk-save-tmpl" type='text/html'>
851 <a data-bind="click: updateModifiedNetworkProxies" class="btn btn-danger" href="#">${$.i18n.prop('save.all')}</a>
854 <script id="network-proxy-delete-warning-tmpl" type='text/html'>
856 <span class="label label-warning">${$.i18n.prop('warning.not.undone.operation')}</span>
860 <script id="proxyConnectorsMain" type="text/html">
861 <div class="page-header">
862 <h2><img src="images/preferences-system-network-proxy-32-32.png"/>${$.i18n.prop('proxy-connectors.list')}</h2>
865 <ul id="proxy-connectors-view-tabs" class="nav nav-tabs">
866 <li id="proxy-connectors-view-tabs-li-grid" class="active">
867 <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>
869 <li id="proxy-connectors-view-tabs-li-edit">
870 <a data-toggle="tab" href="#proxy-connectors-edit" id="proxy-connectors-view-tabs-a-edit">${$.i18n.prop('add')}</a>
872 <li id="proxy-connectors-view-tabs-li-edit-order">
873 <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>
876 <div id="proxy-connectors-view-tabs-content" class="tab-content">
877 <div id="proxy-connectors-view" class="tab-pane active">
878 <div id="proxy-connectors-bulk-save-btn" data-bind='template:{name:"proxy-connectors-bulk-save-tmpl"}'></div>
879 <table class="table table-striped table-bordered" id="proxyConnectorsTable"
880 data-bind="simpleGrid: gridViewModel,simpleGridTemplate:'ko-proxy-connectors-grid',pageLinksId:'proxy-connectorsPagination'">
882 <div id="proxy-connectorsPagination"></div>
884 <div id="proxy-connectors-edit" class="tab-pane"></div>
885 <div id="proxy-connector-edit-order" class="tab-pane span8">
886 <div id="proxy-connector-edit-order-managed-repository-div" data-bind='template:{name:"proxy-connector-edit-order-managed-repository-tmpl"}'></div>
887 <div id="proxy-connector-edit-order-div"
888 data-bind="sortable: { template: 'proxy-connector-edit-order-tmpl', data: proxyConnectors,afterMove: proxyConnectorMoved}">
895 <script id='ko-proxy-connectors-grid' type='text/html'>
898 <th title="${$.i18n.prop('proxy-connectors.grid.managedrepo.title')}">
899 ${$.i18n.prop('proxy-connectors.grid.managedrepo.grid.header')}
901 <th title="${$.i18n.prop('proxy-connectors.grid.remoterepo.title')}">
902 ${$.i18n.prop('proxy-connectors.grid.remoterepo.grid.header')}
904 <th>${$.i18n.prop('proxy-connectors.grid.remoterepo.settings.popover.title')}</th>
905 <th>${$.i18n.prop('edit')}</th>
906 <th>${$.i18n.prop('delete')}</th>
907 <th>${$.i18n.prop('save')}</th>
908 <th>${$.i18n.prop('proxy-connectors.grid.header.order')}</th>
912 {{each(i, row) itemsOnCurrentPage()}}
913 <tr data-bind="css:{ 'modified': row.modified()}">
914 <td>${row.sourceRepoId()}</td>
915 <td>${row.targetRepoId()}</td>
917 <a class="btn btn-info btn-mini" id="proxy-connectors-grid-remoterepo-settings-edit-${row.sourceRepoId()}-${row.targetRepoId()}"
918 data-original-title="${$.i18n.prop('proxy-connectors.grid.remoterepo.settings.popover.title')}"
919 data-content="${buildSettings(row)}" data-bind="click: showSettings" data-html="true">
920 <i class="icon-question-sign icon-white"></i>
925 <a data-bind="click: function(){ editProxyConnector(row)}" href="#">
926 <span class="btn btn-primary">
927 <i class="icon-pencil icon-white"/>
932 <a href="#" data-bind="click: function(){ deleteProxyConnector(row)}">
933 <span class="btn btn-danger">
934 <i class="icon-trash icon-white"/>
939 {{if row.modified()}}
940 <a href="#" class="btn btn-warning" data-bind="click: function(){ updateProxyConnector(row)}">
941 ${$.i18n.prop('save')}
946 {{if orderChangeAware(row)}}
947 <a href="#" data-bind="click: function(){ displayOrderEdit(row)}">
948 <span class="btn btn-info">
949 <i class="icon-resize-vertical icon-white"/>
950 ${$.i18n.prop('proxy-connectors.order.edit')}
954 <span class="badge badge-info">${row.order()}</span>
960 <div id="proxy-connectors-grid-remoterepo-settings-content-${val}-${targetRepoId}" style="display:none"></div>
963 <script id='proxy-connectors-remote-settings-popover-tmpl' type='text/html'>
966 ${$.i18n.prop('proxy-connectors.remoterepo.settings.networkproxy')}: ${proxyConnector.proxyId}
968 ${$.i18n.prop('proxy-connectors.remoterepo.settings.networkproxy')}: ${$.i18n.prop('none')}
970 <table class="table table-bordered">
972 <th colspan="2">${$.i18n.prop('proxy-connector.policies')}</th>
975 {{each(i, entry) proxyConnector.policiesEntries}}
976 {{var name = proxyConnectorsViewModel.findPolicyInformationName(entry.key)}}
979 <td>${entry.value}</td>
987 <script id="proxy-connector-edit-form-tmpl" type='text/html'>
989 <form id="proxy-connector-edit-form" class="well form-horizontal">
990 <fieldset id="remote-repository-edit-fieldset">
991 <div class="control-group">
992 <label class="control-label" for="proxyId">${$.i18n.prop('proxy-connector.network-proxy.id')}</label>
993 <div class="controls">
995 data-bind="options: proxyConnectorsViewModel.networkProxies, optionsText: 'id',optionsValue:'id',
996 value: proxyConnector.proxyId, optionsCaption: 'direct connection'"></select>
999 <div class="control-group">
1000 <label class="control-label" for="proxyId">${$.i18n.prop('proxy-connector.managed.repository.id')}</label>
1001 <div class="controls">
1002 <select id="sourceRepoId"
1003 data-bind="options: proxyConnectorsViewModel.managedRepositories, optionsText: 'id',optionsValue:'id',
1004 value: proxyConnector.sourceRepoId,attr: {disabled: isUpdate() }"></select>
1007 <div class="control-group">
1008 <label class="control-label" for="proxyId">${$.i18n.prop('proxy-connector.remote.repository.id')}</label>
1009 <div class="controls">
1010 <select id="targetRepoId"
1011 data-bind="options: proxyConnectorsViewModel.remoteRepositories, optionsText: 'id',optionsValue:'id',
1012 value: proxyConnector.targetRepoId,attr: {disabled: isUpdate() }"></select>
1015 <div class="row-fluid">
1016 <div class="control-group span6">
1017 <table class="table">
1019 <th colspan="2">${$.i18n.prop('proxy-connector.policies')}</th>
1021 <tbody data-bind="foreach: proxyConnectorsViewModel.policyInformations()">
1023 <td data-bind="text: name"></td>
1025 <select data-bind="options: getPolicyOptions(id()),value:getSelectedPolicyOption(id()),
1026 attr: { id: 'policy-'+id() },event: { change: function(){ changePolicyOption(id())},}">
1034 <div class="row-fluid">
1035 <div class="control-group span6">
1036 <h4>${$.i18n.prop('proxy-connector.properties')}</h4>
1037 <table class="table">
1039 <th><input type="text" id="property-key"/></th>
1040 <th><input type="text" id="property-value"/></th>
1041 <th><a href="#" data-bind="click: function(){ addProperty() }">${$.i18n.prop('add')}</a></th>
1043 <tbody data-bind="foreach: proxyConnector.propertiesEntries">
1045 <td data-bind="text: key"></td>
1046 <td data-bind="text: value"></td>
1047 <td><a href="#" data-bind="click: function(){ $parent.deleteProperty(key)}">${$.i18n.prop('delete')}</a></td>
1053 <div class="row-fluid">
1054 <div class="control-group span6">
1055 <h4>${$.i18n.prop('proxy-connector.blacklist')}</h4>
1056 <table class="table">
1058 <th><input type="text" id="blacklist-value"/></th>
1059 <th><a href="#" data-bind="click: function(){ addBlacklistPattern() }">${$.i18n.prop('add')}</a></th>
1061 <tbody data-bind="foreach: proxyConnector.blackListPatterns">
1063 <td data-bind="text: $data"></td>
1064 <td><a href="#" data-bind="click: function(){removeBlacklistPattern($data)}">${$.i18n.prop('delete')}</a></td>
1070 <div class="row-fluid">
1071 <div class="control-group span6">
1072 <h4>${$.i18n.prop('proxy-connector.whitelist')}</h4>
1073 <table class="table">
1075 <th><input type="text" id="whitelist-value"/></th>
1076 <th><a href="#" data-bind="click: function(){ addWhitelistPattern() }">${$.i18n.prop('add')}</a></th>
1078 <tbody data-bind="foreach: proxyConnector.whiteListPatterns">
1080 <td data-bind="text: $data"></td>
1081 <td><a href="#" data-bind="click: function(){removeWhitelistPattern($data)}">${$.i18n.prop('delete')}</a></td>
1089 <button id="proxy-connector-btn-save" data-bind="click: save" data-loading-text="${$.i18n.prop('common.loading')}" class="btn">${$.i18n.prop('save')}</button>
1091 ${("#network-proxy-btn-save").button('reset')}
1093 <button data-bind="click: displayGrid" class="btn">${$.i18n.prop('cancel')}</button>
1098 <script id="proxy-connectors-bulk-save-tmpl" type='text/html'>
1100 <a data-bind="click: updateModifiedProxyConnectors" class="btn btn-danger" href="#">${$.i18n.prop('save.all')}</a>
1104 <script id="proxy-connector-edit-order-tmpl" type='text/html'>
1105 <div class="well draggable-item network-proxy-remote-item">
1106 {{var remoteRepository=$parent.findRemoteRepository(targetRepoId)}}
1107 <div class="row-fluid">
1109 <img src="images/system-software-update-32-32.png"/>
1111 <img src="images/utilities-system-monitor-22-22.png"
1112 id="proxy-connectors-order-remoterepo-settings-edit-${sourceRepoId()}-${targetRepoId()}"
1113 data-original-title="${$.i18n.prop('proxy-connectors.grid.remoterepo.settings.popover.title')}"
1114 data-bind="event: { mouseover: function(){ displaySettings(sourceRepoId(),targetRepoId())},}">
1115 <div id="proxy-connectors-order-remoterepo-settings-content-${sourceRepoId()}-${targetRepoId()}"
1116 style="display:none"></div>
1118 <div class="span6 pull-left">
1122 ${remoteRepository.name()} (<a href="${remoteRepository.url()}" target="_blank">${remoteRepository.url()}</a>)
1126 <span class="badge badge-info">${order}</span>
1132 <script id="proxy-connector-edit-order-managed-repository-tmpl" type="text/html">
1133 <div class="well row-fluid">
1135 <img src="images/applications-internet-32-32.png"/>
1139 ${managedRepository.id}
1141 ${managedRepository.name}
1145 {{if proxyConnectorsViewModel.bulkSave()}}
1147 <a data-bind="click: function(){updateModifiedProxyConnectors()}"
1148 href="#" class="btn btn-warning">${$.i18n.prop('save.all')}</a></p>
1154 <script id="proxy-connector-delete-warning-tmpl" type='text/html'>
1156 <span class="label label-warning">${$.i18n.prop('warning.not.undone.operation')}</span>
1160 <script id="repositoryGroupsMain" type="text/html">
1161 <div class="page-header">
1162 <h2><img src="images/applications-internet-2-32-32.png"/>${$.i18n.prop('repository.groups.list')}</h2>
1164 <ul id="repository-groups-view-tabs" class="nav nav-tabs">
1165 <li id="repository-groups-view-tabs-li-grid" class="active">
1166 <a data-toggle="tab" href="#repository-groups-view" id="repository-groups-view-tabs-a-network-proxies-grid">
1167 ${$.i18n.prop('repository-groups.grid.tab.title')}
1170 <li id="repository-groups-view-tabs-li-edit">
1171 <a data-toggle="tab" href="#repository-groups-edit" id="repository-groups-view-tabs-a-edit">${$.i18n.prop('add')}</a>
1175 <div id="repository-groups-view-tabs-content" class="tab-content">
1176 <div id="repository-groups-view" class="tab-pane active">
1177 <div id="repository-groups-table" data-bind='template:{name:"repository-groups-table-tmpl"}'>
1180 <div id="repository-groups-edit" class="tab-pane">
1181 <div class="row-fluid">
1182 <div class="span6 dotted">
1183 <div id="repository-groups-edit-div" data-bind='template:{name:"repository-group-edit-tmpl"}'></div>
1184 <div id="repository-groups-edit-order-div" style="min-height: 80px"
1185 data-bind="sortable: { template: 'repository-group-edit-order-tmpl-choosed',data:repositoryGroup.managedRepositories,afterMove:repositoryMoved}">
1189 <div class="span6 dotted">
1190 <h5>${$.i18n.prop('repository.groups.available.repositories')}</h5>
1192 <div id="repository-groups-edit-available-repositories" style="min-height: 80px"
1193 data-bind="sortable: { template: 'repository-group-edit-order-tmpl-available',data:availableRepositories,afterMove:repositoryMoved}">
1205 <script id="repository-group-edit-order-tmpl-choosed" type="text/html">
1206 <div class="well draggable-item">
1207 <span class="pull-right">
1208 <i class="icon-minus-sign cursor-hand" id="minus-${$data.id()}"/>
1215 <a href="${$data.url}" target="_blank">
1224 <script id="repository-group-edit-order-tmpl-available" type="text/html">
1225 <div class="well draggable-item">
1226 <span class="pull-right">
1227 <i class="icon-plus-sign cursor-hand" id="plus-${$data.id()}"/>
1234 <a href="${$data.url}" target="_blank">
1243 <script id="repository-groups-table-tmpl" type="text/html">
1244 <table class="table table-striped table-bordered">
1246 <th>${$.i18n.prop('repository.groups.groups.grid.header')}</th>
1247 <th>${$.i18n.prop('repository.groups.repositories.grid.header')}</th>
1248 <th>${$.i18n.prop('edit')}</th>
1249 <th>${$.i18n.prop('delete')}</th>
1250 <th>${$.i18n.prop('save')}</th>
1253 {{each(i, repositoryGroup) repositoryGroups}}
1254 <tr data-bind="css:{ 'modified': repositoryGroup.modified()}">
1255 <td>${repositoryGroup.id}</td>
1258 {{each(j,id) repositoryGroup.repositories()}}
1264 <a href="#" data-bind="click: function(){editRepositoryGroup(repositoryGroup)}">
1265 <span class="btn btn-primary">
1266 <i class="icon-pencil icon-white"/>
1271 <a href="#" data-bind="click: function(){deleteRepositoryGroup(repositoryGroup)}">
1272 <span class="btn btn-danger">
1273 <i class="icon-trash icon-white"/>
1278 {{if repositoryGroup.modified()}}
1279 <a href="#" class="btn btn-warning" data-bind="click: function(){saveRepositoryGroup(repositoryGroup)}">
1280 ${$.i18n.prop('save')}
1290 <script id="repository-group-edit-tmpl" type="text/html">
1291 <div class="row-fluid">
1293 <div class="dotted span8">
1295 ${repositoryGroup.id}
1297 <a href="${window.archivaRuntimeInfo.baseUrl}/repository/${repositoryGroup.id()}" target="_blank">
1298 ${applicationUrl}/repository/${repositoryGroup.id()}
1303 <div class="dotted span8">
1304 <form id="repository-group-edit-form" class="well">
1305 <fieldset id="repository-group-edit-fieldset">
1306 <div class="control-group">
1307 <label class="control-label" for="id">${$.i18n.prop('id')}</label>
1308 <div class="controls">
1309 <input type="text" class="input-medium required" id="id" name="id" size="15"
1310 data-bind="value: repositoryGroup.id,css:{'uneditable-input': update},readonly:update"/>
1317 {{if repositoryGroup.modified()}}
1319 <a href="#" class="btn btn-warning" data-loading-text="${$.i18n.prop('common.loading')}" id="repository-group-save" data-bind="click: function(){saveRepositoryGroup(repositoryGroup)}">${$.i18n.prop('save')}</a>
1328 <script id="repository-group-delete-warning-tmpl" type='text/html'>
1330 <span class="label label-warning">${$.i18n.prop('warning.not.undone.operation')}</span>
1335 <script id="merge-repo-dialog-content" type="text/html">
1336 <div class="btn-group btn-group-vertical">
1337 {{each(i, repository) repositories}}
1338 <button class="btn" type="button" onclick="mergeRepositories(encodeURIComponent('${sourceRepoId}'),encodeURIComponent('${repository.id()}'))">${repository.name()}</button>
1343 <script id="merge-repo-skip-conflicts" type="text/html">
1346 {{each(i, artifact) artifacts}}
1347 <li>${artifact.groupId}:${artifact.artifactId}:${artifact.version}</li>
1352 <button class="btn btn-success" onclick="doMerge(encodeURIComponent('${sourceRepository}'),encodeURIComponent('${targetRepository}'),false);" type="button">${$.i18n.prop('managedrepository.merge.domerge')}</button>
1353 {{if artifacts.length > 0}}
1354 <button class="btn btn-warning" onclick="doMerge(encodeURIComponent('${sourceRepository}'),encodeURIComponent('${targetRepository}'),true);" type="button">${$.i18n.prop('managedrepository.merge.domerge.skipconflicts')}</button>
1360 <script id="proxyConnectorsRulesMain" type="text/html">
1361 <div class="page-header">
1362 <h2>${$.i18n.prop('proxy-connector-rules.list')}</h2>
1365 <ul id="proxy-connectors-rules-view-tabs" class="nav nav-tabs">
1366 <li id="proxy-connectors-rules-view-tabs-li-grid" class="active">
1367 <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>
1369 <li id="proxy-connectors-rules-view-tabs-li-edit">
1370 <a data-toggle="tab" href="#proxy-connector-rules-edit" id="proxy-connectors-rules-view-tabs-a-edit">${$.i18n.prop('add')}</a>
1373 <div id="proxy-connectors-rules-view-tabs-content" class="tab-content">
1374 <div id="proxy-connector-rules-view" class="tab-pane active">
1375 <div id="proxy-connectors-rules-view-tabs-bulk-save-btn" data-bind='template:{name:"proxy-connectors-rules-view-tabs-bulk-save-tmpl"}'></div>
1376 <table class="table table-striped table-bordered" id="proxy-connectors-rules-view-tabsTable"
1377 data-bind="simpleGrid: gridViewModel,simpleGridTemplate:'ko-proxy-connectors-rules-grid',pageLinksId:'proxy-connectors-rules-pagination'">
1379 <div id="proxy-connectors-rules-view-tabs-pagination"></div>
1381 <div id="proxy-connector-rules-edit" class="tab-pane">
1382 <div class="row-fluid">
1383 <div class="span6 dotted">
1384 <div id="proxy-connectors-rules-edit-div" data-bind='template:{name:"proxy-connectors-rules-edit-tmpl"}'></div>
1385 <div id="proxy-connectors-rules-edit-order-div" style="min-height: 80px"
1386 data-bind="sortable: { template: 'proxy-connectors-rules-edit-proxy-connectors-tmpl-choosen',data:proxyConnectorRule.proxyConnectors,afterMove:proxyConnectorMoved}">
1390 <div class="span6 dotted">
1391 <h5>${$.i18n.prop('proxy-connector-rules.available.proxyConnectors')}</h5>
1393 <div id="proxy-connectors-rules-available-proxy-connectors" style="min-height: 80px"
1394 data-bind="sortable: { template: 'proxy-connectors-rules-edit-proxy-connectors-tmpl-availables',data:availableProxyConnectors,afterMove:proxyConnectorMoved}">
1406 <script id='ko-proxy-connectors-rules-grid' type='text/html'>
1409 <th title="${$.i18n.prop('proxy-connector-rules.grid.pattern.title')}">
1410 ${$.i18n.prop('proxy-connector-rules.grid.pattern.header')}
1412 <th title="${$.i18n.prop('proxy-connector-rules.grid.type.title')}">
1413 ${$.i18n.prop('proxy-connector-rules.grid.type.header')}
1415 <th>${$.i18n.prop('proxy-connector-rules.grid.proxy-connectors.header')}</th>
1416 <th>${$.i18n.prop('edit')}</th>
1417 <th>${$.i18n.prop('delete')}</th>
1418 <th>${$.i18n.prop('save')}</th>
1422 {{each(i, row) itemsOnCurrentPage()}}
1423 <tr data-bind="css:{ 'modified': row.modified()}">
1424 <td>${row.pattern()}</td>
1425 <td><img src="${row.ruleType.image}" title="${row.ruleType.label}"></img></td>
1428 {{each(j,proxyConnector) row.proxyConnectors()}}
1429 <li>${proxyConnector.sourceRepoId()} <-> ${proxyConnector.targetRepoId()}</li>
1434 <a href="#" data-bind="click: function(){ editProxyConnectorRule(row) }">
1435 <span class="btn btn-primary" data-loading-text="${$.i18n.prop('common.loading')}">
1436 <i class="icon-pencil icon-white"/>
1441 <a data-bind="click: function(){ removeProxyConnectorRule(row) }" data-loading-text="${$.i18n.prop('common.loading')}">
1442 <span class="btn btn-danger" data-loading-text="${$.i18n.prop('common.loading')}">
1443 <i class="icon-trash icon-white"/>
1448 {{if row.modified()}}
1449 <a href="#" id="proxy-connector-rule-update-btn" class="btn btn-warning" data-loading-text="${$.i18n.prop('common.loading')}"
1450 data-bind="click: function(){ updateProxyConnectorRule(row) }">${$.i18n.prop('save')}</a>
1458 <script id="proxy-connectors-rules-view-tabs-bulk-save-tmpl" type="text/html">
1462 <script id="proxy-connectors-rules-edit-tmpl" type="text/html">
1463 <div class="row-fluid">
1465 <div class="dotted span8">
1467 ${proxyConnectorRule.pattern()}
1469 ${proxyConnectorRule.ruleType.label}
1473 <div class="dotted span8">
1474 <form id="proxy-connector-rule-edit-form" class="well">
1475 <fieldset id="proxy-connector-rule-edit-fieldset">
1476 <div class="control-group">
1477 <label class="control-label" for="id">${$.i18n.prop('proxy-connector-rule.pattern')}</label>
1478 <div class="controls">
1479 <input type="text" class="input-large required" id="pattern" name="pattern" size="15"
1480 data-bind="value:proxyConnectorRule.pattern,css:{'uneditable-input': update},readonly:update"/>
1483 <div class="control-group">
1484 <label class="control-label" for="layout">${$.i18n.prop('type')}</label>
1485 <div class="controls">
1486 <select id="proxy-connector-rule-pattern-type"
1487 data-bind="options: proxyConnectorRulesViewModel.ruleTypes,optionsText: 'label',optionsValue:'type',value: proxyConnectorRule.proxyConnectorRuleType"/>
1495 <div class="span3" data-bind="visible: proxyConnectorRule.modified()">
1496 {{if update && proxyConnectorRule.modified()}}
1497 <a href="#" class="btn btn-warning" data-loading-text="${$.i18n.prop('common.loading')}"
1498 id="proxy-connector-rule-update-btn" data-bind="click: function(){updateProxyConnectorRule(proxyConnectorRule)}">${$.i18n.prop('update')}</a>
1500 <a href="#" class="btn btn-warning" data-loading-text="${$.i18n.prop('common.loading')}"
1501 id="proxy-connector-rule-add-btn" data-bind="click: function(){addProxyConnectorRule(proxyConnectorRule)}">${$.i18n.prop('add')}</a>
1510 <script id="proxy-connectors-rules-edit-proxy-connectors-tmpl-choosen" type="text/html">
1511 <div class="well draggable-item">
1512 <i class="icon-minus-sign cursor-hand pull-right" data-source-repoId="${$data.sourceRepoId()}" data-target-repoId="${$data.targetRepoId()}"/>
1514 ${$data.sourceRepoId()} <-> ${$data.targetRepoId()}
1520 <script id="proxy-connectors-rules-edit-proxy-connectors-tmpl-availables" type="text/html">
1521 <div class="well draggable-item">
1522 <i class="icon-plus-sign cursor-hand pull-right" data-source-repoId="${$data.sourceRepoId()}" data-target-repoId="${$data.targetRepoId()}"/>
1524 ${$data.sourceRepoId()} <-> ${$data.targetRepoId()}