create autocomplete for lineage search
This commit is contained in:
parent
9efe4fc933
commit
07612d6456
1 changed files with 43 additions and 16 deletions
|
|
@ -1892,15 +1892,8 @@ WebGUI.Admin.Search.prototype.addFilter
|
||||||
nameElem.appendChild( document.createTextNode( name ) );
|
nameElem.appendChild( document.createTextNode( name ) );
|
||||||
li.appendChild( nameElem );
|
li.appendChild( nameElem );
|
||||||
|
|
||||||
if ( filter.type == "title" ) {
|
// Function to create an autocomplete field
|
||||||
var inputElem = document.createElement('input');
|
var createAutocomplete = function ( li, filter ) {
|
||||||
filter.inputElem = inputElem;
|
|
||||||
inputElem.type = "text";
|
|
||||||
li.appendChild( inputElem );
|
|
||||||
YAHOO.util.Event.on( inputElem, 'keyup', this.updateLocationBarQuery, this, true );
|
|
||||||
inputElem.focus();
|
|
||||||
}
|
|
||||||
else if ( filter.type == "ownerUserId" ) {
|
|
||||||
var container = document.createElement( 'div' );
|
var container = document.createElement( 'div' );
|
||||||
container.className = "autocomplete";
|
container.className = "autocomplete";
|
||||||
li.appendChild( container );
|
li.appendChild( container );
|
||||||
|
|
@ -1909,12 +1902,6 @@ WebGUI.Admin.Search.prototype.addFilter
|
||||||
filter.inputElem = inputElem;
|
filter.inputElem = inputElem;
|
||||||
inputElem.type = "text";
|
inputElem.type = "text";
|
||||||
container.appendChild( inputElem );
|
container.appendChild( inputElem );
|
||||||
filter.dataSource = new YAHOO.util.XHRDataSource( '?op=admin;method=findUser;' );
|
|
||||||
filter.dataSource.responseType = YAHOO.util.XHRDataSource.TYPE_JSON;
|
|
||||||
filter.dataSource.responseSchema = {
|
|
||||||
resultsList : "results",
|
|
||||||
fields : [ 'username', 'name', 'userId', 'avatar', 'email' ]
|
|
||||||
};
|
|
||||||
|
|
||||||
// Auto-complete container
|
// Auto-complete container
|
||||||
var acDiv = document.createElement('div');
|
var acDiv = document.createElement('div');
|
||||||
|
|
@ -1930,6 +1917,26 @@ WebGUI.Admin.Search.prototype.addFilter
|
||||||
filter.autocomplete.typeAhead = true;
|
filter.autocomplete.typeAhead = true;
|
||||||
filter.autocomplete.resultTypeList = false;
|
filter.autocomplete.resultTypeList = false;
|
||||||
filter.autocomplete.applyLocalFilter = true;
|
filter.autocomplete.applyLocalFilter = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
if ( filter.type == "title" ) {
|
||||||
|
var inputElem = document.createElement('input');
|
||||||
|
filter.inputElem = inputElem;
|
||||||
|
inputElem.type = "text";
|
||||||
|
li.appendChild( inputElem );
|
||||||
|
YAHOO.util.Event.on( inputElem, 'keyup', this.updateLocationBarQuery, this, true );
|
||||||
|
inputElem.focus();
|
||||||
|
}
|
||||||
|
else if ( filter.type == "ownerUserId" ) {
|
||||||
|
filter.dataSource = new YAHOO.util.XHRDataSource( '?op=admin;method=findUser;' );
|
||||||
|
filter.dataSource.responseType = YAHOO.util.XHRDataSource.TYPE_JSON;
|
||||||
|
filter.dataSource.responseSchema = {
|
||||||
|
resultsList : "results",
|
||||||
|
fields : [ 'username', 'name', 'userId', 'avatar', 'email' ]
|
||||||
|
};
|
||||||
|
|
||||||
|
createAutocomplete( li, filter );
|
||||||
|
|
||||||
filter.autocomplete.formatResult = function ( result, query, match ) {
|
filter.autocomplete.formatResult = function ( result, query, match ) {
|
||||||
var subtext = ( result.name ? result.name : "" )
|
var subtext = ( result.name ? result.name : "" )
|
||||||
+ ( result.email ? " <" + result.email + ">" : "" )
|
+ ( result.email ? " <" + result.email + ">" : "" )
|
||||||
|
|
@ -1940,7 +1947,27 @@ WebGUI.Admin.Search.prototype.addFilter
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
inputElem.focus();
|
filter.inputElem.focus();
|
||||||
|
}
|
||||||
|
else if ( filter.type == 'lineage' ) {
|
||||||
|
// lineage has autocomplete box and pop-up dialog button
|
||||||
|
filter.dataSource = new YAHOO.util.XHRDataSource( '?op=admin;method=findAsset;' );
|
||||||
|
filter.dataSource.responseType = YAHOO.util.XHRDataSource.TYPE_JSON;
|
||||||
|
filter.dataSource.responseSchema = {
|
||||||
|
resultsList : "results",
|
||||||
|
fields : [ 'className', 'title', 'icon' ]
|
||||||
|
};
|
||||||
|
|
||||||
|
createAutocomplete( li, filter );
|
||||||
|
|
||||||
|
filter.autocomplete.formatResult = function ( result, query, match ) {
|
||||||
|
return '<div style="float: left; width: 50px; height: 50px; background: url(' + result.icon + ') no-repeat 50% 50%;"></div>'
|
||||||
|
+ '<div class="autocomplete_value">' + result.name + "</div>"
|
||||||
|
+ '<div class="autocomplete_subtext">' + result.className + '</div>';
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
filter.inputElem.focus();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue