Просмотр исходного кода

[fixes] [style] for docs and fix to web form

version-14
Rushabh Mehta 9 лет назад
Родитель
Сommit
e95b72665f
10 измененных файлов: 84 добавлений и 40 удалений
  1. +2
    -2
      frappe/installer.py
  2. +9
    -6
      frappe/public/css/docs.css
  3. +14
    -5
      frappe/public/less/docs.less
  4. +1
    -1
      frappe/templates/autodoc/docs_home.html
  5. +15
    -14
      frappe/templates/generators/web_form.html
  6. +1
    -3
      frappe/translate.py
  7. +14
    -0
      frappe/utils/boilerplate.py
  8. +22
    -7
      frappe/utils/setup_docs.py
  9. +4
    -0
      frappe/website/js/website.js
  10. +2
    -2
      frappe/website/utils.py

+ 2
- 2
frappe/installer.py Просмотреть файл

@@ -98,7 +98,6 @@ def install_app(name, verbose=False, set_as_patched=True):
for app in app_hooks.required_apps: for app in app_hooks.required_apps:
install_app(app) install_app(app)


print "Installing {0}...".format(name)
frappe.flags.in_install = name frappe.flags.in_install = name
frappe.clear_cache() frappe.clear_cache()


@@ -106,10 +105,11 @@ def install_app(name, verbose=False, set_as_patched=True):
raise Exception("App not in apps.txt") raise Exception("App not in apps.txt")


if name in installed_apps: if name in installed_apps:
print "Already installed"
frappe.msgprint("App {0} already installed".format(name)) frappe.msgprint("App {0} already installed".format(name))
return return


print "Installing {0}...".format(name)

if name != "frappe": if name != "frappe":
frappe.only_for("System Manager") frappe.only_for("System Manager")




+ 9
- 6
frappe/public/css/docs.css Просмотреть файл

@@ -239,13 +239,9 @@ body {
font-size: 16px; font-size: 16px;
line-height: 1.65em; line-height: 1.65em;
} }
.navbar {
background-color: #7575ff !important;
}
.navbar a { .navbar a {
font-size: 16px; font-size: 16px;
font-weight: normal; font-weight: normal;
color: #fff !important;
} }
.breadcrumb { .breadcrumb {
line-height: 1.5em; line-height: 1.5em;
@@ -281,9 +277,10 @@ h2 {
.navbar { .navbar {
background-color: transparent; background-color: transparent;
border: none; border: none;
padding: 10px 0px;
padding: 15px 0px;
border-radius: 0px; border-radius: 0px;
border-bottom: 1px solid #7575ff;
border-top: 5px solid #7575ff;
border-bottom: 1px solid #d1d8dd;
} }
.section { .section {
padding: 30px; padding: 30px;
@@ -370,3 +367,9 @@ h2 {
border: 1px solid #d1d8dd; border: 1px solid #d1d8dd;
border-radius: 15px; border-radius: 15px;
} }
.screenshot {
border: 2px solid #d1d8dd;
box-shadow: 1px 1px 7px rgba(0, 0, 0, 0.15);
margin: 30px 0px;
max-width: 100%;
}

+ 14
- 5
frappe/public/less/docs.less Просмотреть файл

@@ -8,12 +8,14 @@ body {
} }


.navbar { .navbar {
background-color: @erpnext-blue !important;
//background-color: @navbar-bg !important;
//background-color: @text-color !important;
// border-bottom: 3px solid @border-color !important;
} }
.navbar a { .navbar a {
font-size: 16px; font-size: 16px;
font-weight: normal; font-weight: normal;
color: #fff !important;
//color: #fff !important;
} }


.breadcrumb { .breadcrumb {
@@ -49,10 +51,10 @@ h2 {
.navbar { .navbar {
background-color: transparent; background-color: transparent;
border: none; border: none;
padding: 10px 0px;
padding: 15px 0px;
border-radius: 0px; border-radius: 0px;
border-bottom: 1px solid @erpnext-blue;
border-top: 5px solid @erpnext-blue;
border-bottom: 1px solid @border-color;
} }


.section { .section {
@@ -157,3 +159,10 @@ h2 {
border: 1px solid #d1d8dd; border: 1px solid #d1d8dd;
border-radius: 15px; border-radius: 15px;
} }

.screenshot {
border: 2px solid @border-color;
box-shadow: 1px 1px 7px rgba(0,0,0,0.15);
margin: 30px 0px;
max-width: 100%;
}

+ 1
- 1
frappe/templates/autodoc/docs_home.html Просмотреть файл

@@ -9,7 +9,7 @@
<div class="section" style="padding-top: 0px;"> <div class="section" style="padding-top: 0px;">
<div class="fake-browser-frame"> <div class="fake-browser-frame">
<img class="img-responsive browser-image feature-image" <img class="img-responsive browser-image feature-image"
src="img/desktop.png">
src="assets/img/home.png">
</div> </div>
</div> </div>




+ 15
- 14
frappe/templates/generators/web_form.html Просмотреть файл

@@ -256,20 +256,21 @@ frappe.ready(function() {
btn: $form.find("[type='submit']"), btn: $form.find("[type='submit']"),
callback: function(data) { callback: function(data) {
if(!data.exc) { if(!data.exc) {
window.saving = false;
if(window.success_message) {
$form.addClass("hide");
$(".comments, .introduction").addClass("hide");
scroll(0, 0);
$(".form-message")
.html('{{ success_message }}<p><a href="{{ success_url }}">\
{{ _("Continue") }}</a></p>')
.removeClass("hide");
} else {
window.location.href = "{{ success_url }}";
}
}
}
if(window.success_message) {
$form.addClass("hide");
$(".comments, .introduction").addClass("hide");
scroll(0, 0);
$(".form-message")
.html('{{ success_message }}<p><a href="{{ success_url }}">{{ _("Continue") }}</a></p>')
.removeClass("hide");
} else {
window.location.href = "{{ success_url }}";
}
}
},
always: function() {
window.saving = false;
}
}); });


return false; return false;


+ 1
- 3
frappe/translate.py Просмотреть файл

@@ -332,7 +332,6 @@ def get_messages_from_include_files(app_name=None):
"""Returns messages from js files included at time of boot like desk.min.js for desk and web""" """Returns messages from js files included at time of boot like desk.min.js for desk and web"""
messages = [] messages = []
for file in (frappe.get_hooks("app_include_js", app_name=app_name) or []) + (frappe.get_hooks("web_include_js", app_name=app_name) or []): for file in (frappe.get_hooks("app_include_js", app_name=app_name) or []) + (frappe.get_hooks("web_include_js", app_name=app_name) or []):
print os.path.join(frappe.local.sites_path, file)
messages.extend(get_messages_from_file(os.path.join(frappe.local.sites_path, file))) messages.extend(get_messages_from_file(os.path.join(frappe.local.sites_path, file)))


return messages return messages
@@ -347,8 +346,7 @@ def get_all_messages_from_js_files(app_name=None):
continue continue


for fname in files: for fname in files:
if fname.endswith(".js"):
print os.path.join(basepath, fname)
if fname.endswith(".js") or fname.endswith(".html"):
messages.extend(get_messages_from_file(os.path.join(basepath, fname))) messages.extend(get_messages_from_file(os.path.join(basepath, fname)))


return messages return messages


+ 14
- 0
frappe/utils/boilerplate.py Просмотреть файл

@@ -82,6 +82,9 @@ def make_boilerplate(dest, app_name):
with open(os.path.join(dest, hooks.app_name, hooks.app_name, "config", "desktop.py"), "w") as f: with open(os.path.join(dest, hooks.app_name, hooks.app_name, "config", "desktop.py"), "w") as f:
f.write(encode(desktop_template.format(**hooks))) f.write(encode(desktop_template.format(**hooks)))


with open(os.path.join(dest, hooks.app_name, hooks.app_name, "config", "docs.py"), "w") as f:
f.write(encode(docs_template.format(**hooks)))

print "'{app}' created at {path}".format(app=app_name, path=os.path.join(dest, app_name)) print "'{app}' created at {path}".format(app=app_name, path=os.path.join(dest, app_name))




@@ -254,3 +257,14 @@ gitignore_template = """.DS_Store
*.egg-info *.egg-info
*.swp *.swp
tags""" tags"""

docs_template = '''"""
Configuration for docs
"""

# source_link = "https://github.com/org/repo"
# docs_base_url = "https://frappe.github.io/repo"

def get_context(context):
context.brand_html = "{app_title}"
'''

+ 22
- 7
frappe/utils/setup_docs.py Просмотреть файл

@@ -24,18 +24,19 @@ class setup_docs(object):
def setup_app_context(self): def setup_app_context(self):
self.docs_config = frappe.get_module(self.app + ".config.docs") self.docs_config = frappe.get_module(self.app + ".config.docs")
self.app_context = { self.app_context = {
"app": {
"app": frappe._dict({
"name": self.app, "name": self.app,
"title": self.app_title, "title": self.app_title,
"description": markdown2.markdown(self.hooks.get("app_description")[0]), "description": markdown2.markdown(self.hooks.get("app_description")[0]),
"version": self.hooks.get("app_version")[0], "version": self.hooks.get("app_version")[0],
"headline": self.hooks.get("app_headline")[0], "headline": self.hooks.get("app_headline")[0],
"publisher": self.hooks.get("app_publisher")[0], "publisher": self.hooks.get("app_publisher")[0],
"icon": self.hooks.get("app_icon")[0],
"email": self.hooks.get("app_email")[0], "email": self.hooks.get("app_email")[0],
"source_link": self.docs_config.source_link, "source_link": self.docs_config.source_link,
"docs_base_url": self.docs_config.docs_base_url, "docs_base_url": self.docs_config.docs_base_url,
"license": self.hooks.get("app_license")[0] "license": self.hooks.get("app_license")[0]
}
})
} }


def build(self, docs_version): def build(self, docs_version):
@@ -116,8 +117,11 @@ class setup_docs(object):
"contents.py")), os.path.join(self.docs_path, "contents.py")) "contents.py")), os.path.join(self.docs_path, "contents.py"))


# install # install
shutil.copy(os.path.join(frappe.get_app_path("frappe", "templates", "autodoc",
"install.md")), os.path.join(self.docs_path, "install.md"))
html = frappe.render_template("templates/autodoc/install.md",
context = self.app_context)

with open(os.path.join(self.docs_path, "install.md"), "w") as f:
f.write(html)


self.update_index_txt(self.docs_path) self.update_index_txt(self.docs_path)


@@ -272,13 +276,15 @@ class setup_docs(object):


print "Writing {0}".format(target_filename) print "Writing {0}".format(target_filename)



context.brand_html = context.top_bar_items = context.favicon = None context.brand_html = context.top_bar_items = context.favicon = None


self.docs_config.get_context(context) self.docs_config.get_context(context)


if not context.brand_html: if not context.brand_html:
context.brand_html = self.app_title
if context.docs_icon:
context.brand_html = '<i class="{0}"></i> {1}'.format(context.docs_icon, context.app.title)
else:
context.brand_html = context.app.title


if not context.top_bar_items: if not context.top_bar_items:
context.top_bar_items = [ context.top_bar_items = [
@@ -310,7 +316,16 @@ class setup_docs(object):
# copy assets from docs # copy assets from docs
source_assets = frappe.get_app_path(self.app, "docs", "assets") source_assets = frappe.get_app_path(self.app, "docs", "assets")
if os.path.exists(source_assets): if os.path.exists(source_assets):
shutil.copytree(source_assets, assets_path)
for basepath, folders, files in os.walk(source_assets):
target_basepath = os.path.join(assets_path, os.path.relpath(basepath, source_assets))

# make the base folder
if not os.path.exists(target_basepath):
os.makedirs(target_basepath)

# copy all files in the current folder
for f in files:
shutil.copy(os.path.join(basepath, f), os.path.join(target_basepath, f))


# make missing folders # make missing folders
for fname in ("js", "css", "img"): for fname in ("js", "css", "img"):


+ 4
- 0
frappe/website/js/website.js Просмотреть файл

@@ -123,6 +123,10 @@ $.extend(frappe, {
if(opts.msg && data.message) { if(opts.msg && data.message) {
$(opts.msg).html(data.message).toggle(true); $(opts.msg).html(data.message).toggle(true);
} }

if(opts.always) {
opts.always(data);
}
}, },
show_message: function(text, icon) { show_message: function(text, icon) {
if(!icon) icon="icon-refresh icon-spin"; if(!icon) icon="icon-refresh icon-spin";


+ 2
- 2
frappe/website/utils.py Просмотреть файл

@@ -175,7 +175,7 @@ def get_full_index(doctype="Web Page", base_url = None, extn = False):
all_routes = [] all_routes = []


def get_children(parent): def get_children(parent):
children = frappe.db.get_all(doctype, ["parent_website_route", "page_name", "title"],
children = frappe.db.get_all(doctype, ["parent_website_route", "page_name", "title", "template_path"],
{"parent_website_route": parent}, order_by="idx asc") {"parent_website_route": parent}, order_by="idx asc")
for d in children: for d in children:
d.url = abs_url(os.path.join(d.parent_website_route or "", d.page_name)) d.url = abs_url(os.path.join(d.parent_website_route or "", d.page_name))
@@ -186,7 +186,7 @@ def get_full_index(doctype="Web Page", base_url = None, extn = False):
if base_url: if base_url:
d.url = os.path.join(base_url, d.url) d.url = os.path.join(base_url, d.url)


if extn and not d.children:
if extn and os.path.basename(d.template_path).split(".")[0] != "index":
d.url = d.url + ".html" d.url = d.url + ".html"


# no index.html for home page # no index.html for home page


Загрузка…
Отмена
Сохранить