Merge pull request #1100 from ramiresviana/fixes-3
This commit is contained in:
		
						commit
						4c2a094255
					
				| 
						 | 
				
			
			@ -1,8 +1,26 @@
 | 
			
		|||
import { fetchJSON, removePrefix } from './utils'
 | 
			
		||||
import { fetchURL, removePrefix } from './utils'
 | 
			
		||||
import url from '../utils/url'
 | 
			
		||||
 | 
			
		||||
export default async function search (url, query) {
 | 
			
		||||
  url = removePrefix(url)
 | 
			
		||||
export default async function search (base, query) {
 | 
			
		||||
  base = removePrefix(base)
 | 
			
		||||
  query = encodeURIComponent(query)
 | 
			
		||||
 | 
			
		||||
  return fetchJSON(`/api/search${url}?query=${query}`, {})
 | 
			
		||||
  if (!base.endsWith('/')) {
 | 
			
		||||
    base += '/'
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  let res = await fetchURL(`/api/search${base}?query=${query}`, {})
 | 
			
		||||
 | 
			
		||||
  if (res.status === 200) {
 | 
			
		||||
    let data = await res.json()
 | 
			
		||||
 | 
			
		||||
    data = data.map((item) => {
 | 
			
		||||
      item.url = `/files${base}` + url.encodePath(item.path)
 | 
			
		||||
      return item
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    return data
 | 
			
		||||
  } else {
 | 
			
		||||
    throw Error(res.status)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -49,7 +49,7 @@
 | 
			
		|||
        </template>
 | 
			
		||||
        <ul v-show="results.length > 0">
 | 
			
		||||
          <li v-for="(s,k) in filteredResults" :key="k">
 | 
			
		||||
            <router-link @click.native="close" :to="'./' + s.path">
 | 
			
		||||
            <router-link @click.native="close" :to="s.url">
 | 
			
		||||
              <i v-if="s.dir" class="material-icons">folder</i>
 | 
			
		||||
              <i v-else class="material-icons">insert_drive_file</i>
 | 
			
		||||
              <span>./{{ s.path }}</span>
 | 
			
		||||
| 
						 | 
				
			
			@ -183,8 +183,12 @@ export default {
 | 
			
		|||
 | 
			
		||||
      this.ongoing = true
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      try {
 | 
			
		||||
        this.results = await search(path, this.value)
 | 
			
		||||
      } catch (error) {
 | 
			
		||||
        this.$showError(error)
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      this.ongoing = false
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -103,7 +103,7 @@ export default {
 | 
			
		|||
    }
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    ...mapState(['req', 'user', 'oldReq', 'jwt', 'loading']),
 | 
			
		||||
    ...mapState(['req', 'user', 'oldReq', 'jwt', 'loading', 'show']),
 | 
			
		||||
    hasPrevious () {
 | 
			
		||||
      return (this.previousLink !== '')
 | 
			
		||||
    },
 | 
			
		||||
| 
						 | 
				
			
			@ -159,6 +159,10 @@ export default {
 | 
			
		|||
    key (event) {
 | 
			
		||||
      event.preventDefault()
 | 
			
		||||
 | 
			
		||||
      if (this.show !== null) {
 | 
			
		||||
        return
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (event.which === 13 || event.which === 39) { // right arrow
 | 
			
		||||
        if (this.hasNext) this.next()
 | 
			
		||||
      } else if (event.which === 37) { // left arrow
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,7 +16,11 @@ export default {
 | 
			
		|||
        return this.commands.join(' ')
 | 
			
		||||
      },
 | 
			
		||||
      set (value) {
 | 
			
		||||
        if (value !== '') {
 | 
			
		||||
          this.$emit('update:commands', value.split(' '))
 | 
			
		||||
        } else {
 | 
			
		||||
          this.$emit('update:commands', [])
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -96,31 +96,25 @@ export function scanFiles(dt) {
 | 
			
		|||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function handleFiles(files, path, overwrite = false) {
 | 
			
		||||
export function handleFiles(files, base, overwrite = false) {
 | 
			
		||||
  for (let i = 0; i < files.length; i++) {
 | 
			
		||||
    let id = store.state.upload.id
 | 
			
		||||
    let path = base
 | 
			
		||||
    let file = files[i]
 | 
			
		||||
 | 
			
		||||
    let filename = (file.fullPath !== undefined) ? file.fullPath : file.name
 | 
			
		||||
    let filenameEncoded = url.encodeRFC5987ValueChars(filename)
 | 
			
		||||
 | 
			
		||||
    let id = store.state.upload.id
 | 
			
		||||
 | 
			
		||||
    let itemPath = path + filenameEncoded
 | 
			
		||||
    if (file.fullPath !== undefined) {
 | 
			
		||||
      path += url.encodePath(file.fullPath)
 | 
			
		||||
    } else {
 | 
			
		||||
      path += url.encodeRFC5987ValueChars(file.name)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (file.isDir) {
 | 
			
		||||
      itemPath = path
 | 
			
		||||
      let folders = file.fullPath.split("/")
 | 
			
		||||
 | 
			
		||||
      for (let i = 0; i < folders.length; i++) {
 | 
			
		||||
        let folder = folders[i]
 | 
			
		||||
        let folderEncoded = encodeURIComponent(folder)
 | 
			
		||||
        itemPath += folderEncoded + "/"
 | 
			
		||||
      }
 | 
			
		||||
      path += '/'
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const item = {
 | 
			
		||||
      id,
 | 
			
		||||
      path: itemPath,
 | 
			
		||||
      path,
 | 
			
		||||
      file,
 | 
			
		||||
      overwrite
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -60,7 +60,9 @@ func Search(fs afero.Fs, scope, query string, checker rules.Checker, found func(
 | 
			
		|||
		if len(search.Terms) > 0 {
 | 
			
		||||
			for _, term := range search.Terms {
 | 
			
		||||
				if strings.Contains(path, term) {
 | 
			
		||||
					return found(strings.TrimPrefix(originalPath, scope), f)
 | 
			
		||||
					originalPath = strings.TrimPrefix(originalPath, scope)
 | 
			
		||||
					originalPath = strings.TrimPrefix(originalPath, "/")
 | 
			
		||||
					return found(originalPath, f)
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue