mirror of
https://github.com/simon987/sist2.git
synced 2025-04-22 03:36:48 +00:00
Compare commits
No commits in common. "ed8b4f4fad50db15a3c950d1d38b0ea459faada0" and "b17b9439df34c592146f05c0361c9b207f373f02" have entirely different histories.
ed8b4f4fad
...
b17b9439df
@ -10,7 +10,7 @@ steps:
|
|||||||
- name: build
|
- name: build
|
||||||
image: simon987/sist2-build
|
image: simon987/sist2-build
|
||||||
commands:
|
commands:
|
||||||
- ./scripts/build.sh
|
- ./ci/build.sh
|
||||||
- name: docker
|
- name: docker
|
||||||
image: plugins/docker
|
image: plugins/docker
|
||||||
settings:
|
settings:
|
||||||
@ -55,7 +55,7 @@ steps:
|
|||||||
- name: build
|
- name: build
|
||||||
image: simon987/sist2-build-arm64
|
image: simon987/sist2-build-arm64
|
||||||
commands:
|
commands:
|
||||||
- ./scripts/build_arm64.sh
|
- ./ci/build_arm64.sh
|
||||||
- name: scp files
|
- name: scp files
|
||||||
image: appleboy/drone-scp
|
image: appleboy/drone-scp
|
||||||
settings:
|
settings:
|
||||||
|
@ -78,7 +78,6 @@
|
|||||||
"name": {
|
"name": {
|
||||||
"analyzer": "content_analyzer",
|
"analyzer": "content_analyzer",
|
||||||
"type": "text",
|
"type": "text",
|
||||||
"fielddata": true,
|
|
||||||
"fields": {
|
"fields": {
|
||||||
"nGram": {
|
"nGram": {
|
||||||
"type": "text",
|
"type": "text",
|
||||||
|
2
sist2-vue/dist/css/index.css
vendored
2
sist2-vue/dist/css/index.css
vendored
File diff suppressed because one or more lines are too long
2
sist2-vue/dist/js/index.js
vendored
2
sist2-vue/dist/js/index.js
vendored
File diff suppressed because one or more lines are too long
@ -43,20 +43,6 @@ const SORT_MODES = {
|
|||||||
{_tie: {order: "asc"}}
|
{_tie: {order: "asc"}}
|
||||||
],
|
],
|
||||||
key: (hit: EsHit) => hit._source.size
|
key: (hit: EsHit) => hit._source.size
|
||||||
},
|
|
||||||
nameAsc: {
|
|
||||||
mode: [
|
|
||||||
{name: {order: "asc"}},
|
|
||||||
{_tie: {order: "asc"}}
|
|
||||||
],
|
|
||||||
key: (hit: EsHit) => hit._source.name
|
|
||||||
},
|
|
||||||
nameDesc: {
|
|
||||||
mode: [
|
|
||||||
{name: {order: "desc"}},
|
|
||||||
{_tie: {order: "asc"}}
|
|
||||||
],
|
|
||||||
key: (hit: EsHit) => hit._source.name
|
|
||||||
}
|
}
|
||||||
} as any;
|
} as any;
|
||||||
|
|
||||||
|
@ -7,27 +7,11 @@
|
|||||||
value-field="id"></b-form-select>
|
value-field="id"></b-form-select>
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
|
<b-list-group id="index-picker-desktop">
|
||||||
<div class="d-flex justify-content-between align-content-center">
|
|
||||||
<span>
|
|
||||||
{{ selectedIndices.length }}
|
|
||||||
{{ selectedIndices.length === 1 ? $t("indexPicker.selectedIndex") : $t("indexPicker.selectedIndices") }}
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<b-button variant="link" @click="selectAll()"> {{ $t("indexPicker.selectAll") }}</b-button>
|
|
||||||
<b-button variant="link" @click="selectNone()"> {{ $t("indexPicker.selectNone") }}</b-button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<b-list-group id="index-picker-desktop" class="unselectable">
|
|
||||||
<b-list-group-item
|
<b-list-group-item
|
||||||
v-for="idx in indices"
|
v-for="idx in indices"
|
||||||
@click="toggleIndex(idx, $event)"
|
@click="toggleIndex(idx)"
|
||||||
@click.shift="shiftClick(idx, $event)"
|
class="d-flex justify-content-between align-items-center list-group-item-action pointer">
|
||||||
class="d-flex justify-content-between align-items-center list-group-item-action pointer"
|
|
||||||
:class="{active: lastClickIndex === idx}"
|
|
||||||
>
|
|
||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
<b-checkbox @change="toggleIndex(idx)" :checked="isSelected(idx)"></b-checkbox>
|
<b-checkbox @change="toggleIndex(idx)" :checked="isSelected(idx)"></b-checkbox>
|
||||||
{{ idx.name }}
|
{{ idx.name }}
|
||||||
@ -52,7 +36,6 @@ export default Vue.extend({
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
loading: true,
|
loading: true,
|
||||||
lastClickIndex: null
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -70,50 +53,13 @@ export default Vue.extend({
|
|||||||
...mapActions({
|
...mapActions({
|
||||||
setSelectedIndices: "setSelectedIndices"
|
setSelectedIndices: "setSelectedIndices"
|
||||||
}),
|
}),
|
||||||
shiftClick(index, e) {
|
|
||||||
if (this.lastClickIndex === null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const select = this.isSelected(this.lastClickIndex);
|
|
||||||
|
|
||||||
let leftBoundary = this.indices.indexOf(this.lastClickIndex);
|
|
||||||
let rightBoundary = this.indices.indexOf(index);
|
|
||||||
|
|
||||||
if (rightBoundary < leftBoundary) {
|
|
||||||
let tmp = leftBoundary;
|
|
||||||
leftBoundary = rightBoundary;
|
|
||||||
rightBoundary = tmp;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (let i = leftBoundary; i <= rightBoundary; i++) {
|
|
||||||
if (select) {
|
|
||||||
if (!this.isSelected(this.indices[i])) {
|
|
||||||
this.setSelectedIndices([this.indices[i], ...this.selectedIndices]);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
this.setSelectedIndices(this.selectedIndices.filter(idx => idx !== this.indices[i]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
selectAll() {
|
|
||||||
this.setSelectedIndices(this.indices);
|
|
||||||
},
|
|
||||||
selectNone() {
|
|
||||||
this.setSelectedIndices([]);
|
|
||||||
},
|
|
||||||
onSelect(value) {
|
onSelect(value) {
|
||||||
this.setSelectedIndices(this.indices.filter(idx => value.includes(idx.id)));
|
this.setSelectedIndices(this.indices.filter(idx => value.includes(idx.id)));
|
||||||
},
|
},
|
||||||
formatIdxDate(timestamp: number): string {
|
formatIdxDate(timestamp: number): string {
|
||||||
return format(new Date(timestamp * 1000), "yyyy-MM-dd");
|
return format(new Date(timestamp * 1000), "yyyy-MM-dd");
|
||||||
},
|
},
|
||||||
toggleIndex(index, e) {
|
toggleIndex(index) {
|
||||||
if (e.shiftKey) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.lastClickIndex = index;
|
|
||||||
if (this.isSelected(index)) {
|
if (this.isSelected(index)) {
|
||||||
this.setSelectedIndices(this.selectedIndices.filter(idx => idx.id != index.id));
|
this.setSelectedIndices(this.selectedIndices.filter(idx => idx.id != index.id));
|
||||||
} else {
|
} else {
|
||||||
@ -146,21 +92,4 @@ export default Vue.extend({
|
|||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
max-height: 132px;
|
max-height: 132px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-link:focus {
|
|
||||||
box-shadow: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.unselectable {
|
|
||||||
user-select: none;
|
|
||||||
-ms-user-select: none;
|
|
||||||
-moz-user-select: none;
|
|
||||||
-webkit-user-select: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list-group-item.active {
|
|
||||||
z-index: 2;
|
|
||||||
background-color: inherit;
|
|
||||||
color: inherit;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
@ -23,7 +23,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import {EsResult} from "@/Sist2Api";
|
import {EsResult} from "@/Sist2Api";
|
||||||
import Vue from "vue";
|
import Vue from "vue";
|
||||||
import {humanFileSize} from "@/util";
|
import {humanFileSize, humanTime} from "@/util";
|
||||||
import DisplayModeToggle from "@/components/DisplayModeToggle.vue";
|
import DisplayModeToggle from "@/components/DisplayModeToggle.vue";
|
||||||
import SortSelect from "@/components/SortSelect.vue";
|
import SortSelect from "@/components/SortSelect.vue";
|
||||||
|
|
||||||
|
@ -19,14 +19,6 @@
|
|||||||
{{ $t("sort.sizeDesc") }}
|
{{ $t("sort.sizeDesc") }}
|
||||||
</b-dropdown-item>
|
</b-dropdown-item>
|
||||||
|
|
||||||
<b-dropdown-item :class="{'dropdown-active': sort === 'nameDesc'}" @click="onSelect('nameDesc')">
|
|
||||||
{{ $t("sort.nameDesc") }}
|
|
||||||
</b-dropdown-item>
|
|
||||||
|
|
||||||
<b-dropdown-item :class="{'dropdown-active': sort === 'nameAsc'}" @click="onSelect('nameAsc')">
|
|
||||||
{{ $t("sort.nameAsc") }}
|
|
||||||
</b-dropdown-item>
|
|
||||||
|
|
||||||
<b-dropdown-item :class="{'dropdown-active': sort === 'random'}" @click="onSelect('random')">
|
<b-dropdown-item :class="{'dropdown-active': sort === 'random'}" @click="onSelect('random')">
|
||||||
{{ $t("sort.random") }}
|
{{ $t("sort.random") }}
|
||||||
</b-dropdown-item>
|
</b-dropdown-item>
|
||||||
|
@ -131,14 +131,13 @@ export default {
|
|||||||
saveTagModalTitle: "Add tag",
|
saveTagModalTitle: "Add tag",
|
||||||
saveTagPlaceholder: "Tag name",
|
saveTagPlaceholder: "Tag name",
|
||||||
confirm: "Confirm",
|
confirm: "Confirm",
|
||||||
|
indexPickerPlaceholder: "Select indices",
|
||||||
sort: {
|
sort: {
|
||||||
relevance: "Relevance",
|
relevance: "Relevance",
|
||||||
dateAsc: "Date (Older first)",
|
dateAsc: "Date (Older first)",
|
||||||
dateDesc: "Date (Newer first)",
|
dateDesc: "Date (Newer first)",
|
||||||
sizeAsc: "Size (Smaller first)",
|
sizeAsc: "Size (Smaller first)",
|
||||||
sizeDesc: "Size (Larger first)",
|
sizeDesc: "Size (Larger first)",
|
||||||
nameAsc: "Name (A-z)",
|
|
||||||
nameDesc: "Name (Z-a)",
|
|
||||||
random: "Random",
|
random: "Random",
|
||||||
},
|
},
|
||||||
d3: {
|
d3: {
|
||||||
@ -146,13 +145,7 @@ export default {
|
|||||||
mimeSize: "Size distribution by media type",
|
mimeSize: "Size distribution by media type",
|
||||||
dateHistogram: "File modification time distribution",
|
dateHistogram: "File modification time distribution",
|
||||||
sizeHistogram: "File size distribution",
|
sizeHistogram: "File size distribution",
|
||||||
},
|
}
|
||||||
indexPicker: {
|
|
||||||
selectNone: "Select None",
|
|
||||||
selectAll: "Select All",
|
|
||||||
selectedIndex: "selected index",
|
|
||||||
selectedIndices: "selected indices",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
fr: {
|
fr: {
|
||||||
searchBar: {
|
searchBar: {
|
||||||
@ -295,8 +288,6 @@ export default {
|
|||||||
dateDesc: "Date (Plus récent)",
|
dateDesc: "Date (Plus récent)",
|
||||||
sizeAsc: "Taille (Plus petit)",
|
sizeAsc: "Taille (Plus petit)",
|
||||||
sizeDesc: "Taille (Plus grand)",
|
sizeDesc: "Taille (Plus grand)",
|
||||||
nameAsc: "Nom (A-z)",
|
|
||||||
nameDesc: "Nom (Z-a)",
|
|
||||||
random: "Aléatoire",
|
random: "Aléatoire",
|
||||||
},
|
},
|
||||||
d3: {
|
d3: {
|
||||||
@ -304,12 +295,6 @@ export default {
|
|||||||
mimeSize: "Distribution des tailles de fichiers par type de média",
|
mimeSize: "Distribution des tailles de fichiers par type de média",
|
||||||
dateHistogram: "Distribution des dates de modification",
|
dateHistogram: "Distribution des dates de modification",
|
||||||
sizeHistogram: "Distribution des tailles de fichier",
|
sizeHistogram: "Distribution des tailles de fichier",
|
||||||
},
|
}
|
||||||
indexPicker: {
|
|
||||||
selectNone: "Sélectionner aucun",
|
|
||||||
selectAll: "Sélectionner tout",
|
|
||||||
selectedIndex: "indice sélectionné",
|
|
||||||
selectedIndices: "indices sélectionnés",
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
}
|
}
|
2
src/index/static_generated.c
vendored
2
src/index/static_generated.c
vendored
File diff suppressed because one or more lines are too long
10
src/web/static_generated.c
vendored
10
src/web/static_generated.c
vendored
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user