aboutsummaryrefslogtreecommitdiff
path: root/web/webqtl/misc/editHtmlPage.py
diff options
context:
space:
mode:
Diffstat (limited to 'web/webqtl/misc/editHtmlPage.py')
-rwxr-xr-xweb/webqtl/misc/editHtmlPage.py129
1 files changed, 129 insertions, 0 deletions
diff --git a/web/webqtl/misc/editHtmlPage.py b/web/webqtl/misc/editHtmlPage.py
new file mode 100755
index 00000000..68595b83
--- /dev/null
+++ b/web/webqtl/misc/editHtmlPage.py
@@ -0,0 +1,129 @@
+# Copyright (C) University of Tennessee Health Science Center, Memphis, TN.
+#
+# This program is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Affero General Public License
+# as published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the GNU Affero General Public License for more details.
+#
+# This program is available from Source Forge: at GeneNetwork Project
+# (sourceforge.net/projects/genenetwork/).
+#
+# Contact Drs. Robert W. Williams and Xiaodong Zhou (2010)
+# at rwilliams@uthsc.edu and xzhou15@uthsc.edu
+#
+#
+#
+# This module is used by GeneNetwork project (www.genenetwork.org)
+#
+# Created by GeneNetwork Core Team 2010/08/10
+#
+# Last updated by GeneNetwork Core Team 2010/10/20
+
+import string
+import os
+import urlparse
+
+from htmlgen import HTMLgen2 as HT
+
+from base.templatePage import templatePage
+from base import webqtlConfig
+from utility import webqtlUtil
+
+
+#########################################
+# Edit HTML Page
+#########################################
+
+class editHtmlPage(templatePage):
+ htmlPath = webqtlConfig.ChangableHtmlPath
+
+ def __init__(self, fd):
+
+ templatePage.__init__(self, fd)
+
+ self.templateInclude = 1
+ self.dict['title'] = "Editing HTML"
+
+ if not self.updMysql():
+ return
+
+ if webqtlConfig.USERDICT[self.privilege] >= webqtlConfig.USERDICT['user']:
+ pass
+ else:
+ heading = "Editing HTML"
+ detail = ["You don't have the permission to modify this file"]
+ self.error(heading=heading,detail=detail,error="Error")
+ return
+
+ path = fd.formdata.getvalue('path')
+ preview = fd.formdata.getvalue('preview')
+ newHtmlCode = fd.formdata.getvalue('htmlSrc')
+ if newHtmlCode:
+ #newHtmlCode = string.replace(newHtmlCode, "&image", "&image")
+ newHtmlCode = string.replace(newHtmlCode,"&", "&")
+ if path and preview:
+ #preview
+ self.templateInclude = 0
+ #print newHtmlCode
+ self.debug = newHtmlCode
+ elif path:
+ #edit result
+ fileName = self.htmlPath + path
+ newfileName = fileName +'.old'
+ os.system("/bin/cp -f %s %s" % (fileName, newfileName))
+ fp = open(fileName, 'wb')
+ fp.write(newHtmlCode)
+ fp.close()
+ #print "chown qyh %s" % fileName
+ TD_LR = HT.TD(valign="top",colspan=2,bgcolor="#eeeeee", height=200)
+ mainTitle = HT.Paragraph("Edit HTML", Class="title")
+ url = HT.Href(text = "page", url =path, Class = "normal")
+ intro = HT.Blockquote("This ",url, " has been succesfully modified. ")
+ TD_LR.append(mainTitle, intro)
+ self.dict['body'] = TD_LR
+ #elif os.environ.has_key('HTTP_REFERER'):
+ elif fd.refURL:
+ #retrieve file to be edited
+ #refURL = os.environ['HTTP_REFERER']
+ addressing_scheme, network_location, path, parameters, query, fragment_identifier = urlparse.urlparse(fd.refURL)
+ if path[-1] == "/":
+ path += 'index.html'
+
+ fileName = self.htmlPath + path
+ try:
+ fp = open(fileName,'rb')
+ except:
+ fp = open(os.path.join(self.htmlPath, 'temp.html'),'rb')
+ htmlCode = fp.read()
+ #htmlCode = string.replace(htmlCode, "&nbsp","&nbsp")
+ htmlCode = string.replace(htmlCode, "&","&")
+ fp.close()
+ form = HT.Form(cgi= os.path.join(webqtlConfig.CGIDIR, webqtlConfig.SCRIPTFILE), name='editHtml',submit=HT.Input(type='hidden'))
+ inputBox = HT.Textarea(name='htmlSrc', cols="100", rows=30,text=htmlCode)
+
+ hddn = {'FormID':'editHtml', 'path':path, 'preview':''}
+ for key in hddn.keys():
+ form.append(HT.Input(name=key, value=hddn[key], type='hidden'))
+ previewButton = HT.Input(type='button',name='previewhtml', value='Preview',Class="button", onClick= "editHTML(this.form, 'preview');")
+ submitButton = HT.Input(type='button',name='submitchange', value='Submit Change',Class="button", onClick= "editHTML(this.form, 'submit');")
+ resetButton = HT.Input(type='reset',Class="button")
+ form.append(HT.Center(inputBox, HT.P(), previewButton, submitButton, resetButton))
+
+ TD_LR = HT.TD(valign="top",colspan=2,bgcolor="#eeeeee")
+ mainTitle = HT.Paragraph("Edit HTML", Class="title")
+ intro = HT.Blockquote("You may edit the HTML source code in the editbox below, or you can copy the content of the editbox to your favorite HTML editor. ")
+ imgUpload = HT.Href(url="javascript:openNewWin('/upload.html', 'menubar=0,toolbar=0,location=0,resizable=0,status=1,scrollbars=1,height=400, width=600');", text="here", Class="fs14")
+ intro2 = HT.Blockquote("Click ", imgUpload, " to upload Images. ")
+ TD_LR.append(mainTitle, intro, intro2, HT.Center(form))
+ self.dict['body'] = TD_LR
+ else:
+ heading = "Editing HTML"
+ detail = ["Error occured while trying to edit the html file."]
+ self.error(heading=heading,detail=detail,error="Error")
+ return
+