Skip to content

Commit

Permalink
Merge pull request #1777 from adrium/feat-gallery
Browse files Browse the repository at this point in the history
Add gallery view mode
  • Loading branch information
o1egl committed Feb 10, 2022
2 parents f6e5c6f + 7870e89 commit bb19834
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 5 deletions.
35 changes: 35 additions & 0 deletions frontend/src/css/listing.css
Expand Up @@ -110,6 +110,41 @@
width: calc(100% - 5vw);
}

#listing.mosaic.gallery .item div:first-of-type {
width: 100%;
height: 12em;
}

#listing.mosaic.gallery .item div:last-of-type {
position: absolute;
bottom: 0.5em;
padding: 1em;
width: calc(100% - 1em);
text-align: center;
}

#listing.mosaic.gallery .item[data-type=image] div:last-of-type {
color: white;
background: linear-gradient(#0000, #0009);
}

#listing.mosaic.gallery .item i {
width: 100%;
margin-right: 0;
font-size: 8em;
text-align: center;
}

#listing.mosaic.gallery .item img {
width: 100%;
height: 100%;
}

#listing.gallery .size,
#listing.gallery .modified {
display: none;
}

#listing.list {
flex-direction: column;
width: 100%;
Expand Down
21 changes: 18 additions & 3 deletions frontend/src/views/files/Listing.vue
Expand Up @@ -53,7 +53,7 @@
@action="$store.commit('toggleShell')"
/>
<action
:icon="user.viewMode === 'mosaic' ? 'view_list' : 'view_module'"
:icon="viewIcon"
:label="$t('buttons.switchView')"
@action="switchView"
/>
Expand Down Expand Up @@ -283,6 +283,7 @@ export default {
data: function () {
return {
showLimit: 50,
columnWidth: 280,
dragCounter: 0,
width: window.innerWidth,
itemWeight: 0,
Expand Down Expand Up @@ -356,6 +357,14 @@ export default {
return "arrow_upward";
},
viewIcon() {
const icons = {
list: "view_module",
mosaic: "grid_view",
"mosaic gallery": "view_list",
};
return icons[this.user.viewMode];
},
headerButtons() {
return {
upload: this.user.perm.create,
Expand Down Expand Up @@ -591,7 +600,7 @@ export default {
colunmsResize() {
// Update the columns size based on the window width.
let columns = Math.floor(
document.querySelector("main").offsetWidth / 300
document.querySelector("main").offsetWidth / this.columnWidth
);
let items = css(["#listing.mosaic .item", ".mosaic#listing .item"]);
if (columns === 0) columns = 1;
Expand Down Expand Up @@ -807,9 +816,15 @@ export default {
switchView: async function () {
this.$store.commit("closeHovers");
const modes = {
list: "mosaic",
mosaic: "mosaic gallery",
"mosaic gallery": "list",
};
const data = {
id: this.user.id,
viewMode: this.user.viewMode === "mosaic" ? "list" : "mosaic",
viewMode: modes[this.user.viewMode] || "list",
};
users.update(data, ["viewMode"]).catch(this.$showError);
Expand Down
4 changes: 2 additions & 2 deletions http/preview.go
Expand Up @@ -129,8 +129,8 @@ func createPreview(imgSvc ImgService, fileCache FileCache,
height = 1080
options = append(options, img.WithMode(img.ResizeModeFit), img.WithQuality(img.QualityMedium))
case previewSize == PreviewSizeThumb:
width = 128
height = 128
width = 256
height = 256
options = append(options, img.WithMode(img.ResizeModeFill), img.WithQuality(img.QualityLow), img.WithFormat(img.FormatJpeg))
default:
return nil, img.ErrUnsupportedFormat
Expand Down

0 comments on commit bb19834

Please sign in to comment.