Changeset 6145 for SRUAggregator


Ignore:
Timestamp:
04/15/15 10:35:11 (9 years ago)
Author:
emanuel.dima@uni-tuebingen.de
Message:
  1. beta-36: debugging js object, misc
Location:
SRUAggregator/trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • SRUAggregator/trunk/pom.xml

    r6144 r6145  
    88        <groupId>eu.clarin.sru.fcs</groupId>
    99        <artifactId>aggregator</artifactId>
    10         <version>2.0.0-beta-35</version>
     10        <version>2.0.0-beta-36</version>
    1111        <name>FCS Aggregator</name>
    1212
  • SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/app/Aggregator.java

    r6131 r6145  
    8282 * TODO: test it in IE, other browsers
    8383 *
    84  * TODO: tri-state for parent collections; search + message implications
     84 * TODO: expand parents of x-aggregator-context selected corpus
    8585 *
    8686 */
  • SRUAggregator/trunk/src/main/resources/assets/CLARIN.css

    r5931 r6145  
    1010  -webkit-font-smoothing: antialiased;
    1111  -moz-osx-font-smoothing: grayscale;
    12   color: #222;
     12  color: black;
     13  /*color: #222;*/
    1314  /*font-size: 12px;*/
    1415  /*word-wrap: break-word;*/
  • SRUAggregator/trunk/src/main/resources/assets/clarinservices/clarinservices.css

    r6144 r6145  
    11#clarinservices button.dropdown-toggle {
    22        background-color: transparent;
     3        font-size:18px;
    34}
    45
  • SRUAggregator/trunk/src/main/resources/assets/js/main.js

    r6144 r6145  
    33"use strict";
    44
    5 var VERSION = window.MyAggregator.VERSION = "VERSION 2.0.0-beta-35";
     5var VERSION = window.MyAggregator.VERSION = "VERSION 2.0.0-beta-36";
    66
    77var URLROOT = window.MyAggregator.URLROOT =
     
    420420
    421421                                        React.createElement("h3", null, "More help"),
    422                                         React.createElement("p", null, "More detailed information on using FCS Aggregator is available at the",
     422                                        React.createElement("p", null, "More detailed information on using FCS Aggregator is available at the Â ",
    423423                                        React.createElement("a", {href: "http://weblicht.sfs.uni-tuebingen.de/weblichtwiki/index.php/FCS_Aggregator"},
    424424                                                "Aggregator wiki page"
     
    571571
    572572window.onpopstate = routeFromLocation.bind(main);
     573window.MyAggregator.main = main;
    573574
    574575})();
  • SRUAggregator/trunk/src/main/resources/assets/js/main.jsx

    r6144 r6145  
    33"use strict";
    44
    5 var VERSION = window.MyAggregator.VERSION = "VERSION 2.0.0-beta-35";
     5var VERSION = window.MyAggregator.VERSION = "VERSION 2.0.0-beta-36";
    66
    77var URLROOT = window.MyAggregator.URLROOT =
     
    141141                                <ul id="CLARIN_header_right" className="nav navbar-nav navbar-right">
    142142                                        <li>
    143                                                 <div id="clarinservices" style={{padding:10}}/>
     143                                                <div id="clarinservices" style={{padding:5}}/>
    144144                                        </li>
    145145                                        {this.renderLogin()}
     
    420420
    421421                                        <h3>More help</h3>
    422                                         <p>More detailed information on using FCS Aggregator is available at the
     422                                        <p>More detailed information on using FCS Aggregator is available at the &nbsp;
    423423                                        <a href="http://weblicht.sfs.uni-tuebingen.de/weblichtwiki/index.php/FCS_Aggregator">
    424424                                                Aggregator wiki page
     
    571571
    572572window.onpopstate = routeFromLocation.bind(main);
     573window.MyAggregator.main = main;
    573574
    574575})();
  • SRUAggregator/trunk/src/main/resources/assets/js/search.js

    r6132 r6145  
    4242var layerMap = {
    4343        text: layers[0],
    44         sampa: layers[1], 
     44        sampa: layers[1],
    4545};
    4646
     
    6060        var that = this;
    6161        this.corpora = corpora;
    62         this.update = function() { 
    63                 updateFn(that); 
     62        this.update = function() {
     63                updateFn(that);
    6464        };
    65        
     65
    6666        var sortFn = function(x, y) {
    6767                var r = x.institution.name.localeCompare(y.institution.name);
     
    6969                        return r;
    7070                }
    71                 return x.title.toLowerCase().localeCompare(y.title.toLowerCase()); 
     71                return x.title.toLowerCase().localeCompare(y.title.toLowerCase());
    7272        };
    7373
     
    7979                corpus.selected = true; // selected in the corpus view
    8080                corpus.expanded = false; // not expanded in the corpus view
    81                 corpus.priority = 1; // used for ordering search results in corpus view 
     81                corpus.priority = 1; // used for ordering search results in corpus view
    8282                corpus.index = index; // original order, used for stable sort
    8383        });
     
    8585
    8686Corpora.prototype.recurseCorpus = function(corpus, fn) {
    87         if (false === fn(corpus)) {             
     87        if (false === fn(corpus)) {
    8888                // no recursion
    8989        } else {
     
    129129        if (corpus.languages && corpus.languages.length === 1 && corpus.languages[0] === languageCode) {
    130130                return true;
    131         }       
     131        }
    132132
    133133        // ? yes if the corpus also contains that language
     
    152152
    153153Corpora.prototype.setAggregationContext = function(endpoints2handles) {
    154         // console.log('setAggregationContext', endpoints2handles, this.corpora);
    155         var recurseSelect = function(select, corpus) {
     154        var selectSubTree = function(select, corpus) {
    156155                corpus.selected = false;
    157156                this.recurseCorpora(corpus.subCorpora, function(c) { c.selected = corpus.selected; });
    158157        };
    159158
    160         this.corpora.forEach(recurseSelect.bind(this, false));
     159        this.corpora.forEach(selectSubTree.bind(this, false));
    161160
    162161        var corporaToSelect = [];
     
    173172        }.bind(this));
    174173
    175         corporaToSelect.forEach(recurseSelect.bind(this, true));
     174        corporaToSelect.forEach(selectSubTree.bind(this, true));
    176175};
    177176
     
    217216        },
    218217
    219         nohits: { 
     218        nohits: {
    220219                results: null,
    221220        },
     
    247246                                if (this.isMounted()) {
    248247                                        var corpora = new Corpora(json.corpora, this.updateCorpora);
     248                                        window.MyAggregator.corpora = json.corpora;
    249249                                        this.setState({
    250250                                                corpora : corpora,
     
    255255
    256256                                        if (json['x-aggregation-context']) {
    257                                                 console.log("x-aggregation-context: ", json["x-aggregation-context"]);
     257                                                window.MyAggregator.xAggregationContext = json["x-aggregation-context"];
    258258                                                corpora.setAggregationContext(json["x-aggregation-context"]);
    259259                                                if (!corpora.getSelectedIds().length) {
     
    266266                                        if (getQueryVariable('mode') === 'search' ||
    267267                                                json.mode === 'search') {
     268                                                        window.MyAggregator.mode = 'search';
    268269                                                        this.search();
    269270                                        }
     
    281282                if (!query || this.props.embedded) {
    282283                        this.setState({ hits: this.nohits, searchId: null });
    283                         return;                 
     284                        return;
    284285                }
    285286                var selectedIds = this.state.corpora.getSelectedIds();
     
    370371
    371372        getDownloadLink: function(corpusId, format) {
    372                 return 'rest/search/'+this.state.searchId+'/download?' + 
     373                return 'rest/search/'+this.state.searchId+'/download?' +
    373374                        this.getExportParams(corpusId, format);
    374375        },
    375376
    376377        getToWeblichtLink: function(corpusId, forceLanguage) {
    377                 return 'rest/search/'+this.state.searchId+'/toWeblicht?' + 
     378                return 'rest/search/'+this.state.searchId+'/toWeblicht?' +
    378379                        this.getExportParams(corpusId, null, forceLanguage);
    379380        },
    380381
    381382        setLanguageAndFilter: function(languageObj, languageFilter) {
    382                 this.state.corpora.setVisibility(this.state.searchLayerId, 
     383                this.state.corpora.setVisibility(this.state.searchLayerId,
    383384                        languageFilter === 'byGuess' ? multipleLanguageCode : languageObj[0]);
    384385                this.setState({
    385                         language: languageObj, 
    386                         languageFilter: languageFilter, 
     386                        language: languageObj,
     387                        languageFilter: languageFilter,
    387388                        corpora: this.state.corpora, // === this.state.corpora.update();
    388389                });
     
    392393                this.state.corpora.setVisibility(layerId, this.state.language[0]);
    393394                this.setState({
    394                         searchLayerId: layerId, 
    395                         hits: this.nohits, 
     395                        searchLayerId: layerId,
     396                        hits: this.nohits,
    396397                        searchId: null,
    397398                        corpora: this.state.corpora, // === this.state.corpora.update();
     
    417418                var results = null, inProgress = 0, hits = 0;
    418419                if (this.state.hits.results) {
    419                         results = this.state.hits.results.map(function(corpusHit) { 
     420                        results = this.state.hits.results.map(function(corpusHit) {
    420421                                return {
    421422                                        corpus: corpusHit.corpus,
     
    425426                                        kwics: noLangFiltering ? corpusHit.kwics :
    426427                                                corpusHit.kwics.filter(function(kwic) {
    427                                                         return kwic.language === langCode || 
    428                                                                langCode === multipleLanguageCode || 
    429                                                                langCode === null; 
     428                                                        return kwic.language === langCode ||
     429                                                               langCode === multipleLanguageCode ||
     430                                                               langCode === null;
    430431                                                }),
    431432                                };
     
    482483                return React.createElement("h3", {style: {fontSize:'1em'}},
    483484                                        corpus.title,
    484                                          corpus.landingPage ? 
     485                                         corpus.landingPage ?
    485486                                                React.createElement("a", {href: corpus.landingPage, onClick: this.stop, style: {fontSize:12}},
    486487                                                        React.createElement("span", null, " – Homepage "),
     
    504505                        React.createElement("button", {className: "btn btn-default input-lg", type: "button", onClick: this.search},
    505506                                React.createElement("i", {className: "glyphicon glyphicon-search"})
    506                         ) 
     507                        )
    507508                );
    508509        },
     
    534535
    535536                                                        React.createElement("div", {className: "input-group"},
    536                                                                
     537
    537538                                                                React.createElement("span", {className: "input-group-addon nobkg"}, "Search for"),
    538                                                                
     539
    539540                                                                React.createElement("div", {className: "input-group-btn"},
    540541                                                                        React.createElement("button", {className: "form-control btn btn-default",
     
    547548                                                                React.createElement("div", {className: "input-group-btn"},
    548549                                                                        React.createElement("ul", {ref: "layerDropdownMenu", className: "dropdown-menu"},
    549                                                                                         layers.map(function(l) { 
     550                                                                                        layers.map(function(l) {
    550551                                                                                                var cls = l.disabled ? 'disabled':'';
    551552                                                                                                var handler = function() { if (!l.disabled) this.setLayer(l.id); }.bind(this);
     
    554555                                                                                        }.bind(this))
    555556                                                                               
    556                                                                         ),                                                              
     557                                                                        ),
    557558                                                                        React.createElement("button", {className: "form-control btn btn-default",
    558559                                                                                        'aria-expanded': "false", 'data-toggle': "dropdown"},
     
    563564                                                        ),
    564565
    565                                                          this.props.embedded ? false : 
     566                                                         this.props.embedded ? false :
    566567                                                        React.createElement("div", {className: "input-group"},
    567568                                                                React.createElement("span", {className: "input-group-addon nobkg"}, "in"),
     
    571572                                                        ),
    572573
    573                                                          this.props.embedded ? false : 
     574                                                         this.props.embedded ? false :
    574575                                                        React.createElement("div", {className: "input-group"},
    575576                                                                React.createElement("span", {className: "input-group-addon nobkg"}, "and show up to"),
     
    654655
    655656        renderRadio: function(option) {
    656                 return  this.props.languageFilter === option ? 
     657                return  this.props.languageFilter === option ?
    657658                                React.createElement("input", {type: "radio", name: "filterOpts", value: option, checked: true, onChange: this.setFilter.bind(this, option)})
    658659                                : React.createElement("input", {type: "radio", name: "filterOpts", value: option, onChange: this.setFilter.bind(this, option)});
     
    681682                                                        React.createElement("label", {style: {color:'black'}},
    682683                                                                 this.renderRadio('byMeta'), " ",
    683                                                                 "Use the collections", "'", " specified language to filter results" 
     684                                                                "Use the collections", "'", " specified language to filter results"
    684685                                                        )
    685686                                                        ),
     
    687688                                                        React.createElement("label", {style: {color:'black'}},
    688689                                                                 this.renderRadio('byGuess'), " ",
    689                                                                 "Filter results by using a language detector" 
     690                                                                "Filter results by using a language detector"
    690691                                                        )
    691692                                                        ),
     
    708709        //      return {hasPopover: true};
    709710        // },
    710  
     711
    711712        getInitialState: function () {
    712                 return { 
     713                return {
    713714                        displayKwic: false,
    714715                };
     
    758759                return  React.createElement("div", {className: "alert alert-warning", key: key},
    759760                                        React.createElement("div", null, "Diagnostic: ", d.message)
    760                                 ); 
     761                                );
    761762        },
    762763
     
    803804                return  React.createElement("div", {className: "inline btn-group", style: {display:"inline-block"}},
    804805                                        React.createElement("label", {forHtml: "inputKwic", className: "btn btn-flat"},
    805                                                  this.state.displayKwic ? 
     806                                                 this.state.displayKwic ?
    806807                                                        React.createElement("input", {id: "inputKwic", type: "checkbox", value: "kwic", checked: true, onChange: this.toggleKwic}) :
    807808                                                        React.createElement("input", {id: "inputKwic", type: "checkbox", value: "kwic", onChange: this.toggleKwic}),
     
    845846                                React.createElement("ul", {className: "dropdown-menu"},
    846847                                        React.createElement("li", null,
    847                                                 error ? 
     848                                                error ?
    848849                                                        React.createElement("div", {className: "alert alert-danger", style: {margin:10, width:200}}, error) :
    849850                                                        React.createElement("a", {href: this.props.getToWeblichtLink(corpusId, forceLanguage), target: "_blank"}, " ",
     
    893894
    894895        renderMoreResults:function(){
    895                 if (this.state.inProgress || this.props.corpusHit.inProgress) 
     896                if (this.state.inProgress || this.props.corpusHit.inProgress)
    896897                        return React.createElement("span", {style: {fontStyle:'italic'}}, "Retrieving results, please wait...");
    897898
     
    919920                var forceLanguage = null, wlerror = null;
    920921                if (this.props.weblichtLanguages.indexOf(this.props.searchedLanguage[0]) < 0) {
    921                         // the search language is either AnyLanguage or unsupported 
     922                        // the search language is either AnyLanguage or unsupported
    922923                        if (this.props.searchedLanguage[0] === multipleLanguageCode) {
    923924                                if (corpusHit.corpus.languages && corpusHit.corpus.languages.length === 1) {
     
    930931                                        }
    931932                                }
    932                         } 
     933                        }
    933934                        if (!forceLanguage) {
    934935                                wlerror = "Cannot use WebLicht: unsupported language ("+this.props.searchedLanguage[1]+")";
     
    940941                                                React.createElement("div", {className: "corpusDescription"},
    941942                                                        React.createElement("p", null, React.createElement("i", {className: "fa fa-institution"}), " ", corpus.institution.name),
    942                                                         corpus.description ? 
     943                                                        corpus.description ?
    943944                                                                React.createElement("p", null, React.createElement("i", {className: "glyphicon glyphicon-info-sign"}), " ", corpus.description): false,
    944945                                                        React.createElement("p", null, React.createElement("i", {className: "fa fa-language"}), " ", this.renderLanguages(corpus.languages))
     
    992993
    993994        renderResultPanel: function(corpusHit) {
    994                 if (corpusHit.kwics.length === 0 && 
     995                if (corpusHit.kwics.length === 0 &&
    995996                        !corpusHit.exception &&
    996997                        corpusHit.diagnostics.length === 0) {
     
    10121013                return  React.createElement("div", {style: {marginTop:10}},
    10131014                                        React.createElement("div", null, msg),
    1014                                         collhits.inProgress > 0 ? 
     1015                                        collhits.inProgress > 0 ?
    10151016                                                React.createElement("div", {className: "progress", style: {marginBottom:10}},
    10161017                                                        React.createElement("div", {className: "progress-bar progress-bar-striped active", role: "progressbar",
     
    10211022                                                                        style: {width: '100%', backgroundColor:'#888'}})
    10221023                                                       
    1023                                                 ) : 
     1024                                                ) :
    10241025                                                false
    10251026                                );
     
    10361037                                                 showprogress ? this.renderProgressMessage() : React.createElement("div", {style: {height:20}}),
    10371038                                                React.createElement("div", {style: {marginBottom:2}},
    1038                                                          showprogress ? false : 
     1039                                                         showprogress ? false :
    10391040                                                                React.createElement("div", {className: "float-left"}, " ", collhits.hits + " matching collections found", " "),
    10401041                                                       
    1041                                                          collhits.hits === 0 ? false : 
     1042                                                         collhits.hits === 0 ? false :
    10421043                                                                React.createElement("div", {className: "float-right"},
    10431044                                                                        React.createElement("div", null,
    10441045                                                                                 this.renderDisplayKWIC(),
    1045                                                                                  collhits.inProgress === 0 ? 
     1046                                                                                 collhits.inProgress === 0 ?
    10461047                                                                                        React.createElement("div", {className: "inline"}, " ", this.renderDownloadLinks(), " ")
    10471048                                                                                        :false
  • SRUAggregator/trunk/src/main/resources/assets/js/search.jsx

    r6132 r6145  
    4242var layerMap = {
    4343        text: layers[0],
    44         sampa: layers[1], 
     44        sampa: layers[1],
    4545};
    4646
     
    6060        var that = this;
    6161        this.corpora = corpora;
    62         this.update = function() { 
    63                 updateFn(that); 
     62        this.update = function() {
     63                updateFn(that);
    6464        };
    65        
     65
    6666        var sortFn = function(x, y) {
    6767                var r = x.institution.name.localeCompare(y.institution.name);
     
    6969                        return r;
    7070                }
    71                 return x.title.toLowerCase().localeCompare(y.title.toLowerCase()); 
     71                return x.title.toLowerCase().localeCompare(y.title.toLowerCase());
    7272        };
    7373
     
    7979                corpus.selected = true; // selected in the corpus view
    8080                corpus.expanded = false; // not expanded in the corpus view
    81                 corpus.priority = 1; // used for ordering search results in corpus view 
     81                corpus.priority = 1; // used for ordering search results in corpus view
    8282                corpus.index = index; // original order, used for stable sort
    8383        });
     
    8585
    8686Corpora.prototype.recurseCorpus = function(corpus, fn) {
    87         if (false === fn(corpus)) {             
     87        if (false === fn(corpus)) {
    8888                // no recursion
    8989        } else {
     
    129129        if (corpus.languages && corpus.languages.length === 1 && corpus.languages[0] === languageCode) {
    130130                return true;
    131         }       
     131        }
    132132
    133133        // ? yes if the corpus also contains that language
     
    152152
    153153Corpora.prototype.setAggregationContext = function(endpoints2handles) {
    154         // console.log('setAggregationContext', endpoints2handles, this.corpora);
    155         var recurseSelect = function(select, corpus) {
     154        var selectSubTree = function(select, corpus) {
    156155                corpus.selected = false;
    157156                this.recurseCorpora(corpus.subCorpora, function(c) { c.selected = corpus.selected; });
    158157        };
    159158
    160         this.corpora.forEach(recurseSelect.bind(this, false));
     159        this.corpora.forEach(selectSubTree.bind(this, false));
    161160
    162161        var corporaToSelect = [];
     
    173172        }.bind(this));
    174173
    175         corporaToSelect.forEach(recurseSelect.bind(this, true));
     174        corporaToSelect.forEach(selectSubTree.bind(this, true));
    176175};
    177176
     
    217216        },
    218217
    219         nohits: { 
     218        nohits: {
    220219                results: null,
    221220        },
     
    247246                                if (this.isMounted()) {
    248247                                        var corpora = new Corpora(json.corpora, this.updateCorpora);
     248                                        window.MyAggregator.corpora = json.corpora;
    249249                                        this.setState({
    250250                                                corpora : corpora,
     
    255255
    256256                                        if (json['x-aggregation-context']) {
    257                                                 console.log("x-aggregation-context: ", json["x-aggregation-context"]);
     257                                                window.MyAggregator.xAggregationContext = json["x-aggregation-context"];
    258258                                                corpora.setAggregationContext(json["x-aggregation-context"]);
    259259                                                if (!corpora.getSelectedIds().length) {
     
    266266                                        if (getQueryVariable('mode') === 'search' ||
    267267                                                json.mode === 'search') {
     268                                                        window.MyAggregator.mode = 'search';
    268269                                                        this.search();
    269270                                        }
     
    281282                if (!query || this.props.embedded) {
    282283                        this.setState({ hits: this.nohits, searchId: null });
    283                         return;                 
     284                        return;
    284285                }
    285286                var selectedIds = this.state.corpora.getSelectedIds();
     
    370371
    371372        getDownloadLink: function(corpusId, format) {
    372                 return 'rest/search/'+this.state.searchId+'/download?' + 
     373                return 'rest/search/'+this.state.searchId+'/download?' +
    373374                        this.getExportParams(corpusId, format);
    374375        },
    375376
    376377        getToWeblichtLink: function(corpusId, forceLanguage) {
    377                 return 'rest/search/'+this.state.searchId+'/toWeblicht?' + 
     378                return 'rest/search/'+this.state.searchId+'/toWeblicht?' +
    378379                        this.getExportParams(corpusId, null, forceLanguage);
    379380        },
    380381
    381382        setLanguageAndFilter: function(languageObj, languageFilter) {
    382                 this.state.corpora.setVisibility(this.state.searchLayerId, 
     383                this.state.corpora.setVisibility(this.state.searchLayerId,
    383384                        languageFilter === 'byGuess' ? multipleLanguageCode : languageObj[0]);
    384385                this.setState({
    385                         language: languageObj, 
    386                         languageFilter: languageFilter, 
     386                        language: languageObj,
     387                        languageFilter: languageFilter,
    387388                        corpora: this.state.corpora, // === this.state.corpora.update();
    388389                });
     
    392393                this.state.corpora.setVisibility(layerId, this.state.language[0]);
    393394                this.setState({
    394                         searchLayerId: layerId, 
    395                         hits: this.nohits, 
     395                        searchLayerId: layerId,
     396                        hits: this.nohits,
    396397                        searchId: null,
    397398                        corpora: this.state.corpora, // === this.state.corpora.update();
     
    417418                var results = null, inProgress = 0, hits = 0;
    418419                if (this.state.hits.results) {
    419                         results = this.state.hits.results.map(function(corpusHit) { 
     420                        results = this.state.hits.results.map(function(corpusHit) {
    420421                                return {
    421422                                        corpus: corpusHit.corpus,
     
    425426                                        kwics: noLangFiltering ? corpusHit.kwics :
    426427                                                corpusHit.kwics.filter(function(kwic) {
    427                                                         return kwic.language === langCode || 
    428                                                                langCode === multipleLanguageCode || 
    429                                                                langCode === null; 
     428                                                        return kwic.language === langCode ||
     429                                                               langCode === multipleLanguageCode ||
     430                                                               langCode === null;
    430431                                                }),
    431432                                };
     
    480481                if (!corpusHit) return <span/>;
    481482                var corpus = corpusHit.corpus;
    482                 return <h3 style={{fontSize:'1em'}}> 
     483                return <h3 style={{fontSize:'1em'}}>
    483484                                        {corpus.title}
    484                                         { corpus.landingPage ? 
     485                                        { corpus.landingPage ?
    485486                                                <a href={corpus.landingPage} onClick={this.stop} style={{fontSize:12}}>
    486487                                                        <span> – Homepage </span>
     
    504505                        <button className="btn btn-default input-lg" type="button" onClick={this.search}>
    505506                                <i className="glyphicon glyphicon-search"></i>
    506                         </button> 
     507                        </button>
    507508                );
    508509        },
     
    513514                        <div className="top-gap">
    514515                                <div className="row">
    515                                         <div className="aligncenter" style={{marginLeft:16, marginRight:16}}> 
     516                                        <div className="aligncenter" style={{marginLeft:16, marginRight:16}}>
    516517                                                <div className="input-group">
    517518                                                        <span className="input-group-addon" style={{backgroundColor:layer.searchLabelBkColor}}>
     
    534535
    535536                                                        <div className="input-group">
    536                                                                
     537
    537538                                                                <span className="input-group-addon nobkg" >Search for</span>
    538                                                                
     539
    539540                                                                <div className="input-group-btn">
    540                                                                         <button className="form-control btn btn-default" 
     541                                                                        <button className="form-control btn btn-default"
    541542                                                                                        onClick={this.toggleLanguageSelection}>
    542543                                                                                {this.state.language[1]} <span className="caret"/>
     
    547548                                                                <div className="input-group-btn">
    548549                                                                        <ul ref="layerDropdownMenu" className="dropdown-menu">
    549                                                                                 {       layers.map(function(l) { 
     550                                                                                {       layers.map(function(l) {
    550551                                                                                                var cls = l.disabled ? 'disabled':'';
    551552                                                                                                var handler = function() { if (!l.disabled) this.setLayer(l.id); }.bind(this);
    552                                                                                                 return <li key={l.id} className={cls}> <a tabIndex="-1" href="#" 
     553                                                                                                return <li key={l.id} className={cls}> <a tabIndex="-1" href="#"
    553554                                                                                                        onClick={handler}> {l.name} </a></li>;
    554555                                                                                        }.bind(this))
    555556                                                                                }
    556                                                                         </ul>                                                           
    557                                                                         <button className="form-control btn btn-default" 
     557                                                                        </ul>
     558                                                                        <button className="form-control btn btn-default"
    558559                                                                                        aria-expanded="false" data-toggle="dropdown" >
    559560                                                                                {layer.name} <span className="caret"/>
     
    563564                                                        </div>
    564565
    565                                                         { this.props.embedded ? false : 
     566                                                        { this.props.embedded ? false :
    566567                                                        <div className="input-group">
    567568                                                                <span className="input-group-addon nobkg">in</span>
     
    571572                                                        </div> }
    572573
    573                                                         { this.props.embedded ? false : 
     574                                                        { this.props.embedded ? false :
    574575                                                        <div className="input-group">
    575576                                                                <span className="input-group-addon nobkg">and show up to</span>
     
    577578                                                                        <input type="number" className="form-control input" min="10" max="250"
    578579                                                                                style={{width:60}}
    579                                                                                 onChange={this.setNumberOfResults} value={this.state.numberOfResults} 
     580                                                                                onChange={this.setNumberOfResults} value={this.state.numberOfResults}
    580581                                                                                onKeyPress={this.stop}/>
    581582                                                                </div>
     
    609610
    610611                                <div className="top-gap">
    611                                         <Results collhits={this.filterResults()} 
     612                                        <Results collhits={this.filterResults()}
    612613                                                         toggleResultModal={this.toggleResultModal}
    613614                                                         getDownloadLink={this.getDownloadLink}
     
    654655
    655656        renderRadio: function(option) {
    656                 return  this.props.languageFilter === option ? 
     657                return  this.props.languageFilter === option ?
    657658                                <input type="radio" name="filterOpts" value={option} checked onChange={this.setFilter.bind(this, option)}/>
    658659                                : <input type="radio" name="filterOpts" value={option} onChange={this.setFilter.bind(this, option)} />;
     
    681682                                                        <label style={{color:'black'}}>
    682683                                                                { this.renderRadio('byMeta') }{" "}
    683                                                                 Use the collections{"'"} specified language to filter results 
     684                                                                Use the collections{"'"} specified language to filter results
    684685                                                        </label>
    685686                                                        </div>
     
    687688                                                        <label style={{color:'black'}}>
    688689                                                                { this.renderRadio('byGuess') }{" "}
    689                                                                 Filter results by using a language detector 
     690                                                                Filter results by using a language detector
    690691                                                        </label>
    691692                                                        </div>
     
    708709        //      return {hasPopover: true};
    709710        // },
    710  
     711
    711712        getInitialState: function () {
    712                 return { 
     713                return {
    713714                        displayKwic: false,
    714715                };
     
    756757                        return false;
    757758                }
    758                 return  <div className="alert alert-warning" key={key}> 
     759                return  <div className="alert alert-warning" key={key}>
    759760                                        <div>Diagnostic: {d.message}</div>
    760                                 </div>; 
     761                                </div>;
    761762        },
    762763
     
    803804                return  <div className="inline btn-group" style={{display:"inline-block"}}>
    804805                                        <label forHtml="inputKwic" className="btn btn-flat">
    805                                                 { this.state.displayKwic ? 
     806                                                { this.state.displayKwic ?
    806807                                                        <input id="inputKwic" type="checkbox" value="kwic" checked onChange={this.toggleKwic} /> :
    807808                                                        <input id="inputKwic" type="checkbox" value="kwic" onChange={this.toggleKwic} />
     
    818819                                <button className="btn btn-flat" aria-expanded="false" data-toggle="dropdown">
    819820                                        <span className="glyphicon glyphicon-download-alt" aria-hidden="true"/>
    820                                         {" "} Download {" "} 
     821                                        {" "} Download {" "}
    821822                                        <span className="caret"/>
    822823                                </button>
     
    840841                                <button className="btn btn-flat" aria-expanded="false" data-toggle="dropdown">
    841842                                        <span className="glyphicon glyphicon-export" aria-hidden="true"/>
    842                                         {" "} Use Weblicht {" "} 
     843                                        {" "} Use Weblicht {" "}
    843844                                        <span className="caret"/>
    844845                                </button>
    845846                                <ul className="dropdown-menu">
    846                                         <li> 
    847                                                 {error ? 
     847                                        <li>
     848                                                {error ?
    848849                                                        <div className="alert alert-danger" style={{margin:10, width:200}}>{error}</div> :
    849                                                         <a href={this.props.getToWeblichtLink(corpusId, forceLanguage)} target="_blank">{" "} 
     850                                                        <a href={this.props.getToWeblichtLink(corpusId, forceLanguage)} target="_blank">{" "}
    850851                                                                Send to Weblicht</a>
    851852                                                }
     
    893894
    894895        renderMoreResults:function(){
    895                 if (this.state.inProgress || this.props.corpusHit.inProgress) 
     896                if (this.state.inProgress || this.props.corpusHit.inProgress)
    896897                        return <span style={{fontStyle:'italic'}}>Retrieving results, please wait...</span>;
    897898
     
    919920                var forceLanguage = null, wlerror = null;
    920921                if (this.props.weblichtLanguages.indexOf(this.props.searchedLanguage[0]) < 0) {
    921                         // the search language is either AnyLanguage or unsupported 
     922                        // the search language is either AnyLanguage or unsupported
    922923                        if (this.props.searchedLanguage[0] === multipleLanguageCode) {
    923924                                if (corpusHit.corpus.languages && corpusHit.corpus.languages.length === 1) {
     
    930931                                        }
    931932                                }
    932                         } 
     933                        }
    933934                        if (!forceLanguage) {
    934935                                wlerror = "Cannot use WebLicht: unsupported language ("+this.props.searchedLanguage[1]+")";
     
    936937                }
    937938                var corpus = corpusHit.corpus;
    938                 return  <div> 
     939                return  <div>
    939940                                        <ReactCSSTransitionGroup transitionName="fade">
    940941                                                <div className='corpusDescription'>
    941942                                                        <p><i className="fa fa-institution"/> {corpus.institution.name}</p>
    942                                                         {corpus.description ? 
     943                                                        {corpus.description ?
    943944                                                                <p><i className="glyphicon glyphicon-info-sign"/> {corpus.description}</p>: false}
    944945                                                        <p><i className="fa fa-language"/> {this.renderLanguages(corpus.languages)}</p>
     
    992993
    993994        renderResultPanel: function(corpusHit) {
    994                 if (corpusHit.kwics.length === 0 && 
     995                if (corpusHit.kwics.length === 0 &&
    995996                        !corpusHit.exception &&
    996997                        corpusHit.diagnostics.length === 0) {
    997998                                return false;
    998999                }
    999                 return  <Panel key={corpusHit.corpus.id} 
    1000                                                 title={this.renderPanelTitle(corpusHit.corpus)} 
     1000                return  <Panel key={corpusHit.corpus.id}
     1001                                                title={this.renderPanelTitle(corpusHit.corpus)}
    10011002                                                info={this.renderPanelInfo(corpusHit)}>
    10021003                                        {this.renderPanelBody(corpusHit)}
     
    10121013                return  <div style={{marginTop:10}}>
    10131014                                        <div>{msg}</div>
    1014                                         {collhits.inProgress > 0 ? 
     1015                                        {collhits.inProgress > 0 ?
    10151016                                                <div className="progress" style={{marginBottom:10}}>
    1016                                                         <div className="progress-bar progress-bar-striped active" role="progressbar" 
     1017                                                        <div className="progress-bar progress-bar-striped active" role="progressbar"
    10171018                                                                aria-valuenow={percents} aria-valuemin="0" aria-valuemax="100" style={styleperc} />
    10181019                                                        {percents > 2 ? false :
    1019                                                                 <div className="progress-bar progress-bar-striped active" role="progressbar" 
     1020                                                                <div className="progress-bar progress-bar-striped active" role="progressbar"
    10201021                                                                        aria-valuenow='100' aria-valuemin="0" aria-valuemax="100"
    10211022                                                                        style={{width: '100%', backgroundColor:'#888'}} />
    10221023                                                        }
    1023                                                 </div> : 
     1024                                                </div> :
    10241025                                                false}
    10251026                                </div>;
     
    10321033                }
    10331034                var showprogress = collhits.inProgress > 0;
    1034                 return  <div> 
     1035                return  <div>
    10351036                                        <ReactCSSTransitionGroup transitionName="fade">
    10361037                                                { showprogress ? this.renderProgressMessage() : <div style={{height:20}} />}
    10371038                                                <div style={{marginBottom:2}}>
    1038                                                         { showprogress ? false : 
     1039                                                        { showprogress ? false :
    10391040                                                                <div className="float-left"> {collhits.hits + " matching collections found"} </div>
    10401041                                                        }
    1041                                                         { collhits.hits === 0 ? false : 
     1042                                                        { collhits.hits === 0 ? false :
    10421043                                                                <div className="float-right">
    10431044                                                                        <div>
    10441045                                                                                { this.renderDisplayKWIC() }
    1045                                                                                 { collhits.inProgress === 0 ? 
     1046                                                                                { collhits.inProgress === 0 ?
    10461047                                                                                        <div className="inline"> {this.renderDownloadLinks()} </div>
    10471048                                                                                        :false
Note: See TracChangeset for help on using the changeset viewer.