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/02/09 00:56:29 UTC

svn commit: r1242183 - in /archiva/trunk/archiva-modules/archiva-web: archiva-web-common/src/main/resources/org/apache/archiva/i18n/ archiva-webapp-js/src/main/webapp/js/ archiva-webapp-js/src/main/webapp/js/archiva/ archiva-webapp-js/src/main/webapp/j...

Author: olamy
Date: Wed Feb  8 23:56:29 2012
New Revision: 1242183

URL: http://svn.apache.org/viewvc?rev=1242183&view=rev
Log:
[MRM-1576] rewrite proxies connector page
fix proxyConnector properties ui binding.

Removed:
    archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/jquery-1.7.js
Modified:
    archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties
    archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/proxy-connectors.js
    archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/proxy-connectors.html

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties?rev=1242183&r1=1242182&r2=1242183&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties Wed Feb  8 23:56:29 2012
@@ -126,3 +126,16 @@ roles.management.header=Roles Management
 roles.grid.tab.title=Roles
 role.edit.users.list=Users List
 
+#proxy connector
+proxy-connector.network-proxy.id=Network Proxy
+proxy-connector.managed.repository.id=Managed Repository
+proxy-connector.remote.repository.id=Remote Repository
+proxy-connector.policies=Policies
+proxy-connector.properties=Properties
+proxy-connectors.grid.remoterepo.grid.header=Remote Repositories
+proxy-connectors.list=Proxy Connectors
+proxy-connectors.grid.tab.title=Proxy Connectors
+proxy-connectors.grid.managedrepo.grid.header=Managed Repositories
+proxy-connectors.grid.remoterepo.title=Remote Repository
+proxy-connectors.grid.managedrepo.title=Managed Repository
+

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/proxy-connectors.js
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/proxy-connectors.js?rev=1242183&r1=1242182&r2=1242183&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/proxy-connectors.js (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/proxy-connectors.js Wed Feb  8 23:56:29 2012
@@ -21,34 +21,51 @@ $(function() {
   ProxyConnector=function(sourceRepoId,targetRepoId,proxyId,blackListPatterns,whiteListPatterns,policies,properties,
                           disabled,order){
     var self=this;
-    this.modified=ko.observable(false);
 
     //private String sourceRepoId;
     this.sourceRepoId=ko.observable(sourceRepoId);
-    this.sourceRepoId.subscribe(function(newValue){self.modified(true)});
+    this.sourceRepoId.subscribe(function(newValue){
+      $.log("modify sourceRepo:"+newValue);
+      self.modified(true);
+    });
 
     //private String targetRepoId;
     this.targetRepoId=ko.observable(targetRepoId);
-    this.targetRepoId.subscribe(function(newValue){self.modified(true)});
+    this.targetRepoId.subscribe(function(newValue){
+      $.log("modify targetRepo:"+newValue);
+      self.modified(true);
+    });
 
     //private String proxyId;
     this.proxyId=ko.observable(proxyId);
-    this.proxyId.subscribe(function(newValue){self.modified(true)});
+    this.proxyId.subscribe(function(newValue){
+      $.log("modify proxyId");
+      self.modified(true);
+    });
 
     //private List<String> blackListPatterns;
     this.blackListPatterns=ko.observableArray(blackListPatterns==null?[]:blackListPatterns);
-    this.blackListPatterns.subscribe(function(newValue){self.modified(true)});
+    this.blackListPatterns.subscribe(function(newValue){
+      $.log("modify blackListPatterns");
+      self.modified(true);
+    });
 
     //private List<String> whiteListPatterns;
     this.whiteListPatterns=ko.observableArray(whiteListPatterns==null?[]:whiteListPatterns);
-    this.whiteListPatterns.subscribe(function(newValue){self.modified(true)});
+    this.whiteListPatterns.subscribe(function(newValue){
+      $.log("modify whiteListPatterns");
+      self.modified(true);
+    });
 
     //private Map<String, String> policies;
     this.policies=ko.observableArray(policies==null?[]:policies);
-    this.policies.subscribe(function(newValue){self.modified(true)});
+    this.policies.subscribe(function(newValue){
+      $.log("modify policies");
+      self.modified(true);
+    });
 
     //private Map<String, String> properties;
-    this.properties=ko.observableArray(properties==null?[]:properties);
+    this.properties=ko.observableArray(properties==null?new Array():properties);
     this.properties.subscribe(function(newValue){
       $.log("properties modified");
       self.modified(true);
@@ -56,14 +73,20 @@ $(function() {
 
     //private boolean disabled = false;
     this.disabled=ko.observable(disabled);
-    this.disabled.subscribe(function(newValue){self.modified(true)});
+    this.disabled.subscribe(function(newValue){
+      $.log("modify disabled");
+      self.modified(true);
+    });
 
     //private int order = 0;
     this.order=ko.observable(order);
-    this.order.subscribe(function(newValue){self.modified(true)});
+    this.order.subscribe(function(newValue){
+      $.log("modify order");
+      self.modified(true);
+    });
 
-    this.modified=ko.observable(true);
-    this.modified.subscribe(function(newValue){$.log("ProxyConnector modified")});
+    this.modified=ko.observable(false);
+    this.modified.subscribe(function(newValue){$.log("ProxyConnector modified:"+newValue)});
   }
 
   PolicyInformation=function(options,defaultOption,id,name){
@@ -104,7 +127,8 @@ $(function() {
     this.proxyConnectorsViewModel=proxyConnectorsViewModel;
     this.update=update;
     this.modified=ko.observable(false);
-    getSelectedPolicyOption=function(id){
+    getSelectedPolicyOption=function(id,updateVal){
+      $.log("getSelectedPolicyOption:"+id+","+updateVal);
       if (!update){
         // we are on add mode so use default option
         var policyInformations=self.proxyConnectorsViewModel.policyInformations();
@@ -134,7 +158,14 @@ $(function() {
     }
 
     deleteProperty=function(key){
-      $.log("delete property key:"+key);
+      $.log("delete property key:"+key());
+      for(i=0;i<self.proxyConnector.properties().length;i++){
+        var entry=self.proxyConnector.properties()[i];
+        if (entry.key()==key()){
+          self.proxyConnector.properties.remove(entry);
+        }
+      }
+
     }
 
     addProperty=function(){
@@ -142,8 +173,11 @@ $(function() {
       var key=mainContent.find("#property-key").val();
       var value=mainContent.find("#property-value").val();
       $.log("add property:"+key+":"+value+",size:"+self.proxyConnector.properties().length);
-      self.proxyConnector.properties().push(new Entry(key,value));
+      var oldTab = proxyConnector.properties();
+      oldTab.push(new Entry(key,value));
+      self.proxyConnector.properties(oldTab);
       $.log("add property:"+key+":"+value+",size:"+self.proxyConnector.properties().length);
+      self.proxyConnector.modified(true);
     }
   }
 
@@ -251,11 +285,13 @@ $(function() {
       mainContent.find("#proxy-connectors-view-tabs").on('show', function (e) {
 
         if ($(e.target).attr("href")=="#proxy-connectors-edit") {
-          var proxyConnectorViewModel=new ProxyConnectorViewModel(new ProxyConnector(),false,self);
+          var proxyConnector=new ProxyConnector();
+          var proxyConnectorViewModel=new ProxyConnectorViewModel(proxyConnector,false,self);
+          mainContent.find("#proxy-connectors-edit").html($("#proxy-connector-edit-form-tmpl").tmpl());
           ko.applyBindings(proxyConnectorViewModel,mainContent.find("#proxy-connectors-edit").get(0));
         }
         if ($(e.target).attr("href")=="#proxy-connectors-view") {
-          $("#proxy-connectors-view-tabs-a-network-proxies-grid").html($.i18n.prop("add"));
+          $("#proxy-connectors-view-tabs-a-network-proxies-grid").html($.i18n.prop("proxy-connectors.grid.tab.title"));
 
         }
 

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/proxy-connectors.html
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/proxy-connectors.html?rev=1242183&r1=1242182&r2=1242183&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/proxy-connectors.html (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/proxy-connectors.html Wed Feb  8 23:56:29 2012
@@ -36,7 +36,7 @@
       </table>
       <div id="proxy-connectorsPagination"></div>
     </div>
-    <div id="proxy-connectors-edit" class="tab-pane" data-bind='template: {name:"proxy-connector-edit-form-tmpl",data: proxyConnector}'></div>
+    <div id="proxy-connectors-edit" class="tab-pane"></div>
   </div>
 
 </script>
@@ -45,7 +45,7 @@
   <thead>
     <tr>
       <th title="${$.i18n.prop('proxy-connectors.grid.managedrepo.title')}">
-        ${$.i18n.prop('proxy-connectors.grid.remoterepo.grid.header')}
+        ${$.i18n.prop('proxy-connectors.grid.managedrepo.grid.header')}
       </th>
       <th title="${$.i18n.prop('proxy-connectors.grid.remoterepo.title')}">
         ${$.i18n.prop('proxy-connectors.grid.remoterepo.grid.header')}
@@ -107,73 +107,74 @@
 </script>
 
 <script id="proxy-connector-edit-form-tmpl" type='text/x-jquery-tmpl'>
-  <form id="proxy-connector-edit-form" class="form-horizontal">
-    <fieldset id="remote-repository-edit-fieldset">
-      <div class="control-group">
-        <label class="control-label" for="proxyId">${$.i18n.prop('proxy-connector.network-proxy.id')}</label>
-        <div class="controls">
-          <select id="proxyId"
-                  data-bind="options: proxyConnectorsViewModel.networkProxies, optionsText: 'id',optionsValue:'id',
-                   value: proxyId, optionsCaption: 'direct connection'"></select>
+
+    <form id="proxy-connector-edit-form" class="form-horizontal">
+      <fieldset id="remote-repository-edit-fieldset">
+        <div class="control-group">
+          <label class="control-label" for="proxyId">${$.i18n.prop('proxy-connector.network-proxy.id')}</label>
+          <div class="controls">
+            <select id="proxyId"
+                    data-bind="options: proxyConnectorsViewModel.networkProxies, optionsText: 'id',optionsValue:'id',
+                     value: proxyConnector.proxyId, optionsCaption: 'direct connection'"></select>
+          </div>
         </div>
-      </div>
-      <div class="control-group">
-        <label class="control-label" for="proxyId">${$.i18n.prop('proxy-connector.managed.repository.id')}</label>
-        <div class="controls">
-          <select id="sourceRepoId"
-                  data-bind="options: proxyConnectorsViewModel.managedRepositories, optionsText: 'id',optionsValue:'id',
-                   value: sourceRepoId"></select>
+        <div class="control-group">
+          <label class="control-label" for="proxyId">${$.i18n.prop('proxy-connector.managed.repository.id')}</label>
+          <div class="controls">
+            <select id="sourceRepoId"
+                    data-bind="options: proxyConnectorsViewModel.managedRepositories, optionsText: 'id',optionsValue:'id',
+                     value: proxyConnector.sourceRepoId"></select>
+          </div>
         </div>
-      </div>
-      <div class="control-group">
-        <label class="control-label" for="proxyId">${$.i18n.prop('proxy-connector.remote.repository.id')}</label>
-        <div class="controls">
-          <select id="targetRepoId"
-                  data-bind="options: proxyConnectorsViewModel.remoteRepositories, optionsText: 'id',optionsValue:'id',
-                   value: targetRepoId"></select>
+        <div class="control-group">
+          <label class="control-label" for="proxyId">${$.i18n.prop('proxy-connector.remote.repository.id')}</label>
+          <div class="controls">
+            <select id="targetRepoId"
+                    data-bind="options: proxyConnectorsViewModel.remoteRepositories, optionsText: 'id',optionsValue:'id',
+                     value: proxyConnector.targetRepoId"></select>
+          </div>
         </div>
-      </div>
-      <div class="control-group span6">
-          <table class="table">
-            <thead>
-              <th colspan="2">${$.i18n.prop('proxy-connector.policies')}</th>
-            </thead>
-            <tbody>
-              {{each proxyConnectorsViewModel.policyInformations()}}
-              {{var policyId=$value.id()}}
+        <div class="control-group span6">
+            <table class="table">
+              <thead>
+                <th colspan="2">${$.i18n.prop('proxy-connector.policies')}</th>
+              </thead>
+              <tbody data-bind="foreach: proxyConnectorsViewModel.policyInformations()">
+                  <tr>
+                    <td data-bind="text: name"></td>
+                    <td>
+                      <select id="policy-${policyId}"
+                              data-bind="options: getPolicyOptions(id()),value:getSelectedPolicyOption(id())"></select>
+                    </td>
+                  </tr>
+              </tbody>
+            </table>
+        </div>
+        <div class="control-group span6">
+            <table>
+                <thead>
+                  <th colspan="3" class="pull-left">${$.i18n.prop('proxy-connector.properties')}</th>
+                </thead>
                 <tr>
-                  <td>${$value.name()}</td>
-                  <td>
-                    <select id="policy-${policyId}"
-                            data-bind="options: getPolicyOptions(policyId),value:getSelectedPolicyOption(policyId)"></select>
-                  </td>
+                  <td><input type="text" id="property-key"/></td>
+                  <td><input type="text" id="property-value"/></td>
+                  <td><a href="#" data-bind="click: function(){ addProperty() }">${$.i18n.prop('add')}</a></td>
                 </tr>
-              {{/each}}
-            </tbody>
-          </table>
-      </div>
-      <div class="control-group span6">
-          <table class="table">
-            <thead>
-              <th colspan="3">${$.i18n.prop('proxy-connector.properties')}</th>
-            </thead>
-            <tbody>
-              {{each properties()}}
-              {{var key=$value.key()}}
+            </table>
+
+            <table class="table">
+
+              <tbody data-bind="foreach: proxyConnector.properties">
                 <tr>
-                  <td>${key}</td>
-                  <td>${$value.value()}</td>
-                  <td><a href="#" data-bind="click: function(){ deleteProperty(key)}">${$.i18n.prop('delete')}</a></td>
+                  <td data-bind="text: key"></td>
+                  <td data-bind="text: value"></td>
+                  <td><a href="#" data-bind="click: function(){deleteProperty(key)}">${$.i18n.prop('delete')}</a></td>
                 </tr>
-              {{/each}}
-              <tr>
-                <td><input type="text" id="property-key"/></td>
-                <td><input type="text" id="property-value"/></td>
-                <td><a href="#" data-bind="click: function(){ addProperty() }">${$.i18n.prop('add')}</a></td>
-              </tr>
-            </tbody>
-          </table>
-      </div>
-    </fieldset>
-  </form>
+              </tbody>
+            </table>
+
+        </div>
+      </fieldset>
+    </form>
+
 </script>