X-Git-Url: http://git.euphorik.ch/?p=pompage.git;a=blobdiff_plain;f=doc%2Fwebdeveloper%2Fview_source.js;fp=doc%2Fwebdeveloper%2Fview_source.js;h=2697d755a25c1a01bbe61f6fc5829e4eb4fc952d;hp=0000000000000000000000000000000000000000;hb=c3b0deb3d8c9f439739c79806e915c29bc1d4b84;hpb=cff6539539a79e014f6ac8df46716cafce2c8472 diff --git a/doc/webdeveloper/view_source.js b/doc/webdeveloper/view_source.js new file mode 100644 index 0000000..2697d75 --- /dev/null +++ b/doc/webdeveloper/view_source.js @@ -0,0 +1,155 @@ +// Clears the view generated source selection +function webdeveloper_clearViewGeneratedSourceSelection(selection, generatedSourceWindow) +{ + selection.removeAllRanges(); + generatedSourceWindow.document.getElementById("content").contentWindow.getSelection().removeAllRanges(); +} + +// Displays the view frame source menu +function webdeveloper_displayViewFrameSourceMenu(menu) +{ + var documentList = webdeveloper_getDocuments(webdeveloper_getContentWindow()); + var documentLength = documentList.length; + var menuItem = null; + var pageDocument = null; + + webdeveloper_removeGeneratedMenuItems(menu); + + // Loop through the documents + for(var i = 0; i < documentLength; i++) + { + menuItem = document.createElement("menuitem"); + pageDocument = documentList[i]; + menuItem.pageDocument = pageDocument; + + menuItem.setAttribute("class", "webdeveloper-generated-menu"); + menuItem.setAttribute("label", pageDocument.documentURI); + menuItem.setAttribute("oncommand", "webdeveloper_viewSource(this.pageDocument)"); + menu.appendChild(menuItem); + } +} + +// Displays the view source with menu +function webdeveloper_displayViewSourceWithMenu(menu, suffix) +{ + var description = null; + var descriptionPreference = null; + var key = null; + var menuItem = document.createElement("menuitem"); + var path = null; + var viewSourceWithCount = webdeveloper_getIntegerPreference("webdeveloper.view.source.with.count", true); + var viewSourceWithSeparator = menu.getElementsByAttribute("id", "webdeveloper-view-source-separator3-" + suffix)[0]; + + webdeveloper_removeGeneratedMenuItems(menu); + + // If there are no view source with applications + if(viewSourceWithCount == 0) + { + viewSourceWithSeparator.setAttribute("hidden", true); + } + else + { + viewSourceWithSeparator.setAttribute("hidden", false); + + // Loop through the view source with options + for(var i = 1; i <= viewSourceWithCount; i++) + { + description = "webdeveloper.view.source.with." + i + ".description"; + key = "webdeveloper.view.source.with." + i + ".key"; + path = "webdeveloper.view.source.with." + i + ".path"; + + // If the description and path are set + if(webdeveloper_isPreferenceSet(description) && webdeveloper_isPreferenceSet(path)) + { + descriptionPreference = webdeveloper_getStringPreference(description, true); + + // If the description is not blank + if(descriptionPreference != "") + { + menuItem = document.createElement("menuitem"); + menuItem.setAttribute("class", "webdeveloper-generated-menu"); + menuItem.setAttribute("label", descriptionPreference); + menuItem.setAttribute("oncommand", "webdeveloper_loadApplicationWithSource('" + webdeveloper_getStringPreference(path, true).replace(/\\/gi, "\\\\") + "')"); + + // If the key preference is set + if(webdeveloper_isPreferenceSet(key)) + { + menuItem.setAttribute("key", key); + } + + menu.insertBefore(menuItem, viewSourceWithSeparator); + } + } + } + } +} + +// Loads the given application with the source of the current page +function webdeveloper_loadApplicationWithSource(application) +{ + // If the application is set + if(application) + { + application = new WebDeveloperApplication(application); + + application.launchWithSource(getBrowser().currentURI); + } +} + +// Toggles the view frame source menu +function webdeveloper_toggleViewFrameSourceMenu(suffix) +{ + var disabled = true; + var frameCount = webdeveloper_getContentWindow().frames.length; + var menu = document.getElementById("webdeveloper-view-frame-source-" + suffix); + + // If there are frames + if(frameCount > 0) + { + disabled = false; + } + + webdeveloper_configureElement(menu, "disabled", disabled); +} + +// Adjusts the view source menu +function webdeveloper_updateViewSourceMenu(menu, suffix) +{ + webdeveloper_toggleViewFrameSourceMenu(suffix); + webdeveloper_displayViewSourceWithMenu(menu, suffix); +} + +// View the generated source +function webdeveloper_viewGeneratedSource() +{ + var currentDocument = webdeveloper_getContentDocument(); + var currentWindow = webdeveloper_getContentWindow(); + var generatedSourceWindow = null; + var selection = currentWindow.getSelection(); + + selection.selectAllChildren(currentDocument.documentElement); + + generatedSourceWindow = window.openDialog("chrome://global/content/viewPartialSource.xul", "_blank", "chrome,dialog=no,resizable,scrollbars", getBrowser().currentURI.spec, "charset=" + currentDocument.characterSet, currentWindow.getSelection(), "selection"); + + window.setTimeout(webdeveloper_clearViewGeneratedSourceSelection, 1500, selection, generatedSourceWindow); +} + +// View source +function webdeveloper_viewSource(frameDocument) +{ + // If the view source in tab preference is set to true + if(webdeveloper_getBooleanPreference("webdeveloper.view.source.tab", true)) + { + var newTab = getBrowser().addTab("view-source:" + frameDocument.documentURI); + + // If the open tabs in background preference is not set to true + if(!webdeveloper_getBooleanPreference("webdeveloper.open.tabs.background", true)) + { + getBrowser().selectedTab = newTab; + } + } + else + { + BrowserViewSourceOfDocument(frameDocument); + } +}