📄 app.js
字号:
obj = obj.offsetParent;
}
} else if (obj.y) curtop += obj.y;
return curtop;
}
var moduleGhost = document.createElement("div");
moduleGhost.id = "moduleGhost";
App.hide = function() {
document.getElementById("application").style.display = "none";
}
App.show = function() {
document.getElementById("siteInformation").style.display = "none";
document.getElementById("application").style.display = "block";
}
App.displaySiteInformation = function(page, node) {
function display(response, container) {
container.lastChild.innerHTML = response.responseText;
node.onLoadHTML(container.lastChild);
}
var infosBox = document.getElementById("siteInformation");
infosBox.style.display = "block";
infosBox.innerHTML = '<div style="margin-bottom:20px;text-align:center"><a id="backToPage" href="javascript:App.show()">? '+App.Loc.backToMyPage+'</a></div>'+
'<div id="siteInformationFrame">'+App.Loc.loading+'</div>';
Request.sendGET(page, display, infosBox);
if (Browser.isMozilla) {
setTimeout(App.hide, 1);
} else {
App.hide();
}
App.setBackButton();
}
App.setSignOutLink = function() {
var footerLink_signIn = document.getElementById("footerLink_signIn");
footerLink_signIn.innerHTML = App.Loc.footerLink_signOut;
footerLink_signIn.onclick = function() {
function signOutResponse() {
window.location.reload(true);
}
Request.sendGET('userSignOut.php', signOutResponse);
}
}
App.Start = function() {
document.getElementById("addContentLink").innerHTML =
(App.mode=='userPage') ? App.Loc.addContent : App.Loc.moreContent;
/*if (App.mode=='userPage') {
document.getElementById("appOptionsLink").innerHTML = App.Loc.appOptions;
} else {
document.getElementById("appOptionsLink").parentNode.style.display = 'none';
}*/
document.getElementById("collapseAllLink").innerHTML = App.Loc.collapseAll;
document.getElementById("expandAllLink").innerHTML = App.Loc.expandAll;
var footerLink_about = document.getElementById("footerLink_about");
footerLink_about.innerHTML = App.Loc.footerLink_about;
footerLink_about.onclick = function() {
if (App.lang=='fr') {
App.displaySiteInformation('loc/'+App.lang+'_'+this.getAttribute("page"), this);
} else {
App.displaySiteInformation('loc/en_'+this.getAttribute("page"), this);
}
}
document.getElementById("footerLink_blog").innerHTML = App.Loc.footerLink_blog;
document.getElementById("footerLink_feedback").innerHTML = App.Loc.footerLink_feedback;
var footerLink_privacy = document.getElementById("footerLink_privacy");
footerLink_privacy.innerHTML = App.Loc.footerLink_privacy;
footerLink_privacy.onclick = function() {
App.displaySiteInformation('loc/en_'+this.getAttribute("page"), this);
}
var footerLink_tos = document.getElementById("footerLink_tos");
footerLink_tos.innerHTML = App.Loc.footerLink_tos;
footerLink_tos.onclick = function() {
App.displaySiteInformation('loc/en_'+this.getAttribute("page"), this);
}
var footerLink_contact = document.getElementById("footerLink_contact");
footerLink_contact.innerHTML = App.Loc.footerLink_contact;
footerLink_contact.onclick = function() {
if (App.lang=='fr') {
App.displaySiteInformation('loc/'+App.lang+'_'+this.getAttribute("page"), this);
} else {
App.displaySiteInformation('loc/en_'+this.getAttribute("page"), this);
}
}
/*var footerLink_webmaster = document.getElementById("footerLink_webmaster");
footerLink_webmaster.innerHTML = App.Loc.footerLink_webmaster;
footerLink_webmaster.onclick = function() {
if (App.lang=='fr') {
App.displaySiteInformation('loc/'+App.lang+'_'+this.getAttribute("page"), this);
} else {
App.displaySiteInformation('loc/en_'+this.getAttribute("page"), this);
}
}*/
if (App.registeredUser) {
App.setSignOutLink();
} else {
var footerLink_signIn = document.getElementById("footerLink_signIn");
footerLink_signIn.innerHTML = App.Loc.footerLink_signIn;
footerLink_signIn.onLoadHTML = function(node) {
App.applySignInEvents(node);
}
footerLink_signIn.onclick = function() {
App.displaySiteInformation('loc/'+App.lang+'_'+this.getAttribute("page"), this);
}
}
App.savingStatusElm = document.getElementById("savingStatus");
function doPageTitleEvent() {
var div = document.getElementById("pageTitle");
div.firstChild.onmouseover = function() {
this.style.backgroundColor = "#FAFAFA";
this.style.border = "1px solid #EEE";
}
div.firstChild.onmouseout = function() {
this.style.backgroundColor = "transparent";
this.style.border = "none";
}
div.firstChild.onclick = function() {
this.onclick = null;
this.onmouseout();
this.onmouseover = null;
var titleValue = this.firstChild.nodeValue;
var titleWidth = this.offsetWidth;
this.innerHTML = '<input type="text" class="inputPageTitle" maxlength="80" value="'+titleValue+'" style="width:'+titleWidth+'px"/>';
var inputElm = this.firstChild;
inputElm.focus();
inputElm.select();
inputElm.attachEvent('onkeydown',onEnterDown);
function onEnterDown() {
if (window.event.keyCode==13) {
inputElm.onblur();
}
}
inputElm.onkeyup = function() {
this.style.width = (this.value.length*8)+20 + "px";
}
inputElm.onblur = function() {
var value = (this.value=='') ? 'MyWeb' : Utils.htmlEncode(this.value);
this.parentNode.innerHTML = value;
if (this.value != titleValue) {
App.saveUserData('pageTitle', value);
document.title = value;
}
doPageTitleEvent();
}
}
}
if (App.mode=='userPage') doPageTitleEvent();
var container = document.getElementById("modulesArea");
var columns = document.createElement("div");
App.columnsObj = {};
columns.id = "columns";
App.numCol = 3;
var div1 = document.createElement("div");
div1.style.width = Math.round(100/App.numCol) + "%";
div1.style.minHeight = "1px";
div1.className = "divColonne";
div1.setAttribute("colNum", 1);
App.columnsObj.col1 = div1;
var div2 = document.createElement("div");
div2.style.width = Math.round(100/App.numCol) + "%";
div2.style.minHeight = "1px";
div2.className = "divColonne";
div2.setAttribute("colNum", 2);
App.columnsObj.col2 = div2;
var div3 = document.createElement("div");
div3.style.width = Math.round(100/App.numCol) + "%";
div3.style.minHeight = "1px";
div3.className = "divColonne";
div3.setAttribute("colNum", 3);
App.columnsObj.col3 = div3;
columns.appendChild(div1);
columns.appendChild(div2);
columns.appendChild(div3);
var divFeedReader = document.createElement("div");
divFeedReader.id = "feedReader";
container.appendChild(columns);
container.appendChild(divFeedReader);
App.FeedReader.elm = document.getElementById("feedReader");
/*function makeObject(obj) {
return obj;
}*/
function displayModules(response) {
var rootNode = response.responseXML.documentElement;
var mods = rootNode.getElementsByTagName("mod");
var pageTitle = rootNode.getElementsByTagName("pageTitle")[0].firstChild;
var text = document.createTextNode((pageTitle) ? pageTitle.nodeValue : App.Loc.typePageTitle);
document.getElementById("pageTitle").firstChild.appendChild(text);
if (pageTitle) document.title = pageTitle.nodeValue;
var feedsID = rootNode.getElementsByTagName("userFeeds")[0].firstChild;
User.feedsId = (feedsID) ? feedsID.nodeValue : null;
App.Nav.featuredFeedsId = rootNode.getElementsByTagName("featuredFeeds")[0].firstChild.nodeValue;
App.Nav.defaultFeedsId = rootNode.getElementsByTagName("defaultFeeds")[0].firstChild.nodeValue;
var ln = mods.length;
for (var z=0; z<ln; z++) {
var id = mods[z].getAttribute("id");
var column = mods[z].getAttribute("column");
var name = mods[z].getAttribute("name");
var status = mods[z].getAttribute("status");
var share = mods[z].getAttribute("share");
var title = mods[z].getElementsByTagName("title")[0];
title = (title.firstChild) ? title.firstChild.nodeValue : '';
var data = mods[z].getElementsByTagName("data")[0];
ln2 = data.childNodes.length;
var dataObj = {id:id, container:column, moduleName:name, title:title, status:status, share:share};
var obj = new Object();
for (var n=0; n<ln2; n++) {
if (name=="RssReader" && data.childNodes[n].nodeName=="feedId")
dataObj.feedUrl = data.childNodes[n].getAttribute("url");
if (data.childNodes[n].firstChild)
obj[data.childNodes[n].nodeName] = data.childNodes[n].firstChild.nodeValue;
}
dataObj.data = obj;
App.moduleList.push(new Module(dataObj));
//var obj = eval('makeObject('+mods[z].firstChild.firstChild.nodeValue+')');
}
if (App.subscribeOnLoad) {
App.subscribeOnLoad = false;
var startMsgDiv = document.getElementById("startMsg");
startMsgDiv.innerHTML = App.Loc.addingNewFeed+"...";
/*
function addFeedResponse(response, feedUrl, id) {
if (response.responseText == '' || response.responseXML.documentElement==null || response.responseXML.documentElement.nodeName=="parsererror") { // si le flux n'est pas valide
startMsgDiv.innerHTML = App.Loc.feedNotValid;
} else {
App.Nav.isFeedsUpdated = true;
setTimeout(App.Nav.openMyFeeds,1);
var defaultDataObj = App.Modules.RssReaderInfos.defaultObj;
var dataObj = new Object();
for (var i in defaultDataObj) dataObj[i] = defaultDataObj[i];
dataObj.data = new Object();
var feed = new Feed(response);
dataObj.title = feed.title;
dataObj.feedUrl = feedUrl;
dataObj.data.feedId = id;
dataObj.container = 2;
dataObj.admin = false;
dataObj.isNew = true;
var mod = new Module(dataObj);
App.moduleList.push(mod);
App.Nav.removeModuleBox();
App.saveUserData('new', mod);
}
}
App.addNewFeed(inputFeed.value, addFeedResponse);*/
} else {
document.getElementById("startMsg").style.display = "none";
document.getElementById("application").style.display = "block";
document.getElementById("footer").style.display = "block";
}
}
Request.sendGET('http://localhost/netvibes/getUserData.php.xml', displayModules);
}
var Feed = function(feed) {
this.root = feed.responseXML.documentElement;
this.title = this.root.getElementsByTagName("title")[0].firstChild.nodeValue;
this.type = (this.root.nodeName=="feed") ? 1 : 0;
this.items = (this.type==1) ? this.root.getElementsByTagName("entry")
: this.root.getElementsByTagName("item");
this.htmlUrl = (this.type==1) ? this.root.getElementsByTagName("link")[0].getAttribute("href")
: this.root.getElementsByTagName("link")[0].firstChild.nodeValue;
var desc = (this.type==1) ? this.root.getElementsByTagName("tagline")[0].firstChild
: this.root.getElementsByTagName("description")[0].firstChild;
this.description = (desc) ? desc.nodeValue : '';
}
var FeedItem = function(item) {
}
App.addNewFeed = function(feedUrl, callBack) {
if (App.mode=='userPage') App.addNewFeedNow(feedUrl, callBack);
}
App.addNewFeedNow = function(feedUrl, callBack) {
var feedResponse;
function getFeedId(response) {
var ids = response.responseText.split(",");
if (User.feedsId==null) User.feedsId = ids[1];
callBack(feedResponse, feedUrl, ids[0]);
}
function checkFeed(response) {
feedResponse = response;
if (response.responseText == '' || response.responseXML.documentElement==null
|| response.responseXML.documentElement.nodeName=="parsererror") { // si le flux n'est pas valide
callBack(feedResponse, feedUrl);
} else {
var feed = new Feed(response);
var data = 'userFeedsId='+User.feedsId
+'&title='+encodeURIComponent(feed.title)
+'&xmlUrl='+encodeURIComponent(feedUrl)
+'&htmlUrl='+encodeURIComponent(feed.htmlUrl)
+'&description='+encodeURIComponent(feed.description);
Request.sendPOST("addNewFeed.php", data, getFeedId);
}
}
Request.sendGET(proxyURL+escape(feedUrl), checkFeed);
}
var Module = function(obj) {
var self = this;
this.dataObj = obj;
this.editMode = false;
this.loaded = false;
this.adminMode = (obj.admin) ? true : false;
this.isNew = (obj.isNew) ? true : false;
this.build = function() {
var divModule = document.createElement("div");
this.elm_module = divModule;
divModule.className = "module";
divModule.dataObj = obj;
var divModuleFrame = document.createElement("div");
this.elm_moduleFrame = divModuleFrame;
divModuleFrame.className = "moduleFrame";
var divModuleHeader = document.createElement("div");
this.elm_moduleHeader = divModuleHeader;
divModuleHeader.className = "moduleHeader";
if (this.adminMode) divModuleHeader.style.cursor = "default";
divModuleHeader.onmouseover = function(){
self.highlight();
}
divModuleHeader.onmouseout = function(){
self.unHighlight();
}
var divShowHide = document.createElement("div");
this.elm_showHide = divShowHide;
divShowHide.className = "showHide";
divShowHide.innerHTML = (obj.status==0) ? '<img src="img/showMod.gif"/>' : '<img src="img/hideMod.gif"/>';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -