You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by sk...@apache.org on 2013/05/12 18:19:42 UTC

svn commit: r1481595 [1/4] - in /archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web: archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/ archiva-webapp/src/main/webapp/js/archiva/ archiva-webapp/src/main/webapp...

Author: skygo
Date: Sun May 12 16:19:41 2013
New Revision: 1481595

URL: http://svn.apache.org/r1481595
Log:
admin in folders. Some features may not work properly

Added:
    archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/admin/features/
    archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/admin/features/10networkproxies/
    archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/admin/features/10networkproxies/main.js   (with props)
    archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/admin/features/20generaladmin/
    archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/admin/features/20generaladmin/main.js   (with props)
    archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/admin/repository/10maven2/proxy-connectors-rules.js   (with props)
    archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/admin/repository/10maven2/proxy-connectors.js   (with props)
    archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/admin/repository/10maven2/repositories.js   (with props)
    archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/admin/repository/10maven2/repository-groups.js   (with props)
Removed:
    archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/general-admin.js
    archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/network-proxies.js
    archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/proxy-connectors-rules.js
    archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/proxy-connectors.js
    archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/repositories.js
    archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/repository-groups.js
Modified:
    archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultPluginsServices.java
    archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/admin/repository/10maven2/main.js
    archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/archiva.js
    archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/main.js

Modified: archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultPluginsServices.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultPluginsServices.java?rev=1481595&r1=1481594&r2=1481595&view=diff
==============================================================================
--- archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultPluginsServices.java (original)
+++ archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultPluginsServices.java Sun May 12 16:19:41 2013
@@ -34,43 +34,53 @@ import org.springframework.core.io.Resou
  */
 @Service( "pluginsService#rest" )
 public class DefaultPluginsServices
-    implements PluginsService
+        implements PluginsService
 {
 
     private List<String> repositoryType = new ArrayList<String>();
-    
+    private List<String> adminFeatures = new ArrayList<String>();
+
     @Inject
-    public DefaultPluginsServices( ApplicationContext applicationContext ) 
+    public DefaultPluginsServices( ApplicationContext applicationContext )
+    {
+        feed( repositoryType, "repository", applicationContext );
+        feed( adminFeatures, "features", applicationContext );
+    }
+
+    private void feed( List<String> repository, String key, ApplicationContext applicationContext )
     {
         Resource[] xmlResources;
-        try {
-            xmlResources = applicationContext.getResources( "/**/repository/**/main.js" );
-            for (Resource rc : xmlResources) 
+        try
+        {
+            xmlResources = applicationContext.getResources( "/**/" + key + "/**/main.js" );
+            for ( Resource rc : xmlResources )
             {
-                String tmp =  rc.getURL().toString();
-                tmp = tmp.substring( tmp.lastIndexOf("repository") + 11,  tmp.length() - 8 );
-                repositoryType.add( tmp );
+                String tmp = rc.getURL().toString();
+                tmp = tmp.substring( tmp.lastIndexOf( key ) + key.length() + 1, tmp.length() - 8 );
+                repository.add( "archiva/admin/" + key + "/" + tmp + "/main" );
             }
-        } catch (IOException ex) {
-            
         }
-        
+        catch ( IOException ex )
+        {
+        }
     }
-    
+
     @Override
     public String getAdminPlugins()
-        throws ArchivaRestServiceException
+            throws ArchivaRestServiceException
     {
         // rebuild
-        String baseRepo = "archiva/admin/repository/";
         StringBuilder sb = new StringBuilder();
-        for (String repoType : repositoryType) 
+        for ( String repoType : repositoryType )
         {
-            sb.append( baseRepo ).append( repoType ).append( "/main" ).append( "|" );
+            sb.append( repoType ).append( "|" );
         }
-        
-        return sb.substring( 0, sb.length() - 1);
-        
-    }
+        for ( String repoType : adminFeatures )
+        {
+            sb.append( repoType ).append( "|" );
+        }
+
+        return sb.substring( 0, sb.length() - 1 );
 
+    }
 }

Added: archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/admin/features/10networkproxies/main.js
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/admin/features/10networkproxies/main.js?rev=1481595&view=auto
==============================================================================
--- archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/admin/features/10networkproxies/main.js (added)
+++ archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/admin/features/10networkproxies/main.js Sun May 12 16:19:41 2013
@@ -0,0 +1,328 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+define("archiva/admin/features/10networkproxies/main",["jquery","i18n","jquery.tmpl","bootstrap","jquery.validate","knockout"
+  ,"knockout.simpleGrid"], function(jquery,i18n,jqueryTmpl,bootstrap,jqueryValidate,ko) {
+
+  showMenu = function(administrationMenuItems) {
+      administrationMenuItems.push(
+            {  text : $.i18n.prop('menu.network-proxies')          , id: "menu-network-proxies-list-a"        , href: "#networkproxies"       , redback: "{permissions: ['archiva-manage-configuration']}", func: function(){displayNetworkProxies()}}
+    );
+  }
+   
+  NetworkProxy=function(id,protocol,host,port,username,password,useNtlm){
+    var self=this;
+    //private String id;
+    this.id = ko.observable(id);
+    this.id.subscribe(function(newValue){self.modified(true)});
+
+    //private String protocol = "http";
+    this.protocol=ko.observable(protocol);
+    this.protocol.subscribe(function(newValue){self.modified(true)});
+
+    //private String host;
+    this.host=ko.observable(host);
+    this.host.subscribe(function(newValue){self.modified(true)});
+
+    //private int port = 8080;
+    this.port=ko.observable(port);
+    this.port.subscribe(function(newValue){self.modified(true)});
+
+    //private String username;
+    this.username=ko.observable(username?username:"");
+    this.username.subscribe(function(newValue){self.modified(true)});
+
+    //private String password;
+    this.password=ko.observable(password?password:"");
+    this.password.subscribe(function(newValue){self.modified(true)});
+
+    //use NTLM proxy
+    this.useNtlm=ko.observable(useNtlm?useNtlm:false);
+    this.useNtlm.subscribe(function(newValue){self.modified(true)});
+
+    this.modified=ko.observable(false);
+  }
+
+  NetworkProxyViewModel=function(networkProxy, update, networkProxiesViewModel,bulkMode){
+    this.update=update;
+    this.networkProxy=networkProxy;
+    this.networkProxiesViewModel=networkProxiesViewModel;
+    var self=this;
+    this.bulkMode=false || bulkMode;
+
+    this.save=function(){
+      if (!$("#main-content" ).find("#network-proxy-edit-form").valid()){
+        return;
+      }
+      if (!this.bulkMode){
+        clearUserMessages();
+      }
+      if (update){
+        $.ajax("restServices/archivaServices/networkProxyService/updateNetworkProxy",
+          {
+            type: "POST",
+            contentType: 'application/json',
+            data: ko.toJSON(networkProxy),
+            dataType: 'json',
+            success: function(data) {
+              $.log("update proxy id:"+self.networkProxy.id());
+              var message=$.i18n.prop('networkproxy.updated',self.networkProxy.id());
+              displaySuccessMessage(message);
+              self.networkProxy.modified(false);
+              if (!this.bulkMode){
+                activateNetworkProxiesGridTab();
+              }
+            },
+            error: function(data) {
+              var res = $.parseJSON(data.responseText);
+              displayRestError(res);
+            }
+          }
+        );
+      } else {
+
+        $.ajax("restServices/archivaServices/networkProxyService/addNetworkProxy",
+          {
+            type: "POST",
+            contentType: 'application/json',
+            data: ko.toJSON(networkProxy),
+            dataType: 'json',
+            success: function(data) {
+              self.networkProxy.modified(false);
+              self.networkProxiesViewModel.networkProxies.push(self.networkProxy);
+              displaySuccessMessage($.i18n.prop('networkproxy.added',self.networkProxy.id()));
+              activateNetworkProxiesGridTab();
+            },
+            error: function(data) {
+              var res = $.parseJSON(data.responseText);
+              displayRestError(res);
+            }
+          }
+        );
+
+      }
+    }
+
+    displayGrid=function(){
+      activateNetworkProxiesGridTab();
+    }
+  }
+
+  NetworkProxiesViewModel=function(){
+    this.networkProxies=ko.observableArray([]);
+
+    var self=this;
+
+    this.gridViewModel = null;
+
+    editNetworkProxy=function(networkProxy){
+      clearUserMessages();
+      $.log("editNetworkProxy");
+      var mainContent = $("#main-content");
+      mainContent.find("#network-proxies-view-tabs-li-edit a").html($.i18n.prop("edit"));
+      var viewModel = new NetworkProxyViewModel(networkProxy,true,self);
+      ko.applyBindings(viewModel,mainContent.find("#network-proxies-edit").get(0));
+      activateNetworkProxyFormValidation();
+      activateNetworkProxyEditTab();
+      mainContent.find("#network-proxy-btn-save").attr("disabled","true");
+      mainContent.find("#network-proxy-btn-save").button('toggle');
+    }
+
+    this.bulkSave=function(){
+      return getModifiedNetworkProxies().length>0;
+    }
+
+    getModifiedNetworkProxies=function(){
+      var prx = $.grep(self.networkProxies(),
+          function (networkProxy,i) {
+            return networkProxy.modified();
+          });
+      return prx;
+    }
+
+
+    updateModifiedNetworkProxies=function(){
+      var modifiedNetworkProxies = getModifiedNetworkProxies();
+
+      openDialogConfirm(function(){
+                          for(var i=0;i<modifiedNetworkProxies.length;i++){
+                            var viewModel = new NetworkProxyViewModel(modifiedNetworkProxies[i],true,self,false);
+                            viewModel.save();
+                          }
+                          closeDialogConfirm();
+                        },
+                        $.i18n.prop('ok'),
+                        $.i18n.prop('cancel'),
+                        $.i18n.prop('networkproxy.bulk.save.confirm.title'),
+                        $.i18n.prop('networkproxy.bulk.save.confirm',modifiedNetworkProxies.length));
+
+
+    }
+
+    updateNetworkProxy=function(networkProxy){
+      var viewModel = new NetworkProxyViewModel(networkProxy,true,self,false);
+      viewModel.save();
+    }
+
+    removeNetworkProxy=function(networkProxy){
+      openDialogConfirm(
+          function(){
+            $.ajax("restServices/archivaServices/networkProxyService/deleteNetworkProxy/"+encodeURIComponent(networkProxy.id()),
+              {
+                type: "get",
+                success: function(data) {
+                  self.networkProxies.remove(networkProxy);
+                  clearUserMessages();
+                  displaySuccessMessage($.i18n.prop('networkproxy.deleted',networkProxy.id()));
+                  activateNetworkProxiesGridTab();
+                },
+                error: function(data) {
+                  var res = $.parseJSON(data.responseText);
+                  displayRestError(res);
+                },
+                complete: function(){
+                  closeDialogConfirm();
+                }
+              }
+            )}, $.i18n.prop('ok'), $.i18n.prop('cancel'), $.i18n.prop('networkproxy.delete.confirm',networkProxy.id()),
+            $("#network-proxy-delete-warning-tmpl" ).tmpl(networkProxy));
+    }
+  }
+
+
+  displayNetworkProxies=function(){
+    screenChange();
+    var mainContent = $("#main-content");
+    mainContent.html(mediumSpinnerImg());
+
+
+
+    loadNetworkProxies( function(data) {
+        var networkProxiesViewModel = new NetworkProxiesViewModel();
+        mainContent.html($("#networkProxiesMain").tmpl());
+        mainContent.find("#network-proxies-view-tabs a:first").tab('show');
+
+        mainContent.find("#network-proxies-view-tabs").on('show', function (e) {
+          if ($(e.target).attr("href")=="#network-proxies-edit") {
+            var viewModel = new NetworkProxyViewModel(new NetworkProxy(),false,networkProxiesViewModel);
+            ko.applyBindings(viewModel,$("#main-content" ).find("#network-proxies-edit").get(0));
+            activateNetworkProxyFormValidation();
+            clearUserMessages();
+          }
+          if ($(e.target).attr("href")=="#network-proxies-view") {
+            $("#main-content" ).find("#network-proxies-view-tabs-li-edit a").html($.i18n.prop("add"));
+            clearUserMessages();
+          }
+
+        });
+        networkProxiesViewModel.networkProxies(mapNetworkProxies(data));
+        networkProxiesViewModel.gridViewModel = new ko.simpleGrid.viewModel({
+          data: networkProxiesViewModel.networkProxies,
+          columns: [
+            {
+              headerText: $.i18n.prop('identifier'),
+              rowText: "id"
+            },
+            {
+              headerText: $.i18n.prop('protocol'),
+              rowText: "protocol"
+            },
+            {
+            headerText: $.i18n.prop('host'),
+            rowText: "host"
+            },
+            {
+            headerText: $.i18n.prop('port'),
+            rowText: "port"
+            },
+            {
+            headerText: $.i18n.prop('username'),
+            rowText: "username"
+            }
+          ],
+          pageSize: 5,
+          gridUpdateCallBack: function(networkProxy){
+            $("#main-content" ).find("#networkProxiesTable [title]").tooltip();
+          }
+        });
+        ko.applyBindings(networkProxiesViewModel,$("#main-content" ).find("#network-proxies-view").get(0));
+      }
+    )
+  }
+
+  loadNetworkProxies=function(successCallbackFn, errorCallbackFn){
+    $.ajax("restServices/archivaServices/networkProxyService/getNetworkProxies", {
+        type: "GET",
+        dataType: 'json',
+        success: successCallbackFn,
+        error: errorCallbackFn
+    });
+  }
+
+  activateNetworkProxyFormValidation=function(){
+    var editForm=$("#main-content" ).find("#network-proxy-edit-form");
+    var validator = editForm.validate({
+      rules: {id: {
+       required: true,
+       remote: {
+         url: "restServices/archivaUiServices/dataValidatorService/networkProxyIdNotExists",
+         type: "get"
+       }
+      }},
+      showErrors: function(validator, errorMap, errorList) {
+       customShowError(editForm,validator,errorMap,errorMap);
+      }
+    });
+    validator.settings.messages["id"]=$.i18n.prop("id.required.or.alreadyexists");
+  }
+
+  activateNetworkProxiesGridTab=function(){
+    var mainContent = $("#main-content");
+    mainContent.find("#network-proxies-view-tabs-li-edit").removeClass("active");
+    mainContent.find("#network-proxies-edit").removeClass("active");
+
+    mainContent.find("#network-proxies-view-tabs-li-grid").addClass("active");
+    mainContent.find("#network-proxies-view").addClass("active");
+    mainContent.find("#network-proxies-view-tabs-li-edit a").html($.i18n.prop("add"));
+
+  }
+
+  activateNetworkProxyEditTab=function(){
+    var mainContent = $("#main-content");
+    mainContent.find("#network-proxies-view-tabs-li-grid").removeClass("active");
+    mainContent.find("#network-proxies-view").removeClass("active");
+
+    mainContent.find("#network-proxies-view-tabs-li-edit").addClass("active");
+    mainContent.find("#network-proxies-edit").addClass("active");
+  }
+
+  mapNetworkProxy=function(data){
+    if (data==null){
+      return null;
+    }
+    return new NetworkProxy(data.id,data.protocol,data.host,data.port,data.username,data.password,data.useNtlm);
+  }
+
+  mapNetworkProxies=function(data){
+    var mappedNetworkProxies = $.map(data, function(item) {
+      return mapNetworkProxy(item);
+    });
+    return mappedNetworkProxies;
+  }
+
+});
\ No newline at end of file

Propchange: archiva/branches/archiva-MRM-1756/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/admin/features/10networkproxies/main.js
------------------------------------------------------------------------------
    svn:eol-style = native