]> wagnertech.de Git - kivitendo-erp.git/commitdiff
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 58a037475c643151ab182e5bb4764ce5e47795dd..75453fbcdcc90f31929b477ef88fbfcd01885ac5 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'));
 }
 
   $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) = @_;
 
 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 {
 }
 
 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 $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
     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);
   }
       ->flash('info', $info)
       ->render($self);
   }
index b425c19361240b8c8481338dd71fdd762f7316b1..012cc8f437512d9cbac8ad367aaae7ddec672f9d 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?",
 "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",
 "Time/cost estimate actions":"Aktionen für Kosten-/Zeitabschätzung",
 "Toggle marker":"Markierung umschalten",
 "Update":"Erneuern",
index 4f20749271620726ad9f28a6b27daeaeca52c426..b465ce094ec1f01ed0b5a82b71015ab6ca9fb470 100644 (file)
@@ -302,6 +302,25 @@ ns.paste_selected_template = function(template_id) {
   return true;
 };
 
   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 ---------------------------
 // -------------------------------------------------------------------------
 // -------------------------------------------------------------------------
 // -------------------------- time/cost estimate ---------------------------
 // -------------------------------------------------------------------------
@@ -525,6 +544,23 @@ ns.create_context_menus = function(is_template) {
     }, general_actions)
   });
 
     }, 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({
   $.contextMenu({
     selector: '.time-cost-estimate-context-menu',
     items:    $.extend({
index 8e8669d81d8c5486b426d264d8c0364387f40af4..3500c610d9c491868112bb64c17573b83b978847 100755 (executable)
@@ -313,6 +313,8 @@ $self->{texts} = {
   'Bank transfers via SEPA'     => 'Überweisungen via SEPA',
   'Base unit'                   => 'Basiseinheit',
   'Basic Data'                  => 'Basisdaten',
   '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',
   'Basic settings'              => 'Grundeinstellungen',
   'Batch Printing'              => 'Druck',
   'Bcc'                         => 'Bcc',
index 326026345954b57c7b56bf636665451db0da6373..dd760ed5ddfb47c6220a513bbaa51bfc26fe035d 100644 (file)
@@ -2,7 +2,7 @@
 [%- DEFAULT id_prefix = 'basic_settings_form'
             submit_as = 'post'
 %]
 [%- 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') %]
 
  [% 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 9a173a5aa8e42d20ee32a7a4f84126c4b436118b..38711c14d2b85ef9d04b0860604a315df7813cf3 100644 (file)
@@ -9,7 +9,7 @@
 <div class="tabwidget">
  <ul>
   <li><a href="#function-blocks-tab">[%- LxERP.t8("Content") %]</a></li>
 <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>
   <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>