@@ -8,7 +8,7 @@ bootstrap client session | |||
import frappe | |||
import frappe.defaults | |||
import frappe.desk.page | |||
import frappe.desk.desk_page | |||
from frappe.utils import get_gravatar | |||
def get_bootinfo(): | |||
@@ -132,10 +132,10 @@ def add_home_page(bootinfo, docs): | |||
return | |||
home_page = frappe.db.get_default("desktop:home_page") | |||
try: | |||
page = frappe.desk.page.get(home_page) | |||
page = frappe.desk.desk_page.get(home_page) | |||
except (frappe.DoesNotExistError, frappe.PermissionError): | |||
frappe.message_log.pop() | |||
page = frappe.desk.page.get('desktop') | |||
page = frappe.desk.desk_page.get('desktop') | |||
bootinfo['home_page'] = page.name | |||
docs.append(page) | |||
@@ -10,7 +10,8 @@ from frappe.model.document import Document | |||
class Comment(Document): | |||
def get_feed(self): | |||
return "<i>{0}</i>".format(self.comment) | |||
return """<a href="#Form/{0}/{1}">{0} {1}</a>: <i>{2}</i>""".format(self.comment_doctype, self.comment_docname, | |||
self.comment) | |||
def validate(self): | |||
if frappe.db.sql("""select count(*) from tabComment where comment_doctype=%s | |||
@@ -0,0 +1,53 @@ | |||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | |||
# MIT License. See license.txt | |||
from __future__ import unicode_literals | |||
import frappe | |||
from frappe.translate import send_translations | |||
@frappe.whitelist() | |||
def get(name): | |||
""" | |||
Return the :term:`doclist` of the `Page` specified by `name` | |||
""" | |||
page = frappe.get_doc('Page', name) | |||
if has_permission(page): | |||
page.load_assets() | |||
return page | |||
else: | |||
frappe.response['403'] = 1 | |||
raise frappe.PermissionError, 'No read permission for Page %s' % \ | |||
(page.title or name) | |||
@frappe.whitelist(allow_guest=True) | |||
def getpage(): | |||
""" | |||
Load the page from `frappe.form` and send it via `frappe.response` | |||
""" | |||
page = frappe.form_dict.get('name') | |||
doc = get(page) | |||
# load translations | |||
if frappe.lang != "en": | |||
send_translations(frappe.get_lang_dict("page", page)) | |||
frappe.response.docs.append(doc) | |||
def has_permission(page): | |||
if frappe.user.name == "Administrator" or "System Manager" in frappe.user.get_roles(): | |||
return True | |||
page_roles = [d.role for d in page.get("roles")] | |||
if page_roles: | |||
if frappe.session.user == "Guest" and "Guest" not in page_roles: | |||
return False | |||
elif not set(page_roles).intersection(set(frappe.get_roles())): | |||
# check if roles match | |||
return False | |||
if not frappe.has_permission("Page", ptype="read", doc=page): | |||
# check if there are any user_permissions | |||
return False | |||
else: | |||
# hack for home pages! if no page roles, allow everyone to see! | |||
return True |
@@ -1,53 +0,0 @@ | |||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | |||
# MIT License. See license.txt | |||
from __future__ import unicode_literals | |||
import frappe | |||
from frappe.translate import send_translations | |||
@frappe.whitelist() | |||
def get(name): | |||
""" | |||
Return the :term:`doclist` of the `Page` specified by `name` | |||
""" | |||
page = frappe.get_doc('Page', name) | |||
if has_permission(page): | |||
page.load_assets() | |||
return page | |||
else: | |||
frappe.response['403'] = 1 | |||
raise frappe.PermissionError, 'No read permission for Page %s' % \ | |||
(page.title or name) | |||
@frappe.whitelist(allow_guest=True) | |||
def getpage(): | |||
""" | |||
Load the page from `frappe.form` and send it via `frappe.response` | |||
""" | |||
page = frappe.form_dict.get('name') | |||
doc = get(page) | |||
# load translations | |||
if frappe.lang != "en": | |||
send_translations(frappe.get_lang_dict("page", page)) | |||
frappe.response.docs.append(doc) | |||
def has_permission(page): | |||
if frappe.user.name == "Administrator" or "System Manager" in frappe.user.get_roles(): | |||
return True | |||
page_roles = [d.role for d in page.get("roles")] | |||
if page_roles: | |||
if frappe.session.user == "Guest" and "Guest" not in page_roles: | |||
return False | |||
elif not set(page_roles).intersection(set(frappe.get_roles())): | |||
# check if roles match | |||
return False | |||
if not frappe.has_permission("Page", ptype="read", doc=page): | |||
# check if there are any user_permissions | |||
return False | |||
else: | |||
# hack for home pages! if no page roles, allow everyone to see! | |||
return True |
@@ -44,7 +44,8 @@ frappe.ActivityFeed = Class.extend({ | |||
<i class="icon-fixed-width %(icon)s" style="margin-right: 5px;"></i>\ | |||
<a %(onclick)s class="label %(add_class)s">\ | |||
%(feed_type)s</a>\ | |||
%(subject)s <span class="user-info">%(by)s / %(when)s</span></div>', data)); | |||
<span class="small">%(subject)s</span>\ | |||
<span class="user-info">%(by)s / %(when)s</span></div>', data)); | |||
}, | |||
scrub_data: function(data) { | |||
data.by = frappe.user_info(data.owner).fullname; | |||
@@ -1,7 +1,7 @@ | |||
// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | |||
// MIT License. See license.txt | |||
frappe.provide('frappe.core.pages.messages'); | |||
frappe.provide('frappe.desk.pages.messages'); | |||
frappe.pages.messages.onload = function(wrapper) { | |||
frappe.ui.make_app_page({ | |||
@@ -26,18 +26,18 @@ frappe.pages.messages.onload = function(wrapper) { | |||
wrapper.appframe.add_module_icon("Messages"); | |||
frappe.core.pages.messages = new frappe.core.pages.messages(wrapper); | |||
frappe.desk.pages.messages = new frappe.desk.pages.messages(wrapper); | |||
} | |||
$(frappe.pages.messages).bind('show', function() { | |||
// remove alerts | |||
$('#alert-container .alert').remove(); | |||
frappe.core.pages.messages.show(); | |||
setTimeout("frappe.core.pages.messages.refresh()", 5000); | |||
frappe.desk.pages.messages.show(); | |||
setTimeout("frappe.desk.pages.messages.refresh()", 5000); | |||
}) | |||
frappe.core.pages.messages = Class.extend({ | |||
frappe.desk.pages.messages = Class.extend({ | |||
init: function(wrapper) { | |||
this.wrapper = wrapper; | |||
this.show_active_users(); | |||
@@ -52,7 +52,7 @@ frappe.core.pages.messages = Class.extend({ | |||
var txt = $('#post-message textarea').val(); | |||
if(txt) { | |||
return frappe.call({ | |||
module: 'frappe.core', | |||
module: 'frappe.desk', | |||
page:'messages', | |||
method:'post', | |||
args: { | |||
@@ -88,7 +88,7 @@ frappe.core.pages.messages = Class.extend({ | |||
}, | |||
// check for updates every 5 seconds if page is active | |||
refresh: function() { | |||
setTimeout("frappe.core.pages.messages.refresh()", 5000); | |||
setTimeout("frappe.desk.pages.messages.refresh()", 5000); | |||
if(frappe.container.page.label != 'Messages') | |||
return; | |||
if(!frappe.session_alive) | |||
@@ -131,7 +131,7 @@ frappe.core.pages.messages = Class.extend({ | |||
data.delete_html = ""; | |||
if(data.owner==user || data.comment.indexOf("assigned to")!=-1) { | |||
data.delete_html = repl('<a class="close" \ | |||
onclick="frappe.core.pages.messages.delete(this)"\ | |||
onclick="frappe.desk.pages.messages.delete(this)"\ | |||
data-name="%(name)s">×</a>', data); | |||
} | |||
@@ -167,7 +167,7 @@ frappe.core.pages.messages = Class.extend({ | |||
show_active_users: function() { | |||
var me = this; | |||
return frappe.call({ | |||
module:'frappe.core', | |||
module:'frappe.desk', | |||
page:'messages', | |||
method:'get_active_users', | |||
callback: function(r,rt) { | |||
@@ -24,7 +24,7 @@ frappe.views.pageview = { | |||
} else { | |||
// get fresh | |||
return frappe.call({ | |||
method: 'frappe.desk.page.getpage', | |||
method: 'frappe.desk.desk_page.getpage', | |||
args: {'name':name }, | |||
callback: function(r) { | |||
localStorage["_page:" + name] = JSON.stringify(r.docs); | |||