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/24 10:17:51 UTC

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

Author: olamy
Date: Tue Jan 24 09:17:50 2012
New Revision: 1235176

URL: http://svn.apache.org/viewvc?rev=1235176&view=rev
Log:
[MRM-1574] remote repositories grid view

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

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=1235176&r1=1235175&r2=1235176&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 Tue Jan 24 09:17:50 2012
@@ -123,6 +123,30 @@ $(function() {
     this.managedRepository = managedRepository;
   }
 
+  mapManagedRepositories=function(data){
+    var mappedManagedRepositories = $.map(data.managedRepository, function(item) {
+      return mapManagedRepository(item);
+    });
+    return mappedManagedRepositories;
+  }
+  mapManagedRepository=function(data){
+    if (data==null){
+      return null;
+    }
+    return new ManagedRepository(data.id,data.name,data.layout,data.indexDirectory,data.location,data.snapshots,data.releases,
+                                 data.blockRedeployments,data.cronExpression,
+                                 data.scanned,data.daysOlder,data.retentionCount,data.deleteReleasedSnapshots,data.stageRepoNeeded);
+  }
+
+  mapArchivaRepositoryStatistics=function(data){
+    if (data==null){
+      return null;
+    }
+    return new ArchivaRepositoryStatistics(data.scanEndTime,data.scanStartTime,data.totalArtifactCount,data.totalArtifactFileSize,
+                                           data.totalFileCount,data.totalGroupCount,data.totalProjectCount,data.newFileCount,
+                                           data.duration,data.managedRepository)
+  }
+
   ManagedRepositoryViewModel=function(managedRepository, update, managedRepositoriesViewModel){
     this.managedRepository=managedRepository;
     this.managedRepositoriesViewModel = managedRepositoriesViewModel;
@@ -398,92 +422,6 @@ $(function() {
 
   }
 
-  displayRepositoriesGrid=function(){
-    clearUserMessages();
-    $("#main-content").html(mediumSpinnerImg());
-    $("#main-content").html($("#repositoriesMain").tmpl());
-    $("#main-content #repositories-tabs").tabs();
-
-    $("#main-content #managed-repositories-content").append(mediumSpinnerImg());
-    $("#main-content #remote-repositories-content").append(mediumSpinnerImg());
-
-    var managedRepositoriesViewModel = new ManagedRepositoriesViewModel();
-
-    $.ajax("restServices/archivaServices/managedRepositoriesService/getManagedRepositories", {
-        type: "GET",
-        dataType: 'json',
-        success: function(data) {
-          managedRepositoriesViewModel.managedRepositories(mapManagedRepositories(data));
-          managedRepositoriesViewModel.gridViewModel = new ko.simpleGrid.viewModel({
-            data: managedRepositoriesViewModel.managedRepositories,
-            columns: [
-              {
-                headerText: $.i18n.prop('identifier'),
-                rowText: "id"
-              },
-              {
-                headerText: $.i18n.prop('name'),
-                rowText: "name"
-              },
-              {
-              headerText: $.i18n.prop('type'),
-              rowText: "getTypeLabel",
-              // FIXME i18n
-              title: "Repository type (default is Maven 2)"
-              }
-            ],
-            pageSize: 5,
-            gridUpdateCallBack: function(){
-              $("#main-content #managed-repositories-table [title]").twipsy();
-            }
-          });
-          ko.applyBindings(managedRepositoriesViewModel,$("#main-content #managed-repositories-table").get(0));
-          $("#main-content #managed-repositories-pills").pills();
-          $("#managed-repositories-view").addClass("active");
-          removeMediumSpinnerImg("#main-content #managed-repositories-content");
-          activateManagedRepositoriesGridTab();
-        }
-      }
-    );
-
-    $("#main-content #managed-repositories-pills").bind('change', function (e) {
-      if ($(e.target).attr("href")=="#managed-repository-edit") {
-        var viewModel = new ManagedRepositoryViewModel(new ManagedRepository(),false,managedRepositoriesViewModel);
-        ko.applyBindings(viewModel,$("#main-content #managed-repository-edit").get(0));
-        activateManagedRepositoryFormValidation();
-      }
-      if ($(e.target).attr("href")=="#managed-repositories-view") {
-        $("#main-content #managed-repository-edit-li a").html($.i18n.prop("add"));
-      }
-
-    });
-
-  }
-
-  mapManagedRepositories=function(data){
-    var mappedManagedRepositories = $.map(data.managedRepository, function(item) {
-      return mapManagedRepository(item);
-    });
-    return mappedManagedRepositories;
-  }
-  mapManagedRepository=function(data){
-    if (data==null){
-      return null;
-    }
-    return new ManagedRepository(data.id,data.name,data.layout,data.indexDirectory,data.location,data.snapshots,data.releases,
-                                 data.blockRedeployments,data.cronExpression,
-                                 data.scanned,data.daysOlder,data.retentionCount,data.deleteReleasedSnapshots,data.stageRepoNeeded);
-  }
-
-  mapArchivaRepositoryStatistics=function(data){
-    if (data==null){
-      return null;
-    }
-    return new ArchivaRepositoryStatistics(data.scanEndTime,data.scanStartTime,data.totalArtifactCount,data.totalArtifactFileSize,
-                                           data.totalFileCount,data.totalGroupCount,data.totalProjectCount,data.newFileCount,
-                                           data.duration,data.managedRepository)
-  }
-
   activateManagedRepositoriesGridTab=function(){
     $("#main-content #managed-repository-edit-li").removeClass("active");
     $("#main-content #managed-repository-edit").removeClass("active");
@@ -501,6 +439,7 @@ $(function() {
     $("#main-content #managed-repository-edit").addClass("active");
   }
 
+
   //---------------------------
   // Remote repositories part
   //---------------------------
@@ -552,6 +491,17 @@ $(function() {
 
     //private boolean downloadRemoteIndexOnStartup = false;
     this.downloadRemoteIndexOnStartup=ko.observable(downloadRemoteIndexOnStartup);
+
+    var self=this;
+
+    this.getTypeLabel=function(){
+      for(i=0;i<window.managedRepositoryTypes.length;i++){
+        if (window.managedRepositoryTypes[i].type==self.layout()){
+          return window.managedRepositoryTypes[i].label;
+        }
+      }
+      return "no label";
+    }
   }
 
   mapRemoteRepository=function(data){
@@ -570,4 +520,129 @@ $(function() {
     return mappedRemoteRepositories;
   }
 
+
+  RemoteRepositoriesViewModel=function(){
+    this.remoteRepositories=ko.observableArray([]);
+
+    this.gridViewModel = null;
+    var self = this;
+
+    editRemoteRepository=function(remoteRepository){
+      $.log("editRemoteRepository");
+    }
+
+    removeRemoteRepository=function(remoteRepository){
+      $.log("removeRemoteRepository");
+    }
+
+    downloadRemoteIndex=function(remoteRepository){
+      $.log("downloadRemoteIndex");
+    }
+  }
+
+  //---------------------------
+  // Screen loading
+  //---------------------------
+
+  displayRepositoriesGrid=function(){
+    clearUserMessages();
+    $("#main-content").html(mediumSpinnerImg());
+    $("#main-content").html($("#repositoriesMain").tmpl());
+    $("#main-content #repositories-tabs").tabs();
+
+    $("#main-content #managed-repositories-content").append(mediumSpinnerImg());
+    $("#main-content #remote-repositories-content").append(mediumSpinnerImg());
+
+    var managedRepositoriesViewModel = new ManagedRepositoriesViewModel();
+    var remoteRepositoriesViewModel = new RemoteRepositoriesViewModel();
+
+    $.ajax("restServices/archivaServices/managedRepositoriesService/getManagedRepositories", {
+        type: "GET",
+        dataType: 'json',
+        success: function(data) {
+          managedRepositoriesViewModel.managedRepositories(mapManagedRepositories(data));
+          managedRepositoriesViewModel.gridViewModel = new ko.simpleGrid.viewModel({
+            data: managedRepositoriesViewModel.managedRepositories,
+            columns: [
+              {
+                headerText: $.i18n.prop('identifier'),
+                rowText: "id"
+              },
+              {
+                headerText: $.i18n.prop('name'),
+                rowText: "name"
+              },
+              {
+              headerText: $.i18n.prop('type'),
+              rowText: "getTypeLabel",
+              // FIXME i18n
+              title: "Repository type (default is Maven 2)"
+              }
+            ],
+            pageSize: 5,
+            gridUpdateCallBack: function(){
+              $("#main-content #managed-repositories-table [title]").twipsy();
+            }
+          });
+          ko.applyBindings(managedRepositoriesViewModel,$("#main-content #managed-repositories-table").get(0));
+          $("#main-content #managed-repositories-pills").pills();
+          $("#managed-repositories-view").addClass("active");
+          removeMediumSpinnerImg("#main-content #managed-repositories-content");
+          activateManagedRepositoriesGridTab();
+        }
+      }
+    );
+
+    $.ajax("restServices/archivaServices/remoteRepositoriesService/getRemoteRepositories", {
+        type: "GET",
+        dataType: 'json',
+        success: function(data) {
+          remoteRepositoriesViewModel.remoteRepositories(mapRemoteRepositories(data));
+          remoteRepositoriesViewModel.gridViewModel = new ko.simpleGrid.viewModel({
+            data: remoteRepositoriesViewModel.remoteRepositories,
+            columns: [
+              {
+                headerText: $.i18n.prop('identifier'),
+                rowText: "id"
+              },
+              {
+                headerText: $.i18n.prop('name'),
+                rowText: "name"
+              },
+              {
+              headerText: $.i18n.prop('type'),
+              rowText: "getTypeLabel",
+              // FIXME i18n
+              title: "Repository type (default is Maven 2)"
+              }
+            ],
+            pageSize: 5,
+            gridUpdateCallBack: function(){
+              $("#main-content #remote-repositories-table [title]").twipsy();
+            }
+          });
+          ko.applyBindings(remoteRepositoriesViewModel,$("#main-content #remote-repositories-table").get(0));
+          $("#main-content #remote-repositories-pills").pills();
+          $("#remote-repositories-view").addClass("active");
+          removeMediumSpinnerImg("#main-content #remote-repositories-content");
+          //activateManagedRepositoriesGridTab();
+        }
+      }
+    );
+
+
+    $("#main-content #managed-repositories-pills").bind('change', function (e) {
+      if ($(e.target).attr("href")=="#managed-repository-edit") {
+        var viewModel = new ManagedRepositoryViewModel(new ManagedRepository(),false,managedRepositoriesViewModel);
+        ko.applyBindings(viewModel,$("#main-content #managed-repository-edit").get(0));
+        activateManagedRepositoryFormValidation();
+      }
+      if ($(e.target).attr("href")=="#managed-repositories-view") {
+        $("#main-content #managed-repository-edit-li a").html($.i18n.prop("add"));
+      }
+
+    });
+
+  }
+
 });
\ No newline at end of file

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=1235176&r1=1235175&r2=1235176&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 Tue Jan 24 09:17:50 2012
@@ -54,7 +54,24 @@
 
 
     	<div id="remote-repositories-content">
-    		grid to view edit remote repositories
+            <ul id="remote-repositories-pills" class="pills">
+              <li class="active" id="remote-repositories-view-li">
+                <a href="#remote-repositories-view">${$.i18n.prop('remoterepositories.grid.tab.title')}</a>
+              </li>
+              <li id="remote-repository-edit-li">
+                <a href="#remote-repository-edit">${$.i18n.prop('add')}</a>
+              </li>
+            </ul>
+            <div id="remote-repositories-tabs-content" class="pill-content">
+              <div id="remote-repositories-view" class="active">
+                  <table class="bordered-table zebra-striped" id="remote-repositories-table"
+                         data-bind="simpleGrid: gridViewModel,simpleGridTemplate:'ko_remote-repositoriesGrid',pageLinksId:'remote-repositoriesPagination',data:'remoteRepositories'">
+                  </table>
+                  <div id="remote-repositoriesPagination"></div>
+              </div>
+              <div id="remote-repository-edit" data-bind='template: {name:"remote-repository-edit-tmpl"}'>
+              </div>
+            </div>
     	</div>
       </div>
 </script>
@@ -271,4 +288,41 @@
   </div>
   <div><a href="#" onclick="$('#managed-repositories-pom-snippet').effect('blind')">${$.i18n.prop('hide')}</a></div>
   <pre>${$data}</pre>
+</script>
+
+<!-- remote part -->
+
+<script id='ko_remote-repositoriesGrid' type='text/x-jquery-tmpl'>
+  <thead>
+      <tr>
+        {{each(i, columnDefinition) columns}}
+          <th title="${ columnDefinition.title }">${ columnDefinition.headerText }</th>
+        {{/each}}
+        <th>${$.i18n.prop('edit')}</th>
+        <th>${$.i18n.prop('delete')}</th>
+        <th>${$.i18n.prop('remoterepository.downloadremoteindex')}</th>
+      </tr>
+  </thead>
+  <tbody>
+      {{each(i, row) itemsOnCurrentPage()}}
+          <tr>
+            {{each(j, columnDefinition) columns}}
+              <td>${ typeof columnDefinition.rowText == 'function' ? columnDefinition.rowText(row) : row[columnDefinition.rowText] }</td>
+            {{/each}}
+            <td><a href="#" data-bind="click: function(){ editRemoteRepository(row) }">${$.i18n.prop('edit')}</a></td>
+            <td>
+              <a href="#" data-bind="click: function(){ removeRemoteRepository(row) }">
+                <img src="images/edit-cut.png" title="${$.i18n.prop('delete')}"/>
+              </a>
+            </td>
+            <td>
+              <a href="#" data-bind="click: function(){ downloadRemoteIndex(row) }">
+                <img src="images/view-refresh.png" data-bind="click: function(){ downloadRemoteIndex(row) }"
+                     title="${$.i18n.prop('remoterepository.downloadremoteindex.now')}"/>
+              </a>
+            </td>
+          </tr>
+      {{/each}}
+  </tbody>
+
 </script>
\ No newline at end of file