Pflichtenheft-Grundeinstellungen erst read/only anzeigen, nicht direkt als Maske
authorMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 31 Jul 2013 14:28:55 +0000 (16:28 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 1 Apr 2014 11:09:08 +0000 (13:09 +0200)
SL/Controller/RequirementSpec.pm
js/locale/de.js
js/requirement_spec.js
locale/de/all
templates/webpages/requirement_spec/_form.html
templates/webpages/requirement_spec/_show_basic_settings.html [new file with mode: 0644]
templates/webpages/requirement_spec/show.html

index 58a0374..75453fb 100644 (file)
@@ -86,10 +86,21 @@ sub action_new {
   $self->render('requirement_spec/new', title => $self->requirement_spec->is_template ? t8('Create a new requirement spec template') : t8('Create a new requirement spec'));
 }
 
+sub action_ajax_show_basic_settings {
+  my ($self) = @_;
+
+  $self->render('requirement_spec/_show_basic_settings', { layout => 0 });
+}
+
 sub action_ajax_edit {
   my ($self) = @_;
 
-  $self->render('requirement_spec/_form', { layout => 0 }, submit_as => 'ajax');
+  my $html   = $self->render('requirement_spec/_form', { output => 0 }, submit_as => 'ajax');
+
+  $self->js
+    ->hide('#basic_settings')
+    ->after('#basic_settings', $html)
+    ->render($self);
 }
 
 sub action_ajax_show_time_and_cost_estimate {
@@ -346,9 +357,12 @@ sub create_or_update {
   my $info = $self->requirement_spec->is_template ? t8('The requirement spec template has been saved.') : t8('The requirement spec has been saved.');
 
   if ($::request->is_ajax) {
-    my $html = $self->render('requirement_spec/_header', { output => 0 });
+    my $header_html = $self->render('requirement_spec/_header', { output => 0 });
+    my $basics_html = $self->render('requirement_spec/_show_basic_settings', { output => 0 });
     return $self->invalidate_version
-      ->replaceWith('#requirement-spec-header', $html)
+      ->replaceWith('#requirement-spec-header', $header_html)
+      ->replaceWith('#basic_settings',          $basics_html)
+      ->remove('#basic_settings_form')
       ->flash('info', $info)
       ->render($self);
   }
index b425c19..012cc8f 100644 (file)
@@ -44,6 +44,7 @@ namespace("kivi").setupLocale({
 "The name must only consist of letters, numbers and underscores and start with a letter.":"Der Name darf nur aus Buchstaben (keine Umlaute), Ziffern und Unterstrichen bestehen und muss mit einem Buchstaben beginnen.",
 "The option field is empty.":"Das Optionsfeld ist leer.",
 "The selected database is still configured for client \"#1\". If you delete the database that client will stop working until you re-configure it. Do you still want to delete the database?":"Die auswählte Datenbank ist noch für Mandant \"#1\" konfiguriert. Wenn Sie die Datenbank löschen, wird der Mandanten nicht mehr funktionieren, bis er anders konfiguriert wurde. Wollen Sie die Datenbank trotzdem löschen?",
+"There is one or more sections for which no part has been assigned yet; therefore creating the new record is not possible yet.":"Es gibt einen oder mehrere Abschnitte ohne Artikelzuweisung; daher kann der neue Beleg noch nicht erstellt werden.",
 "Time/cost estimate actions":"Aktionen für Kosten-/Zeitabschätzung",
 "Toggle marker":"Markierung umschalten",
 "Update":"Erneuern",
index 4f20749..b465ce0 100644 (file)
@@ -302,6 +302,25 @@ ns.paste_selected_template = function(template_id) {
   return true;
 };
 
+// -------------------------------------------------------------------------
+// ---------------------------- basic settings -----------------------------
+// -------------------------------------------------------------------------
+ns.standard_basic_settings_ajax_call = function(key, opt) {
+  if (key == 'cancel') {
+    if (confirm(kivi.t8('Do you really want to cancel?'))) {
+      $('#basic_settings').show();
+      $('#basic_settings_form').remove();
+    }
+    return true;
+  }
+
+  var data = 'action=RequirementSpec/ajax_' + key + '&id=' + encodeURIComponent($('#requirement_spec_id').val());
+
+  $.post("controller.pl", data, kivi.eval_json_result);
+
+  return true;
+};
+
 // -------------------------------------------------------------------------
 // -------------------------- time/cost estimate ---------------------------
 // -------------------------------------------------------------------------
@@ -525,6 +544,23 @@ ns.create_context_menus = function(is_template) {
     }, general_actions)
   });
 
+  $.contextMenu({
+    selector: '.basic-settings-context-menu',
+    items:    $.extend({
+        heading: { name: kivi.t8('Basic settings actions'), className: 'context-menu-heading' }
+      , edit:    { name: kivi.t8('Edit'), icon: "edit", callback: kivi.requirement_spec.standard_basic_settings_ajax_call }
+    }, general_actions)
+  });
+
+  $.contextMenu({
+    selector: '.edit-basic-settings-context-menu',
+    items:    $.extend({
+        heading: { name: kivi.t8('Basic settings actions'), className: 'context-menu-heading' }
+      , save:    { name: kivi.t8('Save'),   icon: "save",  callback: kivi.requirement_spec.standard_basic_settings_ajax_call }
+      , cancel:  { name: kivi.t8('Cancel'), icon: "close", callback: kivi.requirement_spec.standard_basic_settings_ajax_call }
+    }, general_actions)
+  });
+
   $.contextMenu({
     selector: '.time-cost-estimate-context-menu',
     items:    $.extend({
index 8e8669d..3500c61 100755 (executable)
@@ -313,6 +313,8 @@ $self->{texts} = {
   'Bank transfers via SEPA'     => 'Überweisungen via SEPA',
   'Base unit'                   => 'Basiseinheit',
   'Basic Data'                  => 'Basisdaten',
+  'Basic Settings for the Requirement Spec' => 'Grundeinstellungen des Pflichtenheftes',
+  'Basic Settings for the Requirement Spec Template' => 'Grundeinstellungen der Pflichtenheftvorlage',
   'Basic settings'              => 'Grundeinstellungen',
   'Batch Printing'              => 'Druck',
   'Bcc'                         => 'Bcc',
index 3260263..dd760ed 100644 (file)
@@ -2,7 +2,7 @@
 [%- DEFAULT id_prefix = 'basic_settings_form'
             submit_as = 'post'
 %]
-<form method="post" action="controller.pl" id="[% id_prefix %]">
+<form method="post" action="controller.pl" id="[% id_prefix %]"[% UNLESS submit_as == 'post' %] class="edit-basic-settings-context-menu"[% END %]>
  [% L.hidden_tag("id", SELF.requirement_spec.id, id=id_prefix _ '_id') %]
  [% L.hidden_tag("requirement_spec.is_template", SELF.requirement_spec.is_template, id=id_prefix _ '_is_template') %]
 
diff --git a/templates/webpages/requirement_spec/_show_basic_settings.html b/templates/webpages/requirement_spec/_show_basic_settings.html
new file mode 100644 (file)
index 0000000..cdd80f1
--- /dev/null
@@ -0,0 +1,44 @@
+[%- USE HTML -%][%- USE LxERP -%]
+<div id="basic_settings" class="basic-settings-context-menu">
+ <table>
+  <tr class="listheading">
+   <th colspan="2">
+    [% IF SELF.requirement_spec.is_template %]
+     [% LxERP.t8("Basic Settings for the Requirement Spec Template") %]
+    [% ELSE %]
+     [% LxERP.t8("Basic Settings for the Requirement Spec") %]
+    [% END %]
+   </th>
+  </tr>
+
+  <tr class="listrow">
+   <td>[% LxERP.t8("Title") %]:</td>
+   <td>[% HTML.escape(SELF.requirement_spec.title) %]</td>
+  </tr>
+
+[%- UNLESS SELF.requirement_spec.is_template %]
+
+  <tr class="listrow">
+   <td>[% LxERP.t8("Requirement Spec Type") %]:</td>
+   <td>[% HTML.escape(SELF.requirement_spec.type.description) %]</td>
+  </tr>
+
+  <tr class="listrow">
+   <td>[% LxERP.t8("Requirement Spec Status") %]:</td>
+   <td>[% HTML.escape(SELF.requirement_spec.status.description) %]</td>
+  </tr>
+
+  <tr class="listrow">
+   <td>[% LxERP.t8("Customer") %]:</td>
+   <td>[% HTML.escape(SELF.requirement_spec.customer.name) %]</td>
+  </tr>
+
+  <tr class="listrow">
+   <td>[% LxERP.t8("Hourly Rate") %]:</td>
+   <td>[% HTML.escape(SELF.requirement_spec.hourly_rate_as_number) %]</td>
+  </tr>
+
+[%- END %]
+
+ </table>
+</div>
index 9a173a5..38711c1 100644 (file)
@@ -9,7 +9,7 @@
 <div class="tabwidget">
  <ul>
   <li><a href="#function-blocks-tab">[%- LxERP.t8("Content") %]</a></li>
-  <li><a href="controller.pl?action=RequirementSpec/ajax_edit&id=[% HTML.url(SELF.requirement_spec.id) %]">[%- LxERP.t8("Basic settings") %]</a></li>
+  <li><a href="controller.pl?action=RequirementSpec/ajax_show_basic_settings&id=[% HTML.url(SELF.requirement_spec.id) %]">[%- LxERP.t8("Basic settings") %]</a></li>
   <li><a href="controller.pl?action=RequirementSpec/ajax_show_time_and_cost_estimate&id=[% HTML.url(SELF.requirement_spec.id) %]">[%- LxERP.t8("Time and cost estimate") %]</a></li>
   [%- UNLESS SELF.requirement_spec.is_template %]
    <li><a href="controller.pl?action=RequirementSpecVersion/list&requirement_spec_id=[% HTML.url(SELF.requirement_spec.id) %]">[%- LxERP.t8("Versions") %]</a></li>