Przeglądaj źródła

Добавлена памятка, поправки поиска

Book Pauk 2 lat temu
rodzic
commit
8f1c222548

+ 1 - 1
client/components/Search/BookView/BookView.vue

@@ -17,7 +17,7 @@
             <q-icon name="la la-copy" size="20px" />
         </div>
 
-        <div v-if="showGenres" class="q-ml-sm">
+        <div v-if="showGenres && book.genre" class="q-ml-sm">
             {{ bookGenre }}
         </div>
 

+ 42 - 4
client/components/Search/Search.vue

@@ -98,7 +98,7 @@
                     <div class="q-mx-xs" />
                     <DivBtn class="text-white q-mt-xs bg-grey-13" :size="30" :icon-size="24" icon="la la-question" round @click="showSearchHelp">
                         <q-tooltip :delay="1500" anchor="bottom middle" content-style="font-size: 80%" max-width="400px">
-                            Подсказка
+                            Памятка
                         </q-tooltip>
                     </DivBtn>
 
@@ -435,11 +435,47 @@ class Search {
     }
 
     showSearchHelp() {
-        this.$root.stdDialog.alert(`
+        let info = '';  
+        info += `<div style="min-width: 250px" />`;
+        info += `
 <p>
-    Здесь должна быть подсказка<br>
+    Работу поискового движка можно описать одной фразой: найти авторов по указанным критериям.
+    Далее по уже найденным авторам ищутся книги, которые группируются по сериям.
+    <br><br>
+    По умолчанию поисковое значение трактуется как "начинается с". Например значение автора "Пушкин"
+    трактуется как: найти авторов, имя которых начинается с "Пушкин". Поиск всегда ведется без
+    учета регистра - значения "Ельцин" и "ельцин" равнозначны.
+    <br><br>
+    В поисковых полях "Автор", "Серия", "Название" также доступны следующие префиксы:
+    <ul>
+        <li>
+            "=" поиск по точному совпадению. Например, если задать "=Пушкин Александр Сергеевич" в поле автора,
+            то будет найден в точности этот автор
+        </li>
+        <br>
+        <li>
+            "*" поиск подстроки в строке. Например, для "*Александр" в поле автора, то будут найдены
+            все авторы, имя которых содержит "Александр"
+        </li>
+        <br>
+        <li>
+            "#" поиск подстроки в строке, но только для тех значений (в т.ч. пустых), которые не начинаются ни с одной буквы русского или латинского алфавита.
+            Например, значение "#поворот" в поле автора означает: найти всех авторов, имя которых начинается не с русской или латинской буквы и содержит слово "поворот".
+            Указание простого "#" в поиске для названия означает: найти всех авторов, названия книг которых начинаются не с русской или латинской буквы или пусты.
+        </li>
+        <br>
+        <li>
+            "?" поиск пустых значений или тех, что начинаются с этого символа. Например, "?" в поле серии означает: найти всех авторов, у которых есть книги без серий
+            или название серии начинается с "?".
+            Значение "?" в поле названия означает: найти всех авторов, книги которых без названия или начинаются с "?".
+        </li>
+        <br>
+        Специльное имя автора "?" служит для поиска и группировки книг без автора.
+    </ul>
 </p>
-            `, 'Подсказка', {iconName: 'la la-info-circle'});
+`;        
+
+        this.$root.stdDialog.alert(info, 'Памятка', {iconName: 'la la-info-circle'});
     }
 
     showHiddenHelp() {
@@ -841,6 +877,8 @@ class Search {
 
                 searchValue = searchValue.substring(1);
                 return !bookValue || (!enru.has(bookValue[0]) && bookValue.indexOf(searchValue) >= 0);
+            } else if (searchValue[0] == '?') {
+                return bookValue == '' || bookValue.indexOf(searchValue) == 0;
             } else {
 
                 return bookValue.indexOf(searchValue) == 0;