http://git-wip-us.apache.org/repos/asf/drill/blob/9a48e688/sandbox/synth-log/src/test/java/org/apache/drill/synth/TermGeneratorTest.java
----------------------------------------------------------------------
diff --git 
a/sandbox/synth-log/src/test/java/org/apache/drill/synth/TermGeneratorTest.java 
b/sandbox/synth-log/src/test/java/org/apache/drill/synth/TermGeneratorTest.java
deleted file mode 100644
index b983eb2..0000000
--- 
a/sandbox/synth-log/src/test/java/org/apache/drill/synth/TermGeneratorTest.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/**
- * 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.
- */
-package org.apache.drill.synth;
-
-import com.google.common.base.Function;
-import com.google.common.collect.*;
-import org.apache.commons.math3.distribution.NormalDistribution;
-import org.apache.mahout.math.stats.LogLikelihood;
-import org.junit.Test;
-
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-public class TermGeneratorTest {
-
-    private static final WordGenerator WORDS = new 
WordGenerator("word-frequency-seed", "other-words");
-
-    @Test
-    public void generateTerms() {
-        TermGenerator x = new TermGenerator(WORDS, 1, 0.8);
-        final Multiset<String> counts = HashMultiset.create();
-        for (int i = 0; i < 10000; i++) {
-            counts.add(x.sample());
-        }
-
-        assertEquals(10000, counts.size());
-        assertTrue("Should have some common words", counts.elementSet().size() 
< 10000);
-        List<Integer> k = 
Lists.newArrayList(Iterables.transform(counts.elementSet(), new 
Function<String, Integer>() {
-            public Integer apply(String s) {
-                return counts.count(s);
-            }
-        }));
-//        System.out.printf("%s\n", 
Ordering.natural().reverse().sortedCopy(k).subList(0, 30));
-//        System.out.printf("%s\n", 
Iterables.transform(Iterables.filter(counts.elementSet(), new 
Predicate<String>() {
-//            public boolean apply(String s) {
-//                return counts.count(s) > 100;
-//            }
-//        }), new Function<String, String>() {
-//            public String apply(String s) {
-//                return s + ":" + counts.count(s);
-//            }
-//        }));
-        assertEquals(1, Ordering.natural().leastOf(k, 1).get(0).intValue());
-        assertTrue(Ordering.natural().greatestOf(k, 1).get(0) > 300);
-        assertTrue(counts.count("the") > 300);
-    }
-
-    @Test
-    public void distinctVocabularies() {
-        TermGenerator x1 = new TermGenerator(WORDS, 1, 0.8);
-        final Multiset<String> k1 = HashMultiset.create();
-        for (int i = 0; i < 50000; i++) {
-            k1.add(x1.sample());
-        }
-
-        TermGenerator x2 = new TermGenerator(WORDS, 1, 0.8);
-        final Multiset<String> k2 = HashMultiset.create();
-        for (int i = 0; i < 50000; i++) {
-            k2.add(x2.sample());
-        }
-
-        final NormalDistribution normal = new NormalDistribution();
-        List<Double> scores = 
Ordering.natural().sortedCopy(Iterables.transform(k1.elementSet(),
-                new Function<String, Double>() {
-                    public Double apply(String s) {
-                        return 
normal.cumulativeProbability(LogLikelihood.rootLogLikelihoodRatio(k1.count(s), 
50000 - k1.count(s), k2.count(s), 50000 - k2.count(s)));
-                    }
-                }));
-        int n = scores.size();
-//        System.out.printf("%.5f, %.5f, %.5f, %.5f, %.5f, %.5f, %.5f", 
scores.get(0), scores.get((int) (0.05*n)), scores.get(n / 4), scores.get(n / 
2), scores.get(3 * n / 4), scores.get((int) (0.95 * n)), scores.get(n - 1));
-        int i = 0;
-        for (Double score : scores) {
-            if (i % 10 == 0) {
-                System.out.printf("%.6f\t%.6f\n", (double) i / n, score);
-            }
-
-            i++;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/9a48e688/sandbox/synth-log/src/test/java/org/apache/drill/synth/WordGeneratorTest.java
----------------------------------------------------------------------
diff --git 
a/sandbox/synth-log/src/test/java/org/apache/drill/synth/WordGeneratorTest.java 
b/sandbox/synth-log/src/test/java/org/apache/drill/synth/WordGeneratorTest.java
deleted file mode 100644
index 0bfdf06..0000000
--- 
a/sandbox/synth-log/src/test/java/org/apache/drill/synth/WordGeneratorTest.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * 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.
- */
-package org.apache.drill.synth;
-
-import org.junit.Test;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-public class WordGeneratorTest {
-    @Test
-    public void checkRealWords() {
-        WordGenerator words = new WordGenerator("word-frequency-seed", 
"other-words");
-        for (int i = 0; i < 20000; i++) {
-            assertFalse(words.getString(i).matches("-[0-9]+"));
-        }
-
-        for (int i = 0; i < 1000; i++) {
-            String w = words.getString(i + 200000);
-            assertTrue(w.matches(".*-[0-9]+"));
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/9a48e688/sandbox/web-frontend/.htaccess
----------------------------------------------------------------------
diff --git a/sandbox/web-frontend/.htaccess b/sandbox/web-frontend/.htaccess
deleted file mode 100644
index b651e0b..0000000
--- a/sandbox/web-frontend/.htaccess
+++ /dev/null
@@ -1,2 +0,0 @@
-RewriteEngine on 
-RewriteRule ^q/(.*)$ http://140.203.155.169:6996/q/$1 [P]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/drill/blob/9a48e688/sandbox/web-frontend/README.md
----------------------------------------------------------------------
diff --git a/sandbox/web-frontend/README.md b/sandbox/web-frontend/README.md
deleted file mode 100644
index eb4423d..0000000
--- a/sandbox/web-frontend/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-#Apache Drill front-end
-
-A [bootstrap.js](http://twitter.github.com/bootstrap/ "Twitter 
Bootstrap")-based Web app front-end for Apache Drill. This software is licensed 
under Apache 2.0 Software License. In case you have any questions, ask [Michael 
Hausenblas](http://mhausenblas.info/ "Michael Hausenblas").
-
-Note: for now, you have to *once* configure the back-end URL for the  online 
demo: set it to `http://srvgal85.deri.ie/apache-drill/` in the configuration 
dialog.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/drill/blob/9a48e688/sandbox/web-frontend/drill.css
----------------------------------------------------------------------
diff --git a/sandbox/web-frontend/drill.css b/sandbox/web-frontend/drill.css
deleted file mode 100644
index 1524581..0000000
--- a/sandbox/web-frontend/drill.css
+++ /dev/null
@@ -1,98 +0,0 @@
-/*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.*/
-
-body {
-       padding-top: 60px;
-       padding-bottom: 40px;
-}
-.hero-unit {
-       width: 60%;
-       padding: 50px;
-       text-align: justify;
-}
-.hero-unit h1 {
-       margin: 0 0 20px 0;
-}
-legend {
-       margin: 20px 0 10px 0;
-}
-label {
-       font-weight: bold;
-}
-.sidebar-nav {
-       padding: 10px;
-}
-.active {
-       background: #fefefe;
-       -webkit-border-radius: 4px;
-       -moz-border-radius: 4px;
-       border-radius: 4px;
-}
-#project-list {
-       margin: 40px 0;
-}
-.project-entry {
-       border-top: 1px solid #eaeaea;
-       margin: 40px 0 20px 0;
-       padding: 10px 10px 2px 15px;
-}
-.project-main {
-       cursor: pointer;
-}
-.project-meta {
-       font-size: 85%;
-       margin: 0;
-       padding: 0 0 0 0;
-}
-.datasource-entry-container {
-       margin: 10px 0 0 20px;
-}
-.datasource-entry {
-       margin: 5px 0 15px 20px;
-}
-.target {
-       -webkit-border-radius: 4px;
-       -moz-border-radius: 4px;
-       border-radius: 4px;
-       padding: 3px;
-}
-.renderjson-object {
-       border: 1px solid #c0c0c0;
-       -webkit-border-radius: 2px;
-       -moz-border-radius: 2px;
-       border-radius: 2px;
-       padding: 10px;
-       margin: 0 0 20px 20px;
-}
-.renderjson-key {
-       font-weight: bold;
-}
-.renderjson-value {
-       padding: 0 0 5px 10px;
-}
-.apache-logo {
-       text-align: right;
-}
-pre {
-       font-size: 80%;
-       margin: 0 0 25px 0;
-}
-footer {
-       border-top: 1px solid #eee;
-       margin: 4em 0 0 0;
-       padding: 20px;
-       text-align: justify;
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/9a48e688/sandbox/web-frontend/drill.js
----------------------------------------------------------------------
diff --git a/sandbox/web-frontend/drill.js b/sandbox/web-frontend/drill.js
deleted file mode 100644
index bbc1b9d..0000000
--- a/sandbox/web-frontend/drill.js
+++ /dev/null
@@ -1,449 +0,0 @@
-/**
- * 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.
- */
-
-// Drill frontend settings
-var MAX_PROJECTS = 100;
-var MAX_DATASOURCES = 100;
-var DRILL_BACKEND_URL = 'http://localhost:6996';
-
-// don't touch the following - internal settings
-var drillstorage = window.localStorage;
-var backendURL = DRILL_BACKEND_URL;
-var projectnum = 0;
-
-$(function(){
-       initForms();
-       
-       // handling of configuration
-       $('#config, #menu-config').click(function(){
-               $('#config-dialog').modal('toggle');
-               return false;
-       });
-       $('#config-form').submit(function() {
-               return saveConfiguration();
-       });
-       $('#config-drill-reset').click(function(){
-               var dconfig = { backendURL: DRILL_BACKEND_URL };
-               backendURL = DRILL_BACKEND_URL;
-               $('#config-drill-backend-url').val(backendURL);
-               _store('config', dconfig);
-               return false;
-       });
-       
-       // handling of about
-       $('#menu-about').click(function(){
-               $('#about-dialog').modal('toggle');
-               return false;
-       });
-
-       // handling of projects
-       $('#project-create').click(function(){
-               $('#project-title').val('');
-               $('#current-project').text('NONE');
-               $('#project-create-form').fadeIn('slow');
-               return false;
-       });
-       $('#project-create-cancel').click(function(){
-               $('#project-create-form').hide();
-               return false;
-       });
-       $('#project-create-form').submit(function() {
-               var ptitle = $('#project-title').val();
-               var project = { timestamp : new Date() , ptitle: ptitle };
-               var apid;
-               
-               if (ptitle) {
-                       if($('#current-project').text() == 'NONE') apid = 
_store('project', project);
-                       else apid = _store('project', project, 
$('#current-project').text());
-                       $('#current-project').html(apid);
-                       $('#project-create-form').hide();
-                       listProjects();
-                       return true;
-               }
-               return false;
-       });
-       $('.project-entry .project-main').live('click', function(event){ // 
deal with project selection 
-               var key = $(this).parent().attr('id'); // using @id of the 
selected project entry, with current element: div/div
-               $('#current-project').html(key); // ... remember it globaly ...
-               listProjects(); // ... and highlight in project list as the 
active one
-               return false;
-       });
-       $('.project-entry .icon-trash').live('click', function(event){ // deal 
with project deletion
-               var response = confirm('Are you sure you want to delete this 
project and all data sources within it? Note that this action can not be undone 
...');
-               var pid = $(this).parent().parent().parent().attr('id');  // 
using @id of the project entry, with current element: div/div/a/i
-               var idx = 0;
-               var ds;
-               
-               if (response) {
-                       // first, remove data sources in project, if they exist 
...
-                       while(true){
-                               ds = _read('drill_ds_' + pid + '_' + idx);
-                               if (idx > MAX_DATASOURCES) {
-                                       break;
-                               } 
-                               else {
-                                       if(ds){
-                                               _remove('drill_ds_' + pid + '_' 
+ idx);
-                                               
resetTargetDataSource('drill_ds_' + pid + '_' + idx);
-                                       }
-                                       idx += 1;
-                               }
-                       }
-                       // ... and then remove the project itself ...
-                       _remove(pid);
-                       listProjects();
-               }
-       });
-       $('.project-entry .icon-edit').live('click', function(event){ // deal 
with project rename
-               var pid = $(this).parent().parent().parent().attr('id'); // 
using @id of the project entry, with current element: div/div/a/i
-               var ptitle = _read(pid).ptitle;
-               $('#current-project').text(pid);
-               $('#project-title').val(ptitle);
-               $('#project-create-form').fadeIn('slow');
-               listProjects();
-               return false;
-       });
-       $('#project-help').click(function(){
-               $('#project-help-alert').fadeIn('slow');
-               return false;
-       });
-
-       // handling of data sources
-       $('.project-entry .add-ds').live('click', function(event){ // deal with 
data source addition to project
-               var key = $(this).parent().parent().attr('id'); // using @id of 
the selected project entry, with current element: div/div/button
-               $('#current-project').html(key); // ... to remember it globaly 
...
-               $('#datasource-id').val('');
-               $('#datasource-add-form').fadeIn('slow');
-               return false;
-    });
-    $('#datasource-add-cancel').click(function(){
-               $('#datasource-add-form').hide();
-               return false;
-    });
-       $('#datasource-add-form').submit(function() {
-               var pid = $('#current-project').text();
-               var dsid = $('#datasource-id').val();
-               var ds = { timestamp : new Date(), pid: pid, dsid: dsid };
-               
-               if (dsid) {
-                       _store('ds', ds);
-                       $('#datasource-add-form').hide();
-                       listProjects();
-                       return true;
-               }
-               return false;
-       });
-       $('.project-entry .project-main .datasource-entry').live('click', 
function(event){ // deal with data source selection
-               var key = $('.dsid', this).attr('id'); // using @id of the 
child span that has a dsid class on it ...
-               setTargetDataSource(key); // ... to remember it globaly ...
-               listProjects(); // ... and to highlight in project list as the 
active one
-               return false;
-       });
-       
-       // execute a query - either via button click or by hitting ENTER in the 
text area
-       $('#drill-query-execute').click(function(){
-               executeQuery();
-               return false;
-       });
-       $('#drill-query').keypress(function(e) {
-               if (e.keyCode == 13 && e.shiftKey) {
-                       e.preventDefault();
-                       executeQuery();
-                       return false;
-               }
-       });
-});
-
-// init all forms (about, config, project list, etc.)
-function initForms() {
-       var dconfig = _read('drill_config');
-       var apid = $('#current-project').text();
-       var tmp;
-       
-       //TODO: store last selected target data source
-       if(dconfig) {
-               backendURL = dconfig.backendURL;
-               $('#config-drill-backend-url').val(backendURL);
-               console.log('CONFIG: using backend ' + backendURL);
-               if(dconfig.targetds) {
-                       $('#current-ds').text(dconfig.targetds); // something 
like 'drill_ds_drill_project_3_1'
-                       tmp = dconfig.targetds.split('_');
-                       apid = tmp[2] + '_' + tmp[3] + '_' + tmp[4]; // extraxt 
from targetds: 'drill_ds_drill_project_3_1' -> 'drill_project_3'
-                       $('#current-project').html(apid);
-                       console.log('CONFIG: active project is [' + apid + '], 
target data source is [' + dconfig.targetds + ']');
-               }
-       }
-       else {
-               $('#config-drill-backend-url').val(backendURL);
-       }
-       listProjects();
-       console.log('CONFIG: all projects ready.');
-       
-       // UI setup:
-       $('#tutorial').popover({
-               title : 'Apache Drill Tutorial',
-               html: true, 
-               content : '<p><small>A screen cast about how to use the 
front-end will be available on 15 Oct 2012.</small></p><p><small>For now, 
configure the back-end with <code>http://srvgal85.deri.ie/apache-drill</code> 
and create a project that contains a data source with the identifier 
<code>apache_drill</code>.</small></p>', 
-               placement : 'bottom'
-       });
-
-       $('#config-dialog').modal({
-               backdrop: true,
-               keyboard: true,
-               show: false
-       });
-       
-       $('#about-dialog').modal({
-               backdrop: true,
-               keyboard: true,
-               show: false
-       });
-       
-       $('#help-dialog').modal({
-               backdrop: false,
-               keyboard: true,
-               show: false
-       });
-}
-
-// persists all user and system settings
-function saveConfiguration(){
-       var bURL = $('#config-drill-backend-url').val();
-       var targetds = $('#current-ds').text();
-       var dconfig = { backendURL: bURL, targetds : targetds };
-       
-       if (bURL && targetds) {
-               backendURL = bURL;
-               _store('config', dconfig);
-               return true;
-       }
-       return false;
-}
-
-// sets and automatically saves target data source
-function setTargetDataSource(dsid){
-       $('#current-ds').text(dsid);
-       return saveConfiguration();
-}
-
-// removes stored taarget data source if match
-function resetTargetDataSource(dsid){
-       var targetds = $('#current-ds').text();
-       
-       if (targetds == dsid) {
-               $('#current-ds').text('NONE');
-               return saveConfiguration();
-       }
-       else return false;
-}
-
-// executes the query against a Dummy Drill back-end
-function executeQuery(){
-       var drillquery = $('#drill-query').val();
-       var seldsid = $('#current-ds').text();
-       var ds = _read(seldsid);
-       
-       if(drillquery){
-               if(ds){
-                       $('#drill-results-meta').html('');
-                       $('#drill-results').html('');
-                       $.ajax({
-                               type: "GET",
-                               url: backendURL +'/q/' + ds.dsid + '/' + 
drillquery,
-                               dataType : "json",
-                               success: function(data){
-                                       if(data) {
-                                               
$('#drill-results-meta').html('<p class="text-info lead">Number of results: 
<strong>' + data.length + '</strong></p>');
-                                               
$('#drill-results').renderJSON(data);
-                                       }
-                               },
-                               error:  function(msg){
-                                       $('#drill-results-meta').html('');
-                                       $('#drill-results').html('<div 
class="alert alert-error"><button type="button" class="close" 
data-dismiss="alert">×</button><h4>Something went wrong. Might check your 
configuration, check if the data source exists and make sure your query is 
properly formatted.</h4><div style="margin: 20px"><pre>' + JSON.stringify(msg) 
+ '</pre></div></div>');
-                               } 
-                       });
-               }
-               else {
-                       alert("Can't execute the query: please select a data 
source to execute the query against.");
-               }
-       }
-       else {
-               alert("Can't execute the query: please provided a query value, 
try for example 'name:jane' ...");
-       }
-}
-
-
-/////////////////////////////////////////////////////
-// low-level storage API using localStorage 
-// check http://caniuse.com/#feat=namevalue-storage
-// if your browser supports it
-
-// lists all projects, the selected project and data source
-function listProjects(){
-       var i = 0; // project pointer
-       var j = 0; // data source pointer
-       var buf = '';
-       var selpid = $('#current-project').text();
-       var seldsid = $('#current-ds').text();
-       
-       $('#project-list').html('');
-       
-       while(true){
-               var pid = 'drill_project_' + i;
-               var project = _read(pid);
-               
-               if (i > MAX_PROJECTS) return; // respect limit
-               
-               if(project) {
-                       buf = '';
-                       
-                       if(selpid && (pid == selpid)) { // highligt selected 
project
-                               buf = '<div class="active project-entry" ';
-                               console.log('The active project is: ' + selpid);
-                       }
-                       else {
-                               buf = '<div class="project-entry" ';
-                       }
-                       buf += 'id="' + pid + '">';
-                       buf += '<div style="text-align: right"><button 
class="btn btn-small btn-primary add-ds" type="button" title="Add a new data 
source to this project ..."><i class="icon-plus icon-white"></i> Add Data 
Source</button> ';
-                       buf += '<a class="btn btn-small" href="#" title="Edit 
project ..."><i class="icon-edit"></i></a> ';
-                       buf += '<a class="btn btn-small" href="#" title="Delete 
project ..."><i class="icon-trash"></i></a></div>';
-                       buf += '<div class="project-main"><h4>' + 
project.ptitle + '</h4>';
-                       buf += '<p class="project-meta muted">Last update: ' +  
formatDateHuman(project.timestamp) + '</p>';
-                       if(selpid && (pid == selpid)) { // show data sources of 
selected project
-                               buf += '<div 
class="datasource-entry-container"><h5>Data sources:</h5>';
-                               while(true){
-                                       var dsid = 'drill_ds_drill_project_' + 
i + '_' + j;
-                                       var ds = _read(dsid);
-                                       
-                                       if (j > MAX_DATASOURCES) break; // 
respect limit
-                                       
-                                       if(ds){
-                                               if(seldsid && (dsid == 
seldsid)) { // highligt selected data source
-                                                       buf += '<div 
class="target datasource-entry btn-success"><i class="icon-file 
icon-white"></i> <span class="dsid" id="' + dsid +'">' + ds.dsid 
+'</span></div>';
-                                                       console.log('The target 
data source for the query is: ' + seldsid);
-                                               }
-                                               else {
-                                                       buf += '<div 
class="datasource-entry"><i class="icon-file"></i> <span class="dsid" id="' + 
dsid +'">' + ds.dsid +'</span></div>';
-                                               }
-                                       }
-                                       j += 1;
-                               }
-                               if(_find_latest_ds_in(pid) == 0) buf += '<div 
class="alert alert-info">No data sources added so far! Use the "Add Data 
Source" button above to add some ...</div></div>';
-                               else buf += '</div>';
-                       }
-                       else {
-                               buf += '<p class="project-meta muted">Data 
sources: ' +  _find_latest_ds_in(pid) + '</p>';
-                       }
-                       buf += '</div></div>';
-                       $('#project-list').append(buf);
-                       projectnum = i;
-               }
-               i += 1;
-       }
-}
-
-// takes a string in ISO8601 (http://en.wikipedia.org/wiki/ISO_8601) format 
such as `2012-10-14T12:48:28.478Z` and turns it in something human readable
-function formatDateHuman(iso8601datetime) {
-       var now = new Date(Date.now());
-       var today = now.toISOString().split('T')[0];
-       var date = iso8601datetime.split('T')[0]; // 2012-10-14T12:48:28.478Z 
-> 2012-10-14
-       var time = iso8601datetime.split('T')[1]; // 2012-10-14T12:48:28.478Z 
-> 12:48:28.478Z
-       var hms = time.split('.')[0]; // 12:48:28
-       
-       if(date == today) return 'Today at ' + hms + ' UTC';
-       else return date + ' at ' + hms + ' UTC';
-}
-
-// creates/stores an entry under the category; if key is provided, entry is 
updated
-function _store(category, entry, ekey) {
-       var key = 'drill_';
-       var project;
-       
-       if(category == 'config') {
-               key += 'config';
-       }
-       else {
-               if(category == 'project') {
-                       if(ekey){
-                               key = ekey;
-                       }
-                       else{
-                               projectnum += 1;
-                               if (projectnum > MAX_PROJECTS) {
-                                       alert('Maximum number of projects 
reached!');
-                                       return;
-                               }
-                               key += 'project_' + projectnum;
-                       }
-               }
-               else {
-                       if(category == 'ds') {
-                               key += 'ds_' + entry.pid + '_' + 
(_find_latest_ds_in(entry.pid) + 1);
-                       }
-                       else return; // can only store known entry categories
-               }
-       }
-       drillstorage.setItem(key, JSON.stringify(entry));
-       return key;
-}
-
-function _find_latest_ds_in(pid){
-       var idx = 0;
-       var ds;
-       var last_idx = idx;
-       
-       while(true){
-               ds = _read('drill_ds_' + pid + '_' + idx);
-               
-               if (idx > MAX_DATASOURCES) {
-                       return last_idx;
-               } 
-               else {
-                       if(ds){
-                               last_idx = idx;
-                       }
-                       idx += 1;
-               }
-       }
-}
-
-function _remove(key){
-       drillstorage.removeItem(key);
-}
-
-function _read(key){
-       return JSON.parse(drillstorage.getItem(key));
-}
-
-
-///////////////////
-// utility methods
-
-// 
http://stackoverflow.com/questions/2573521/how-do-i-output-an-iso-8601-formatted-string-in-javascript
-if (!Date.prototype.toISOString) {
-       Date.prototype.toISOString = function() {
-               function pad(n) { return n < 10 ? '0' + n : n }
-               return  this.getUTCFullYear() + '-'
-                               + pad(this.getUTCMonth() + 1) + '-'
-                               + pad(this.getUTCDate()) + 'T'
-                               + pad(this.getUTCHours()) + ':'
-                               + pad(this.getUTCMinutes()) + ':'
-                               + pad(this.getUTCSeconds()) + 'Z';
-       };
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/9a48e688/sandbox/web-frontend/dummy-drill/README.md
----------------------------------------------------------------------
diff --git a/sandbox/web-frontend/dummy-drill/README.md 
b/sandbox/web-frontend/dummy-drill/README.md
deleted file mode 100644
index 8b80652..0000000
--- a/sandbox/web-frontend/dummy-drill/README.md
+++ /dev/null
@@ -1,151 +0,0 @@
-# Dummy Drill
-
-This is a Drill dummy-backend, used in the Apache Drill front-end, to simulate 
the real backend (as long as we don't have one).
-
-## Usage
-
-### 0. Launching elasticsearch
-
-Got to the directory where you have 
[elasticsearch](http://www.elasticsearch.org/), ES for short in the following, 
installed and launch it:
-
-       $ bin/elasticsearch -f
-
-If you now `curl http://localhost:9200/` you should see:
-
-       HTTP/1.1 200 OK
-       Content-Length: 172
-       Content-Type: application/json; charset=UTF-8
-
-       {
-               "name": "Blindspot", 
-               "ok": true, 
-               "status": 200, 
-               "tagline": "You Know, for Search", 
-               "version": {
-                       "number": "0.19.9", 
-                       "snapshot_build": false
-               }
-       }
-
-### 1. Generate data sources
-
-First, you want to generate a number of data sources (here: JSON documents 
with random information about beer-preferences of people). Let's create 200 
data sources:
-
-        $ python gen_ds.py 200
-
-The `gen_ds.py` script will generate as many data sources as you tell it to in 
a sub-directory of the current directory called `ds` and add each to the 
`apache_drill` index in ES.  If you now inspect the `ds` directory, you should 
see 200 JSON documents, each looking something like:
-
-       {
-               "beer": "Bud,Paulaner Hefe-Weizen,Bud",
-               "id": 1,
-               "name": "Jane Masters",
-               "created": "2012-09-30T18:02:16Z"
-       }
-       
-You might want to check if all is well (note that I'm using 
[httpie](https://github.com/jkbr/httpie) here in the following to talk HTTP 
with the server but feel free to use `curl`). Now try the following - I'm 
assuming you're running ES at port `9200`:
-
-       $ http http://localhost:9200/apache_drill/_search?q=name:jane
-       
-... and you should get something like this:
-
-       {
-               "took": 1,
-               "timed_out": false,
-               "_shards": {
-                       "total": 5,
-                       "successful": 5,
-                       "failed": 0
-               },
-               "hits": {
-                       "total": 41,
-                       "max_score": 2.338025,
-                       "hits": [{
-                               "_index": "apache_drill",
-                               "_type": "beer_pref",
-                               "_id": "9HORJCZtQFa-yTQyMGiAOg",
-                               "_score": 2.338025,
-                               "_source": {
-                                       "beer": "Guinness,Bud,Guinness",
-                                       "id": 259,
-                                       "name": "Jane Smith",
-                                       "created": "2012-10-13T17:29:48Z"
-                               }
-                       },
-                       ...
-                       }]
-               }
-       }
-
-For a date-range query such as:
-
-       $ http 
http://localhost:9200/apache_drill/_search?q=created:%5B2012-10-13T17:29:48Z%20TO%202012-10-13:17:29:48Z%5D
-       
-... you should see approximately the following:
-
-       {
-               "took": 2,
-               "timed_out": false,
-               "_shards": {
-                       "total": 5,
-                       "successful": 5,
-                       "failed": 0
-               },
-               "hits": {
-                       "total": 500,
-                       "max_score": 1.0,
-                       "hits": [{
-                               "_index": "apache_drill",
-                               "_type": "beer_pref",
-                               "_id": "2s34_2xxSUCYmPLJzG7FyQ",
-                               "_score": 1.0,
-                               "_source": {
-                                       "beer": "Paulaner Hefe-Weizen,Sierra 
Nevada's Pale Ale,Heineken",
-                                       "id": 4,
-                                       "name": "Sarah Masters",
-                                       "created": "2012-10-13T17:29:48Z"
-                               }
-                       },
-                       ...
-                       }]
-               }
-       }
-
-
-
-
-### 2. Launching the back-end
-
-       $ python dummy_drill.py
-
-       2012-09-30T08:33:13 Apache Dummy Drill server started, use {Ctrl+C} to 
shut-down ...
-       2012-09-30T08:33:13 Using elasticsearch interface at 127.0.0.1:9200
-       
-### 3. Testing the back-end
-
-       $ http http://localhost:6996/q/name:jane
-       
-       [{
-               "beer": "Guinness,Bud,Guinness",
-               "created": "2012-10-13T17:29:48Z",
-               "id": 259,
-               "name": "Jane Smith"
-       }, 
-       ...
-       {
-               "beer": "Heineken,Paulaner Hefe-Weizen,Sierra Nevada's Pale 
Ale",
-               "created": "2012-10-13T17:29:49Z",
-               "id": 472,
-               "name": "Jane van Rhein"
-       }]
-       
-
-       
-## Dependencies
-
-* Python 2.7
-* [elasticsearch](http://www.elasticsearch.org/)
-* [pyes](https://github.com/aparo/pyes) - Python ElasticSearch
-
-## License
-
-This software is licensed under Apache 2.0 Software License. In case you have 
any questions, ask [Michael Hausenblas](http://mhausenblas.info/ "Michael 
Hausenblas").
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/drill/blob/9a48e688/sandbox/web-frontend/dummy-drill/dummy_drill.py
----------------------------------------------------------------------
diff --git a/sandbox/web-frontend/dummy-drill/dummy_drill.py 
b/sandbox/web-frontend/dummy-drill/dummy_drill.py
deleted file mode 100644
index 364b5bd..0000000
--- a/sandbox/web-frontend/dummy-drill/dummy_drill.py
+++ /dev/null
@@ -1,86 +0,0 @@
-"""
-Provides a dummy back-end for the Apache Drill front-end. 
-
-Copyright (c) 2012 The Apache Software Foundation, Licensed under the Apache 
License, Version 2.0.
-
-@author: Michael Hausenblas, http://mhausenblas.info/#i
-@since: 2012-09-30
-@status: init
-"""
-
-import sys, os, logging, datetime, random, json
-from BaseHTTPServer import BaseHTTPRequestHandler
-from pyes import *
-from pyes.exceptions import *
-
-# configuration
-DEBUG = True
-DS_DIR = 'ds'
-ES_INTERFACE = '127.0.0.1:9200'
-DRILL_INDEX = 'apache_drill'
-BEER_PREF_TYPE = 'beer_pref'
-DRILL_DUMMY_PORT = 6996
-
-if DEBUG:
-       FORMAT = '%(asctime)-0s %(levelname)s %(message)s [at line %(lineno)d]'
-       logging.basicConfig(level=logging.DEBUG, format=FORMAT, 
datefmt='%Y-%m-%dT%I:%M:%S')
-else:
-       FORMAT = '%(asctime)-0s %(message)s'
-       logging.basicConfig(level=logging.INFO, format=FORMAT, 
datefmt='%Y-%m-%dT%I:%M:%S')
-
-
-class ApacheDrillDummyServer(BaseHTTPRequestHandler):
-
-       def do_GET(self):
-               # API calls
-               if self.path.startswith('/q/'): # pattern: /q/INDEX/QUERY
-                       logging.debug("Processing %s" %(self.path))
-                       self.serve_query(self.path.split('/')[-2], 
self.path.split('/')[-1])
-               else:
-                       self.send_error(404,'File Not Found: %s' % self.path)
-               return
-
-       # changes the default behavour of logging everything - only in DEBUG 
mode
-       def log_message(self, format, *args):
-               if DEBUG:
-                       try:
-                               BaseHTTPRequestHandler.log_message(self, 
format, *args)
-                       except IOError:
-                               pass
-               else:
-                       return
-
-       # serves remote content via forwarding the request
-       def serve_query(self, lucindex, q):
-               logging.debug('Querying ES on index %s with query %s' 
%(lucindex, q))
-               try:
-                       results = self.query(lucindex, q)
-                       self.send_response(200)
-                       self.send_header('Content-type', 'application/json')
-                       self.send_header('Access-Control-Allow-Origin', '*') # 
enable CORS - http://enable-cors.org/#how
-                       self.end_headers()
-                       self.wfile.write(json.JSONEncoder().encode(results))
-               except IndexMissingException:
-                       self.send_error(404,'The data source %s does not 
exist.' % lucindex)
-
-       def query(self, lucindex, query_str):
-               """Executes a query against the existing Drill index in 
elasticsearch."""
-               result_list = []
-               connection = ES(ES_INTERFACE)
-               connection.refresh()
-               q = Search(StringQuery(query_str))
-               results = connection.search(q, indices=[lucindex])
-               for r in results:
-                       result_list.append(r)
-               return result_list
-
-if __name__ == '__main__':
-       try:
-               from BaseHTTPServer import HTTPServer
-               server = HTTPServer(('', DRILL_DUMMY_PORT), 
ApacheDrillDummyServer)
-               logging.info('Apache Dummy Drill server started, use {Ctrl+C} 
to shut-down ...')
-               logging.info("Using elasticsearch interface at %s" 
%(ES_INTERFACE))
-               server.serve_forever()
-       except Exception, e:
-               logging.error(e)
-               sys.exit(2)     

http://git-wip-us.apache.org/repos/asf/drill/blob/9a48e688/sandbox/web-frontend/dummy-drill/gen_ds.py
----------------------------------------------------------------------
diff --git a/sandbox/web-frontend/dummy-drill/gen_ds.py 
b/sandbox/web-frontend/dummy-drill/gen_ds.py
deleted file mode 100644
index de001c0..0000000
--- a/sandbox/web-frontend/dummy-drill/gen_ds.py
+++ /dev/null
@@ -1,100 +0,0 @@
-"""
-Generates dummy data for the Apache Drill front-end. 
-
-Copyright (c) 2012 The Apache Software Foundation, Licensed under the Apache 
License, Version 2.0.
-
-@author: Michael Hausenblas, http://mhausenblas.info/#i
-@since: 2012-09-30
-@status: init
-"""
-
-import sys, os, logging, datetime, random, json
-from pyes import *
-
-# configuration
-DEBUG = False
-DS_DIR = 'ds'
-ES_INTERFACE = '127.0.0.1:9200'
-DRILL_INDEX = 'apache_drill'
-BEER_PREF_TYPE = 'beer_pref'
-
-if DEBUG:
-       FORMAT = '%(asctime)-0s %(levelname)s %(message)s [at line %(lineno)d]'
-       logging.basicConfig(level=logging.DEBUG, format=FORMAT, 
datefmt='%Y-%m-%dT%I:%M:%S')
-else:
-       FORMAT = '%(asctime)-0s %(message)s'
-       logging.basicConfig(level=logging.INFO, format=FORMAT, 
datefmt='%Y-%m-%dT%I:%M:%S')
-
-
-def setup_ES(con_str):
-       """Sets up elasticsearch interface, resets existing Drill index and 
creates a new Drill index based on a simple mapping."""
-       logging.info("Setting up elasticsearch interface at %s" %(con_str))
-       connection = ES(con_str)
-       try:
-               connection.delete_index(DRILL_INDEX) # make sure to reset 
existing Drill index
-       except:
-               pass
-               
-       connection.create_index(DRILL_INDEX)
-       mapping = {     u'id': {
-                                       'index': 'not_analyzed',
-                                       'store': 'yes',
-                                       'type': u'integer'
-                               },
-                               u'name': {
-                                       'boost': 1.0,
-                                       'index': 'analyzed',
-                                       'store': 'yes',
-                                       'type': u'string',
-                                       "term_vector" : "with_positions_offsets"
-                               },
-                               u'created': {
-                                       'boost': 1.0,
-                                       'index': 'analyzed',
-                                       'store': 'yes',
-                                       'type': u'date',
-                                       "term_vector" : "with_positions_offsets"
-                               },
-                               u'beer': {
-                                       'boost': 1.0,
-                                       'index': 'analyzed',
-                                       'store': 'yes',
-                                       'type': u'string',
-                                       "term_vector" : "with_positions_offsets"
-                               }
-       }
-       connection.put_mapping(BEER_PREF_TYPE, {'properties':mapping}, 
[DRILL_INDEX])
-       return connection
-
-def gen_datasources(numds, es_connection):
-       """Generates numds data sources in a sub-directory DS_DIR of the 
current directory and adds each data source to the elasticsearch index."""
-       logging.info("Generating %s data sources in directory %s" %(numds,  
os.path.abspath(DS_DIR)))
-
-       beers = ['Bud', 'Heineken', 'Guinness', 'Paulaner Hefe-Weizen', 'Sierra 
Nevada\'s Pale Ale', 'Hoegaarden']
-       fnames = ['Jim', 'Jane', 'Jill', 'Ted', 'Michael', 'Fred', 'Sophie', 
'Stefan', 'Sarah', 'Luis', 'Frank', 'Ben', 'Roberto', 'Kathy']
-       lnames = ['Jones', 'Ding', 'Meyer', 'Smith', 'Cho', 'MacDonell', 'Lu', 
'Masters', 'van Rhein', 'Becker', 'Garcia', 'Perez']
-
-       if not os.path.exists(DS_DIR):
-               os.makedirs(DS_DIR)
-       
-       for dsi in range(1, numds + 1):
-               ds_file_name = os.path.join(DS_DIR, ''.join(['ds_', str(dsi), 
'.json']))
-               ds = open(ds_file_name, 'w')
-               payload = {     'id' : dsi, 
-                                       'created' : 
''.join([datetime.datetime.utcnow().isoformat().split('.')[0], 'Z']),
-                                       'name' : ' 
'.join([random.choice(fnames), random.choice(lnames)]),
-                                       'beer' : 
','.join([random.choice(beers), random.choice(beers), random.choice(beers)])
-               }
-               es_connection.index(payload, DRILL_INDEX, BEER_PREF_TYPE)
-               ds.write(json.JSONEncoder().encode(payload))
-               ds.close()
-
-if __name__ == '__main__':
-       try: 
-               numds = int(sys.argv[1])
-               es_connection = setup_ES(ES_INTERFACE)
-               gen_datasources(numds, es_connection)
-       except ValueError:
-               print 'Usage:\n $python gen_ds.py NUMBER_OF_DATASOURCES'
-               print 'Example:\n $python gen_ds.py 10'
-               sys.exit()

http://git-wip-us.apache.org/repos/asf/drill/blob/9a48e688/sandbox/web-frontend/img/feather-small.gif
----------------------------------------------------------------------
diff --git a/sandbox/web-frontend/img/feather-small.gif 
b/sandbox/web-frontend/img/feather-small.gif
deleted file mode 100644
index 94f1892..0000000
Binary files a/sandbox/web-frontend/img/feather-small.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/drill/blob/9a48e688/sandbox/web-frontend/index.html
----------------------------------------------------------------------
diff --git a/sandbox/web-frontend/index.html b/sandbox/web-frontend/index.html
deleted file mode 100644
index 2d0ad31..0000000
--- a/sandbox/web-frontend/index.html
+++ /dev/null
@@ -1,162 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-       <meta charset="utf-8">
-       <title>Apache Drill</title> 
-       <meta name="viewport" content="width=device-width, initial-scale=1.0">
-       <meta name="description" content="">
-       <meta name="author" content="">
-       <link href="lib/bootstrap/css/bootstrap.css" rel="stylesheet">
-       <link href="lib/bootstrap/css/bootstrap-responsive.css" 
rel="stylesheet">
-       <link href="drill.css" rel="stylesheet">
-       <!--[if lt IE 9]>
-         <script 
src="http://html5shim.googlecode.com/svn/trunk/html5.js";></script>
-       <![endif]-->
-</head>
-<body>
-       <!-- The menu -->
-       <div class="navbar navbar-inverse navbar-fixed-top">
-               <div class="navbar-inner">
-                       <div class="container-fluid">
-                               <a class="brand" 
href="http://incubator.apache.org/drill/"; target="_blank">Apache Drill</a>
-                               <div class="nav-collapse collapse">
-                                       <ul class="nav">
-                                               <li class="active"><a 
href="#">Home</a></li>
-                                               <li><a href="#" onclick="return 
false" id="menu-config">Configure</a></li>
-                                               <li><a href="#" onclick="return 
false" id="menu-about">About</a></li>
-                                               <li><a 
href="http://github.com/mhausenblas/apache-drill-frontend"; 
target="_blank">Source</a></li>
-                                       </ul>
-                               </div>
-                       </div>
-               </div>
-       </div>
-       
-       <!-- @@TODO: include Ted's new logo -->
-       
-       <!-- About dialog box -->
-       <div class="modal hide" id="about-dialog" data-keyboard="true">
-               <div class="modal-header">
-                       <button type="button" class="close" 
data-dismiss="modal" aria-hidden="true">×</button>
-                       <h3>About Apache Drill</h3>
-               </div>
-               <div class="modal-body">
-                       <p>This is the <a 
href="http://incubator.apache.org/drill/"; target="_blank">Apache Drill</a> 
front-end, a Web application that acts as a user interface to issue queries 
against a back-end. This software is licensed under the <a 
href="http://www.apache.org/licenses/LICENSE-2.0"; title="">Apache License, 
Version 2.0</a>. If you have any questions, ping <a 
href="http://mhausenblas.info/"; target="_blank">Michael Hausenblas</a>.</p>
-                       <p class="muted">Note that all information about 
projects and data sources is stored locally (in your browser) using HTML5 <a 
href="http://diveintohtml5.info/storage.html"; title="Local Storage - Dive Into 
HTML5">localStorage</a>. So, if you're unsure if your browser supports this, 
you might want to <a href="http://caniuse.com/#feat=namevalue-storage"; 
title="When can I use... Support tables for HTML5, CSS3, etc">check it</a>  
first.</p>
-               </div>
-               <div class="modal-footer">
-                       <button class="btn" data-dismiss="modal" 
aria-hidden="true">Cancel</button>
-               </div>
-       </div>
-       
-       
-       <!-- Configuration dialog box -->
-       <div class="modal hide" id="config-dialog" data-keyboard="true">
-               <form id="config-form">
-                       <div class="modal-header">
-                               <button type="button" class="close" 
data-dismiss="modal" aria-hidden="true">×</button>
-                               <h3>Apache Drill configuration</h3>
-                       </div>
-                       <div class="modal-body">
-                               <fieldset>
-                                       <legend>Dummy Drill back-end</legend>
-                                       <label>Address:</label>
-                                       <input type="text" 
placeholder="http://..."; id="config-drill-backend-url">
-                                       <span class="help-block">Provide the 
URL of the Dummy Drill back-end, here.</span>
-                               </fieldset>
-                               <fieldset>
-                                       <legend>BigQuery</legend>
-                                       <span class="help-block">Alternatively, 
we're using <a href="https://developers.google.com/bigquery/"; 
target="_blank">BigQuery</a> as a back-end. This will be implemented, 
soon.</span>
-                               </fieldset>
-                       </div>
-                       <div class="modal-footer">
-                               <button class="btn" data-dismiss="modal" 
aria-hidden="true">Cancel</button>
-                               <button class="btn" 
id="config-drill-reset">Reset to defaults</button>
-                               <button type="submit" class="btn 
btn-primary">Save changes</button>
-                       </div>
-               </form>
-       </div>
-       
-       
-       <!-- The main content -->
-       <div class="container-fluid">
-               <div class="row-fluid">
-                       <div class="span9">
-                               <div class="hero-unit alert muted">
-                                       <button type="button" class="close" 
data-dismiss="alert">×</button>
-                                       <h1>Welcome to Apache Drill!</h1>
-                                       <p class="lead">To start using Apache 
Drill, you first want to <em>configure</em> the back-end and then create a 
project on the right hand side or, if you're new to Drill, take a guided tour 
using some example data first. If you don't have the <em>Dummy Drill</em> 
back-end running locally, change the address to 
<code>http://srvgal85.deri.ie/apache-drill/</code>, using the configure button 
below.</p>
-                                       <p><a class="btn btn-primary btn-large" 
id="tutorial">Tutorial &raquo;</a> <button type="button" class="btn btn-large" 
id="config">Configure &raquo;</button></p>
-                               </div>
-                               <div class="row-fluid">
-                                       <div class="span12">
-                                               <h2>Query</h2>
-                                               <textarea class="field span12" 
id="drill-query" rows="6" placeholder="Enter your query following Lucene query 
syntax, here." autofocus="autofocus"></textarea>
-                                               <p class="help-block">For 
example, try the following queries: <code>name:jane</code>, or 
<code>created:[2012-10-13T17:29:48Z TO 2012-10-13:17:29:48Z]</code>, or simply 
<code>Guinness</code>.
-                                               <span class="muted">Note: you 
can also execute the query by hitting ENTER while having the SHIFT key 
pressed.</span></p>
-                                               <div class="pull-right"><a 
class="btn btn-large btn btn-success" href="#" onclick="return false" 
id="drill-query-execute">Execute</a></div>
-                                       </div>
-                               </div>
-                               <div class="row-fluid">
-                                       <div class="span12">
-                                               <h2>Results</h2>
-                                               <div 
id="drill-results-meta"></div>
-                                               <div id="drill-results"></div>
-                                       </div>
-                               </div>
-                       </div>
-               <div class="span3">
-                       <div id="current-project" class="hide">NONE</div>
-                       <div id="current-ds" class="hide">NONE</div>
-                       <!-- Project create form  @@TODO: turn this into modal 
dialog -->
-                       <form class="hide" id="project-create-form">
-                               <fieldset>
-                                       <legend>Project</legend>
-                                       <label>Title:</label>
-                                       <input type="text" placeholder="Project 
title" id="project-title">
-                                       <span class="help-block">Provide a 
title for your project here.</span>
-                               </fieldset>
-                               <div class="form-actions">
-                                       <button type="button" class="btn" 
id="project-create-cancel">Cancel</button>
-                                       <button type="submit" class="btn 
btn-primary">Save changes</button>
-                               </div>
-                       </form>
-                       <!-- Project help dialog box -->
-                       <div class="alert alert-info alert-block hide" 
data-alert="alert" id="project-help-alert">
-                               <button type="button" class="close" 
data-dismiss="alert">×</button>
-                               <h4>Help on projects</h4>
-                               <p>Projects are a collection of datasets, for 
example grouped thematically or by the original data publisher. A query is 
executed against all active data sources across all projects.</p>
-                       </div>
-                       <!-- Data source add form -->
-                       <form class="hide" id="datasource-add-form">
-                               <fieldset>
-                                       <legend>Data Source</legend>
-                                       <label>Identifier:</label>
-                                       <input type="text" placeholder="Data 
source identifier" id="datasource-id">
-                                       <span class="help-block">Provide an 
unique identifier for the data source here (for now, this is the name of the 
Lucene index).</span>
-                               </fieldset>
-                               <div class="form-actions">
-                                       <button type="button" class="btn" 
id="datasource-add-cancel">Cancel</button>
-                                       <button type="submit" class="btn 
btn-primary">Save changes</button>
-                               </div>
-                       </form>
-                       <div class="well sidebar-nav">
-                               <button class="btn btn-small" type="button" 
id="project-help"><i class="i"></i>?</button>
-                               <button class="pull-right btn btn-primary" 
type="button" id="project-create" title="Create a new project ..."><i 
class="icon-plus icon-white"></i> Create Project</button> 
-                               <div id="project-list"></div>
-                       </div>
-               </div>
-       </div>
-       <footer>
-               <div class="apache-logo"><img src="img/feather-small.gif" 
width="100" alt="Apache feather" /></div>
-               <p class="muted">
-               Copyright &copy; 2012, <a href="http://www.apache.org/"; 
title="Welcome to The Apache Software Foundation!">The Apache Software 
Foundation</a>. Licensed under the <a 
href="http://www.apache.org/licenses/LICENSE-2.0"; title="">Apache License, 
Version 2.0</a> &mdash; 
-               Apache and the Apache feather logo are trademarks of The Apache 
Software Foundation.</p>
-       </footer>
-       </div>
-
-       <script src="lib/jquery.js"></script>
-       <script src="lib/jquery.renderjson.js"></script>
-       <script src="lib/bootstrap/js/bootstrap.js"></script>
-       <script src="drill.js"></script>
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/drill/blob/9a48e688/sandbox/web-frontend/lib/bootstrap/css/bootstrap-responsive.css
----------------------------------------------------------------------
diff --git a/sandbox/web-frontend/lib/bootstrap/css/bootstrap-responsive.css 
b/sandbox/web-frontend/lib/bootstrap/css/bootstrap-responsive.css
deleted file mode 100644
index 9259d26..0000000
--- a/sandbox/web-frontend/lib/bootstrap/css/bootstrap-responsive.css
+++ /dev/null
@@ -1,1058 +0,0 @@
-/*!
- * Bootstrap Responsive v2.1.1
- *
- * Copyright 2012 Twitter, Inc
- * Licensed under the Apache License v2.0
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Designed and built with all the love in the world @twitter by @mdo and @fat.
- */
-
-.clearfix {
-  *zoom: 1;
-}
-
-.clearfix:before,
-.clearfix:after {
-  display: table;
-  line-height: 0;
-  content: "";
-}
-
-.clearfix:after {
-  clear: both;
-}
-
-.hide-text {
-  font: 0/0 a;
-  color: transparent;
-  text-shadow: none;
-  background-color: transparent;
-  border: 0;
-}
-
-.input-block-level {
-  display: block;
-  width: 100%;
-  min-height: 30px;
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
-}
-
-.hidden {
-  display: none;
-  visibility: hidden;
-}
-
-.visible-phone {
-  display: none !important;
-}
-
-.visible-tablet {
-  display: none !important;
-}
-
-.hidden-desktop {
-  display: none !important;
-}
-
-.visible-desktop {
-  display: inherit !important;
-}
-
-@media (min-width: 768px) and (max-width: 979px) {
-  .hidden-desktop {
-    display: inherit !important;
-  }
-  .visible-desktop {
-    display: none !important ;
-  }
-  .visible-tablet {
-    display: inherit !important;
-  }
-  .hidden-tablet {
-    display: none !important;
-  }
-}
-
-@media (max-width: 767px) {
-  .hidden-desktop {
-    display: inherit !important;
-  }
-  .visible-desktop {
-    display: none !important;
-  }
-  .visible-phone {
-    display: inherit !important;
-  }
-  .hidden-phone {
-    display: none !important;
-  }
-}
-
-@media (min-width: 1200px) {
-  .row {
-    margin-left: -30px;
-    *zoom: 1;
-  }
-  .row:before,
-  .row:after {
-    display: table;
-    line-height: 0;
-    content: "";
-  }
-  .row:after {
-    clear: both;
-  }
-  [class*="span"] {
-    float: left;
-    min-height: 1px;
-    margin-left: 30px;
-  }
-  .container,
-  .navbar-static-top .container,
-  .navbar-fixed-top .container,
-  .navbar-fixed-bottom .container {
-    width: 1170px;
-  }
-  .span12 {
-    width: 1170px;
-  }
-  .span11 {
-    width: 1070px;
-  }
-  .span10 {
-    width: 970px;
-  }
-  .span9 {
-    width: 870px;
-  }
-  .span8 {
-    width: 770px;
-  }
-  .span7 {
-    width: 670px;
-  }
-  .span6 {
-    width: 570px;
-  }
-  .span5 {
-    width: 470px;
-  }
-  .span4 {
-    width: 370px;
-  }
-  .span3 {
-    width: 270px;
-  }
-  .span2 {
-    width: 170px;
-  }
-  .span1 {
-    width: 70px;
-  }
-  .offset12 {
-    margin-left: 1230px;
-  }
-  .offset11 {
-    margin-left: 1130px;
-  }
-  .offset10 {
-    margin-left: 1030px;
-  }
-  .offset9 {
-    margin-left: 930px;
-  }
-  .offset8 {
-    margin-left: 830px;
-  }
-  .offset7 {
-    margin-left: 730px;
-  }
-  .offset6 {
-    margin-left: 630px;
-  }
-  .offset5 {
-    margin-left: 530px;
-  }
-  .offset4 {
-    margin-left: 430px;
-  }
-  .offset3 {
-    margin-left: 330px;
-  }
-  .offset2 {
-    margin-left: 230px;
-  }
-  .offset1 {
-    margin-left: 130px;
-  }
-  .row-fluid {
-    width: 100%;
-    *zoom: 1;
-  }
-  .row-fluid:before,
-  .row-fluid:after {
-    display: table;
-    line-height: 0;
-    content: "";
-  }
-  .row-fluid:after {
-    clear: both;
-  }
-  .row-fluid [class*="span"] {
-    display: block;
-    float: left;
-    width: 100%;
-    min-height: 30px;
-    margin-left: 2.564102564102564%;
-    *margin-left: 2.5109110747408616%;
-    -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-            box-sizing: border-box;
-  }
-  .row-fluid [class*="span"]:first-child {
-    margin-left: 0;
-  }
-  .row-fluid .span12 {
-    width: 100%;
-    *width: 99.94680851063829%;
-  }
-  .row-fluid .span11 {
-    width: 91.45299145299145%;
-    *width: 91.39979996362975%;
-  }
-  .row-fluid .span10 {
-    width: 82.90598290598291%;
-    *width: 82.8527914166212%;
-  }
-  .row-fluid .span9 {
-    width: 74.35897435897436%;
-    *width: 74.30578286961266%;
-  }
-  .row-fluid .span8 {
-    width: 65.81196581196582%;
-    *width: 65.75877432260411%;
-  }
-  .row-fluid .span7 {
-    width: 57.26495726495726%;
-    *width: 57.21176577559556%;
-  }
-  .row-fluid .span6 {
-    width: 48.717948717948715%;
-    *width: 48.664757228587014%;
-  }
-  .row-fluid .span5 {
-    width: 40.17094017094017%;
-    *width: 40.11774868157847%;
-  }
-  .row-fluid .span4 {
-    width: 31.623931623931625%;
-    *width: 31.570740134569924%;
-  }
-  .row-fluid .span3 {
-    width: 23.076923076923077%;
-    *width: 23.023731587561375%;
-  }
-  .row-fluid .span2 {
-    width: 14.52991452991453%;
-    *width: 14.476723040552828%;
-  }
-  .row-fluid .span1 {
-    width: 5.982905982905983%;
-    *width: 5.929714493544281%;
-  }
-  .row-fluid .offset12 {
-    margin-left: 105.12820512820512%;
-    *margin-left: 105.02182214948171%;
-  }
-  .row-fluid .offset12:first-child {
-    margin-left: 102.56410256410257%;
-    *margin-left: 102.45771958537915%;
-  }
-  .row-fluid .offset11 {
-    margin-left: 96.58119658119658%;
-    *margin-left: 96.47481360247316%;
-  }
-  .row-fluid .offset11:first-child {
-    margin-left: 94.01709401709402%;
-    *margin-left: 93.91071103837061%;
-  }
-  .row-fluid .offset10 {
-    margin-left: 88.03418803418803%;
-    *margin-left: 87.92780505546462%;
-  }
-  .row-fluid .offset10:first-child {
-    margin-left: 85.47008547008548%;
-    *margin-left: 85.36370249136206%;
-  }
-  .row-fluid .offset9 {
-    margin-left: 79.48717948717949%;
-    *margin-left: 79.38079650845607%;
-  }
-  .row-fluid .offset9:first-child {
-    margin-left: 76.92307692307693%;
-    *margin-left: 76.81669394435352%;
-  }
-  .row-fluid .offset8 {
-    margin-left: 70.94017094017094%;
-    *margin-left: 70.83378796144753%;
-  }
-  .row-fluid .offset8:first-child {
-    margin-left: 68.37606837606839%;
-    *margin-left: 68.26968539734497%;
-  }
-  .row-fluid .offset7 {
-    margin-left: 62.393162393162385%;
-    *margin-left: 62.28677941443899%;
-  }
-  .row-fluid .offset7:first-child {
-    margin-left: 59.82905982905982%;
-    *margin-left: 59.72267685033642%;
-  }
-  .row-fluid .offset6 {
-    margin-left: 53.84615384615384%;
-    *margin-left: 53.739770867430444%;
-  }
-  .row-fluid .offset6:first-child {
-    margin-left: 51.28205128205128%;
-    *margin-left: 51.175668303327875%;
-  }
-  .row-fluid .offset5 {
-    margin-left: 45.299145299145295%;
-    *margin-left: 45.1927623204219%;
-  }
-  .row-fluid .offset5:first-child {
-    margin-left: 42.73504273504273%;
-    *margin-left: 42.62865975631933%;
-  }
-  .row-fluid .offset4 {
-    margin-left: 36.75213675213675%;
-    *margin-left: 36.645753773413354%;
-  }
-  .row-fluid .offset4:first-child {
-    margin-left: 34.18803418803419%;
-    *margin-left: 34.081651209310785%;
-  }
-  .row-fluid .offset3 {
-    margin-left: 28.205128205128204%;
-    *margin-left: 28.0987452264048%;
-  }
-  .row-fluid .offset3:first-child {
-    margin-left: 25.641025641025642%;
-    *margin-left: 25.53464266230224%;
-  }
-  .row-fluid .offset2 {
-    margin-left: 19.65811965811966%;
-    *margin-left: 19.551736679396257%;
-  }
-  .row-fluid .offset2:first-child {
-    margin-left: 17.094017094017094%;
-    *margin-left: 16.98763411529369%;
-  }
-  .row-fluid .offset1 {
-    margin-left: 11.11111111111111%;
-    *margin-left: 11.004728132387708%;
-  }
-  .row-fluid .offset1:first-child {
-    margin-left: 8.547008547008547%;
-    *margin-left: 8.440625568285142%;
-  }
-  input,
-  textarea,
-  .uneditable-input {
-    margin-left: 0;
-  }
-  .controls-row [class*="span"] + [class*="span"] {
-    margin-left: 30px;
-  }
-  input.span12,
-  textarea.span12,
-  .uneditable-input.span12 {
-    width: 1156px;
-  }
-  input.span11,
-  textarea.span11,
-  .uneditable-input.span11 {
-    width: 1056px;
-  }
-  input.span10,
-  textarea.span10,
-  .uneditable-input.span10 {
-    width: 956px;
-  }
-  input.span9,
-  textarea.span9,
-  .uneditable-input.span9 {
-    width: 856px;
-  }
-  input.span8,
-  textarea.span8,
-  .uneditable-input.span8 {
-    width: 756px;
-  }
-  input.span7,
-  textarea.span7,
-  .uneditable-input.span7 {
-    width: 656px;
-  }
-  input.span6,
-  textarea.span6,
-  .uneditable-input.span6 {
-    width: 556px;
-  }
-  input.span5,
-  textarea.span5,
-  .uneditable-input.span5 {
-    width: 456px;
-  }
-  input.span4,
-  textarea.span4,
-  .uneditable-input.span4 {
-    width: 356px;
-  }
-  input.span3,
-  textarea.span3,
-  .uneditable-input.span3 {
-    width: 256px;
-  }
-  input.span2,
-  textarea.span2,
-  .uneditable-input.span2 {
-    width: 156px;
-  }
-  input.span1,
-  textarea.span1,
-  .uneditable-input.span1 {
-    width: 56px;
-  }
-  .thumbnails {
-    margin-left: -30px;
-  }
-  .thumbnails > li {
-    margin-left: 30px;
-  }
-  .row-fluid .thumbnails {
-    margin-left: 0;
-  }
-}
-
-@media (min-width: 768px) and (max-width: 979px) {
-  .row {
-    margin-left: -20px;
-    *zoom: 1;
-  }
-  .row:before,
-  .row:after {
-    display: table;
-    line-height: 0;
-    content: "";
-  }
-  .row:after {
-    clear: both;
-  }
-  [class*="span"] {
-    float: left;
-    min-height: 1px;
-    margin-left: 20px;
-  }
-  .container,
-  .navbar-static-top .container,
-  .navbar-fixed-top .container,
-  .navbar-fixed-bottom .container {
-    width: 724px;
-  }
-  .span12 {
-    width: 724px;
-  }
-  .span11 {
-    width: 662px;
-  }
-  .span10 {
-    width: 600px;
-  }
-  .span9 {
-    width: 538px;
-  }
-  .span8 {
-    width: 476px;
-  }
-  .span7 {
-    width: 414px;
-  }
-  .span6 {
-    width: 352px;
-  }
-  .span5 {
-    width: 290px;
-  }
-  .span4 {
-    width: 228px;
-  }
-  .span3 {
-    width: 166px;
-  }
-  .span2 {
-    width: 104px;
-  }
-  .span1 {
-    width: 42px;
-  }
-  .offset12 {
-    margin-left: 764px;
-  }
-  .offset11 {
-    margin-left: 702px;
-  }
-  .offset10 {
-    margin-left: 640px;
-  }
-  .offset9 {
-    margin-left: 578px;
-  }
-  .offset8 {
-    margin-left: 516px;
-  }
-  .offset7 {
-    margin-left: 454px;
-  }
-  .offset6 {
-    margin-left: 392px;
-  }
-  .offset5 {
-    margin-left: 330px;
-  }
-  .offset4 {
-    margin-left: 268px;
-  }
-  .offset3 {
-    margin-left: 206px;
-  }
-  .offset2 {
-    margin-left: 144px;
-  }
-  .offset1 {
-    margin-left: 82px;
-  }
-  .row-fluid {
-    width: 100%;
-    *zoom: 1;
-  }
-  .row-fluid:before,
-  .row-fluid:after {
-    display: table;
-    line-height: 0;
-    content: "";
-  }
-  .row-fluid:after {
-    clear: both;
-  }
-  .row-fluid [class*="span"] {
-    display: block;
-    float: left;
-    width: 100%;
-    min-height: 30px;
-    margin-left: 2.7624309392265194%;
-    *margin-left: 2.709239449864817%;
-    -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-            box-sizing: border-box;
-  }
-  .row-fluid [class*="span"]:first-child {
-    margin-left: 0;
-  }
-  .row-fluid .span12 {
-    width: 100%;
-    *width: 99.94680851063829%;
-  }
-  .row-fluid .span11 {
-    width: 91.43646408839778%;
-    *width: 91.38327259903608%;
-  }
-  .row-fluid .span10 {
-    width: 82.87292817679558%;
-    *width: 82.81973668743387%;
-  }
-  .row-fluid .span9 {
-    width: 74.30939226519337%;
-    *width: 74.25620077583166%;
-  }
-  .row-fluid .span8 {
-    width: 65.74585635359117%;
-    *width: 65.69266486422946%;
-  }
-  .row-fluid .span7 {
-    width: 57.18232044198895%;
-    *width: 57.12912895262725%;
-  }
-  .row-fluid .span6 {
-    width: 48.61878453038674%;
-    *width: 48.56559304102504%;
-  }
-  .row-fluid .span5 {
-    width: 40.05524861878453%;
-    *width: 40.00205712942283%;
-  }
-  .row-fluid .span4 {
-    width: 31.491712707182323%;
-    *width: 31.43852121782062%;
-  }
-  .row-fluid .span3 {
-    width: 22.92817679558011%;
-    *width: 22.87498530621841%;
-  }
-  .row-fluid .span2 {
-    width: 14.3646408839779%;
-    *width: 14.311449394616199%;
-  }
-  .row-fluid .span1 {
-    width: 5.801104972375691%;
-    *width: 5.747913483013988%;
-  }
-  .row-fluid .offset12 {
-    margin-left: 105.52486187845304%;
-    *margin-left: 105.41847889972962%;
-  }
-  .row-fluid .offset12:first-child {
-    margin-left: 102.76243093922652%;
-    *margin-left: 102.6560479605031%;
-  }
-  .row-fluid .offset11 {
-    margin-left: 96.96132596685082%;
-    *margin-left: 96.8549429881274%;
-  }
-  .row-fluid .offset11:first-child {
-    margin-left: 94.1988950276243%;
-    *margin-left: 94.09251204890089%;
-  }
-  .row-fluid .offset10 {
-    margin-left: 88.39779005524862%;
-    *margin-left: 88.2914070765252%;
-  }
-  .row-fluid .offset10:first-child {
-    margin-left: 85.6353591160221%;
-    *margin-left: 85.52897613729868%;
-  }
-  .row-fluid .offset9 {
-    margin-left: 79.8342541436464%;
-    *margin-left: 79.72787116492299%;
-  }
-  .row-fluid .offset9:first-child {
-    margin-left: 77.07182320441989%;
-    *margin-left: 76.96544022569647%;
-  }
-  .row-fluid .offset8 {
-    margin-left: 71.2707182320442%;
-    *margin-left: 71.16433525332079%;
-  }
-  .row-fluid .offset8:first-child {
-    margin-left: 68.50828729281768%;
-    *margin-left: 68.40190431409427%;
-  }
-  .row-fluid .offset7 {
-    margin-left: 62.70718232044199%;
-    *margin-left: 62.600799341718584%;
-  }
-  .row-fluid .offset7:first-child {
-    margin-left: 59.94475138121547%;
-    *margin-left: 59.838368402492065%;
-  }
-  .row-fluid .offset6 {
-    margin-left: 54.14364640883978%;
-    *margin-left: 54.037263430116376%;
-  }
-  .row-fluid .offset6:first-child {
-    margin-left: 51.38121546961326%;
-    *margin-left: 51.27483249088986%;
-  }
-  .row-fluid .offset5 {
-    margin-left: 45.58011049723757%;
-    *margin-left: 45.47372751851417%;
-  }
-  .row-fluid .offset5:first-child {
-    margin-left: 42.81767955801105%;
-    *margin-left: 42.71129657928765%;
-  }
-  .row-fluid .offset4 {
-    margin-left: 37.01657458563536%;
-    *margin-left: 36.91019160691196%;
-  }
-  .row-fluid .offset4:first-child {
-    margin-left: 34.25414364640884%;
-    *margin-left: 34.14776066768544%;
-  }
-  .row-fluid .offset3 {
-    margin-left: 28.45303867403315%;
-    *margin-left: 28.346655695309746%;
-  }
-  .row-fluid .offset3:first-child {
-    margin-left: 25.69060773480663%;
-    *margin-left: 25.584224756083227%;
-  }
-  .row-fluid .offset2 {
-    margin-left: 19.88950276243094%;
-    *margin-left: 19.783119783707537%;
-  }
-  .row-fluid .offset2:first-child {
-    margin-left: 17.12707182320442%;
-    *margin-left: 17.02068884448102%;
-  }
-  .row-fluid .offset1 {
-    margin-left: 11.32596685082873%;
-    *margin-left: 11.219583872105325%;
-  }
-  .row-fluid .offset1:first-child {
-    margin-left: 8.56353591160221%;
-    *margin-left: 8.457152932878806%;
-  }
-  input,
-  textarea,
-  .uneditable-input {
-    margin-left: 0;
-  }
-  .controls-row [class*="span"] + [class*="span"] {
-    margin-left: 20px;
-  }
-  input.span12,
-  textarea.span12,
-  .uneditable-input.span12 {
-    width: 710px;
-  }
-  input.span11,
-  textarea.span11,
-  .uneditable-input.span11 {
-    width: 648px;
-  }
-  input.span10,
-  textarea.span10,
-  .uneditable-input.span10 {
-    width: 586px;
-  }
-  input.span9,
-  textarea.span9,
-  .uneditable-input.span9 {
-    width: 524px;
-  }
-  input.span8,
-  textarea.span8,
-  .uneditable-input.span8 {
-    width: 462px;
-  }
-  input.span7,
-  textarea.span7,
-  .uneditable-input.span7 {
-    width: 400px;
-  }
-  input.span6,
-  textarea.span6,
-  .uneditable-input.span6 {
-    width: 338px;
-  }
-  input.span5,
-  textarea.span5,
-  .uneditable-input.span5 {
-    width: 276px;
-  }
-  input.span4,
-  textarea.span4,
-  .uneditable-input.span4 {
-    width: 214px;
-  }
-  input.span3,
-  textarea.span3,
-  .uneditable-input.span3 {
-    width: 152px;
-  }
-  input.span2,
-  textarea.span2,
-  .uneditable-input.span2 {
-    width: 90px;
-  }
-  input.span1,
-  textarea.span1,
-  .uneditable-input.span1 {
-    width: 28px;
-  }
-}
-
-@media (max-width: 767px) {
-  body {
-    padding-right: 20px;
-    padding-left: 20px;
-  }
-  .navbar-fixed-top,
-  .navbar-fixed-bottom,
-  .navbar-static-top {
-    margin-right: -20px;
-    margin-left: -20px;
-  }
-  .container-fluid {
-    padding: 0;
-  }
-  .dl-horizontal dt {
-    float: none;
-    width: auto;
-    clear: none;
-    text-align: left;
-  }
-  .dl-horizontal dd {
-    margin-left: 0;
-  }
-  .container {
-    width: auto;
-  }
-  .row-fluid {
-    width: 100%;
-  }
-  .row,
-  .thumbnails {
-    margin-left: 0;
-  }
-  .thumbnails > li {
-    float: none;
-    margin-left: 0;
-  }
-  [class*="span"],
-  .row-fluid [class*="span"] {
-    display: block;
-    float: none;
-    width: 100%;
-    margin-left: 0;
-    -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-            box-sizing: border-box;
-  }
-  .span12,
-  .row-fluid .span12 {
-    width: 100%;
-    -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-            box-sizing: border-box;
-  }
-  .input-large,
-  .input-xlarge,
-  .input-xxlarge,
-  input[class*="span"],
-  select[class*="span"],
-  textarea[class*="span"],
-  .uneditable-input {
-    display: block;
-    width: 100%;
-    min-height: 30px;
-    -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-            box-sizing: border-box;
-  }
-  .input-prepend input,
-  .input-append input,
-  .input-prepend input[class*="span"],
-  .input-append input[class*="span"] {
-    display: inline-block;
-    width: auto;
-  }
-  .controls-row [class*="span"] + [class*="span"] {
-    margin-left: 0;
-  }
-  .modal {
-    position: fixed;
-    top: 20px;
-    right: 20px;
-    left: 20px;
-    width: auto;
-    margin: 0;
-  }
-  .modal.fade.in {
-    top: auto;
-  }
-}
-
-@media (max-width: 480px) {
-  .nav-collapse {
-    -webkit-transform: translate3d(0, 0, 0);
-  }
-  .page-header h1 small {
-    display: block;
-    line-height: 20px;
-  }
-  input[type="checkbox"],
-  input[type="radio"] {
-    border: 1px solid #ccc;
-  }
-  .form-horizontal .control-label {
-    float: none;
-    width: auto;
-    padding-top: 0;
-    text-align: left;
-  }
-  .form-horizontal .controls {
-    margin-left: 0;
-  }
-  .form-horizontal .control-list {
-    padding-top: 0;
-  }
-  .form-horizontal .form-actions {
-    padding-right: 10px;
-    padding-left: 10px;
-  }
-  .modal {
-    top: 10px;
-    right: 10px;
-    left: 10px;
-  }
-  .modal-header .close {
-    padding: 10px;
-    margin: -10px;
-  }
-  .carousel-caption {
-    position: static;
-  }
-}
-
-@media (max-width: 979px) {
-  body {
-    padding-top: 0;
-  }
-  .navbar-fixed-top,
-  .navbar-fixed-bottom {
-    position: static;
-  }
-  .navbar-fixed-top {
-    margin-bottom: 20px;
-  }
-  .navbar-fixed-bottom {
-    margin-top: 20px;
-  }
-  .navbar-fixed-top .navbar-inner,
-  .navbar-fixed-bottom .navbar-inner {
-    padding: 5px;
-  }
-  .navbar .container {
-    width: auto;
-    padding: 0;
-  }
-  .navbar .brand {
-    padding-right: 10px;
-    padding-left: 10px;
-    margin: 0 0 0 -5px;
-  }
-  .nav-collapse {
-    clear: both;
-  }
-  .nav-collapse .nav {
-    float: none;
-    margin: 0 0 10px;
-  }
-  .nav-collapse .nav > li {
-    float: none;
-  }
-  .nav-collapse .nav > li > a {
-    margin-bottom: 2px;
-  }
-  .nav-collapse .nav > .divider-vertical {
-    display: none;
-  }
-  .nav-collapse .nav .nav-header {
-    color: #777777;
-    text-shadow: none;
-  }
-  .nav-collapse .nav > li > a,
-  .nav-collapse .dropdown-menu a {
-    padding: 9px 15px;
-    font-weight: bold;
-    color: #777777;
-    -webkit-border-radius: 3px;
-       -moz-border-radius: 3px;
-            border-radius: 3px;
-  }
-  .nav-collapse .btn {
-    padding: 4px 10px 4px;
-    font-weight: normal;
-    -webkit-border-radius: 4px;
-       -moz-border-radius: 4px;
-            border-radius: 4px;
-  }
-  .nav-collapse .dropdown-menu li + li a {
-    margin-bottom: 2px;
-  }
-  .nav-collapse .nav > li > a:hover,
-  .nav-collapse .dropdown-menu a:hover {
-    background-color: #f2f2f2;
-  }
-  .navbar-inverse .nav-collapse .nav > li > a:hover,
-  .navbar-inverse .nav-collapse .dropdown-menu a:hover {
-    background-color: #111111;
-  }
-  .nav-collapse.in .btn-group {
-    padding: 0;
-    margin-top: 5px;
-  }
-  .nav-collapse .dropdown-menu {
-    position: static;
-    top: auto;
-    left: auto;
-    display: block;
-    float: none;
-    max-width: none;
-    padding: 0;
-    margin: 0 15px;
-    background-color: transparent;
-    border: none;
-    -webkit-border-radius: 0;
-       -moz-border-radius: 0;
-            border-radius: 0;
-    -webkit-box-shadow: none;
-       -moz-box-shadow: none;
-            box-shadow: none;
-  }
-  .nav-collapse .dropdown-menu:before,
-  .nav-collapse .dropdown-menu:after {
-    display: none;
-  }
-  .nav-collapse .dropdown-menu .divider {
-    display: none;
-  }
-  .nav-collapse .nav > li > .dropdown-menu:before,
-  .nav-collapse .nav > li > .dropdown-menu:after {
-    display: none;
-  }
-  .nav-collapse .navbar-form,
-  .nav-collapse .navbar-search {
-    float: none;
-    padding: 10px 15px;
-    margin: 10px 0;
-    border-top: 1px solid #f2f2f2;
-    border-bottom: 1px solid #f2f2f2;
-    -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 
rgba(255, 255, 255, 0.1);
-       -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 
rgba(255, 255, 255, 0.1);
-            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 
rgba(255, 255, 255, 0.1);
-  }
-  .navbar-inverse .nav-collapse .navbar-form,
-  .navbar-inverse .nav-collapse .navbar-search {
-    border-top-color: #111111;
-    border-bottom-color: #111111;
-  }
-  .navbar .nav-collapse .nav.pull-right {
-    float: none;
-    margin-left: 0;
-  }
-  .nav-collapse,
-  .nav-collapse.collapse {
-    height: 0;
-    overflow: hidden;
-  }
-  .navbar .btn-navbar {
-    display: block;
-  }
-  .navbar-static .navbar-inner {
-    padding-right: 10px;
-    padding-left: 10px;
-  }
-}
-
-@media (min-width: 980px) {
-  .nav-collapse.collapse {
-    height: auto !important;
-    overflow: visible !important;
-  }
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/9a48e688/sandbox/web-frontend/lib/bootstrap/css/bootstrap-responsive.min.css
----------------------------------------------------------------------
diff --git 
a/sandbox/web-frontend/lib/bootstrap/css/bootstrap-responsive.min.css 
b/sandbox/web-frontend/lib/bootstrap/css/bootstrap-responsive.min.css
deleted file mode 100644
index 7b0158d..0000000
--- a/sandbox/web-frontend/lib/bootstrap/css/bootstrap-responsive.min.css
+++ /dev/null
@@ -1,9 +0,0 @@
-/*!
- * Bootstrap Responsive v2.1.1
- *
- * Copyright 2012 Twitter, Inc
- * Licensed under the Apache License v2.0
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Designed and built with all the love in the world @twitter by @mdo and @fat.
- 
*/.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0
 
a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px)
 and 
(max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zo
 
om:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top
 .container,.navbar-fixed-top .container,.navbar-fixed-bottom 
.container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid
 [class*="span"]{display:block
 
;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid
 [class*="span"]:first-child{margin-left:0}.row-fluid 
.span12{width:100%;*width:99.94680851063829%}.row-fluid 
.span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid 
.span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid 
.span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid 
.span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid 
.span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid 
.span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid 
.span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid 
.span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid 
.span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid 
.span2{width:14.52991452991453%;*width:14.476723040552828%}.row-flu
 id .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid 
.offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid
 
.offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid
 
.offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid
 
.offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid
 
.offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid
 
.offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid
 
.offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid
 
.offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid
 
.offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid
 
.offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid
 .offset7{margin-left:62.3
 93162393162385%;*margin-left:62.28677941443899%}.row-fluid 
.offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid
 
.offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid
 
.offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid
 
.offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid
 
.offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid
 
.offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid
 
.offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid
 
.offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid
 
.offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid
 
.offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid
 .offset2:first-child{margin-left:17.094017
 094017094%;*margin-left:16.98763411529369%}.row-fluid 
.offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid
 
.offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row
 
[class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.spa
 
n2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid
 .thumbnails{margin-left:0}}@media(min-width:768px) and 
(max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top
 .container,.navbar-fixed-top .container,.navbar-fixed-bottom 
.container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{marg
 
in-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid
 
[class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid
 [class*="span"]:first-child{margin-left:0}.row-fluid 
.span12{width:100%;*width:99.94680851063829%}.row-fluid 
.span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid 
.span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid 
.span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid 
.span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid 
.span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid 
.span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid 
.span5{width:
 40.05524861878453%;*width:40.00205712942283%}.row-fluid 
.span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid 
.span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid 
.span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid 
.span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid 
.offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid
 
.offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid
 
.offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid
 
.offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid
 
.offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid
 
.offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid
 
.offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid
 .offset9:first-child{margin-left:77.0718232
 0441989%;*margin-left:76.96544022569647%}.row-fluid 
.offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid
 
.offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid
 
.offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid
 
.offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid
 
.offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid
 
.offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid
 
.offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid
 
.offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid
 
.offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid
 
.offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid
 .offset3{margin-left:28.45303867403315%;*margin-left:
 28.346655695309746%}.row-fluid 
.offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid
 
.offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid
 
.offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid
 
.offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid
 
.offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row
 
[class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,
 
.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal
 dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal 
dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.row-fluid
 
[class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid
 .span12{width:100%;-webkit-box-sizing:border-box;-moz-
 
box-sizing:border-box;box-sizing:border-box}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend
 input,.input-append input,.input-prepend input[class*="span"],.input-append 
input[class*="span"]{display:inline-block;width:auto}.controls-row 
[class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade.in{top:auto}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header
 h1 
small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px
 solid #ccc}.form-horizontal 
.control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal
 .controls{margin-left:0}.form-horizontal 
.control-list{padding-top:0}.form-horizontal .form-actions{padding-rig
 ht:10px;padding-left:10px}.modal{top:10px;right:10px;left:10px}.modal-header 
.close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top
 .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar 
.container{width:auto;padding:0}.navbar 
.brand{padding-right:10px;padding-left:10px;margin:0 0 0 
-5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 
10px}.nav-collapse .nav>li{float:none}.nav-collapse 
.nav>li>a{margin-bottom:2px}.nav-collapse 
.nav>.divider-vertical{display:none}.nav-collapse .nav 
.nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse 
.dropdown-menu a{padding:9px 
15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse
 .btn{padding:4px 10px 4px;font-weight:normal;-webkit-bo
 rder-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse 
.dropdown-menu li+li a{margin-bottom:2px}.nav-collapse 
.nav>li>a:hover,.nav-collapse .dropdown-menu 
a:hover{background-color:#f2f2f2}.navbar-inverse .nav-collapse 
.nav>li>a:hover,.navbar-inverse .nav-collapse .dropdown-menu 
a:hover{background-color:#111}.nav-collapse.in 
.btn-group{padding:0;margin-top:5px}.nav-collapse 
.dropdown-menu{position:static;top:auto;left:auto;display:block;float:none;max-width:none;padding:0;margin:0
 
15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse
 .dropdown-menu:before,.nav-collapse 
.dropdown-menu:after{display:none}.nav-collapse .dropdown-menu 
.divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse 
.nav>li>.dropdown-menu:after{display:none}.nav-collapse 
.navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 
15px;margin:10px
  0;border-top:1px solid #f2f2f2;border-bottom:1px solid 
#f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 
rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 
0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 
rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse 
.navbar-form,.navbar-inverse .nav-collapse 
.navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar 
.nav-collapse 
.nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar
 .btn-navbar{display:block}.navbar-static 
.navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}}

Reply via email to