Ver código fonte

updated generate raport form state and view

Piotr Labudda 6 anos atrás
pai
commit
e3f57a9389
5 arquivos alterados com 740 adições e 892 exclusões
  1. 212 0
      theme/view/home-old.php
  2. 32 206
      theme/view/home.php
  3. 57 194
      tools/Bocian.php
  4. 171 0
      tools/Bocian.php.store.js
  5. 268 492
      tools/Bocian.php.view.js

+ 212 - 0
theme/view/home-old.php

@@ -0,0 +1,212 @@
+<!-- start: home -->
+<!--
+<ul class="nav nav-tabs" style="margin-bottom: 20px">
+  <li class="nav-item">
+    <a id="oip" class="nav-link active" href="#">OSOBY I PODMIOTY</a>
+  </li>
+  <li class="nav-item">
+    <a id="obz" class="nav-link" href="#">OPER. BAZA ZGŁOSZEŃ</a>
+  </li>
+</ul>
+-->
+<div id="smad-page-home" class="container-fluid">
+    <div>
+        <div>
+            <div id="smad-menu-form-section">
+              <div id="OIP">
+                <div class="col-md-6 padding-lr-0 smad-border-col">
+                    <div class="menu-items text-center">
+                        <div class="menu-item">
+                            <a href="index.php?_route=UrlAction_Bocian#PRACOWNICY" title="Pracownicy">
+                                <div>Pracownicy</div>
+                                <img src="<?= $this->asset("assets/images/button-red.png"); ?>"
+                                  alt="Pracownicy"
+                                  onmouseover="this.src='<?= $this->asset("assets/images/button-red-border.png"); ?>'"
+                                  onmouseout="this.src='<?= $this->asset("assets/images/button-red.png"); ?>'" />
+                            </a>
+                        </div>
+                    </div>
+                </div>
+                <div class="col-md-6 padding-lr-0">
+                    <div class="menu-items text-center">
+                        <div class="menu-item">
+                            <a href="index.php?_route=UrlAction_Bocian#KONTRAHENCI" title="Kontrahenci">
+                                <div>Kontrahenci</div>
+                                <img src="<?= $this->asset("assets/images/button-red.png"); ?>"
+                                  alt="Kontrahenci"
+                                  onmouseover="this.src='<?= $this->asset("assets/images/button-red-border.png"); ?>'"
+                                  onmouseout="this.src='<?= $this->asset("assets/images/button-red.png"); ?>'" />
+                            </a>
+                        </div>
+                    </div>
+                </div>
+                </div>
+                <div id="OBZ" style="display:none">
+                    <div id="smad-menu-form-section">
+                        <div class="col-md-12 padding-lr-0 smad-border-col">
+                            <div class="menu-items text-center">
+                                <div class="container-fluid">
+                                    <ul class="breadcrumb">
+                                      <li>
+                                        <a href="#" onclick="">Operacyjna baza zgłoszeń</a>
+                                      </li>
+                                      <li>
+                                        <a href="index.php?_route=UrlAction_Bocian#KONTRAHENCI">
+                                          <span class="glyphicon glyphicon-plus"></span>
+                                          Dodaj nowy rekord
+                                        </a>
+                                      </li>
+                                    </ul>
+                                    <div class="padding-0 smad-employees-obz-head" style="background-color:lightgrey;">
+                                      <div class "col-md-6">
+                                        <h2 class="title" style="padding: 30px"> Operacyjna baza zgłoszeń</h2>
+                                      </div>
+                                      <div class="container-fluid">
+                                        <div class="table-responsive padding-0" id="smad-table-obz">
+                                          <table class="table table-responsive table-bordered table-hover table-striped" height="5">
+                                            <thead>
+                                            </thead>
+                                          </table>
+                                        </div>
+                                      </div>
+                                    </div>
+
+                                </div>
+                            </div>
+                        </div>
+                      </div>
+                    </div>
+                <div class="col-md-12 border-top-grey border-bottom-grey">
+                    <div class="menu-form-input text-center">
+                        <div class="menu-item smad-heder-title">głębokość powiązań:</div>
+                        <div class="menu-item">
+                            <input type="text" class="form-control smad-depth" placeholder="1-16" value="6" />
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+<div id="smad-generate-link" class="container-fluid">
+    <div>
+        <div class="text-center">
+          <?php //todo: ukrycie przycisku generownia raportów powiazan ?>
+          <!--  <a href="#" title="GENERUJ RAPORT POWIĄZAŃ" class="btn btn-primary font-weight-700">GENERUJ RAPORT POWIĄZAŃ</a> -->
+        </div>
+    </div>
+</div>
+
+<script type="text/javascript">
+
+if (localStorage.getItem("Bocian.biAuditForm.depth") === null) {
+  localStorage.setItem('Bocian.biAuditForm.depth', 6);
+}
+
+$(document).ready(function() {
+    clearBIAuditFormLocalStorage();
+    loadCurrentDepthInInput('.smad-depth');
+    updateLocalStorageBiAuditDepth('.smad-depth');
+    setItemLocalStorage('Bocian.biAuditForm.smadReaportTitle', 'Nazwa raportu');
+    $("#oip").click(function(){
+      $("#OIP").show();
+      $("#OBZ").hide();
+    });
+    $("#obz").click(function(){
+      $("#OBZ").show();
+      $("#OIP").hide();
+    });
+});
+
+/**
+ * Load data default title reaport in storage
+ */
+function loadCurrentReaportTitleInInput(idInput) {
+  var reaportTitleValue = getItemLocalStorage("Bocian.biAuditForm.smadReaportTitle");
+
+  if ( getItemLocalStorage('Bocian.biAuditForm.smadReaportTitle') === null ) {
+    reaportTitleValue = setItemLocalStorage('Bocian.biAuditForm.smadReaportTitle', 'Nazwa raportu');
+  }
+
+  $(idInput).val(function() {
+     return reaportTitleValue;
+  });
+}
+
+/**
+ * Load data default depth in storage
+ */
+function loadCurrentDepthInInput(idInput) {
+  var depthValue = getItemLocalStorage("Bocian.biAuditForm.depth");
+
+  if ( getItemLocalStorage('Bocian.biAuditForm.depth') === null ) {
+    depthValue = setItemLocalStorage('Bocian.biAuditForm.depth', 6);
+  }
+
+  $(idInput).val(function() {
+     return depthValue;
+  });
+}
+
+/**
+ * Update data default depth in storage
+ */
+function updateLocalStorageBiAuditDepth(idInput) {
+  $(idInput).keyup(function() {
+    delayUpdate(function(){
+      var newValue = $(idInput).val();
+      var responseValue = validateValueDepth(parseInt(newValue));
+      setItemLocalStorage('Bocian.biAuditForm.depth', responseValue);
+      loadCurrentDepthInInput('.smad-depth');
+    }, 1000 );
+  });
+}
+
+function validateValueDepth(newValue) {
+  var value = null;
+  value = newValue;
+
+  if (parseInt(newValue) < 0) {
+      value = 1;
+  }
+
+  if (parseInt(newValue) > 16) {
+    value = 16;
+  }
+
+  return value;
+}
+
+
+var delayUpdate = (function() {
+  var timer = 0;
+  return function(callback, ms) {
+  clearTimeout (timer);
+  timer = setTimeout(callback, ms);
+ };
+})();
+
+// Local storage
+function setItemLocalStorage(key, array) {
+	localStorage.setItem(key, JSON.stringify(array));
+}
+function getItemLocalStorage(key) {
+	var retrievedData = localStorage.getItem(key);
+	var response = JSON.parse(retrievedData);
+
+	return response;
+}
+
+function clearBIAuditFormLocalStorage() {
+  var arrayValue = [];
+  setItemLocalStorage('Bocian.biAuditForm.pracownicyIds', arrayValue);
+  setItemLocalStorage('Bocian.biAuditForm.kontrahenciIds', arrayValue);
+  setItemLocalStorage('Bocian.biAuditForm.pracownicy.filterIdGroup', 0);
+  setItemLocalStorage('Bocian.biAuditForm.kontrahenci.filterIdGroup', 0);
+  setItemLocalStorage('Bocian.biAuditForm.analizaOnlyTargets', 'y');
+
+}
+window.delayUpdate = delayUpdate;
+</script>
+<!-- end:home -->

+ 32 - 206
theme/view/home.php

@@ -1,212 +1,38 @@
-<!-- start: home -->
-<!--
-<ul class="nav nav-tabs" style="margin-bottom: 20px">
-  <li class="nav-item">
-    <a id="oip" class="nav-link active" href="#">OSOBY I PODMIOTY</a>
-  </li>
-  <li class="nav-item">
-    <a id="obz" class="nav-link" href="#">OPER. BAZA ZGŁOSZEŃ</a>
-  </li>
-</ul>
--->
 <div id="smad-page-home" class="container-fluid">
-    <div>
-        <div>
-            <div id="smad-menu-form-section">
-              <div id="OIP">
-                <div class="col-md-6 padding-lr-0 smad-border-col">
-                    <div class="menu-items text-center">
-                        <div class="menu-item">
-                            <a href="index.php?_route=UrlAction_Bocian#PRACOWNICY" title="Pracownicy">
-                                <div>Pracownicy</div>
-                                <img src="<?= $this->asset("assets/images/button-red.png"); ?>"
-                                  alt="Pracownicy"
-                                  onmouseover="this.src='<?= $this->asset("assets/images/button-red-border.png"); ?>'"
-                                  onmouseout="this.src='<?= $this->asset("assets/images/button-red.png"); ?>'" />
-                            </a>
-                        </div>
-                    </div>
-                </div>
-                <div class="col-md-6 padding-lr-0">
-                    <div class="menu-items text-center">
-                        <div class="menu-item">
-                            <a href="index.php?_route=UrlAction_Bocian#KONTRAHENCI" title="Kontrahenci">
-                                <div>Kontrahenci</div>
-                                <img src="<?= $this->asset("assets/images/button-red.png"); ?>"
-                                  alt="Kontrahenci"
-                                  onmouseover="this.src='<?= $this->asset("assets/images/button-red-border.png"); ?>'"
-                                  onmouseout="this.src='<?= $this->asset("assets/images/button-red.png"); ?>'" />
-                            </a>
-                        </div>
-                    </div>
-                </div>
-                </div>
-                <div id="OBZ" style="display:none">
-                    <div id="smad-menu-form-section">
-                        <div class="col-md-12 padding-lr-0 smad-border-col">
-                            <div class="menu-items text-center">
-                                <div class="container-fluid">
-                                    <ul class="breadcrumb">
-                                      <li>
-                                        <a href="#" onclick="">Operacyjna baza zgłoszeń</a>
-                                      </li>
-                                      <li>
-                                        <a href="index.php?_route=UrlAction_Bocian#KONTRAHENCI">
-                                          <span class="glyphicon glyphicon-plus"></span>
-                                          Dodaj nowy rekord
-                                        </a>
-                                      </li>
-                                    </ul>
-                                    <div class="padding-0 smad-employees-obz-head" style="background-color:lightgrey;">
-                                      <div class "col-md-6">
-                                        <h2 class="title" style="padding: 30px"> Operacyjna baza zgłoszeń</h2>
-                                      </div>
-                                      <div class="container-fluid">
-                                        <div class="table-responsive padding-0" id="smad-table-obz">
-                                          <table class="table table-responsive table-bordered table-hover table-striped" height="5">
-                                            <thead>
-                                            </thead>
-                                          </table>
-                                        </div>
-                                      </div>
-                                    </div>
-
-                                </div>
-                            </div>
-                        </div>
-                      </div>
-                    </div>
-                <div class="col-md-12 border-top-grey border-bottom-grey">
-                    <div class="menu-form-input text-center">
-                        <div class="menu-item smad-heder-title">głębokość powiązań:</div>
-                        <div class="menu-item">
-                            <input type="text" class="form-control smad-depth" placeholder="1-16" value="6" />
-                        </div>
-                    </div>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-
-<div id="smad-generate-link" class="container-fluid">
-    <div>
-        <div class="text-center">
-          <?php //todo: ukrycie przycisku generownia raportów powiazan ?>
-          <!--  <a href="#" title="GENERUJ RAPORT POWIĄZAŃ" class="btn btn-primary font-weight-700">GENERUJ RAPORT POWIĄZAŃ</a> -->
-        </div>
-    </div>
+    <a class="btn btn-primary" id="p5-bocian-btn-new-report" href="index.php?_route=UrlAction_Bocian#PRACOWNICY" title="Nowy raport">
+        <div>NOWY RAPORT</div>
+        <img class="p5-bocian-btn-new-report__img_default" src="<?= $this->asset("assets/images/button-red.png"); ?>"/>
+        <img class="p5-bocian-btn-new-report__img_hover" src="<?= $this->asset("assets/images/button-red-border.png"); ?>"/>
+    </a>
 </div>
-
+<style type="text/css">
+#smad-page-home { padding-bottom:128px; padding-top:128px; text-align:center }
+
+#p5-bocian-btn-new-report { padding: 18px 110px; font-size: 18px; font-weight: 900; border-width:2px; border-color:#d7142d }
+#p5-bocian-btn-new-report div { padding-bottom:8px; font-size:24px }
+#p5-bocian-btn-new-report,
+#p5-bocian-btn-new-report div { background-color:#fff; color:#d7142d }
+/* #p5-bocian-btn-new-report div { background-color:#d7142d; color:#fff; } */
+#p5-bocian-btn-new-report .p5-bocian-btn-new-report__img_default { display:inline }
+#p5-bocian-btn-new-report .p5-bocian-btn-new-report__img_hover { display:none }
+#p5-bocian-btn-new-report:hover,
+#p5-bocian-btn-new-report:hover div { background-color:#fff; color:#d7142d }
+#p5-bocian-btn-new-report:hover .p5-bocian-btn-new-report__img_default { display:none }
+#p5-bocian-btn-new-report:hover .p5-bocian-btn-new-report__img_hover { display:inline }
+</style>
+
+<?= UI::h('script', ['src'=>"static/vendor.js?v=71baa97d", 'type'=>"text/javascript"]); ?>
+<?php Router::getRoute('UrlAction_Bocian')->viewIncludeStoreJs($storeName = 'bocianRaportStore'); ?>
 <script type="text/javascript">
-
-if (localStorage.getItem("Bocian.biAuditForm.depth") === null) {
-  localStorage.setItem('Bocian.biAuditForm.depth', 6);
-}
-
+var globalRaportStore;
 $(document).ready(function() {
-    clearBIAuditFormLocalStorage();
-    loadCurrentDepthInInput('.smad-depth');
-    updateLocalStorageBiAuditDepth('.smad-depth');
-    setItemLocalStorage('Bocian.biAuditForm.smadReaportTitle', 'Nazwa raportu');
-    $("#oip").click(function(){
-      $("#OIP").show();
-      $("#OBZ").hide();
-    });
-    $("#obz").click(function(){
-      $("#OBZ").show();
-      $("#OIP").hide();
-    });
+  if (!window['bocianRaportStore']) throw "Missing store";
+  var globalRaportStore = window['bocianRaportStore'];
+  globalRaportStore.dispatch({ type: 'CLEAR_ALL' });
+  <?php
+  // var unsubscribe = globalRaportStore.subscribe(function () {
+  //   var state = globalRaportStore.getState();
+  // })
+  ?>
 });
-
-/**
- * Load data default title reaport in storage
- */
-function loadCurrentReaportTitleInInput(idInput) {
-  var reaportTitleValue = getItemLocalStorage("Bocian.biAuditForm.smadReaportTitle");
-
-  if ( getItemLocalStorage('Bocian.biAuditForm.smadReaportTitle') === null ) {
-    reaportTitleValue = setItemLocalStorage('Bocian.biAuditForm.smadReaportTitle', 'Nazwa raportu');
-  }
-
-  $(idInput).val(function() {
-     return reaportTitleValue;
-  });
-}
-
-/**
- * Load data default depth in storage
- */
-function loadCurrentDepthInInput(idInput) {
-  var depthValue = getItemLocalStorage("Bocian.biAuditForm.depth");
-
-  if ( getItemLocalStorage('Bocian.biAuditForm.depth') === null ) {
-    depthValue = setItemLocalStorage('Bocian.biAuditForm.depth', 6);
-  }
-
-  $(idInput).val(function() {
-     return depthValue;
-  });
-}
-
-/**
- * Update data default depth in storage
- */
-function updateLocalStorageBiAuditDepth(idInput) {
-  $(idInput).keyup(function() {
-    delayUpdate(function(){
-      var newValue = $(idInput).val();
-      var responseValue = validateValueDepth(parseInt(newValue));
-      setItemLocalStorage('Bocian.biAuditForm.depth', responseValue);
-      loadCurrentDepthInInput('.smad-depth');
-    }, 1000 );
-  });
-}
-
-function validateValueDepth(newValue) {
-  var value = null;
-  value = newValue;
-
-  if (parseInt(newValue) < 0) {
-      value = 1;
-  }
-
-  if (parseInt(newValue) > 16) {
-    value = 16;
-  }
-
-  return value;
-}
-
-
-var delayUpdate = (function() {
-  var timer = 0;
-  return function(callback, ms) {
-  clearTimeout (timer);
-  timer = setTimeout(callback, ms);
- };
-})();
-
-// Local storage
-function setItemLocalStorage(key, array) {
-	localStorage.setItem(key, JSON.stringify(array));
-}
-function getItemLocalStorage(key) {
-	var retrievedData = localStorage.getItem(key);
-	var response = JSON.parse(retrievedData);
-
-	return response;
-}
-
-function clearBIAuditFormLocalStorage() {
-  var arrayValue = [];
-  setItemLocalStorage('Bocian.biAuditForm.pracownicyIds', arrayValue);
-  setItemLocalStorage('Bocian.biAuditForm.kontrahenciIds', arrayValue);
-  setItemLocalStorage('Bocian.biAuditForm.pracownicy.filterIdGroup', 0);
-  setItemLocalStorage('Bocian.biAuditForm.kontrahenci.filterIdGroup', 0);
-  setItemLocalStorage('Bocian.biAuditForm.analizaOnlyTargets', 'y');
-
-}
-window.delayUpdate = delayUpdate;
 </script>
-<!-- end:home -->

+ 57 - 194
tools/Bocian.php

@@ -142,6 +142,14 @@ public static $helpEmailTo = 'biuro@bialnet.com.pl'; // todo:email na który zos
 
 	function graphTestAction() { include __FILE__ . '.graphTest.php'; }
 
+	function viewIncludeStoreJs($storeName = 'bocianRaportStore') {
+		UI::inlineJS(__FILE__ . '.store.js', [
+			'DBG' => V::get('DBG', 0, $_GET),
+			'STORE_NAME' => $storeName,
+			'CURRENT_DATE' => date("j.n.Y"),
+		]);
+	}
+
 	function defaultAction() {
 		UI::gora();
 		echo UI::h('script', ['src'=>"static/sweetalert2.min.js"]);
@@ -155,6 +163,7 @@ public static $helpEmailTo = 'biuro@bialnet.com.pl'; // todo:email na który zos
 		//	echo '<div class="container-bi_audit_form_raport_data" style="display: none;"></div>';
 
 		echo UI::h('script', ['src'=>"static/vendor.js?v=71baa97d", 'type'=>"text/javascript"]);
+		$this->viewIncludeStoreJs($storeName = "bocianRaportStore");
 		UI::inlineJS(__FILE__ . '.view.js', [
 			'BASE_URLS' => Request::getPathUri(),
 			'URL_FETCH_KONTRAHENCI_POWIAZANIA' => $this->getLink('fetchEnergaRumKontrahenciPowiazaniaAjax'),
@@ -184,7 +193,7 @@ public static $helpEmailTo = 'biuro@bialnet.com.pl'; // todo:email na który zos
 			'VIEW_OPERACYJNA_BAZA_ZGLOSZEN' => $this->defaultViewFormBiAudit([], 'OPERACYJNA_BAZA_ZGLOSZEN'),
 			'URL_FORM_DATA_CSV_FILE_AJAX' => $this->getLink('formDataCsvFileAjax'),
 			'URL_SAVE_FORM_CSV_FILE_AJAX' => $this->getLink('saveFormCsvFileAjax'),
-			'URL_TABLE_POWIAZANIA' => Router::getRoute('ViewTableAjax', [ 'namespace' => "default_db/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA" ]),
+			'URL_TABLE_POWIAZANIA' => Router::getRoute('ViewTableAjax')->getLink('', [ 'namespace' => "default_db/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA" ]),
 			'FIELD_LIST_PRACOWNICY' => array_merge(
 				array_map(function ($fieldName) {
 					return "f_{$fieldName}";
@@ -197,14 +206,14 @@ public static $helpEmailTo = 'biuro@bialnet.com.pl'; // todo:email na który zos
 				return "f_{$fieldName}";
 			}, self::$FIELD_LIST_KONTRAHENCI),
 			'CURRENT_DATE' => date("j.n.Y"),
-			'STORE_NAME' => "bocianRaportStore",
+			'STORE_NAME' => $storeName = "bocianRaportStore",
 		]);
 		UI::inlineJS(__FILE__ . '.addItemToRaport.js', [
 			'URL_FETCH_FROM_BAZA' => $this->getLink('fetchFromBazaAjax'),
 			// 'URL_SAVE_TO_DB' => $this->getLink('saveToPozostaleOdDoAjax'),
 			'DBG' => V::get('DBG', 0, $_GET),
 			'FUNCTION_NAME' => "addPozostaleOdDo",
-			'STORE_NAME' => "bocianRaportStore",
+			'STORE_NAME' => $storeName = "bocianRaportStore",
 		]);
 		// UI::inlineJS(__FILE__ . '.addItemToRaport.js', [
 		// 	'URL_FETCH_FROM_BAZA' => $this->getLink('fetchFromBazaAjax'),
@@ -2773,16 +2782,6 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 	}
 
 
-	// link do ackji w php: $saveFormUrl = $this->getLink('saveRaportAjax');
-	// przekazać link do JavaScript i tam:
-	// window.fetch('{$saveFormUrl}', { ... }).then(...) - dokumentacja: https://github.com/github/fetch
-	public function generateBiAuditRaportAjaxAction() {
-		 //Response::sendTryCatchJson(array($this, 'saveRaportAjax'), $args = 'JSON_FROM_REQUEST_BODY'); // użyj tej wersji jeśli chcesz wysyłać z przelgądarki JSON-a post-em
-		Response::sendTryCatchJson(array($this, 'generateBiAuditRaportAjax'), $args = 'JSON_FROM_REQUEST_BODY');
-		//Response::sendTryCatchJson(array($this, 'generateBiAuditRaportAjax'));
-	}
-
-
 	function mapShortNs($shortNs) {
 		switch ($shortNs) {
 			case 'KRS': return 'default_db/BI_audit_KRS/BI_audit_KRS';
@@ -2794,21 +2793,21 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 		}
 	}
 
-	public function generateBiAuditRaportAjax($args) {
 
-		// głebokość powiazan
+	public function generateBiAuditRaportAjaxAction() {
+		Response::sendTryCatchJson(array($this, 'generateBiAuditRaportAjax'), $args = 'JSON_FROM_REQUEST_BODY');
+	}
+	public function generateBiAuditRaportAjax($args) {
 		$depthValue = V::get('depthValue', '', $args);
 		if (!$depthValue) {
 			throw new Exception("Nie podano wartości dla głębokości powiązań");
 		}
 
-		// tytuł raportu
 		$smadReaportTitle = V::get('smadReaportTitle', '', $args);
 		if (!$smadReaportTitle) {
 			throw new Exception("Nie podano tytułu raportu");
 		}
 
-		// Bi_analiza_onlyTarger
 		$analizaOnlyTargets = V::get('analizaOnlyTargets', '', $args);
 		if (!$analizaOnlyTargets) {
 			throw new Exception("Nie podano wartości czy zwracać wyniki tylko z obiektami docelowymi");
@@ -2859,17 +2858,6 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 				$refPrimaryKey = $idRaport,
 				$refListRemotePrimaryKey = $pracownicyIds
 			);
-		} else {
-			// $refRaportToPracownicyConfig = ACL::getRefConfig(
-			// 	$rootObjectNamespace = 'default_db/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA',
-			// 	$fieldTypeName = 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY'
-			// );
-			// DB::getPDO()->execSql("
-			// 	insert into `{$refRaportToPracownicyConfig->tableName}` (`PRIMARY_KEY`,`REMOTE_PRIMARY_KEY`)
-			// 	select {$idRaport} as PRIMARY_KEY, ID as REMOTE_PRIMARY_KEY
-			// 	from `BI_audit_ENERGA_PRACOWNICY`
-			// 	where `A_STATUS` != 'DELETED'
-			// ");
 		}
 
 		if (!empty($kontrahenciIds)) {
@@ -2879,17 +2867,6 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 				$refPrimaryKey = $idRaport,
 				$refListRemotePrimaryKey = $kontrahenciIds
 			);
-		} else {
-			// $refRaportToKontrahenciConfig = ACL::getRefConfig(
-			// 	$rootObjectNamespace = 'default_db/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA',
-			// 	$fieldTypeName = 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:BI_audit_ENERGA_RUM_KONTRAHENCI'
-			// );
-			// DB::getPDO()->execSql("
-			// 	insert into `{$refRaportToKontrahenciConfig->tableName}` (`PRIMARY_KEY`,`REMOTE_PRIMARY_KEY`)
-			// 	select '{$idRaport}' as PRIMARY_KEY, ID as REMOTE_PRIMARY_KEY
-			// 	from `BI_audit_ENERGA_RUM_KONTRAHENCI`
-			// 	where `A_STATUS` != 'DELETED'
-			// ");
 		}
 
 		if (!empty($pozostaleOd)) {
@@ -2974,21 +2951,9 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 		$formAddNewData = '';
 		switch($type) {
 				case 'KONTRAHENCI':
-					$groupFilterList = '
-					<div class="menu-item">
-							<ul class="padding-0">
-									<li><a href="#" title="STWÓRZ GRUPĘ" class="btn btn-default" onClick="createGroupKontrahenci(event)" data-color-noactive="">+ STWÓRZ GRUPĘ</a></li>
-							</ul>
-					</div>
-					<div id="group-kontrahenci" class="btn-group">
-							<button class="btn btn-default active" title="Wszyscy" data-group-filter="0">Wszyscy</button>
-					</div>';
-
-					$formSmadDepth = '<input type="text" class="form-control smad-depth-kontrahenci" placeholder="1-16" value="" />';
-
 					$formSmadSelectTarget = '<select class="form-control" id="smad-select-target-kontrahenci"><option value="y">tak</option><option value="n">nie</option></select>';
 
-					$formFilterHeadTitle = '<h2 class="title" id="smad-filter-head-title-kontrahenci">Wszyscy</h2>';
+					$formFilterHeadTitle = '<h2 class="title" id="smad-filter-head-title-kontrahenci" style="margin-top:0">Wszyscy</h2>';
 					$countSelectedItem = '<div>Wybrano: <span id="count-selected-item-kontrahenci">0</span> <span><a title="wyczyść zapamietanych kontrahentów"  class="link-primary" onClick="clearListLocalStorageByType(\'kontrahenci\')"><small>(wyczyść)</small></a></span></div>';
 
 					$graphView = '<div class="smad-kontrahenci-graph-view" id="smad-kontrahenci-graph-view" style="display: none;"></div>';
@@ -3002,10 +2967,6 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 					$buttonMoveToGroup .= '<a title="DODAJ WSZYSTKIE DO GRUPY" onClick="addKontrahenciAllToGroup(event)" class="btn btn-info" style="margin-left:12px">DODAJ WSZYSTKIE DO GRUPY</a>';
 					$buttonMoveToGroup .= '<a title="USUN WYBRANE Z GRUPY" onClick="removeKontrahenciFromGroup(event)" class="btn btn-info" style="margin-left:12px">USUŃ WYBRANE Z GRUPY</a>';
 
-					$formSmadReaportTitleInput = '<input type="text" class="form-control smad-reaport-title-kontrahenci" placeholder="Raport bez tytułu z dnia ' .$currentDate .'" value="" />';
-
-					$showButtonNextStep = '';
-
 					$pagination_form = '<div id="pagination-kontrahenci"></div>';
 
 					$acl = ACL::getAclByNamespace("default_db/BI_audit_ENERGA_RUM_KONTRAHENCI/BI_audit_ENERGA_RUM_KONTRAHENCI");
@@ -3020,21 +2981,9 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 				break;
 
 				case 'OPERACYJNA_BAZA_ZGLOSZEN':
-					$groupFilterList = '
-					<div class="menu-item">
-							<ul class="padding-0">
-									<li><a href="#" title="STWÓRZ GRUPĘ" class="btn btn-default" onClick="createGroupKontrahenci(event)" data-color-noactive="">+ STWÓRZ GRUPĘ</a></li>
-							</ul>
-					</div>
-					<div id="group-kontrahenci" class="btn-group">
-							<button class="btn btn-default active" title="Wszyscy" data-group-filter="0">Wszyscy</button>
-					</div>';
-
-					$formSmadDepth = '<input type="text" class="form-control smad-depth-kontrahenci" placeholder="1-16" value="" />';
-
 					$formSmadSelectTarget = '<select class="form-control" id="smad-select-target-kontrahenci"><option value="y">tak</option><option value="n">nie</option></select>';
 
-					$formFilterHeadTitle = '<h2 class="title" id="smad-filter-head-title-kontrahenci">Wszyscy</h2>';
+					$formFilterHeadTitle = '<h2 class="title" id="smad-filter-head-title-kontrahenci" style="margin-top:0">Wszyscy</h2>';
 					$countSelectedItem = '<div>Wybrano: <span id="count-selected-item-kontrahenci">0</span> <span><a title="wyczyść zapamietanych kontrahentów"  class="link-primary" onClick="clearListLocalStorageByType(\'kontrahenci\')"><small>(wyczyść)</small></a></span></div>';
 
 					$graphView = '<div class="smad-kontrahenci-graph-view" style="display: none;"></div>';
@@ -3048,10 +2997,6 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 					$buttonMoveToGroup .= '<a title="DODAJ WSZYSTKIE DO GRUPY" onClick="addKontrahenciAllToGroup(event)" class="btn btn-info" style="margin-left:12px">DODAJ WSZYSTKIE DO GRUPY</a>';
 					$buttonMoveToGroup .= '<a title="USUN WYBRANE Z GRUPY" onClick="removeKontrahenciFromGroup(event)" class="btn btn-info" style="margin-left:12px">USUŃ WYBRANE Z GRUPY</a>';
 
-					$formSmadReaportTitleInput = '<input type="text" class="form-control smad-reaport-title-kontrahenci" placeholder="Raport bez tytułu z dnia ' .$currentDate .'" value="" />';
-
-					$showButtonNextStep = '';
-
 					$pagination_form = '<div id="pagination-kontrahenci"></div>';
 
 					$acl = ACL::getAclByNamespace("default_db/BI_audit_ENERGA_RUM_KONTRAHENCI/BI_audit_ENERGA_RUM_KONTRAHENCI");
@@ -3066,21 +3011,9 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 				break;
 
 				case 'PRACOWNICY':
-					$groupFilterList = '
-					<div class="menu-item">
-							<ul class="padding-0">
-									<li><a href="#" title="STWÓRZ GRUPĘ" class="btn btn-default" onClick="createGroupPracownicy(event)" >+ STWÓRZ GRUPĘ</a></li>
-							</ul>
-					</div>
-					<div id="group-pracownicy" class="btn-group">
-							<button class="btn btn-default active" title="Wszyscy" data-group-filter="0">Wszyscy</button>
-					</div>';
-
-					$formSmadDepth = '<input type="text" class="form-control smad-depth" placeholder="1-16" value="" />';
-
 					$formSmadSelectTarget = '<select class="form-control" id="smad-select-target"><option value="y">tak</option><option value="n">nie</option></select>';
 
-					$formFilterHeadTitle = '<h2 class="title" id="smad-filter-head-title-pracownicy">Wszyscy</h2>';
+					$formFilterHeadTitle = '<h2 class="title" id="smad-filter-head-title-pracownicy" style="margin-top:0">Wszyscy</h2>';
 					$countSelectedItem = '<div>Wybrano: <span id="count-selected-item-pracownicy">0</span> <span><a title="wyczyść zapamietanych pracowników" class="link-primary" onClick="clearListLocalStorageByType(\'pracownicy\')"><small>(wyczyść)</small></a></span></div>';
 
 					$graphView = '<div class="smad-pracownicy-graph-view" id="smad-pracownicy-graph-view" style="display: none;"></div>';
@@ -3094,10 +3027,6 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 					$buttonMoveToGroup .= '<a title="DODAJ WSZYSTKIE DO GRUPY" onClick="addPracownikAllToGroup(event)" class="btn btn-info" style="margin-left:12px">DODAJ WSZYSTKIE DO GRUPY</a>';
 					$buttonMoveToGroup .= '<a title="USUN WYBRANE Z GRUPY" onClick="removePracownikFromGroup(event)" class="btn btn-info" style="margin-left:12px">USUŃ WYBRANE Z GRUPY</a>';
 
-					$showButtonNextStep = '<a href="'.Request::getPathUri().'index.php?_route=UrlAction_Bocian#KONTRAHENCI"  title="DODAJ DO ANALIZY" class="btn btn-primary">DODAJ DO ANALIZY</a>';
-
-					$formSmadReaportTitleInput = '<input type="text" class="form-control smad-reaport-title-pracownicy" placeholder="Raport bez tytułu z dnia ' .$currentDate .'" value="" />';
-
 					$pagination_form = '<div id="pagination-pracownicy"></div>';
 
 					$acl = ACL::getAclByNamespace("default_db/BI_audit_ENERGA_PRACOWNICY/BI_audit_ENERGA_PRACOWNICY");
@@ -3127,88 +3056,48 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 				case 'OPERACYJNA_BAZA_ZGLOSZEN': $outHeaderTitle = 'KONTRAHENCI/PODMIOTY'; break;
 				case 'PRACOWNICY': $outHeaderTitle = 'Pracownicy'; break;
 		}
+		$groupFilterList = '';
+		switch($type) {
+			case 'PRACOWNICY':
+				$groupFilterList .= '
+					<a href="#" title="STWÓRZ GRUPĘ" class="btn btn-default" onClick="createGroupPracownicy(event)" >+ STWÓRZ GRUPĘ</a>
+					<div id="group-pracownicy" class="btn-group" style="margin-left:12px">
+						<button class="btn btn-default active" title="Wszyscy" data-group-filter="0">Wszyscy</button>
+					</div>
+				';
+				break;
+			case 'KONTRAHENCI':
+				$groupFilterList .= '
+					<a href="#" title="STWÓRZ GRUPĘ" class="btn btn-default" onClick="createGroupKontrahenci(event)" data-color-noactive="">+ STWÓRZ GRUPĘ</a>
+					<div id="group-kontrahenci" class="btn-group" style="margin-left:12px">
+							<button class="btn btn-default active" title="Wszyscy" data-group-filter="0">Wszyscy</button>
+					</div>
+				';
+				break;
+			case 'OPERACYJNA_BAZA_ZGLOSZEN':
+				$groupFilterList .= '
+					<a href="#" title="STWÓRZ GRUPĘ" class="btn btn-default" onClick="createGroupKontrahenci(event)" data-color-noactive="">+ STWÓRZ GRUPĘ</a>
+					<div id="group-kontrahenci" class="btn-group" style="margin-left:12px">
+						<button class="btn btn-default active" title="Wszyscy" data-group-filter="0">Wszyscy</button>
+					</div>
+				';
+				break;
+		}
+		$groupFilterList = '
+			<h4 style="margin-top:0; margin-bottom:24px" class="smad-heder-title menu-item"><span class="smad-line-red">|</span> ' . $outHeaderTitle . ' </h4>
+			<div>
+				'.$groupFilterList.'
+			</div>
+		';
+
 
 		$view = '';
 		$view .= '<div id="smad-employees-section" class="smad-form-' . $type . '" >';
-		$view .= '	<div class="container-fluid">';
-		$view .= '		<div id="smad-menu-section">';
-		$view .= '
-										<div class="col-sm-12 col-md-6 padding-lr-0">
-												<div class="menu-items">
-														<div class="smad-heder-title menu-item"><span class="smad-line-red">|</span> ' . $outHeaderTitle . ' </div>
-												</div>
-										</div>
-		';
-		$view .= '			<div class="col-sm-12 col-md-6 padding-lr-0">';
-		$view .= '				<div class="form-steps">';
-		$view .= '					<div class="row smad-wizard" style="border-bottom:0;">';
-		// $view .= '
-		// 	<div class="col-xs-4 col-md-4 smad-wizard-step '.$outStepOdCompleted.'">
-		// 		<div class="text-center smad-wizard-stepnum">&nbsp;</div>
-		// 		<div class="progress"><div class="progress-bar"></div></div>
-		// 		<a href="' . $outLinkOD . '" class="smad-wizard-dot"></a>
-		// 		<div class="smad-wizard-info complete text-center">
-		// 			<div class="step-item"><a href="' . $outLinkOD . '">Pracownicy <span class="top--count-selected-item-pracownicy"></span></a></div>
-		// 		</div>
-		// 	</div>
-		// ';
-		// $view .= '
-		// 	<div class="col-xs-4 col-md-4 smad-wizard-step ' . $outStepDoCompleted . ' ">
-		// 		<div class="text-center smad-wizard-stepnum">&nbsp;</div>
-		// 		<div class="progress"><div class="progress-bar"></div></div>
-		// 		<a href="' . $outLinkDO . '" class="smad-wizard-dot"></a>
-		// 		<div class="smad-wizard-info  text-center">
-		// 			<div class="step-item"><a href="' . $outLinkDO . '">Kontrahenci <span class="top--count-selected-item-kontrahenci"></span></a></div>
-		// 		</div>
-		// 	</div>
-		// ';
-		// $view .= '
-		// 	<div class="col-xs-4 col-md-4 smad-wizard-step ">
-		// 		<div class="text-center smad-wizard-stepnum">&nbsp;</div>
-		// 		<div class="progress"><div class="progress-bar"></div></div>
-		// 		<a href="#" class="smad-wizard-dot"></a>
-		// 		<div class="smad-wizard-info  text-center">
-		// 			<div class="step-item">Szukanie powiązań</div>
-		// 		</div>
-		// 	</div>
-		// ';
-		$view .= '					</div>'; // .smad-wizard
-		$view .= '				</div>'; // .form-steps
-		$view .= '			</div>'; // .col-sm-12 col-md-6 padding-lr-0
-		$view .= '		</div>'; // #smad-menu-section
-		$view .= '	</div>'; // .container-fluid
-		// $view .= '
-		// 		<div class="container-fluid">
-		// 			<div class=" padding-lr-0">
-		// 				<div class="smad-divider"></div>
-		// 			</div>
-		// 		</div>
-		// ';
 		$view .= '
-				<div class="container-fluid">
+				<div class="container-fluid" style="margin-bottom:32px; margin-top:32px">
 					<div class="row">
-						<div>
-							<div class="smad-employees-form-section" class="border-top-grey">
-								<div class="col-md-9 smad-border-col">
-									<div class="menu-items">
-										'.$groupFilterList.'
-									</div>
-								</div>
-							<div class="col-md-3">
-							<div class="form-input">
-								<div class="form-item col-md-7  col-lg-9 smad-heder-title">głębokość powiązań:</div>
-									<div class="form-item col-md-5  col-lg-3">
-										'.$formSmadDepth.'
-									</div>
-								</div>
-								<div class="form-input">
-									<div class="form-item col-md-7  col-lg-9 smad-heder-title">Czy zwracać wyniki tylko ze znalezionymi obiektami docelowymi (DO)?</div>
-										<div class="form-item col-md-5  col-lg-3">
-											'.$formSmadSelectTarget.'
-										</div>
-									</div>
-								</div>
-							</div>
+						<div class="col-md-12">
+							'.$groupFilterList.'
 						</div>
 					</div>
 				</div>
@@ -3260,35 +3149,9 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 
 				<div class="container-fluid smad-employees-bottom-navigation">
 					<div class="padding-0">
-						<div class="col-lg-6 ">
+						<div class="col-md-12">
 								'.$buttonMoveToGroup.'
 						</div>
-						<div class="col-lg-6 text-right">
-							' . $showButtonNextStep . '
-						</div>
-					</div>
-				</div>
-			</div>
-
-			<div class="container-fluid">
-				<div class="row">
-					<div class="container text-center">
-						<div class="col-md-7 col-lg-5"  style="margin:0 auto; float:none">
-							'.$formSmadReaportTitleInput.'
-						</div>
-					</div>
-				</div>
-			</div>
-
-			<div class="container-fluid smad-generate-reaport">
-				<div class="row">
-					<div class="container text-center">
-						<button type="button" class="btn btn-default smad-generate-reaport-button" onclick="generateBiAuditRaport(event)" id="button-generate-reaport" >GENERUJ RAPORT POWIĄZAŃ</button>
-					</div>
-					<div class="container smad-generate-reaport-info text-center">
-						<div class="step-title"><span class="bottom--count-selected-item-kontrahenci"></span></div>
-						<div class="step-title"><span class="bottom--count-selected-item-pracownicy"></span></div>
-						<div><strong><span class="bottom--message-warning-critical-search"></span></strong></div>
 					</div>
 				</div>
 			</div>

+ 171 - 0
tools/Bocian.php.store.js

@@ -0,0 +1,171 @@
+var DBG = DBG || 0;
+var DBG1 = true;
+if (!STORE_NAME) throw "Store name not defined";
+
+var Redux = global.p5VendorJs.Redux;
+var ReduxThunk = global.p5VendorJs.ReduxThunk;
+var createStoreWithThunkMiddleware = Redux.applyMiddleware(ReduxThunk)(Redux.createStore); // TODO: to vendor.js
+
+function getDefaultState() {
+	return {
+		totalOdPracownicy: 0,
+		totalOdPozostale: 0,
+		totalDoKontrahenci: 0,
+		totalDoPozostale: 0,
+		pozostaleOd: [],
+		pozostaleDo: [],
+		depth: 6,
+		onlyTargets: true, // true: "y", false: "n"
+		title: 'Raport bez tytułu z dnia ' + CURRENT_DATE,
+	}
+}
+function getLocalStorageState() {
+	DBG && console.log('DBG: bocian store INIT');
+	var defaultState = getDefaultState();
+	var defaultOnlyTargetsString = defaultState.onlyTargets ? "y" : "n"
+	var pozostaleOd = getListFromLocalStorage(getSelectedListLocalStorageKey('OD'));
+	var pozostaleDo = getListFromLocalStorage(getSelectedListLocalStorageKey('DO'));
+	var pracownicyIds = getListFromLocalStorage('Bocian.biAuditForm.pracownicyIds');
+	var kontrahenciIds = getListFromLocalStorage('Bocian.biAuditForm.kontrahenciIds');
+	return {
+		totalOdPracownicy: pracownicyIds.length,
+		totalOdPozostale: pozostaleOd.length,
+		totalDoKontrahenci: kontrahenciIds.length,
+		totalDoPozostale: pozostaleDo.length,
+		pozostaleOd: pozostaleOd,
+		pozostaleDo: pozostaleDo,
+		depth: getSignedIntFromLocalStorage('Bocian.biAuditForm.depth', defaultState.depth),
+		onlyTargets: "n" === getStringFromLocalStorage('Bocian.biAuditForm.analizaOnlyTargets', defaultOnlyTargetsString) ? false : true,
+		title: getStringFromLocalStorage('Bocian.biAuditForm.smadReaportTitle', defaultState.title),
+	}
+}
+
+
+function bocianRaportStore(state, action) {
+	var prevState = state || getLocalStorageState();
+	DBG && console.warn('DBG: bocian store', { prevState, action, actionType: action.type });
+	switch (action.type) {
+		case 'UPDATE': return Object.assign(prevState, {
+			totalOdPracownicy: action.totalOdPracownicy,
+			totalDoKontrahenci: action.totalDoKontrahenci,
+		});
+		case 'ADD_OD': {
+			var listPozostaleOd = prevState.pozostaleOd.concat(action.featureKey);
+			localStorage.setItem(getSelectedListLocalStorageKey('OD'), JSON.stringify(listPozostaleOd))
+			return Object.assign(prevState, {
+				pozostaleOd: listPozostaleOd,
+				totalOdPozostale: listPozostaleOd.length,
+			})
+		}
+		case 'ADD_DO': {
+			var listPozostaleDo = prevState.pozostaleDo.concat(action.featureKey);
+			localStorage.setItem(getSelectedListLocalStorageKey('DO'), JSON.stringify(listPozostaleDo))
+			return Object.assign(prevState, {
+				pozostaleDo: listPozostaleDo,
+				totalDoPozostale: listPozostaleDo.length,
+			})
+		}
+		case 'RM_OD': {
+			var featureKey = action.featureKey;
+			var listPozostaleOd = prevState.pozostaleOd.filter(function (item) {
+				return ( item !== featureKey );
+			})
+			localStorage.setItem(getSelectedListLocalStorageKey('OD'), JSON.stringify(listPozostaleOd))
+			return Object.assign(prevState, {
+				pozostaleOd: listPozostaleOd,
+				totalOdPozostale: listPozostaleOd.length,
+			})
+		}
+		case 'RM_DO': {
+			var featureKey = action.featureKey;
+			var listPozostaleDo = prevState.pozostaleDo.filter(function (item) {
+				return ( item !== featureKey );
+			})
+			localStorage.setItem(getSelectedListLocalStorageKey('DO'), JSON.stringify(listPozostaleDo))
+			return Object.assign(prevState, {
+				pozostaleDo: listPozostaleDo,
+				totalDoPozostale: listPozostaleDo.length,
+			})
+		}
+		case 'CLEAR_POZOSTALE_OD': {
+			localStorage.setItem(getSelectedListLocalStorageKey('OD'), JSON.stringify([]))
+			return Object.assign(prevState, {
+				pozostaleOd: [],
+				totalOdPozostale: 0,
+			})
+		}
+		case 'CLEAR_POZOSTALE_DO': {
+			localStorage.setItem(getSelectedListLocalStorageKey('DO'), JSON.stringify([]))
+			return Object.assign(prevState, {
+				pozostaleDo: [],
+				totalDoPozostale: 0,
+			})
+		}
+		case 'SET_DEPTH': {
+			localStorage.setItem('Bocian.biAuditForm.depth', action.depth)
+			return Object.assign(prevState, {
+				depth: action.depth,
+			})
+		}
+		case 'SET_ONLY_TARGETS': {
+			localStorage.setItem('Bocian.biAuditForm.analizaOnlyTargets', action.onlyTargets ? '"y"' : '"n"')
+			return Object.assign(prevState, {
+				onlyTargets: action.onlyTargets,
+			})
+		}
+		case 'SET_TITLE': {
+			localStorage.setItem('Bocian.biAuditForm.smadReaportTitle', '"' + action.title + '"')
+			return Object.assign(prevState, {
+				title: action.title,
+			})
+		}
+		case 'CLEAR_ALL': {
+			var defaultState = getDefaultState();
+			var defaultOnlyTargetsString = defaultState.onlyTargets ? "y" : "n"
+			setItemLocalStorage('Bocian.biAuditForm.pracownicyIds', []);
+			setItemLocalStorage('Bocian.biAuditForm.kontrahenciIds', []);
+			setItemLocalStorage(getSelectedListLocalStorageKey('OD'), []);
+			setItemLocalStorage(getSelectedListLocalStorageKey('DO'), []);
+			setItemLocalStorage('Bocian.biAuditForm.pracownicy.filterIdGroup', 0);
+			setItemLocalStorage('Bocian.biAuditForm.kontrahenci.filterIdGroup', 0);
+			setItemLocalStorage('Bocian.biAuditForm.pracownicy.pagination.page', 1);
+			setItemLocalStorage('Bocian.biAuditForm.kontrahenci.pagination.page', 1);
+			setItemLocalStorage('Bocian.biAuditForm.analizaOnlyTargets', defaultOnlyTargetsString);
+			setItemLocalStorage('Bocian.biAuditForm.depth', defaultState.depth);
+			setItemLocalStorage('Bocian.biAuditForm.smadReaportTitle', defaultState.title);
+			return Object.assign(prevState, defaultState)
+		}
+		default: return prevState;
+	}
+}
+
+
+function getSelectedListLocalStorageKey(from) { // from: ( OD | DO )
+	switch (from) {
+		case 'OD': return 'Bocian.biAuditForm.odFeatureKeys';
+		case 'DO': return 'Bocian.biAuditForm.doFeatureKeys';
+		default: throw "Not implemented from selected list '" + from + "' - expected 'OD' or 'DO'";
+	}
+}
+function getListFromLocalStorage(key) {
+	return JSON.parse( localStorage.getItem(key) || '[]' );
+}
+function getSignedIntFromLocalStorage(key, defaultValue) {
+	return JSON.parse( localStorage.getItem(key) || defaultValue );
+}
+function getStringFromLocalStorage(key, defaultValue) {
+	var value = localStorage.getItem(key);
+	value = (value) ? JSON.parse(value) : '';
+	return (value) ? value : defaultValue;
+}
+
+function setItemLocalStorage(key, value) {
+	localStorage.setItem( key, JSON.stringify(value) );
+}
+function getItemLocalStorage(key) {
+	return JSON.parse( localStorage.getItem(key) );
+}
+
+
+global[STORE_NAME] = createStoreWithThunkMiddleware(bocianRaportStore);
+global[STORE_NAME + '__defaults'] = getDefaultState;

+ 268 - 492
tools/Bocian.php.view.js

@@ -1,7 +1,8 @@
 var DBG = DBG || 0;
 var DBG1 = true;
 var CURRENT_DATE = CURRENT_DATE || '';
-var STORE_NAME = STORE_NAME || '_bocianRaportStore';
+if (!STORE_NAME) throw "Store name not defined";
+if (!global[STORE_NAME]) throw "Store not defined";
 
 if (!URL_TABLE_POWIAZANIA) throw "Brak URL_TABLE_POWIAZANIA";
 if (!BASE_URLS) throw "Brak BASE_URLS"
@@ -13,11 +14,8 @@ if (!FIELD_LIST_KONTRAHENCI) throw "Brak FIELD_LIST_KONTRAHENCI"
 var createReactClass = global.p5VendorJs.createReactClass;
 var h = global.p5VendorJs.React.createElement;
 var ReactDOM = global.p5VendorJs.ReactDOM;
-var Redux = global.p5VendorJs.Redux;
-var ReduxThunk = global.p5VendorJs.ReduxThunk;
-var createStoreWithThunkMiddleware = Redux.applyMiddleware(ReduxThunk)(Redux.createStore); // TODO: to vendor.js
 var swal = window.swal;
-var globalRaportStore; // global store with Raport cunters
+var globalRaportStore = global[STORE_NAME];
 
 var P5UI__BocianHeader = createReactClass({
 	getStateFromStore: function () {
@@ -27,6 +25,9 @@ var P5UI__BocianHeader = createReactClass({
 			totalOdPozostale: storeState.totalOdPozostale,
 			totalDoKontrahenci: storeState.totalDoKontrahenci,
 			totalDoPozostale: storeState.totalDoPozostale,
+			depth: storeState.depth,
+			onlyTargets: storeState.onlyTargets,
+			title: storeState.title,
 		};
 	},
 	getInitialState: function() {
@@ -56,9 +57,130 @@ var P5UI__BocianHeader = createReactClass({
 	clearPozostaleDo: function (event) {
 		this.props.store.dispatch({ type: 'CLEAR_POZOSTALE_DO' })
 	},
+	handleChangeDepth: function (event) {
+		var store = this.props.store;
+		var depth = event.target.value;
+		store.dispatch({ type: 'SET_DEPTH', depth: depth })
+	},
+	handleChangeSetOnlyTargetsYes: function () {
+		this.props.store.dispatch({ type: 'SET_ONLY_TARGETS', onlyTargets: true })
+	},
+	handleChangeSetOnlyTargetsNo: function () {
+		this.props.store.dispatch({ type: 'SET_ONLY_TARGETS', onlyTargets: false })
+	},
+	handleChangeTitle: function (event) {
+		this.props.store.dispatch({ type: 'SET_TITLE', title: event.target.value })
+	},
+	handleRaportSubmitForm: function (event) {
+		event.preventDefault();
+		var self_store = this.props.store;
+
+		var idsPracownicy = getListFromLocalStorage('Bocian.biAuditForm.pracownicyIds');
+		var idsKontrahenci = getListFromLocalStorage('Bocian.biAuditForm.kontrahenciIds');
+		var pozostaleOd = getListFromLocalStorage(getSelectedListLocalStorageKey('OD'));
+		var pozostaleDo = getListFromLocalStorage(getSelectedListLocalStorageKey('DO'));
+		var allOdLength = idsPracownicy.length + pozostaleOd.length;
+		var allDoLength = idsKontrahenci.length + pozostaleDo.length;
+		var depthValue = getItemLocalStorage('Bocian.biAuditForm.depth');
+		var smadReaportTitle = getItemLocalStorage('Bocian.biAuditForm.smadReaportTitle');
+		var analizaOnlyTargets = getItemLocalStorage('Bocian.biAuditForm.analizaOnlyTargets');
+
+		if ( !smadReaportTitle ) {
+			p5UI__notifyAjaxCallback({ type: 'error', msg: 'Nie podano tytułu raportu' });
+			return;
+		}
+		if ( !depthValue ) {
+			p5UI__notifyAjaxCallback({ type: 'error', msg: 'Nie podano wartości dla głębokości powiązań' });
+			return;
+		}
+		if ( !analizaOnlyTargets ) {
+			p5UI__notifyAjaxCallback({ type: 'error', msg: 'Nie podano wartości czy zwracać wyniki tylko z obiektami docelowymi' });
+			return;
+		}
+		if ( !allOdLength ) {
+			p5UI__notifyAjaxCallback({ type: 'error', msg: 'Nie wybrano pozycji OD do analizy (pracownicy lub pozostałe bazy)' });
+			return;
+		}
+		if ( !allOdLength && !allDoLength ) {
+			p5UI__notifyAjaxCallback({ type: 'error', msg: 'Nie wybrano pozycji do analizy' });
+			return;
+		}
+
+		// TODO: analizaOnlyTargets = ( 'y' | 'n' ) - allDoLength should depend of analizaOnlyTargets?
+
+		// if not choise 'pracownicy' or 'kontrahenci'
+		if ( !allOdLength || !allDoLength ) {
+			var messageConfirm = '';
+			if ( !allDoLength )  {
+				messageConfirm = 'Nie wybrano podmiotów/kontrahentów! Czas przygotowania raportu może wydłużyć się ze względu na sprawdzenie powiązania ze wszystkimi podmiotami/kontrahentami w systemie. Czy jesteś pewny? ';
+			}
+
+			// show confirm window with message
+			if (!confirm(messageConfirm)) return;
+		}
+
+		window.fetch(URL_GENERATE_BI_AUDIT_RAPORT_AJAX, {
+			method: 'POST',
+			headers: { 'Content-Type': 'application/json' },
+			credentials: 'same-origin',
+			body: JSON.stringify({
+				pracownicyIds: idsPracownicy,
+				kontrahenciIds: idsKontrahenci,
+				pozostaleOd: pozostaleOd,
+				pozostaleDo: pozostaleDo,
+				depthValue: depthValue,
+				smadReaportTitle: smadReaportTitle,
+				analizaOnlyTargets: analizaOnlyTargets
+		  })
+		})
+		.then(function(response) {
+			return response.text();
+		})
+		.then(function(responseText) {
+			try {
+				return JSON.parse(responseText);
+			} catch (e) {
+				throw responseText;
+			}
+		})
+		.then(function(result) {
+			if (result.type == 'success') {
+				p5UI__notifyAjaxCallback(result);
+				self_store.dispatch({ type: 'CLEAR_ALL' })
+				// defaultBIAuditLocalStorage();
+				updateTopCounters();
+				$('#smad-table-PRACOWNICY form').find(':checkbox').prop('checked', false);
+				$('#smad-table-KONTRAHENCI form').find(':checkbox').prop('checked', false);
+				$('#count-selected-item-kontrahenci').text('0');
+				$('#count-selected-item-pracownicy').text('0');
+				$('.bottom--message-warning-critical-search').text('');
+				swal({
+					title: result.msg,
+					html: '<a href="' + URL_TABLE_POWIAZANIA + '" title="przejdź do raportów" >Przejdź do raportów</a>',
+					allowOutsideClick: false, // TODO: btn Anuluj na dole?
+					showCloseButton: true,
+					confirmButtonText: 'OK',
+				});
+				window.setTimeout(function () {
+					console.warn("URL_TABLE_POWIAZANIA:", URL_TABLE_POWIAZANIA);
+				}, 100);
+				window.setTimeout(function () {
+					window.location.href = URL_TABLE_POWIAZANIA;
+				}, 6000);
+				resolve(result.msg);
+			} else {
+				if (result.type && result.msg) p5UI__notifyAjaxCallback(result);
+				reject(result.msg);
+			}
+		})
+		.catch(function(error) {
+			if(DBG) console.log('request failed', error);
+		});
+	},
+
 	renderClearPozostaleOdBtn: function () {
 		return h('i', {
-			title: "Usuń pozostałe",
+			title: "Wyczyść pozostałe",
 			className: "glyphicon glyphicon-remove",
 			style: { 'font-size': '14px', 'line-height': '21px', 'margin-left': '3px', 'vertical-align': 'middle', color: "#f00", opacity: "0.5", cursor: "pointer" },
 			onClick: this.clearPozostaleOd, 'line-height': '20px'
@@ -66,91 +188,142 @@ var P5UI__BocianHeader = createReactClass({
 	},
 	renderClearPozostaleDoBtn: function () {
 		return h('i', {
-			title: "Usuń pozostałe",
+			title: "Wyczyść pozostałe",
 			className: "glyphicon glyphicon-remove",
 			style: { 'font-size': '14px', 'line-height': '21px', 'margin-left': '3px', 'vertical-align': 'middle', color: "#f00", opacity: "0.5", cursor: "pointer" },
 			onClick: this.clearPozostaleDo, 'line-height': '20px'
 		});
 	},
+	renderSummaryList: function () {
+		var totalOd = this.state.totalOdPracownicy + this.state.totalOdPozostale;
+		var totalDo = this.state.totalDoKontrahenci + this.state.totalDoPozostale;
+		return h('ul', {}, [
+			h('li', { style: { marginTop: "6px" } }, [
+				h('span', {
+					style: totalOd > 0 ? { color: "#d7142d" } : {}
+				}, [
+					" OD ",
+					h('span', { className: "badge", style: totalOd > 0 ? { 'background-color': "#d7142d" } : {} }, totalOd),
+					" : ",
+				]),
+				h('a', { className: "btn btn-link", style: { padding: "6px" }, href: "#PRACOWNICY" }, [ // .bi-btn-primary
+					" pracownicy ",
+					h('span', { className: "badge" }, this.state.totalOdPracownicy),
+				]),
+				h('i', { className: "glyphicon glyphicon-plus", style: { 'font-size': "14px", margin: "0 12px" } }),
+				h('button', { className: "btn btn-link", style: { padding: "6px" }, onClick: this.addOdPozostale }, [ // .bi-btn-primary
+					" pozostałe ",
+					h('span', { className: "badge" }, this.state.totalOdPozostale),
+				]),
+				(this.state.totalOdPozostale > 0) ? this.renderClearPozostaleOdBtn() : null,
+			]),
+			h('li', { style: { marginTop: "6px" } }, [
+				h('span', {
+					style: totalDo > 0 ? { color: "#d7142d" } : {}
+				}, [
+					" DO ",
+					h('span', { className: "badge", style: totalDo > 0 ? { 'background-color': "#d7142d" } : {} }, totalDo),
+					" : ",
+				]),
+				h('a', { className: "btn btn-link", style: { padding: "6px" }, href: "#KONTRAHENCI" }, [ // .bi-btn-primary
+					" kontrahenci ",
+					h('span', { className: "badge" }, this.state.totalDoKontrahenci),
+				]),
+				h('i', { className: "glyphicon glyphicon-plus", style: { 'font-size': "14px", margin: "0 12px" } }),
+				h('button', { className: "btn btn-link", style: { padding: "6px" }, onClick: this.addOdPozostale }, [ // .bi-btn-primary
+					" pozostałe ",
+					h('span', { className: "badge" }, this.state.totalDoPozostale),
+				]),
+				(this.state.totalDoPozostale > 0) ? this.renderClearPozostaleDoBtn() : null,
+			]),
+		]);
+	},
+	renderRaportParamsForm: function () {
+		var depth = parseInt(this.state.depth);
+		var isDepthValid = ( !isNaN(depth) && depth >= 1 && depth <= 16 );
+		var onlyTargets = this.state.onlyTargets;
+		return h('div', {}, [
+			h('div', { className: "row" + ( isDepthValid ? "" : " has-error" ), style: { 'margin-bottom': "12px" } }, [
+				h('div', { className: "form-item col-md-7 col-lg-9 smad-heder-title", style: { 'font-size': "14px", 'text-align': "right", 'padding-top': "5px", 'padding-bottom': "0" } }, [
+					"głębokość powiązań: ",
+				]),
+				h('div', { className: "form-item col-md-5 col-lg-3" }, [
+					h('input', { type: "number", className: "form-control", placeholder: "1-16", value: this.state.depth, onChange: this.handleChangeDepth, min: 1, max: 16 }),
+				]),
+			]),
+			h('div', { className: "row", style: { 'margin-bottom': "12px" } }, [
+				h('div', { className: "form-item col-md-7 col-lg-9 smad-heder-title", style: { 'font-size': "14px", 'text-align': "right", 'padding-top': "5px", 'padding-bottom': "0" } }, [
+					"Czy zwracać wyniki tylko ze znalezionymi obiektami docelowymi (DO)? ",
+				]),
+				h('div', { className: "form-item col-md-5 col-lg-3" }, [
+					h('div', { className: "btn-group" }, [
+						h('div', { className: "btn btn-default" + ( onlyTargets ? " active" : "" ), style: { padding: "6px 12px" }, onClick: this.handleChangeSetOnlyTargetsYes }, "TAK"),
+						h('div', { className: "btn btn-default" + ( onlyTargets ? "" : " active" ), style: { padding: "6px 12px" }, onClick: this.handleChangeSetOnlyTargetsNo }, "NIE"),
+					]),
+				]),
+			]),
+			h('div', { className: "row", style: { 'margin-bottom': "12px" } }, [
+				h('div', { className: "form-item col-md-3 col-lg-3", style: { 'font-size': "14px", 'text-align': "right", 'padding-top': "5px", 'padding-bottom': "0" } }, [
+					"Tytuł:",
+				]),
+				h('div', { className: "form-item col-md-9 col-lg-9" }, [
+					h('input', { type: "text", className: "form-control", placeholder: 'Raport bez tytułu z dnia ' + CURRENT_DATE, value: this.state.title, onChange: this.handleChangeTitle }),
+				]),
+			]),
+		]);
+	},
+	renderRaportFormSubmitBtn: function () {
+		var totalOd = this.state.totalOdPracownicy + this.state.totalOdPozostale;
+		var totalDo = this.state.totalDoKontrahenci + this.state.totalDoPozostale;
+		var isFormValid = (totalOd || totalDo);
+		return h('div', { className: "row", style: { padding: "0", 'margin-bottom': "0", 'text-align': "right" } }, [
+			h('div', { className: "form-item col-md-12 col-lg-12" }, [
+				h('button', {
+					type: "button",
+					className: "btn btn-default" + ( isFormValid ? "" : " disabled" ),
+					onClick: this.handleRaportSubmitForm,
+					style: { padding: "18px 42px", 'font-size': "18px", 'font-weight': "900" }
+				}, "GENERUJ RAPORT POWIĄZAŃ"),
+			]),
+		]);
+	},
 	render: function () {
 		DBG && console.log('DBG::P5UI__BocianHeader::render ', { state: this.state });
 		var totalOd = this.state.totalOdPracownicy + this.state.totalOdPozostale;
 		var totalDo = this.state.totalDoKontrahenci + this.state.totalDoPozostale;
+		var depth = this.state.depth;
+		var errorMsg = (depth > 16) ? "Maksymalna głębokość powiązań to 16!" : "";
+		var warningMsg = ( ( !totalOd || !totalDo ) && depth > 6 ) ? "Krytyczne wielkości danych do przeszukania. Optymalna głębokość szukania powiaząń to: 6" : "";
 		return h('div', { className: "container-fluid", style: { backgroundColor: "#efefef" } }, [
-			h('h3', {}, [
-				h('span', { style: { fontSize: "120%", color: "#d7142d" } }, "|"),
-				" Tworzenie nowego raportu ",
-				h('small', {}, [
-					"(Wybierz elementy do porównania: ",
-					h('span', { style: { color: "#d7142d" } }, " OD "),
-					h('i', { className: "glyphicon glyphicon-random", style: { padding: '0 3px', 'font-size': "80%", color: "#d7142d" } }),
-					h('span', { style: { color: "#d7142d" } }, " DO "),
-					")",
-				])
-			]),
 			h('div', { style: { fontSize: '16px', fontWeight: "normal", color: "#777" } }, [
-				"Wybrano:",
-				h('ul', {}, [
-					// h('li', { style: { marginTop: "6px" } }, [
-					// 	h('div', { className: "btn-group" }, [
-					// 		h('button', { type: "button", className: "btn btn-disabled btn-danger bi-btn-disabled-group-label", style: { padding: "6px 12px" } }, [
-					// 			" OD ",
-					// 			h('span', { className: "badge" }, totalOd),
-					// 			" : "
-					// 		]),
-					// 		h('button', { type: "button", className: "btn bi-btn-primary" }, [
-					// 			" pracownicy ",
-					// 			h('span', { className: "badge" }, this.state.totalOdPracownicy),
-					// 		]),
-					// 		h('button', { type: "button", className: "btn btn-disabled btn-danger bi-btn-disabled-group-label", style: { 'font-size': "14px", padding: "6px 12px" } }, [
-					// 			h('i', { className: "glyphicon glyphicon-plus" }),
-					// 		]),
-					// 		h('button', { type: "button", className: "btn bi-btn-primary" }, [
-					// 			" pozostałe ",
-					// 			h('span', { className: "badge" }, this.state.totalOdPozostale),
-					// 			(this.state.totalOdPozostale > 0) ? this.renderClearPozostaleOdBtn() : null,
-					// 		]),
-					// 	]),
-					// ]),
-					h('li', { style: { marginTop: "6px" } }, [
-						h('span', {
-							style: totalOd > 0 ? { color: "#d7142d" } : {}
-						}, [
-							" OD ",
-							h('span', { className: "badge", style: totalOd > 0 ? { 'background-color': "#d7142d" } : {} }, totalOd),
-							" : ",
+				h('div', { className: "row" }, [
+					h('div', { className: "col-md-6" }, [
+						h('h3', { style: { color: "#000" } }, [
+							h('span', { style: { fontSize: "120%", color: "#d7142d" } }, "|"),
+							" Tworzenie nowego raportu ",
+							h('br'),
+							h('small', {}, [
+								"(Wybierz elementy do porównania: ",
+								h('span', { style: { color: "#d7142d" } }, " OD "),
+								h('i', { className: "glyphicon glyphicon-random", style: { padding: '0 3px', 'font-size': "80%", color: "#000" } }),
+								h('span', { style: { color: "#d7142d" } }, " DO"),
+								")",
+							])
 						]),
-						h('a', { className: "btn btn-link", style: { padding: "6px" }, href: "#PRACOWNICY" }, [ // .bi-btn-primary
-							" pracownicy ",
-							h('span', { className: "badge" }, this.state.totalOdPracownicy),
-						]),
-						h('i', { className: "glyphicon glyphicon-plus", style: { 'font-size': "14px", margin: "0 12px" } }),
-						h('button', { className: "btn btn-link", style: { padding: "6px" }, onClick: this.addOdPozostale }, [ // .bi-btn-primary
-							" pozostałe ",
-							h('span', { className: "badge" }, this.state.totalOdPozostale),
-						]),
-						(this.state.totalOdPozostale > 0) ? this.renderClearPozostaleOdBtn() : null,
+						"Wybrano:",
+						this.renderSummaryList(),
 					]),
-					h('li', { style: { marginTop: "6px" } }, [
-						h('span', {
-							style: totalDo > 0 ? { color: "#d7142d" } : {}
-						}, [
-							" OD ",
-							h('span', { className: "badge", style: totalDo > 0 ? { 'background-color': "#d7142d" } : {} }, totalDo),
-							" : ",
-						]),
-						h('a', { className: "btn btn-link", style: { padding: "6px" }, href: "#KONTRAHENCI" }, [ // .bi-btn-primary
-							" kontrahenci ",
-							h('span', { className: "badge" }, this.state.totalDoKontrahenci),
-						]),
-						h('i', { className: "glyphicon glyphicon-plus", style: { 'font-size': "14px", margin: "0 12px" } }),
-						h('button', { className: "btn btn-link", style: { padding: "6px" }, onClick: this.addOdPozostale }, [ // .bi-btn-primary
-							" pozostałe ",
-							h('span', { className: "badge" }, this.state.totalDoPozostale),
-						]),
-						(this.state.totalDoPozostale > 0) ? this.renderClearPozostaleDoBtn() : null,
+					h('div', { className: "col-md-6", style: { 'padding-top': "20px", 'padding-bottom': "20px" } }, [
+						this.renderRaportParamsForm(),
+						this.renderRaportFormSubmitBtn(),
+					]),
+				]),
+				h('div', { className: "row" }, [
+					h('div', { className: "col-md-8 col-md-offset-2 col-xs-12" }, [
+						errorMsg ? h('div', { className: "alert alert-danger" }, errorMsg) : null,
+						warningMsg ? h('div', { className: "alert alert-warning" }, warningMsg) : null,
 					]),
-				])
+				]),
 			])
 		])
 	}
@@ -166,6 +339,14 @@ function getSelectedListLocalStorageKey(from) { // from: ( OD | DO )
 function getListFromLocalStorage(key) {
   return JSON.parse( localStorage.getItem(key) || '[]' );
 }
+function getSignedIntFromLocalStorage(key, defaultValue) {
+  return JSON.parse( localStorage.getItem(key) || defaultValue );
+}
+function getStringFromLocalStorage(key, defaultValue) {
+	var value = localStorage.getItem(key);
+	value = (value) ? JSON.parse(value) : '';
+	return (value) ? value : defaultValue;
+}
 // function saveToSelectedListInLocalStorage(from, featureKey) {
 //   DBG && console.log("DBG::saveToSelectedListInLocalStorage(from, featureKey)", {from, featureKey}, {added: getSelectedListFromLocalStorage(from).concat(featureKey)});
 //   localStorage.setItem(getSelectedListLocalStorageKey(from), JSON.stringify(
@@ -181,93 +362,6 @@ function getListFromLocalStorage(key) {
 //   ))
 // }
 
-function bocianRaportStore(state, action) {
-	var prevState = state;
-	if (!prevState) {
-		var pozostaleOd = getListFromLocalStorage(getSelectedListLocalStorageKey('OD'));
-		var pozostaleDo = getListFromLocalStorage(getSelectedListLocalStorageKey('DO'));
-		var pracownicyIds = getListFromLocalStorage('Bocian.biAuditForm.pracownicyIds');
-		var kontrahenciIds = getListFromLocalStorage('Bocian.biAuditForm.kontrahenciIds');
-		prevState = {
-			totalOdPracownicy: pracownicyIds.length,
-			totalOdPozostale: pozostaleOd.length,
-			totalDoKontrahenci: kontrahenciIds.length,
-			totalDoPozostale: pozostaleDo.length,
-			pozostaleOd: pozostaleOd,
-			pozostaleDo: pozostaleDo,
-		};
-		DBG && console.log('DBG: bocian store INIT', { prevState, action });
-	}
-	DBG && console.log('DBG: bocian store', { prevState, action });
-	switch (action.type) {
-		case 'UPDATE': return Object.assign(prevState, {
-			totalOdPracownicy: action.totalOdPracownicy,
-			totalDoKontrahenci: action.totalDoKontrahenci,
-		});
-		case 'ADD_OD': {
-			var listPozostaleOd = prevState.pozostaleOd.concat(action.featureKey);
-			localStorage.setItem(getSelectedListLocalStorageKey('OD'), JSON.stringify(listPozostaleOd))
-			return Object.assign(prevState, {
-				pozostaleOd: listPozostaleOd,
-				totalOdPozostale: listPozostaleOd.length,
-			})
-		}
-		case 'ADD_DO': {
-			var listPozostaleDo = prevState.pozostaleDo.concat(action.featureKey);
-			localStorage.setItem(getSelectedListLocalStorageKey('DO'), JSON.stringify(listPozostaleDo))
-			return Object.assign(prevState, {
-				pozostaleDo: listPozostaleDo,
-				totalDoPozostale: listPozostaleDo.length,
-			})
-		}
-		case 'RM_OD': {
-			var featureKey = action.featureKey;
-			var listPozostaleOd = prevState.pozostaleOd.filter(function (item) {
-				return ( item !== featureKey );
-			})
-			localStorage.setItem(getSelectedListLocalStorageKey('OD'), JSON.stringify(listPozostaleOd))
-			return Object.assign(prevState, {
-				pozostaleOd: listPozostaleOd,
-				totalOdPozostale: listPozostaleOd.length,
-			})
-		}
-		case 'RM_DO': {
-			var featureKey = action.featureKey;
-			var listPozostaleDo = prevState.pozostaleDo.filter(function (item) {
-				return ( item !== featureKey );
-			})
-			localStorage.setItem(getSelectedListLocalStorageKey('DO'), JSON.stringify(listPozostaleDo))
-			return Object.assign(prevState, {
-				pozostaleDo: listPozostaleDo,
-				totalDoPozostale: listPozostaleDo.length,
-			})
-		}
-		case 'CLEAR_POZOSTALE_OD': {
-			localStorage.setItem(getSelectedListLocalStorageKey('OD'), JSON.stringify([]))
-			return Object.assign(prevState, {
-				pozostaleOd: [],
-				totalOdPozostale: 0,
-			})
-		}
-		case 'CLEAR_POZOSTALE_DO': {
-			localStorage.setItem(getSelectedListLocalStorageKey('DO'), JSON.stringify([]))
-			return Object.assign(prevState, {
-				pozostaleDo: [],
-				totalDoPozostale: 0,
-			})
-		}
-		default: return prevState;
-	}
-}
-
-
-$(window).on('hashchange', function() {
-	initLocalStorage();
-	rootChangeForm();
-	updateTopCounters();
-	hideMoreRecordFunctionsPopover()
-});
-
 
 /* DATA FOR READ REAPORT */
 
@@ -296,124 +390,6 @@ function urlFetchKontrahenciPowiazania() {
 
 
 /* FORM DATA FOR GENERATAE REAPORT */
-/**
- * Load data default title reaport in storage
- */
-function loadCurrentReaportTitleInInput(idInput) {
-  var reaportTitleValue = getItemLocalStorage("Bocian.biAuditForm.smadReaportTitle");
-	var currentDate = CURRENT_DATE;
-  if ( getItemLocalStorage('Bocian.biAuditForm.smadReaportTitle') === null ) {
-    reaportTitleValue = setItemLocalStorage('Bocian.biAuditForm.smadReaportTitle', 'Raport bez tytułu z dnia ' + currentDate);
-  }
-
-  $(idInput).val(function() {
-     return reaportTitleValue;
-  });
-}
-
-/**
- * Update data title reaport in storage from input
- */
-function updateLocalStorageBiAuditReaportTitle(idInput) {
-  $(idInput).keyup(function() {
-    delayUpdate(function(){
-      var newValue = $(idInput).val();
-      setItemLocalStorage('Bocian.biAuditForm.smadReaportTitle', newValue);
-      loadCurrentReaportTitleInInput('.smad-reaport-title-pracownicy');
-      loadCurrentReaportTitleInInput('.smad-reaport-title-kontrahenci');
-    }, 1000 );
-  });
-}
-
-/**
- * Load data default depth in storage
- */
-function loadCurrentDepthInInput(idInput) {
-  var depthValue = getItemLocalStorage('Bocian.biAuditForm.depth');
-
-   $(idInput).val(function() {
-       return depthValue;
-   });
-}
-
-/**
- * Update data default depth in storage
- */
-function updateLocalStorageBiAuditDepth(idInput) {
-  $(idInput).keyup(function() {
-    delayUpdate(function(){
-      var newValue = $(idInput).val();
-      var responseValue = validateValueDepth(parseInt(newValue));
-
-      setItemLocalStorage('Bocian.biAuditForm.depth', responseValue);
-      loadCurrentDepthInInput('.smad-depth');
-			loadCurrentDepthInInput('.smad-depth-kontrahenci');
-
-			// check depth value
-			if ( parseInt(newValue) > 6 ) {
-				// check count praconwicy/kontrahenci
-					var formItemsPraconwicyKontrahenci = countChoiseItemsPraconwicyKontrahenci();
-
-				// disable button generate reaport if not choise 'praconwicy' or 'kontrahenci'
-					if (
-						(formItemsPraconwicyKontrahenci.totalPracownicy === 0 && formItemsPraconwicyKontrahenci.totalKontrahenci != 0 ) ||
-						(formItemsPraconwicyKontrahenci.totalPracownicy != 0 && formItemsPraconwicyKontrahenci.totalKontrahenci === 0 )
-					) {
-						p5UI__notifyAjaxCallback({ type: 'error', msg: messageCriticalSearchData });
-
-						$('.bottom--message-warning-critical-search').text(messageCriticalSearchData);
-
-						if(DBG) console.log('popup i dodanie komunikatu niżej');
-
-					} else {
-						$('.bottom--message-warning-critical-search').text('');
-						if(DBG) console.log('popup i dodanie wyczysc komunikatu ');
-					}
-			}
-
-    }, 1000 );
-
-  });
-}
-
-function validateValueDepth(newValue) {
-  var value = null;
-  value = newValue;
-
-  if (parseInt(newValue) < 0) {
-      value = 1;
-  }
-
-  if (parseInt(newValue) > 16) {
-    value = 16;
-  }
-
-  return value;
-}
-
-var delayUpdate = (function() {
-  var timer = 0;
-  return function(callback, ms) {
-  clearTimeout (timer);
-  timer = setTimeout(callback, ms);
- };
-})();
-
-/**
- * Check count choise pracownicy/kontrahenci
- */
-function countChoiseItemsPraconwicyKontrahenci() {
-	var countPracownicy = getItemLocalStorage('Bocian.biAuditForm.pracownicyIds');
-	var countKontrahenci = getItemLocalStorage('Bocian.biAuditForm.kontrahenciIds');
-
-	var formItems = {
-		'totalPracownicy': ((countPracownicy) ? Object.keys(countPracownicy).length : 0),
-		'totalKontrahenci': ((countKontrahenci) ? Object.keys(countKontrahenci).length : 0)
-	};
-
-	return formItems;
-}
-
 /**
  * Załadowanie  wybranej pozycji w select  czy zwracać wyniki tylko z obiektami docelowymi onlyTarget
  */
@@ -442,31 +418,6 @@ function updateLocalStorageBiAuditOnlyTargets(idSelect) {
   });
 }
 
-function initLocalStorage() {
-
-	if (getItemLocalStorage('Bocian.biAuditForm.pracownicyIds') === null) {
-		 setItemLocalStorage('Bocian.biAuditForm.pracownicyIds', []);
-	}
-
-	if (getItemLocalStorage('Bocian.biAuditForm.kontrahenciIds') === null) {
-		 setItemLocalStorage('Bocian.biAuditForm.kontrahenciIds', []);
-	}
-
-	setItemLocalStorage('Bocian.biAuditForm.pracownicy.filterIdGroup', 0);
-	setItemLocalStorage('Bocian.biAuditForm.kontrahenci.filterIdGroup', 0);
-
-	if (getItemLocalStorage('Bocian.biAuditForm.depth') === null) {
-		updateLocalStorageBiAuditDepth(6);
-	}
-
-	if (getItemLocalStorage('Bocian.biAuditForm.smadReaportTitle') === null) {
-		updateLocalStorageBiAuditReaportTitle('Default reaport');
-	}
-
-	if (getItemLocalStorage('Bocian.biAuditForm.analizaOnlyTargets') === null) {
-		setItemLocalStorage('Bocian.biAuditForm.analizaOnlyTargets', defaultOnlyTarger);
-	}
-}
 
 /**
  * Funkcja pozwala na wyświetlenie okienka importu
@@ -602,122 +553,6 @@ function saveFormCsvFileAjaxAction(enumType) {
 }
 
 
-function defaultBIAuditLocalStorage() {
-	localStorage.removeItem('Bocian.biAuditForm.pracownicyIds');
-	localStorage.removeItem('Bocian.biAuditForm.kontrahenciIds');
-	localStorage.removeItem(getSelectedListLocalStorageKey('OD'));
-	localStorage.removeItem(getSelectedListLocalStorageKey('DO'));
-	setItemLocalStorage('Bocian.biAuditForm.pracownicy.pagination.page', 1);
-	setItemLocalStorage('Bocian.biAuditForm.kontrahenci.pagination.page', 1);
-	setItemLocalStorage('Bocian.biAuditForm.pracownicy.filterIdGroup', 0);
-	setItemLocalStorage('Bocian.biAuditForm.kontrahenci.filterIdGroup', 0);
-	setItemLocalStorage('Bocian.biAuditForm.depth', 6);
-	setItemLocalStorage('Bocian.biAuditForm.analizaOnlyTargets', defaultOnlyTarger);
-}
-
-
-
-function generateBiAuditRaport(event) {
-	event.preventDefault();
-
-	var idsPracownicy = getListFromLocalStorage('Bocian.biAuditForm.pracownicyIds');
-	var idsKontrahenci = getListFromLocalStorage('Bocian.biAuditForm.kontrahenciIds');
-	var pozostaleOd = getListFromLocalStorage(getSelectedListLocalStorageKey('OD'));
-	var pozostaleDo = getListFromLocalStorage(getSelectedListLocalStorageKey('DO'));
-	var allOdLength = idsPracownicy.length + pozostaleOd.length;
-	var allDoLength = idsKontrahenci.length + pozostaleDo.length;
-	var depthValue = getItemLocalStorage('Bocian.biAuditForm.depth');
-	var smadReaportTitle = getItemLocalStorage('Bocian.biAuditForm.smadReaportTitle');
-	var analizaOnlyTargets = getItemLocalStorage('Bocian.biAuditForm.analizaOnlyTargets');
-
-	if ( !smadReaportTitle ) {
-		p5UI__notifyAjaxCallback({ type: 'error', msg: 'Nie podano tytułu raportu' });
-		return;
-	}
-	if ( !depthValue ) {
-		p5UI__notifyAjaxCallback({ type: 'error', msg: 'Nie podano wartości dla głębokości powiązań' });
-		return;
-	}
-	if ( !analizaOnlyTargets ) {
-		p5UI__notifyAjaxCallback({ type: 'error', msg: 'Nie podano wartości czy zwracać wyniki tylko z obiektami docelowymi' });
-		return;
-	}
-	if ( !allOdLength ) {
-		p5UI__notifyAjaxCallback({ type: 'error', msg: 'Nie wybrano pozycji OD do analizy (pracownicy lub pozostałe bazy)' });
-		return;
-	}
-	if ( !allOdLength && !allDoLength ) {
-		p5UI__notifyAjaxCallback({ type: 'error', msg: 'Nie wybrano pozycji do analizy' });
-		return;
-	}
-
-	// TODO: analizaOnlyTargets = ( 'y' | 'n' ) - allDoLength should depend of analizaOnlyTargets?
-
-	// if not choise 'pracownicy' or 'kontrahenci'
-	if ( !allOdLength || !allDoLength ) {
-		var messageConfirm = '';
-		if ( !allDoLength )  {
-			messageConfirm = 'Nie wybrano podmiotów/kontrahentów! Czas przygotowania raportu może wydłużyć się ze względu na sprawdzenie powiązania ze wszystkimi podmiotami/kontrahentami w systemie. Czy jesteś pewny? ';
-		}
-
-		// show confirm window with message
-		if (!confirm(messageConfirm)) return;
-	}
-
-	window.fetch(URL_GENERATE_BI_AUDIT_RAPORT_AJAX, {
-		method: 'POST',
-		headers: {
-			'Content-Type': 'application/json'
-		},
-		credentials: 'same-origin',
-		body: JSON.stringify({
-			pracownicyIds: idsPracownicy,
-			kontrahenciIds: idsKontrahenci,
-			pozostaleOd: pozostaleOd,
-			pozostaleDo: pozostaleDo,
-			depthValue: depthValue,
-			smadReaportTitle: smadReaportTitle,
-			analizaOnlyTargets: analizaOnlyTargets
-	  })
-	})
-	.then(function(response) {
-		return response.text();
-	})
-	.then(function(responseText) {
-		try {
-			return JSON.parse(responseText);
-		} catch (e) {
-			throw responseText;
-		}
-	})
-	.then(function(result) {
-		if (result.type == 'success') {
-			p5UI__notifyAjaxCallback(result);
-			defaultBIAuditLocalStorage();
-			updateTopCounters();
-			$('#smad-table-PRACOWNICY form').find(':checkbox').prop('checked', false);
-			$('#smad-table-KONTRAHENCI form').find(':checkbox').prop('checked', false);
-			$('#count-selected-item-kontrahenci').text('0');
-			$('#count-selected-item-pracownicy').text('0');
-			$('.bottom--message-warning-critical-search').text('');
-			swal({
-				title: result.msg,
-				html: '<a href="' + BASE_URLS + 'index.php?_route=ViewTableAjax&amp;namespace=default_db/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA" title="przejdź do raportów" >Przejdź do raportów</a>',
-				allowOutsideClick: false, // TODO: btn Anuluj na dole?
-				showCloseButton: true,
-				confirmButtonText: 'OK',
-			});
-			window.setTimeout(URL_TABLE_POWIAZANIA, 6000);
-			resolve(result.msg);
-		} else {
-			reject(result.msg);
-		}
-	})
-	.catch(function(error) {
-		if(DBG) console.log('request failed', error);
-	});
-}
-
 /**
 * Dodaj nowego pracownika
 */
@@ -1642,19 +1477,6 @@ function rootChangeForm() {
 		break;
 	}
 
-	// pobranie defaultowego tytułu dla generowanego raportu
-	loadCurrentReaportTitleInInput('.smad-reaport-title-pracownicy');
-	loadCurrentReaportTitleInInput('.smad-reaport-title-kontrahenci');
-	// aktualizacja inputów defaultowego tytułu dla generowanego raportu
-	updateLocalStorageBiAuditReaportTitle('.smad-reaport-title-pracownicy');
-	updateLocalStorageBiAuditReaportTitle('.smad-reaport-title-kontrahenci');
-
-	//aktualizacja inputa głebokości powiazan
-	loadCurrentDepthInInput('.smad-depth');
-	loadCurrentDepthInInput('.smad-depth-kontrahenci');
-
-	updateLocalStorageBiAuditDepth('.smad-depth');
-	updateLocalStorageBiAuditDepth('.smad-depth-kontrahenci');
 	// aktualizacja select option czy zwracać wyniki tylko z obiektami docelowymi
 	updateLocalStorageBiAuditOnlyTargets('#smad-select-target');
 	updateLocalStorageBiAuditOnlyTargets('#smad-select-target-kontrahenci');
@@ -2256,8 +2078,6 @@ function detectChoiseFilter() {
 		// czy zwracać wyniki tylko z obiektami docelowymi
 		var analizaOnlyTargets = getItemLocalStorage('Bocian.biAuditForm.analizaOnlyTargets');
 
-		//reset LocalStorage
-		// defaultBIAuditLocalStorage();
 		// ustawienie ostaniej wartości zagłebienia  przed resete
 		setItemLocalStorage('Bocian.biAuditForm.depth', currentDepthValue);
 
@@ -2279,8 +2099,6 @@ function detectChoiseFilter() {
 		var filterIdGroup = $(this).attr("data-group-filter");
 		// aktaulna wartość  zagłebienia
 		var currentDepthValue = getItemLocalStorage('Bocian.biAuditForm.depth');
-		//reset LocalStorage
-		// defaultBIAuditLocalStorage();
 		// ustawienie ostaniej wartości zagłebienia  przed resete
 		setItemLocalStorage('Bocian.biAuditForm.depth', currentDepthValue);
 
@@ -2411,24 +2229,6 @@ function updateTopCounters() {
 		totalOdPracownicy: idsPracownicy.length,
 		totalDoKontrahenci: idsKontrahenci.length,
 	})
-
-	if(DBG) console.warn({totalPracownicy: idsPracownicy.length, totalKontrahenci: idsKontrahenci.length})
-	$('.top--count-selected-item-pracownicy').text(idsPracownicy.length ? '('+idsPracownicy.length+')' : '');
-	$('.top--count-selected-item-kontrahenci').text(idsKontrahenci.length ? '('+idsKontrahenci.length+')' : '');
-	$('.bottom--count-selected-item-pracownicy').text(idsPracownicy.length ? "Wybrano: (" + idsPracownicy.length + ") osób" : '');
-	$('.bottom--count-selected-item-kontrahenci').text(idsKontrahenci.length ? "Wybrano: (" + idsKontrahenci.length + ") podmiotów/kontrahentaów" : '');
-
-	// disable button generate reaport if not choise 'praconwicy' or 'kontrahenci'
-	if ( !allOdLength && !allDoLength ) {
-		$('.smad-generate-reaport-button').addClass('disabled');
-	} else {
-		if ( ( !allOdLength || !allDoLength ) && parseInt(depthValue) > 6 ) {
-			$('.bottom--message-warning-critical-search').text(messageCriticalSearchData);
-		} else {
-			$('.bottom--message-warning-critical-search').text('');
-		}
-		$('.smad-generate-reaport-button').removeClass('disabled');
-	}
 }
 
 
@@ -3083,9 +2883,6 @@ function addToReportByPreviousReport(event) {
 
 
 $(document).ready(function(){
-	globalRaportStore = createStoreWithThunkMiddleware(bocianRaportStore);
-
-	global[STORE_NAME] = globalRaportStore;
 	DBG && console.warn('DBG:: SET window[STORE_NAME]', { store: window[STORE_NAME], STORE_NAME: STORE_NAME, globalRaportStore })
 
 	ReactDOM.render(
@@ -3100,32 +2897,18 @@ $(document).ready(function(){
 
 	var unsubscribe = globalRaportStore.subscribe(function () {
 		// TODO: fetch data from globalRaportStore.getState()
-		var idsPracownicy = getListFromLocalStorage('Bocian.biAuditForm.pracownicyIds');
-		var idsKontrahenci = getListFromLocalStorage('Bocian.biAuditForm.kontrahenciIds');
-		var pozostaleOd = getListFromLocalStorage(getSelectedListLocalStorageKey('OD'));
-		var pozostaleDo = getListFromLocalStorage(getSelectedListLocalStorageKey('DO'));
-		var allOdLength = idsPracownicy.length + pozostaleOd.length;
-		var allDoLength = idsKontrahenci.length + pozostaleDo.length;
-		var depthValue = getItemLocalStorage('Bocian.biAuditForm.depth');
+		// var defaultState = global[STORE_NAME + '__defaults']();
+	})
 
-		if(DBG) console.warn({totalPracownicy: idsPracownicy.length, totalKontrahenci: idsKontrahenci.length})
-		$('.top--count-selected-item-pracownicy').text(idsPracownicy.length ? '('+idsPracownicy.length+')' : '');
-		$('.top--count-selected-item-kontrahenci').text(idsKontrahenci.length ? '('+idsKontrahenci.length+')' : '');
-		$('.bottom--count-selected-item-pracownicy').text(idsPracownicy.length ? "Wybrano: (" + idsPracownicy.length + ") osób" : '');
-		$('.bottom--count-selected-item-kontrahenci').text(idsKontrahenci.length ? "Wybrano: (" + idsKontrahenci.length + ") podmiotów/kontrahentaów" : '');
 
-		// disable button generate reaport if not choise 'praconwicy' or 'kontrahenci'
-		if ( !allOdLength && !allDoLength ) {
-			$('.smad-generate-reaport-button').addClass('disabled');
-		} else {
-			if ( ( !allOdLength || !allDoLength ) && parseInt(depthValue) > 6 ) {
-				$('.bottom--message-warning-critical-search').text(messageCriticalSearchData);
-			} else {
-				$('.bottom--message-warning-critical-search').text('');
-			}
-			$('.smad-generate-reaport-button').removeClass('disabled');
-		}
-	})
+	$(window).on('hashchange', function() {
+		DBG && console.warn("$(window).on('hashchange', ...")
+
+		rootChangeForm();
+		updateTopCounters();
+		hideMoreRecordFunctionsPopover()
+	});
+
 });
 
 global.hideMoreRecordFunctionsPopover = function() {
@@ -3159,20 +2942,14 @@ global.deleteListIdBiAuditReaport = deleteListIdBiAuditReaport;
 
 global.urlFetchPracownicy = urlFetchPracownicy;
 global.urlFetchKontrahenci = urlFetchKontrahenci;
-global.generateBiAuditRaport = generateBiAuditRaport;
 global.getAddressData = getAddressData;
 
-global.loadCurrentReaportTitleInInput = loadCurrentReaportTitleInInput;
-global.updateLocalStorageBiAuditReaportTitle = updateLocalStorageBiAuditReaportTitle;
-
 global.Pagination = Pagination;
 global.todo__fetchRaport = todo__fetchRaport;
 
-global.initLocalStorage = initLocalStorage;
 global.setItemLocalStorage = setItemLocalStorage;
 global.getItemLocalStorage = getItemLocalStorage;
 global.deleteItemLocalStorage = deleteItemLocalStorage;
-global.defaultBIAuditLocalStorage = defaultBIAuditLocalStorage;
 global.removeItemInArray = removeItemInArray;
 global.removeItemArrayInArray = removeItemArrayInArray;
 
@@ -3191,4 +2968,3 @@ global.clearListLocalStorageByType = clearListLocalStorageByType;
 
 // message
 global.messageCriticalSearchData = 'Krytyczne wielkości danych do przeszukania. Optymalna wartość głębokość szukania powiaząń to: 6';
-global.defaultOnlyTarger = 'y';