Преглед изворни кода

refactor searchConfigured -> isSearchServiceConfigured

Yuki Takei пре 6 година
родитељ
комит
586f039c93

+ 1 - 1
src/server/crowi/index.js

@@ -333,7 +333,7 @@ Crowi.prototype.setupSearcher = async function() {
   const SearchService = require('@server/service/search');
   const searchService = new SearchService(this);
 
-  if (searchService.isAvailable) {
+  if (searchService.isConfigured) {
     try {
       this.searcher = searchService;
     }

+ 24 - 4
src/server/service/search.js

@@ -7,6 +7,8 @@ class SearchService {
     this.crowi = crowi;
     this.configManager = crowi.configManager;
 
+    this.isErrorOccured = null;
+
     try {
       this.delegator = this.initDelegator();
     }
@@ -14,16 +16,20 @@ class SearchService {
       logger.error(err);
     }
 
-    if (this.isAvailable) {
+    if (this.isConfigured) {
       this.delegator.init();
       this.registerUpdateEvent();
     }
   }
 
-  get isAvailable() {
+  get isConfigured() {
     return this.delegator != null;
   }
 
+  get isReachable() {
+    return this.isConfigured && !this.isErrorOccured;
+  }
+
   get isSearchboxEnabled() {
     return this.configManager.getConfig('crowi', 'app:searchboxSslUrl') != null;
   }
@@ -69,7 +75,14 @@ class SearchService {
   }
 
   async getInfo() {
-    return this.delegator.getInfo();
+    try {
+      return await this.delegator.getInfo();
+    }
+    catch (err) {
+      // switch error flag
+      this.isErrorOccured = true;
+      throw err;
+    }
   }
 
   async getInfoForAdmin() {
@@ -85,7 +98,14 @@ class SearchService {
   }
 
   async searchKeyword(keyword, user, userGroups, searchOpts) {
-    return this.delegator.searchKeyword(keyword, user, userGroups, searchOpts);
+    try {
+      return await this.delegator.searchKeyword(keyword, user, userGroups, searchOpts);
+    }
+    catch (err) {
+      // switch error flag
+      this.isErrorOccured = true;
+      throw err;
+    }
   }
 
 }

+ 3 - 5
src/server/util/swigFunctions.js

@@ -114,11 +114,9 @@ module.exports = function(crowi, req, locals) {
     return crowi.passportService.getSamlMissingMandatoryConfigKeys();
   };
 
-  locals.searchConfigured = function() {
-    if (crowi.getSearcher()) {
-      return true;
-    }
-    return false;
+  locals.isSearchServiceConfigured = function() {
+    const searchService = crowi.getSearcher();
+    return searchService != null && searchService.isConfigured;
   };
 
   locals.isHackmdSetup = function() {

+ 1 - 1
src/server/views/layout-crowi/page_list.html

@@ -39,7 +39,7 @@
   # so now bind the values through the hidden fields.
   #}
   {% if false %} {# Disable temporaly -- 2018.03.08 Yuki Takei #}
-  {% if searchConfigured() && !isTopPage() && !isTrashPage() %}
+  {% if isSearchServiceConfigured() && !isTopPage() && !isTrashPage() %}
   <div id="page-list-search">
   </div>
   {% endif %}

+ 2 - 2
src/server/views/layout/layout.html

@@ -115,7 +115,7 @@
         </li>
         #}
         <li>
-          {% if searchConfigured() %}
+          {% if isSearchServiceConfigured() %}
           <div class="navbar-form navbar-left search-top" role="search" id="search-top"></div>
           {% endif %}
         </li>
@@ -177,7 +177,7 @@
     <div class="sidebar-nav navbar-collapse slimscrollsidebar">
       <ul class="nav" id="side-menu">
         <li class="sidebar-search hidden-sm hidden-md hidden-lg">
-          {% if searchConfigured() %}
+          {% if isSearchServiceConfigured() %}
           <div class="search-sidebar" role="search" id="search-sidebar"></div>
           {% endif %}
         </li>

+ 1 - 1
src/server/views/modal/create_page.html

@@ -31,7 +31,7 @@
             <legend>{{ t('Create under') }}</legend>
             <div class="d-flex create-page-input-container">
               <div class="create-page-input-row d-flex align-items-center">
-                {% if searchConfigured() %}
+                {% if isSearchServiceConfigured() %}
                 <div id="create-page-name-input" class="page-name-input"></div>
                 {% else %}
                 <input type="text" value="{{ parentPath(path) }}" class="page-name-input form-control " placeholder="{{ t('Input page name') }}" required />

+ 1 - 1
src/server/views/modal/duplicate.html

@@ -17,7 +17,7 @@
               <label for="duplicatePageName">{{ t('modal_duplicate.label.New page name') }}</label><br>
               <div class="input-group">
                 <span class="input-group-addon">{{ baseUrl }}</span>
-                {% if searchConfigured() %}
+                {% if isSearchServiceConfigured() %}
                 <div id="duplicate-page-name-input" class="page-name-input"></div>
                 {% else %}
                 <input type="text" class="form-control" name="new_path" id="duplicatePageName" value="{{ page.path }}">

+ 1 - 1
src/server/views/modal/rename.html

@@ -17,7 +17,7 @@
             <label for="newPageName">{{ t('modal_rename.label.New page name') }}</label><br>
             <div class="input-group">
               <span class="input-group-addon">{{ baseUrl }}</span>
-              {% if searchConfigured() %}
+              {% if isSearchServiceConfigured() %}
               <div id="rename-page-name-input" class="page-name-input"></div>
               {% else %}
               <input type="text" class="form-control" name="new_path" id="newPageName" value="{{ page.path }}">