You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2012/01/16 11:28:20 UTC

svn commit: r1231899 - in /archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva: repositories.js templates/repositories.html utils.js

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