9 | @Html.DisplayFor(x => area.ContentArea, new {Tag = area.AreaTag})
10 |
11 | }
12 | else
13 | {
14 | @await Html.PartialAsync("TemplateHint", string.Format(System.Globalization.CultureInfo.CurrentUICulture, LocalizationService.Current.GetString("/preview/norenderer"), Model.PreviewContent.Name, LocalizationService.Current.GetString(area.AreaName)))
15 | }
16 | }
17 |
18 | @if(!Model.Areas.Any())
19 | {
20 | @await Html.PartialAsync("TemplateHint", string.Format(System.Globalization.CultureInfo.CurrentUICulture, LocalizationService.Current.GetString("/preview/norendereratall"), Model.PreviewContent.Name))
21 | }
22 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/ProductPage/Index.cshtml:
--------------------------------------------------------------------------------
1 | @using AlloyTemplates
2 | @model PageViewModel
3 |
4 | @{ Layout = "~/Views/Shared/Layouts/_TwoPlusOne.cshtml"; }
5 |
6 | x.CurrentPage.PageName)>@Model.CurrentPage.PageName
7 | x.CurrentPage.MetaDescription)>@Model.CurrentPage.MetaDescription
8 |
9 |
x.CurrentPage.MainBody)>
10 | @Html.DisplayFor(m => m.CurrentPage.MainBody)
11 |
12 |
13 | @Html.PropertyFor(x => x.CurrentPage.MainContentArea, new { CssClass = "row", Tag = Global.ContentAreaTags.TwoThirdsWidth })
14 |
15 | @section RelatedContent
16 | {
17 | x.CurrentPage.PageImage)>
18 |
)
19 |
20 |
21 |
22 |
x.CurrentPage.PageName)>@Model.CurrentPage.PageName
23 |
24 |
25 | @Html.PropertyFor(x => x.CurrentPage.RelatedContentArea, new { CssClass = "row", Tag = Global.ContentAreaTags.OneThirdWidth })
26 | }
27 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Register/Index.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
3 | @using AlloyTemplates.Controllers
4 | @model AlloyTemplates.Models.RegisterViewModel
5 | @{
6 | Layout = "";
7 | }
8 |
9 |
10 |
11 | Create Administrator Account
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
Create Administrator Account
22 |
23 | @using (Html.BeginForm("", "Register", FormMethod.Post))
24 | {
25 | @Html.AntiForgeryToken()
26 |
27 | @Html.LabelFor(m => m.Username)
28 | @Html.TextBoxFor(m => m.Username)
29 | @Html.ValidationMessageFor(m => m.Username)
30 |
31 |
32 | @Html.LabelFor(m => m.Email)
33 | @Html.TextBoxFor(m => m.Email)
34 | @Html.ValidationMessageFor(m => m.Email)
35 |
36 |
37 | @Html.LabelFor(m => m.Password)
38 | @Html.PasswordFor(m => m.Password)
39 | @Html.ValidationMessageFor(m => m.Password)
40 |
41 |
42 | @Html.LabelFor(m => m.ConfirmPassword)
43 | @Html.PasswordFor(m => m.ConfirmPassword)
44 | @Html.ValidationMessageFor(m => m.ConfirmPassword)
45 |
46 |
47 | @Html.ValidationMessage(RegisterController.ErrorKey)
48 |
49 |
50 |
51 |
52 | }
53 |
54 |
55 |
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/SearchPage/Index.cshtml:
--------------------------------------------------------------------------------
1 | @using EPiServer.Editor
2 | @using EPiServer.Security
3 | @model SearchContentModel
4 |
5 | @{
6 | Layout = "~/Views/Shared/Layouts/_TwoPlusOne.cshtml";
7 | }
8 |
9 |
23 |
24 | @if (Model.Hits != null)
25 | {
26 |
27 |
28 |
@Html.Translate("/searchpagetemplate/result")
29 |
30 | @Html.Translate("/searchpagetemplate/searchfor") @Model.SearchedQuery
31 | @Html.Translate("/searchpagetemplate/resultedin")
32 | @if (Model.NumberOfHits > 0)
33 | {
34 | @Model.NumberOfHits
35 | }
36 | else
37 | {
38 | @Html.Translate("/searchpagetemplate/zero")
39 | }
40 | @Html.Translate("/searchpagetemplate/hits")
41 |
42 |
43 |
44 |
45 |
46 |
47 | @foreach (var hit in Model.Hits)
48 | {
49 |
50 |
51 |
@hit.Excerpt
52 |
53 |
54 | }
55 |
56 |
57 |
58 | }
59 |
60 | @if (Model.SearchServiceDisabled && Html.ViewContext.IsInEditMode())
61 | {
62 | @await Html.PartialAsync("TemplateHint", Html.Translate("/searchpagetemplate/disabled").ToString())
63 | }
64 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/Blocks/ButtonBlock.cshtml:
--------------------------------------------------------------------------------
1 | @model ButtonBlock
2 |
3 | m.ButtonText)>
4 | @{
5 | var buttonText = string.IsNullOrWhiteSpace(Model.ButtonText)
6 | ? LocalizationService.Current.GetString("/blocks/buttonblockcontrol/buttondefaulttext")
7 | : Model.ButtonText;
8 | }
9 | @buttonText
10 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/Blocks/EditorialBlock.cshtml:
--------------------------------------------------------------------------------
1 | @model EditorialBlock
2 |
3 | x.MainBody)>
4 | @Html.DisplayFor(x => Model.MainBody)
5 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/Blocks/JumbotronBlockWide.cshtml:
--------------------------------------------------------------------------------
1 | @model JumbotronBlock
2 |
3 |
4 |
5 | @Html.PropertyFor(m=>m.Image)
6 |
7 |
8 |
13 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/Blocks/NoRenderer.cshtml:
--------------------------------------------------------------------------------
1 | @await Html.PartialAsync("TemplateHint", Html.Translate("/blocks/norenderer/message").ToString())
2 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/Blocks/SiteLogotypeBlock.cshtml:
--------------------------------------------------------------------------------
1 | @model SiteLogotypeBlock
2 |
3 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/Blocks/TeaserBlock.cshtml:
--------------------------------------------------------------------------------
1 | @using EPiServer.Core
2 |
3 | @model TeaserBlock
4 |
5 |
6 | @*Link the teaser block only if a link has been set and not displayed in preview*@
7 | @using (Html.BeginConditionalLink
8 | (!ContentReference.IsNullOrEmpty(Model.Link) && !(Html.ViewContext.IsPreviewMode()),
9 | Url.PageLinkUrl(Model.Link),
10 | Model.Heading))
11 | {
12 |
x.Heading)>@Model.Heading
13 |
x.Text)>@Model.Text
14 |
x.Image)>
)
15 | }
16 |
17 |
18 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/Blocks/TeaserBlockWide.cshtml:
--------------------------------------------------------------------------------
1 | @model TeaserBlock
2 |
3 |
4 | @*Link the teaser block only if a link has been set and not displayed in preview*@
5 | @using(Html.BeginConditionalLink(
6 | !ContentReference.IsNullOrEmpty(Model.Link) && !(Html.ViewContext.IsPreviewMode()),
7 | Url.PageLinkUrl(Model.Link),
8 | Model.Heading))
9 | {
10 |
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/Breadcrumbs.cshtml:
--------------------------------------------------------------------------------
1 | @using EPiServer.Core
2 | @using EPiServer.Web
3 | @*Helper used as template for a page in the bread crumb, recursively triggering the rendering of the next page*@
4 | @{
5 | HelperResult ItemTemplate(HtmlHelpers.MenuItem breadCrumbItem)
6 | {
7 | if (breadCrumbItem.Selected)
8 | {
9 | if (breadCrumbItem.Page.HasTemplate() && !breadCrumbItem.Page.ContentLink.CompareToIgnoreWorkID(Model.CurrentPage.ContentLink))
10 | {
11 | @Html.PageLink(breadCrumbItem.Page)
12 | }
13 | else
14 | {
15 | @breadCrumbItem.Page.PageName
16 | }
17 | if (!breadCrumbItem.Page.ContentLink.CompareToIgnoreWorkID(Model.CurrentPage.ContentLink))
18 | {
19 | /
20 | @Html.MenuList(breadCrumbItem.Page.ContentLink, ItemTemplate)
21 | }
22 | }
23 | return new HelperResult(w => Task.CompletedTask);
24 | }
25 | }
26 |
27 |
28 |
29 |
30 |
31 | @Html.ContentLink(SiteDefinition.Current.StartPage)
32 | /
33 | @Html.MenuList(SiteDefinition.Current.StartPage, ItemTemplate, requireVisibleInMenu: false, requirePageTemplate: false)
34 |
35 |
36 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/Components/ContactBlock/Default.cshtml:
--------------------------------------------------------------------------------
1 | @model ContactBlockModel
2 |
3 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/Components/ImageFile/Default.cshtml:
--------------------------------------------------------------------------------
1 | @model ImageViewModel
2 |
3 |
4 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/Components/PageListBlock/Default.cshtml:
--------------------------------------------------------------------------------
1 | @model PageListModel
2 | @Html.FullRefreshPropertiesMetaData(new[] { "IncludePublishDate", "IncludeIntroduction", "Count", "SortOrder", "Root", "PageTypeFilter", "CategoryFilter", "Recursive" })
3 | x.Heading)>@Model.Heading
4 |
5 |
6 | @foreach(var page in Model.Pages)
7 | {
8 |
9 |
10 | @Html.PageLink(page)
11 |
12 | @if(Model.ShowPublishDate && page.StartPublish.HasValue)
13 | {
14 |
@Html.DisplayFor(x => page.StartPublish)
15 | }
16 | @if(Model.ShowIntroduction && page is SitePageData)
17 | {
18 | var withTeaserText = (SitePageData) page;
19 |
@withTeaserText.TeaserText
20 | }
21 |
22 |
23 | }
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/Components/VideoFile/Default.cshtml:
--------------------------------------------------------------------------------
1 | @using EPiServer.Framework.Web.Resources
2 | @model VideoViewModel
3 | @{
4 | ClientResources.RequireScript(Href("~/jwplayer/jwplayer.js"));
5 |
6 | //The video element's ID needs to be unique in order for several video blocks and possible the same video block, to work on the same page
7 | var containerId = "video-container-" + Guid.NewGuid().GetHashCode();
8 | }
9 | @Html.FullRefreshPropertiesMetaData(new []{"Url"})
10 | m.Url)>
11 |
14 |
15 |
30 |
31 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/DisplayTemplates/ContactPage.cshtml:
--------------------------------------------------------------------------------
1 | @model ContactPage
2 |
3 |
4 | @if(Model != null)
5 | {
6 | @Model.PageName
7 | @Html.Translate("/contact/phone")@: : @Model.Phone
8 | @Html.Translate("/contact/email")@: : @Html.DisplayFor(m => m.Email)
9 | }
10 | else
11 | {
12 | @Html.Translate("/contact/noneselected")
13 | }
14 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/DisplayTemplates/DateTime.cshtml:
--------------------------------------------------------------------------------
1 | @model DateTime
2 | @Model.ToString("d MMMM yyyy")
3 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/DisplayTemplates/Image.cshtml:
--------------------------------------------------------------------------------
1 | @model EPiServer.Core.ContentReference
2 | @if (Model != null)
3 | {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/DisplayTemplates/StringsCollection.cshtml:
--------------------------------------------------------------------------------
1 | @model IEnumerable
2 | @if(Model != null && Model.Any())
3 | {
4 |
5 | @foreach(var stringValue in Model)
6 | {
7 | - @stringValue
8 | }
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/DisplayTemplates/_ReadMe.txt:
--------------------------------------------------------------------------------
1 | The views in this folder are used when rendering properties using Html.DisplayFor and Html.PropertyFor.
2 | Display templates are selected based on the type name of the property and, optionally, by UIHint and DataType attributes added to the property.
3 | Note that the CMS adds a number of view templates which do not exist in this folder but found through a view engine which the CMS adds at start up.
4 | Those view templates can be found in \Application\Util\Views\Shared\DisplayTemplates. Views in this folder takes precedence meaning
5 | that we can override those templates, which is currently done for content areas.
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/Footer.cshtml:
--------------------------------------------------------------------------------
1 | @model IPageViewModel
2 |
3 |
40 |
41 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/Header.cshtml:
--------------------------------------------------------------------------------
1 | @using EPiServer.Editor
2 | @using EPiServer.Core
3 | @using EPiServer.Web
4 | @model IPageViewModel
5 |
6 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/Layouts/_LeftNavigation.cshtml:
--------------------------------------------------------------------------------
1 | @model IPageViewModel
2 |
3 | @{ Layout = "~/Views/Shared/Layouts/_Root.cshtml"; }
4 |
5 | @{await Html.RenderPartialAsync("Breadcrumbs", Model);}
6 |
7 |
8 |
9 |
10 |
11 | @{await Html.RenderPartialAsync("SubNavigation", Model);}
12 | @RenderSection("RelatedContent", false)
13 |
14 |
15 |
16 |
17 |
18 | @RenderBody()
19 |
20 |
21 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/Layouts/_Root.cshtml:
--------------------------------------------------------------------------------
1 |
2 | @using EPiServer.Framework.Web.Mvc.Html
3 | @using AlloyTemplates.Business
4 | @model IPageViewModel
5 |
6 |
7 |
8 |
9 |
10 |
11 | @Model.CurrentPage.MetaTitle
12 | @if (Model.CurrentPage.MetaKeywords != null && Model.CurrentPage.MetaKeywords.Count > 0)
13 | {
14 |
15 | }
16 | @if (!string.IsNullOrWhiteSpace(Model.CurrentPage.MetaDescription))
17 | {
18 |
19 | }
20 |
21 | @Html.CanonicalLink()
22 | @Html.AlternateLinks()
23 |
24 | @Html.RequiredClientResources("Header") @*Enable components to require resources. For an example, see the view for VideoBlock.*@
25 |
26 |
27 |
28 | @if (Model.Layout.IsInReadonlyMode)
29 | {
30 | await Html.RenderPartialAsync("Readonly", Model);
31 | }
32 |
33 | @await Html.RenderEPiServerQuickNavigatorAsync()
34 | @Html.FullRefreshPropertiesMetaData()
35 |
36 | @if(!Model.Layout.HideHeader)
37 | {
38 | await Html.RenderPartialAsync("Header", Model);
39 | }
40 | @RenderBody()
41 | @if(!Model.Layout.HideFooter)
42 | {
43 | await Html.RenderPartialAsync("Footer", Model);
44 | }
45 |
46 | @Html.RequiredClientResources("Footer")
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/Layouts/_TwoPlusOne.cshtml:
--------------------------------------------------------------------------------
1 | @using AlloyTemplates
2 | @model IPageViewModel
3 | @{ Layout = "~/Views/Shared/Layouts/_Root.cshtml"; }
4 |
5 | @{await Html.RenderPartialAsync("Breadcrumbs");}
6 |
7 |
8 |
9 |
10 | @RenderBody()
11 |
12 |
13 |
14 | @if (IsSectionDefined("RelatedContent"))
15 | {
16 | @RenderSection("RelatedContent")
17 | }
18 | else if (Model.CurrentPage is IHasRelatedContent)
19 | {
20 | @Html.PropertyFor(x => ((IHasRelatedContent)x.CurrentPage).RelatedContentArea, new { CssClass = "row", Tag = Global.ContentAreaTags.OneThirdWidth })
21 | }
22 |
23 |
24 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/PagePartials/ContactPage.cshtml:
--------------------------------------------------------------------------------
1 | @model ContactPage
2 |
3 |
4 |
)
5 |
@Model.PageName
6 |
@Model.TeaserText
7 |
8 | @Html.Translate("/contact/email"): @Html.DisplayFor(x => x.Email)
9 | @Html.Translate("/contact/phone"): @Model.Phone
10 |
11 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/PagePartials/ContactPageWide.cshtml:
--------------------------------------------------------------------------------
1 | @model ContactPage
2 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/PagePartials/Page.cshtml:
--------------------------------------------------------------------------------
1 | @using EPiServer.Core
2 | @model SitePageData
3 |
4 |
5 | @using(Html.BeginConditionalLink(Model.HasTemplate(), Url.PageLinkUrl(Model), Model.PageName))
6 | {
7 |
@Model.PageName
8 |
@Model.TeaserText
9 | @Html.DisplayFor(m => m.PageImage)
10 | }
11 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/PagePartials/PageWide.cshtml:
--------------------------------------------------------------------------------
1 | @using EPiServer.Core
2 | @model SitePageData
3 |
4 | @using(Html.BeginConditionalLink(Model.HasTemplate(), Url.PageLinkUrl(Model), Model.PageName))
5 | {
6 |
13 | }
14 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/Readonly.cshtml:
--------------------------------------------------------------------------------
1 | @model IPageViewModel
2 |
3 | @Html.Translate("/Readonly/Message")
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/SubNavigation.cshtml:
--------------------------------------------------------------------------------
1 | @model IPageViewModel
2 |
3 | @{
4 | HelperResult SubLevelItemTemplate(HtmlHelpers.MenuItem subLevelItem)
5 | {
6 |
7 | @Html.PageLink(subLevelItem.Page)
8 |
9 | return new HelperResult(w => Task.CompletedTask);
10 | }
11 | }
12 |
13 | @{
14 | HelperResult ItemTemplate(HtmlHelpers.MenuItem firstLevelItem)
15 | {
16 |
22 |
23 |
24 | @Html.MenuList(firstLevelItem.Page.ContentLink, SubLevelItemTemplate)
25 |
26 |
27 | return new HelperResult(w => Task.CompletedTask);
28 | }
29 | }
30 |
31 |
32 |
33 | @if (Model.Section != null)
34 | {
35 | @Html.MenuList(Model.Section.ContentLink, ItemTemplate)
36 | }
37 |
38 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/TemplateError.cshtml:
--------------------------------------------------------------------------------
1 | @model ContentRenderingErrorModel
2 |
3 |
@string.Format(System.Globalization.CultureInfo.CurrentUICulture, LocalizationService.Current.GetString("/renderingerror/heading"), Model.ContentTypeName, Model.ContentName)
4 |
5 | @Model.Exception.Message
6 | @Model.Exception.StackTrace
7 |
8 |
9 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Shared/TemplateHint.cshtml:
--------------------------------------------------------------------------------
1 | @model string
2 | @Model
3 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/StandardPage/Index.cshtml:
--------------------------------------------------------------------------------
1 | @using AlloyTemplates
2 | @model PageViewModel
3 |
4 | @{ Layout = "~/Views/Shared/Layouts/_LeftNavigation.cshtml"; }
5 |
6 | x.CurrentPage.PageName)>@Model.CurrentPage.PageName
7 | x.CurrentPage.MetaDescription)>@Model.CurrentPage.MetaDescription
8 |
9 |
x.CurrentPage.MainBody)>
10 | @Html.DisplayFor(m => m.CurrentPage.MainBody)
11 |
12 |
13 | @Html.PropertyFor(x => x.CurrentPage.MainContentArea, new { CssClass = "row", Tag = Global.ContentAreaTags.TwoThirdsWidth })
14 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/StartPage/Index.cshtml:
--------------------------------------------------------------------------------
1 | @using AlloyTemplates
2 | @model PageViewModel
3 |
4 | @Html.PropertyFor(x => x.CurrentPage.MainContentArea, new { CssClass = "row equal-height", tag = Global.ContentAreaTags.FullWidth })
5 | @Html.PropertyFor(x => x.CurrentPage.AllowCertainBlockTypes, new { CssClass = "row equal-height", tag = Global.ContentAreaTags.HalfWidth })
6 | @Html.PropertyFor(x => x.CurrentPage.RestrictCertainBlockTypes, new { CssClass = "row equal-height", tag = Global.ContentAreaTags.HalfWidth })
7 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/Web.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
36 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/_ReadMe.txt:
--------------------------------------------------------------------------------
1 | View locations in Alloy follows a number of conventions in addition to the default ASP.NET MVC conventions:
2 | * Views for pages and blocks with their own controllers use standard ASP.NET MVC conventions - /.cshtml
3 | * Page types which don't have their own controller are mapped to /Index.cshtml by DefaultPageController
4 | * Views for block types which don't have their own controllers are found in Shared/Blocks
5 | * Partial views for page types which don't have their own controllers for partial requests are found in Shared/PagePartials
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/_ViewImports.cshtml:
--------------------------------------------------------------------------------
1 | @using EPiServer.Framework.Localization
2 | @using EPiServer.Web.Mvc.Html
3 | @using EPiServer.Shell.Web.Mvc.Html
4 | @using EPiServer.Core
5 | @using EPiServer.Web
6 | @using EPiServer.Web.Mvc
7 | @using EPiServer.Web.Routing
8 | @using AlloyTemplates.Helpers
9 | @using EPiServer.Templates.Alloy.Mvc
10 | @using AlloyTemplates.Models.Blocks
11 | @using AlloyTemplates.Models.Media
12 | @using AlloyTemplates.Models.Pages
13 | @using AlloyTemplates.Models.ViewModels
14 | @using Microsoft.AspNetCore.Mvc.Razor
15 | @using Microsoft.AspNetCore.Html
16 |
17 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
18 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/Views/_viewstart.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | Layout = "~/Views/Shared/Layouts/_Root.cshtml";
3 | }
4 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "EPiServer": "Information",
7 | "Microsoft.Hosting.Lifetime": "Information"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "EPiServer": "Warning",
7 | "Microsoft.Hosting.Lifetime": "Information"
8 | }
9 | },
10 | "urls": "http://*:8000/;",
11 | "AllowedHosts": "*",
12 | "EPiServer": {
13 | "CmsUI": {
14 | "Upload": {
15 | "FileSizeLimit": 10485760
16 | },
17 | "SelectionFactories": {
18 | "Test": {
19 | "Selection1": "Value1",
20 | "Selection2": "Value2"
21 | }
22 | }
23 | },
24 | "Find": {
25 | "ServiceUrl": "https://demo01.find.episerver.net/2P6GwtX0FeHN8ce4TNl3CCUtPNzPmoKA/",
26 | "DefaultIndex": "manhhung.nguyen_manhhungindex1"
27 | }
28 | }
29 | }
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/bundleconfig.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "outputFileName": "wwwroot/css/css.min.css",
4 | "inputFiles": [
5 | "wwwroot/css/bootstrap.css",
6 | "wwwroot/css/bootstrap-responsive.css",
7 | "wwwroot/css/media.css",
8 | "wwwroot/css/style.css",
9 | "wwwroot/css/editmode.css"
10 | ]
11 | },
12 | {
13 | "outputFileName": "wwwroot/js/script.min.js",
14 | "inputFiles": [
15 | "wwwroot/js/jquery.js",
16 | "wwwroot/js/bootstrap.js"
17 | ],
18 | "minify": {
19 | "enabled": true,
20 | "renameLocals": true
21 | },
22 | "sourceMap": false
23 | }
24 | ]
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "3"
2 | services:
3 | sql:
4 | build:
5 | dockerfile: ./docker/Sql.Dockerfile
6 | context: .
7 | # comment out below lines if you want to expose sql server port for using with other tool like sql server managemnent studio
8 | # ports:
9 | # - "1433:1433"
10 | environment:
11 | SA_PASSWORD: ${sa_password}
12 | ACCEPT_EULA: "Y"
13 | DATABASE_NAME: ${database_name}
14 | image: alloy/db:${sql_tag}
15 | web:
16 | build:
17 | dockerfile: ./docker/Web.Dockerfile
18 | context: .
19 | ports:
20 | - "${site_port}:8000"
21 | environment:
22 | ConnectionStrings__EPiServerDB: "Server=sql;Database=${database_name};User Id=sa;Password=${sa_password};MultipleActiveResultSets=True;"
23 | depends_on:
24 | - sql
25 | image: alloy/web:${web_tag}
26 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/docker/Sql.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM mcr.microsoft.com/mssql/server:2019-latest AS base
2 |
3 | USER root
4 |
5 | ENV ACCEPT_EULA=Y
6 | ENV MSSQL_TCP_PORT=1433
7 | EXPOSE 1433
8 |
9 | WORKDIR /src
10 | COPY ./docker/build-script/attach_db.sh /docker/attach_db.sh
11 | COPY ./App_Data/Alloy.mdf /docker/Alloy.mdf
12 |
13 | RUN chmod -R 777 /docker/.
14 |
15 | ENTRYPOINT /docker/attach_db.sh & /opt/mssql/bin/sqlservr
16 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/docker/Web.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim AS base
2 | WORKDIR /app
3 | EXPOSE 8000
4 |
5 | FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build
6 | WORKDIR /src
7 | COPY . .
8 | RUN dotnet restore "AlloyMvcTemplates.csproj"
9 |
10 | RUN dotnet build "AlloyMvcTemplates.csproj" -c Release -o /app/build
11 |
12 | FROM build AS publish
13 | RUN dotnet publish "AlloyMvcTemplates.csproj" -c Release -o /app/publish
14 | COPY ./docker/build-script/wait_sqlserver_start_and_attachdb.sh /app/publish/wait_sqlserver_start_and_attachdb.sh
15 | COPY ./App_Data/DefaultSiteContent.episerverdata /app/publish/App_Data/DefaultSiteContent.episerverdata
16 |
17 | FROM base AS final
18 | WORKDIR /app
19 | COPY --from=publish /app/publish .
20 | #wait sql server container start and attach alloy database then start web
21 | ENTRYPOINT ./wait_sqlserver_start_and_attachdb.sh
22 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/docker/build-script/attach_db.sh:
--------------------------------------------------------------------------------
1 | sleep 30s
2 | /opt/mssql-tools/bin/sqlcmd -S . -U sa -P ${SA_PASSWORD} \
3 | -Q "CREATE DATABASE [${DATABASE_NAME}] ON (FILENAME ='/docker/Alloy.mdf') FOR ATTACH"
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/docker/build-script/wait_sqlserver_start_and_attachdb.sh:
--------------------------------------------------------------------------------
1 |
2 | sleep 120s
3 | echo "Connection string:" $ConnectionStrings__EPiServerDB
4 | echo "Site port:" $site_port
5 | dotnet AlloyMvcTemplates.dll
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/docker/run-script/build.sh:
--------------------------------------------------------------------------------
1 | docker load -i alloy-db.tar
2 | docker load -i alloy-web.tar
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/docker/run-script/build_web_only.sh:
--------------------------------------------------------------------------------
1 | docker load -i alloy-web.tar
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/docker/run-script/run.sh:
--------------------------------------------------------------------------------
1 | docker-compose -f docker-compose.yml up -d
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/docker/run-script/stop.sh:
--------------------------------------------------------------------------------
1 | docker-compose -f docker-compose.yml down
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/docker/run-script/stop_web_only.sh:
--------------------------------------------------------------------------------
1 | docker-compose rm -f -s -v web
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/favicon.ico
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/module.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/modulesbin/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/modulesbin/.gitkeep
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/ClientResources/Images/icons/layoutIcons24x24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/ClientResources/Images/icons/layoutIcons24x24.png
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/ClientResources/Styles/LayoutIcons.css:
--------------------------------------------------------------------------------
1 | .Sleek .epi-icon__layout--full {
2 | background: url('../Images/icons/layoutIcons24x24.png') 0px -24px no-repeat;
3 | height: 24px;
4 | width: 24px;
5 | }
6 | .Sleek .epi-icon__layout--half {
7 | background: url('../Images/icons/layoutIcons24x24.png') 0px -48px no-repeat;
8 | height: 24px;
9 | width: 24px;
10 | }
11 | .Sleek .epi-icon__layout--two-thirds {
12 | background: url('../Images/icons/layoutIcons24x24.png') 0px -72px no-repeat;
13 | height: 24px;
14 | width: 24px;
15 | }
16 | .Sleek .epi-icon__layout--one-third {
17 | background: url('../Images/icons/layoutIcons24x24.png') 0px -96px no-repeat;
18 | height: 24px;
19 | width: 24px;
20 | }
21 | .Sleek .epi-icon__layout--one-quarter {
22 | background: url('../Images/icons/layoutIcons24x24.png') 0px -120px no-repeat;
23 | height: 24px;
24 | width: 24px;
25 | }
26 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/ClientResources/Styles/Styles.css:
--------------------------------------------------------------------------------
1 | @import url("LayoutIcons.css");
2 |
3 | .epiStringList .dijitTextArea {
4 | width: 250px;
5 | }
6 |
7 | .epiStringList .epiStringListError .dijitTextArea {
8 | border: solid 1px #d46464;
9 | }
10 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/css/editmode.css:
--------------------------------------------------------------------------------
1 | /* CSS specific to edit mode, such as help content displayed to the editor */
2 |
3 | .alert-info {
4 | border-color: #B8C0C5;
5 | color: black;
6 | font-family: 'Inter';
7 | font-size: 1em;
8 | font-style: italic;
9 | background-color: #B8C0C5;
10 | box-shadow: 3px 3px 5px #CCC;
11 | text-align: center;
12 | }
13 |
14 | .alert-error p {
15 | text-align: left;
16 | }
17 |
18 | .alert-error .heading {
19 | font-weight: bold;
20 | color: #ff0000;
21 | }
22 |
23 | .alert-error .details {
24 | font-size: 0.8em;
25 | max-height: 100px;
26 | overflow: scroll;
27 | }
28 |
29 | .header.dim {
30 | margin: 2% 0;
31 | opacity: 0.3;
32 | }
33 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/css/editor.css:
--------------------------------------------------------------------------------
1 | /* Styles used by the TinyMCE editor */
2 |
3 | h2 {EditMenuName:Header 2;}
4 | h3 {EditMenuName:Header 3;}
5 |
6 | /*Block Preview*/
7 | .alert-info {
8 | background-color: #FFF8AA;
9 | border-color: #858585;
10 | color: #000000;
11 | font-family: Verdana;
12 | font-size: 12px;
13 | }
14 |
15 | .header.dim {
16 | margin: 2% 0;
17 | opacity: 0.3;
18 | }
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/css/media.css:
--------------------------------------------------------------------------------
1 | @charset "utf-8";
2 | /* CSS Document */
3 |
4 |
5 |
6 | @media (max-width: 979px) {
7 | .span12, .span8, .span6, .span4 {
8 | float: none;
9 | width: auto !important;
10 | }
11 |
12 | .span4 h2, .span6 h2
13 | {
14 | clear:both;
15 | }
16 |
17 | .teaserblock.full h2, .teaserblock.wide h2 {
18 | font-size: 2.5em;
19 | }
20 |
21 | .subHeader
22 | {
23 | width:100% !important;
24 | font-weight:normal !important;
25 | }
26 |
27 | .jumbotronblock .span4
28 | {
29 | display:none;
30 | }
31 |
32 | .media .mediaImg img
33 | {
34 | width:75%;}
35 |
36 |
37 | .hideMyTracks {display:none;}
38 |
39 | }
40 |
41 |
42 |
43 | @media (max-width: 834px) {
44 |
45 | .teaserblock.full h2, .teaserblock.wide h2 {
46 | clear:both;
47 | }
48 |
49 | .teaserblock.full h2, .teaserblock.wide h2, .teaserblock.full p, .teaserblock.wide p {
50 | text-align:center;
51 | }
52 |
53 | .teaserblock.full img, .teaserblock.wide img {
54 | width:75%;
55 | }
56 |
57 | #header .span2
58 | {
59 | float:left;
60 | width:20% !important;
61 | }
62 |
63 | #header .span10
64 | {
65 | float:right;
66 | }
67 |
68 | .span12 .media .mediaText, .span8 .media .mediaText
69 | {
70 | clear:both;
71 | margin:0 2% 5px;
72 | }
73 |
74 | }
75 |
76 | @media (max-width: 767px) {
77 |
78 | h1
79 | {
80 | font-size:35px !important;
81 | }
82 |
83 | h2
84 | {
85 | font-size:20px !important;
86 | }
87 |
88 | .introduction {
89 | font-size:1.2em !important;
90 | margin:2% 0 4% 0;
91 | }
92 |
93 | .alloyMenu .navbar .nav>li>a {
94 | color:#323335;
95 | padding-bottom:12px;
96 | line-height:23px;
97 | text-shadow:none !important;
98 | outline:none;
99 | }
100 |
101 | .alloyMenu .navbar .nav>li>ul>li a:hover {
102 | outline:1px solid;
103 | background:#2980bd;
104 | }
105 |
106 |
107 | .span3 {
108 | width:100% !important;
109 |
110 | }
111 |
112 | .teaserblock img {
113 | width:75%;
114 | }
115 |
116 | .btn-blue {
117 | margin-right:1%;
118 | float:left;
119 | clear:none;
120 | }
121 |
122 | .searchButton {
123 | float:right;
124 | margin-top:7px !important;
125 | }
126 |
127 | .alloyMenu .navbar-search .search-query
128 | {
129 | max-width:70%;
130 | }
131 |
132 |
133 | #header .span2
134 | {
135 | float:left;
136 | width:20% !important;
137 | }
138 |
139 | #header .span10
140 | {
141 | float:right;
142 | }
143 |
144 | }
145 |
146 |
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/gfx/New_FDT_Press_Contact_.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/gfx/New_FDT_Press_Contact_.JPG
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/gfx/carouselbackground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/gfx/carouselbackground.png
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/gfx/contact.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/gfx/contact.jpg
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/gfx/exampelspan4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/gfx/exampelspan4.png
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/gfx/experts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/gfx/experts.png
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/gfx/fallows-media-wide.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/gfx/fallows-media-wide.jpg
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/gfx/leader.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/gfx/leader.png
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/gfx/leader2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/gfx/leader2.png
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/gfx/logotype.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/gfx/logotype.png
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/gfx/meet.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/gfx/meet.jpg
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/gfx/page-type-thumbnail-article.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/gfx/page-type-thumbnail-article.png
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/gfx/page-type-thumbnail-contact.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/gfx/page-type-thumbnail-contact.png
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/gfx/page-type-thumbnail-product.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/gfx/page-type-thumbnail-product.png
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/gfx/page-type-thumbnail-standard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/gfx/page-type-thumbnail-standard.png
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/gfx/page-type-thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/gfx/page-type-thumbnail.png
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/gfx/person.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/gfx/person.png
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/gfx/plan.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/gfx/plan.jpg
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/gfx/play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/gfx/play.png
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/gfx/playInactive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/gfx/playInactive.png
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/gfx/productLandingv2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/gfx/productLandingv2.png
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/gfx/searchbutton.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/gfx/searchbutton.png
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/gfx/searchbuttonsmall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/gfx/searchbuttonsmall.png
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/gfx/track.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/gfx/track.jpg
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/img/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/img/favicon.ico
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/img/glyphicons-halflings-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/img/glyphicons-halflings-white.png
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/img/glyphicons-halflings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/img/glyphicons-halflings.png
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/jwplayer/player.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/jwplayer/player.swf
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/jwplayer/preview.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/jwplayer/preview.jpg
--------------------------------------------------------------------------------
/sample/AlloyMvcTemplates/wwwroot/jwplayer/video.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/episerver/PowerSlice/294af61f339040d267f33fc7ac4800064efd229d/sample/AlloyMvcTemplates/wwwroot/jwplayer/video.mp4
--------------------------------------------------------------------------------