Author: olamy
Date: Wed Jan 18 23:29:49 2012
New Revision: 1233120

URL: http://svn.apache.org/viewvc?rev=1233120&view=rev
Log:
add a mechanism in knockout simpleGrid binding to add callback subscribe on 
values change

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/knockout-debug.js
    
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/knockout.simpleGrid.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=1233120&r1=1233119&r2=1233120&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
 Wed Jan 18 23:29:49 2012
@@ -299,13 +299,16 @@ $(function() {
               title: "Repository type (default is Maven 2)"
               }
             ],
-            pageSize: 5
+            pageSize: 5,
+            gridUpdateCallBack: function(){
+              $.log("gridUpdateCallBack");
+              $("#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");
-          $("#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=1233120&r1=1233119&r2=1233120&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
 Wed Jan 18 23:29:49 2012
@@ -42,12 +42,11 @@
             <div id="managed-repositories-tabs-content" class="pill-content">
               <div id="managed-repositories-view" class="active">
                   <table class="bordered-table zebra-striped" 
id="managed-repositories-table"
-                         data-bind="simpleGrid: 
gridViewModel,simpleGridTemplate:'ko_managed-repositoriesGrid',pageLinksId:'managed-repositoriesPagination'">
+                         data-bind="simpleGrid: 
gridViewModel,simpleGridTemplate:'ko_managed-repositoriesGrid',pageLinksId:'managed-repositoriesPagination',data:'managedRepositories'">
                   </table>
                   <div id="managed-repositoriesPagination"></div>
               </div>
               <div id="managed-repository-edit" data-bind='template: 
{name:"managed-repository-edit-tmpl"}'>
-
               </div>
             </div>
        </div>

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/knockout-debug.js
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/knockout-debug.js?rev=1233120&r1=1233119&r2=1233120&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/knockout-debug.js
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/knockout-debug.js
 Wed Jan 18 23:29:49 2012
@@ -2743,6 +2743,7 @@ ko.exportSymbol('templateRewriting.apply
     }
 
     function executeTemplate(targetNodeOrNodeArray, renderMode, template, 
bindingContext, options) {
+
         options = options || {};
         var templateEngineToUse = (options['templateEngine'] || 
_templateEngine);
         ko.templateRewriting.ensureTemplateIsRewritten(template, 
templateEngineToUse);
@@ -2797,7 +2798,6 @@ ko.exportSymbol('templateRewriting.apply
 
                     // Support selecting template as a function of the data 
being rendered
                     var templateName = typeof(template) == 'function' ? 
template(bindingContext['$data']) : template; 
-
                     var renderedNodesArray = 
executeTemplate(targetNodeOrNodeArray, renderMode, templateName, 
bindingContext, options);
                     if (renderMode == "replaceNode") {
                         targetNodeOrNodeArray = renderedNodesArray;

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/knockout.simpleGrid.js
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/knockout.simpleGrid.js?rev=1233120&r1=1233119&r2=1233120&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/knockout.simpleGrid.js
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/knockout.simpleGrid.js
 Wed Jan 18 23:29:49 2012
@@ -15,7 +15,7 @@
     ko.simpleGrid = {
       // Defines a view model class you can use to populate a grid
       viewModel: function (configuration) {
-        this.data = configuration.data;
+        this.data = ko.observableArray(configuration.data);
         this.currentPageIndex = ko.observable(0);
         this.pageSize = configuration.pageSize || 5;
         this.columns = configuration.columns;
@@ -31,6 +31,8 @@
         this.i18n=function(key){
           return $.i18n.prop(key);
         };
+        this.gridUpdateCallBack = configuration.gridUpdateCallBack;
+        this.pageLinksUpdateCallBack = configuration.pageLinksUpdateCallBack;
       }
     };
 
@@ -54,11 +56,13 @@
 
           // Render the main grid
           var gridContainer = 
element.appendChild(document.createElement("DIV"));
-          ko.renderTemplate(gridTemplateName, viewModel, { templateEngine: 
templateEngine }, gridContainer, "replaceNode");
+          ko.renderTemplate(gridTemplateName, viewModel, { templateEngine: 
templateEngine }, gridContainer, "replaceNode")
+              
.subscribe(viewModel.gridUpdateCallBack?viewModel.gridUpdateCallBack:function(){});
 
           // Render the page links
           var pageLinksContainer = $("#"+allBindings.pageLinksId).get(0);
-          ko.renderTemplate(pageLinksTemplateName, viewModel, { 
templateEngine: templateEngine }, pageLinksContainer, "replaceNode");
+          ko.renderTemplate(pageLinksTemplateName, viewModel, { 
templateEngine: templateEngine }, pageLinksContainer, "replaceNode")
+              
.subscribe(viewModel.pageLinksUpdateCallBack?viewModel.pageLinksUpdateCallBack:function(){});
         }
     };
 })();
\ No newline at end of file


Reply via email to