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
\ +© 2014 Web Notes Technologies Pvt. Ltd and contributers
\ +'+ key +': ' + versions[key] + '
').appendTo($wrap) + }); + + frappe.versions = versions; + } + + } + + frappe.ui.misc.about_dialog.show(); + +}