From d8361df45515c9724dcf0400a2d9484118b4cd71 Mon Sep 17 00:00:00 2001 From: Sam Wilkins Date: Wed, 8 Jan 2020 22:04:58 -0500 Subject: configuration assignment improvements, exec log and more granularity for identifiers --- .../server/solr/dash/data/tlog/tlog.0000000000000000014 | Bin 0 -> 56466 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 solr-8.3.1/server/solr/dash/data/tlog/tlog.0000000000000000014 (limited to 'solr-8.3.1/server') diff --git a/solr-8.3.1/server/solr/dash/data/tlog/tlog.0000000000000000014 b/solr-8.3.1/server/solr/dash/data/tlog/tlog.0000000000000000014 new file mode 100644 index 000000000..e39ac337f Binary files /dev/null and b/solr-8.3.1/server/solr/dash/data/tlog/tlog.0000000000000000014 differ -- cgit v1.2.3-70-g09d2 From 9f5465a20982760a827f1091b21dc84d907acc41 Mon Sep 17 00:00:00 2001 From: bob Date: Thu, 9 Jan 2020 09:54:49 -0500 Subject: added solr data index files to gitignore. --- solr-8.3.1/server/solr/dash/data/index/_j7.dii | Bin 97 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_j7.dim | Bin 1395 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_j7.fdt | Bin 4956 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_j7.fdx | Bin 84 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_j7.fnm | Bin 7628 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_j7.nvd | Bin 1121 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_j7.nvm | Bin 1003 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_j7.si | Bin 569 -> 0 bytes .../server/solr/dash/data/index/_j7_Lucene50_0.doc | Bin 6814 -> 0 bytes .../server/solr/dash/data/index/_j7_Lucene50_0.pos | Bin 8190 -> 0 bytes .../server/solr/dash/data/index/_j7_Lucene50_0.tim | Bin 38547 -> 0 bytes .../server/solr/dash/data/index/_j7_Lucene50_0.tip | Bin 1461 -> 0 bytes .../server/solr/dash/data/index/_j7_Lucene80_0.dvd | Bin 2851 -> 0 bytes .../server/solr/dash/data/index/_j7_Lucene80_0.dvm | Bin 249 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_jf.dii | Bin 75 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_jf.dim | Bin 570 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_jf.fdt | Bin 1949 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_jf.fdx | Bin 84 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_jf.fnm | Bin 2578 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_jf.nvd | Bin 1146 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_jf.nvm | Bin 607 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_jf.si | Bin 531 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_jf_2.liv | Bin 75 -> 0 bytes .../server/solr/dash/data/index/_jf_Lucene50_0.doc | Bin 7866 -> 0 bytes .../server/solr/dash/data/index/_jf_Lucene50_0.pos | Bin 7835 -> 0 bytes .../server/solr/dash/data/index/_jf_Lucene50_0.tim | Bin 12788 -> 0 bytes .../server/solr/dash/data/index/_jf_Lucene50_0.tip | Bin 735 -> 0 bytes .../server/solr/dash/data/index/_jf_Lucene80_0.dvd | Bin 683 -> 0 bytes .../server/solr/dash/data/index/_jf_Lucene80_0.dvm | Bin 249 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_ji.dii | Bin 72 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_ji.dim | Bin 242 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_ji.fdt | Bin 215 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_ji.fdx | Bin 84 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_ji.fnm | Bin 377 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_ji.nvd | Bin 59 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_ji.nvm | Bin 103 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_ji.si | Bin 531 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_ji_1.liv | Bin 67 -> 0 bytes .../server/solr/dash/data/index/_ji_Lucene50_0.doc | Bin 360 -> 0 bytes .../server/solr/dash/data/index/_ji_Lucene50_0.pos | Bin 725 -> 0 bytes .../server/solr/dash/data/index/_ji_Lucene50_0.tim | Bin 2775 -> 0 bytes .../server/solr/dash/data/index/_ji_Lucene50_0.tip | Bin 145 -> 0 bytes .../server/solr/dash/data/index/_ji_Lucene80_0.dvd | Bin 110 -> 0 bytes .../server/solr/dash/data/index/_ji_Lucene80_0.dvm | Bin 249 -> 0 bytes solr-8.3.1/server/solr/dash/data2/index/_199_1.liv | Bin 67 -> 0 bytes solr-8.3.1/server/solr/dash/data2/index/_19h_1.liv | Bin 67 -> 0 bytes solr-8.3.1/server/solr/dash/data2/index/write.lock | 0 .../solr/dash/data2/tlog/tlog.0000000000000000012 | Bin 269779 -> 0 bytes .../server/tmp/start_1669159736908453662.properties | 11 ----------- .../server/tmp/start_1935456665153398890.properties | 11 +++++++++++ 50 files changed, 11 insertions(+), 11 deletions(-) delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_j7.dii delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_j7.dim delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_j7.fdt delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_j7.fdx delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_j7.fnm delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_j7.nvd delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_j7.nvm delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_j7.si delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_j7_Lucene50_0.doc delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_j7_Lucene50_0.pos delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_j7_Lucene50_0.tim delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_j7_Lucene50_0.tip delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_j7_Lucene80_0.dvd delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_j7_Lucene80_0.dvm delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_jf.dii delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_jf.dim delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_jf.fdt delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_jf.fdx delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_jf.fnm delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_jf.nvd delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_jf.nvm delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_jf.si delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_jf_2.liv delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_jf_Lucene50_0.doc delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_jf_Lucene50_0.pos delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_jf_Lucene50_0.tim delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_jf_Lucene50_0.tip delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_jf_Lucene80_0.dvd delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_jf_Lucene80_0.dvm delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_ji.dii delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_ji.dim delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_ji.fdt delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_ji.fdx delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_ji.fnm delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_ji.nvd delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_ji.nvm delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_ji.si delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_ji_1.liv delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_ji_Lucene50_0.doc delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_ji_Lucene50_0.pos delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_ji_Lucene50_0.tim delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_ji_Lucene50_0.tip delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_ji_Lucene80_0.dvd delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_ji_Lucene80_0.dvm delete mode 100644 solr-8.3.1/server/solr/dash/data2/index/_199_1.liv delete mode 100644 solr-8.3.1/server/solr/dash/data2/index/_19h_1.liv delete mode 100644 solr-8.3.1/server/solr/dash/data2/index/write.lock delete mode 100644 solr-8.3.1/server/solr/dash/data2/tlog/tlog.0000000000000000012 delete mode 100644 solr-8.3.1/server/tmp/start_1669159736908453662.properties create mode 100644 solr-8.3.1/server/tmp/start_1935456665153398890.properties (limited to 'solr-8.3.1/server') diff --git a/solr-8.3.1/server/solr/dash/data/index/_j7.dii b/solr-8.3.1/server/solr/dash/data/index/_j7.dii deleted file mode 100644 index 7d4c5af95..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_j7.dii and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_j7.dim b/solr-8.3.1/server/solr/dash/data/index/_j7.dim deleted file mode 100644 index c6101943f..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_j7.dim and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_j7.fdt b/solr-8.3.1/server/solr/dash/data/index/_j7.fdt deleted file mode 100644 index e89db4ed5..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_j7.fdt and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_j7.fdx b/solr-8.3.1/server/solr/dash/data/index/_j7.fdx deleted file mode 100644 index a589f2dcd..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_j7.fdx and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_j7.fnm b/solr-8.3.1/server/solr/dash/data/index/_j7.fnm deleted file mode 100644 index 78d59368b..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_j7.fnm and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_j7.nvd b/solr-8.3.1/server/solr/dash/data/index/_j7.nvd deleted file mode 100644 index 984fb854c..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_j7.nvd and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_j7.nvm b/solr-8.3.1/server/solr/dash/data/index/_j7.nvm deleted file mode 100644 index aa478973c..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_j7.nvm and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_j7.si b/solr-8.3.1/server/solr/dash/data/index/_j7.si deleted file mode 100644 index 5ce51e20f..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_j7.si and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_j7_Lucene50_0.doc b/solr-8.3.1/server/solr/dash/data/index/_j7_Lucene50_0.doc deleted file mode 100644 index 3158e0d7f..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_j7_Lucene50_0.doc and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_j7_Lucene50_0.pos b/solr-8.3.1/server/solr/dash/data/index/_j7_Lucene50_0.pos deleted file mode 100644 index e5b3f12f9..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_j7_Lucene50_0.pos and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_j7_Lucene50_0.tim b/solr-8.3.1/server/solr/dash/data/index/_j7_Lucene50_0.tim deleted file mode 100644 index db0ddd7dd..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_j7_Lucene50_0.tim and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_j7_Lucene50_0.tip b/solr-8.3.1/server/solr/dash/data/index/_j7_Lucene50_0.tip deleted file mode 100644 index 6d06bbc8a..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_j7_Lucene50_0.tip and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_j7_Lucene80_0.dvd b/solr-8.3.1/server/solr/dash/data/index/_j7_Lucene80_0.dvd deleted file mode 100644 index 06dc34e64..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_j7_Lucene80_0.dvd and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_j7_Lucene80_0.dvm b/solr-8.3.1/server/solr/dash/data/index/_j7_Lucene80_0.dvm deleted file mode 100644 index 7f69f1665..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_j7_Lucene80_0.dvm and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_jf.dii b/solr-8.3.1/server/solr/dash/data/index/_jf.dii deleted file mode 100644 index 0627e1127..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_jf.dii and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_jf.dim b/solr-8.3.1/server/solr/dash/data/index/_jf.dim deleted file mode 100644 index 1a489cd18..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_jf.dim and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_jf.fdt b/solr-8.3.1/server/solr/dash/data/index/_jf.fdt deleted file mode 100644 index 5fce34b2c..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_jf.fdt and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_jf.fdx b/solr-8.3.1/server/solr/dash/data/index/_jf.fdx deleted file mode 100644 index 14aaf8fc0..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_jf.fdx and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_jf.fnm b/solr-8.3.1/server/solr/dash/data/index/_jf.fnm deleted file mode 100644 index eff2f74b7..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_jf.fnm and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_jf.nvd b/solr-8.3.1/server/solr/dash/data/index/_jf.nvd deleted file mode 100644 index 2bffbd106..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_jf.nvd and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_jf.nvm b/solr-8.3.1/server/solr/dash/data/index/_jf.nvm deleted file mode 100644 index 02a616913..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_jf.nvm and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_jf.si b/solr-8.3.1/server/solr/dash/data/index/_jf.si deleted file mode 100644 index b776600c1..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_jf.si and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_jf_2.liv b/solr-8.3.1/server/solr/dash/data/index/_jf_2.liv deleted file mode 100644 index 49e851d49..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_jf_2.liv and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_jf_Lucene50_0.doc b/solr-8.3.1/server/solr/dash/data/index/_jf_Lucene50_0.doc deleted file mode 100644 index f951b0e3a..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_jf_Lucene50_0.doc and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_jf_Lucene50_0.pos b/solr-8.3.1/server/solr/dash/data/index/_jf_Lucene50_0.pos deleted file mode 100644 index 7bc297568..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_jf_Lucene50_0.pos and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_jf_Lucene50_0.tim b/solr-8.3.1/server/solr/dash/data/index/_jf_Lucene50_0.tim deleted file mode 100644 index 874b3807c..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_jf_Lucene50_0.tim and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_jf_Lucene50_0.tip b/solr-8.3.1/server/solr/dash/data/index/_jf_Lucene50_0.tip deleted file mode 100644 index b835a3e5f..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_jf_Lucene50_0.tip and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_jf_Lucene80_0.dvd b/solr-8.3.1/server/solr/dash/data/index/_jf_Lucene80_0.dvd deleted file mode 100644 index 04b2e5a6c..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_jf_Lucene80_0.dvd and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_jf_Lucene80_0.dvm b/solr-8.3.1/server/solr/dash/data/index/_jf_Lucene80_0.dvm deleted file mode 100644 index b68fbf656..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_jf_Lucene80_0.dvm and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_ji.dii b/solr-8.3.1/server/solr/dash/data/index/_ji.dii deleted file mode 100644 index fdef5b441..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_ji.dii and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_ji.dim b/solr-8.3.1/server/solr/dash/data/index/_ji.dim deleted file mode 100644 index 2155d1932..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_ji.dim and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_ji.fdt b/solr-8.3.1/server/solr/dash/data/index/_ji.fdt deleted file mode 100644 index e7fdec3fb..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_ji.fdt and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_ji.fdx b/solr-8.3.1/server/solr/dash/data/index/_ji.fdx deleted file mode 100644 index 86c01bbd4..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_ji.fdx and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_ji.fnm b/solr-8.3.1/server/solr/dash/data/index/_ji.fnm deleted file mode 100644 index d3925b485..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_ji.fnm and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_ji.nvd b/solr-8.3.1/server/solr/dash/data/index/_ji.nvd deleted file mode 100644 index 205e2b1cd..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_ji.nvd and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_ji.nvm b/solr-8.3.1/server/solr/dash/data/index/_ji.nvm deleted file mode 100644 index 21f18e60a..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_ji.nvm and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_ji.si b/solr-8.3.1/server/solr/dash/data/index/_ji.si deleted file mode 100644 index b7126893f..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_ji.si and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_ji_1.liv b/solr-8.3.1/server/solr/dash/data/index/_ji_1.liv deleted file mode 100644 index 753deb733..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_ji_1.liv and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_ji_Lucene50_0.doc b/solr-8.3.1/server/solr/dash/data/index/_ji_Lucene50_0.doc deleted file mode 100644 index 060372c58..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_ji_Lucene50_0.doc and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_ji_Lucene50_0.pos b/solr-8.3.1/server/solr/dash/data/index/_ji_Lucene50_0.pos deleted file mode 100644 index 466c55484..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_ji_Lucene50_0.pos and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_ji_Lucene50_0.tim b/solr-8.3.1/server/solr/dash/data/index/_ji_Lucene50_0.tim deleted file mode 100644 index ca4000e9c..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_ji_Lucene50_0.tim and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_ji_Lucene50_0.tip b/solr-8.3.1/server/solr/dash/data/index/_ji_Lucene50_0.tip deleted file mode 100644 index a749cb1b9..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_ji_Lucene50_0.tip and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_ji_Lucene80_0.dvd b/solr-8.3.1/server/solr/dash/data/index/_ji_Lucene80_0.dvd deleted file mode 100644 index de1318ae2..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_ji_Lucene80_0.dvd and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_ji_Lucene80_0.dvm b/solr-8.3.1/server/solr/dash/data/index/_ji_Lucene80_0.dvm deleted file mode 100644 index c273ad653..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_ji_Lucene80_0.dvm and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data2/index/_199_1.liv b/solr-8.3.1/server/solr/dash/data2/index/_199_1.liv deleted file mode 100644 index d339cd0c7..000000000 Binary files a/solr-8.3.1/server/solr/dash/data2/index/_199_1.liv and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data2/index/_19h_1.liv b/solr-8.3.1/server/solr/dash/data2/index/_19h_1.liv deleted file mode 100644 index de5c10cc7..000000000 Binary files a/solr-8.3.1/server/solr/dash/data2/index/_19h_1.liv and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data2/index/write.lock b/solr-8.3.1/server/solr/dash/data2/index/write.lock deleted file mode 100644 index e69de29bb..000000000 diff --git a/solr-8.3.1/server/solr/dash/data2/tlog/tlog.0000000000000000012 b/solr-8.3.1/server/solr/dash/data2/tlog/tlog.0000000000000000012 deleted file mode 100644 index 039bba561..000000000 Binary files a/solr-8.3.1/server/solr/dash/data2/tlog/tlog.0000000000000000012 and /dev/null differ diff --git a/solr-8.3.1/server/tmp/start_1669159736908453662.properties b/solr-8.3.1/server/tmp/start_1669159736908453662.properties deleted file mode 100644 index 07a40cbdc..000000000 --- a/solr-8.3.1/server/tmp/start_1669159736908453662.properties +++ /dev/null @@ -1,11 +0,0 @@ -#start.jar properties -#Wed Jan 08 14:37:59 UTC 2020 -java.version.platform=8 -java.version=1.8.0_211 -java.version.micro=0 -jetty.home=C\:\\gitstuff\\GitCode\\Dash-Web\\solr-8.3.1\\server -java.version.minor=8 -jetty.home.uri=file\:///C\:/gitstuff/GitCode/Dash-Web/solr-8.3.1/server -jetty.base=C\:\\gitstuff\\GitCode\\Dash-Web\\solr-8.3.1\\server -java.version.major=1 -jetty.base.uri=file\:///C\:/gitstuff/GitCode/Dash-Web/solr-8.3.1/server diff --git a/solr-8.3.1/server/tmp/start_1935456665153398890.properties b/solr-8.3.1/server/tmp/start_1935456665153398890.properties new file mode 100644 index 000000000..a694ae90a --- /dev/null +++ b/solr-8.3.1/server/tmp/start_1935456665153398890.properties @@ -0,0 +1,11 @@ +#start.jar properties +#Thu Jan 09 14:51:58 UTC 2020 +java.version.platform=8 +java.version=1.8.0_211 +java.version.micro=0 +jetty.home=C\:\\gitstuff\\GitCode\\Dash-Web\\solr-8.3.1\\server +java.version.minor=8 +jetty.home.uri=file\:///C\:/gitstuff/GitCode/Dash-Web/solr-8.3.1/server +jetty.base=C\:\\gitstuff\\GitCode\\Dash-Web\\solr-8.3.1\\server +java.version.major=1 +jetty.base.uri=file\:///C\:/gitstuff/GitCode/Dash-Web/solr-8.3.1/server -- cgit v1.2.3-70-g09d2 From c809ac1cfddf71d95bdfb99c030e83579dd4e37b Mon Sep 17 00:00:00 2001 From: Sam Wilkins Date: Thu, 9 Jan 2020 18:08:56 -0500 Subject: unhandled rejection improvements and isSessionEnd flag --- solr-8.3.1/server/solr/dash/data/index/_hs.dii | Bin 118 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_hs.dim | Bin 12859 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_hs.fdt | Bin 65104 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_hs.fdx | Bin 107 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_hs.fnm | Bin 10795 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_hs.nvd | Bin 8896 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_hs.nvm | Bin 1543 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_hs.si | Bin 568 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_hs_2.liv | Bin 187 -> 0 bytes .../server/solr/dash/data/index/_hs_Lucene50_0.doc | Bin 98608 -> 0 bytes .../server/solr/dash/data/index/_hs_Lucene50_0.pos | Bin 94372 -> 0 bytes .../server/solr/dash/data/index/_hs_Lucene50_0.tim | Bin 255019 -> 0 bytes .../server/solr/dash/data/index/_hs_Lucene50_0.tip | Bin 4992 -> 0 bytes .../server/solr/dash/data/index/_hs_Lucene80_0.dvd | Bin 37542 -> 0 bytes .../server/solr/dash/data/index/_hs_Lucene80_0.dvm | Bin 250 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_j7_2.liv | Bin 75 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_js.dii | Bin 110 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_js.dim | Bin 9025 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_js.fdt | Bin 40992 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_js.fdx | Bin 103 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_js.fnm | Bin 5723 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_js.nvd | Bin 4794 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_js.nvm | Bin 1471 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_js.si | Bin 533 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/_js_1.liv | Bin 131 -> 0 bytes .../server/solr/dash/data/index/_js_Lucene50_0.doc | Bin 270044 -> 0 bytes .../server/solr/dash/data/index/_js_Lucene50_0.pos | Bin 318551 -> 0 bytes .../server/solr/dash/data/index/_js_Lucene50_0.tim | Bin 423689 -> 0 bytes .../server/solr/dash/data/index/_js_Lucene50_0.tip | Bin 11737 -> 0 bytes .../server/solr/dash/data/index/_js_Lucene80_0.dvd | Bin 2396 -> 0 bytes .../server/solr/dash/data/index/_js_Lucene80_0.dvm | Bin 249 -> 0 bytes solr-8.3.1/server/solr/dash/data/index/segments_e | Bin 451 -> 0 bytes .../solr/dash/data/tlog/tlog.0000000000000000011 | Bin 1291205 -> 0 bytes .../solr/dash/data/tlog/tlog.0000000000000000012 | Bin 196964 -> 0 bytes .../solr/dash/data/tlog/tlog.0000000000000000014 | Bin 56466 -> 0 bytes src/client/DocServer.ts | 20 +++++-- src/server/DashSession.ts | 7 ++- src/server/Session/session.ts | 59 ++++++++++++--------- 38 files changed, 56 insertions(+), 30 deletions(-) delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_hs.dii delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_hs.dim delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_hs.fdt delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_hs.fdx delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_hs.fnm delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_hs.nvd delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_hs.nvm delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_hs.si delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_hs_2.liv delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_hs_Lucene50_0.doc delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_hs_Lucene50_0.pos delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_hs_Lucene50_0.tim delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_hs_Lucene50_0.tip delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_hs_Lucene80_0.dvd delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_hs_Lucene80_0.dvm delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_j7_2.liv delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_js.dii delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_js.dim delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_js.fdt delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_js.fdx delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_js.fnm delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_js.nvd delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_js.nvm delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_js.si delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_js_1.liv delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_js_Lucene50_0.doc delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_js_Lucene50_0.pos delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_js_Lucene50_0.tim delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_js_Lucene50_0.tip delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_js_Lucene80_0.dvd delete mode 100644 solr-8.3.1/server/solr/dash/data/index/_js_Lucene80_0.dvm delete mode 100644 solr-8.3.1/server/solr/dash/data/index/segments_e delete mode 100644 solr-8.3.1/server/solr/dash/data/tlog/tlog.0000000000000000011 delete mode 100644 solr-8.3.1/server/solr/dash/data/tlog/tlog.0000000000000000012 delete mode 100644 solr-8.3.1/server/solr/dash/data/tlog/tlog.0000000000000000014 (limited to 'solr-8.3.1/server') diff --git a/solr-8.3.1/server/solr/dash/data/index/_hs.dii b/solr-8.3.1/server/solr/dash/data/index/_hs.dii deleted file mode 100644 index c2207a7b5..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_hs.dii and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_hs.dim b/solr-8.3.1/server/solr/dash/data/index/_hs.dim deleted file mode 100644 index 808fdf537..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_hs.dim and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_hs.fdt b/solr-8.3.1/server/solr/dash/data/index/_hs.fdt deleted file mode 100644 index 54fb57b98..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_hs.fdt and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_hs.fdx b/solr-8.3.1/server/solr/dash/data/index/_hs.fdx deleted file mode 100644 index 02a54c916..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_hs.fdx and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_hs.fnm b/solr-8.3.1/server/solr/dash/data/index/_hs.fnm deleted file mode 100644 index 2bb9517ac..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_hs.fnm and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_hs.nvd b/solr-8.3.1/server/solr/dash/data/index/_hs.nvd deleted file mode 100644 index 994cb90ad..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_hs.nvd and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_hs.nvm b/solr-8.3.1/server/solr/dash/data/index/_hs.nvm deleted file mode 100644 index a452ff4f2..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_hs.nvm and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_hs.si b/solr-8.3.1/server/solr/dash/data/index/_hs.si deleted file mode 100644 index eeb2bc77e..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_hs.si and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_hs_2.liv b/solr-8.3.1/server/solr/dash/data/index/_hs_2.liv deleted file mode 100644 index d2a881ab8..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_hs_2.liv and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_hs_Lucene50_0.doc b/solr-8.3.1/server/solr/dash/data/index/_hs_Lucene50_0.doc deleted file mode 100644 index 3f3c7dffa..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_hs_Lucene50_0.doc and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_hs_Lucene50_0.pos b/solr-8.3.1/server/solr/dash/data/index/_hs_Lucene50_0.pos deleted file mode 100644 index 9f2d9f805..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_hs_Lucene50_0.pos and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_hs_Lucene50_0.tim b/solr-8.3.1/server/solr/dash/data/index/_hs_Lucene50_0.tim deleted file mode 100644 index 1fb544956..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_hs_Lucene50_0.tim and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_hs_Lucene50_0.tip b/solr-8.3.1/server/solr/dash/data/index/_hs_Lucene50_0.tip deleted file mode 100644 index 9c97fbbf2..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_hs_Lucene50_0.tip and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_hs_Lucene80_0.dvd b/solr-8.3.1/server/solr/dash/data/index/_hs_Lucene80_0.dvd deleted file mode 100644 index e566bb7ed..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_hs_Lucene80_0.dvd and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_hs_Lucene80_0.dvm b/solr-8.3.1/server/solr/dash/data/index/_hs_Lucene80_0.dvm deleted file mode 100644 index 722d76cf9..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_hs_Lucene80_0.dvm and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_j7_2.liv b/solr-8.3.1/server/solr/dash/data/index/_j7_2.liv deleted file mode 100644 index e064804e4..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_j7_2.liv and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_js.dii b/solr-8.3.1/server/solr/dash/data/index/_js.dii deleted file mode 100644 index 6456d0dda..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_js.dii and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_js.dim b/solr-8.3.1/server/solr/dash/data/index/_js.dim deleted file mode 100644 index c52287cc3..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_js.dim and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_js.fdt b/solr-8.3.1/server/solr/dash/data/index/_js.fdt deleted file mode 100644 index dd37842f2..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_js.fdt and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_js.fdx b/solr-8.3.1/server/solr/dash/data/index/_js.fdx deleted file mode 100644 index 9a09b0b33..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_js.fdx and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_js.fnm b/solr-8.3.1/server/solr/dash/data/index/_js.fnm deleted file mode 100644 index 0bbd5b508..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_js.fnm and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_js.nvd b/solr-8.3.1/server/solr/dash/data/index/_js.nvd deleted file mode 100644 index cfba6605d..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_js.nvd and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_js.nvm b/solr-8.3.1/server/solr/dash/data/index/_js.nvm deleted file mode 100644 index 85d8c924e..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_js.nvm and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_js.si b/solr-8.3.1/server/solr/dash/data/index/_js.si deleted file mode 100644 index 45cc01db1..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_js.si and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_js_1.liv b/solr-8.3.1/server/solr/dash/data/index/_js_1.liv deleted file mode 100644 index 32ace65e0..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_js_1.liv and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_js_Lucene50_0.doc b/solr-8.3.1/server/solr/dash/data/index/_js_Lucene50_0.doc deleted file mode 100644 index 9ca1ec8bd..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_js_Lucene50_0.doc and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_js_Lucene50_0.pos b/solr-8.3.1/server/solr/dash/data/index/_js_Lucene50_0.pos deleted file mode 100644 index 141b1fac1..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_js_Lucene50_0.pos and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_js_Lucene50_0.tim b/solr-8.3.1/server/solr/dash/data/index/_js_Lucene50_0.tim deleted file mode 100644 index 5d36b0e8e..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_js_Lucene50_0.tim and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_js_Lucene50_0.tip b/solr-8.3.1/server/solr/dash/data/index/_js_Lucene50_0.tip deleted file mode 100644 index 1f7c13c9c..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_js_Lucene50_0.tip and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_js_Lucene80_0.dvd b/solr-8.3.1/server/solr/dash/data/index/_js_Lucene80_0.dvd deleted file mode 100644 index 0ab5498b2..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_js_Lucene80_0.dvd and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/_js_Lucene80_0.dvm b/solr-8.3.1/server/solr/dash/data/index/_js_Lucene80_0.dvm deleted file mode 100644 index 294b9d631..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/_js_Lucene80_0.dvm and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/index/segments_e b/solr-8.3.1/server/solr/dash/data/index/segments_e deleted file mode 100644 index 0c6b0903f..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/index/segments_e and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/tlog/tlog.0000000000000000011 b/solr-8.3.1/server/solr/dash/data/tlog/tlog.0000000000000000011 deleted file mode 100644 index 12ce36e19..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/tlog/tlog.0000000000000000011 and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/tlog/tlog.0000000000000000012 b/solr-8.3.1/server/solr/dash/data/tlog/tlog.0000000000000000012 deleted file mode 100644 index ec2251d98..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/tlog/tlog.0000000000000000012 and /dev/null differ diff --git a/solr-8.3.1/server/solr/dash/data/tlog/tlog.0000000000000000014 b/solr-8.3.1/server/solr/dash/data/tlog/tlog.0000000000000000014 deleted file mode 100644 index e39ac337f..000000000 Binary files a/solr-8.3.1/server/solr/dash/data/tlog/tlog.0000000000000000014 and /dev/null differ diff --git a/src/client/DocServer.ts b/src/client/DocServer.ts index ed7fbd7ba..1723312cf 100644 --- a/src/client/DocServer.ts +++ b/src/client/DocServer.ts @@ -64,6 +64,22 @@ export namespace DocServer { } } + function alertUser(connectionTerminationReason: string) { + switch (connectionTerminationReason) { + case "crash": + alert("Dash has temporarily crashed. Administrators have been notified and the server is restarting itself. Please refresh your page in a few seconds, and expect to reconnect after about 30 seconds."); + break; + case "temporary": + alert("An administrator has chosen to restart the server. Please refresh your page in a few seconds, and expect to reconnect after about 30 seconds."); + break; + case "exit": + alert("An administrator has chosen to kill the server. Do not expect to reconnect until administrators start the server."); + break; + default: + console.log(`Received an unknown ConnectionTerminated message: ${connectionTerminationReason}`); + } + } + export function init(protocol: string, hostname: string, port: number, identifier: string) { _cache = {}; GUID = identifier; @@ -82,9 +98,7 @@ export namespace DocServer { Utils.AddServerHandler(_socket, MessageStore.UpdateField, respondToUpdate); Utils.AddServerHandler(_socket, MessageStore.DeleteField, respondToDelete); Utils.AddServerHandler(_socket, MessageStore.DeleteFields, respondToDelete); - Utils.AddServerHandler(_socket, MessageStore.ConnectionTerminated, () => { - alert("Your connection to the server has been terminated."); - }); + Utils.AddServerHandler(_socket, MessageStore.ConnectionTerminated, alertUser); } function errorFunc(): never { diff --git a/src/server/DashSession.ts b/src/server/DashSession.ts index a0e00adda..1c70ae1dc 100644 --- a/src/server/DashSession.ts +++ b/src/server/DashSession.ts @@ -63,9 +63,12 @@ export class DashSessionAgent extends Session.AppliedSessionAgent { protected async launchServerWorker() { const worker = Session.ServerWorker.Create(launchServer); // server initialization delegated to worker - worker.addExitHandler(() => { + worker.addExitHandler(reason => { const { _socket } = WebSocket; - _socket && Utils.Emit(_socket, MessageStore.ConnectionTerminated, "Manual"); + if (_socket) { + const message = typeof reason === "boolean" ? (reason ? "exit" : "temporary") : "crash"; + Utils.Emit(_socket, MessageStore.ConnectionTerminated, message); + } }); return worker; } diff --git a/src/server/Session/session.ts b/src/server/Session/session.ts index 6967ece52..7534a5d03 100644 --- a/src/server/Session/session.ts +++ b/src/server/Session/session.ts @@ -131,7 +131,7 @@ export namespace Session { } }; - export type ExitHandler = (reason: Error | null) => void | Promise; + export type ExitHandler = (reason: Error | boolean) => void | Promise; export namespace Monitor { @@ -194,8 +194,8 @@ export namespace Session { public killSession = async (reason: string, graceful = true, errorCode = 0) => { this.mainLog(cyan(`exiting session ${graceful ? "clean" : "immediate"}ly`)); this.mainLog(`reason: ${(red(reason))}`); - await this.executeExitHandlers(null); - this.killActiveWorker(graceful); + await this.executeExitHandlers(true); + this.killActiveWorker(graceful, true); process.exit(errorCode); } @@ -341,18 +341,25 @@ export namespace Session { * is not specified by the configuration is given the default counterpart. If, within an object, * one peer is given by configuration and two are not, the one is preserved while the two are given * the default value. + * @returns the composition of all of the assigned objects, much like Object.assign(), but with more + * granularity in the overwriting of nested objects */ - private assign = (defaultObject: any, specifiedObject: any, collector: any) => { - Array.from(new Set([...Object.keys(defaultObject), ...Object.keys(specifiedObject)])).map(property => { - let defaultValue: any, specifiedValue: any; - if (specifiedValue = specifiedObject[property]) { - if (typeof specifiedValue === "object" && typeof (defaultValue = defaultObject[property]) === "object") { - this.assign(defaultValue, specifiedValue, collector[property] = {}); + private preciseAssign = (target: any, ...sources: any[]): any => { + for (const source of sources) { + this.preciseAssignHelper(target, source); + } + return target; + } + + private preciseAssignHelper = (target: any, source: any) => { + Array.from(new Set([...Object.keys(target), ...Object.keys(source)])).map(property => { + let targetValue: any, sourceValue: any; + if (sourceValue = source[property]) { + if (typeof sourceValue === "object" && typeof (targetValue = target[property]) === "object") { + this.preciseAssignHelper(targetValue, sourceValue); } else { - collector[property] = specifiedValue; + target[property] = sourceValue; } - } else { - collector[property] = defaultObject[property]; } }); } @@ -372,9 +379,7 @@ export namespace Session { }; // ensure all necessary and no excess information is specified by the configuration file validate(config, configurationSchema, options); - const results: any = {}; - this.assign(defaultConfig, config, results); - config = results; + config = this.preciseAssign({}, defaultConfig, config); } catch (error) { if (error instanceof ValidationError) { console.log(red("\nSession configuration failed.")); @@ -384,7 +389,7 @@ export namespace Session { } else if (error.code === "ENOENT" && error.path === "./session.config.json") { console.log(cyan("Loading default session parameters...")); console.log("Consider including a session.config.json configuration file in your project root for customization."); - config = { ...defaultConfig }; + config = this.preciseAssign({}, defaultConfig); } else { console.log(red("\nSession configuration failed.")); console.log("The following unknown error occurred during configuration."); @@ -429,15 +434,15 @@ export namespace Session { return repl; } - private executeExitHandlers = async (reason: Error | null) => Promise.all(this.exitHandlers.map(handler => handler(reason))); + private executeExitHandlers = async (reason: Error | boolean) => Promise.all(this.exitHandlers.map(handler => handler(reason))); /** * Attempts to kill the active worker gracefully, unless otherwise specified. */ - private killActiveWorker = (graceful = true): void => { + private killActiveWorker = (graceful = true, isSessionEnd = false): void => { if (this.activeWorker && !this.activeWorker.isDead()) { if (graceful) { - this.activeWorker.send({ manualExit: true }); + this.activeWorker.send({ manualExit: { isSessionEnd } }); } else { this.activeWorker.process.kill(); } @@ -577,7 +582,7 @@ export namespace Session { public sendMonitorAction = (message: string, args?: any) => process.send!({ action: { message, args } }); private constructor(work: Function) { - this.lifecycleNotification(green(`initializing process... (${white(`${process.execPath} ${process.execArgv.join(" ")}`)})`)); + this.lifecycleNotification(green(`initializing process... ${white(`[${process.execPath} ${process.execArgv.join(" ")}]`)}`)); const { pollingRoute, serverPort, pollingIntervalSeconds, pollingFailureTolerance } = process.env; this.serverPort = Number(serverPort); @@ -601,21 +606,25 @@ export namespace Session { this.pollingIntervalSeconds = newPollingIntervalSeconds; } if (manualExit !== undefined) { - await this.executeExitHandlers(null); + const { isSessionEnd } = manualExit; + await this.executeExitHandlers(isSessionEnd); process.exit(0); } }); // one reason to exit, as the process might be in an inconsistent state after such an exception process.on('uncaughtException', this.proactiveUnplannedExit); - process.on('unhandledRejection', this.proactiveUnplannedExit); + process.on('unhandledRejection', reason => { + const appropriateError = reason instanceof Error ? reason : new Error(`unhandled rejection: ${reason}`); + this.proactiveUnplannedExit(appropriateError); + }); } /** * Execute the list of functions registered to be called * whenever the process exits. */ - private executeExitHandlers = async (reason: Error | null) => Promise.all(this.exitHandlers.map(handler => handler(reason))); + private executeExitHandlers = async (reason: Error | boolean) => Promise.all(this.exitHandlers.map(handler => handler(reason))); /** * Notify master thread (which will log update in the console) of initialization via IPC. @@ -626,14 +635,14 @@ export namespace Session { * Called whenever the process has a reason to terminate, either through an uncaught exception * in the process (potentially inconsistent state) or the server cannot be reached. */ - private proactiveUnplannedExit = async (error: any): Promise => { + private proactiveUnplannedExit = async (error: Error): Promise => { this.shouldServerBeResponsive = false; // communicates via IPC to the master thread that it should dispatch a crash notification email this.sendMonitorAction("notify_crash", { error }); await this.executeExitHandlers(error); // notify master thread (which will log update in the console) of crash event via IPC this.lifecycleNotification(red(`crash event detected @ ${new Date().toUTCString()}`)); - this.lifecycleNotification(red(error.message || error)); + this.lifecycleNotification(red(error.message)); process.exit(1); } -- cgit v1.2.3-70-g09d2 From 50d7bacf7be41de23a1fb7b99aa179fb3ed3fd77 Mon Sep 17 00:00:00 2001 From: Sam Wilkins Date: Thu, 9 Jan 2020 19:44:37 -0500 Subject: backup and mail zipped file first passes --- .../tmp/start_5098042466590842962.properties | 11 ++++ src/server/ActionUtilities.ts | 6 ++- src/server/DashSession.ts | 60 ++++++++++++++++++---- src/server/Search.ts | 8 ++- 4 files changed, 72 insertions(+), 13 deletions(-) create mode 100644 solr-8.3.1/server/tmp/start_5098042466590842962.properties (limited to 'solr-8.3.1/server') diff --git a/solr-8.3.1/server/tmp/start_5098042466590842962.properties b/solr-8.3.1/server/tmp/start_5098042466590842962.properties new file mode 100644 index 000000000..194d8ff5c --- /dev/null +++ b/solr-8.3.1/server/tmp/start_5098042466590842962.properties @@ -0,0 +1,11 @@ +#start.jar properties +#Thu Jan 09 23:36:29 UTC 2020 +java.version.platform=8 +java.version=1.8.0_131 +java.version.micro=0 +jetty.home=C\:\\Users\\avd\\Desktop\\Sam\\Dash-Web\\solr-8.3.1\\server +java.version.minor=8 +jetty.home.uri=file\:///C\:/Users/avd/Desktop/Sam/Dash-Web/solr-8.3.1/server +jetty.base=C\:\\Users\\avd\\Desktop\\Sam\\Dash-Web\\solr-8.3.1\\server +java.version.major=1 +jetty.base.uri=file\:///C\:/Users/avd/Desktop/Sam/Dash-Web/solr-8.3.1/server diff --git a/src/server/ActionUtilities.ts b/src/server/ActionUtilities.ts index a93566fb1..f0bfbc525 100644 --- a/src/server/ActionUtilities.ts +++ b/src/server/ActionUtilities.ts @@ -6,6 +6,7 @@ import * as rimraf from "rimraf"; import { yellow, Color } from 'colors'; import * as nodemailer from "nodemailer"; import { MailOptions } from "nodemailer/lib/json-transport"; +import Mail = require('nodemailer/lib/mailer'); const projectRoot = path.resolve(__dirname, "../../"); export function pathFromRoot(relative?: string) { @@ -137,12 +138,13 @@ export namespace Email { return failures.length ? failures : undefined; } - export async function dispatch(recipient: string, subject: string, content: string): Promise { + export async function dispatch(recipient: string, subject: string, content: string, attachments?: Mail.Attachment[]): Promise { const mailOptions = { to: recipient, from: 'brownptcdash@gmail.com', subject, - text: `Hello ${recipient.split("@")[0]},\n\n${content}` + text: `Hello ${recipient.split("@")[0]},\n\n${content}`, + attachments } as MailOptions; return new Promise(resolve => { smtpTransport.sendMail(mailOptions, resolve); diff --git a/src/server/DashSession.ts b/src/server/DashSession.ts index 1c70ae1dc..3299b739b 100644 --- a/src/server/DashSession.ts +++ b/src/server/DashSession.ts @@ -1,11 +1,13 @@ import { Session } from "./Session/session"; -import { Email } from "./ActionUtilities"; +import { Email, pathFromRoot } from "./ActionUtilities"; import { red, yellow, green } from "colors"; import { get } from "request-promise"; import { Utils } from "../Utils"; import { WebSocket } from "./Websocket/Websocket"; import { MessageStore } from "./Message"; import { launchServer, onWindows } from "."; +import { existsSync, mkdirSync, readdirSync, statSync, createWriteStream } from "fs"; +import * as Archiver from "archiver"; /** * If we're the monitor (master) thread, we should launch the monitor logic for the session. @@ -48,15 +50,55 @@ export class DashSessionAgent extends Session.AppliedSessionAgent { } }); monitor.addReplCommand("pull", [], () => monitor.exec("git pull")); - monitor.addReplCommand("solr", [/start|stop/], async args => { - const command = `${onWindows ? "solr.cmd" : "solr"} ${args[0] === "start" ? "start" : "stop -p 8983"}`; - await monitor.exec(command, { cwd: "./solr-8.3.1/bin" }); - try { - await get("http://localhost:8983"); - monitor.mainLog(green("successfully connected to 8983 after running solr initialization")); - } catch { - monitor.mainLog(red("unable to connect at 8983 after running solr initialization")); + monitor.addReplCommand("solr", [/start|stop|index/], async args => { + const action = args[0]; + if (action === "index") { + monitor.exec("npx ts-node ./updateSearch.ts", { cwd: pathFromRoot("./src/server") }); + } else { + const command = `${onWindows ? "solr.cmd" : "solr"} ${args[0] === "start" ? "start" : "stop -p 8983"}`; + await monitor.exec(command, { cwd: "./solr-8.3.1/bin" }); + try { + await get("http://localhost:8983"); + monitor.mainLog(green("successfully connected to 8983 after running solr initialization")); + } catch { + monitor.mainLog(red("unable to connect at 8983 after running solr initialization")); + } + } + }); + const releaseDesktop = pathFromRoot("../../Desktop"); + const backup = () => monitor.exec("./backup.bat", { cwd: releaseDesktop }); + monitor.addReplCommand("backup", [], backup); + monitor.addReplCommand("debug", [/active|passive/, /\S+\@\S+/], async args => { + const [mode, recipient] = args; + if (mode === "active") { + await backup(); } + monitor.mainLog("backup complete"); + const backupsDirectory = `${releaseDesktop}/backups`; + const compressedDirectory = `${releaseDesktop}/compressed`; + if (!existsSync(compressedDirectory)) { + mkdirSync(compressedDirectory); + } + const target = readdirSync(backupsDirectory).map(filename => ({ + modifiedTime: statSync(`${backupsDirectory}/${filename}`).mtimeMs, + filename + })).sort((a, b) => b.modifiedTime - a.modifiedTime)[0].filename; + monitor.mainLog(`targeting ${target}...`); + const zipName = `${target}.zip`; + const zipPath = `${compressedDirectory}/${zipName}`; + const output = createWriteStream(zipPath); + const zip = Archiver('zip'); + zip.pipe(output); + zip.directory(`${backupsDirectory}/${target}/Dash`, false); + await zip.finalize(); + monitor.mainLog(`zip finalized, saved to ${zipPath}`); + const error = await Email.dispatch(recipient, `Compressed backup of ${target}...`, "mongorestore, etc.", [ + { + filename: zipName, + path: zipPath + } + ]); + monitor.mainLog(`${error ? "successfully dispatched" : "failed to dispatch"} ${zipName} to ${recipient}`); }); return monitor; } diff --git a/src/server/Search.ts b/src/server/Search.ts index 2b59c14b1..21064e520 100644 --- a/src/server/Search.ts +++ b/src/server/Search.ts @@ -1,4 +1,5 @@ import * as rp from 'request-promise'; +import { red } from 'colors'; const pathTo = (relative: string) => `http://localhost:8983/solr/dash/${relative}`; @@ -43,7 +44,7 @@ export namespace Search { export async function clear() { try { - return rp.post(pathTo("update"), { + await rp.post(pathTo("update"), { body: { delete: { query: "*:*" @@ -51,7 +52,10 @@ export namespace Search { }, json: true }); - } catch { } + } catch (e) { + console.log(red("Unable to clear search...")); + console.log(red(e.message)); + } } export async function deleteDocuments(docs: string[]) { -- cgit v1.2.3-70-g09d2 From e183f40509edec426b6519fe77590792c1f3f346 Mon Sep 17 00:00:00 2001 From: bob Date: Thu, 16 Jan 2020 16:15:26 -0500 Subject: pivot viewer improvements. --- .../tmp/start_8210707001248201939.properties | 11 ++ src/client/documents/Documents.ts | 5 + .../views/collections/CollectionDockingView.tsx | 33 ++++++ .../views/collections/CollectionPivotView.scss | 57 ++++++++++ .../views/collections/CollectionPivotView.tsx | 119 +++++++++++++++++++++ .../views/collections/CollectionTreeView.tsx | 23 ++-- src/client/views/collections/CollectionView.tsx | 3 +- 7 files changed, 239 insertions(+), 12 deletions(-) create mode 100644 solr-8.3.1/server/tmp/start_8210707001248201939.properties create mode 100644 src/client/views/collections/CollectionPivotView.scss create mode 100644 src/client/views/collections/CollectionPivotView.tsx (limited to 'solr-8.3.1/server') diff --git a/solr-8.3.1/server/tmp/start_8210707001248201939.properties b/solr-8.3.1/server/tmp/start_8210707001248201939.properties new file mode 100644 index 000000000..aebc17bdc --- /dev/null +++ b/solr-8.3.1/server/tmp/start_8210707001248201939.properties @@ -0,0 +1,11 @@ +#start.jar properties +#Thu Jan 16 20:33:22 UTC 2020 +java.version.platform=8 +java.version=1.8.0_211 +java.version.micro=0 +jetty.home=C\:\\gitstuff\\GitCode\\Dash-Web\\solr-8.3.1\\server +java.version.minor=8 +jetty.home.uri=file\:///C\:/gitstuff/GitCode/Dash-Web/solr-8.3.1/server +jetty.base=C\:\\gitstuff\\GitCode\\Dash-Web\\solr-8.3.1\\server +java.version.major=1 +jetty.base.uri=file\:///C\:/gitstuff/GitCode/Dash-Web/solr-8.3.1/server diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts index be678d765..eacdd8214 100644 --- a/src/client/documents/Documents.ts +++ b/src/client/documents/Documents.ts @@ -69,6 +69,8 @@ export interface DocumentOptions { page?: number; scale?: number; fitWidth?: boolean; + fitToBox?: boolean; // whether a freeformview should zoom/scale to create a shrinkwrapped view of its contents + isDisplayPanel?: boolean; // whether the panel functions as GoldenLayout "stack" used to display documents forceActive?: boolean; preventTreeViewOpen?: boolean; // ignores the treeViewOpen Doc flag which allows a treeViewItem's expande/collapse state to be independent of other views of the same document in the tree view layout?: string | Doc; @@ -114,6 +116,9 @@ export interface DocumentOptions { dropConverter?: ScriptField; // script to run when documents are dropped on this Document. strokeWidth?: number; color?: string; + treeViewHideTitle?: boolean; // whether to hide the title of a tree view + treeViewOpen?: boolean; // whether this document is expanded in a tree view + isFacetFilter?: boolean; // whether document functions as a facet filter in a tree view limitHeight?: number; // maximum height for newly created (eg, from pasting) text documents // [key: string]: Opt; } diff --git a/src/client/views/collections/CollectionDockingView.tsx b/src/client/views/collections/CollectionDockingView.tsx index 6c50ea0f2..a7a124825 100644 --- a/src/client/views/collections/CollectionDockingView.tsx +++ b/src/client/views/collections/CollectionDockingView.tsx @@ -207,6 +207,38 @@ export class CollectionDockingView extends React.Component { + if (child.contentItems.length === 1 && child.contentItems[0].config.component === "DocumentFrameRenderer" && + DocumentManager.Instance.getDocumentViewById(child.contentItems[0].config.props.documentId)?.props.Document.isDisplayPanel) { + found = DocumentManager.Instance.getDocumentViewById(child.contentItems[0].config.props.documentId)!; + } else { + Array.from(child.contentItems).filter((tab: any) => tab.config.component === "DocumentFrameRenderer").some((tab: any, j: number) => { + if (DocumentManager.Instance.getDocumentViewById(tab.config.props.documentId)?.props.Document.isDisplayPanel) { + found = DocumentManager.Instance.getDocumentViewById(tab.config.props.documentId)!; + return true; + } + return false; + }); + } + }); + if (found) { + Doc.GetProto(found.props.Document).data = new List([document]); + } else { + const stackView = Docs.Create.FreeformDocument([document], { fitToBox: true, isDisplayPanel: true, title: "document viewer" }) + CollectionDockingView.AddRightSplit(stackView, undefined, []); + } + } + } @undoBatch @action @@ -721,3 +753,4 @@ export class DockedFrameRenderer extends React.Component { } } Scripting.addGlobal(function openOnRight(doc: any) { CollectionDockingView.AddRightSplit(doc, undefined); }); +Scripting.addGlobal(function useRightSplit(doc: any) { CollectionDockingView.UseRightSplit(doc, undefined); }); diff --git a/src/client/views/collections/CollectionPivotView.scss b/src/client/views/collections/CollectionPivotView.scss new file mode 100644 index 000000000..bd3d6c77b --- /dev/null +++ b/src/client/views/collections/CollectionPivotView.scss @@ -0,0 +1,57 @@ +.collectionPivotView { + display: flex; + flex-direction: row; + position: absolute; + height:100%; + width:100%; + .collectionPivotView-flyout { + width: 400px; + height: 300px; + display: inline-block; + .collectionPivotView-flyout-item { + background-color: lightgray; + text-align: left; + display: inline-block; + position: relative; + width: 100%; + } + } + + .collectionPivotView-treeView { + display:flex; + flex-direction: column; + width: 200px; + height: 100%; + .collectionPivotView-addfacet { + display:inline-block; + width: 200px; + height: 30px; + background: darkGray; + text-align: center; + .collectionPivotView-button { + align-items: center; + display: flex; + width: 100%; + height: 100%; + .collectionPivotView-span { + margin: auto; + } + } + > div, > div > div { + width: 100%; + height: 100%; + text-align: center; + } + } + .collectionPivotView-tree { + display:inline-block; + width: 200px; + height: calc(100% - 30px); + } + } + .collectionPivotView-pivot { + display:inline-block; + width: calc(100% - 200px); + height: 100%; + } +} \ No newline at end of file diff --git a/src/client/views/collections/CollectionPivotView.tsx b/src/client/views/collections/CollectionPivotView.tsx new file mode 100644 index 000000000..d56052ed5 --- /dev/null +++ b/src/client/views/collections/CollectionPivotView.tsx @@ -0,0 +1,119 @@ +import { CollectionSubView } from "./CollectionSubView"; +import React = require("react"); +import { computed, action, IReactionDisposer, reaction, runInAction, observable } from "mobx"; +import { faEdit, faChevronCircleUp } from "@fortawesome/free-solid-svg-icons"; +import { Doc, DocListCast } from "../../../new_fields/Doc"; +import "./CollectionPivotView.scss"; +import { observer } from "mobx-react"; +import { CollectionFreeFormView } from "./collectionFreeForm/CollectionFreeFormView"; +import { CollectionTreeView } from "./CollectionTreeView"; +import { Cast, StrCast, NumCast } from "../../../new_fields/Types"; +import { Docs } from "../../documents/Documents"; +import { ScriptField } from "../../../new_fields/ScriptField"; +import { CompileScript } from "../../util/Scripting"; +import { anchorPoints, Flyout } from "../TemplateMenu"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { List } from "../../../new_fields/List"; +import { Set } from "typescript-collections"; + +@observer +export class CollectionPivotView extends CollectionSubView(doc => doc) { + componentDidMount = () => { + this.props.Document.freeformLayoutEngine = "pivot"; + if (!this.props.Document.facetCollection) { + const facetCollection = Docs.Create.FreeformDocument([], { title: "facetFilters", yMargin: 0, treeViewHideTitle: true }); + facetCollection.target = this.props.Document; + + const scriptText = "setDocFilter(context.target, heading, this.title, checked)"; + const script = CompileScript(scriptText, { + params: { this: Doc.name, heading: "boolean", checked: "boolean", context: Doc.name }, + typecheck: false, + editable: true, + }); + if (script.compiled) { + facetCollection.onCheckedClick = new ScriptField(script); + } + + const openDocText = "const alias = getAlias(this); alias.layoutKey = 'layoutCustom'; useRightSplit(alias); "; + const openDocScript = CompileScript(openDocText, { + params: { this: Doc.name, heading: "boolean", checked: "boolean", context: Doc.name }, + typecheck: false, + editable: true, + }); + if (openDocScript.compiled) { + this.props.Document.onChildClick = new ScriptField(openDocScript); + } + + this.props.Document.facetCollection = facetCollection; + this.props.Document.fitToBox = true; + } + } + + @computed get fieldExtensionDoc() { + return Doc.fieldExtensionDoc(this.props.DataDoc || this.props.Document, this.props.fieldKey); + } + + bodyPanelWidth = () => this.props.PanelWidth() - 200; + getTransform = () => this.props.ScreenToLocalTransform().translate(-200, 0); + + @computed get _allFacets() { + const facets = new Set(); + this.childDocs.forEach(child => Object.keys(Doc.GetProto(child)).forEach(key => facets.add(key))); + return facets.toArray(); + } + + facetClick = (facet: string) => { + const facetCollection = this.props.Document.facetCollection; + if (facetCollection instanceof Doc) { + let found = DocListCast(facetCollection.data).findIndex(doc => doc.title === facet); + if (found !== -1) { + //Doc.RemoveDocFromList(facetCollection, "data", DocListCast(facetCollection.data)[found]); + (facetCollection.data as List).splice(found, 1); + } else { + const facetValues = new Set(); + this.childDocs.forEach(child => { + Object.keys(Doc.GetProto(child)).forEach(key => child[key] instanceof Doc && facetValues.add((child[key] as Doc)[facet]?.toString() || "(null)")); + facetValues.add(child[facet]?.toString() || "(null)"); + }); + this.childDocs + + const newFacetVals = facetValues.toArray().map(val => Docs.Create.TextDocument({ title: val.toString() })); + const newFacet = Docs.Create.FreeformDocument(newFacetVals, { title: facet, treeViewOpen: true, isFacetFilter: true }); + Doc.AddDocToList(facetCollection, "data", newFacet); + } + } + } + + render() { + const facetCollection = Cast(this.props.Document?.facetCollection, Doc, null); + const flyout = ( +
+ {this._allFacets.map(facet => )} +
+ ); + return !facetCollection ? (null) :
+
+
e.stopPropagation()}> + +
+ Facet Filters + +
+
+
+
+ +
+
+
+ +
+
; + } +} \ No newline at end of file diff --git a/src/client/views/collections/CollectionTreeView.tsx b/src/client/views/collections/CollectionTreeView.tsx index 3356aed68..70860b6bd 100644 --- a/src/client/views/collections/CollectionTreeView.tsx +++ b/src/client/views/collections/CollectionTreeView.tsx @@ -52,7 +52,7 @@ export interface TreeViewProps { outdentDocument?: () => void; ScreenToLocalTransform: () => Transform; outerXf: () => { translateX: number, translateY: number }; - treeViewId: string; + treeViewId: Doc; parentKey: string; active: (outsideReaction?: boolean) => boolean; hideHeaderFields: () => boolean; @@ -234,8 +234,8 @@ class TreeView extends React.Component { if (inside) { addDoc = (doc: Doc) => Doc.AddDocToList(this.dataDoc, this.fieldKey, doc) || addDoc(doc); } - const movedDocs = (de.complete.docDragData.treeViewId === this.props.treeViewId ? de.complete.docDragData.draggedDocuments : de.complete.docDragData.droppedDocuments); - return ((de.complete.docDragData.dropAction && (de.complete.docDragData.treeViewId !== this.props.treeViewId)) || de.complete.docDragData.userDropAction) ? + const movedDocs = (de.complete.docDragData.treeViewId === this.props.treeViewId[Id] ? de.complete.docDragData.draggedDocuments : de.complete.docDragData.droppedDocuments); + return ((de.complete.docDragData.dropAction && (de.complete.docDragData.treeViewId !== this.props.treeViewId[Id])) || de.complete.docDragData.userDropAction) ? de.complete.docDragData.droppedDocuments.reduce((added, d) => addDoc(d) || added, false) : de.complete.docDragData.moveDocument ? movedDocs.reduce((added, d) => de.complete.docDragData?.moveDocument?.(d, undefined, addDoc) || added, false) @@ -368,12 +368,13 @@ class TreeView extends React.Component { @action bulletClick = (e: React.MouseEvent) => { - if (this.props.onCheckedClick) { + if (this.props.onCheckedClick && this.props.document.type !== DocumentType.COL) { this.props.document.treeViewChecked = this.props.document.treeViewChecked === "check" ? "x" : this.props.document.treeViewChecked === "x" ? undefined : "check"; ScriptCast(this.props.onCheckedClick).script.run({ this: this.props.document.isTemplateField && this.props.dataDoc ? this.props.dataDoc : this.props.document, heading: this.props.containingCollection.title, - checked: this.props.document.treeViewChecked === "check" ? false : this.props.document.treeViewChecked === "x" ? "x" : "none" + checked: this.props.document.treeViewChecked === "check" ? false : this.props.document.treeViewChecked === "x" ? "x" : "none", + context: this.props.treeViewId }, console.log); } else { this.treeViewOpen = !this.treeViewOpen; @@ -383,7 +384,7 @@ class TreeView extends React.Component { @computed get renderBullet() { - const checked = this.props.onCheckedClick ? (this.props.document.treeViewChecked ? this.props.document.treeViewChecked : "unchecked") : undefined; + const checked = this.props.document.type === DocumentType.COL ? undefined : this.props.onCheckedClick ? (this.props.document.treeViewChecked ? this.props.document.treeViewChecked : "unchecked") : undefined; return
{}
; @@ -394,7 +395,7 @@ class TreeView extends React.Component { @computed get renderTitle() { const reference = React.createRef(); - const onItemDown = SetupDrag(reference, () => this.dataDoc, this.move, this.props.dropAction, this.props.treeViewId, true); + const onItemDown = SetupDrag(reference, () => this.dataDoc, this.move, this.props.dropAction, this.props.treeViewId[Id], true); const headerElements = ( { } public static GetChildElements( childDocs: Doc[], - treeViewId: string, + treeViewId: Doc, containingCollection: Doc, dataDoc: Doc | undefined, key: string, @@ -655,7 +656,7 @@ export class CollectionTreeView extends CollectionSubView(Document) { onWheel={(e: React.WheelEvent) => this._mainEle && this._mainEle.scrollHeight > this._mainEle.clientHeight && e.stopPropagation()} onDrop={this.onTreeDrop} ref={this.createTreeDropTarget}> - ([Templates.Title.Layout]) }); TreeView.loadId = doc[Id]; Doc.AddDocToList(this.props.Document, this.props.fieldKey, doc, this.childDocs.length ? this.childDocs[0] : undefined, true, false, false, false); - })} /> + })} />)} {this.props.Document.allowClear ? this.renderClearButton : (null)}
    { - TreeView.GetChildElements(this.childDocs, this.props.Document[Id], this.props.Document, this.props.DataDoc, this.props.fieldKey, this.props.ContainingCollectionDoc, undefined, addDoc, this.remove, + TreeView.GetChildElements(this.childDocs, this.props.Document, this.props.Document, this.props.DataDoc, this.props.fieldKey, this.props.ContainingCollectionDoc, undefined, addDoc, this.remove, moveDoc, dropAction, this.props.addDocTab, this.props.pinToPres, this.props.ScreenToLocalTransform, this.outerXf, this.props.active, this.props.PanelWidth, this.props.ChromeHeight, this.props.renderDepth, () => BoolCast(this.props.Document.hideHeaderFields), BoolCast(this.props.Document.preventTreeViewOpen), [], this.props.LibraryPath, ScriptCast(this.props.Document.onCheckedClick)) diff --git a/src/client/views/collections/CollectionView.tsx b/src/client/views/collections/CollectionView.tsx index 21371dd39..022fc8f48 100644 --- a/src/client/views/collections/CollectionView.tsx +++ b/src/client/views/collections/CollectionView.tsx @@ -36,6 +36,7 @@ import { TraceMobx } from '../../../new_fields/util'; import { Utils } from '../../../Utils'; import { ScriptBox } from '../ScriptBox'; import CollectionMulticolumnView from '../CollectionMulticolumnView'; +import { CollectionPivotView } from './CollectionPivotView'; const path = require('path'); library.add(faTh, faTree, faSquare, faProjectDiagram, faSignature, faThList, faFingerprint, faColumns, faEllipsisV, faImage, faEye as any, faCopy); @@ -180,7 +181,7 @@ export class CollectionView extends Touchable { case CollectionViewType.Linear: { return (); } case CollectionViewType.Stacking: { this.props.Document.singleColumn = true; return (); } case CollectionViewType.Masonry: { this.props.Document.singleColumn = false; return (); } - case CollectionViewType.Pivot: { this.props.Document.freeformLayoutEngine = "pivot"; return (); } + case CollectionViewType.Pivot: { return (); } case CollectionViewType.Freeform: default: { this.props.Document.freeformLayoutEngine = undefined; return (); } } -- cgit v1.2.3-70-g09d2 From ac9492714eb9264b67d8033d8753fc6ed51b4e29 Mon Sep 17 00:00:00 2001 From: bob Date: Wed, 29 Jan 2020 13:54:27 -0500 Subject: ui cleanup for pivot viewer/chrome. error fixes. fixed layout of flyouts --- solr-8.3.1/server/solr/dash/core.properties | 2 +- src/client/util/ClientUtils.ts.temp | 3 - src/client/util/RichTextSchema.tsx | 2 +- src/client/views/DocumentButtonBar.tsx | 100 +++++++++++++++++---- src/client/views/MainView.tsx | 4 +- src/client/views/MetadataEntryMenu.scss | 4 + src/client/views/MetadataEntryMenu.tsx | 2 +- src/client/views/TemplateMenu.tsx | 66 +------------- .../views/collections/CollectionDockingView.tsx | 2 +- .../views/collections/CollectionPivotView.tsx | 2 +- src/client/views/collections/CollectionSubView.tsx | 6 +- .../views/collections/CollectionTreeView.tsx | 4 +- .../views/collections/CollectionViewChromes.scss | 35 +++++++- .../views/collections/CollectionViewChromes.tsx | 94 ++++++++++--------- .../views/collections/ParentDocumentSelector.tsx | 11 +-- .../collectionFreeForm/CollectionFreeFormView.tsx | 4 +- .../CollectionMulticolumnView.tsx | 2 +- .../views/nodes/CollectionFreeFormDocumentView.tsx | 4 +- src/client/views/nodes/PresBox.tsx | 4 +- src/client/views/search/SearchBox.scss | 1 + src/new_fields/Doc.ts | 11 +-- .../authentication/models/current_user_utils.ts | 5 +- 22 files changed, 209 insertions(+), 159 deletions(-) delete mode 100644 src/client/util/ClientUtils.ts.temp (limited to 'solr-8.3.1/server') diff --git a/solr-8.3.1/server/solr/dash/core.properties b/solr-8.3.1/server/solr/dash/core.properties index 0912a8303..70081ebc6 100644 --- a/solr-8.3.1/server/solr/dash/core.properties +++ b/solr-8.3.1/server/solr/dash/core.properties @@ -1,5 +1,5 @@ #Written by CorePropertiesLocator -#Wed Jan 08 14:44:34 UTC 2020 +#Wed Jan 29 14:30:24 UTC 2020 name=dash config=solrconfig.xml schema=schema.xml diff --git a/src/client/util/ClientUtils.ts.temp b/src/client/util/ClientUtils.ts.temp deleted file mode 100644 index f9fad5ed9..000000000 --- a/src/client/util/ClientUtils.ts.temp +++ /dev/null @@ -1,3 +0,0 @@ -export namespace ClientUtils { - export const RELEASE = "mode"; -} \ No newline at end of file diff --git a/src/client/util/RichTextSchema.tsx b/src/client/util/RichTextSchema.tsx index 8c9e5e263..f14e09a40 100644 --- a/src/client/util/RichTextSchema.tsx +++ b/src/client/util/RichTextSchema.tsx @@ -695,7 +695,7 @@ export class DashDocCommentView { e.stopPropagation(); }; this._collapsed.onpointerenter = (e: any) => { - DocServer.GetRefField(node.attrs.docid).then(async dashDoc => dashDoc instanceof Doc && Doc.linkFollowHighlight(dashDoc)); + DocServer.GetRefField(node.attrs.docid).then(async dashDoc => dashDoc instanceof Doc && Doc.linkFollowHighlight(dashDoc, false)); e.preventDefault(); e.stopPropagation(); }; diff --git a/src/client/views/DocumentButtonBar.tsx b/src/client/views/DocumentButtonBar.tsx index 4441356dc..6abb7108f 100644 --- a/src/client/views/DocumentButtonBar.tsx +++ b/src/client/views/DocumentButtonBar.tsx @@ -1,27 +1,28 @@ import { IconProp, library } from '@fortawesome/fontawesome-svg-core'; import { faArrowAltCircleDown, faArrowAltCircleUp, faCheckCircle, faCloudUploadAlt, faLink, faShare, faStopCircle, faSyncAlt, faTag, faTimes } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import { action, observable, runInAction, computed } from "mobx"; +import { action, computed, observable, runInAction } from "mobx"; import { observer } from "mobx-react"; import { Doc, DocListCast } from "../../new_fields/Doc"; +import { Id } from '../../new_fields/FieldSymbols'; import { RichTextField } from '../../new_fields/RichTextField'; -import { NumCast, StrCast, Cast } from "../../new_fields/Types"; +import { NumCast, StrCast } from "../../new_fields/Types"; import { emptyFunction } from "../../Utils"; import { Pulls, Pushes } from '../apis/google_docs/GoogleApiClientUtils'; -import { DragManager } from "../util/DragManager"; +import RichTextMenu from '../util/RichTextMenu'; import { UndoManager } from "../util/UndoManager"; -import './DocumentButtonBar.scss'; +import { CollectionDockingView } from './collections/CollectionDockingView'; +import { ParentDocSelector } from './collections/ParentDocumentSelector'; import './collections/ParentDocumentSelector.scss'; +import './DocumentButtonBar.scss'; import { LinkMenu } from "./linking/LinkMenu"; -import { FormattedTextBox, GoogleRef } from "./nodes/FormattedTextBox"; +import { DocumentView } from './nodes/DocumentView'; +import { GoogleRef } from "./nodes/FormattedTextBox"; import { TemplateMenu } from "./TemplateMenu"; import { Template, Templates } from "./Templates"; import React = require("react"); -import { DocumentView } from './nodes/DocumentView'; -import { ParentDocSelector } from './collections/ParentDocumentSelector'; -import { CollectionDockingView } from './collections/CollectionDockingView'; -import RichTextMenu from '../util/RichTextMenu'; -import { Id } from '../../new_fields/FieldSymbols'; +import { DragManager } from '../util/DragManager'; +import { MetadataEntryMenu } from './MetadataEntryMenu'; const higflyout = require("@hig/flyout"); export const { anchorPoints } = higflyout; export const Flyout = higflyout.default; @@ -43,6 +44,7 @@ const fetch: IconProp = "sync-alt"; @observer export class DocumentButtonBar extends React.Component<{ views: (DocumentView | undefined)[], stack?: any }, {}> { private _linkButton = React.createRef(); + private _dragRef = React.createRef(); private _downX = 0; private _downY = 0; private _pullAnimating = false; @@ -201,7 +203,7 @@ export class DocumentButtonBar extends React.Component<{ views: (DocumentView | const view0 = this.view0; const linkCount = view0 && DocListCast(view0.props.Document.links).length; return !view0 ? (null) :
    - }>
    {linkCount ? linkCount : } @@ -210,6 +212,19 @@ export class DocumentButtonBar extends React.Component<{ views: (DocumentView |
    ; } + @computed + get metadataButton() { + const view0 = this.view0; + return !view0 ? (null) :
    + this.props.views.filter(dv => dv).map(dv => dv!.props.Document)} suggestWithFunction /> /* tfs: @bcz This might need to be the data document? */}> +
    + {} +
    +
    +
    ; + } + @computed get contextButton() { return !this.view0 ? (null) : v).map(v => v as DocumentView)} Document={this.view0.props.Document} addDocTab={(doc, data, where) => { @@ -220,11 +235,61 @@ export class DocumentButtonBar extends React.Component<{ views: (DocumentView | }} />; } - render() { - if (!this.view0) return (null); + private _downx = 0; + private _downy = 0; + onAliasButtonUp = (e: PointerEvent): void => { + document.removeEventListener("pointermove", this.onAliasButtonMoved); + document.removeEventListener("pointerup", this.onAliasButtonUp); + e.stopPropagation(); + } + + onAliasButtonDown = (e: React.PointerEvent): void => { + this._downx = e.clientX; + this._downy = e.clientY; + e.stopPropagation(); + e.preventDefault(); + document.removeEventListener("pointermove", this.onAliasButtonMoved); + document.addEventListener("pointermove", this.onAliasButtonMoved); + document.removeEventListener("pointerup", this.onAliasButtonUp); + document.addEventListener("pointerup", this.onAliasButtonUp); + } + onAliasButtonMoved = (e: PointerEvent): void => { + if (this._dragRef.current !== null && (Math.abs(e.clientX - this._downx) > 4 || Math.abs(e.clientY - this._downy) > 4)) { + document.removeEventListener("pointermove", this.onAliasButtonMoved); + document.removeEventListener("pointerup", this.onAliasButtonUp); + + const dragDocView = this.props.views[0]!; + const dragData = new DragManager.DocumentDragData([dragDocView.props.Document]); + const [left, top] = dragDocView.props.ScreenToLocalTransform().inverse().transformPoint(0, 0); + dragData.embedDoc = true; + dragData.dropAction = "alias"; + DragManager.StartDocumentDrag([dragDocView.ContentDiv!], dragData, left, top, { + offsetX: dragData.offset[0], + offsetY: dragData.offset[1], + hideSource: false + }); + } + e.stopPropagation(); + } + + @computed + get templateButton() { + const view0 = this.view0; const templates: Map = new Map(); Array.from(Object.values(Templates.TemplateList)).map(template => templates.set(template, this.props.views.reduce((checked, doc) => checked || doc?.getLayoutPropStr("show" + template.Name) ? true : false, false as boolean))); + return !view0 ? (null) :
    + v).map(v => v as DocumentView)} templates={templates} />}> +
    + {} +
    +
    +
    ; + } + + render() { + if (!this.view0) return (null); const isText = this.view0.props.Document.data instanceof RichTextField; // bcz: Todo - can't assume layout is using the 'data' field. need to add fieldKey to DocumentView const considerPull = isText && this.considerGoogleDocsPull; @@ -234,7 +299,13 @@ export class DocumentButtonBar extends React.Component<{ views: (DocumentView | {this.linkButton}
    - v).map(v => v as DocumentView)} templates={templates} /> + {this.templateButton} +
    +
    + {this.metadataButton} +
    +
    + {this.contextButton}
    {this.considerGoogleDocsPush} @@ -242,7 +313,6 @@ export class DocumentButtonBar extends React.Component<{ views: (DocumentView |
    {this.considerGoogleDocsPull}
    - {this.contextButton}
    ; } } \ No newline at end of file diff --git a/src/client/views/MainView.tsx b/src/client/views/MainView.tsx index 2297c2bb3..87a81504c 100644 --- a/src/client/views/MainView.tsx +++ b/src/client/views/MainView.tsx @@ -1,6 +1,6 @@ import { library } from '@fortawesome/fontawesome-svg-core'; import { - faArrowDown, faArrowUp, faBolt, faCaretUp, faCat, faCheck, faChevronRight, faClone, faCloudUploadAlt, faCommentAlt, faCut, faEllipsisV, faExclamation, faFilePdf, faFilm, faFont, faGlobeAsia, faLongArrowAltRight, + faArrowDown, faBullseye, faFilter, faArrowUp, faBolt, faCaretUp, faCat, faCheck, faChevronRight, faClone, faCloudUploadAlt, faCommentAlt, faCut, faEllipsisV, faExclamation, faFilePdf, faFilm, faFont, faGlobeAsia, faLongArrowAltRight, faMusic, faObjectGroup, faPause, faMousePointer, faPenNib, faFileAudio, faPen, faEraser, faPlay, faPortrait, faRedoAlt, faThumbtack, faTree, faTv, faUndoAlt, faHighlighter, faMicrophone, faCompressArrowsAlt, faPhone, faStamp, faClipboard } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; @@ -131,6 +131,8 @@ export class MainView extends React.Component { library.add(faLongArrowAltRight); library.add(faCheck); library.add(faCaretUp); + library.add(faFilter); + library.add(faBullseye); library.add(faArrowDown); library.add(faArrowUp); library.add(faCloudUploadAlt); diff --git a/src/client/views/MetadataEntryMenu.scss b/src/client/views/MetadataEntryMenu.scss index 7da55fd1c..5f4a52c0c 100644 --- a/src/client/views/MetadataEntryMenu.scss +++ b/src/client/views/MetadataEntryMenu.scss @@ -8,6 +8,10 @@ } } +#metadataEntry-outer { + overflow: auto !important; +} + .metadataEntry-keys { max-height: 80; overflow-y: auto; diff --git a/src/client/views/MetadataEntryMenu.tsx b/src/client/views/MetadataEntryMenu.tsx index 22259e509..23b21ae0c 100644 --- a/src/client/views/MetadataEntryMenu.tsx +++ b/src/client/views/MetadataEntryMenu.tsx @@ -196,7 +196,7 @@ export class MetadataEntryMenu extends React.Component{ _ref = React.createRef(); render() { return ( -
    +
    Key: { @observable private _hidden: boolean = true; - private _downx = 0; - private _downy = 0; - private _dragRef = React.createRef(); toggleCustom = (e: React.ChangeEvent): void => { this.props.docs.map(dv => dv.setCustomView(e.target.checked)); @@ -81,19 +78,6 @@ export class TemplateMenu extends React.Component { } } - @undoBatch - @action - clearTemplates = (event: React.MouseEvent) => { - Templates.TemplateList.forEach(template => this.props.docs.forEach(d => d.Document["show" + template.Name] = undefined)); - ["backgroundColor", "borderRounding", "width", "height"].forEach(field => this.props.docs.forEach(d => { - if (d.Document.isTemplateDoc && d.props.DataDoc) { - d.Document[field] = undefined; - } else if (d.Document["default" + field[0].toUpperCase() + field.slice(1)] !== undefined) { - d.Document[field] = Doc.GetProto(d.Document)[field] = undefined; - } - })); - } - @action toggleTemplateActivity = (): void => { this._hidden = !this._hidden; @@ -107,40 +91,6 @@ export class TemplateMenu extends React.Component { layout._chromeStatus = (layout._chromeStatus !== "disabled" ? "disabled" : "enabled"); }); } - onAliasButtonUp = (e: PointerEvent): void => { - document.removeEventListener("pointermove", this.onAliasButtonMoved); - document.removeEventListener("pointerup", this.onAliasButtonUp); - e.stopPropagation(); - } - - onAliasButtonDown = (e: React.PointerEvent): void => { - this._downx = e.clientX; - this._downy = e.clientY; - e.stopPropagation(); - e.preventDefault(); - document.removeEventListener("pointermove", this.onAliasButtonMoved); - document.addEventListener("pointermove", this.onAliasButtonMoved); - document.removeEventListener("pointerup", this.onAliasButtonUp); - document.addEventListener("pointerup", this.onAliasButtonUp); - } - onAliasButtonMoved = (e: PointerEvent): void => { - if (this._dragRef.current !== null && (Math.abs(e.clientX - this._downx) > 4 || Math.abs(e.clientY - this._downy) > 4)) { - document.removeEventListener("pointermove", this.onAliasButtonMoved); - document.removeEventListener("pointerup", this.onAliasButtonUp); - - const dragDocView = this.props.docs[0]; - const dragData = new DragManager.DocumentDragData([dragDocView.props.Document]); - const [left, top] = dragDocView.props.ScreenToLocalTransform().inverse().transformPoint(0, 0); - dragData.embedDoc = true; - dragData.dropAction = "alias"; - DragManager.StartDocumentDrag([dragDocView.ContentDiv!], dragData, left, top, { - offsetX: dragData.offset[0], - offsetY: dragData.offset[1], - hideSource: false - }); - } - e.stopPropagation(); - } render() { const layout = Doc.Layout(this.props.docs[0].Document); @@ -151,18 +101,8 @@ export class TemplateMenu extends React.Component { templateMenu.push(); templateMenu.push(); templateMenu.push(); - return ( -
    - - {templateMenu} - {} -
}> - - - - - - ); + return
    + {templateMenu} +
; } } \ No newline at end of file diff --git a/src/client/views/collections/CollectionDockingView.tsx b/src/client/views/collections/CollectionDockingView.tsx index 160279efd..82cb3bc88 100644 --- a/src/client/views/collections/CollectionDockingView.tsx +++ b/src/client/views/collections/CollectionDockingView.tsx @@ -645,7 +645,7 @@ export class DockedFrameRenderer extends React.Component { if (curPres) { const pinDoc = Docs.Create.PresElementBoxDocument({ backgroundColor: "transparent" }); Doc.GetProto(pinDoc).presentationTargetDoc = doc; - Doc.GetProto(pinDoc).title = ComputedField.MakeFunction('(this.presentationTargetDoc instanceof Doc) && this.presentationTargetDoc.title.toString()'); + Doc.GetProto(pinDoc).title = ComputedField.MakeFunction('(this.presentationTargetDoc instanceof Doc) && this.presentationTargetDoc.title?.toString()'); const data = Cast(curPres.data, listSpec(Doc)); if (data) { data.push(pinDoc); diff --git a/src/client/views/collections/CollectionPivotView.tsx b/src/client/views/collections/CollectionPivotView.tsx index 6de20593b..440b6856b 100644 --- a/src/client/views/collections/CollectionPivotView.tsx +++ b/src/client/views/collections/CollectionPivotView.tsx @@ -110,7 +110,7 @@ export class CollectionPivotView extends CollectionSubView(doc => doc) { ); return !facetCollection ? (null) : -
+
(schemaCtor: (doc: Doc) => T) { protected multiTouchDisposer?: InteractionUtils.MultiTouchEventDisposer; private _childLayoutDisposer?: IReactionDisposer; protected createDashEventsTarget = (ele: HTMLDivElement) => { //used for stacking and masonry view - this.dropDisposer && this.dropDisposer(); - this.gestureDisposer && this.gestureDisposer(); - this.multiTouchDisposer && this.multiTouchDisposer(); + this.dropDisposer?.(); + this.gestureDisposer?.(); + this.multiTouchDisposer?.(); if (ele) { this.dropDisposer = DragManager.MakeDropTarget(ele, this.drop.bind(this)); this.gestureDisposer = GestureUtils.MakeGestureTarget(ele, this.onGesture.bind(this)); diff --git a/src/client/views/collections/CollectionTreeView.tsx b/src/client/views/collections/CollectionTreeView.tsx index 395eed372..a7733ab5f 100644 --- a/src/client/views/collections/CollectionTreeView.tsx +++ b/src/client/views/collections/CollectionTreeView.tsx @@ -645,10 +645,12 @@ export class CollectionTreeView extends CollectionSubView(Document) { const fallbackImg = "http://www.cs.brown.edu/~bcz/face.gif"; const detailedTemplate = `{ "doc": { "type": "doc", "content": [ { "type": "paragraph", "content": [ { "type": "dashField", "attrs": { "fieldKey": "short_description" } } ] }, { "type": "paragraph", "content": [ { "type": "dashField", "attrs": { "fieldKey": "year" } } ] }, { "type": "paragraph", "content": [ { "type": "dashField", "attrs": { "fieldKey": "company" } } ] } ] }, "selection":{"type":"text","anchor":1,"head":1},"storedMarks":[] }`; + const textDoc = TextDocument("", { title: "details", _autoHeight: true }); const detailedLayout = Docs.Create.StackingDocument([ CarouselDocument([], { title: "data", _height: 350, _itemIndex: 0, backgroundColor: "#9b9b9b3F" }), - TextDocument("", { title: "details", _autoHeight: true, _textTemplate: new RichTextField(detailedTemplate, "short_description year company") }) + textDoc, ], { _chromeStatus: "disabled", title: "detailed layout stack" }); + textDoc.data = new RichTextField(detailedTemplate, "short_description year company"); detailedLayout.isTemplateDoc = makeTemplate(detailedLayout); const cardLayout = ImageDocument(fallbackImg, { title: "cardLayout", isTemplateDoc: true, isTemplateForField: "hero", }); // this acts like a template doc and a template field ... a little weird, but seems to work? diff --git a/src/client/views/collections/CollectionViewChromes.scss b/src/client/views/collections/CollectionViewChromes.scss index 64411b5fe..efe185922 100644 --- a/src/client/views/collections/CollectionViewChromes.scss +++ b/src/client/views/collections/CollectionViewChromes.scss @@ -20,7 +20,7 @@ .collectionViewBaseChrome-viewPicker { font-size: 75%; - text-transform: uppercase; + //text-transform: uppercase; letter-spacing: 2px; background: rgb(238, 238, 238); color: grey; @@ -34,6 +34,26 @@ outline-color: black; } + .collectionViewBaseChrome-cmdPicker { + margin-left: 3px; + margin-right: 0px; + background: rgb(238, 238, 238); + border: none; + color: grey; + } + .commandEntry-outerDiv { + pointer-events: all; + background-color: gray; + display: flex; + flex-direction: row; + .commandEntry-drop { + color:white; + width:25px; + margin-top: auto; + margin-bottom: auto; + } + } + .collectionViewBaseChrome-collapse { transition: all .5s, opacity 0.3s; position: absolute; @@ -53,6 +73,18 @@ .collectionViewBaseChrome-viewSpecs { margin-left: 10px; display: grid; + + .collectionViewBaseChrome-filterIcon { + position: relative; + display: flex; + margin: auto; + background: gray; + color: white; + width: 40px; + height: 40px; + align-items: center; + justify-content: center; + } .collectionViewBaseChrome-viewSpecsInput { padding: 12px 10px 11px 10px; @@ -240,7 +272,6 @@ .commandEntry-outerDiv { display: flex; flex-direction: column; - width: 165px; height: 40px; } .commandEntry-inputArea { diff --git a/src/client/views/collections/CollectionViewChromes.tsx b/src/client/views/collections/CollectionViewChromes.tsx index e09f90e2c..d1919d588 100644 --- a/src/client/views/collections/CollectionViewChromes.tsx +++ b/src/client/views/collections/CollectionViewChromes.tsx @@ -39,25 +39,24 @@ export class CollectionViewBaseChrome extends React.Component item view", script: "setChildLayout(this.target, this.source?.[0])", params: ["target", "source"], initialize: emptyFunction, immediate: (draggedDocs: Doc[]) => Doc.setChildLayout(this.props.CollectionView.props.Document, draggedDocs.length ? draggedDocs[0] : undefined) }; _narrativeCommand = { - title: "set detailed template", script: "setChildLayout(this.target, this.source?.[0])", params: ["target", "source"], + title: "=> click item view", script: "setChildDetailedLayout(this.target, this.source?.[0])", params: ["target", "source"], initialize: emptyFunction, - immediate: (draggedDocs: Doc[]) => Doc.setChildDetailed(this.props.CollectionView.props.Document, draggedDocs.length ? draggedDocs[0] : undefined) + immediate: (draggedDocs: Doc[]) => Doc.setChildDetailedLayout(this.props.CollectionView.props.Document, draggedDocs.length ? draggedDocs[0] : undefined) }; _contentCommand = { - // title: "set content", script: "getProto(this.target).data = aliasDocs(this.source.map(async p => await p));", params: ["target", "source"], // bcz: doesn't look like we can do async stuff in scripting... - title: "set content", script: "getProto(this.target).data = aliasDocs(this.source);", params: ["target", "source"], + title: "=> content", script: "getProto(this.target).data = aliasDocs(this.source);", params: ["target", "source"], initialize: emptyFunction, immediate: (draggedDocs: Doc[]) => Doc.GetProto(this.props.CollectionView.props.Document).data = new List(draggedDocs.map((d: any) => Doc.MakeAlias(d))) }; _viewCommand = { - title: "restore view", script: "this.target._panX = this.restoredPanX; this.target._panY = this.restoredPanY; this.target.scale = this.restoredScale;", params: ["target"], + title: "=> saved view", script: "this.target._panX = this.restoredPanX; this.target._panY = this.restoredPanY; this.target.scale = this.restoredScale;", params: ["target"], + initialize: (button: Doc) => { button.restoredPanX = this.props.CollectionView.props.Document._panX; button.restoredPanY = this.props.CollectionView.props.Document._panY; button.restoredScale = this.props.CollectionView.props.Document.scale; }, immediate: (draggedDocs: Doc[]) => { this.props.CollectionView.props.Document._panX = 0; this.props.CollectionView.props.Document._panY = 0; this.props.CollectionView.props.Document.scale = 1; }, - initialize: (button: Doc) => { button.restoredPanX = this.props.CollectionView.props.Document._panX; button.restoredPanY = this.props.CollectionView.props.Document._panY; button.restoredScale = this.props.CollectionView.props.Document.scale; } }; _freeform_commands = [this._contentCommand, this._templateCommand, this._narrativeCommand, this._viewCommand]; _stacking_commands = [this._contentCommand, this._templateCommand]; @@ -153,21 +152,32 @@ export class CollectionViewBaseChrome extends React.Component { + //@ts-ignore + runInAction(() => this._currentKey = e.target.selectedOptions[0].value); + } + @action openViewSpecs = (e: React.SyntheticEvent) => { - this._viewSpecsOpen = true; + if (this._viewSpecsOpen) this.closeViewSpecs(); + else { + this._viewSpecsOpen = true; - //@ts-ignore - if (!e.target.classList[0].startsWith("qs")) { - this.closeDatePicker(); - } + //@ts-ignore + if (!e.target?.classList[0]?.startsWith("qs")) { + this.closeDatePicker(); + } - e.stopPropagation(); - document.removeEventListener("pointerdown", this.closeViewSpecs); - document.addEventListener("pointerdown", this.closeViewSpecs); + e.stopPropagation(); + document.removeEventListener("pointerdown", this.closeViewSpecs); + document.addEventListener("pointerdown", this.closeViewSpecs); + } } - @action closeViewSpecs = () => { this._viewSpecsOpen = false; document.removeEventListener("pointerdown", this.closeViewSpecs); }; + @action closeViewSpecs = () => { + this._viewSpecsOpen = false; + document.removeEventListener("pointerdown", this.closeViewSpecs); + }; @action openDatePicker = (e: React.PointerEvent) => { @@ -399,23 +409,20 @@ export class CollectionViewBaseChrome extends React.Component - - - - - - - - - + + + + + + + + + -
- { }} - onPointerDown={this.openViewSpecs} /> - {this.getPivotInput()} +
+
+ +
-
-
- +
+
+
+
diff --git a/src/client/views/collections/ParentDocumentSelector.tsx b/src/client/views/collections/ParentDocumentSelector.tsx index 18f1baf44..115f8d633 100644 --- a/src/client/views/collections/ParentDocumentSelector.tsx +++ b/src/client/views/collections/ParentDocumentSelector.tsx @@ -64,22 +64,13 @@ export class SelectorContextMenu extends React.Component { this.props.addDocTab(col, undefined, "inTab"); // bcz: dataDoc? }; } - get metadataMenu() { - return
- this.props.Views.map(dv => dv.props.Document)} suggestWithFunction />}>{/* tfs: @bcz This might need to be the data document? */} -
-
-
; - } render() { return
-
Metadata: {this.metadataMenu}

Contexts:

{this._docs.map(doc =>

{doc.col.title?.toString()}

)} {this._otherDocs.length ?
: null} - {this._otherDocs.map(doc =>

{doc.col.title?.toString()}

)} + {this._otherDocs.map(doc =>

{doc.col.title?.toString()}

)}
; } } diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index bac968165..20d20f1f6 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -653,7 +653,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { if (!init) { state.initializers![this.Document[Id]] = { panX: this.Document._panX, panY: this.Document._panY }; HistoryUtil.pushState(state); - } else if (init.panX !== this.Document.panX || init.panY !== this.Document.panY) { + } else if (init.panX !== this.Document._panX || init.panY !== this.Document._panY) { init.panX = this.Document._panX; init.panY = this.Document._panY; HistoryUtil.pushState(state); @@ -899,7 +899,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { onContextMenu = (e: React.MouseEvent) => { const layoutItems: ContextMenuProps[] = []; - layoutItems.push({ description: "reset view", event: () => { this.props.Document.panX = this.props.Document.panY = 0; this.props.Document.scale = 1; }, icon: "compress-arrows-alt" }); + layoutItems.push({ description: "reset view", event: () => { this.props.Document._panX = this.props.Document._panY = 0; this.props.Document.scale = 1; }, icon: "compress-arrows-alt" }); layoutItems.push({ description: `${this.Document._LODdisable ? "Enable LOD" : "Disable LOD"}`, event: () => this.Document._LODdisable = !this.Document._LODdisable, icon: "table" }); layoutItems.push({ description: `${this.fitToContent ? "Unset" : "Set"} Fit To Container`, event: () => this.Document._fitToBox = !this.fitToContent, icon: !this.fitToContent ? "expand-arrows-alt" : "compress-arrows-alt" }); layoutItems.push({ description: `${this.Document.useClusters ? "Uncluster" : "Use Clusters"}`, event: () => this.updateClusters(!this.Document.useClusters), icon: "braille" }); diff --git a/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.tsx b/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.tsx index 87b2a9729..041eb69da 100644 --- a/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.tsx +++ b/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.tsx @@ -249,7 +249,7 @@ export class CollectionMulticolumnView extends CollectionSubView(MulticolumnDocu render(): JSX.Element { return ( -
+
{this.contents}
); diff --git a/src/client/views/nodes/CollectionFreeFormDocumentView.tsx b/src/client/views/nodes/CollectionFreeFormDocumentView.tsx index 3244b7d3e..2183129cf 100644 --- a/src/client/views/nodes/CollectionFreeFormDocumentView.tsx +++ b/src/client/views/nodes/CollectionFreeFormDocumentView.tsx @@ -60,8 +60,8 @@ export class CollectionFreeFormDocumentView extends DocComponent Array.from(Cast(this.props.Document?.animateToPos, listSpec("number"), null)), - target => this._animPos = !target ? undefined : target[2] ? [NumCast(this.layoutDoc.x), NumCast(this.layoutDoc.y)] : + this._disposer = reaction(() => Array.from(Cast(this.props.Document?.animateToPos, listSpec("number"), null) || []), + target => this._animPos = !target || !target?.length ? undefined : target[2] ? [NumCast(this.layoutDoc.x), NumCast(this.layoutDoc.y)] : this.props.ScreenToLocalTransform().transformPoint(target[0], target[1]), { fireImmediately: true }); } diff --git a/src/client/views/nodes/PresBox.tsx b/src/client/views/nodes/PresBox.tsx index eda12d6fb..428e9aa7b 100644 --- a/src/client/views/nodes/PresBox.tsx +++ b/src/client/views/nodes/PresBox.tsx @@ -44,7 +44,7 @@ export class PresBox extends React.Component { if (item instanceof Doc && item.type !== DocumentType.PRESELEMENT) { const pinDoc = Docs.Create.PresElementBoxDocument({ backgroundColor: "transparent" }); Doc.GetProto(pinDoc).presentationTargetDoc = item; - Doc.GetProto(pinDoc).title = ComputedField.MakeFunction('(this.presentationTargetDoc instanceof Doc) && this.presentationTargetDoc.title.toString()'); + Doc.GetProto(pinDoc).title = ComputedField.MakeFunction('this.presentationTargetDoc?.title?.toString()'); value.splice(i, 1, pinDoc); } }); @@ -342,7 +342,7 @@ export class PresBox extends React.Component { doc.presBox = this.props.Document; doc.presBoxKey = this.props.fieldKey; doc.collapsedHeight = hgt; - doc.height = ComputedField.MakeFunction("this.collapsedHeight + Number(this.embedOpen ? 100:0)"); + doc._height = ComputedField.MakeFunction("this.collapsedHeight + Number(this.embedOpen ? 100:0)"); const curScale = NumCast(doc.viewScale, null); if (curScale === undefined) { doc.viewScale = 1; diff --git a/src/client/views/search/SearchBox.scss b/src/client/views/search/SearchBox.scss index 0825580b7..f492ea773 100644 --- a/src/client/views/search/SearchBox.scss +++ b/src/client/views/search/SearchBox.scss @@ -9,6 +9,7 @@ position: absolute; font-size: 10px; line-height: 1; + overflow: hidden; } .searchBox-bar { height: 32px; diff --git a/src/new_fields/Doc.ts b/src/new_fields/Doc.ts index d129fe33b..5f454e930 100644 --- a/src/new_fields/Doc.ts +++ b/src/new_fields/Doc.ts @@ -710,9 +710,9 @@ export namespace Doc { } let dt = 0; - export function linkFollowHighlight(destDoc: Doc) { + export function linkFollowHighlight(destDoc: Doc, dataAndDisplayDocs = true) { linkFollowUnhighlight(); - Doc.HighlightDoc(destDoc); + Doc.HighlightDoc(destDoc, dataAndDisplayDocs); document.removeEventListener("pointerdown", linkFollowUnhighlight); document.addEventListener("pointerdown", linkFollowUnhighlight); const x = dt = Date.now(); @@ -726,10 +726,10 @@ export namespace Doc { export function IsHighlighted(doc: Doc) { return highlightManager.HighlightedDoc.get(doc) || highlightManager.HighlightedDoc.get(Doc.GetDataDoc(doc)); } - export function HighlightDoc(doc: Doc) { + export function HighlightDoc(doc: Doc, dataAndDisplayDocs = true) { runInAction(() => { highlightManager.HighlightedDoc.set(doc, true); - highlightManager.HighlightedDoc.set(Doc.GetDataDoc(doc), true); + dataAndDisplayDocs && highlightManager.HighlightedDoc.set(Doc.GetDataDoc(doc), true); }); } export function UnHighlightDoc(doc: Doc) { @@ -756,7 +756,7 @@ export namespace Doc { source.dragFactory instanceof Doc && source.dragFactory.isTemplateDoc ? source.dragFactory : source && source.layout instanceof Doc && source.layout.isTemplateDoc ? source.layout : undefined; } - export function setChildDetailed(target: Doc, source?: Doc) { + export function setChildDetailedLayout(target: Doc, source?: Doc) { target.childDetailed = source && source.isTemplateDoc ? source : source && source.dragFactory instanceof Doc && source.dragFactory.isTemplateDoc ? source.dragFactory : source && source.layout instanceof Doc && source.layout.isTemplateDoc ? source.layout : undefined; @@ -776,6 +776,7 @@ export namespace Doc { Scripting.addGlobal(function renameAlias(doc: any, n: any) { return StrCast(Doc.GetProto(doc).title).replace(/\([0-9]*\)/, "") + `(${n})`; }); Scripting.addGlobal(function getProto(doc: any) { return Doc.GetProto(doc); }); Scripting.addGlobal(function setChildLayout(target: any, source: any) { Doc.setChildLayout(target, source); }); +Scripting.addGlobal(function setChildDetailedLayout(target: any, source: any) { Doc.setChildDetailedLayout(target, source); }); Scripting.addGlobal(function getAlias(doc: any) { return Doc.MakeAlias(doc); }); Scripting.addGlobal(function getCopy(doc: any, copyProto: any) { return doc.isTemplateDoc ? Doc.ApplyTemplate(doc) : Doc.MakeCopy(doc, copyProto); }); Scripting.addGlobal(function copyField(field: any) { return ObjectField.MakeCopy(field); }); diff --git a/src/server/authentication/models/current_user_utils.ts b/src/server/authentication/models/current_user_utils.ts index 6f99af8f6..35b266608 100644 --- a/src/server/authentication/models/current_user_utils.ts +++ b/src/server/authentication/models/current_user_utils.ts @@ -14,6 +14,7 @@ import { Utils } from "../../../Utils"; import { nullAudio } from "../../../new_fields/URLField"; import { DragManager } from "../../../client/util/DragManager"; import { InkingControl } from "../../../client/views/InkingControl"; +import { CollectionViewType } from "../../../client/views/collections/CollectionView"; export class CurrentUserUtils { private static curr_id: string; @@ -54,7 +55,7 @@ export class CurrentUserUtils { { title: "cat image", icon: "cat", ignoreClick: true, drag: 'Docs.Create.ImageDocument("https://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/Cat03.jpg/1200px-Cat03.jpg", { _width: 200, title: "an image of a cat" })' }, { title: "record", icon: "microphone", ignoreClick: true, drag: `Docs.Create.AudioDocument("${nullAudio}", { _width: 200, title: "ready to record audio" })` }, { title: "clickable button", icon: "bolt", ignoreClick: true, drag: 'Docs.Create.ButtonDocument({ _width: 150, _height: 50, title: "Button" })' }, - { title: "presentation", icon: "tv", ignoreClick: true, drag: 'Doc.UserDoc().curPresentation = Docs.Create.PresDocument(new List(), { _width: 200, _height: 500, title: "a presentation trail" })' }, + { title: "presentation", icon: "tv", ignoreClick: true, drag: `Doc.UserDoc().curPresentation = Docs.Create.PresDocument(new List(), { _width: 200, _height: 500, _viewType: ${CollectionViewType.Stacking}, title: "a presentation trail" })` }, { title: "import folder", icon: "cloud-upload-alt", ignoreClick: true, drag: 'Docs.Create.DirectoryImportDocument({ title: "Directory Import", _width: 400, _height: 400 })' }, { title: "mobile view", icon: "phone", ignoreClick: true, drag: 'Doc.UserDoc().activeMobile' }, { title: "use pen", icon: "pen-nib", click: 'activatePen(this.activePen.pen = sameDocs(this.activePen.pen, this) ? undefined : this,2, this.backgroundColor)', backgroundColor: "blue", ischecked: `sameDocs(this.activePen.pen, this)`, activePen: doc }, @@ -246,7 +247,7 @@ export class CurrentUserUtils { // the initial presentation Doc to use static setupDefaultPresentation(doc: Doc) { - doc.curPresentation = Docs.Create.PresDocument(new List(), { title: "Presentation", boxShadow: "0 0" }); + doc.curPresentation = Docs.Create.PresDocument(new List(), { title: "Presentation", _viewType: CollectionViewType.Stacking, boxShadow: "0 0" }); } static setupMobileUploads(doc: Doc) { -- cgit v1.2.3-70-g09d2