diff --git a/app/views/datasets/filesAndFolders.scala.html b/app/views/datasets/filesAndFolders.scala.html index 5b64717e1..27e53f4a7 100644 --- a/app/views/datasets/filesAndFolders.scala.html +++ b/app/views/datasets/filesAndFolders.scala.html @@ -3,7 +3,7 @@ filter: Option[String])(implicit user: Option[models.User]) @import play.api.Play.current - + @if(folderHierarchy.length > 0 ) {

@@ -362,23 +362,107 @@

} - -
-
- @foldersList.map { folder => - @folders.listitem(folder, dataset.id) - } +
+
+
+ + +
+
+ + +
- -@currentFolder match { - case None => { - @files.grid(fileList, fileComments, dataset.id, space, ResourceRef(ResourceRef.dataset, dataset.id), - dataset.folders.length > 0) } - case Some(s) => { - @files.grid(fileList, fileComments, dataset.id, space, ResourceRef(ResourceRef.folder, UUID(s)), - dataset.folders.length > 0) } -} + + +
+ +
+
+ @foldersList.map { folder => + @folders.tile(folder, dataset.id, "col-lg-4 col-md-4 col-sm-4") + } +
+
+ + @fileList.map { file => + @files.tile(file, "col-lg-4 col-md-4 col-sm-4", (routes.Datasets.dataset(dataset.id)), false, false) + } +
+
diff --git a/app/views/files/grid.scala.html b/app/views/files/grid.scala.html index 58f19da71..348dbd4e8 100644 --- a/app/views/files/grid.scala.html +++ b/app/views/files/grid.scala.html @@ -6,9 +6,11 @@
@filesList.map { file => @if(parent.resourceType == ResourceRef.folder) { - @files.listitem(file, (routes.Datasets.dataset(dsId)), Some(dsId.stringify), space, Some(parent.id.stringify), showMove) + @files.tile(file, "col-lg-4 col-md-4 col-sm-4", (routes.Datasets.dataset(dsId)), false) + } else { - @files.listitem(file, (routes.Datasets.dataset(dsId)), Some(dsId.stringify), space, None,showMove) + @files.tile(file, "col-lg-4 col-md-4 col-sm-4", (routes.Datasets.dataset(dsId)), false) + } }
diff --git a/app/views/files/tile.scala.html b/app/views/files/tile.scala.html index 5d116ef16..bfea643f7 100644 --- a/app/views/files/tile.scala.html +++ b/app/views/files/tile.scala.html @@ -1,4 +1,4 @@ -@(file: models.File, classes: String, redirect: Call, showFollow: Boolean)(implicit user: Option[models.User]) +@(file: models.File, classes: String, redirect: Call, showFollow: Boolean, showAuthor: Boolean = true)(implicit user: Option[models.User]) @import _root_.util.Formatters.humanReadableByteCount @import api.Permission @@ -8,20 +8,35 @@
+ @if(user.isDefined) { + + + + }
@if(!file.thumbnail_id.isEmpty){ Thumbnail of @(file.filename) - } -
+ } else {

@file.filename

+ } +
    -
  • Author: @file.author.fullName
  • -
  • Uploaded: @file.uploadDate.format("dd MMM, yyyy")
  • -
  • Size: @humanReadableByteCount(file.length)
  • + @if(showAuthor){ +
  • Author: @file.author.fullName
  • + } + + +
  • + + @if(!file.thumbnail_id.isEmpty){ + @file.filename + } + +
-
+
} +
diff --git a/app/views/folders/tile.scala.html b/app/views/folders/tile.scala.html new file mode 100644 index 000000000..3b2d726ef --- /dev/null +++ b/app/views/folders/tile.scala.html @@ -0,0 +1,60 @@ +@(folder: Folder, parentDataset: UUID, classes: String)(implicit user: Option[models.User]) + +@import api.Permission +
+
+
+ + + +
+
+
+

+ @folder.displayName +

+ @if(Permission.checkPermission(Permission.AddResourceToDataset, ResourceRef(ResourceRef.dataset, parentDataset))) { +

+ + + +

+ } +
+
+ + +
+
+ \ No newline at end of file diff --git a/app/views/metadatald/search.scala.html b/app/views/metadatald/search.scala.html index eaf3e4311..74844f383 100644 --- a/app/views/metadatald/search.scala.html +++ b/app/views/metadatald/search.scala.html @@ -519,7 +519,7 @@

Search Metadata within Space: "@space.name"

var resource = response.results[i]; if (resource.resource_type == "dataset") { var thumbnailId = (resource.thumbnail == null)? "" : jsRoutes.api.Thumbnails.get(resource.thumbnail).url; - var modalTemplate = Handlebars.getTemplate("@routes.Assets.at("templates/metadata/search_dataset_result")"); + var modalTemplate = Handlebars.getTemplate("@routes.Assets.at("templates/metadata/search_dataset_result_tile")"); var html = modalTemplate( {'url': jsRoutes.controllers.Datasets.dataset(resource.id).url, 'name': resource.name, @@ -531,7 +531,7 @@

Search Metadata within Space: "@space.name"

} else if (resource.resource_type == "file") { var thumbnailId = (resource.thumbnail == null)? "" : jsRoutes.api.Thumbnails.get(resource.thumbnail).url; - var modalTemplate = Handlebars.getTemplate("@routes.Assets.at("templates/metadata/search_file_result")"); + var modalTemplate = Handlebars.getTemplate("@routes.Assets.at("templates/metadata/search_file_result_tile")"); var html = modalTemplate({ 'url': jsRoutes.controllers.Files.file(resource.id).url, 'name': resource.name, diff --git a/app/views/searchResults.scala.html b/app/views/searchResults.scala.html index 2cd2d1655..3f6c6dde4 100644 --- a/app/views/searchResults.scala.html +++ b/app/views/searchResults.scala.html @@ -100,10 +100,18 @@

Search

+
+ + +

Results

-
+
@@ -117,8 +125,58 @@

Search

var found_all = false; // This is set to true when waiting for an auto-scroll result to avoid duplicating request if user scrolls again var searching = false; + // view mode + var viewMode = 'tile'; + $.cookie.raw = true; + $.cookie.json = true; + // search result + var searchResult = null; + + // tile vs list + $(function() { + $('#tile-view-btn').click(function() { + $('#tile-view-btn').addClass("btn-primary").removeClass("btn-link"); + $('#list-view-btn').addClass("btn-link").removeClass("btn-primary"); + + $.cookie('view-mode', 'tile', { path: '/' }); + if (viewMode != 'tile'){ + viewMode = "tile"; + // not ideal, but searchResult always empty + // console.log("setting list " + $.cookie('view-mode')); + // if (searchResult) { + // updateResults(searchResult, true); + // } + performNewSearch(); + } + }); + $('#list-view-btn').click(function() { + $('#tile-view-btn').addClass("btn-link").removeClass("btn-primary"); + $('#list-view-btn').addClass("btn-primary").removeClass("btn-link"); + //Utilizing library from https://github.com/carhartl/jquery-cookie/tree/v1.4.1 + $.cookie("view-mode", "list", { path: '/' }); + + if(viewMode != 'list'){ + viewMode = "list"; + performNewSearch(); + } + }); + }); $(document).ready(function() { + // handle viewing mode first + console.log("on load, cookies are " + $.cookie('view-mode')); + console.log("on load, viewMode is " + viewMode); + //Set the cookie, for the case when it is passed in by the parameter + $.cookie("view-mode", viewMode, { path: '/search' }); + if (viewMode == "list") { + $('#list-view-btn').addClass('active'); + $('#tile-view-btn').removeClass('active'); + } + else { + $('#tile-view-btn').addClass('active'); + $('#list-view-btn').removeClass('active'); + } + // Hitting Enter $('#querybox').keyup( function(event) { if (event.keyCode === 13) { @@ -168,6 +226,9 @@

Search

}); request.done(function(resp, status, err){ + // save it for later + searchResult = resp; + count += resp.scanned_size; searching = false; @@ -214,7 +275,12 @@

Search

var thumbnailId = (results[i].thumbnail == null)? "" : jsRoutes.api.Thumbnails.get(results[i].thumbnail).url; if (results[i].resource_type == "file") { - var modalTemplate = Handlebars.getTemplate("@routes.Assets.at("templates/metadata/search_file_result")"); + if (viewMode == "list") { + var modalTemplate = Handlebars.getTemplate("@routes.Assets.at("templates/metadata/search_file_result_list")"); + } + else { + var modalTemplate = Handlebars.getTemplate("@routes.Assets.at("templates/metadata/search_file_result_tile")"); + } var html = modalTemplate({ 'url': jsRoutes.controllers.Files.file(results[i].id).url, 'name': results[i].name, @@ -225,7 +291,12 @@

Search

} if (results[i].resource_type == "dataset") { - var modalTemplate = Handlebars.getTemplate("@routes.Assets.at("templates/metadata/search_dataset_result")"); + if (viewMode == "list") { + var modalTemplate = Handlebars.getTemplate("@routes.Assets.at("templates/metadata/search_dataset_result_list")"); + } + else { + var modalTemplate = Handlebars.getTemplate("@routes.Assets.at("templates/metadata/search_dataset_result_tile")"); + } var html = modalTemplate( {'url': jsRoutes.controllers.Datasets.dataset(results[i].id).url, 'name': results[i].name, @@ -237,7 +308,12 @@

Search

} if (results[i].resource_type == "collection") { - var modalTemplate = Handlebars.getTemplate("@routes.Assets.at("templates/metadata/search_collection_result")"); + if (viewMode == "list") { + var modalTemplate = Handlebars.getTemplate("@routes.Assets.at("templates/metadata/search_collection_result_list")"); + } + else { + var modalTemplate = Handlebars.getTemplate("@routes.Assets.at("templates/metadata/search_collection_result_tile")"); + } var html = modalTemplate( {'url': jsRoutes.controllers.Collections.collection(results[i].id).url, 'name': results[i].name, diff --git a/public/templates/metadata/search_collection_result.handlebars b/public/templates/metadata/search_collection_result_list.handlebars similarity index 100% rename from public/templates/metadata/search_collection_result.handlebars rename to public/templates/metadata/search_collection_result_list.handlebars diff --git a/public/templates/metadata/search_collection_result_tile.handlebars b/public/templates/metadata/search_collection_result_tile.handlebars new file mode 100644 index 000000000..83d3f86a7 --- /dev/null +++ b/public/templates/metadata/search_collection_result_tile.handlebars @@ -0,0 +1,32 @@ +
+
+
+
+ {{#if thumbnail}} + + Thumbnail of {{name}} + + {{else}} + + + + {{/if}} +
+
+

{{name}}

+
+
+

+ {{created}} +

+ {{#if description}} +

{{description}}

+ {{/if}} +
+
+
+
+
+
\ No newline at end of file diff --git a/public/templates/metadata/search_dataset_result.handlebars b/public/templates/metadata/search_dataset_result_list.handlebars similarity index 100% rename from public/templates/metadata/search_dataset_result.handlebars rename to public/templates/metadata/search_dataset_result_list.handlebars diff --git a/public/templates/metadata/search_dataset_result_tile.handlebars b/public/templates/metadata/search_dataset_result_tile.handlebars new file mode 100644 index 000000000..6b4415414 --- /dev/null +++ b/public/templates/metadata/search_dataset_result_tile.handlebars @@ -0,0 +1,32 @@ +
+
+
+
+ {{#if thumbnail}} + + Thumbnail of {{name}} + + {{else}} + + + + {{/if}} +
+
+

{{name}}

+
+
+

+ {{created}} +

+ {{#if description}} +

{{description}}

+ {{/if}} +
+
+
+
+
+
\ No newline at end of file diff --git a/public/templates/metadata/search_file_result.handlebars b/public/templates/metadata/search_file_result_list.handlebars similarity index 100% rename from public/templates/metadata/search_file_result.handlebars rename to public/templates/metadata/search_file_result_list.handlebars diff --git a/public/templates/metadata/search_file_result_tile.handlebars b/public/templates/metadata/search_file_result_tile.handlebars new file mode 100644 index 000000000..ae9b8587d --- /dev/null +++ b/public/templates/metadata/search_file_result_tile.handlebars @@ -0,0 +1,29 @@ +
+
+
+
+ {{#if thumbnail}} + + Thumbnail of {{name}} + + {{else}} + + + + {{/if}} +
+
+

{{name}}

+
+
+

+ {{created}} +

+
+
+
+
+
+
\ No newline at end of file