From 9497fdc71390b744e88d056b00b225d75e154d48 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 28 May 2014 13:11:22 +0530 Subject: [PATCH] show versions in about in desk, fixes frappe/erpnext#1656 --- frappe/__init__.py | 13 +++++- frappe/public/build.json | 1 + frappe/public/js/frappe/ui/toolbar/about.js | 45 +++++++++++++++++++++ 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 frappe/public/js/frappe/ui/toolbar/about.js diff --git a/frappe/__init__.py b/frappe/__init__.py index 89d71ce19e..1d02f99e40 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -396,11 +396,22 @@ def get_all_apps(with_frappe=False, with_internal_apps=True, sites_path=None): return apps def get_installed_apps(): - if flags.in_install_db: + if getattr(flags, "in_install_db", True): return [] installed = json.loads(db.get_global("installed_apps") or "[]") return installed +@whitelist() +def get_versions(): + versions = {} + for app in get_installed_apps(): + try: + versions[app] = get_attr(app + ".__version__") + except AttributeError: + versions[app] = 'Not Versioned' + + return versions + def get_hooks(hook=None, default=None, app_name=None): def load_app_hooks(app_name=None): hooks = {} diff --git a/frappe/public/build.json b/frappe/public/build.json index d108ce90d0..420e8e9afd 100644 --- a/frappe/public/build.json +++ b/frappe/public/build.json @@ -125,6 +125,7 @@ "public/js/frappe/ui/toolbar/report.js", "public/js/frappe/ui/toolbar/recent.js", "public/js/frappe/ui/toolbar/bookmarks.js", + "public/js/frappe/ui/toolbar/about.js", "public/js/frappe/ui/toolbar/toolbar.js", "public/js/frappe/ui/editor.js", diff --git a/frappe/public/js/frappe/ui/toolbar/about.js b/frappe/public/js/frappe/ui/toolbar/about.js new file mode 100644 index 0000000000..633032d626 --- /dev/null +++ b/frappe/public/js/frappe/ui/toolbar/about.js @@ -0,0 +1,45 @@ +frappe.provide('frappe.ui.misc'); +frappe.ui.misc.about = function() { + if(!frappe.ui.misc.about_dialog) { + var d = new frappe.ui.Dialog({title: __('Frappe Framework')}) + + $(d.body).html(repl("
\ +

"+__("Open Source Web Applications for the Web")+"

\ +

\ + Website: https://frappe.io

\ +

\ + Source: https://github.com/frappe

\ +
\ +

Versions

\ +
Loading versions...
\ +
\ +

© 2014 Web Notes Technologies Pvt. Ltd and contributers

\ +
", frappe.app)); + + frappe.ui.misc.about_dialog = d; + + frappe.ui.misc.about_dialog.onshow = function() { + if(!frappe.versions) { + frappe.call({ + method: "frappe.get_versions", + callback: function(r) { + show_versions(r.message); + } + }) + } + }; + + var show_versions = function(versions) { + var $wrap = $("#about-app-versions").empty(); + $.each(keys(versions).sort(), function(i, key) { + $('

'+ key +': ' + versions[key] + '

').appendTo($wrap) + }); + + frappe.versions = versions; + } + + } + + frappe.ui.misc.about_dialog.show(); + +}