Author: olamy
Date: Mon Feb 27 10:34:45 2012
New Revision: 1294098

URL: http://svn.apache.org/viewvc?rev=1294098&view=rev
Log:
start binding for searching

Modified:
    
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js
    
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/search.html

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js?rev=1294098&r1=1294097&r2=1294098&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js
 Mon Feb 27 10:34:45 2012
@@ -408,8 +408,67 @@ $(function() {
   // search part
   //-----------------------------------------
 
+  SearchRequest=function(){
+    //private String groupId;
+    this.groupId=ko.observable();
+
+    //private String artifactId;
+    this.artifactId=ko.observable();
+
+    //private String version;
+    this.version=ko.observable();
+
+    //private String packaging;
+    this.packaging=ko.observable();
+
+    //private String className;
+    this.className=ko.observable();
+
+    //private List<String> repositories = new ArrayList<String>();
+    this.repositories=ko.observableArray();
+
+    //private String bundleVersion;
+    this.bundleVersion=ko.observable();
+
+    //private String bundleSymbolicName;
+    this.bundleSymbolicName=ko.observable();
+
+    //private String bundleExportPackage;
+    this.bundleExportPackage=ko.observable();
+
+    //private String bundleExportService;
+    this.bundleExportService=ko.observable();
+
+    //private String classifier;
+    this.classifier=ko.observable();
+
+    //private boolean includePomArtifacts = false;
+    this.includePomArtifacts=ko.observable(false);
+  }
+
+
+  SearchParameters=function(){
+    this.basicQueryString=ko.observable();
+    this.searchRequest=ko.observable(new SearchRequest());
+  }
+
+  SearchViewModel=function(){
+    this.searchParameters=ko.observable(new SearchParameters());
+
+    basicSearch=function(){
+      $.log("query:"+this.searchParameters().basicQueryString())
+    }
+
+    advancedSearch=function(){
+      $.log("groupId:"+this.searchParameters().searchRequest().groupId());
+    }
+  }
+
   displaySearch=function(){
-    $("#main-content" ).html($("#search-artifacts-form" ).tmpl());
+    var mainContent=$("#main-content");
+    mainContent.html($("#search-artifacts-div-tmpl" ).tmpl());
+    var searchViewModel=new SearchViewModel();
+    
ko.applyBindings(searchViewModel,mainContent.find("#search-artifacts-div").get(0));
   }
 
 });
\ No newline at end of file

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/search.html
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/search.html?rev=1294098&r1=1294097&r2=1294098&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/search.html
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/search.html
 Mon Feb 27 10:34:45 2012
@@ -145,59 +145,76 @@
     </div>
   </div>
 </script>
+<script id="search-artifacts-div-tmpl" type="text/html">
+    <div id="search-artifacts-div" 
data-bind='template:{name:"search-artifacts-form-tmpl"}'>
+    </div>
+</script>
+<script id="search-artifacts-form-tmpl" type="text/html">
 
-<script id="search-artifacts-form" type="text/html">
   <div class="page-header">
     <h3>${$.i18n.prop('search.artifact.header')}</h3>
   </div>
   <div class="accordion" id="search-artifacts-accordion">
     <div class="accordion-group">
-        <div class="accordion-heading">
-          <a class="accordion-toggle" href="#search-form-collapse" 
data-parent="#search-artifacts-accordion" 
data-toggle="collapse">${$.i18n.prop('search.artifact.form.header')}</a>
-        </div>
-        <div id="search-form-collapse" class="accordion-body collapse in">
-          <div class="tabbable tabs-below">
-            <ul class="nav nav-tabs">
-              <li class="active">
-                <a href="#search-basic-form-pane" 
data-toggle="tab">${$.i18n.prop('search.artifact.search.form.basic')}</a>
-              </li>
-              <li>
-                <a href="#search-advanced-form-pane" 
data-toggle="tab">${$.i18n.prop('search.artifact.search.form.advanced')}</a>
-              </li>
-              <li>
-                <a href="#search-osgi-form-pane" 
data-toggle="tab">${$.i18n.prop('search.artifact.search.form.osgi')}</a>
-              </li>
-            </ul>
-            <div class="tab-content">
-              <div class="tab-pane active" id="search-basic-form-pane">
-                <form class="well form-horizontal" id="search-basic-form">
+      <div class="accordion-heading">
+        <a class="accordion-toggle" href="#search-form-collapse" 
data-parent="#search-artifacts-accordion" 
data-toggle="collapse">${$.i18n.prop('search.artifact.form.header')}</a>
+      </div>
+      <div id="search-form-collapse" class="accordion-body collapse in">
+        <div class="tabbable tabs-below">
+          <ul class="nav nav-tabs">
+            <li class="active">
+              <a href="#search-basic-form-pane" 
data-toggle="tab">${$.i18n.prop('search.artifact.search.form.basic')}</a>
+            </li>
+            <li>
+              <a href="#search-advanced-form-pane" 
data-toggle="tab">${$.i18n.prop('search.artifact.search.form.advanced')}</a>
+            </li>
+            <li>
+              <a href="#search-osgi-form-pane" 
data-toggle="tab">${$.i18n.prop('search.artifact.search.form.osgi')}</a>
+            </li>
+          </ul>
+          <div class="tab-content">
+            <div class="tab-pane active" id="search-basic-form-pane">
+              <form class="well form-horizontal" id="search-basic-form">
+                <fieldset>
+                  <div class="control-group">
+                    <label class="control-label" 
for="search-terms">${$.i18n.prop('search.artifact.search.form.query.terms')}</label>
+                    <div class="controls">
+                      <input type="text" class="input-medium search-query" 
id="search-terms" name="search-terms" size="50"
+                             data-bind="value: 
searchParameters().basicQueryString"/>
+                    </div>
+                  </div>
+                </fieldset>
+                <button type="submit" class="btn" data-bind="click: 
basicSearch">Search</button>
+              </form>
+            </div>
+            <div class="tab-pane" id="search-advanced-form-pane">
+                <form class="well form-horizontal" id="search-advanced-form">
                   <fieldset>
                     <div class="control-group">
-                      <label class="control-label" 
for="search-terms">${$.i18n.prop('search.artifact.search.form.query.terms')}</label>
+                      <label class="control-label" 
for="groupId">${$.i18n.prop('search.artifact.search.form.query.groupId')}</label>
                       <div class="controls">
-                        <input type="text" class="input-medium search-query" 
id="search-terms" name="search-terms" size="50"
-                               data-bind="value: managedRepository.name"/>
+                        <input type="text" class="input-medium search-query" 
id="groupId" name="groupId" size="50"
+                               data-bind="value: 
searchParameters().searchRequest().groupId"/>
                       </div>
                     </div>
                   </fieldset>
-                  <button type="submit" class="btn">Search</button>
+                  <button type="submit" class="btn" data-bind="click: 
advancedSearch">Search</button>
                 </form>
-              </div>
-              <div class="tab-pane" id="search-advanced-form-pane">
-                <p>advanced search form.</p>
-              </div>
-              <div class="tab-pane" id="search-osgi-form-pane">
-                <p>osgi search form.</p>
-              </div>
+            </div>
+            <div class="tab-pane" id="search-osgi-form-pane">
+              <p>osgi search form.</p>
             </div>
           </div>
         </div>
+      </div>
 
-        <div class="accordion-heading">
-          <a class="accordion-toggle" href="#search-results" 
data-parent="#search-artifacts-accordion" 
data-toggle="collapse">${$.i18n.prop('search.artifact.results.header')}</a>
-        </div>
-        <div id="search-results" class="accordion-body collapse">
-          results
-        </div>
+      <div class="accordion-heading">
+        <a class="accordion-toggle" href="#search-results" 
data-parent="#search-artifacts-accordion" 
data-toggle="collapse">${$.i18n.prop('search.artifact.results.header')}</a>
+      </div>
+      <div id="search-results" class="accordion-body collapse">
+        results
+      </div>
     </div>
+  </div>
+
 </script>
\ No newline at end of file


Reply via email to