Example #1
0
    def get(self):
        user = users.get_current_user()
        user_string = _gcu()
        path = get_template_path('html/editor.html')
        template_values = {'EOV': "editor",
                           'user': user_string}
        resource_id = self.request.get('resource_id')
        mobile = mobileTest.mobileTest(self.request.user_agent)
        if mobile == 1:
            self.redirect('/scriptlist')
            return
        if user and resource_id != "Demo":
            template_values['sign_out'] = users.create_logout_url('/')
            screenplay = models.UsersScripts. \
                             get_by_resource_id_and_user(resource_id, gcu())
            if not screenplay:
                self.redirect("/")
                return
            if screenplay.permission != 'owner':
                template_values['EOV'] = "viewer"
            unopened = models.ShareNotify. \
                           get_by_resource_id_and_user(resource_id, gcu())
            if unopened and not unopened[0].opened:
                unopened[0].opened = True
                unopened[0].timeopened = datetime.datetime.today()
                unopened[0].put()
        elif resource_id == 'Demo':
            template_values['sign_out'] =  '/'
        else:
            url = '/editor?resource_id=' + resource_id
            template_values = {
                'google_sign_in': users.create_login_url(url, None, 'gmail.com'),
                'yahoo_sign_in': users.create_login_url(url, None, 'yahoo.com')}
            path = get_template_path('html/login.html')

        dev_js = ['base', 'calc', 'canvas-manipulate', 'ccp', 'dom-manipulate',
                  'draw', 'editor', 'findAndReplace', 'init', 'keyboard',
                  'menu', 'mouse', 'notes', 'prompts', 'sort', 'spellcheck',
                  'window']
        pro_js = ['editor-compiled']
        dev_css = ['menu', 'menuitem', 'menuseparator', 'common', 'toolbar',
                   'button', 'custombutton', 'autocomplete', 'dialog',
                   'linkbutton', 'tab', 'tabbar', 'colormenubutton', 'palette',
                   'colorpalette', 'editor/bubble', 'editor/dialog',
                   'editor/linkdialog', 'editortoolbar']
        pro_css = []
        template_values['resource_id'] = resource_id
        template_values['MODE'] = config.MODE
        template_values['EDITOR_JS'] = pro_js if config.MODE == "PRO" else dev_js
        template_values['EDITOR_CSS'] = pro_css if config.MODE == "PRO" else dev_css
        template_values['GA'] = config.GA
        self.response.headers['Content-Type'] = 'text/html'
        self.response.out.write(template.render(path, template_values))
Example #2
0
	def post(self):

		# New Script Setup
		filename = "Untitled"
		ff = self.request.get('ff')
		capture = self.request.get('filename')
		if capture:
			filename = capture.replace('%20', ' ')
			filename = filename.replace('C:\\fakepath\\', '')
		user=gcu()

		# Format file
		data = StringIO.StringIO(self.request.get('script'))
		if ff=='txt':
			data = StringIO.StringIO(data.getvalue().replace('\xe2', "'"))
			e = chardet.detect(data.getvalue())
			if e["encoding"]!=None and e["encoding"]!="ascii":
				r = data.getvalue().decode(e["encoding"])
				r = r.replace(u"\u201c", "\"").replace(u"\u201d", "\"") #strip double curly quotes
				r = r.replace(u"\u2018", "'").replace(u"\u2019", "'").replace(u"\u02BC", "'") #strip single curly quotes
				data = StringIO.StringIO(r.encode("ascii", "replace"))
			contents = convert.Text(data)
		elif ff=='fdx':
			s=data.getvalue().decode('utf-8')
			s = s.replace(u"\u201c", "\"").replace(u"\u201d", "\"") #strip double curly quotes
			s = s.replace(u"\u2018", "'").replace(u"\u2019", "'").replace(u"\u02BC", "'") #strip single curly quotes
			data = StringIO.StringIO(s.encode("ascii", "replace"))
			contents = convert.FinalDraft(data)
		else:
			contents = convert.Celtx(data)


		resource_id = models.UsersScripts.create_unique_resource_id()
		s = models.ScriptData(resource_id=resource_id,
									 data=contents,
									 version=1,
									 tag="",
									 export="[[],[]]",
									 autosave=0)
		s.put()

		u = models.UsersScripts(key_name="owner"+user+resource_id,
						user=user,
						title=filename,
						resource_id=resource_id,
						last_updated = datetime.datetime.today(),
						permission='owner',
						folder = "?none?")
		u.put()


		template_values = { 'url': resource_id }
		template_values['MODE'] = config.MODE
		template_values['GA'] = config.GA

		taskqueue.add(url="/spellcheckbigscript", params= {'resource_id' : resource_id})

		self.response.headers['Content-Type'] = 'text/html'
		path = get_template_path('html/UploadComplete.html')
		self.response.out.write(template.render(path, template_values))
Example #3
0
	def get(self):
		resource_id=self.request.get('resource_id')
		if resource_id=="Demo":
			return
		title = permission(resource_id)
		if title == False:
			return
		f = ownerPermission(resource_id)
		r = models.Notes.get_by_resource_id(resource_id)
		export=[]
		for i in r:
			export.append([i.row, i.col, simplejson.loads(i.data), i.thread_id])

		template_values={'j':simplejson.dumps(export),
						"user":gcu(),
						"sign_out": users.create_logout_url("/"),
						"title":title,
						"f":f
						}
		path = get_template_path('html/mobile/MobileViewNotes.html')
		self.response.out.write(template.render(path, template_values))
Example #4
0
 def get(self):
     posts = None
     uri = self.request.path_info.split('/')
     if uri[-1] == '':
         uri = uri[:-1]
     if len(uri) == 3:
         key = uri[2].replace("-"," ").title().replace(" ","-")
         posts = db.get(db.Key.from_path('BlogDB', key))
         if posts is not None:
             posts = [posts]
     elif len(uri) == 2:
         q = BlogDB.all()
         q.order('-timestamp')
         posts = q.fetch(20)
     if posts is not None:
         for post in posts:
             post.link = post.get_url()
             post.date = post.timestamp.date()
     template_values = { "posts": posts}
     template_values['MODE'] = config.MODE
     template_values['GA'] = config.GA
     path = get_template_path('html/blog.html')
     self.response.out.write(template.render(path, template_values))
Example #5
0
	def get(self):
		resource_id = self.request.get('resource_id')
		p = ownerPermission(resource_id)
		if p == False:
			return
		r = models.ScriptData.get_historical_metadata(resource_id)
		for i in r:
			i.updated=i.timestamp.strftime("%b %d")
			J=simplejson.loads(i.export)
			i.emailed = "Emailed" if len(J[0]) > 0 else ''
			i.tagged = "" if i.tag == '' else 'Tag'
			i.autosave_class = 'autosave' if i.autosave else 'manualsave'
		sign_out = users.create_logout_url('/')
		user_email = gcu()
		template_values={'r':r,
										 'title':p,
										 'resource_id':resource_id,
										 'sign_out':sign_out,
										 'user': user_email,
										 }
		path = get_template_path('html/revisionhistory.html')
		template_values['MODE'] = config.MODE
		template_values['GA'] = config.GA
		self.response.out.write(template.render(path, template_values))
Example #6
0
	def get(self):
		path = get_template_path('html/convert.html')
		template_values={'GA' : config.GA}
		template_values['MODE'] = config.MODE
		self.response.headers['Content-Type'] = 'text/html'
		self.response.out.write(template.render(path, template_values))
Example #7
0
 def get(self):
     path = get_template_path('html/blogpostgui.html')
     template_values = {}
     self.response.out.write(template.render(path, template_values))
Example #8
0
 def render(self, template_name, context):
     path = utils.get_template_path(template_name)
     self.response.out.write(template.render(path, context))