diff --git a/apps/files/css/files.scss b/apps/files/css/files.scss index 5d8a20d86a..ed15865b32 100644 --- a/apps/files/css/files.scss +++ b/apps/files/css/files.scss @@ -726,3 +726,37 @@ table.dragshadow td.size { height: 30px; line-height: 30px; } + +/* GRID */ +#filestable.view-grid { + display: flex; + flex-direction: column; + thead { + display: none; + } + tbody { + display: grid; + grid-template-columns: repeat(auto-fill, 180px); + justify-content: space-around; + row-gap: 15px; + tr { + display: block; + height: 180px; + } + td { + display: block; + &.selection { + position: absolute; + top: 0; + left: 0; + display: flex; + width: 44px; + label { + width: 44px; + height: 44px; + display: inline-block; + } + } + } + } +} \ No newline at end of file diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 94052b10b3..2f61fe71db 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -327,6 +327,9 @@ this.$el.find('thead th .columntitle').click(_.bind(this._onClickHeader, this)); + // Toggle for grid view + $('#view-button').on('click', this._onGridToggle); + this._onResize = _.debounce(_.bind(this._onResize, this), 250); $('#app-content').on('appresized', this._onResize); $(window).resize(this._onResize); @@ -587,6 +590,13 @@ this.$table.find('>thead').width($('#app-content').width() - OC.Util.getScrollBarWidth()); }, + /** + * Event handler for grid view toggle + */ + _onGridToggle: function() { + $('.list-container').toggleClass('view-grid'); + }, + /** * Event handler when leaving previously hidden state */ diff --git a/apps/files/templates/list.php b/apps/files/templates/list.php index 9cae72a176..f9cd5a2529 100644 --- a/apps/files/templates/list.php +++ b/apps/files/templates/list.php @@ -38,7 +38,7 @@

- +