@@ -0,0 +1,21 @@
<div ng-controller="Umbraco.PropertyEditors.Grid.TextStringController">
<textarea
rows="1"
umb-auto-resize
umb-auto-focus
class="textstring input-block-level" id="{{control.uniqueId}}_text"
ng-model="control.value.quote"
ng-attr-style="{{control.editor.config.style}}" placeholder="Write quote here..."></textarea>
<textarea
rows="1"
umb-auto-resize
class="textstring input-block-level" id="{{control.uniqueId}}_text"
ng-model="control.value.headline"
ng-attr-style="{{control.editor.config.style}}" placeholder="Write headerline here..."></textarea>
<textarea
rows="1"
umb-auto-resize
class="textstring input-block-level" id="{{control.uniqueId}}_text"
ng-model="control.value.description"
ng-attr-style="{{control.editor.config.style}}" placeholder="Write description here..."></textarea>
</div>
@@ -0,0 +1,112 @@
[class*="vorto-"]
{
margin: 0;
padding: 0;
list-style: none;
}

[class*="vorto-"] a
{
text-decoration: none;
}

.vorto-tabs
{
margin-bottom: -1px;
}

.vorto-tabs__item
{
position: relative;
background: #f8f8f8;
display: inline-block;
line-height: 30px;
padding: 0 10px;
border: solid 1px #ddd;
margin-right: -1px;
height: 30px;
vertical-align: bottom;
cursor: pointer;
}

.vorto-tabs__item.active,
.vorto-tabs__item:hover
{
background: #fff;
}

.vorto-tabs__item.active,
.vorto-tabs__item--menu:hover
{
border-bottom-color: #fff;
}

.vorto-tabs__item--icon
{
padding-right: 30px;
}

/*.vorto-tabs__item--menu:hover .vorto-menu
{
display: block;
}*/

.vorto-menu
{
display: none;
position: absolute;
top: 31px;
left: -1px;
background: #fff;
border: solid 1px #ddd;
border-top-width: 0;
z-index: 2000 !important;
min-width: 150px;
}

.vorto-menu__item
{
position: relative;
display: block;
padding: 5px 10px;
white-space: nowrap;
cursor: pointer;
}

.vorto-menu__item:hover
{
background: #2e8aea;
color: #fff;
}

.vorto-menu__item label
{
display: block;
padding: 0;
margin: 0;
}

.vorto-menu__item--icon
{
padding-right: 30px;
}

.vorto-menu__item--divide
{
border-top: solid 1px #ddd;
}

.vorto-icon
{
position: absolute;
right: 0;
top: 0;
line-height: 30px;
padding: 0 5px;
}

.vorto-property
{
border: solid 1px #ddd;
padding: 15px;
}
@@ -0,0 +1,114 @@
/*!
* jQuery Cookie Plugin v1.4.1
* https://github.com/carhartl/jquery-cookie
*
* Copyright 2006, 2014 Klaus Hartl
* Released under the MIT license
*/
(function (factory) {
if (typeof define === 'function' && define.amd) {
// AMD (Register as an anonymous module)
define(['jquery'], factory);
} else if (typeof exports === 'object') {
// Node/CommonJS
module.exports = factory(require('jquery'));
} else {
// Browser globals
factory(jQuery);
}
}(function ($) {

var pluses = /\+/g;

function encode(s) {
return config.raw ? s : encodeURIComponent(s);
}

function decode(s) {
return config.raw ? s : decodeURIComponent(s);
}

function stringifyCookieValue(value) {
return encode(config.json ? JSON.stringify(value) : String(value));
}

function parseCookieValue(s) {
if (s.indexOf('"') === 0) {
// This is a quoted cookie as according to RFC2068, unescape...
s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
}

try {
// Replace server-side written pluses with spaces.
// If we can't decode the cookie, ignore it, it's unusable.
// If we can't parse the cookie, ignore it, it's unusable.
s = decodeURIComponent(s.replace(pluses, ' '));
return config.json ? JSON.parse(s) : s;
} catch(e) {}
}

function read(s, converter) {
var value = config.raw ? s : parseCookieValue(s);
return $.isFunction(converter) ? converter(value) : value;
}

var config = $.cookie = function (key, value, options) {

// Write

if (arguments.length > 1 && !$.isFunction(value)) {
options = $.extend({}, config.defaults, options);

if (typeof options.expires === 'number') {
var days = options.expires, t = options.expires = new Date();
t.setMilliseconds(t.getMilliseconds() + days * 864e+5);
}

return (document.cookie = [
encode(key), '=', stringifyCookieValue(value),
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
options.path ? '; path=' + options.path : '',
options.domain ? '; domain=' + options.domain : '',
options.secure ? '; secure' : ''
].join(''));
}

// Read

var result = key ? undefined : {},
// To prevent the for loop in the first place assign an empty array
// in case there are no cookies at all. Also prevents odd result when
// calling $.cookie().
cookies = document.cookie ? document.cookie.split('; ') : [],
i = 0,
l = cookies.length;

for (; i < l; i++) {
var parts = cookies[i].split('='),
name = decode(parts.shift()),
cookie = parts.join('=');

if (key === name) {
// If second argument (value) is a function it's a converter...
result = read(cookie, value);
break;
}

// Prevent storing a cookie that we couldn't decode.
if (!key && (cookie = read(cookie)) !== undefined) {
result[name] = cookie;
}
}

return result;
};

config.defaults = {};

$.removeCookie = function (key, options) {
// Must not alter options, thus extending a fresh object...
$.cookie(key, '', $.extend({}, options, { expires: -1 }));
return !$.cookie(key);
};

}));

Large diffs are not rendered by default.

@@ -0,0 +1,44 @@
<ng-form name="vortoForm">
<div id="vorto-{{model.id}}" class="vorto" ng-controller="Our.Umbraco.PropertyEditors.Vorto.vortoEditor">

<ul class="vorto-tabs">
<li class="vorto-tabs__item"
ng-class="currentLanguage.isoCode == activeLanguage.isoCode ? 'active' : ''"
ng-click="setActiveLanguage(currentLanguage);">
<span ng-hide="model.config.displayNativeNames">{{currentLanguage.name}}</span>
<span ng-show="model.config.displayNativeNames">{{currentLanguage.nativeName}}</span>
</li><!--
--><li class="vorto-tabs__item vorto-tabs__item--icon"
ng-class="language.isoCode == activeLanguage.isoCode ? 'active' : ''"
ng-repeat="language in pinnedLanguages"
ng-click="setActiveLanguage(language);">
<span ng-hide="model.config.displayNativeNames">{{language.name}}</span>
<span ng-show="model.config.displayNativeNames">{{language.nativeName}}</span>
<i class="icon icon-wrong vorto-icon"
ng-click="unpinLanguage(language);$event.stopPropagation();"></i>
</li><!--
--><li class="vorto-tabs__item vorto-tabs__item--menu">
<i class="icon icon-globe"></i>
<ul class="vorto-menu">
<li class="vorto-menu__item vorto-menu__item--icon"
ng-repeat="language in languages"
ng-click="setCurrentLanguage(language);">
<span ng-hide="model.config.displayNativeNames">{{language.name}}</span>
<span ng-show="model.config.displayNativeNames">{{language.nativeName}}</span>
<i class="icon icon-pushpin vorto-icon" ng-click="pinLanguage(language);$event.stopPropagation();"
ng-show="isPinnable(language)"></i>
</li>
<li class="vorto-menu__item vorto-menu__item--divide">
<label><input type="checkbox" ng-model="sync" /> Sync</label>
</li>
</ul>
</li>

</ul>

<div class="vorto-property" ng-repeat="language in languages" ng-show="activeLanguage.isoCode == language.isoCode">
<vorto-property view="property.viewPath" config="property.config" language="language.isoCode" property-alias="model.alias" value="model.value.values[language.isoCode]"></vorto-property>
</div>

</div>
</ng-form>
@@ -0,0 +1,14 @@
<div ng-controller="Our.Umbraco.PreValueEditors.Vorto.languagePicker">

<select name="dropDownList"
class="umb-editor umb-dropdown"
ng-model="model.value">
<option value="">None</option>
<option ng-selected="{{language.isoCode == model.value}}"
ng-repeat="language in model.languages"
value="{{language.isoCode}}">
{{language.name}}
</option>
</select>

</div>
@@ -0,0 +1,4 @@
<div>
<label><input type="radio" ng-model="model.value" value="installed" /> Installed</label>
<label><input type="radio" ng-model="model.value" value="inuse" /> In-use</label>
</div>
@@ -0,0 +1,8 @@
<select name="dropDownList"
class="umb-editor umb-dropdown"
ng-model="model.value">
<option value="ignore">Ignore</option>
<option value="all">All Mandatory</option>
<option value="any">Any Mandatory</option>
<option value="primary">Primary Language Mandatory</option>
</select>
@@ -0,0 +1,9 @@
<div ng-controller="Our.Umbraco.PreValueEditors.Vorto.propertyEditorPicker">

<select name="dropDownList"
class="umb-editor umb-dropdown"
ng-model="model.value"
ng-options="i.name for i in model.dataTypes track by i.guid">
</select>

</div>

Large diffs are not rendered by default.

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<NotFoundHandlers>
<notFound assembly="umbraco" type="SearchForAlias" />
<notFound assembly="umbraco" type="SearchForTemplate"/>
<notFound assembly="umbraco" type="SearchForProfile"/>
<notFound assembly="umbraco" type="handle404"/>
</NotFoundHandlers>
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<BaseRestExtensions>
<!--
<extension alias="member" type="Umbraco.Web.BaseRest.MemberRest,umbraco">
<method name="Login" allowAll="true" />
<method name="Logout" allowAll="true" />
<method name="GetCurrentMemberId" allowAll="true" />
<method name="GetCurrentMember" allowAll="true" />
<method name="GetCurrentMemberAsXml" allowAll="true" />
<method name="SetProperty" allowAll="false" />
</extension>
-->
<!--
<extension alias="umbBlog" type="Runway.Blog.Library.Base,Runway.Blog">
<method name="CreateComment" returnXml="false" allowAll="true" />
<method name="GetGravatarImage" returnXml="false" allowAll="true" />
</extension>
-->
</BaseRestExtensions>
@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="utf-8"?>

<!--
For full details of the client dependency framework, visit
https://github.com/Shandem/ClientDependency
It manages CSS and JS file dependencies per control without having to worry about duplicates.
It also manages the combination, compression and minification of all JS & CSS files.
NOTES:
* Compression/Combination/Minification is not enabled unless debug="false" is specified on the 'compiliation' element in the web.config
* A new version will invalidate both client and server cache and create new persisted files
-->
<clientDependency version="1" fileDependencyExtensions=".js,.css" loggerType="Umbraco.Web.UI.CdfLogger, umbraco">

<!--
This section is used for Web Forms only, the enableCompositeFiles="true" is optional and by default is set to true.
The LoaderControlProvider is set to default, the javascriptPlaceHolderId, cssPlaceHolderId attributes are optional and default to what is listed below. If using
this provider, then you must specify both PlaceHolder controls on your page in order to render the JS/CSS.
-->
<fileRegistration defaultProvider="PlaceHolderProvider">
<providers>
<add name="PageHeaderProvider" type="ClientDependency.Core.FileRegistration.Providers.PageHeaderProvider, ClientDependency.Core" />
<add name="LazyLoadProvider" type="ClientDependency.Core.FileRegistration.Providers.LazyLoadProvider, ClientDependency.Core" />
<add name="LoaderControlProvider" type="ClientDependency.Core.FileRegistration.Providers.LoaderControlProvider, ClientDependency.Core" />
<add name="PlaceHolderProvider" type="ClientDependency.Core.FileRegistration.Providers.PlaceHolderProvider, ClientDependency.Core" javascriptPlaceHolderId="JavaScriptPlaceHolder" cssPlaceHolderId="CssPlaceHolder" />
</providers>
</fileRegistration>

<!-- This section is used for MVC only -->
<mvc defaultRenderer="StandardRenderer">
<renderers>
<add name="StandardRenderer" type="ClientDependency.Core.FileRegistration.Providers.StandardRenderer, ClientDependency.Core" />
<add name="LazyLoadRenderer" type="ClientDependency.Core.FileRegistration.Providers.LazyLoadRenderer, ClientDependency.Core" />
</renderers>
</mvc>

<!--
The composite file section configures the compression/combination/minification of files.
You can enable/disable minification of either JS/CSS files and you can enable/disable the
persistence of composite files. By default, minification and persistence is enabled. Persisting files
means that the system is going to save the output of the compressed/combined/minified files
to disk so that on any subsequent request (when output cache expires) that these files don't have
to be recreated again and will be based on the persisted file on disk. This saves on processing time.
-->
<compositeFiles defaultProvider="defaultFileProcessingProvider" compositeFileHandlerPath="~/DependencyHandler.axd">
<fileProcessingProviders>
<add name="CompositeFileProcessor"
type="ClientDependency.Core.CompositeFiles.Providers.CompositeFileProcessingProvider, ClientDependency.Core"
enableCssMinify="true"
enableJsMinify="true"
persistFiles="true"
compositeFilePath="~/App_Data/TEMP/ClientDependency"
bundleDomains="localhost:123456"
urlType="Base64QueryStrings"
pathUrlFormat="{dependencyId}/{version}/{type}"/>
</fileProcessingProviders>

<!-- A file map provider stores references to dependency files by an id to be used in the handler URL when using the MappedId Url type -->
<fileMapProviders>
<add name="XmlFileMap"
type="ClientDependency.Core.CompositeFiles.Providers.XmlFileMapper, ClientDependency.Core"
mapPath="~/App_Data/TEMP/ClientDependency" />
</fileMapProviders>

</compositeFiles>
</clientDependency>
@@ -0,0 +1,88 @@
<?xml version="1.0" encoding="utf-8"?>
<dashBoard>

<section alias="StartupSettingsDashboardSection">
<areas>
<area>settings</area>
</areas>
<tab caption="Welcome">
<control showOnce="true" addPanel="true" panelCaption="">
views/dashboard/settings/settingsdashboardintro.html
</control>
</tab>
</section>

<section alias="StartupFormsDashboardSection">
<areas>
<area>forms</area>
</areas>
<tab caption="Install Umbraco Forms">
<control showOnce="true" addPanel="true" panelCaption="">
views/dashboard/forms/formsdashboardintro.html
</control>
</tab>
</section>

<section alias="StartupDeveloperDashboardSection">
<areas>
<area>developer</area>
</areas>
<tab caption="Get Started">
<control showOnce="true" addPanel="true" panelCaption="">
views/dashboard/developer/developerdashboardvideos.html
</control>
</tab>
<tab caption="Examine Management">
<control>
views/dashboard/developer/examinemanagement.html
</control>
</tab>
</section>

<section alias="StartupMediaDashboardSection">
<areas>
<area>media</area>
</areas>
<tab caption="Content">
<control showOnce="false" addPanel="false" panelCaption="">
views/dashboard/media/mediafolderbrowser.html
</control>
</tab>

</section>

<section alias="StartupDashboardSection">
<access>
<deny>translator</deny>
</access>
<areas>
<area>content</area>
</areas>
<tab caption="Get Started">
<access>
<grant>admin</grant>
</access>

<control showOnce="true" addPanel="true" panelCaption="">
views/dashboard/default/startupdashboardintro.html
</control>

</tab>
<tab caption="Change Password">
<control showOnce="false" addPanel="false" panelCaption="">
views/dashboard/ChangePassword.html
</control>
</tab>
</section>

<section alias="StartupMemberDashboardSection">
<areas>
<area>member</area>
</areas>
<tab caption="Get Started">
<control showOnce="true" addPanel="true" panelCaption="">
views/dashboard/members/membersdashboardvideos.html
</control>
</tab>
</section>
</dashBoard>
@@ -0,0 +1,71 @@
<?xml version="1.0"?>
<embed>
<!-- Flickr Settings-->
<provider name="Flickr" type="Umbraco.Web.Media.EmbedProviders.Flickr, umbraco">
<urlShemeRegex><![CDATA[flickr\.com/]]></urlShemeRegex>
<apiEndpoint><![CDATA[http://www.flickr.com/services/oembed/]]></apiEndpoint>
<requestParams type="Umbraco.Web.Media.EmbedProviders.Settings.Dictionary, umbraco"></requestParams>
</provider>
<!-- Screenr Settings -->
<provider name="Screenr" type="Umbraco.Web.Media.EmbedProviders.OEmbedVideo, umbraco" supportsDimensions="False">
<urlShemeRegex><![CDATA[screenr\.com/]]></urlShemeRegex>
<apiEndpoint><![CDATA[http://www.screenr.com/api/oembed.xml]]></apiEndpoint>
<requestParams type="Umbraco.Web.Media.EmbedProviders.Settings.Dictionary, umbraco"></requestParams>
</provider>
<!-- SlideShare Settings -->
<provider name="SlideShare" type="Umbraco.Web.Media.EmbedProviders.OEmbedRich, umbraco">
<urlShemeRegex><![CDATA[slideshare\.net/]]></urlShemeRegex>
<apiEndpoint><![CDATA[http://www.slideshare.net/api/oembed/2]]></apiEndpoint>
<requestParams type="Umbraco.Web.Media.EmbedProviders.Settings.Dictionary, umbraco">
<param name="format">xml</param>
</requestParams>
</provider>
<!-- SoundCloud Settigs -->
<provider name="SoundCloud" type="Umbraco.Web.Media.EmbedProviders.OEmbedRich, umbraco">
<urlShemeRegex><![CDATA[soundcloud\.com/]]></urlShemeRegex>
<apiEndpoint><![CDATA[http://soundcloud.com/oembed]]></apiEndpoint>
<requestParams type="Umbraco.Web.Media.EmbedProviders.Settings.Dictionary, umbraco"></requestParams>
</provider>
<!-- Twitgoo Settings , not an OEmbed one -->
<provider name="Twitgoo" type="Umbraco.Web.Media.EmbedProviders.Twitgoo, umbraco">
<urlShemeRegex><![CDATA[twitgoo\.com/]]></urlShemeRegex>
</provider>
<!-- Youtube Settings -->
<provider name="Youtube" type="Umbraco.Web.Media.EmbedProviders.OEmbedVideo, umbraco">
<urlShemeRegex><![CDATA[youtu(?:\.be|be\.com)/(?:(.*)v(/|=)|(.*/)?)([a-zA-Z0-9-_]+)]]></urlShemeRegex>
<apiEndpoint><![CDATA[https://www.youtube.com/oembed]]></apiEndpoint>
<requestParams type="Umbraco.Web.Media.EmbedProviders.Settings.Dictionary, umbraco">
<param name="iframe">1</param>
<param name="format">xml</param>
<param name="scheme">https</param>
</requestParams>
</provider>
<!-- StreamDotUmbracoDotCom -->
<provider name="StreamDotUmbracoDotCom" type="Umbraco.Web.Media.EmbedProviders.OEmbedVideo, umbraco">
<urlShemeRegex><![CDATA[stream\.umbraco\.org/]]></urlShemeRegex>
<apiEndpoint><![CDATA[http://stream.umbraco.org/oembed]]></apiEndpoint>
<requestParams type="Umbraco.Web.Media.EmbedProviders.Settings.Dictionary, umbraco"></requestParams>
</provider>
<!-- Daily Motion -->
<provider name="DailyMotion" type="Umbraco.Web.Media.EmbedProviders.OEmbedVideo, umbraco">
<urlShemeRegex><![CDATA[dailymotion\.com/]]></urlShemeRegex>
<apiEndpoint><![CDATA[http://www.dailymotion.com/services/oembed]]></apiEndpoint>
<requestParams type="Umbraco.Web.Media.EmbedProviders.Settings.Dictionary, umbraco">
<param name="format">xml</param>
</requestParams>
</provider>
<!-- Hulu -->
<provider name="Hulu" type="Umbraco.Web.Media.EmbedProviders.OEmbedVideo, umbraco">
<urlShemeRegex><![CDATA[hulu\.com/]]></urlShemeRegex>
<apiEndpoint><![CDATA[http://www.hulu.com/api/oembed.xml]]></apiEndpoint>
<requestParams type="Umbraco.Web.Media.EmbedProviders.Settings.Dictionary, umbraco">
<param name="format">xml</param>
</requestParams>
</provider>
<!-- Vimeo -->
<provider name="Vimeo" type="Umbraco.Web.Media.EmbedProviders.OEmbedVideo, umbraco">
<urlShemeRegex><![CDATA[vimeo\.com/]]></urlShemeRegex>
<apiEndpoint><![CDATA[http://vimeo.com/api/oembed.xml]]></apiEndpoint>
<requestParams type="Umbraco.Web.Media.EmbedProviders.Settings.Dictionary, umbraco"></requestParams>
</provider>
</embed>
@@ -0,0 +1,28 @@
<?xml version="1.0"?>
<!--
Umbraco examine is an extensible indexer and search engine.
This configuration file can be extended to create your own index sets.
Index/Search providers can be defined in the UmbracoSettings.config
More information and documentation can be found on CodePlex: http://umbracoexamine.codeplex.com
-->
<ExamineLuceneIndexSets>
<!-- The internal index set used by Umbraco back-office - DO NOT REMOVE -->
<IndexSet SetName="InternalIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/Internal/"/>

<!-- The internal index set used by Umbraco back-office for indexing members - DO NOT REMOVE -->
<IndexSet SetName="InternalMemberIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/InternalMember/">
<IndexAttributeFields>
<add Name="id" />
<add Name="nodeName"/>
<add Name="updateDate" />
<add Name="writerName" />
<add Name="loginName" />
<add Name="email" />
<add Name="nodeTypeAlias" />
</IndexAttributeFields>
</IndexSet>

<!-- Default Indexset for external searches, this indexes all fields on all types of nodes-->
<IndexSet SetName="ExternalIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/External/" />
</ExamineLuceneIndexSets>
@@ -0,0 +1,41 @@
<?xml version="1.0"?>
<!--
Umbraco examine is an extensible indexer and search engine.
This configuration file can be extended to add your own search/index providers.
Index sets can be defined in the ExamineIndex.config if you're using the standard provider model.
More information and documentation can be found on CodePlex: http://umbracoexamine.codeplex.com
-->
<Examine>
<ExamineIndexProviders>
<providers>
<add name="InternalIndexer" type="UmbracoExamine.UmbracoContentIndexer, UmbracoExamine"
supportUnpublished="true"
supportProtected="true"
analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"/>

<add name="InternalMemberIndexer" type="UmbracoExamine.UmbracoMemberIndexer, UmbracoExamine"
supportUnpublished="true"
supportProtected="true"
analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net"/>

<!-- default external indexer, which excludes protected and unpublished pages-->
<add name="ExternalIndexer" type="UmbracoExamine.UmbracoContentIndexer, UmbracoExamine"/>

</providers>
</ExamineIndexProviders>

<ExamineSearchProviders defaultProvider="ExternalSearcher">
<providers>
<add name="InternalSearcher" type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine"
analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"/>

<add name="ExternalSearcher" type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine" />

<add name="InternalMemberSearcher" type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine"
analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net" enableLeadingWildcard="true"/>

</providers>
</ExamineSearchProviders>

</Examine>
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<FileSystemProviders>

<!-- Media -->
<Provider alias="media" type="Umbraco.Core.IO.PhysicalFileSystem, Umbraco.Core">
<Parameters>
<add key="virtualRoot" value="~/media/" />
</Parameters>
</Provider>

</FileSystemProviders>
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<urlrewritingnet xmlns="http://www.urlrewriting.net/schemas/config/2006/07">
<rewrites>
<!--
Urlrewriting.Net is a cool tool, what can make your urls look nice.
The rewriting is controlled with regular expressions. To get more help
look at http://www.urlrewriting.net/.
Remember to read the manual!
http://our.umbraco.org/wiki/recommendations/recommended-reading-for-web-developers
The sample below rewrites a url from
"/product/someproductid.aspx" to
"/product.aspx?productid=someproductid"
The user will not see the rewritten path! The page that will be
loaded from umbraco will instead be:
"/product.aspx?productid=someproductid"
<add name="produktidrewrite"
virtualUrl="^~/product/(.*).aspx"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/product.aspx?productid=$1"
ignoreCase="true" />
This sample is usefull for a productpage, where the product comes from a
dynamic datasource, e.g. a database. The querystring "productid" can be loaded
from the template, into a macro, that then loads the product!
Any bugs or problems with the rewriter, contact Anders/Duckie
-->
</rewrites>
</urlrewritingnet>
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<applications>
<add alias="content" name="Content" icon="traycontent" sortOrder="0" />
<add alias="media" name="Media" icon="traymedia" sortOrder="1" />
<add alias="settings" name="Settings" icon="traysettings" sortOrder="2" />
<add alias="developer" name="Developer" icon="traydeveloper" sortOrder="3" />
<add alias="users" name="Users" icon="trayuser" sortOrder="4" />
<add alias="member" name="Members" icon="traymember" sortOrder="5" />
<add alias="forms" name="Forms" icon="icon-umb-contour" sortOrder="6" />
<add alias="translation" name="Translation" icon="traytranslation" sortOrder="7" />
</applications>
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<feedProxy>
<!-- To enable the FeedProxy to access other domains, please add the hostname to an 'allow' element. -->
<!-- <allow host="domain.com" /> -->

<!-- The following hostnames are used by on the dashboards, please do not delete these. -->
<allow host="umbraco.com" />
<allow host="umbraco.org" />
<allow host="umbraco.tv" />
<allow host="our.umbraco.org" />
</feedProxy>
@@ -0,0 +1,151 @@
[
{
"name": "Rich text editor",
"alias": "rte",
"view": "rte",
"icon": "icon-article"
},
{
"name": "Image",
"alias": "media",
"view": "media",
"icon": "icon-picture"
},
{
"name": "Image wide",
"alias": "media_wide",
"view": "media",
"render": "/App_Plugins/Grid/Editors/Render/media_wide.cshtml",
"icon": "icon-picture"
},
{
"name": "Image wide cropped",
"alias": "media_wide_cropped",
"view": "media",
"render": "media",
"icon": "icon-picture",
"config": {
"size": {
"width": 1920,
"height": 700
}
}
},
{
"name": "Image rounded",
"alias": "media_round",
"view": "media",
"render": "/App_Plugins/Grid/Editors/Render/media_round.cshtml",
"icon": "icon-picture"
},
{
"name": "Image w/ text right",
"alias": "media_text_right",
"view": "/App_Plugins/Grid/Editors/Views/media_with_description.html",
"render": "/App_Plugins/Grid/Editors/Render/media_text_right.cshtml",
"icon": "icon-picture"
},
{
"name": "Macro",
"alias": "macro",
"view": "macro",
"icon": "icon-settings-alt"
},
{
"name": "Embed",
"alias": "embed",
"view": "embed",
"render": "/App_Plugins/Grid/Editors/Render/embed_videowrapper.cshtml",
"icon": "icon-movie-alt"
},
{
"name": "Banner Headline",
"alias": "banner_headline",
"view": "textstring",
"icon": "icon-coin",
"config": {
"style": "font-size: 36px; line-height: 45px; font-weight: bold; text-align:center",
"markup": "<h1 style='font-size:62px;text-align:center'>#value#</h1>"
}
},
{
"name": "Banner Tagline",
"alias": "banner_tagline",
"view": "textstring",
"icon": "icon-coin",
"config": {
"style": "font-size: 25px; line-height: 35px; font-weight: normal; text-align:center",
"markup": "<h2 style='font-weight: 100; font-size: 40px;text-align:center'>#value#</h2>"
}
},
{
"name": "Headline",
"alias": "headline",
"view": "textstring",
"icon": "icon-coin",
"config": {
"style": "font-size: 36px; line-height: 45px; font-weight: bold",
"markup": "<h1>#value#</h1>"
}
},
{
"name": "Headline centered",
"alias": "headline_centered",
"view": "textstring",
"icon": "icon-coin",
"config": {
"style": "font-size: 30px; line-height: 45px; font-weight: bold; text-align:center;",
"markup": "<h1 style='text-align:center;'>#value#</h1>"
}
},
{
"name": "Abstract",
"alias": "abstract",
"view": "textstring",
"icon": "icon-coin",
"config": {
"style": "font-size: 16px; line-height: 20px; font-weight: bold;",
"markup": "<h3>#value#</h3>"
}
},
{
"name": "Paragraph",
"alias": "paragraph",
"view": "textstring",
"icon": "icon-font",
"config": {
"style": "font-size: 16px; line-height: 20px; font-weight: light;",
"markup": "<p>#value#</p>"
}
},
{
"name": "Quote",
"alias": "quote",
"view": "textstring",
"icon": "icon-quote",
"config": {
"style": "border-left: 3px solid #ccc; padding: 10px; color: #ccc; font-family: serif; font-variant: italic; font-size: 18px",
"markup": "<blockquote>#value#</blockquote>"
}
},
{
"name": "Quote with description",
"alias": "quote_D",
"view": "/App_Plugins/Grid/Editors/Views/quote_with_description.html",
"render": "/App_Plugins/Grid/Editors/Render/quote_with_description.cshtml",
"icon": "icon-quote",
"config": {
"style": "border-left: 3px solid #ccc; padding: 10px; color: #ccc; font-family: serif; font-variant: italic; font-size: 18px"
}
},
{
"name": "Code",
"alias": "code",
"view": "textstring",
"icon": "icon-code",
"config": {
"style": "overflow: auto;padding: 6px 10px;border: 1px solid #ddd;border-radius: 3px;background-color: #f8f8f8;font-size: .9rem;font-family: 'Courier 10 Pitch', Courier, monospace;line-height: 19px;",
"markup": "<pre>#value#</pre>"
}
}
]
@@ -0,0 +1,28 @@
<?xml version="1.0"?>
<log4net>

<root>
<priority value="Info"/>
<appender-ref ref="AsynchronousLog4NetAppender" />
</root>

<appender name="AsynchronousLog4NetAppender" type="Umbraco.Core.Logging.AsynchronousRollingFileAppender, Umbraco.Core">
<file value="App_Data\Logs\UmbracoTraceLog.txt" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<maximumFileSize value="5MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
<encoding value="utf-8" />
</appender>

<!--Here you can change the way logging works for certain namespaces -->

<logger name="NHibernate">
<level value="WARN" />
</logger>


</log4net>
@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<metablogapi>
</metablogapi>
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<microsoft.scripting>
<languages>
<language names="IronPython;Python;py" extensions=".py" displayName="IronPython 2.6" type="IronPython.Runtime.PythonContext, IronPython, Version=2.6.10920.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<language names="IronRuby;Ruby;rb" extensions=".rb" displayName="IronRuby 1.0" type="IronRuby.Runtime.RubyContext, IronRuby, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</languages>

<options>
<set language="Ruby" option="LibraryPaths" value="..\..\Languages\Ruby\libs\;..\..\..\External\Languages\Ruby\ruby-1.8.6\lib\ruby\site_ruby\1.8\;..\..\..\External\Languages\Ruby\ruby-1.8.6\lib\ruby\site_ruby\;..\..\..\External\Languages\Ruby\ruby-1.8.6\lib\ruby\1.8\" />
</options>
</microsoft.scripting>
@@ -0,0 +1,26 @@
<%@ Page Language="C#" AutoEventWireup="true" Inherits="System.Web.UI.Page" %>

<%
// NH: Adds this inline check to avoid a simple codebehind file in the legacy project!
if (Request["url"].ToLower().Contains("booting.aspx") || !umbraco.cms.helpers.url.ValidateProxyUrl(Request["url"], Request.Url.AbsoluteUri))
{
throw new ArgumentException("Can't redirect to the requested url - it's not local or an approved proxy url",
"url");
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>The website is restarting</title>
<meta http-equiv="REFRESH" content="10; URL=<%=Request["url"] %>">
</head>
<body>
<h1>The website is restarting</h1>
<p>Please wait for 10s while we prepare to serve the page you have requested...</p>

<p style="border-top: 1px solid #ccc; padding-top: 10px;">
<small>You can modify the design of this page by editing /config/splashes/booting.aspx</small>
</p>

</body>
</html>
@@ -0,0 +1,68 @@
<%@ Page Language="C#" AutoEventWireup="True" Inherits="Umbraco.Web.UI.Config.Splashes.NoNodes" CodeBehind="NoNodes.aspx.cs" %>
<%@ Import Namespace="Umbraco.Core.Configuration" %>
<%@ Import Namespace="Umbraco.Core.IO" %>

<!doctype html>
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js ie7 oldie" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

<title></title>
<meta name="description" content="">
<meta name="author" content="">

<link href='//fonts.googleapis.com/css?family=Open+Sans:300,400,700,600' rel='stylesheet' type='text/css'>
<link href='//fonts.googleapis.com/css?family=Asap:400,700,400italic,700italic' rel='stylesheet' type='text/css'>

<link rel="stylesheet" href="../../Umbraco/assets/css/nonodes.style.min.css" />

<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/modernizr/2.7.1/modernizr.min.js"></script>
<![endif]-->

</head>
<body>

<section>
<article>
<div>
<div class="logo"></div>

<h1>Welcome to your Umbraco installation</h1>
<h3>You're seeing the wonderful page because your website doesn't contain any published content yet.</h3>

<div class="cta">
<a href="<%= IOHelper.ResolveUrl(SystemDirectories.Umbraco) %>" class="button">Open Umbraco</a>
</div>


<div class="row">
<div class="col">
<h2>Easy start with Umbraco.tv</h2>
<p>We have created a bunch of 'how-to' videos, to get you easily started with Umbraco. Learn how to build projects in just a couple of minutes. Easiest CMS in the world.</p>

<a href="http://umbraco.tv?ref=tvFromInstaller" target="_blank">Umbraco.tv &rarr;</a>
</div>

<div class="col">
<h2>Be a part of the community</h2>
<p>The Umbraco community is the best of its kind, be sure to visit, and if you have any questions, we’re sure that you can get your answers from the community.</p>

<a href="http://our.umbraco.org?ref=ourFromInstaller" target="_blank">our.Umbraco &rarr;</a>
</div>
</div>

</div>
</article>

</section>

<script src="//code.jquery.com/jquery-latest.min.js"></script>

</body>
</html>
@@ -0,0 +1,243 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Any changes to this file requires the application (umbraco) to restart -->
<!-- This can be done by touching the web.config or recycling the application pool -->
<tinymceConfig>
<commands>
<command>
<umbracoAlias>code</umbracoAlias>
<icon>images/editor/code.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="code">code</tinyMceCommand>
<priority>1</priority>
</command>
<command>
<umbracoAlias>removeformat</umbracoAlias>
<icon>images/editor/removeformat.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="removeformat">removeformat</tinyMceCommand>
<priority>2</priority>
</command>

<command>
<umbracoAlias>Undo</umbracoAlias>
<icon>images/editor/undo.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="undo">undo</tinyMceCommand>
<priority>11</priority>
</command>
<command>
<umbracoAlias>Redo</umbracoAlias>
<icon>images/editor/redo.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="redo">redo</tinyMceCommand>
<priority>12</priority>
</command>
<command>
<umbracoAlias>Cut</umbracoAlias>
<icon>images/editor/cut.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="cut">cut</tinyMceCommand>
<priority>13</priority>
</command>
<command>
<umbracoAlias>Copy</umbracoAlias>
<icon>images/editor/copy.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="copy">copy</tinyMceCommand>
<priority>14</priority>
</command>

<command>
<umbracoAlias>styleselect</umbracoAlias>
<icon>images/editor/showStyles.png</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="styleselect">styleselect</tinyMceCommand>
<priority>20</priority>
</command>
<command>
<umbracoAlias>bold</umbracoAlias>
<icon>images/editor/bold.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="bold">bold</tinyMceCommand>
<priority>21</priority>
</command>
<command>
<umbracoAlias>italic</umbracoAlias>
<icon>images/editor/italic.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="italic">italic</tinyMceCommand>
<priority>22</priority>
</command>
<command>
<umbracoAlias>Underline</umbracoAlias>
<icon>images/editor/underline.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="underline">underline</tinyMceCommand>
<priority>23</priority>
</command>
<command>
<umbracoAlias>Strikethrough</umbracoAlias>
<icon>images/editor/strikethrough.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="strikethrough">strikethrough</tinyMceCommand>
<priority>24</priority>
</command>

<command>
<umbracoAlias>JustifyLeft</umbracoAlias>
<icon>images/editor/justifyleft.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="alignleft">justifyleft</tinyMceCommand>
<priority>31</priority>
</command>
<command>
<umbracoAlias>JustifyCenter</umbracoAlias>
<icon>images/editor/justifycenter.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="aligncenter">justifycenter</tinyMceCommand>
<priority>32</priority>
</command>
<command>
<umbracoAlias>JustifyRight</umbracoAlias>
<icon>images/editor/justifyright.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="alignright">justifyright</tinyMceCommand>
<priority>33</priority>
</command>
<command>
<umbracoAlias>JustifyFull</umbracoAlias>
<icon>images/editor/justifyfull.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="alignjustify">alignjustify</tinyMceCommand>
<priority>34</priority>
</command>

<command>
<umbracoAlias>bullist</umbracoAlias>
<icon>images/editor/bullist.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="bullist">bullist</tinyMceCommand>
<priority>41</priority>
</command>
<command>
<umbracoAlias>numlist</umbracoAlias>
<icon>images/editor/numlist.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="numlist">numlist</tinyMceCommand>
<priority>42</priority>
</command>
<command>
<umbracoAlias>Outdent</umbracoAlias>
<icon>images/editor/outdent.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="outdent">outdent</tinyMceCommand>
<priority>43</priority>
</command>
<command>
<umbracoAlias>Indent</umbracoAlias>
<icon>images/editor/indent.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="indent">indent</tinyMceCommand>
<priority>44</priority>
</command>

<command>
<umbracoAlias>mceLink</umbracoAlias>
<icon>images/editor/link.gif</icon>
<tinyMceCommand value="" userInterface="true" frontendCommand="link">link</tinyMceCommand>
<priority>51</priority>
</command>
<command>
<umbracoAlias>unlink</umbracoAlias>
<icon>images/editor/unLink.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="unlink">unlink</tinyMceCommand>
<priority>52</priority>
</command>
<command>
<umbracoAlias>mceInsertAnchor</umbracoAlias>
<icon>images/editor/anchor.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="anchor">anchor</tinyMceCommand>
<priority>53</priority>
</command>

<command>
<umbracoAlias>mceImage</umbracoAlias>
<icon>images/editor/image.gif</icon>
<tinyMceCommand value="" userInterface="true" frontendCommand="umbmediapicker">image</tinyMceCommand>
<priority>61</priority>
</command>

<command>
<umbracoAlias>umbracomacro</umbracoAlias>
<icon>images/editor/insMacro.gif</icon>
<tinyMceCommand value="" userInterface="true" frontendCommand="umbmacro">umbracomacro</tinyMceCommand>
<priority>62</priority>
</command>



<command>
<umbracoAlias>mceInsertTable</umbracoAlias>
<icon>images/editor/table.gif</icon>
<tinyMceCommand value="" userInterface="true" frontendCommand="table">table</tinyMceCommand>
<priority>63</priority>
</command>

<command>
<umbracoAlias>umbracoembed</umbracoAlias>
<icon>images/editor/media.gif</icon>
<tinyMceCommand value="" userInterface="true" frontendCommand="umbembeddialog">umbracoembed</tinyMceCommand>
<priority>66</priority>
</command>
<command>
<umbracoAlias>inserthorizontalrule</umbracoAlias>
<icon>images/editor/hr.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="hr">hr</tinyMceCommand>
<priority>71</priority>
</command>
<command>
<umbracoAlias>subscript</umbracoAlias>
<icon>images/editor/sub.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="subscript">subscript</tinyMceCommand>
<priority>72</priority>
</command>

<command>
<umbracoAlias>superscript</umbracoAlias>
<icon>images/editor/sup.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="superscript">superscript</tinyMceCommand>
<priority>73</priority>
</command>

<command>
<umbracoAlias>mceCharMap</umbracoAlias>
<icon>images/editor/charmap.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="charmap">charmap</tinyMceCommand>
<priority>74</priority>
</command>

</commands>
<plugins>
<plugin loadOnFrontend="true">code</plugin>
<plugin loadOnFrontend="true">paste</plugin>
<plugin loadOnFrontend="true">umbracolink</plugin>
<plugin loadOnFrontend="true">anchor</plugin>
<plugin loadOnFrontend="true">charmap</plugin>
<plugin loadOnFrontend="true">table</plugin>
<plugin loadOnFrontend="true">lists</plugin>
</plugins>
<validElements>
<![CDATA[+a[id|style|rel|rev|charset|hreflang|dir|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur|onclick|
ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],-strong/-b[class|style],-em/-i[class|style],
-strike[class|style],-u[class|style],#p[id|style|dir|class|align],-ol[class|reversed|start|style|type],-ul[class|style],-li[class|style],br[class],
img[id|dir|lang|longdesc|usemap|style|class|src|onmouseover|onmouseout|border|alt=|title|hspace|vspace|width|height|align|umbracoorgwidth|umbracoorgheight|onresize|onresizestart|onresizeend|rel],
-sub[style|class],-sup[style|class],-blockquote[dir|style|class],-table[border=0|cellspacing|cellpadding|width|height|class|align|summary|style|dir|id|lang|bgcolor|background|bordercolor],
-tr[id|lang|dir|class|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor],tbody[id|class],
thead[id|class],tfoot[id|class],#td[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor|scope],
-th[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|scope],caption[id|lang|dir|class|style],-div[id|dir|class|align|style],
-span[class|align|style],-pre[class|align|style],address[class|align|style],-h1[id|dir|class|align|style],-h2[id|dir|class|align|style],
-h3[id|dir|class|align|style],-h4[id|dir|class|align|style],-h5[id|dir|class|align|style],-h6[id|style|dir|class|align|style],hr[class|style],
dd[id|class|title|style|dir|lang],dl[id|class|title|style|dir|lang],dt[id|class|title|style|dir|lang],object[class|id|width|height|codebase|*],
param[name|value|_value|class],embed[type|width|height|src|class|*],map[name|class],area[shape|coords|href|alt|target|class],bdo[class],button[class],iframe[*]]]>
</validElements>
<invalidElements>font</invalidElements>

<!-- this area is for custom config settings that should be added during TinyMCE initialization -->
<customConfig>
<!-- <config key="myKey">mySetting</config>-->
<config key="entity_encoding">raw</config>
<config key="codemirror">
{
"indentOnInit": false,
"path": "../../../../../umbraco_client/CodeMirror/Js",
"config": {
},
"jsFiles": [
],
"cssFiles": [
]
}
</config>
</customConfig>
</tinymceConfig>
@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<trees>
<!--Content-->
<add initialize="true" sortOrder="0" alias="content" application="content" title="Content" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.ContentTreeController, umbraco" />
<add initialize="false" sortOrder="0" alias="contentRecycleBin" application="content" title="Recycle Bin" iconClosed="icon-folder" iconOpen="icon-folder" type="umbraco.cms.presentation.Trees.ContentRecycleBin, umbraco" />
<!--Media-->
<add initialize="true" sortOrder="0" alias="media" application="media" title="Media" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.MediaTreeController, umbraco" />
<add initialize="false" sortOrder="0" alias="mediaRecycleBin" application="media" title="Recycle Bin" iconClosed="icon-folder" iconOpen="icon-folder" type="umbraco.cms.presentation.Trees.MediaRecycleBin, umbraco" />
<!--Settings-->
<add application="settings" alias="stylesheets" title="Stylesheets" type="umbraco.loadStylesheets, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="0" />
<add application="settings" alias="stylesheetProperty" title="Stylesheet Property" type="umbraco.loadStylesheetProperty, umbraco" iconClosed="" iconOpen="" initialize="false" sortOrder="0" />
<add application="settings" alias="templates" title="Templates" type="umbraco.loadTemplates, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="1" />
<add application="settings" alias="partialViews" title="Partial Views" silent="false" initialize="true" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.PartialViewsTree, umbraco" sortOrder="2" />
<add application="settings" alias="scripts" title="Scripts" type="umbraco.loadScripts, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="3" />
<add application="settings" alias="dictionary" title="Dictionary" type="umbraco.loadDictionary, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="4" />
<add application="settings" alias="languages" title="Languages" type="umbraco.loadLanguages, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="5" />
<add application="settings" alias="mediaTypes" title="Media Types" type="umbraco.loadMediaTypes, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="6" />
<add application="settings" alias="nodeTypes" title="Document Types" type="umbraco.loadNodeTypes, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="7" />
<!--Developer-->
<add initialize="true" sortOrder="0" alias="datatype" application="developer" title="Data Types" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.DataTypeTreeController, umbraco" />
<add application="developer" alias="macros" title="Macros" type="umbraco.loadMacros, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="2" />
<add application="developer" alias="packager" title="Packages" type="umbraco.loadPackager, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="3" />
<add application="developer" alias="packagerPackages" title="Packager Packages" type="umbraco.loadPackages, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" initialize="false" sortOrder="3" />
<add application="developer" alias="relationTypes" title="Relation Types" type="umbraco.loadRelationTypes, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="4" />
<add application="developer" alias="xslt" title="XSLT Files" type="umbraco.loadXslt, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="5" />
<add application="developer" alias="partialViewMacros" type="Umbraco.Web.Trees.PartialViewMacrosTree, umbraco" silent="false" initialize="true" sortOrder="6" title="Partial View Macro Files" iconClosed="icon-folder" iconOpen="icon-folder" />
<!--Users-->
<add application="users" alias="users" title="Users" type="umbraco.loadUsers, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="0" />
<add application="users" alias="userTypes" title="User Types" type="umbraco.cms.presentation.Trees.UserTypes, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="1" />
<add application="users" alias="userPermissions" title="User Permissions" type="umbraco.cms.presentation.Trees.UserPermissions, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="2" />
<!--Members-->
<add initialize="true" sortOrder="0" alias="member" application="member" title="Members" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.MemberTreeController, umbraco" />
<add application="member" alias="memberGroup" title="Member Groups" type="umbraco.loadMemberGroups, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="1" />
<add application="member" alias="memberType" title="Member Types" type="umbraco.loadMemberTypes, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="2" />
<!--Translation-->
<add silent="false" initialize="true" sortOrder="1" alias="openTasks" application="translation" title="Tasks assigned to you" iconClosed="icon-folder" iconOpen="icon-folder" type="umbraco.loadOpenTasks, umbraco" />
<add silent="false" initialize="true" sortOrder="2" alias="yourTasks" application="translation" title="Tasks created by you" iconClosed="icon-folder" iconOpen="icon-folder" type="umbraco.loadYourTasks, umbraco" />
<!-- Custom -->
<!--<add application="myApplication" alias="myTree" title="Me Tree" type="MyNamespace.myTree, MyAssembly"
iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="10" />-->
</trees>
@@ -0,0 +1,156 @@
<?xml version="1.0" encoding="utf-8" ?>
<settings>

<!--
umbracoSettings.config configuration documentation can be found here:
http://our.umbraco.org/documentation/using-umbraco/config-files/umbracoSettings/
Many of the optional settings are not explicitly listed here
but can be found in the online documentation.
-->

<content>

<errors>
<error404>1</error404>
<!--
The value for error pages can be:
* A content item's integer ID (example: 1234)
* A content item's GUID ID (example: 26C1D84F-C900-4D53-B167-E25CC489DAC8)
* An XPath statement (example: //errorPages[@nodeName='My cool error']
-->
<!--
<error404>
<errorPage culture="default">1</errorPage>
<errorPage culture="en-US">200</errorPage>
</error404>
-->
</errors>

<notifications>
<!-- the email that should be used as from mail when umbraco sends a notification -->
<email>your@email.here</email>
</notifications>

<!-- Show property descriptions in editing view "icon|text|none" -->
<PropertyContextHelpOption>text</PropertyContextHelpOption>

<!-- The html injected into a (x)html page if Umbraco is running in preview mode -->
<PreviewBadge>
<![CDATA[<a id="umbracoPreviewBadge" style="position: absolute; top: 0; right: 0; border: 0; width: 149px; height: 149px; background: url('{1}/preview/previewModeBadge.png') no-repeat;z-index: 9999999;" href="#" OnClick="javascript:window.top.location.href = '{0}/endPreview.aspx?redir={2}'"><span style="display:none;">In Preview Mode - click to end</span></a>]]></PreviewBadge>

<!-- Cache cycle of Media and Member data fetched from the umbraco.library methods -->
<!-- In seconds. 0 will disable cache -->
<UmbracoLibraryCacheDuration>1800</UmbracoLibraryCacheDuration>

<!-- How Umbraco should handle errors during macro execution. Can be one of the following values:
- inline - show an inline error within the macro but allow the page to continue rendering. Historial Umbraco behaviour.
- silent - Silently suppress the error and do not render the offending macro.
- throw - Throw an exception which can be caught by the global error handler defined in Application_OnError. If no such
error handler is defined then you'll see the Yellow Screen Of Death (YSOD) error page.
Note the error can also be handled by the umbraco.macro.Error event, where you can log/alarm with your own code and change the behaviour per event. -->
<MacroErrors>inline</MacroErrors>

<!-- These file types will not be allowed to be uploaded via the upload control for media and content -->
<disallowedUploadFiles>ashx,aspx,ascx,config,cshtml,vbhtml,asmx,air,axd,swf,xml,html,htm,svg,php,htaccess</disallowedUploadFiles>

<!-- Defines the default document type property used when adding properties in the back-office (if missing or empty, defaults to Textstring -->
<defaultDocumentTypeProperty>Textstring</defaultDocumentTypeProperty>
</content>

<security>
<!-- set to true to auto update login interval (and there by disabling the lock screen -->
<keepUserLoggedIn>true</keepUserLoggedIn>
<!-- change in 4.8: Disabled users are now showed dimmed and last in the tree. If you prefer not to display them set this to true -->
<hideDisabledUsersInBackoffice>false</hideDisabledUsersInBackoffice>
</security>

<requestHandler>
<!-- this will ensure that urls are unique when running with multiple root nodes -->
<useDomainPrefixes>false</useDomainPrefixes>
<!-- this will add a trailing slash (/) to urls when in directory url mode -->
<addTrailingSlash>true</addTrailingSlash>
</requestHandler>

<templates>
<!-- To switch the default rendering engine to MVC, change this value from WebForms to Mvc -->
<defaultRenderingEngine>Mvc</defaultRenderingEngine>
</templates>

<scheduledTasks>
<!-- add tasks that should be called with an interval (seconds) -->
<!-- <task log="true" alias="test60" interval="60" url="http://localhost/umbraco/test.aspx"/>-->
</scheduledTasks>

<!-- distributed calls must be enabled when using Umbraco in a load balanced environment -->
<distributedCall enable="false">
<!-- the id of the user who's making the calls -->
<!-- needed for security, umbraco will automatically look up correct login and passwords -->
<user>0</user>

<!--
When distributed call is enabled, you need to add all of the servers part taking in load balancing
to the server list below.
-->

<servers>

<!--
Add ip number or hostname, make sure that it can be reached from all servers
you can also add optional attributes to force a protocol or port number.
Examples:
<server>127.0.0.1</server>
<server forceProtocol="http|https" forcePortnumber="80|443">127.0.0.1</server>
Generally when setting up load balancing you will designate a 'master' server,
Umbraco will always assume that the FIRST server listed in this list is the 'master'.
(NOTE: Not all load balancing scenarios have a 'master', depends on how you are setting it up)
In order for scheduled tasks (including scheduled publishing) to work properly when load balancing, each
server in the load balanced environment needs to know if it is the 'master'. In order for servers
to know this or not, they need to compare some values against the servers listed. These values
are either: serverName or appId. You should not enter both values but appId will always supersede serverName.
The serverName is the easiest and will work so long as you are not load balancing your site on the same server.
If you are doing this, then you will need to use appId which is equivalent to the value returned from
HttpRuntime.AppDomainAppId. It is recommended that you set either the serverName or appId for all servers
registered here if possible, not just the first one.
Examples:
<server serverName="MyServer">server1.mysite.com</server>
<server appId="/LM/W3SVC/69/ROOT">server1.mysite.com</server>
-->

</servers>
</distributedCall>

<!--
web.routing
@trySkipIisCustomErrors
Tries to skip IIS custom errors.
Starting with IIS 7.5, this must be set to true for Umbraco 404 pages to show. Else, IIS will take
over and render its build-in error page. See MS doc for HttpResponseBase.TrySkipIisCustomErrors.
The default value is false, for backward compatibility reasons, which means that IIS _will_ take
over, and _prevent_ Umbraco 404 pages to show.
@internalRedirectPreservesTemplate
By default as soon as we're not displaying the initial document, we reset the template set by the
finder or by the alt. template. Set this option to true to preserve the template set by the finder
or by the alt. template, in case of an internal redirect.
(false by default, and in fact should remain false unless you know what you're doing)
@disableAlternativeTemplates
By default you can add a altTemplate querystring or append a template name to the current URL which
will make Umbraco render the content on the current page with the template you requested, for example:
http://mysite.com/about-us/?altTemplate=Home and http://mysite.com/about-us/Home would render the
"About Us" page with a template with the alias Home. Setting this setting to true stops that behavior
@disableFindContentByIdPath
By default you can call any content Id in the url and show the content with that id, for example:
http://mysite.com/1092 or http://mysite.com/1092.aspx would render the content with id 1092. Setting
this setting to true stops that behavior
-->
<web.routing
trySkipIisCustomErrors="true"
internalRedirectPreservesTemplate="false" disableAlternativeTemplates="false" disableFindContentByIdPath="false">
</web.routing>

</settings>

Large diffs are not rendered by default.

Large diffs are not rendered by default.

@@ -0,0 +1 @@
/* EDITOR PROPERTIES - PLEASE DON'T DELETE THIS LINE TO AVOID DUPLICATE PROPERTIES */
@@ -0,0 +1,2 @@
/* Go crazy with your own styles here */
/* EDITOR PROPERTIES - PLEASE DON'T DELETE THIS LINE TO AVOID DUPLICATE PROPERTIES */
@@ -0,0 +1,2 @@
<%@ Application Inherits="Umbraco.Web.UmbracoApplication" Language="C#" %>

@@ -0,0 +1,35 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Bro.JustRent.Website")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Bro.JustRent.Website")]
[assembly: AssemblyCopyright("Copyright © 2015")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("2bbbfcd6-6daf-404f-bad5-c98748f7b730")]

// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
@@ -0,0 +1,87 @@
(function($) {

// Making elements equal height
var equalheight = function(container){

var currentTallest = 0,
currentRowStart = 0,
rowDivs = new Array(),
$el,
topPosition = 0;

$(container).find('.equal').each(function() {

$el = $(this);
$($el).height('auto')
topPostion = $el.position().top;

if (currentRowStart != topPostion) {
for (currentDiv = 0 ; currentDiv < rowDivs.length ; currentDiv++) {
rowDivs[currentDiv].height(currentTallest);
}
rowDivs.length = 0; // empty the array
currentRowStart = topPostion;
currentTallest = $el.height();
rowDivs.push($el);
} else {
rowDivs.push($el);
currentTallest = (currentTallest < $el.height()) ? ($el.height()) : (currentTallest);
}
for (currentDiv = 0 ; currentDiv < rowDivs.length ; currentDiv++) {
rowDivs[currentDiv].height(currentTallest);
}
});
};

// Check for window width before resizing
function equalHeightChecker () {
if ( window.innerWidth > 767 && !heightIsSet ) {
$('.equalizer')
.each(function(){
equalheight(this);
heightIsSet = true;
});
}
else if (window.innerWidth<768 && heightIsSet) {
$('.equalizer')
.each(function(){
$(this).find('.equal').each(function () {
this.style.height = 'auto';
});
heightIsSet = false;
});
}
}

// Initialize equal height script
var heightIsSet;

// On load
$(window).load(function() {
equalHeightChecker();
});

// and on resize
$(window).resize(function(){
equalHeightChecker();
});

// Navigation
$('#toggle').click(function(){
$('.has-child').removeClass('selected');
$('nav').toggleClass('open');
$('.cross').toggleClass('open');
});

$('.has-child').click(function(){
if ( window.innerWidth < 768 ) {
if ( $( this ).hasClass('selected')){
$('.has-child').removeClass('selected');
} else {
$('.has-child').removeClass('selected');
$(this).toggleClass('selected');
}
}
});

})(jQuery);
@@ -0,0 +1,28 @@
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
Layout = "Master.cshtml";
}

<div role="content">

<section class="light blogarchive equalizer">
<div class="container">

<div class="row">
@foreach(var post in CurrentPage.Children)
{
<div class="col-sm-6">
<div class="content equal">
<a href="@post.Url">
<div class="date">@post.CreateDate.ToLongDateString()</div>
<h2>@post.Name</h2>
<p>@Umbraco.Truncate(post.Introduction, 240, true)</p>
</a>
</div>
</div>
}
</div>
</div>
</section>

</div>
@@ -0,0 +1,6 @@
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
Layout = "Master.cshtml";
}

@CurrentPage.GetGridHtml("content", "fanoe")
@@ -0,0 +1,6 @@
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
Layout = "Master.cshtml";
}

@CurrentPage.GetGridHtml("content", "fanoe")
@@ -0,0 +1,77 @@
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
Layout = null;
var home = @CurrentPage.Site();
}

<!DOCTYPE html>
<html lang="en">
<head>

<!-- Meta tags -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="@CurrentPage.siteDescription">

<title>@CurrentPage.Name | @CurrentPage._siteTitle</title>

<!-- Fonts -->
<link href="//fonts.googleapis.com/css?family=Merriweather:400,700,300,900" rel="stylesheet" type="text/css">
<link href="//fonts.googleapis.com/css?family=Lato:300,400,700,900" rel="stylesheet" type="text/css">

<!-- CSS -->
<link rel="stylesheet" type="text/css" href="/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="/css/fanoe.css">
<link rel="stylesheet" type="text/css" href="/css/style.css">

<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="//oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="//oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>

<body>
<header>
<div class="container">
<div class="row">
<div class="col-xs-8 col-sm-12 col-md-4">
<a href="@home.Url">
<div class="brand" style="background-image:url('@(home.SiteLogo)?height=65&width=205&bgcolor=000')"></div>
</a>
</div>
<div class="col-sm-12 col-md-8">
<nav>

@{ Html.RenderPartial("MainNavigation"); }

</nav>
</div>
</div>
</div>

<div id="toggle" class="toggle">
<a href="#" class="cross"><span></span></a>
</div>
</header>

@RenderBody()

<footer class="field dark">
<div class="container">
<div class="row">

@{ Html.RenderPartial("BottomNavigation"); }

</div>
</div>
</footer>

<!-- Javascripts -->
<script src="/js/jquery.min.js"></script>
<script src="/js/bootstrap.min.js"></script>
<script src="/scripts/fanoe.js"></script>
</body>
</html>
@@ -0,0 +1,50 @@
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
var home = CurrentPage.Site();
}

@if (home.Children.Where("Visible").Any())
{
@* For each child page under the home node, where the property umbracoNaviHide is not True *@
foreach (var childPage in home.Children.Where("Visible"))
{
<div class="col-xs-6 col-sm-3">
@if (childPage.Children.Where("Visible").Any())
{
<strong>@childPage.Name</strong>
@childPages(childPage.Children)
}
</div>
}
}

<div class="col-xs-6 col-sm-3">
<strong>Find us</strong>
<ul>
<li>
<a href="https://twitter.com/umbracoproject" target="_blank">Twitter</a>
</li>
<li>
<a href="https://www.facebook.com/Umbraco" target="_blank">Facebook</a>
</li>
<li>
<a href="http://umbraco.com/?utm_source=core&utm_medium=starterkit&utm_content=topic-link&utm_campaign=fanoe" target="_blank">Umbraco.com</a>
</li>
</ul>
</div>

@helper childPages(dynamic pages)
{
@* Ensure that we have a collection of pages *@
if (pages.Any())
{
<ul>
@foreach (var page in pages.Where("Visible"))
{
<li>
<a href="@page.Url">@page.Name</a>
</li>
}
</ul>
}
}
@@ -0,0 +1,80 @@
@inherits UmbracoViewPage<dynamic>
@using Umbraco.Web.Templates
@using Newtonsoft.Json.Linq

@if (Model != null && Model.sections != null)
{
var oneColumn = ((System.Collections.ICollection)Model.sections).Count == 1;

<div class="umb-grid">
@if (oneColumn)
{
foreach (var section in Model.sections) {
<div class="grid-section">
@foreach (var row in section.rows) {
@renderRow(row, true);
}
</div>
}
}else {
<div class="container">
<div class="row clearfix">
@foreach (var s in Model.sections) {
<div class="grid-section">
<div class="@("span" + s.grid) column">
@foreach (var row in s.rows) {
@renderRow(row, false);
}
</div>
</div>
}
</div>
</div>
}
</div>
}

@helper renderRow(dynamic row, bool singleColumn){
<div @RenderElementAttributes(row)>
@Umbraco.If(singleColumn, "<div class='container'>")
<div class="row clearfix">
@foreach ( var area in row.areas ) {
<div class="@("span" + area.grid) column">
<div @RenderElementAttributes(area)>
@foreach (var control in area.controls) {
if (control !=null && control.editor != null && control.editor.view != null ) {
<text>@Html.Partial("grid/editors/base", (object)control)</text>
}
}
</div>
</div>}
</div>
@Umbraco.If(singleColumn, "</div>")
</div>
}

@functions {
public static MvcHtmlString RenderElementAttributes(dynamic contentItem)
{
var attrs = new List<string>();
JObject cfg = contentItem.config;

if(cfg != null)
foreach (JProperty property in cfg.Properties()) {
attrs.Add(property.Name + "='" + property.Value.ToString() + "'");
}

JObject style = contentItem.styles;

if (style != null) {
var cssVals = new List<string>();
foreach (JProperty property in style.Properties())
cssVals.Add(property.Name + ":" + property.Value.ToString() + ";");

if (cssVals.Any())
attrs.Add("style='" + string.Join(" ", cssVals) + "'");
}

return new MvcHtmlString(string.Join(" ", attrs));
}
}
@@ -0,0 +1,80 @@
@inherits UmbracoViewPage<dynamic>
@using Umbraco.Web.Templates
@using Newtonsoft.Json.Linq

@if (Model != null && Model.sections != null)
{
var oneColumn = ((System.Collections.ICollection)Model.sections).Count == 1;

<div class="umb-grid">
@if (oneColumn)
{
foreach (var section in Model.sections) {
<div class="grid-section">
@foreach (var row in section.rows) {
@renderRow(row, true);
}
</div>
}
}else {
<div class="container">
<div class="row clearfix">
@foreach (var s in Model.sections) {
<div class="grid-section">
<div class="col-md-@s.grid column">
@foreach (var row in s.rows) {
@renderRow(row, false);
}
</div>
</div>
}
</div>
</div>
}
</div>
}

@helper renderRow(dynamic row, bool singleColumn){
<div @RenderElementAttributes(row)>
@Umbraco.If(singleColumn, "<div class='container'>")
<div class="row clearfix">
@foreach ( var area in row.areas ) {
<div class="col-md-@area.grid column">
<div @RenderElementAttributes(area)>
@foreach (var control in area.controls) {
if (control !=null && control.editor != null && control.editor.view != null ) {
<text>@Html.Partial("grid/editors/base", (object)control)</text>
}
}
</div>
</div>}
</div>
@Umbraco.If(singleColumn, "</div>")
</div>
}

@functions {
public static MvcHtmlString RenderElementAttributes(dynamic contentItem)
{
var attrs = new List<string>();
JObject cfg = contentItem.config;

if(cfg != null)
foreach (JProperty property in cfg.Properties()) {
attrs.Add(property.Name + "='" + property.Value.ToString() + "'");
}

JObject style = contentItem.styles;

if (style != null) {
var cssVals = new List<string>();
foreach (JProperty property in style.Properties())
cssVals.Add(property.Name + ":" + property.Value.ToString() + ";");

if (cssVals.Any())
attrs.Add("style='" + string.Join(" ", cssVals) + "'");
}

return new MvcHtmlString(string.Join(" ", attrs));
}
}
@@ -0,0 +1,24 @@
@model dynamic
@using Umbraco.Web.Templates

@functions {
public static string EditorView(dynamic contentItem)
{
string view = contentItem.editor.render != null ? contentItem.editor.render.ToString() : contentItem.editor.view.ToString();
view = view.ToLower().Replace(".html", ".cshtml");

if (!view.Contains("/")) {
view = "grid/editors/" + view;
}

return view;
}
}
@try
{
string editor = EditorView(Model);
<text>@Html.Partial(editor, (object)Model)</text>
}
catch (Exception ex) {
<pre>@ex.ToString()</pre>
}
@@ -0,0 +1,7 @@
@model dynamic
@using Umbraco.Web.Templates


<div class="video-wrapper">
@Html.Raw(Model.value)
</div>
@@ -0,0 +1,17 @@
@inherits UmbracoViewPage<dynamic>
@using Umbraco.Web.Templates


@if (Model.value != null)
{
string macroAlias = Model.value.macroAlias.ToString();
ViewDataDictionary parameters = new ViewDataDictionary();
foreach (dynamic mpd in Model.value.macroParamsDictionary)
{
parameters.Add(mpd.Name, mpd.Value);
}

<text>
@Umbraco.RenderMacro(macroAlias, parameters)
</text>
}
@@ -0,0 +1,23 @@
@model dynamic
@using Umbraco.Web.Templates

@if (Model.value != null)
{
var url = Model.value.image;
if(Model.editor.config != null && Model.editor.config.size != null){
url += "?width=" + Model.editor.config.size.width;
url += "&height=" + Model.editor.config.size.height;

if(Model.value.focalPoint != null){
url += "&center=" + Model.value.focalPoint.top +"," + Model.value.focalPoint.left;
url += "&mode=crop";
}
}

<img src="@url" alt="@Model.value.caption">

if (Model.value.caption != null)
{
<p class="caption">@Model.value.caption</p>
}
}
@@ -0,0 +1,4 @@
@model dynamic
@using Umbraco.Web.Templates

@Html.Raw(TemplateUtilities.ParseInternalLinks(Model.value.ToString()))
@@ -0,0 +1,20 @@
@model dynamic
@using Umbraco.Web.Templates

@if (Model.editor.config.markup != null)
{
string markup = Model.editor.config.markup.ToString();

markup = markup.Replace("#value#", Model.value.ToString());
markup = markup.Replace("#style#", Model.editor.config.style.ToString());

<text>
@Html.Raw(markup)
</text>
}
else
{
<text>
<div style="@Model.editor.config.style">@Model.value</div>
</text>
}
@@ -0,0 +1,96 @@
@inherits UmbracoViewPage<dynamic>
@using Umbraco.Web.Templates
@using Newtonsoft.Json.Linq

@if (Model != null && Model.sections != null)
{
var oneColumn = ((System.Collections.ICollection)Model.sections).Count == 1;

<div class="umb-grid">
@if (oneColumn)
{
foreach (var section in Model.sections)
{
<div class="grid-section">
@foreach (var row in section.rows)
{
@renderRow(row, true);
}
</div>
}
}
else
{
<div class="container">
<div class="row clearfix">
@foreach (var s in Model.sections)
{
<div class="grid-section">
<div class="col-md-@s.grid column">
@foreach (var row in s.rows)
{
@renderRow(row, false);
}
</div>
</div>
}
</div>
</div>
}
</div>
}

@helper renderRow(dynamic row, bool singleColumn)
{
<div @RenderElementAttributes(row)>
@Umbraco.If(singleColumn, "<div class='container'>")
<div class="row clearfix">
@foreach ( var area in row.areas ) {
<div class="col-md-@area.grid column">
<div @RenderElementAttributes(area)>
@foreach (var control in area.controls) {
if (control !=null && control.editor != null && control.editor.view != null ) {
<text>@Html.Partial("grid/editors/base", (object)control)</text>
}
}
</div>
</div>}
</div>
@Umbraco.If(singleColumn, "</div>")
</div>
}

@functions
{
public static MvcHtmlString RenderElementAttributes(dynamic contentItem)
{
var attrs = new List<string>();
JObject cfg = contentItem.config;

if(cfg != null)
{
foreach (JProperty property in cfg.Properties())
{
attrs.Add(property.Name + "='" + property.Value.ToString() + "'");
}
}

JObject style = contentItem.styles;

if (style != null)
{
var cssVals = new List<string>();
foreach (JProperty property in style.Properties())
{
cssVals.Add(property.Name + ":" + property.Value.ToString() + ";");
}

if (cssVals.Any())
{
attrs.Add("style='" + string.Join(" ", cssVals) + "'");
}
}

return new MvcHtmlString(string.Join(" ", attrs));
}
}
@@ -0,0 +1,61 @@
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{ var home = CurrentPage.Site(); }

@if (home.Children.Any())
{
@* Get the first page in the children *@
var naviLevel = home.Children.First().Level;

@* Add in level for a CSS hook *@
<ul class="level-@naviLevel">
@* For each child page under the home node *@
@foreach (var childPage in home.Children)
{
if (childPage.Children.Any())
{
<li class="has-child @(childPage.IsAncestorOrSelf(CurrentPage) ? "selected" : null)">
@if(childPage.DocumentTypeAlias == "LandingPage")
{
<span>@childPage.Name</span>
@childPages(childPage.Children)
} else {
<a href="@childPage.Url">@childPage.Name</a>
}
</li>
}
else
{
<li class="@(childPage.IsAncestorOrSelf(CurrentPage) ? "selected" : null)">
<a href="@childPage.Url">@childPage.Name</a>
</li>
}
}
</ul>
}

@helper childPages(dynamic pages)
{
@* Ensure that we have a collection of pages *@
if (pages.Any())
{
@* Get the first page in pages and get the level *@
var naviLevel = pages.First().Level;

@* Add in level for a CSS hook *@
<ul class="sublevel level-@(naviLevel)">
@foreach (var page in pages)
{
<li>
<a href="@page.Url">@page.Name</a>

@* if the current page has any children *@
@if (page.Children.Any())
{
@* Call our helper to display the children *@
@childPages(page.Children)
}
</li>
}
</ul>
}
}
@@ -0,0 +1,18 @@
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
Layout = "Master.cshtml";
}
<div role="content">
@Umbraco.Field("productName")
<br/>
@Umbraco.Field("productDescription")
<br/>
@if (CurrentPage.HasValue("productImage"))
{
<img src='@CurrentPage.GetCropUrl("productImage", "200x200")' />
<!--<img src="@CurrentPage.productImage.src" alt="@CurrentPage.productName" />-->
}
@Umbraco.GetDictionaryValue("ProductPrice")
Город: @Umbraco.Field("productLocationCity")

</div>
@@ -0,0 +1,42 @@
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
Layout = "Master.cshtml";
}

@using Our.Umbraco.Vorto
@using Our.Umbraco.Vorto.Extensions

<div role="content">
<section class="light blogarchive equalizer">
<div class="container">
<div class="row">
@Umbraco.Field("productCategoryName")<br/>
@foreach(var category in CurrentPage.Children)
{
IPublishedContent ipcCategory = (IPublishedContent) category;
var categoryName = ipcCategory.GetVortoValue("productCategoryName");

string categoryPageUrl = category.Url;
if (!string.IsNullOrEmpty(category.umbracoUrlAlias))
{
var array = category.umbracoUrlAlias.Split(new Char [] {','}, StringSplitOptions.RemoveEmptyEntries);
categoryPageUrl = array[0];
}

<div class="col-sm-6">
<div class="content equal">
<a href="@categoryPageUrl">@categoryName</a>

<br/>

@if(@category.HasValue("productCategoryLogo"))
{
<img src='@Umbraco.Media(@category.productCategoryLogo).Url' alt='@categoryName' />
}
<br/>
</div>
</div>
}
</div>
</div>
</section>
@@ -0,0 +1,6 @@
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
Layout = "Master.cshtml";
}

@CurrentPage.GetGridHtml("content", "fanoe")
@@ -0,0 +1,64 @@
<?xml version="1.0"?>
<configuration>

<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>

<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="Umbraco.Web" />
<add namespace="Umbraco.Core" />
<add namespace="Umbraco.Core.Models" />
<add namespace="Umbraco.Web.Mvc" />
<add namespace="umbraco" />
<add namespace="Examine" />
</namespaces>
</pages>
</system.web.webPages.razor>

<appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>

<system.web>
<httpHandlers>
<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
</httpHandlers>

<!--
Enabling request validation in view pages would cause validation to occur
after the input has already been processed by the controller. By default
MVC performs request validation before a controller processes the input.
To change this behavior apply the ValidateInputAttribute to a
controller or action.
-->
<pages
validateRequest="false"
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<controls>
<add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
</controls>
</pages>
</system.web>

<system.webServer>
<validation validateIntegratedModeConfiguration="false" />

<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
</configuration>
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>

<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<!--
In the example below, the "SetAttributes" transform will change the value of
"connectionString" to use "ReleaseSQLServer" only when the "Match" locator
finds an attribute "name" that has a value of "MyDB".
<connectionStrings>
<add name="MyDB"
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
-->
<system.web>
<!--
In the example below, the "Replace" transform will replace the entire
<customErrors> section of your web.config file.
Note that because there is only one customErrors section under the
<system.web> node, there is no need to use the "xdt:Locator" attribute.
<customErrors defaultRedirect="GenericError.htm"
mode="RemoteOnly" xdt:Transform="Replace">
<error statusCode="500" redirect="InternalError.htm"/>
</customErrors>
-->
</system.web>
</configuration>
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>

<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<!--
In the example below, the "SetAttributes" transform will change the value of
"connectionString" to use "ReleaseSQLServer" only when the "Match" locator
finds an attribute "name" that has a value of "MyDB".
<connectionStrings>
<add name="MyDB"
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
-->
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
<!--
In the example below, the "Replace" transform will replace the entire
<customErrors> section of your web.config file.
Note that because there is only one customErrors section under the
<system.web> node, there is no need to use the "xdt:Locator" attribute.
<customErrors defaultRedirect="GenericError.htm"
mode="RemoteOnly" xdt:Transform="Replace">
<error statusCode="500" redirect="InternalError.htm"/>
</customErrors>
-->
</system.web>
</configuration>