diff --git a/sist2-vue/src/Sist2Api.ts b/sist2-vue/src/Sist2Api.ts
index f228a25..ea64884 100644
--- a/sist2-vue/src/Sist2Api.ts
+++ b/sist2-vue/src/Sist2Api.ts
@@ -191,30 +191,6 @@ class Sist2Api {
setHitTags(hit: EsHit): void {
const tags = [] as Tag[];
- const mimeCategory = hit._source.mime == null ? null : hit._source.mime.split("/")[0];
-
- switch (mimeCategory) {
- case "image":
- case "video":
- if ("videoc" in hit._source && hit._source.videoc) {
- tags.push({
- style: "video",
- text: hit._source.videoc.replace(" ", ""),
- userTag: false
- } as Tag);
- }
- break
- case "audio":
- if ("audioc" in hit._source && hit._source.audioc) {
- tags.push({
- style: "audio",
- text: hit._source.audioc,
- userTag: false
- } as Tag);
- }
- break;
- }
-
// User tags
if ("tag" in hit._source) {
hit._source.tag.forEach(tag => {
diff --git a/sist2-vue/src/components/DocCard.vue b/sist2-vue/src/components/DocCard.vue
index 86366a6..5178b79 100644
--- a/sist2-vue/src/components/DocCard.vue
+++ b/sist2-vue/src/components/DocCard.vue
@@ -27,6 +27,11 @@
+
+
+
+
+
@@ -43,10 +48,11 @@ import DocFileTitle from "@/components/DocFileTitle.vue";
import DocInfoModal from "@/components/DocInfoModal.vue";
import ContentDiv from "@/components/ContentDiv.vue";
import FullThumbnail from "@/components/FullThumbnail";
+import FeaturedFieldsLine from "@/components/FeaturedFieldsLine";
export default {
- components: {FullThumbnail, ContentDiv, DocInfoModal, DocFileTitle, TagContainer},
+ components: {FeaturedFieldsLine, FullThumbnail, ContentDiv, DocInfoModal, DocFileTitle, TagContainer},
props: ["doc", "width"],
data() {
return {
@@ -133,8 +139,4 @@ export default {
.sub-document .fit {
padding: 4px 4px 0 4px;
}
-
-.featured-line {
- font-size: 92%;
-}
\ No newline at end of file
diff --git a/sist2-vue/src/components/DocListItem.vue b/sist2-vue/src/components/DocListItem.vue
index bbaee4a..d25a04f 100644
--- a/sist2-vue/src/components/DocListItem.vue
+++ b/sist2-vue/src/components/DocListItem.vue
@@ -50,6 +50,11 @@
-
{{ doc._source.author }}
+
+
+
+
+
@@ -61,10 +66,11 @@ import DocFileTitle from "@/components/DocFileTitle";
import DocInfoModal from "@/components/DocInfoModal";
import ContentDiv from "@/components/ContentDiv";
import FileIcon from "@/components/icons/FileIcon";
+import FeaturedFieldsLine from "@/components/FeaturedFieldsLine";
export default {
name: "DocListItem",
- components: {FileIcon, ContentDiv, DocInfoModal, DocFileTitle, TagContainer},
+ components: {FileIcon, ContentDiv, DocInfoModal, DocFileTitle, TagContainer, FeaturedFieldsLine},
props: ["doc"],
data() {
return {
diff --git a/sist2-vue/src/components/FeaturedFieldsLine.vue b/sist2-vue/src/components/FeaturedFieldsLine.vue
new file mode 100644
index 0000000..e2c1e88
--- /dev/null
+++ b/sist2-vue/src/components/FeaturedFieldsLine.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sist2-vue/src/components/TagContainer.vue b/sist2-vue/src/components/TagContainer.vue
index 09724cd..a45e6bf 100644
--- a/sist2-vue/src/components/TagContainer.vue
+++ b/sist2-vue/src/components/TagContainer.vue
@@ -40,6 +40,7 @@
+
{{ tag.text.split(".").pop() }}
- {{$t("deleteTag")}}
+ {{ $t("deleteTag") }}
@@ -66,7 +67,7 @@
{{$t("addTag")}}
- {{
+ {{
humanFileSize(hit._source.size)
}}
@@ -211,7 +212,7 @@ export default Vue.extend({
return matches.sort().map(match => {
return {
- title: match.split(".").slice(0,-1).join("."),
+ title: match.split(".").slice(0, -1).join("."),
id: match
}
});
diff --git a/sist2-vue/src/i18n/messages.ts b/sist2-vue/src/i18n/messages.ts
index 3a31eb0..9b054de 100644
--- a/sist2-vue/src/i18n/messages.ts
+++ b/sist2-vue/src/i18n/messages.ts
@@ -8,7 +8,7 @@ export default {
advanced: "Advanced search",
fuzzy: "Fuzzy"
},
- addTag: "Add",
+ addTag: "Tag",
deleteTag: "Delete",
download: "Download",
and: "and",
@@ -17,6 +17,7 @@ export default {
mimeTypes: "Media types",
tags: "Tags",
tagFilter: "Filter tags",
+ forExample: "For example:",
help: {
simpleSearch: "Simple search",
advancedSearch: "Advanced search",
@@ -75,7 +76,9 @@ export default {
useDatePicker: "Use a Date Picker component rather than a slider",
vidPreviewInterval: "Video preview frame duration in ms",
simpleLightbox: "Disable animations in image viewer",
- showTagPickerFilter: "Display the tag filter bar"
+ showTagPickerFilter: "Display the tag filter bar",
+ featuredFields: "Featured fields Javascript template string. Will appear in the search results.",
+ featuredFieldsList: "Available variables"
},
queryMode: {
simple: "Simple",
@@ -178,7 +181,7 @@ export default {
advanced: "Erweiterte Suche",
fuzzy: "Fuzzy"
},
- addTag: "Hinzufügen",
+ addTag: "Tag",
deleteTag: "Löschen",
download: "Herunterladen",
and: "und",
@@ -187,6 +190,7 @@ export default {
mimeTypes: "Medientypen",
tags: "Tags",
tagFilter: "Tags filtern",
+ forExample: "Zum Beispiel:",
help: {
simpleSearch: "Einfache Suche",
advancedSearch: "Erweiterte Suche",
@@ -245,7 +249,9 @@ export default {
useDatePicker: "Benutze Datumswähler statt Schieber",
vidPreviewInterval: "Videovorschau Framedauer in ms",
simpleLightbox: "Schalte Animationen im Image-Viewer ab",
- showTagPickerFilter: "Zeige die Tag-Filter-Leiste"
+ showTagPickerFilter: "Zeige die Tag-Filter-Leiste",
+ featuredFields: "Ausgewählte Felder Javascript Vorlage String. Wird in den Suchergebnissen angezeigt.",
+ featuredFieldsList: "Verfügbare Variablen"
},
queryMode: {
simple: "Einfach",
@@ -348,7 +354,7 @@ export default {
advanced: "Recherche avancée",
fuzzy: "Approximatif"
},
- addTag: "Ajouter",
+ addTag: "Taguer",
deleteTag: "Supprimer",
download: "Télécharger",
and: "et",
@@ -357,6 +363,7 @@ export default {
mimeTypes: "Types de médias",
tags: "Tags",
tagFilter: "Filtrer les tags",
+ forExample: "Par exemple:",
help: {
simpleSearch: "Recherche simple",
advancedSearch: "Recherche avancée",
@@ -416,7 +423,9 @@ export default {
useDatePicker: "Afficher un composant « Date Picker » plutôt qu'un slider",
vidPreviewInterval: "Durée des images d'aperçu video en millisecondes",
simpleLightbox: "Désactiver les animations du visualiseur d'images",
- showTagPickerFilter: "Afficher le filtre dans l'onglet Tags"
+ showTagPickerFilter: "Afficher le filtre dans l'onglet Tags",
+ featuredFields: "Expression Javascript pour les variables mises en évidence. Sera affiché dans les résultats de recherche.",
+ featuredFieldsList: "Variables disponibles"
},
queryMode: {
simple: "Simple",
@@ -520,7 +529,7 @@ export default {
advanced: "高级搜索",
fuzzy: "模糊搜索"
},
- addTag: "添加",
+ addTag: "签条",
deleteTag: "删除",
download: "下载",
and: "与",
@@ -529,6 +538,7 @@ export default {
mimeTypes: "文件类型",
tags: "标签",
tagFilter: "筛选标签",
+ forExample: "例如:",
help: {
simpleSearch: "简易搜索",
advancedSearch: "高级搜索",
@@ -587,7 +597,9 @@ export default {
useDatePicker: "使用日期选择器组件而不是滑块",
vidPreviewInterval: "视频预览帧的持续时间,以毫秒为单位",
simpleLightbox: "在图片查看器中,禁用动画",
- showTagPickerFilter: "显示标签过滤栏"
+ showTagPickerFilter: "显示标签过滤栏",
+ featuredFields: "特色领域的Javascript模板字符串。将出现在搜索结果中。",
+ featuredFieldsList: "可利用的变量"
},
queryMode: {
simple: "简单",
diff --git a/sist2-vue/src/store/index.ts b/sist2-vue/src/store/index.ts
index 64aa431..e095070 100644
--- a/sist2-vue/src/store/index.ts
+++ b/sist2-vue/src/store/index.ts
@@ -33,6 +33,7 @@ export default new Vuex.Store({
optHideDuplicates: true,
optTheme: "light",
optDisplay: "grid",
+ optFeaturedFields: "",
optSize: 60,
optHighlight: true,
@@ -158,6 +159,7 @@ export default new Vuex.Store({
setOptQueryMode: (state, val) => state.optQueryMode = val,
setOptResultSize: (state, val) => state.optSize = val,
setOptTagOrOperator: (state, val) => state.optTagOrOperator = val,
+ setOptFeaturedFields: (state, val) => state.optFeaturedFields = val,
setOptTreemapType: (state, val) => state.optTreemapType = val,
setOptTreemapTiling: (state, val) => state.optTreemapTiling = val,
@@ -413,5 +415,6 @@ export default new Vuex.Store({
optVidPreviewInterval: state => state.optVidPreviewInterval,
optSimpleLightbox: state => state.optSimpleLightbox,
optShowTagPickerFilter: state => state.optShowTagPickerFilter,
+ optFeaturedFields: state => state.optFeaturedFields,
}
})
\ No newline at end of file
diff --git a/sist2-vue/src/views/Configuration.vue b/sist2-vue/src/views/Configuration.vue
index 6c6e231..80dc2e0 100644
--- a/sist2-vue/src/views/Configuration.vue
+++ b/sist2-vue/src/views/Configuration.vue
@@ -16,7 +16,9 @@
-
+
@@ -55,6 +57,62 @@
$t("opt.showTagPickerFilter")
}}
+
+
+
+
+
+ {{
+ $t("opt.featuredFieldsList")
+ }}
+
+
+
+ doc.checksum
+ doc.path
+ doc.mime
+ doc.videoc
+ doc.audioc
+ doc.pages
+ doc.mtime
+ doc.font_name
+ doc.album
+ doc.artist
+ doc.title
+ doc.genre
+ doc.album_artist
+ doc.exif_make
+ doc.exif_model
+ doc.exif_software
+ doc.exif_exposure_time
+ doc.exif_fnumber
+ doc.exif_iso_speed_ratings
+ doc.exif_focal_length
+ doc.exif_user_comment
+ doc.exif_user_comment
+ doc.exif_gps_longitude_ref
+ doc.exif_gps_longitude_dms
+ doc.exif_gps_longitude_dec
+ doc.exif_gps_latitude_ref
+ doc.exif_gps_latitude_dec
+ humanDate()
+ humanFileSize()
+
+
+ {{ $t("forExample") }}
+
+
+ -
+
<b>${humanDate(doc.mtime)}</b> • ${doc.videoc || ''}
+
+ -
+
${doc.pages ? (doc.pages + ' pages') : ''}
+
+
+
+
+
+
@@ -252,6 +310,7 @@ export default {
"optVidPreviewInterval",
"optSimpleLightbox",
"optShowTagPickerFilter",
+ "optFeaturedFields",
]),
clientWidth() {
return window.innerWidth;
@@ -295,6 +354,7 @@ export default {
"setOptVidPreviewInterval",
"setOptSimpleLightbox",
"setOptShowTagPickerFilter",
+ "setOptFeaturedFields",
]),
onResetClick() {
localStorage.removeItem("sist2_configuration");
diff --git a/src/sist.h b/src/sist.h
index fa5e13d..b848c72 100644
--- a/src/sist.h
+++ b/src/sist.h
@@ -49,7 +49,7 @@
#include
#include "git_hash.h"
-#define VERSION "2.14.0"
+#define VERSION "2.14.1"
static const char *const Version = VERSION;
#ifndef SIST_PLATFORM