diff options
Diffstat (limited to 'web/webqtl/misc/editHtmlPage.py')
-rwxr-xr-x | web/webqtl/misc/editHtmlPage.py | 129 |
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") + 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 + |