- From: Thomas Gambet via cvs-syncmail <cvsmail@w3.org>
- Date: Mon, 24 Aug 2009 09:17:50 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2006/unicorn/WebContent/scripts In directory hutz:/tmp/cvs-serv338/WebContent/scripts Modified Files: Tag: dev2 w3c-validator.js Log Message: updated interface Index: w3c-validator.js =================================================================== RCS file: /sources/public/2006/unicorn/WebContent/scripts/Attic/w3c-validator.js,v retrieving revision 1.1.2.8 retrieving revision 1.1.2.9 diff -u -d -r1.1.2.8 -r1.1.2.9 --- w3c-validator.js 21 Aug 2009 16:11:28 -0000 1.1.2.8 +++ w3c-validator.js 24 Aug 2009 09:17:48 -0000 1.1.2.9 @@ -1,222 +1,259 @@ var W3C = { start: function(){ - - W3C.TabSet = $('tabset_tabs'); - W3C.Tabs = W3C.TabSet.getElements('li'); - W3C.TabLinks = W3C.TabSet.getElements('a'); - W3C.Sections = $$('fieldset.tabset_content'); - W3C.Submits = $$('input.js[type=submit]'); - W3C.Forms = $$('form.ucn'); - W3C.TaskButtons = $$('input.change_task'); - W3C.TaskButtons.setStyle('display', 'none'); - W3C.Tasks = $$('select.ucn_task'); - // The current TaskID - W3C.TaskID = $$('input.task')[0].getProperty('value'); - W3C.SectionFx = []; - W3C.OptionsFx = []; - //creating event listeners on tabs - W3C.Tabs.each(function(li, i){ - var link = li.getFirst(); - link.href = link.original = '#' + link.href.split('#')[1].replace(/-/g, '_'); - li.addEvent('click', function(){ - W3C.updateLocation(); - W3C.displaySection(i); - }); - }); - - //updating the location - //W3C.updateLocation(); + W3C.Tabs = $('tabset_tabs'); + W3C.TabLinks = W3C.Tabs.getChildren('li a'); - W3C.initializeOptions(); + W3C.TaskSelect = $('tasks'); + W3C.TaskOptions = W3C.TaskSelect.getChildren('option'); + W3C.TaskDescrip = $('task_descrip'); + W3C.TaskInputs = $$('input.task'); - //setting the initial display of the options, based on the location - W3C.refreshOptionLinks(W3C.WithOptions); + W3C.LangParameter = $$('input.lang')[0].value; + W3C.Forms = $$('form[action=observe]'); - //attaching the Sections effects, and display section based on the uri - W3C.Sections.each(function(section, i){ - var fakeId = section.id.replace(/-/g, '_'); - W3C.SectionFx[i] = new Fx.Tween(section, {property: 'opacity', 'duration': 220, 'wait': false}); - section.setStyle('display', 'none'); - if (W3C.Location[0] && fakeId.contains(W3C.Location[0].replace(/-/g, '_'))){ - W3C.displaySection(i, true); - W3C.Located = true; - } - }); + // index of selected tab + W3C.SelectedTab = 0; + // index of selected task + W3C.SelectedTask = W3C.TaskOptions.getProperty('value').indexOf(W3C.TaskInputs[0].value); + // boolean: expand options + W3C.WithOptions = false; - //displaying the first section if no one is located - if (!W3C.Located) W3C.displaySection(0, true); + W3C.Loader = new Element('img', {'src': 'images/ajax-loader.gif', 'class': 'loader'}); + W3C.prepareDocument(); + W3C.parseHash(); + W3C.updateHash(); - //if (window.ie) $$('legend').setStyle('margin-left', '-0.4em'); + W3C.showTab(W3C.SelectedTab, false); + W3C.selectTask(W3C.SelectedTask, false); + W3C.toggleOptions(false); + W3C.addOptionEvents(); + }, - //changing submit buttons - if ($$('input.js + a').length == 0) { - W3C.Submits.each(function(submit, i){ - var value = submit.value; - submit.setStyle('display', 'none'); - var link = new Element('a', {'class': 'submit', 'href': '#'}); - var span = new Element('span').set('html', value).inject(link); - link.injectAfter(submit).addEvent('click', function(event){ - new Event(event).stop(); - event.stop(); - W3C.Forms[i].submit(); - }); - }); - } + prepareDocument: function(){ - //adding mouseover events to the task options - $$('select.ucn_task option').addEvent('mouseover', function(event) { - var title = this.title; - $$('span.task_description').each(function (span) { - span.set('text', title); - }); + $$('input#task_change').setStyle('display', 'none'); + + W3C.TaskSelect.addEvent('change', function (event) { event.stop(); + W3C.selectTask(this.selectedIndex, true); + W3C.updateHash(); }); - //adding change events to task selects (sends ajax request) - W3C.Tasks.addEvent('change', function(event){ - var title = this.options[this.selectedIndex].title; - $$('span.task_description').each(function (span) { - span.set('text', title); - }); - event.stop(); - var taskId = this.options[this.selectedIndex].value; - - var req = new Request.HTML({url: window.location.pathname, - method: 'get', - onRequest: function() { - $$('div.options_container').each(function (div) { - div.set('html', '<img src="images/ajax-loader.gif" style="margin: 1em 0;" />'); - }); - }, - onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) { - $$('div.options_container').each(function (div) { - div.set('html', responseHTML); - }); - $$('p.submit_button input.task').each(function (input) { - input.setProperty('value', taskId); - }); - $$('select.ucn_task option').each(function (option, i) { - if (option.getProperty('value') == taskId) { - option.setProperty('selected', 'selected'); - } else { - option.setProperty('selected', ''); - }; - }); - W3C.TaskID = taskID; - W3C.initializeOptions(); - - - }, - onFailure: function() { - $$('fieldset.options').set('html', ''); - } + W3C.TabLinks.each(function(link, i) { + link.addEvent('click', function (event) { + event.stop(); + W3C.showTab(i, true); + W3C.updateHash(); }); - var queryString = 'ucn_task=' + taskId + '&ucn_lang=' + $$('input.lang')[0].getProperty('value'); - req.send(queryString); }); + + W3C.TaskOptions.addEvent('mouseover', function() { + W3C.TaskDescrip.set('text', this.title); + }); + + W3C.TaskOptions.addEvent('mouseout', function() { + W3C.TaskDescrip.set('text', W3C.TaskOptions[W3C.SelectedTask].title); + }); + }, - initializeOptions: function(){ - W3C.Legends = $$('legend.toggletext'); - W3C.Options = $$('fieldset.slide div.options'); - W3C.OptionsFx = []; + addOptionEvents: function () { + $$('fieldset.advanced legend').removeEvent('click'); - //creating the Effects for the Options - $$('fieldset.slide div.options').each(function(option, i){ - W3C.OptionsFx[i] = new Fx.Slide(option, {'wait': false, 'duration': 180}); - W3C.OptionsFx[i].addEvent('onComplete', function(){ - if (this.element.getStyle('margin-top').toInt() == 0){ - this.wrapper.setStyle('height', 'auto'); - } - else { - this.element.setStyle('display','none'); // if a slideOut completed, set display:none - } - }); + $$('fieldset.advanced legend').addEvent('click', function (event) { + W3C.WithOptions = !W3C.WithOptions; + W3C.toggleOptions(true); + W3C.updateHash(); }); + }, + + showTab: function(tabIndex, withFX) { + if (W3C.Tabs.getElements('li')[tabIndex] == W3C.Tabs.getElement('li.selected')) + return; - //creating links on legends, with event listeners - $$('legend.toggletext').each(function(legend, i){ - var html = legend.innerHTML; - var pid = W3C.Sections[i].id.replace(/-/g, '_'); - var opt = '+with_options'; - legend.set('html', '<a href="#'+ pid + opt + '">' + html + '</a>'); - var option = W3C.Options[i]; - var link = legend.getFirst(); - link.addEvent('click', function(event){ - option.setStyle('display', 'block'); // before any slide effect, set display:block - var block = (option.getStyle('margin-top').toInt() == 0); - W3C.setHash((block) ? pid + task : pid + task + opt); - event.stop(); - W3C.refreshOptionLinks(!block, i); - }); - + W3C.SelectedTab = tabIndex; + W3C.Forms.each(function(form, i) { + if (i != tabIndex) { + form.setStyle('display', 'none'); + } else { + if (withFX) + form.setStyle('opacity', 0); + form.setStyle('display', 'block'); + } + }); + W3C.TabLinks.each(function(link, i) { + if (i != tabIndex) { + link.setProperty('class', ''); + } else { + link.setProperty('class', 'selected'); + } }); - W3C.updateLocation(); + W3C.toggleOptions(false); - //var task = '+task_' + $$('input.task')[0].getProperty('value'); - //W3C.setHash(W3C.Location[0].replace(/-/g, '_') + task + (W3C.WithOptions ? '+with_options' : '')); + if (withFX) { + W3C.Forms[tabIndex].set('tween', {'duration': 350}); + W3C.Forms[tabIndex].tween('opacity', 0, 1); + } + }, + + selectTask: function(taskIndex, withFX) { + W3C.SelectedTask = taskIndex; + var options = $$('fieldset.options'); + var taskId; - W3C.refreshOptionLinks(W3C.WithOptions); + W3C.TaskOptions.each(function(option, i) { + if (i != taskIndex) { + option.removeProperty('selected'); + } else { + taskId = option.value; + option.setProperty('selected', 'selected'); + } + }); + W3C.TaskDescrip.set('text', W3C.TaskOptions[taskIndex].title); - W3C.OptionsFx.each(function (fx) { - if (W3C.WithOptions) fx.show().fireEvent('onComplete'); - else fx.hide(); + W3C.TaskInputs.each(function (input) { + input.value = taskId; }); + + var foundOptions = false; + + var options = $$('fieldset.options'); + options.setStyle('display', 'none'); + + var currentOptions = options.filter('fieldset.' + taskId); + + if (!currentOptions.length > 0) + W3C.requestOptions(taskIndex, withFX); + else { + currentOptions.setStyle('opacity', 0); + currentOptions.setStyle('display', 'block'); + if (withFX) { + currentOptions.set('tween', {'duration': 350}); + currentOptions.tween('opacity', 0, 1); + } + currentOptions.setStyle('opacity', 1); + } }, - updateLocation: function(){ - W3C.Location = window.location.hash.replace('#', '').split('+'); - W3C.WithOptions = (W3C.Location[1] && W3C.Location[1].contains('with_options')) || (W3C.Location[2] && W3C.Location[2].contains('with_options')); + requestOptions: function(taskIndex, withFX) { - // check if there is a task defined in the url, if so the task id is added to W3C.TaskID - window.location.hash.replace('#', '').split('+').each(function (string) { - if (string.contains('task_')) { - W3C.TaskID = string.replace('task_', ''); - alert("W3C.task: " + W3C.TaskID); + var req = new Request.HTML({url: window.location.pathname, + method: 'get', + onRequest: function() { + W3C.Loader.injectBefore(W3C.Forms[W3C.SelectedTab].getElement('div.submit')); + }, + onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) { + var option; + responseElements.filter('fieldset.options').each(function(fieldset) { + W3C.Forms.each(function (form, i) { + var clone = fieldset.clone(); + clone.setStyle('opacity', 0); + clone.injectBefore(form.getElement('div.submit')); + if (withFX) { + clone.set('tween', {'duration': 350}); + clone.tween('opacity', 0, 1); + } + clone.setStyle('opacity', 1); + }); + }); + W3C.Loader.dispose(); + W3C.toggleOptions(false); + W3C.addOptionEvents(); + return true; + }, + onFailure: function() { + // TODO + return false; } }); + var queryString = 'ucn_task=' + W3C.TaskOptions[taskIndex].value + '&ucn_lang=' + W3C.LangParameter; + req.send(queryString); }, - refreshOptionLinks: function(options, idx){ + toggleOptions: function(withFX) { + var fieldsets = $$('fieldset.advanced'); + if (fieldsets.length == 0) + return; - if (!options){ - if ($chk(idx)) W3C.OptionsFx[idx].slideOut(); - $$('legend.toggletext').removeClass('toggled'); - } else { - if ($chk(idx)) W3C.OptionsFx[idx].slideIn(); - $$('legend.toggletext').addClass('toggled'); + if (W3C.WithOptions) { + fieldsets.addClass('toggled'); + fieldsets.removeClass('toggles'); + } + else { + fieldsets.addClass('toggles'); + fieldsets.removeClass('toggled'); } - W3C.TabLinks.each(function(link){ - var original = link.original + (W3C.TaskID ? '+task_' + W3C.TaskID : '');//$$('input.task')[0].getProperty('value'); - link.href = (options) ? original + '+with_options' : original; - }); - }, - - displaySection: function(i, sudden){ - W3C.Sections.each(function(section, j){ - var block = section.getStyle('display') == 'block'; - if (j == i){ - if (block) return; - W3C.Sections[j].setStyles({'opacity': sudden ? 1 : 0, 'display': 'block'}); - if (!sudden) W3C.SectionFx[j].start(1); - if (j < W3C.OptionsFx.length) { - if (W3C.WithOptions) W3C.OptionsFx[j].show().fireEvent('onComplete'); - else W3C.OptionsFx[j].hide(); + W3C.Forms.each(function (form, i) { + + var advancedOptions = form.getElements('fieldset.advanced div.options'); + + if (withFX && i == W3C.SelectedTab) { + if (W3C.WithOptions) { + advancedOptions.slide('in'); + } else { + advancedOptions.slide('out'); } } else { - if (!block) return; - W3C.Sections[j].setStyles({'display': 'none', 'opacity': 0}); + if (W3C.WithOptions) { + advancedOptions.slide('show'); + } else { + advancedOptions.slide('hide'); + } } }); + }, + + parseHash: function(){ - W3C.Tabs.each(function(link, j){ - if (j == i) link.addClass('selected'); - else link.removeClass('selected'); - }); + var hash = window.location.hash; + + if (hash == "") { + return; + } + + var tab = hash.replace('#', '').split('+'); + var selectedTab = tab[0]; + var selectedTask = tab[1]; + var withOptions = tab[2]; + + // get selected tab + var index = W3C.Forms.getProperty('id').indexOf(selectedTab); + if (index == -1) { + W3C.setHash(''); + return; + } + W3C.SelectedTab = index; + + // get selected task + if (!selectedTask || !selectedTask.contains("task_")) { + W3C.setHash(selectedTab); + return; + } + var taskIndex = W3C.TaskOptions.getProperty('value').indexOf(selectedTask.replace('task_', '')); + if (taskIndex == -1) { + W3C.setHash(selectedTab); + return; + } + W3C.SelectedTask = taskIndex; + + // with_options ? + if (!withOptions || !withOptions == "with_options") { + W3C.setHash(selectedTab + "+" + selectedTask); + return; + } + W3C.WithOptions = true; + }, + + updateHash: function(){ + var tab = W3C.Forms[W3C.SelectedTab].getProperty('id'); + var task = '+task_' + W3C.TaskOptions[W3C.SelectedTask].getProperty('value'); + var withOptions = W3C.WithOptions ? '+with_options' : ''; + + W3C.setHash(tab + task + withOptions); }, setHash: function(hash){ @@ -227,6 +264,7 @@ window.location.hash = hash; } } + }; -window.addEvent('domready', W3C.start); +window.addEvent('domready', W3C.start); \ No newline at end of file
Received on Monday, 24 August 2009 09:18:08 UTC