From 0b428b832636fead6e5bba35f44a71eec22ea22f Mon Sep 17 00:00:00 2001 From: Petr Vobornik Date: Jan 21 2014 11:04:04 +0000 Subject: About dialog https://fedorahosted.org/freeipa/ticket/4018 --- diff --git a/install/ui/src/freeipa/Application_controller.js b/install/ui/src/freeipa/Application_controller.js index 461f11b..a554f16 100644 --- a/install/ui/src/freeipa/Application_controller.js +++ b/install/ui/src/freeipa/Application_controller.js @@ -67,6 +67,7 @@ define([ on(this.app_widget, 'profile-click', lang.hitch(this, this.on_profile)); on(this.app_widget, 'logout-click', lang.hitch(this, this.on_logout)); on(this.app_widget, 'password-reset-click', lang.hitch(this, this.on_password_reset)); + on(this.app_widget, 'about-click', lang.hitch(this, this.on_about)); on(this.menu, 'selected', lang.hitch(this, this.on_menu_select)); on(this.router, 'facet-show', lang.hitch(this, this.on_facet_show)); @@ -184,6 +185,11 @@ define([ IPA.password_selfservice(); }, + on_about: function() { + var dialog = IPA.about_dialog(); + dialog.open(); + }, + on_phase_error: function(error) { window.console.error(error); diff --git a/install/ui/src/freeipa/dialog.js b/install/ui/src/freeipa/dialog.js index 18e2dc5..0a8497b 100644 --- a/install/ui/src/freeipa/dialog.js +++ b/install/ui/src/freeipa/dialog.js @@ -1076,6 +1076,28 @@ IPA.message_dialog = function(spec) { return that; }; +IPA.about_dialog = function(spec) { + + spec = spec || {}; + + spec.name = spec.name || 'version_dialog'; + var product = 'FreeIPA'; + var version = 'Unknown'; + var msg = text.get('@i18n:dialogs.about_message', '${product}, version: ${version}'); + if (IPA.env) { + product = IPA.env.product_name || product; + version = IPA.env.version; + } + msg = msg.replace('${product}', product); + msg = msg.replace('${version}', version); + spec.message = spec.message || msg; + spec.title = spec.title || text.get('@i18n:dialogs.about_title', 'About'); + + var that = IPA.message_dialog(spec); + + return that; +}; + /** * Confirmation dialog * diff --git a/install/ui/src/freeipa/widgets/App.js b/install/ui/src/freeipa/widgets/App.js index e210355..f44ecaf 100644 --- a/install/ui/src/freeipa/widgets/App.js +++ b/install/ui/src/freeipa/widgets/App.js @@ -193,6 +193,8 @@ define(['dojo/_base/declare', this.emit('logout-click'); } else if (item.name == 'password_reset') { this.emit('password-reset-click'); + } else if (item.name == 'about') { + this.emit('about-click'); } }, @@ -217,6 +219,14 @@ define(['dojo/_base/declare', 'class': 'divider' }, { + name: 'about', + label: 'About', + icon: 'fa-question' + }, + { + 'class': 'divider' + }, + { name: 'logout', label: 'Logout', icon: 'fa-sign-out' diff --git a/install/ui/test/data/ipa_init.json b/install/ui/test/data/ipa_init.json index bac7796..f714fb4 100644 --- a/install/ui/test/data/ipa_init.json +++ b/install/ui/test/data/ipa_init.json @@ -52,6 +52,7 @@ "show_results": "Show Results" }, "buttons": { + "about": "About", "add": "Add", "add_and_add_another": "Add and Add Another", "add_and_close": "Add and Close", @@ -98,6 +99,8 @@ "dirty_title": "Unsaved Changes", "edit_title": "Edit ${entity}", "hide_details": "Hide details", + "about_title": "About", + "about_message": "${product}, version: ${version}", "prospective": "Prospective", "redirection": "Redirection", "remove_empty": "Select entries to be removed.", diff --git a/ipalib/plugins/internal.py b/ipalib/plugins/internal.py index 0491491..64464a0 100644 --- a/ipalib/plugins/internal.py +++ b/ipalib/plugins/internal.py @@ -185,6 +185,7 @@ class i18n_messages(Command): "show_results": _("Show Results"), }, "buttons": { + "about": _("About"), "add": _("Add"), "add_and_add_another": _("Add and Add Another"), "add_and_close": _("Add and Close"), @@ -231,6 +232,8 @@ class i18n_messages(Command): "dirty_title": _("Unsaved Changes"), "edit_title": _("Edit ${entity}"), "hide_details": _("Hide details"), + "about_title": _("About"), + "about_message": _("${product}, version: ${version}"), "prospective": _("Prospective"), "redirection": _("Redirection"), "remove_empty": _("Select entries to be removed."),