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/x-jquery-tmpl">
20 <div class="page-header">
21 <h2>${$.i18n.prop('administration.repositories')}</h2>
24 <ul id="repositories-tabs" class="tabs">
26 <a href="#managed-repositories-content">${$.i18n.prop('managedrepositories.grid.head')}</a>
29 <a href="#remote-repositories-content">${$.i18n.prop('remoterepositories.grid.head')}</a>
32 <div class="tab-content">
33 <div id="managed-repositories-content" class="active">
34 <ul id="managed-repositories-pills" class="pills">
35 <li class="active" id="managed-repositories-view-li">
36 <a href="#managed-repositories-view">${$.i18n.prop('managedrepositories.grid.tab.title')}</a>
38 <li id="managed-repository-edit-li">
39 <a 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="active">
44 <table class="table table-striped table-bordered" id="managed-repositories-table"
45 data-bind="simpleGrid: gridViewModel,simpleGridTemplate:'ko_managed-repositoriesGrid',pageLinksId:'managed-repositoriesPagination',data:'managedRepositories'">
47 <div id="managed-repositoriesPagination"></div>
48 <div id="managed-repositories-pom-snippet"></div>
50 <div id="managed-repository-edit" data-bind='template: {name:"managed-repository-edit-tmpl"}'>
56 <div id="remote-repositories-content">
57 <ul id="remote-repositories-pills" class="pills">
58 <li class="active" id="remote-repositories-view-li">
59 <a href="#remote-repositories-view">${$.i18n.prop('remoterepositories.grid.tab.title')}</a>
61 <li id="remote-repository-edit-li">
62 <a href="#remote-repository-edit">${$.i18n.prop('add')}</a>
65 <div id="remote-repositories-tabs-content" class="pill-content">
66 <div id="remote-repositories-view" class="active">
67 <table class="table table-striped table-bordered" id="remote-repositories-table"
68 data-bind="simpleGrid: gridViewModel,simpleGridTemplate:'ko_remote-repositoriesGrid',pageLinksId:'remote-repositoriesPagination',data:'remoteRepositories'">
70 <div id="remote-repositoriesPagination"></div>
72 <div id="remote-repository-edit" data-bind='template: {name:"remote-repository-edit-tmpl"}'>
79 <script id='ko_managed-repositoriesGrid' type='text/x-jquery-tmpl'>
82 {{each(i, columnDefinition) columns}}
83 <th title="${ columnDefinition.title }">${ columnDefinition.headerText }</th>
88 <th>${$.i18n.prop('edit')}</th>
89 <th>${$.i18n.prop('delete')}</th>
90 <th>${$.i18n.prop('managedrepository.pomsnippet')}</th>
91 <th title="${$.i18n.prop('managedrepository.stats')}">Stats</th>
95 {{each(i, row) itemsOnCurrentPage()}}
97 {{each(j, columnDefinition) columns}}
98 <td>${ typeof columnDefinition.rowText == 'function' ? columnDefinition.rowText(row) : row[columnDefinition.rowText] }</td>
101 {{if row.releases() == true}}
102 <img src="images/weather-clear.png" title="${$.i18n.prop('release.included')}"/>
104 <img src="images/dialog-error.png" title="${$.i18n.prop('release.notincluded')}"/>
109 {{if row.snapshots() == true}}
110 <img src="images/weather-clear.png" title="${$.i18n.prop('snapshots.included')}"/>
112 <img src="images/dialog-error.png" title="${$.i18n.prop('snapshots.notincluded')}"/>
116 <a href="#" data-bind="click: function(){ scanNow(row) }">
117 <img src="images/view-refresh.png" title="${$.i18n.prop('managedrepository.scan.now')}"/>
120 <td><a href="#" data-bind="click: function(){ editManagedRepository(row) }">${$.i18n.prop('edit')}</a></td>
122 <a href="#" data-bind="click: function(){ removeManagedRepository(row) }">
123 <img src="images/edit-cut.png" title="${$.i18n.prop('delete')}"/>
126 <td><a href="#" data-bind="click: function(){ showPomSnippet(row) }">${$.i18n.prop('managedrepository.pomsnippet')}</a></td>
127 <td id="managedrepository-stats-${row.id()}">
128 <img src="images/utilities-system-monitor.png" popover-title="${$.i18n.prop('managedrepository.stats')}"
129 data-bind="event: { mouseover: function(){ showStats(row) }, mouseout: function(){ hideStats(row) },}"
130 id="managedrepository-stats-img-${row.id()}"/>
138 <script id="managed-repository-edit-tmpl" type='text/x-jquery-tmpl'>
139 <form id="managed-repository-edit-form">
140 <fieldset id="managed-repository-edit-fieldset">
141 <div class="clearfix">
142 <label for="id">${$.i18n.prop('id')}</label>
145 <span class="uneditable-input">${$data.managedRepository.id}</span>
147 <input type="text" class="xlarge required" id="id" name="id" size="50"
148 data-bind="value: managedRepository.id,css:{'uneditable-input': update},readonly:update"/>
152 <div class="clearfix">
153 <label for="name">${$.i18n.prop('name')}</label>
155 <input type="text" class="xlarge required" id="name" name="name" size="50"
156 data-bind="value: managedRepository.name"/>
159 <div class="clearfix">
160 <label for="location">${$.i18n.prop('directory')}</label>
162 <input type="text" class="xlarge required" id="location" name="location" size="50" data-bind="value: managedRepository.location"/>
165 <div class="clearfix">
166 <label for="indexDirectory">${$.i18n.prop('index.directory')}</label>
168 <input type="text" class="xlarge" id="indexDirectory" name="indexDirectory" size="50" data-bind="value: managedRepository.indexDirectory"/>
171 <div class="clearfix">
172 <label for="layout">${$.i18n.prop('type')}</label>
174 <select id="layout" data-bind="options: availableLayouts,optionsText: 'label',optionsValue:'type',value: managedRepository.layout"/>
177 <div class="clearfix">
178 <label for="cronExpression">${$.i18n.prop('cronExpression')}</label>
180 <input type="text" id="cronExpression" class="required" name="cronExpression" size="40" data-bind="value: managedRepository.cronExpression"/>
183 <div class="clearfix">
184 <label for="daysOlder">${$.i18n.prop('daysOlder')}</label>
186 <input type="text" id="daysOlder" class="digits" name="daysOlder" size="5" data-bind="value: managedRepository.daysOlder"/>
189 <div class="clearfix">
190 <label for="retentionCount">${$.i18n.prop('retentionCount')}</label>
192 <input type="text" id="retentionCount" name="retentionCount" size="5" data-bind="value: managedRepository.retentionCount"/>
195 <div class="clearfix">
196 <label for="releases">${$.i18n.prop('releases')}</label>
198 <input type="checkbox" id="releases" name="releases" size="5" data-bind="checked: managedRepository.releases"/>
201 <div class="clearfix">
202 <label for="snapshots">${$.i18n.prop('snapshots')}</label>
204 <input type="checkbox" id="snapshots" name="snapshots" size="5" data-bind="checked: managedRepository.snapshots"/>
207 <div class="clearfix">
208 <label for="blockRedeployments">${$.i18n.prop('blockRedeployments')}</label>
210 <input type="checkbox" id="blockRedeployments" name="blockRedeployments" size="5" data-bind="checked: managedRepository.blockRedeployments"/>
213 <div class="clearfix">
214 <label for="scanned">${$.i18n.prop('scanned')}</label>
216 <input type="checkbox" id="scanned" name="scanned" size="5" data-bind="checked: managedRepository.scanned"/>
219 <div class="clearfix">
220 <label for="deleteReleasedSnapshots">${$.i18n.prop('deleteReleasedSnapshots')}</label>
222 <input type="checkbox" id="deleteReleasedSnapshots" name="deleteReleasedSnapshots" size="5"
223 data-bind="checked: managedRepository.deleteReleasedSnapshots"/>
226 <div class="clearfix">
227 <label for="stageRepoNeeded">${$.i18n.prop('stageRepoNeeded')}</label>
229 <input type="checkbox" id="stageRepoNeeded" name="stageRepoNeeded" size="5"
230 data-bind="checked: managedRepository.stageRepoNeeded"/>
234 <button data-bind="click: save" class="btn">${$.i18n.prop('save')}</button>
235 <button data-bind="click: displayGrid" class="btn">${$.i18n.prop('cancel')}</button>
239 <script id="managed-repository-delete-warning-tmpl" type='text/x-jquery-tmpl'>
241 <a class="close" href="#">×</a>
242 <div class="alert-message warning">
244 <strong>${$.i18n.prop('warning.not.undone.operation')}</strong>
248 <span><strong>${$.i18n.prop('managedrepository.delete.warning.message')}</strong>.</span>
249 <div>${$.i18n.prop('id')}: ${id()}</div>
250 <div>${$.i18n.prop('name')}: ${name()}</div>
253 ${$.i18n.prop('managedrepository.delete.content')}: <input type="checkbox" id="managedrepository-deletecontent">
258 <script id="managed-repository-location-warning-tmpl" type='text/x-jquery-tmpl'>
260 <a class="close" href="#">×</a>
261 <div class="alert-message warning">
263 <strong>${$.i18n.prop('managedrepository.location.already.exists')}</strong>
267 <span><strong>${$.i18n.prop('managedrepository.location.already.exists.warning.message')}</strong>.</span>
268 <div>${$.i18n.prop('id')}: ${id()}</div>
269 <div>${$.i18n.prop('name')}: ${name()}</div>
273 <script id="managed-repository-scan-now-modal-tmpl" type='text/x-jquery-tmpl'>
275 ${$.i18n.prop('managedrepository.scan.all')}: <input type="checkbox" id="managed-repository-scan-now-all">
278 <script id="managed-repository-stats-tmpl" type='text/x-jquery-tmpl'>
279 <div id="managedrepository-stats-${managedRepository.id()}-popover" style="display:none">
280 <div>${$.i18n.prop('managedrepository.stats.endTime')}: ${scanEndTime()}</div>
281 <div>${$.i18n.prop('managedrepository.stats.duration')}: ${duration()}ms</div>
282 <div>${$.i18n.prop('managedrepository.stats.totalFileCount')}: ${totalFileCount()}</div>
283 <div>${$.i18n.prop('managedrepository.stats.newFileCount')}: ${newFileCount()}</div>
286 <script id="pom-snippet-tmpl" type='text/x-jquery-tmpl'>
287 <div class="page-header">
288 <h2>POM Snippet</h2></div>
290 <div><a href="#" onclick="$('#managed-repositories-pom-snippet').effect('blind')">${$.i18n.prop('hide')}</a></div>
296 <script id='ko_remote-repositoriesGrid' type='text/x-jquery-tmpl'>
299 {{each(i, columnDefinition) columns}}
300 <th title="${ columnDefinition.title }">${ columnDefinition.headerText }</th>
302 <th>${$.i18n.prop('edit')}</th>
303 <th>${$.i18n.prop('delete')}</th>
304 <th>${$.i18n.prop('remoterepository.downloadremoteindex')}</th>
308 {{each(i, row) itemsOnCurrentPage()}}
310 {{each(j, columnDefinition) columns}}
311 <td>${ typeof columnDefinition.rowText == 'function' ? columnDefinition.rowText(row) : row[columnDefinition.rowText] }</td>
314 <a href="#" data-bind="click: function(){ editRemoteRepository(row) }">${$.i18n.prop('edit')}</a>
317 <a href="#" data-bind="click: function(){ removeRemoteRepository(row) }">
318 <img src="images/edit-cut.png" title="${$.i18n.prop('delete')}"/>
322 <a href="#" data-bind="click: function(){ scheduleDownloadRemoteIndex(row) }">
323 <img src="images/view-refresh.png" title="${$.i18n.prop('remoterepository.downloadremoteindex.now')}"/>
333 <script id="remote-repository-edit-tmpl" type='text/x-jquery-tmpl'>
334 <form id="remote-repository-edit-form">
335 <fieldset id="remote-repository-edit-fieldset">
336 <div class="clearfix">
337 <label for="name">${$.i18n.prop('id')}</label>
340 <span class="uneditable-input">${$data.remoteRepository.id}</span>
342 <input type="text" class="xlarge required" id="id" name="id" size="50"
343 data-bind="value: remoteRepository.id,css:{'uneditable-input': update},readonly:update"/>
347 <div class="clearfix">
348 <label for="name">${$.i18n.prop('name')}</label>
350 <input type="text" class="xlarge required" id="name" name="name" size="50"
351 data-bind="value: remoteRepository.name"/>
354 <div class="clearfix">
355 <label for="url">${$.i18n.prop('url')}</label>
357 <input type="text" class="xlarge required" id="url" name="location" size="50" data-bind="value: remoteRepository.url"/>
360 <div class="clearfix">
361 <label for="userName">${$.i18n.prop('username')}</label>
363 <input type="text" class="xlarge" id="userName" name="userName" size="50" data-bind="value: remoteRepository.indexDirectory"/>
366 <div class="clearfix">
367 <label for="password">${$.i18n.prop('password')}</label>
369 <input type="password" class="xlarge" id="password" name="password" size="50" data-bind="value: remoteRepository.password"/>
372 <div class="clearfix">
373 <label for="timeout">${$.i18n.prop('timeout')}</label>
375 <input type="text" id="timeout" class="digits" name="daysOlder" size="5" data-bind="value: remoteRepository.timeout"/>
379 <div class="clearfix">
380 <label for="layout">${$.i18n.prop('type')}</label>
382 <select id="layout" data-bind="options: availableLayouts,optionsText: 'label',optionsValue:'type',value: remoteRepository.layout"/>
385 <div class="clearfix">
386 <label for="downloadRemoteIndex">${$.i18n.prop('downloadRemoteIndex')}</label>
388 <input type="checkbox" id="downloadRemoteIndex" name="downloadRemoteIndex" size="5" data-bind="checked: remoteRepository.downloadRemoteIndex"/>
392 <div class="clearfix">
393 <label for="remoteIndexUrl">${$.i18n.prop('remoteIndexUrl')}</label>
395 <input type="text" id="remoteIndexUrl" name="remoteIndexUrl" size="5" data-bind="value: remoteRepository.remoteIndexUrl"/>
398 <div class="clearfix">
399 <label for="cronExpression">${$.i18n.prop('cronExpression')}</label>
401 <input type="text" id="cronExpression" name="cronExpression" size="40" data-bind="value: remoteRepository.cronExpression"/>
404 <div class="clearfix">
405 <label for="indexDirectory">${$.i18n.prop('index.directory')}</label>
407 <input type="text" class="xlarge" id="indexDirectory" name="indexDirectory" size="50" data-bind="value: remoteRepository.indexDirectory"/>
410 <div class="clearfix">
411 <label for="remoteDownloadTimeout">${$.i18n.prop('remoteDownloadTimeout')}</label>
413 <input type="text" id="remoteDownloadTimeout" class="digits" name="remoteDownloadTimeout" size="5"
414 data-bind="value: remoteRepository.remoteDownloadTimeout"/>
418 <div class="clearfix">
419 <label for="remoteDownloadNetworkProxyId">${$.i18n.prop('remoteDownloadNetworkProxyId')}</label>
421 <select id="remoteDownloadNetworkProxyId" data-bind="options: networkProxies, optionsText: 'id',optionsValue:'id', value: remoteRepository.remoteDownloadNetworkProxyId, optionsCaption: 'Choose...'"></select>
426 <div class="clearfix">
427 <label for="downloadRemoteIndexOnStartup">${$.i18n.prop('downloadRemoteIndexOnStartup')}</label>
429 <input type="checkbox" id="downloadRemoteIndexOnStartup" name="downloadRemoteIndexOnStartup"
430 data-bind="checked: remoteRepository.downloadRemoteIndexOnStartup"/>
435 <button data-bind="click: save" class="btn">${$.i18n.prop('save')}</button>
436 <button data-bind="click: displayGrid" class="btn">${$.i18n.prop('cancel')}</button>
440 <script id="remote-repository-scan-modal-tmpl" type='text/x-jquery-tmpl'>
442 ${$.i18n.prop('remoterepository.scan.now')}: <input type="checkbox" id="remoterepository-scan-now">
445 ${$.i18n.prop('remoterepository.scan.full')}: <input type="checkbox" id="remoterepository-scan-full">