"""
Generate index.cgi html
Loads index.html from the template with:
1. bootinfo
2. static html of home / if _escaped_fragment_ is given
3. top menus and bottom menus
"""
import webnotes
body_html = """
Loading...
%s
"""
def get():
"""get index html"""
import webnotes
from jinja2 import Template
with open('lib/conf/index.html', 'r') as f:
template = Template(f.read())
# google crawler
if '_escaped_fragment_' in webnotes.form:
page = webnotes.form_dict['_escaped_fragment_']
if not page:
page = webnotes.user.get_home_page()
return template.render(bootinfo = '', style_tag='', version='0', \
script_tag = '', body_html=html_snapshot(page), ajax_meta_tag = '')
# home page
else:
import webnotes.session_cache
from build.project import get_version
import json
bootinfo = webnotes.session_cache.get()
bootinfo = """var wn = {}; wn.boot = %s;""" % json.dumps(bootinfo)
if webnotes.session['user'] == 'Guest':
script_tag = ''
style_tag = ''
else:
script_tag = ''
style_tag = ''
return template.render(bootinfo = bootinfo, version = get_version(), \
script_tag = script_tag, style_tag = style_tag, body_html=body_html % '', \
ajax_meta_tag = '')
def html_snapshot(page):
"""get html snapshot for search bot"""
from webnotes.widgets.page import get_page_html
from webnotes.model.doc import Document
doc = Document('Website Settings', 'Website Settings')
doc.content = get_page_html(page)
doc.header_menu = doc.footer_menu = ''
doc.page_name = page
for m in webnotes.conn.sql("""select parentfield, label, url, custom_page
from `tabTop Bar Item` where parent='Top Bar Settings' order by idx""", as_dict=1):
m['std_page'] = m.get('url') or m('custom_page')
if m['parentfield']=='top_bar_items':
doc.header_menu += '