Example #1
0
var SearchTabViewModel = function(options) {
    ExplorerTabViewModel.call(this);

    this.name = 'Search';
    this.searchText = '';
    this.searchProviders = defaultValue(options.searchProviders, []).slice();

    knockout.track(this, ['name', 'searchText', 'searchProviders']);

    // Knockout's hasFocus binding doesn't work with a knockout-es5 property (as of v3.2.0).
    // So, just use a regular observable.
    this.searchBoxHasFocus = knockout.observable(false);

    this.svgArrowDown = svgArrowDown;
    this.svgArrowRight = svgArrowRight;
    this.svgCheckboxChecked = svgCheckboxChecked;
    this.svgCheckboxUnchecked = svgCheckboxUnchecked;
    this.svgInfo = svgInfo;

    var searchTextObservable = knockout.getObservable(this, 'searchText');

    searchTextObservable.extend({ rateLimit: 250 });

    searchTextObservable.subscribe(function() {
        this.search();
    }, this);

    // Focus the search box when the tab is activated.
    knockout.getObservable(this, 'isActive').subscribe(function(newValue) {
        if (newValue) {
            this.searchBoxHasFocus(true);
        }
    }, this);
};
Example #2
0
var SearchTabViewModel = function(options) {
    ExplorerTabViewModel.call(this, defaultValue(options.name, 'Search'),
        defaultValue(options.name, 'Search'));

    this.svgPath = svgSearch;
    this.svgPathWidth = 32;
    this.svgPathHeight = 32;
    this.searchText = '';
    this.searchProviders = defaultValue(options.searchProviders, []).slice();
    this.isSearchActive = false;

    knockout.track(this, ['name', 'searchText', 'searchProviders', 'isSearchActive']);

    // Knockout's hasFocus binding doesn't work with a knockout-es5 property (as of v3.2.0).
    // So, just use a regular observable.
    this.searchBoxHasFocus = knockout.observable(false);

    this.svgArrowDown = svgArrowDown;
    this.svgArrowRight = svgArrowRight;
    this.svgCheckboxChecked = svgCheckboxChecked;
    this.svgCheckboxUnchecked = svgCheckboxUnchecked;
    this.svgInfo = svgInfo;

    var searchTextObservable = knockout.getObservable(this, 'searchText');

    this._debounceSearchTimeoutID = undefined;

    searchTextObservable.subscribe(function() {
        this.debounceSearch();
    }, this);

    // Focus the search box when the tab is activated.
    knockout.getObservable(this, 'isActive').subscribe(function(newValue) {
        var that = this;
          if (newValue) {
            window.setTimeout(function(){
                that.searchBoxHasFocus(true);
            }, 300);
        }
    }, this);
};
var DataCatalogTabViewModel = function(options) {
    ExplorerTabViewModel.call(this, defaultValue(options.name, 'Data Catalogue'),
        defaultValue(options.name, 'DataCatalogue'));

    this.catalog = options.catalog;
    this.popupParentDomElement = defaultValue(options.popupParentDomElement, 'ui');

    this.svgCheckboxChecked = defaultValue(options.svgCheckboxChecked, svgCheckboxChecked);
    this.svgCheckboxUnchecked = defaultValue(options.svgCheckboxUnchecked, svgCheckboxUnchecked);
    this.svgArrowDown = defaultValue(options.svgArrowDown, svgArrowDown);
    this.svgArrowRight = defaultValue(options.svgArrowRight, svgArrowRight);
    this.svgInfo = defaultValue(options.svgInfo, svgInfo);

    this.panelHasFocus = knockout.observable(false);

    var that = this;

    knockout.getObservable(this, 'isActive').subscribe(function(newValue) {
        if (newValue) {
            that.panelHasFocus(true);
        }
    }, this);
};