mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-15 14:03:27 +00:00
179 lines
5.3 KiB
Plaintext
179 lines
5.3 KiB
Plaintext
(function() {
|
|
|
|
var Event=YAHOO.util.Event,
|
|
Dom=YAHOO.util.Dom,
|
|
oACDS, oAutoComp,
|
|
show = {
|
|
'private': false,
|
|
'protected': false,
|
|
'deprecated': false
|
|
},
|
|
|
|
ITEM_TEMPLATE = '<em>{host}</em> <span>{name}</span>',
|
|
// ITEM_TEMPLATE = '<em>{host}</em> <span>{params}</span> <span>{name}</span>',
|
|
// ITEM_TEMPLATE = '<em>{host}</em> <span>{params}</span> <span>{name}</span><div>{description}</div>',
|
|
yuidoc = YAHOO.namespace('yuidoc'),
|
|
propdata,
|
|
initialized = false;
|
|
|
|
yuidoc.init = function(altdata) {
|
|
yuidoc.initUI(altdata);
|
|
};
|
|
|
|
yuidoc.initUI = function(altdata) {
|
|
|
|
if (initialized) {
|
|
return;
|
|
}
|
|
|
|
propdata = ALL_YUI_PROPS || altdata;
|
|
|
|
//Checkboxes are available..
|
|
var handleClick = function(e) {
|
|
var id, checked = false;
|
|
if (YAHOO.lang.isString(e)) {
|
|
id = e;
|
|
} else {
|
|
var tar = Event.getTarget(e);
|
|
id = tar.id;
|
|
}
|
|
var el = Dom.get(id);
|
|
checked = el.checked;
|
|
|
|
var className = id;
|
|
if (checked) {
|
|
show[id.replace('show_', '')] = true;
|
|
Dom.addClass(document.body, className);
|
|
YAHOO.util.Cookie.setSub('yuidoc', id, 'checked');
|
|
} else {
|
|
show[id.replace('show_', '')] = false;
|
|
Dom.removeClass(document.body, className);
|
|
YAHOO.util.Cookie.setSub('yuidoc', id, '');
|
|
}
|
|
};
|
|
|
|
var checkCookie = function(id) {
|
|
var value = YAHOO.util.Cookie.getSub('yuidoc', id),
|
|
el = Dom.get(id), checked = (value === 'checked');;
|
|
|
|
el.checked = checked;
|
|
return checked;
|
|
};
|
|
|
|
var els = ['show_deprecated', 'show_protected', 'show_private'],
|
|
reapplyHash = false;
|
|
|
|
for (var i = 0; i < els.length; i++) {
|
|
Event.on(els[i], 'click', handleClick);
|
|
reapplyHash = checkCookie(els[i]) || reapplyHash;
|
|
handleClick(els[i]);
|
|
}
|
|
|
|
// If we dynamically show private/protected/etc items during
|
|
// load, we need to reapply anchors so that the search feature
|
|
// works correctly for items that are initially hidden.
|
|
if (reapplyHash) {
|
|
var dl = document.location, hash = dl.hash;
|
|
if (hash) {
|
|
dl.hash = hash;
|
|
}
|
|
}
|
|
|
|
};
|
|
|
|
//Starting the AutoComplete code
|
|
var getResults = function(query) {
|
|
var results = [];
|
|
if (query && query.length > 0) {
|
|
var q = query.toLowerCase();
|
|
for (var i=0, len=propdata.length; i<len; ++i) {
|
|
var prop = propdata[i];
|
|
if (!show['protected'] && prop.access == "protected") {
|
|
// skip
|
|
} else if (!show['private'] && prop.access == "private") {
|
|
// skip
|
|
} else if (!show['deprecated'] && prop.deprecated) {
|
|
// skip
|
|
} else {
|
|
var s = (prop.host + "." + prop.name).toLowerCase();
|
|
if (s.indexOf(q) > -1 ) {
|
|
results.push([query, prop]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return results;
|
|
};
|
|
|
|
// Define Custom Event handlers
|
|
var myOnDataReturn = function(sType, aArgs) {
|
|
var oAutoComp = aArgs[0];
|
|
var query = aArgs[1];
|
|
var aResults = aArgs[2];
|
|
|
|
if(aResults.length == 0) {
|
|
if (query.length > 0) {
|
|
oAutoComp.setBody("<div id=\"resultsdefault\">Not found</div>");
|
|
}
|
|
}
|
|
};
|
|
|
|
var myOnItemSelect = function(sType, aArgs) {
|
|
var ac = aArgs[0];
|
|
var item = aArgs[2];
|
|
location.href = item[1].url;
|
|
};
|
|
|
|
|
|
Event.onAvailable("searchresults", function() {
|
|
|
|
// Instantiate JS Function DataSource
|
|
oACDS = new YAHOO.widget.DS_JSFunction(getResults);
|
|
oACDS.maxCacheEntries = 30;
|
|
|
|
// Instantiate AutoComplete
|
|
oAutoComp = new YAHOO.widget.AutoComplete('searchinput','searchresults', oACDS);
|
|
//oAutoComp.alwaysShowContainer = true;
|
|
oAutoComp.queryDelay = 0.2;
|
|
oAutoComp.maxResultsDisplayed = 200;
|
|
oAutoComp.minQueryLength = 0;
|
|
oAutoComp.formatResult = function(oResultItem, query) {
|
|
// var sMarkup = "<em>" + oResultItem[1].host + '</em> <span>' + oResultItem[1].name + '</span>';
|
|
// return sMarkup;
|
|
// return "<em>" + oResultItem[1].host + '</em> <span>' + oResultItem[1].name + '</span>';
|
|
return YAHOO.lang.substitute(ITEM_TEMPLATE, oResultItem[1]);
|
|
};
|
|
|
|
// Subscribe to Custom Events
|
|
oAutoComp.dataReturnEvent.subscribe(myOnDataReturn);
|
|
oAutoComp.itemSelectEvent.subscribe(myOnItemSelect);
|
|
|
|
// Set initial content in the container
|
|
oAutoComp.sendQuery(Dom.get("searchinput").value);
|
|
|
|
});
|
|
|
|
var validateForm = function() {
|
|
return false;
|
|
};
|
|
|
|
YAHOO.util.Event.onAvailable('classTab', function() {
|
|
var tabs = new YAHOO.widget.TabView('classTab');
|
|
});
|
|
|
|
/*
|
|
YAHOO.util.Event.onAvailable('codeTree', function() {
|
|
var tree1 = new YAHOO.widget.TreeView('codeTree');
|
|
tree1.render();
|
|
});
|
|
*/
|
|
|
|
YAHOO.util.Event.onDOMReady(function() {
|
|
if (typeof ALL_YUI_PROPS != "undefined") {
|
|
YAHOO.yuidoc.initUI();
|
|
}
|
|
});
|
|
|
|
})();
|