@@ -8,7 +8,7 @@ bootstrap client session | |||||
import frappe | import frappe | ||||
import frappe.defaults | import frappe.defaults | ||||
import frappe.desk.page | |||||
import frappe.desk.desk_page | |||||
from frappe.utils import get_gravatar | from frappe.utils import get_gravatar | ||||
def get_bootinfo(): | def get_bootinfo(): | ||||
@@ -132,10 +132,10 @@ def add_home_page(bootinfo, docs): | |||||
return | return | ||||
home_page = frappe.db.get_default("desktop:home_page") | home_page = frappe.db.get_default("desktop:home_page") | ||||
try: | try: | ||||
page = frappe.desk.page.get(home_page) | |||||
page = frappe.desk.desk_page.get(home_page) | |||||
except (frappe.DoesNotExistError, frappe.PermissionError): | except (frappe.DoesNotExistError, frappe.PermissionError): | ||||
frappe.message_log.pop() | frappe.message_log.pop() | ||||
page = frappe.desk.page.get('desktop') | |||||
page = frappe.desk.desk_page.get('desktop') | |||||
bootinfo['home_page'] = page.name | bootinfo['home_page'] = page.name | ||||
docs.append(page) | docs.append(page) | ||||
@@ -10,7 +10,8 @@ from frappe.model.document import Document | |||||
class Comment(Document): | class Comment(Document): | ||||
def get_feed(self): | 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): | def validate(self): | ||||
if frappe.db.sql("""select count(*) from tabComment where comment_doctype=%s | 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>\ | <i class="icon-fixed-width %(icon)s" style="margin-right: 5px;"></i>\ | ||||
<a %(onclick)s class="label %(add_class)s">\ | <a %(onclick)s class="label %(add_class)s">\ | ||||
%(feed_type)s</a>\ | %(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) { | scrub_data: function(data) { | ||||
data.by = frappe.user_info(data.owner).fullname; | data.by = frappe.user_info(data.owner).fullname; | ||||
@@ -1,7 +1,7 @@ | |||||
// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | // Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | ||||
// MIT License. See license.txt | // MIT License. See license.txt | ||||
frappe.provide('frappe.core.pages.messages'); | |||||
frappe.provide('frappe.desk.pages.messages'); | |||||
frappe.pages.messages.onload = function(wrapper) { | frappe.pages.messages.onload = function(wrapper) { | ||||
frappe.ui.make_app_page({ | frappe.ui.make_app_page({ | ||||
@@ -26,18 +26,18 @@ frappe.pages.messages.onload = function(wrapper) { | |||||
wrapper.appframe.add_module_icon("Messages"); | 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() { | $(frappe.pages.messages).bind('show', function() { | ||||
// remove alerts | // remove alerts | ||||
$('#alert-container .alert').remove(); | $('#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) { | init: function(wrapper) { | ||||
this.wrapper = wrapper; | this.wrapper = wrapper; | ||||
this.show_active_users(); | this.show_active_users(); | ||||
@@ -52,7 +52,7 @@ frappe.core.pages.messages = Class.extend({ | |||||
var txt = $('#post-message textarea').val(); | var txt = $('#post-message textarea').val(); | ||||
if(txt) { | if(txt) { | ||||
return frappe.call({ | return frappe.call({ | ||||
module: 'frappe.core', | |||||
module: 'frappe.desk', | |||||
page:'messages', | page:'messages', | ||||
method:'post', | method:'post', | ||||
args: { | args: { | ||||
@@ -88,7 +88,7 @@ frappe.core.pages.messages = Class.extend({ | |||||
}, | }, | ||||
// check for updates every 5 seconds if page is active | // check for updates every 5 seconds if page is active | ||||
refresh: function() { | refresh: function() { | ||||
setTimeout("frappe.core.pages.messages.refresh()", 5000); | |||||
setTimeout("frappe.desk.pages.messages.refresh()", 5000); | |||||
if(frappe.container.page.label != 'Messages') | if(frappe.container.page.label != 'Messages') | ||||
return; | return; | ||||
if(!frappe.session_alive) | if(!frappe.session_alive) | ||||
@@ -131,7 +131,7 @@ frappe.core.pages.messages = Class.extend({ | |||||
data.delete_html = ""; | data.delete_html = ""; | ||||
if(data.owner==user || data.comment.indexOf("assigned to")!=-1) { | if(data.owner==user || data.comment.indexOf("assigned to")!=-1) { | ||||
data.delete_html = repl('<a class="close" \ | 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); | data-name="%(name)s">×</a>', data); | ||||
} | } | ||||
@@ -167,7 +167,7 @@ frappe.core.pages.messages = Class.extend({ | |||||
show_active_users: function() { | show_active_users: function() { | ||||
var me = this; | var me = this; | ||||
return frappe.call({ | return frappe.call({ | ||||
module:'frappe.core', | |||||
module:'frappe.desk', | |||||
page:'messages', | page:'messages', | ||||
method:'get_active_users', | method:'get_active_users', | ||||
callback: function(r,rt) { | callback: function(r,rt) { | ||||
@@ -24,7 +24,7 @@ frappe.views.pageview = { | |||||
} else { | } else { | ||||
// get fresh | // get fresh | ||||
return frappe.call({ | return frappe.call({ | ||||
method: 'frappe.desk.page.getpage', | |||||
method: 'frappe.desk.desk_page.getpage', | |||||
args: {'name':name }, | args: {'name':name }, | ||||
callback: function(r) { | callback: function(r) { | ||||
localStorage["_page:" + name] = JSON.stringify(r.docs); | localStorage["_page:" + name] = JSON.stringify(r.docs); | ||||