Author: olamy
Date: Mon Jan 16 10:28:19 2012
New Revision: 1231899
URL: http://svn.apache.org/viewvc?rev=1231899&view=rev
Log:
[MRM-1574] managed repository update.
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/repositories.js
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/repositories.html
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/repositories.js
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/repositories.js?rev=1231899&r1=1231898&r2=1231899&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/repositories.js
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/repositories.js
Mon Jan 16 10:28:19 2012
@@ -67,17 +67,65 @@ $(function() {
this.stageRepoNeeded=ko.observable(stageRepoNeeded);
}
+ ManagedRepositoryViewModel=function(managedRepository, update){
+ this.managedRepository=ko.observable(managedRepository);
+ this.update = update;
+
+ save=function(){
+ $.log("save:"+this.managedRepository().name());
+ clearUserMessages();
+
$.ajax("restServices/archivaServices/managedRepositoriesService/updateManagedRepository",
+ {
+ type: "POST",
+ contentType: 'application/json',
+ data: "{\"managedRepository\": " +
ko.toJSON(this.managedRepository)+"}",
+ dataType: 'json',
+ success: function(data) {
+ displaySuccessMessage($.i18n.prop('managedrepository.updated'));
+ },
+ error: function(data) {
+ displayErrorMessage(data);
+ }
+ }
+ );
+
+ }
+
+ displayGrid=function(){
+ activateManagedRepositoriesGridTab();
+ }
+
+ }
+
ManagedRepositoriesViewModel=function(){
this.managedRepositories=ko.observableArray(new Array());
this.gridViewModel = null;
editManagedRepository=function(managedRepository){
- $.log(managedRepository.name());
+ var viewModel = new ManagedRepositoryViewModel(managedRepository,true);
+ ko.applyBindings(viewModel,$("#main-content
#managed-repository-edit").get(0));
+ activateManagedRepositoryEditTab();
+ $("#managed-repository-edit-li a").html($.i18n.prop('edit'));
}
}
+ activateManagedRepositoriesGridTab=function(){
+ $("#main-content #managed-repository-edit-li").removeClass("active");
+ $("#main-content #managed-repository-edit").removeClass("active");
+ // activate roles grid tab
+ $("#main-content #managed-repositories-view-li").addClass("active");
+ $("#main-content #managed-repositories-view").addClass("active");
+ }
+
+ activateManagedRepositoryEditTab=function(){
+ $("#main-content #managed-repositories-view-li").removeClass("active");
+ $("#main-content #managed-repositories-view").removeClass("active");
+ // activate role edit tab
+ $("#main-content #managed-repository-edit-li").addClass("active");
+ $("#main-content #managed-repository-edit").addClass("active");
+ }
displayRepositoriesGrid=function(){
clearUserMessages();
@@ -111,6 +159,7 @@ $(function() {
{
headerText: $.i18n.prop('type'),
rowText: "layout",
+ // FIXME i18n
title: "Repository type (default is Maven 2)"
}
],
@@ -121,6 +170,7 @@ $(function() {
$("#managed-repositories-view").addClass("active");
removeMediumSpinnerImg("#main-content
#managed-repositories-content");
$("#main-content #managed-repositories-table [title]").twipsy();
+ activateManagedRepositoriesGridTab();
}
}
);
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/repositories.html
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/repositories.html?rev=1231899&r1=1231898&r2=1231899&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/repositories.html
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/repositories.html
Mon Jan 16 10:28:19 2012
@@ -46,7 +46,9 @@
</table>
<div id="managed-repositoriesPagination"></div>
</div>
- <div id="managed-repository-edit">edit</div>
+ <div id="managed-repository-edit" data-bind='template:
{name:"managed-repository-edit-tmpl"}'>
+
+ </div>
</div>
</div>
@@ -95,4 +97,97 @@
{{/each}}
</tbody>
+</script>
+
+<script id="managed-repository-edit-tmpl" type='text/x-jquery-tmpl'>
+ <form id="managed-repository-edit-form">
+ <fieldset id="managed-repository-edit-fieldset">
+ <div class="clearfix">
+ <label for="name">${$.i18n.prop('id')}</label>
+ <div class="input">
+ {{if update}}
+ <span
class="uneditable-input">${$data.managedRepository().id}</span>
+ {{else}}
+ <input type="text" class="xlarge" id="id" name="id" size="50"
class="required"
+ data-bind="value:
managedRepository().id,css:{'uneditable-input': update},readonly:update"/>
+ {{/if}}
+ </div>
+ </div>
+ <div class="clearfix">
+ <label for="name">${$.i18n.prop('name')}</label>
+ <div class="input">
+ <input type="text" class="xlarge" id="name" name="name" size="50"
class="required"
+ data-bind="value: managedRepository().name"/>
+ </div>
+ </div>
+ <div class="clearfix">
+ <label for="location">${$.i18n.prop('directory')}</label>
+ <div class="input">
+ <input type="text" class="xlarge" id="location" name="location"
size="50" class="required" data-bind="value: managedRepository().location"/>
+ </div>
+ </div>
+ <div class="clearfix">
+ <label for="indexDirectory">${$.i18n.prop('index.directory')}</label>
+ <div class="input">
+ <input type="text" class="xlarge" id="indexDirectory"
name="indexDirectory" size="50" data-bind="value:
managedRepository().indexDirectory"/>
+ </div>
+ </div>
+ <div class="clearfix">
+ <label for="cronExpression">${$.i18n.prop('cronExpression')}</label>
+ <div class="input">
+ <input type="text" id="cronExpression" name="daysOlder" size="40"
data-bind="value: managedRepository().cronExpression"/>
+ </div>
+ </div>
+ <div class="clearfix">
+ <label for="daysOlder">${$.i18n.prop('daysOlder')}</label>
+ <div class="input">
+ <input type="text" id="daysOlder" name="daysOlder" size="5"
data-bind="value: managedRepository().daysOlder"/>
+ </div>
+ </div>
+ <div class="clearfix">
+ <label for="retentionCount">${$.i18n.prop('retentionCount')}</label>
+ <div class="input">
+ <input type="text" id="retentionCount" name="retentionCount"
size="5" data-bind="value: managedRepository().retentionCount"/>
+ </div>
+ </div>
+ <div class="clearfix">
+ <label for="releases">${$.i18n.prop('releases')}</label>
+ <div class="input">
+ <input type="checkbox" id="releases" name="releases" size="5"
data-bind="checked: managedRepository().releases"/>
+ </div>
+ </div>
+ <div class="clearfix">
+ <label for="snapshots">${$.i18n.prop('snapshots')}</label>
+ <div class="input">
+ <input type="checkbox" id="snapshots" name="snapshots" size="5"
data-bind="checked: managedRepository().snapshots"/>
+ </div>
+ </div>
+ <div class="clearfix">
+ <label
for="blockRedeployments">${$.i18n.prop('blockRedeployments')}</label>
+ <div class="input">
+ <input type="checkbox" id="blockRedeployments"
name="blockRedeployments" size="5" data-bind="checked:
managedRepository().blockRedeployments"/>
+ </div>
+ </div>
+ <div class="clearfix">
+ <label for="scanned">${$.i18n.prop('scanned')}</label>
+ <div class="input">
+ <input type="checkbox" id="scanned" name="scanned" size="5"
data-bind="checked: managedRepository().scanned"/>
+ </div>
+ </div>
+ <div class="clearfix">
+ <label
for="deleteReleasedSnapshots">${$.i18n.prop('deleteReleasedSnapshots')}</label>
+ <div class="input">
+ <input type="checkbox" id="deleteReleasedSnapshots"
name="deleteReleasedSnapshots" size="5" data-bind="checked:
managedRepository().deleteReleasedSnapshots"/>
+ </div>
+ </div>
+ <div class="clearfix">
+ <label
for="stageRepoNeeded">${$.i18n.prop('stageRepoNeeded')}</label>
+ <div class="input">
+ <input type="checkbox" id="stageRepoNeeded" name="stageRepoNeeded"
size="5" data-bind="checked: managedRepository().stageRepoNeeded"/>
+ </div>
+ </div>
+ </fieldset>
+ <button data-bind="click: save"
class="btn">${$.i18n.prop('save')}</button>
+ <button data-bind="click: displayGrid"
class="btn">${$.i18n.prop('cancel')}</button>
+ </form>
</script>
\ No newline at end of file
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js?rev=1231899&r1=1231898&r2=1231899&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js
Mon Jan 16 10:28:19 2012
@@ -217,4 +217,16 @@ $.extend($.tmpl.tag, {
"var": {
open: "var $1;"
}
-});
\ No newline at end of file
+});
+
+displayRestError=function(data,idToAppend){
+ if (data.archivaRestError){
+ if (data.archivaRestError.errorKey){
+ displayErrorMessage($.i18n.prop( data.archivaRestError.errorKey
),idToAppend);
+ } else {
+ displayErrorMessage(data.archivaRestError.errorMessage,idToAppend);
+ }
+ } else {
+ // redback ??
+ }
+}
\ No newline at end of file