| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 | 
							- /* global WIKI */
 
- module.exports = {
 
-   activate() {
 
-     // not used
 
-   },
 
-   deactivate() {
 
-     // not used
 
-   },
 
-   /**
 
-    * INIT
 
-    */
 
-   init() {
 
-     // not used
 
-   },
 
-   /**
 
-    * QUERY
 
-    *
 
-    * @param {String} q Query
 
-    * @param {Object} opts Additional options
 
-    */
 
-   async query(q, opts) {
 
-     const results = await WIKI.models.pages.query()
 
-       .column('pages.id', 'title', 'description', 'path', 'localeCode as locale')
 
-       .withGraphJoined('tags') // Adding page tags since they can be used to check resource access permissions
 
-       .modifyGraph('tags', builder => {
 
-         builder.select('tag')
 
-       })
 
-       .where(builder => {
 
-         builder.where('isPublished', true)
 
-         if (opts.locale) {
 
-           builder.andWhere('localeCode', opts.locale)
 
-         }
 
-         if (opts.path) {
 
-           builder.andWhere('path', 'like', `${opts.path}%`)
 
-         }
 
-         builder.andWhere(builderSub => {
 
-           if (WIKI.config.db.type === 'postgres') {
 
-             builderSub.where('title', 'ILIKE', `%${q}%`)
 
-             builderSub.orWhere('description', 'ILIKE', `%${q}%`)
 
-             builderSub.orWhere('path', 'ILIKE', `%${q.toLowerCase()}%`)
 
-           } else {
 
-             builderSub.where('title', 'LIKE', `%${q}%`)
 
-             builderSub.orWhere('description', 'LIKE', `%${q}%`)
 
-             builderSub.orWhere('path', 'LIKE', `%${q.toLowerCase()}%`)
 
-           }
 
-         })
 
-       })
 
-       .limit(WIKI.config.search.maxHits)
 
-     return {
 
-       results,
 
-       suggestions: [],
 
-       totalHits: results.length
 
-     }
 
-   },
 
-   /**
 
-    * CREATE
 
-    *
 
-    * @param {Object} page Page to create
 
-    */
 
-   async created(page) {
 
-     // not used
 
-   },
 
-   /**
 
-    * UPDATE
 
-    *
 
-    * @param {Object} page Page to update
 
-    */
 
-   async updated(page) {
 
-     // not used
 
-   },
 
-   /**
 
-    * DELETE
 
-    *
 
-    * @param {Object} page Page to delete
 
-    */
 
-   async deleted(page) {
 
-     // not used
 
-   },
 
-   /**
 
-    * RENAME
 
-    *
 
-    * @param {Object} page Page to rename
 
-    */
 
-   async renamed(page) {
 
-     // not used
 
-   },
 
-   /**
 
-    * REBUILD INDEX
 
-    */
 
-   async rebuild() {
 
-     // not used
 
-   }
 
- }
 
 
  |