Skip to content

Instantly share code, notes, and snippets.

@biapar
Forked from alirobe/umbraco-filebrowser.cshtml
Created April 11, 2017 10:31
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save biapar/0685a81ff6346b802afdde4e67f4942c to your computer and use it in GitHub Desktop.
Save biapar/0685a81ff6346b802afdde4e67f4942c to your computer and use it in GitHub Desktop.
A simple recursive media folder/file viewer macro for directory browsing in #Umbraco 7+, using Bootstrap 3 for display. Not suitable for >100 files (use a surfacecontroller)
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@{ var mediaId = Model.MacroParameters["mediaId"]; }
@helper DisplayFolder(dynamic folder, bool collapsed) {
var items = folder.Children().OrderBy("DocumentTypeAlias Desc,Name");
if (items.Any()) {
<a class="list-group-item" role="button" aria-expanded="false" data-toggle="collapse" href="#macro-mediaList-folder-@folder.Id">
<i class="glyphicon glyphicon-folder-open"></i> &nbsp; @folder.Name
</a>
<div class="list-group @(collapsed?"collapse":"collapse in") well well-sm" id="macro-mediaList-folder-@folder.Id">
@foreach(var item in items) {
if(item.DocumentTypeAlias=="Folder") {
@DisplayFolder(item, true)
} else {
<a href="@item.Url" class="list-group-item">
<i class="glyphicon glyphicon-file"></i> &nbsp; @item.Name
</a>
}
}
</div>
}
}
@if (mediaId != null)
{
var media = Umbraco.Media(mediaId);
<div class="list-group">
@DisplayFolder(media, false)
</div>
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment