From c21cba956fee1dbf69962228c24aa835bd848f6c Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Wed, 31 Jul 2013 17:34:43 +0200 Subject: [PATCH] Pflichtenhefte: vor Tabwechseln mit Datenverlust nachfragen --- js/locale/de.js | 3 ++ js/requirement_spec.js | 30 +++++++++++++++++++ locale/de/all | 2 ++ templates/webpages/requirement_spec/show.html | 13 ++++---- 4 files changed, 42 insertions(+), 6 deletions(-) diff --git a/js/locale/de.js b/js/locale/de.js index 012cc8f43..31831879b 100644 --- a/js/locale/de.js +++ b/js/locale/de.js @@ -5,6 +5,8 @@ namespace("kivi").setupLocale({ "Add sub function block":"Unterfunktionsblock hinzufügen", "Add text block":"Textblock erfassen", "Are you sure?":"Sind Sie sicher?", +"Basic settings actions":"Aktionen zu Grundeinstellungen", +"Cancel":"Abbrechen", "Copy":"Kopieren", "Copy requirement spec":"Pflichtenheft kopieren", "Copy template":"Vorlage kopieren", @@ -27,6 +29,7 @@ namespace("kivi").setupLocale({ "Edit text block":"Textblock bearbeiten", "Enter longdescription":"Langtext eingeben", "Function block actions":"Funktionsblockaktionen", +"If you switch to a different tab without saving you will lose the data you've entered in the current tab.":"Wenn Sie auf einen anderen Tab wechseln, ohne vorher zu speichern, so gehen die im aktuellen Tab eingegebenen Daten verloren.", "Map":"Karte", "Orders/Quotations actions":"", "Part picker":"Artikelauswahl", diff --git a/js/requirement_spec.js b/js/requirement_spec.js index 5c4967f41..094665513 100644 --- a/js/requirement_spec.js +++ b/js/requirement_spec.js @@ -491,6 +491,36 @@ ns.revert_to_versioned_copy_ajax_call = function(key, opt) { return true; }; +// ------------------------------------------------------------------------- +// ------------------------------- tab widget ------------------------------ +// ------------------------------------------------------------------------- +var content_div_ids_for_tab_headers = { + 'tab-header-function-block': 'function-blocks-tab' + , 'tab-header-basic-settings': 'ui-tabs-1' + , 'tab-header-time-cost-estimate': 'ui-tabs-2' + , 'tab-header-versions': 'ui-tabs-3' + , 'tab-header-quotations-orders': 'ui-tabs-4' +}; + +ns.tabs_before_activate = function(event, ui) { + if (!ui.oldTab) + return true; + + var content_div_id = content_div_ids_for_tab_headers[ $(ui.oldTab).attr('id') ]; + if (!content_div_id || (content_div_id == 'function-blocks-tab')) + return true; + + var inputs = $('#' + content_div_id).find('input,select,textarea').filter('[type!=hidden]'); + if (!inputs.size() || confirm(kivi.t8("If you switch to a different tab without saving you will lose the data you've entered in the current tab."))) + return true; + + var new_focus = $(inputs).filter(':focusable')[0]; + if (new_focus) + $(new_focus).focus(); + + return false; +}; + // ------------------------------------------------------------------------- // ----------------------------- context menus ----------------------------- // ------------------------------------------------------------------------- diff --git a/locale/de/all b/locale/de/all index 3500c610d..db1d7cf0b 100755 --- a/locale/de/all +++ b/locale/de/all @@ -316,6 +316,7 @@ $self->{texts} = { 'Basic Settings for the Requirement Spec' => 'Grundeinstellungen des Pflichtenheftes', 'Basic Settings for the Requirement Spec Template' => 'Grundeinstellungen der Pflichtenheftvorlage', 'Basic settings' => 'Grundeinstellungen', + 'Basic settings actions' => 'Aktionen zu Grundeinstellungen', 'Batch Printing' => 'Druck', 'Bcc' => 'Bcc', 'Bcc E-mail' => 'BCC (E-Mail)', @@ -1181,6 +1182,7 @@ $self->{texts} = { 'If you lock the system normal users won\'t be able to log in.' => 'Wenn Sie das System sperren, so werden sich normale Benutzer nicht mehr anmelden können.', 'If you see this message, you most likely just setup your LX-Office and haven\'t added any entry types. If this is the case, the option is accessible for administrators in the System menu.' => 'Wenn Sie diese Meldung sehen haben Sie wahrscheinlich ein frisches LX-Office Setup und noch keine Buchungsgruppen eingerichtet. Ein Administrator kann dies im Systemmenü erledigen.', 'If you select a base unit then you also have to enter a factor.' => 'Wenn Sie eine Basiseinheit auswählen, dann müssen Sie auch einen Faktor eingeben.', + 'If you switch to a different tab without saving you will lose the data you\'ve entered in the current tab.' => 'Wenn Sie auf einen anderen Tab wechseln, ohne vorher zu speichern, so gehen die im aktuellen Tab eingegebenen Daten verloren.', 'If you want to change any of these parameters then press the "Back" button, edit the file "config/kivitendo.conf" and login into the admin module again.' => 'Wenn Sie einen der Parameter ändern wollen, so drücken Sie auf den "Zurück"-Button, bearbeiten Sie die Datei "config/kivitendo.conf", und melden Sie sich erneut im Administrationsbereich an.', 'If you want to delete such a dataset you have to edit the client(s) that are using the dataset in question and have them use another dataset.' => 'Wenn Sie eine solche Datenbank löschen möchten, dann müssen Sie zuerst den/die Mandanten auf eine andere Datenbank umstellen, die die zu löschende Datenbank benutzen.', 'If you want to set up the authentication database yourself then log in to the administration panel. kivitendo will then create the database and tables for you.' => 'Wenn Sie die Authentifizierungs-Datenbank selber einrichten wollen, so melden Sie sich im Administrationsbereich an. kivitendo wird dann die Datenbank und die erforderlichen Tabellen für Sie anlegen.', diff --git a/templates/webpages/requirement_spec/show.html b/templates/webpages/requirement_spec/show.html index 38711c14d..f01c0b2eb 100644 --- a/templates/webpages/requirement_spec/show.html +++ b/templates/webpages/requirement_spec/show.html @@ -6,14 +6,14 @@ [%- L.hidden_tag('requirement_spec_id', SELF.requirement_spec.id, 'data-is-template'=(SELF.requirement_spec.is_template ? 1 : 0)) -%] -
+
@@ -112,6 +112,7 @@ $(function() { [% END %] kivi.requirement_spec.create_context_menus([% SELF.requirement_spec.is_template ? 'true' : 'false' %]); + $('#requirement_spec_tabs').on("tabsbeforeactivate", kivi.requirement_spec.tabs_before_activate); }); --> -- 2.20.1