This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
Incam_SGD/resources/js/search2widget.js

245 lines
5.6 KiB
JavaScript

Ext.onReady(function(){
Ext.BLANK_IMAGE_URL = 'thirdpartyjs/extjs/resources/images/default/s.gif';
var bSearchOptionMetadataAndContent = true;
function doAdvancedSearch()
{
document.location=rootURL + "/search2.php?action=guiBuilder";
}
function doViewPreviousSearchResults()
{
document.location=rootURL + "/search2.php?action=searchResults";
}
function onMetadataAndContentClick()
{
bSearchOptionMetadataAndContent = true;
//Ext.example.msg(sSearchTranslations[0], sSearchTranslations[1]); /* Quick Search Options, Searches will now search both content and metadata */
}
function onMetadataClick()
{
bSearchOptionMetadataAndContent = false;
//Ext.example.msg(sSearchTranslations[0], sSearchTranslations[2]); /* Quick Search Options, Searches will now only search metadata */
}
function onSearchEngineFormatClick()
{
bResultsFormatSearchEngine = true;
document.location=rootURL + "/search2.php?action=searchResults&format=searchengine";
}
function onBrowseFormatClick()
{
bResultsFormatSearchEngine = false;
document.location=rootURL + "/search2.php?action=searchResults&format=browseview";
}
function onSavedSearchClick(item)
{
id = item.id.substr(11);
document.location=rootURL + "/search2.php?action=processSaved&fSavedSearchId=" + id;
}
function onSearchClick(sender)
{
var suffix = sender.id.substring(12);
var text = Ext.get('txtSearchBar' + suffix).getValue(false).trim();
if (text == sSearchTranslations[12] || text == '')
{
Ext.getCmp('txtSearchBar' + suffix).setValue('');
// Ext.example.msg(sSearchTranslations[3], sSearchTranslations[4]); /* Hint, Please enter some search criteria! */
return;
}
var sq = document.getElementById('txtQuery');
var qg = document.getElementById('cbQuickGeneral');
text = text.replace(/\"/g, "'");
if (bSearchOptionMetadataAndContent)
{
sq.value = '(GeneralText contains "' + text + '")';
}
else
{
sq.value = '(Metadata contains "' + text + '")';
}
qg.value = bSearchOptionMetadataAndContent?1:0;
var frm = document.getElementById('frmQuickSearch');
frm.submit();
}
function populateSavedSearch(menu)
{
if (aSavedSearches.length == 0)
{
return;
}
var item = menu.addMenuItem({
text: sSearchTranslations[5], /*Saved Searches*/
menu: {
shadow: false,
minWidth: '150px',
items: []
}
});
for(i = 0; i < aSavedSearches.length; i++)
{
var search = aSavedSearches[i];
var name = search.name;
item.menu.addMenuItem({
text: name,
id: 'miSavedItem' + search.id,
handler: onSavedSearchClick
});
}
}
function createSearchBar(div, suffix)
{
var x = Ext.get(div);
if (x == null)
{
return;
}
var button;
if (suffix == 1)
{
var menu = new Ext.menu.Menu({
shadow: false,
minWidth: '200px',
items: [
{
text: sSearchTranslations[6], /* Advanced Search */
handler: doAdvancedSearch
},
{
text: sSearchTranslations[7], /* Previous Search Results */
handler: doViewPreviousSearchResults
},
{
text: sSearchTranslations[8] , /*Quick Search Options*/
menu: {
shadow: false,
minWidth: '150px',
items: [
new Ext.menu.CheckItem({
text: sSearchTranslations[9], /* content and metadata */
id: 'cbSearchOptionContentMetadata' + suffix,
checked: bSearchOptionMetadataAndContent,
group: 'options',
handler: onMetadataAndContentClick
}),
new Ext.menu.CheckItem({
text: sSearchTranslations[10], /* metadata */
checked: !bSearchOptionMetadataAndContent,
id: 'cbSearchOptionMetadata' + suffix,
group: 'options',
handler: onMetadataClick
})
]
}
},
{
text: sSearchTranslations[13] , /*Toggle results format*/
menu: {
shadow: false,
minWidth: '150px',
items: [
new Ext.menu.CheckItem({
text: sSearchTranslations[14], /* search engine format */
id: 'cbResultsFormatSearchEngine' + suffix,
checked: bResultsFormatSearchEngine,
group: 'format',
handler: onSearchEngineFormatClick
}),
new Ext.menu.CheckItem({
text: sSearchTranslations[15], /* browse view format */
id: 'cbBrowseSearchEngine' + suffix,
checked: !bResultsFormatSearchEngine,
group: 'format',
handler: onBrowseFormatClick
})
]
}
}
]
});
button = new Ext.Toolbar.MenuButton({
text: sSearchTranslations[11], /* search */
handler: onSearchClick,
id: 'searchButton' + suffix,
//cls: 'x-btn-text-icon blist',
menu : menu
});
populateSavedSearch(menu);
}
else
{
menu = null;
button = new Ext.Toolbar.Button({
text: sSearchTranslations[11], /* search */
pressed: true,
handler: onSearchClick,
id: 'searchButton' + suffix
//cls: 'x-btn-text-icon blist',
});
}
var tb = new Ext.Toolbar(div);
tb.add(
new Ext.form.TextField({
emptyText: sSearchTranslations[12], /* Enter search criteria... */
value: quickQuery,
selectOnFocus:true,
id:'txtSearchBar' + suffix,
width: (suffix == 1) ? 180 : 110
}),
button);
var map = new Ext.KeyMap("txtSearchBar" + suffix,
{
key: Ext.EventObject.ENTER,
fn: function() {
onSearchClick(Ext.get('txtSearchBar' + suffix));
}
});
var el = Ext.get(div);
if (suffix == 1)
{
el.applyStyles('position:relative; margin-right: 15px');
}
else
{
el.applyStyles('position:relative; left: 20px; top: 0px;');
}
return menu;
}
/* create the top search widget */
var menu = createSearchBar('newSearchQuery',1);
/* create the search portlet if possible */
createSearchBar('searchPortletCriteria',2);
});