[wiki-lenny/static/] ajout des ressources statiques du wiki dans le repo (css)
darcs-hash:20081109214403-bd074-aea913ab711cbdb465ead1d96003dbcf5b52c7c3.gz
This commit is contained in:
parent
6b3f3a1c17
commit
3275986a70
92 changed files with 4356 additions and 0 deletions
308
wiki-lenny/static/common/js/common.js
Normal file
308
wiki-lenny/static/common/js/common.js
Normal file
|
@ -0,0 +1,308 @@
|
|||
//
|
||||
// MoinMoin commonly used JavaScript functions
|
||||
//
|
||||
|
||||
// We keep here the state of the search box
|
||||
searchIsDisabled = false;
|
||||
|
||||
function searchChange(e) {
|
||||
// Update search buttons status according to search box content.
|
||||
// Ignore empty or whitespace search term.
|
||||
var value = e.value.replace(/\s+/, '');
|
||||
if (value == '' || searchIsDisabled) {
|
||||
searchSetDisabled(true);
|
||||
} else {
|
||||
searchSetDisabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
function searchSetDisabled(flag) {
|
||||
// Enable or disable search
|
||||
document.getElementById('fullsearch').disabled = flag;
|
||||
document.getElementById('titlesearch').disabled = flag;
|
||||
}
|
||||
|
||||
function searchFocus(e) {
|
||||
// Update search input content on focus
|
||||
if (e.value == search_hint) {
|
||||
e.value = '';
|
||||
e.className = '';
|
||||
searchIsDisabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
function searchBlur(e) {
|
||||
// Update search input content on blur
|
||||
if (e.value == '') {
|
||||
e.value = search_hint;
|
||||
e.className = 'disabled';
|
||||
searchIsDisabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
function actionsMenuInit(title) {
|
||||
// Initialize action menu
|
||||
for (i = 0; i < document.forms.length; i++) {
|
||||
var form = document.forms[i];
|
||||
if (form.className == 'actionsmenu') {
|
||||
// Check if this form needs update
|
||||
var div = form.getElementsByTagName('div')[0];
|
||||
var label = div.getElementsByTagName('label')[0];
|
||||
if (label) {
|
||||
// This is the first time: remove label and do buton.
|
||||
div.removeChild(label);
|
||||
var dobutton = div.getElementsByTagName('input')[0];
|
||||
div.removeChild(dobutton);
|
||||
// and add menu title
|
||||
var select = div.getElementsByTagName('select')[0];
|
||||
var item = document.createElement('option');
|
||||
item.appendChild(document.createTextNode(title));
|
||||
item.value = 'show';
|
||||
select.insertBefore(item, select.options[0]);
|
||||
select.selectedIndex = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// use this instead of assigning to window.onload directly:
|
||||
function addLoadEvent(func) {
|
||||
// alert("addLoadEvent " + func)
|
||||
var oldonload = window.onload;
|
||||
if (typeof window.onload != 'function') {
|
||||
window.onload = func;
|
||||
} else {
|
||||
window.onload = function() {
|
||||
oldonload();
|
||||
func();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function can_use_gui_editor() {
|
||||
var sAgent = navigator.userAgent.toLowerCase() ;
|
||||
|
||||
// Internet Explorer
|
||||
if ( sAgent.indexOf("msie") != -1 && sAgent.indexOf("mac") == -1 && sAgent.indexOf("opera") == -1 )
|
||||
{
|
||||
var sBrowserVersion = navigator.appVersion.match(/MSIE (.\..)/)[1] ;
|
||||
return ( sBrowserVersion >= 5.5 ) ;
|
||||
}
|
||||
|
||||
// Gecko
|
||||
if ( navigator.product == "Gecko" && navigator.productSub >= 20030210 )
|
||||
return true ;
|
||||
|
||||
// Opera
|
||||
if ( this.EnableOpera )
|
||||
{
|
||||
var aMatch = sAgent.match( /^opera\/(\d+\.\d+)/ ) ;
|
||||
if ( aMatch && aMatch[1] >= 9.0 )
|
||||
return true ;
|
||||
}
|
||||
|
||||
// Safari
|
||||
if ( this.EnableSafari && sAgent.indexOf( 'safari' ) != -1 )
|
||||
return ( sAgent.match( /safari\/(\d+)/ )[1] >= 312 ) ; // Build must be at least 312 (1.3)
|
||||
|
||||
return false ;
|
||||
|
||||
}
|
||||
|
||||
|
||||
function update_edit_links() {
|
||||
// Update editlink according if if the browser is compatible
|
||||
if (can_use_gui_editor() == false){
|
||||
//alert("update_edit_links: can't use gui editor");
|
||||
return;
|
||||
}
|
||||
var editlinks = document.getElementsByName("editlink");
|
||||
for (i = 0; i < editlinks.length; i++) {
|
||||
var link = editlinks[i];
|
||||
href = link.href.replace('editor=textonly','editor=guipossible');
|
||||
link.href = href;
|
||||
//alert("update_edit_links: modified to guipossible");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function add_gui_editor_links() {
|
||||
// Add gui editor link after the text editor link
|
||||
|
||||
// If the variable is not set or browser is not compatible, exit
|
||||
try {gui_editor_link_href}
|
||||
catch (e) {
|
||||
//alert("add_gui_editor_links: gui_editor_link_href not here");
|
||||
return
|
||||
}
|
||||
if (can_use_gui_editor() == false){
|
||||
//alert("add_gui_editor_links: can't use gui_editor");
|
||||
return;
|
||||
}
|
||||
var all = document.getElementsByName('texteditlink');
|
||||
for (i = 0; i < all.length; i++) {
|
||||
var textEditorLink = all[i];
|
||||
// Create a list item with a link
|
||||
var guiEditorLink = document.createElement('a');
|
||||
guiEditorLink.href = gui_editor_link_href;
|
||||
var text = document.createTextNode(gui_editor_link_text);
|
||||
guiEditorLink.appendChild(text);
|
||||
var listItem = document.createElement('li')
|
||||
listItem.appendChild(guiEditorLink);
|
||||
// Insert in the editbar
|
||||
var editbar = textEditorLink.parentNode.parentNode
|
||||
var nextListItem = textEditorLink.parentNode.nextSibling;
|
||||
editbar.insertBefore(listItem, nextListItem);
|
||||
//alert("add_gui_editor_links: added gui editor link");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function show_switch2gui() {
|
||||
// Show switch to gui editor link if the browser is compatible
|
||||
if (can_use_gui_editor() == false) return;
|
||||
|
||||
var switch2gui = document.getElementById('switch2gui')
|
||||
if (switch2gui) {
|
||||
switch2gui.style.display = 'inline';
|
||||
}
|
||||
}
|
||||
|
||||
function toggleComments() {
|
||||
// Toggle visibility of every tag with class == *comment*
|
||||
var all = document.getElementsByTagName('*');
|
||||
for (i = 0; i < all.length; i++){
|
||||
el = all[i];
|
||||
if ( el.className.indexOf('comment') >= 0 ){
|
||||
if ( el.style.display != 'none' ) {
|
||||
el.style.display = 'none';
|
||||
} else {
|
||||
el.style.display = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function show_toggleComments() {
|
||||
// Show edit bar item "ToggleComments" if inline comments exist on this page
|
||||
var all = document.getElementsByTagName('*');
|
||||
var count = 0;
|
||||
for (i = 0; i < all.length; i++){
|
||||
el = all[i];
|
||||
if ( el.className.indexOf('comment') >= 0 ){
|
||||
count++;
|
||||
}
|
||||
}
|
||||
if (count > 0) {
|
||||
for (i = 0; i < all.length; i++){
|
||||
el = all[i];
|
||||
if ( el.className == 'toggleCommentsButton' ){
|
||||
el.style.display = 'inline';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function load() {
|
||||
// Do not name this "onload", it does not work with IE :-)
|
||||
// TODO: create separate onload for each type of view and set the
|
||||
// correct function name in the html.
|
||||
// e.g <body onlod='editor_onload()'>
|
||||
|
||||
// login focus
|
||||
if (document.forms['loginform']) {
|
||||
document.forms['loginform'].elements['name'].focus();
|
||||
}
|
||||
|
||||
// Page view stuff
|
||||
update_edit_links();
|
||||
add_gui_editor_links();
|
||||
|
||||
// Editor stuff
|
||||
show_switch2gui();
|
||||
|
||||
// Enable menu item "ToggleComments" if inline comments exist
|
||||
show_toggleComments();
|
||||
|
||||
// data browser widget
|
||||
dbw_hide_buttons();
|
||||
}
|
||||
|
||||
|
||||
function before_unload(evt) {
|
||||
// TODO: Better to set this in the editor html, as it does not make
|
||||
// sense elsehwere.
|
||||
// confirmleaving is available when editing
|
||||
try {return confirmleaving();}
|
||||
catch (e) {}
|
||||
}
|
||||
|
||||
// Initialize after loading the page
|
||||
addLoadEvent(load)
|
||||
|
||||
// Catch before unloading the page
|
||||
window.onbeforeunload = before_unload
|
||||
|
||||
function dbw_update_search(dbw_id)
|
||||
{
|
||||
var table = document.getElementById(dbw_id+'table');
|
||||
var cell;
|
||||
var shown;
|
||||
var i
|
||||
var cols = table.rows[0].cells.length;
|
||||
var filter = new Array();
|
||||
var dofilter = new Array();
|
||||
var form = document.forms[dbw_id+'form'];
|
||||
|
||||
for (i = 0; i < cols; i++) {
|
||||
dofilter[i] = false;
|
||||
if (form[dbw_id+'filter'+i]) {
|
||||
dofilter[i] = true;
|
||||
filter[i] = form[dbw_id+'filter'+i].value;
|
||||
if (filter[i] == '[all]')
|
||||
dofilter[i] = false;
|
||||
if (filter[i] == '[empty]')
|
||||
filter[i] = '';
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 1; i < table.rows.length; i++) {
|
||||
var show = true;
|
||||
for (col = 0; col < cols; col++) {
|
||||
if (!dofilter[col])
|
||||
continue;
|
||||
|
||||
cell = table.rows[i].cells[col];
|
||||
|
||||
if (filter[col] == '[notempty]') {
|
||||
if (cell.abbr == '') {
|
||||
show = false;
|
||||
break;
|
||||
}
|
||||
} else if (filter[col] != cell.abbr) {
|
||||
show = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (show)
|
||||
table.rows[i].style.display = '';
|
||||
else
|
||||
table.rows[i].style.display = 'none';
|
||||
}
|
||||
}
|
||||
|
||||
function dbw_hide_buttons() {
|
||||
var form;
|
||||
var elem;
|
||||
|
||||
for (var fidx = 0; fidx < document.forms.length; fidx++) {
|
||||
form = document.forms[fidx];
|
||||
for (var eidx = 0; eidx < form.elements.length; eidx++) {
|
||||
elem = form.elements[eidx];
|
||||
name = elem.name;
|
||||
if (name.substr(0,4) == 'dbw.' && name.substr(-7) == '.submit')
|
||||
elem.style.display = 'none';
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue