1 Commits

Author SHA1 Message Date
Stephan ec45bfb1d5 Fix the build script so it works! 2016-12-07 17:46:02 +01:00
406 changed files with 16169 additions and 12460 deletions
+1 -4
View File
@@ -55,7 +55,7 @@ OurUmbraco.Site/usercontrols/Deli/
OurUmbraco.Site/App_Data/mail/
OurUmbraco.Client/build/assets/
OurUmbraco.Client/node_modules/
npm-debug.log
npm-debug.log
OurUmbraco.Site/[Ww]eb.config
OurUmbraco.Site/[Aa]ssets/css/style.min.css
OurUmbraco.Site/[Aa]ssets/js/app.min.js
@@ -64,6 +64,3 @@ OurUmbraco.Site/App_Data/migrations/*.txt
OurUmbraco.Site/apidocs/
OurUmbraco.Site/App_Data/Documentation/
OurUmbraco.Site/App_Data/NotificationTest/
build/tools/node*
wwwcache/
build/toolsnode.js.*/
+14 -14
View File
@@ -4,24 +4,24 @@
"description": "Umbraco Our gulpjs config",
"main": "gulpfile.js",
"private": true,
"dependencies": {},
"dependencies": {
},
"devDependencies": {
"gulp": "^3.9.1",
"gulp-autoprefixer": "^3.1.0",
"gulp-clean": "0.3.x",
"gulp-combine-media-queries": "0.2.x",
"gulp-concat": "2.2.x",
"gulp-imagemin": "3.3.x",
"gulp-jshint": "^2.0.4",
"gulp-minify-css": "1.1.x",
"gulp-rename": "1.2.x",
"gulp-sass": "^2.2.0",
"gulp-svgmin": "0.4.x",
"gulp-uglify": "^1.5.3",
"gulp-util": "3.0.x",
"gulp-watch": "0.6.x",
"jshint": "^2.9.4",
"jshint-stylish": "0.2.x"
"gulp-minify-css": "1.1.x",
"gulp-sass": "^2.2.0",
"gulp-combine-media-queries": "0.2.x",
"gulp-imagemin": "0.6.x",
"gulp-autoprefixer": "^3.1.0",
"gulp-uglify": "^1.5.3",
"gulp-jshint": "2.0.0",
"gulp-concat": "2.2.x",
"jshint-stylish": "0.2.x",
"gulp-clean": "0.3.x",
"gulp-svgmin": "0.4.x",
"gulp-rename": "1.2.x"
},
"scripts": {
"test": "gulp build --verbose"
+2 -3
View File
@@ -62,7 +62,7 @@ function GetSearchFilters(cssClass) {
}
var forumId = $('#selectCategory').val();
if(forumId) {
if(forumId !== undefined) {
forumId = forumId.replace(/([A-Za-z])\w+/g, "");
}
@@ -365,8 +365,7 @@ $('#search-options input[type=checkbox]').click(function () {
newUri = updateQueryString("order", orderValue, window.location.href);
}
} else {
newUri = updateQueryString(this.name, this.checked, window.location.href);
newUri = updateQueryString("page", 1, newUri);
newUri = updateQueryString(this.name, this.checked, window.location.href);
}
console.log(newUri);
window.location = newUri;
@@ -79,53 +79,6 @@
}
.pre {
overflow: auto;
display: block;
font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;
background-color: #333;
color: #fff;
font-size: 0.8rem;
line-height: 1.4em;
background-clip: padding-box;
padding: 8px 15px 8px 15px;
border-radius: 5px;
width: 100%;
min-width: 300px;
text-align: left;
border: none;
margin: 0 auto;
&:hover {
background: lighten(#333, 5%);
cursor: pointer;
}
}
.pm-nuget {
position: relative;
display: block;
margin: 10px auto 25px auto;
height: 100%;
width: auto;
color: #fff;
&:before {
content:"PM>";
display: block;
position: absolute;
top: 50%;
left: 0;
font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;
font-size: 0.8rem;
transform: translate(15px, -46%);
opacity: .9;
}
.pre {
padding-left: 45px;
}
}
h2, h3, strong, span {
color: $color-headline;
+171 -171
View File
@@ -1,174 +1,174 @@
body.packages {
nav {
h3 {
&:hover {
opacity: .8;
}
}
h4 {
opacity: .7;
margin: .5rem 0 .5rem;
}
}
li {
h3 {
opacity: .5;
}
&.open, &.active {
h3, a {
opacity: 1;
color: #000 !important;
}
}
&.active > ul {
max-height: 100%;
}
}
}
.packages-content {
.search-big {
margin-bottom: 0;
margin-top: 20px;
}
h1 {
margin: 1em 0 10px;
font-size: 2.1rem;
}
.package {
margin-bottom: 15px;
padding: 20px;
transition: all .1s linear;
cursor: pointer;
position: relative;
overflow: hidden;
border-radius: 3px;
border: 1px solid #e9e9e9;
&:hover {
@include box-shadow(2);
.icon {
transform: scale(1.1);
}
}
}
.box {
border: none;
border-bottom: 1px solid whitesmoke;
width: 100%;
body.packages {
nav {
h3 {
&:hover {
opacity: .8;
}
}
h4 {
opacity: .7;
margin: .5rem 0 .5rem;
}
}
li {
h3 {
opacity: .5;
}
&.open, &.active {
h3, a {
opacity: 1;
color: #000 !important;
}
}
&.active > ul {
max-height: 100%;
}
}
}
.packages-content {
.search-big {
margin-bottom: 0;
margin-top: 20px;
}
h1 {
margin: 1em 0 10px;
font-size: 2.1rem;
}
.package {
margin-bottom: 15px;
padding: 20px;
transition: all .1s linear;
cursor: pointer;
position: relative;
overflow: hidden;
border-radius: 3px;
border: 1px solid #e9e9e9;
&:hover {
@include box-shadow(2);
.icon {
transform: scale(1.1);
}
}
}
.box {
border: none;
border-bottom: 1px solid whitesmoke;
width: 100%;
.row{
width:100%;
}
h3 {
font-size: 1.1rem;
margin-bottom: .5rem;
font-weight: 600;
a {
color: $color-headline;
&:hover {
color: $color-our;
}
}
}
img {
max-width: 100%;
height: auto;
display: block;
vertical-align: middle;
@media (min-width: $md) {
}
}
.col-xs-2 {
vertical-align: middle !important;
padding: 0 !important;
}
.other {
margin-top: 30px;
}
.stats {
left: calc(16.666666666666664% + 15px);
font-family: Consolas, "Liberation Mono", Menlo, Monaco, Courier, monospace;
font-size: .75rem;
i {
margin-left: 3px;
font-size: .9rem;
}
span {
&:first-child {
margin-right: 0px;
}
}
}
p {
font-size: .9rem;
color: $color-text;
opacity: 1;
}
.package-badge {
position: absolute;
right: 15px;
bottom: -3px;
@media (min-width: $md) {
position: absolute;
right: 0;
bottom: 25px;
}
}
.karma , .downloads {
color: #000;
span {
transform: translate(0, 2px);
display: inline-block;
}
}
&.liked {
.karma {
i {
color: $color-red;
}
}
}
}
.name {
font-size: 1rem;
line-height: 1.3;
font-weight: bold;
}
.description {
font-size: .8rem;
margin-top: 3px;
max-height: 28px;
overflow: hidden;
}
}
h3 {
font-size: 1.1rem;
margin-bottom: .5rem;
font-weight: 600;
a {
color: $color-headline;
&:hover {
color: $color-our;
}
}
}
img {
max-width: 100%;
height: auto;
display: block;
vertical-align: middle;
@media (min-width: $md) {
}
}
.col-xs-2 {
vertical-align: middle !important;
padding: 0 !important;
}
.other {
margin-top: 30px;
}
.stats {
left: calc(16.666666666666664% + 15px);
font-family: Consolas, "Liberation Mono", Menlo, Monaco, Courier, monospace;
font-size: .75rem;
i {
margin-left: 3px;
font-size: .9rem;
}
span {
&:first-child {
margin-right: 0px;
}
}
}
p {
font-size: .9rem;
color: $color-text;
opacity: 1;
}
.package-badge {
position: absolute;
right: 15px;
bottom: -3px;
@media (min-width: $md) {
position: absolute;
right: 0;
bottom: 25px;
}
}
.karma , .downloads {
color: #000;
span {
transform: translate(0, 2px);
display: inline-block;
}
}
&.liked {
.karma {
i {
color: $color-red;
}
}
}
}
.name {
font-size: 1rem;
line-height: 1.3;
font-weight: bold;
}
.description {
font-size: .8rem;
margin-top: 3px;
max-height: 28px;
overflow: hidden;
}
}
@@ -1,94 +0,0 @@
#github-contributors {
&:not(.all) {
.contributor {
&:nth-child(n+17) {
display: none;
}
@media (max-width: $md) {
&:nth-child(n+13) {
display: none;
}
}
@media (max-width: $xs) {
&:nth-child(n+10) {
display: none;
}
}
}
}
&.all {
.button {
display: none;
}
}
.loadmore {
margin: 20px auto;
width: 100%;
text-align: center;
}
}
.github-contributors small.link-list {
font-style: italic;
font-weight: normal;
text-transform: none;
}
.contributor {
margin-bottom: 15px;
.avatar {
position: relative;
flex: 0 0 23%;
margin-right: 20px;
@media (min-width: $md) {
flex: 0 0 15%;
}
img {
border: 3px solid #98d768;
width: 100%;
max-width: 112px;
height: auto;
}
}
.counts {
position: absolute;
top: 2px;
left: 2px;
right: 2px;
text-align: center;
color: #fff;
font-size: 12px;
line-height: 12px;
background: rgba(0,0,0,0.25);
border-radius: 50%;
bottom: 6px;
padding-top: 23px;
opacity: 0;
transition: opacity 0.25s;
}
&:hover .counts {
opacity: 1;
}
.contrib-count {
position: absolute;
left: 25px;
bottom: 0px;
text-align: center;
right: 25px;
color: #425a2e;
font-weight: bold;
background: darken($color-our, 4%);
border-radius: 15px;
z-index: 5;
}
}
@@ -157,10 +157,6 @@ section.forum {
max-width: 112px;
height: auto;
.package-forum-activity & {
border-radius: 0;
}
@media (min-width: $md) {
width: 58px;
}
+1 -1
View File
@@ -60,7 +60,7 @@
@import 'sections/forum';
@import 'sections/people';
@import 'sections/events';
@import 'sections/contributors';
/**
/* Pages
@@ -1,25 +0,0 @@
angular.module("umbraco").controller("ourManagementController", function ($scope, $http, notificationsService) {
$scope.downloadDocumentation = function () {
notificationsService.success("Downloading and indexing documentation, hold on");
var downloadUrl = "/html/githubpulltrigger";
$http.get(downloadUrl)
.success(function () {
notificationsService.success("Documentation all downloaded and indexed!");
})
.error(function () {
notificationsService.error("Problem with the documentation download/indexing");
});
};
$scope.downloadYoutrackData = function () {
notificationsService.success("Downloading YouTrack data, hold on");
var youtrackUrl = "backoffice/API/YouTrackApi/GetData";
$http.get(youtrackUrl)
.success(function () {
notificationsService.success("YouTrack data all downloaded!");
})
.error(function () {
notificationsService.error("Problem with the YouTrack data downloading");
});
};
});
@@ -1,11 +0,0 @@
<div class="ourManagementDashboard" ng-controller="ourManagementController">
<h3>Documentation</h3>
<button ng-click="downloadDocumentation()">
Download documentation
</button>
<h3>YouTrack</h3>
<button ng-click="downloadYoutrackData()">
Download YouTrack data
</button>
</div>
@@ -1,6 +0,0 @@
{
"$schema": "/App_Plugins/manifestSchema.json",
"javascript": [
"/App_Plugins/OurManagement/ourmanagement.controller.js"
]
}
+16
View File
@@ -0,0 +1,16 @@
<%@ WebHandler Language="c#" Class="RequestHandler" %>
public class RequestHandler : System.Web.IHttpHandler
{
public bool IsReusable
{
get { return false; }
}
public void ProcessRequest(System.Web.HttpContext context)
{
ImageGen.ImageGenQueryStringParser parser = new ImageGen.ImageGenQueryStringParser();
parser.Process(context);
parser = null;
}
}
+237 -175
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\UmbracoCms.7.5.11\build\UmbracoCms.props" Condition="Exists('..\packages\UmbracoCms.7.5.11\build\UmbracoCms.props')" />
<Import Project="..\packages\UmbracoCms.7.5.5\build\UmbracoCms.props" Condition="Exists('..\packages\UmbracoCms.7.5.5\build\UmbracoCms.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -47,10 +47,6 @@
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="Autofac, Version=3.5.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.3.5.2\lib\net40\Autofac.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="AutoMapper, Version=3.3.1.0, Culture=neutral, PublicKeyToken=be96cd2c38ef1005, processorArchitecture=MSIL">
<HintPath>..\packages\AutoMapper.3.3.1\lib\net40\AutoMapper.dll</HintPath>
<Private>True</Private>
@@ -59,8 +55,8 @@
<HintPath>..\packages\AutoMapper.3.3.1\lib\net40\AutoMapper.Net4.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="businesslogic, Version=1.0.6274.27355, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\businesslogic.dll</HintPath>
<Reference Include="businesslogic, Version=1.0.6183.23126, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.5\lib\businesslogic.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ClientDependency.Core, Version=1.9.2.0, Culture=neutral, processorArchitecture=MSIL">
@@ -71,12 +67,12 @@
<HintPath>..\packages\ClientDependency-Mvc5.1.8.0.0\lib\net45\ClientDependency.Core.Mvc.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="cms, Version=1.0.6274.27356, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\cms.dll</HintPath>
<Reference Include="cms, Version=1.0.6183.23126, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.5\lib\cms.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="controls, Version=1.0.6274.27357, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\controls.dll</HintPath>
<Reference Include="controls, Version=1.0.6183.23128, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.5\lib\controls.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="CookComputing.XmlRpcV2, Version=2.5.0.0, Culture=neutral, PublicKeyToken=a7d6e17aa302004d, processorArchitecture=MSIL">
@@ -87,8 +83,8 @@
<HintPath>..\packages\EasyHttp.1.6.29.0\lib\net40\EasyHttp.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Examine, Version=0.1.81.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Examine.0.1.81\lib\net45\Examine.dll</HintPath>
<Reference Include="Examine, Version=0.1.70.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Examine.0.1.70.0\lib\Examine.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="HtmlAgilityPack, Version=1.4.9.5, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
@@ -99,16 +95,20 @@
<HintPath>..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ImageProcessor, Version=2.5.2.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\ImageProcessor.2.5.2\lib\net45\ImageProcessor.dll</HintPath>
<Reference Include="ImageProcessor, Version=2.4.5.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\ImageProcessor.2.4.5.0\lib\net45\ImageProcessor.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ImageProcessor.Web, Version=4.8.2.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\ImageProcessor.Web.4.8.2\lib\net45\ImageProcessor.Web.dll</HintPath>
<Reference Include="ImageProcessor.Web, Version=4.6.6.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\ImageProcessor.Web.4.6.6.0\lib\net45\ImageProcessor.Web.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="interfaces, Version=1.0.6274.27351, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\interfaces.dll</HintPath>
<Reference Include="InfoCaster.Umbraco.UrlTracker, Version=3.11.5900.30099, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UrlTracker.3.11\lib\InfoCaster.Umbraco.UrlTracker.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="interfaces, Version=1.0.6183.23122, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.5\lib\interfaces.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="JsonFx, Version=2.0.1209.2802, Culture=neutral, PublicKeyToken=315052dd637f8a52, processorArchitecture=MSIL">
@@ -116,19 +116,19 @@
<HintPath>..\packages\JsonFx.2.0.1209.2802\lib\net40\JsonFx.dll</HintPath>
</Reference>
<Reference Include="log4net, Version=1.2.11.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\log4net.dll</HintPath>
<HintPath>..\packages\UmbracoCms.Core.7.5.5\lib\log4net.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Lucene.Net, Version=2.9.4.1, Culture=neutral, PublicKeyToken=85089178b9ac3181, processorArchitecture=MSIL">
<HintPath>..\packages\Lucene.Net.2.9.4.1\lib\net40\Lucene.Net.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="MarkdownSharp, Version=1.14.5.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Markdown.1.14.7\lib\net45\MarkdownSharp.dll</HintPath>
<Reference Include="MarkdownSharp, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Markdown.1.14.4\lib\net45\MarkdownSharp.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.ApplicationBlocks.Data, Version=1.0.1559.20655, Culture=neutral">
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\Microsoft.ApplicationBlocks.Data.dll</HintPath>
<HintPath>..\packages\UmbracoCms.Core.7.5.5\lib\Microsoft.ApplicationBlocks.Data.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.AspNet.Identity.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
@@ -148,10 +148,6 @@
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.IO.RecyclableMemoryStream, Version=1.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.IO.RecyclableMemoryStream.1.2.1\lib\net45\Microsoft.IO.RecyclableMemoryStream.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Owin, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll</HintPath>
<Private>True</Private>
@@ -176,18 +172,6 @@
<HintPath>..\packages\Microsoft.Owin.Security.OAuth.3.0.1\lib\net45\Microsoft.Owin.Security.OAuth.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Threading.Tasks, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Threading.Tasks.Extensions, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Threading.Tasks.Extensions.Desktop, Version=1.0.168.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebHelpers.3.2.3\lib\net45\Microsoft.Web.Helpers.dll</HintPath>
<Private>True</Private>
@@ -204,18 +188,14 @@
<HintPath>..\packages\MySql.Data.6.9.8\lib\net45\MySql.Data.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL">
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="reCAPTCHA.MVC, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\reCAPTCH.MVC.1.0.1\lib\net45\reCAPTCHA.MVC.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="RestSharp, Version=104.1.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\RestSharp.104.1\lib\net4\RestSharp.dll</HintPath>
@@ -224,20 +204,8 @@
<HintPath>..\packages\semver.1.1.2\lib\net451\Semver.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Skybrud.Essentials, Version=1.0.8.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Skybrud.Essentials.1.0.8\lib\net45\Skybrud.Essentials.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Skybrud.Social.Core, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Skybrud.Social.Core.1.0.0-beta9\lib\net45\Skybrud.Social.Core.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Skybrud.Social.Meetup, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Skybrud.Social.Meetup.1.0.0-beta002\lib\net45\Skybrud.Social.Meetup.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="SQLCE4Umbraco, Version=1.0.6274.27357, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\SQLCE4Umbraco.dll</HintPath>
<Reference Include="SQLCE4Umbraco, Version=1.0.6183.23127, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.5\lib\SQLCE4Umbraco.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Collections.Immutable, Version=1.1.36.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
@@ -246,27 +214,18 @@
</Reference>
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Data.SqlServerCe, Version=4.0.0.1, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\System.Data.SqlServerCe.dll</HintPath>
<HintPath>..\packages\UmbracoCms.Core.7.5.5\lib\System.Data.SqlServerCe.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Data.SqlServerCe.Entity, Version=4.0.0.1, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\System.Data.SqlServerCe.Entity.dll</HintPath>
<HintPath>..\packages\UmbracoCms.Core.7.5.5\lib\System.Data.SqlServerCe.Entity.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Net" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Net.Http.Extensions, Version=2.2.29.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http.Formatting, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http.Primitives, Version=4.2.29.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http.WebRequest" />
<Reference Include="System.Reflection.Metadata, Version=1.0.21.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Reflection.Metadata.1.0.21\lib\portable-net45+win8\System.Reflection.Metadata.dll</HintPath>
@@ -323,51 +282,47 @@
<Reference Include="System.EnterpriseServices" />
<Reference Include="System.Xml.Linq" />
<Reference Include="TidyNet, Version=1.0.0.0, Culture=neutral">
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\TidyNet.dll</HintPath>
<HintPath>..\packages\UmbracoCms.Core.7.5.5\lib\TidyNet.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Tweetinvi, Version=1.2.0.0, Culture=neutral, PublicKeyToken=7247f14397bf67b9, processorArchitecture=MSIL">
<HintPath>..\packages\TweetinviAPI.1.2.0\lib\net45\Tweetinvi.dll</HintPath>
<Reference Include="umbraco, Version=1.0.6183.23129, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.5\lib\umbraco.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="umbraco, Version=1.0.6274.27359, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\umbraco.dll</HintPath>
<Reference Include="Umbraco.Core, Version=1.0.6183.23123, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.5\lib\Umbraco.Core.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Umbraco.Core, Version=1.0.6274.27352, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\Umbraco.Core.dll</HintPath>
<Reference Include="umbraco.DataLayer, Version=1.0.6183.23126, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.5\lib\umbraco.DataLayer.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="umbraco.DataLayer, Version=1.0.6274.27355, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\umbraco.DataLayer.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="umbraco.editorControls, Version=1.0.6274.27361, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\umbraco.editorControls.dll</HintPath>
<Reference Include="umbraco.editorControls, Version=1.0.6183.23131, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.5\lib\umbraco.editorControls.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Umbraco.IdentityExtensions, Version=1.0.5779.34109, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.IdentityExtensions.1.0.0\lib\net45\Umbraco.IdentityExtensions.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="umbraco.MacroEngines, Version=1.0.6274.27362, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\umbraco.MacroEngines.dll</HintPath>
<Reference Include="umbraco.MacroEngines, Version=1.0.6183.23132, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.5\lib\umbraco.MacroEngines.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Umbraco.ModelsBuilder, Version=3.0.5.96, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Umbraco.ModelsBuilder.3.0.5\lib\Umbraco.ModelsBuilder.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="umbraco.providers, Version=1.0.6274.27357, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\umbraco.providers.dll</HintPath>
<Reference Include="umbraco.providers, Version=1.0.6183.23128, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.5\lib\umbraco.providers.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Umbraco.Web.UI, Version=1.0.6274.27363, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\Umbraco.Web.UI.dll</HintPath>
<Reference Include="Umbraco.Web.UI, Version=1.0.6183.23133, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.5\lib\Umbraco.Web.UI.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="UmbracoExamine, Version=0.7.0.27356, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\UmbracoExamine.dll</HintPath>
<Reference Include="UmbracoExamine, Version=0.7.0.23127, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.5\lib\UmbracoExamine.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="UrlRewritingNet.UrlRewriter, Version=2.0.7.0, Culture=neutral, processorArchitecture=MSIL">
@@ -389,6 +344,13 @@
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Views\Search\Search.aspx.cs">
<DependentUpon>Search.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Views\Search\Search.aspx.designer.cs">
<DependentUpon>Search.aspx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<Content Include="App_Browsers\Form.browser" />
@@ -397,8 +359,6 @@
<Content Include="App_Plugins\ModelsBuilder\modelsbuilder.controller.js" />
<Content Include="App_Plugins\ModelsBuilder\modelsbuilder.htm" />
<Content Include="App_Plugins\ModelsBuilder\modelsbuilder.resource.js" />
<Content Include="App_Plugins\OurManagement\ourmanagement.controller.js" />
<Content Include="App_Plugins\OurManagement\ourmanagement.html" />
<Content Include="Assets\css\fonts\icomoon\icomoon.svg" />
<Content Include="Assets\css\style.min.css" />
<Content Include="Assets\images\app-icons\acme-tile-large.png" />
@@ -476,7 +436,6 @@
<SubType>Designer</SubType>
</Content>
<Content Include="config\formHandlers.config" />
<Content Include="config\githubhq.txt" />
<Content Include="config\githubpull.config" />
<Content Include="config\grid.editors.config.js" />
<Content Include="config\Lang\cs-CZ.user.xml" />
@@ -498,7 +457,6 @@
<Content Include="config\Lang\sv-SE.user.xml" />
<Content Include="config\Lang\zh-CN.user.xml" />
<Content Include="config\log4net.config" />
<Content Include="config\MeetupUmbracoGroups.txt" />
<Content Include="config\Notification.config" />
<Content Include="config\restExtensions.config" />
<Content Include="config\Skinning.config" />
@@ -540,6 +498,75 @@
<Content Include="macroScripts\Releases-GetAllReleases.cshtml" />
<Content Include="macroScripts\Releases-ReleaseList.cshtml" />
<Content Include="macroScripts\testWikiFile.cshtml" />
<Content Include="masterpages\AttachFile.master" />
<Content Include="masterpages\Authentication.master" />
<Content Include="masterpages\blank.master" />
<Content Include="masterpages\Community.master" />
<Content Include="masterpages\ConfigureProjectLicenses.master" />
<Content Include="masterpages\ContentLanding.master" />
<Content Include="masterpages\CreateWikiPage.master" />
<Content Include="masterpages\Deli.master" />
<Content Include="masterpages\DeliCart.master" />
<Content Include="masterpages\DeliCartDetails.master" />
<Content Include="masterpages\Dialogs.master" />
<Content Include="masterpages\DisplayTopic.master" />
<Content Include="masterpages\DocumentationMainpage.master" />
<Content Include="masterpages\DocumentationSubpage.master" />
<Content Include="masterpages\EditProject.master" />
<Content Include="masterpages\Event.master" />
<Content Include="masterpages\Eventnews.master" />
<Content Include="masterpages\Events.master" />
<Content Include="masterpages\FileDownload.master" />
<Content Include="masterpages\Forum.master" />
<Content Include="masterpages\HelpPage.master" />
<Content Include="masterpages\InsertImage.master" />
<Content Include="masterpages\Locatorpage.master" />
<Content Include="masterpages\Master.master" />
<Content Include="masterpages\Mobile.master" />
<Content Include="masterpages\MobileTextPage.master" />
<Content Include="masterpages\newest.master" />
<Content Include="masterpages\Nothing.master" />
<Content Include="masterpages\Notifications.master" />
<Content Include="masterpages\PayPalRedirect.master" />
<Content Include="masterpages\People.master" />
<Content Include="masterpages\popular.master" />
<Content Include="masterpages\Profilepage.master" />
<Content Include="masterpages\Project.master" />
<Content Include="masterpages\ProjectGroup.master" />
<Content Include="masterpages\Projects.master" />
<Content Include="masterpages\ProjectsTags.master" />
<Content Include="masterpages\PublicMemberProfile.master" />
<Content Include="masterpages\Release.master" />
<Content Include="masterpages\ReleaseLanding-bak.master" />
<Content Include="masterpages\ReleaseLanding.master" />
<Content Include="masterpages\Repository.master" />
<Content Include="masterpages\RepositoryFrontpage.master" />
<Content Include="masterpages\RepositoryMaster.master" />
<Content Include="masterpages\repositoryPage.master" />
<Content Include="masterpages\Repository\blank.master" />
<Content Include="masterpages\Repository\Community.master" />
<Content Include="masterpages\Repository\Deli.master" />
<Content Include="masterpages\Repository\DeliRepoNET.master" />
<Content Include="masterpages\Repository\FileDownload.master" />
<Content Include="masterpages\Repository\Master.master" />
<Content Include="masterpages\Repository\Nothing.master" />
<Content Include="masterpages\Repository\Project.master" />
<Content Include="masterpages\Repository\ProjectGroup.master" />
<Content Include="masterpages\Repository\Projects.master" />
<Content Include="masterpages\Repository\ProjectsTags.master" />
<Content Include="masterpages\Repository\Repository.master" />
<Content Include="masterpages\Repository\Textpage.master" />
<Content Include="masterpages\RoadMap.master" />
<Content Include="masterpages\simplr.master" />
<Content Include="masterpages\termsofservice.master" />
<Content Include="masterpages\Textpage.master" />
<Content Include="masterpages\UmbracoMVP2011.master" />
<Content Include="masterpages\Wiki.master" />
<Content Include="masterpages\WikiMoveDialog.master" />
<Content Include="masterpages\WikiPage.master" />
<Content Include="masterpages\WikiPageAttachments.master" />
<Content Include="masterpages\WikiPageHistory.master" />
<Content Include="masterpages\WikipagewithTOC.master" />
<Content Include="projects\umbraco-pro\contour\Documentation\Editor\Attaching-Workflows\WorkFlowButton.png" />
<Content Include="projects\umbraco-pro\contour\Documentation\Editor\Attaching-Workflows\Workflownode.png" />
<Content Include="projects\umbraco-pro\contour\Documentation\Editor\Attaching-Workflows\WorkflowOverview.png" />
@@ -642,11 +669,8 @@
<Content Include="scripts\forum\select2\select2-new.js" />
<Content Include="scripts\forum\tags.js" />
<Content Include="config\IISRewriteMaps.config" />
<Content Include="masterpages\ReleaseCompare.master" />
<Content Include="App_Plugins\ModelsBuilder\package.manifest" />
<None Include="App_Plugins\OurManagement\package.manifest" />
<Content Include="config\imageprocessor\security.config" />
<Content Include="config\imageprocessor\processing.config" />
<Content Include="config\imageprocessor\cache.config" />
<Content Include="config\tinyMceConfig.config" />
<Content Include="config\scripting.config" />
<Content Include="config\metablogConfig.config" />
@@ -1659,10 +1683,20 @@
<Content Include="umbraco_client\tablesorting\jquery.tablesorter.min.js" />
<Content Include="umbraco_client\tinymce3\langs\en_us.js" />
<Content Include="umbraco_client\tinymce3\langs\ru.js" />
<Content Include="Views\ContentLanding.cshtml" />
<Content Include="Views\Blank.cshtml" />
<Content Include="Views\DisplayTopic.cshtml" />
<Content Include="usercontrols\dashboard\ForceYouTrackDownload.ascx" />
<Content Include="usercontrols\dashboard\ForceDocumentationDownload.ascx" />
<Content Include="usercontrols\IndexStatus.ascx" />
<Content Include="usercontrols\our.umbraco.org\ForumSpamCleaner.ascx" />
<Content Include="usercontrols\our.umbraco.org\ForumSpamListComments.ascx" />
<Content Include="usercontrols\our.umbraco.org\ForumSpamListTopics.ascx" />
<Content Include="usercontrols\our.umbraco.org\SignupSimple.ascx" />
<Content Include="usercontrols\umbracoContour\EditForm.ascx" />
<Content Include="usercontrols\umbracoContour\Installer.ascx" />
<Content Include="usercontrols\umbracoContour\RenderForm.ascx" />
<Content Include="Views\MacroPartials\Forum\TopicForm.cshtml" />
<Content Include="Views\MacroPartials\Members\HeaderProfile.cshtml" />
<Content Include="Views\MacroPartials\Members\QuickMenu.cshtml" />
<Content Include="Views\MacroPartials\Members\JsValues.cshtml" />
<Content Include="Views\Partials\Forum\Comment.cshtml" />
<Content Include="Assets\css\fonts\our-icon\our-umbraco.eot" />
<Content Include="Assets\css\fonts\our-icon\our-umbraco.svg" />
@@ -1670,20 +1704,38 @@
<Content Include="Assets\css\fonts\our-icon\our-umbraco.woff" />
<Content Include="Assets\images\logo.svg" />
<Content Include="Assets\images\magnifier.svg" />
<Content Include="Views\MacroPartials\Navigation\TopNavigation.cshtml" />
<Content Include="masterpages\ForumMaster.master" />
<Content Include="masterpages\DocumentationMaster.master" />
<Content Include="masterpages\ComRepositoryFrontpage.master" />
<Content Include="Assets\css\fonts\icomoon\icomoon.eot" />
<Content Include="Assets\css\fonts\icomoon\icomoon.ttf" />
<Content Include="Assets\css\fonts\icomoon\icomoon.woff" />
<Content Include="Views\MacroPartials\Forum\TopicActions.cshtml" />
<Content Include="Views\MacroPartials\Forum\ForumActions.cshtml" />
<Content Include="Assets\js\jquery.scrolly.js" />
<Content Include="Views\MacroPartials\Members\Profile.cshtml" />
<Content Include="Views\MacroPartials\Members\ProfileNotifications.cshtml" />
<Content Include="Views\Partials\Documentation\Navigation.cshtml" />
<Content Include="Views\Partials\Projects\ListCategories.cshtml" />
<Content Include="Views\Partials\Projects\ListProjects.cshtml" />
<Content Include="Views\Partials\Members\ProfileNavigation.cshtml" />
<Content Include="Views\MacroPartials\Documenation\Breadcrumb.cshtml" />
<Content Include="Views\MacroPartials\Documenation\DisplayMarkdown.cshtml" />
<Content Include="Views\MacroPartials\Documenation\Navigation.cshtml" />
<Content Include="Views\MacroPartials\Projects\ListCategories.cshtml" />
<Content Include="Views\MacroPartials\Projects\ListProjects.cshtml" />
<Content Include="Views\MacroPartials\Members\ProfileNavigation.cshtml" />
<Content Include="Views\MacroPartials\Search\GlobalSearchPage.cshtml" />
<Content Include="masterpages\Download.master" />
<Content Include="Views\MacroPartials\Members\ProfileProjectTeam.cshtml" />
<Content Include="Views\MacroPartials\Releases\AllReleases.cshtml" />
<Content Include="Views\MacroPartials\Projects\ProjectDetails.cshtml" />
<Content Include="Views\MacroPartials\Members\Register.cshtml" />
<Content Include="Views\MacroPartials\Forum\LatestActivity.cshtml" />
<Content Include="Views\MacroPartials\Members\ProfileProjectForums.cshtml" />
<Content Include="masterpages\ReleaseProgress.master" />
<Content Include="Views\MacroPartials\Global\AlertBar.cshtml" />
<Content Include="Views\MacroPartials\Members\PublicProfile.cshtml" />
<Content Include="masterpages\ProfileLogin.master" />
<Content Include="masterpages\ProfileRegister.master" />
<Content Include="masterpages\Sidebar.master" />
<Content Include="Views\MacroPartials\Rss\Forum.cshtml" />
<Content Include="Views\MacroPartials\Rss\LatestTopics.cshtml" />
<Content Include="Views\MacroPartials\Rss\Packages.cshtml" />
@@ -1699,31 +1751,14 @@
<Content Include="umbraco\lib\font-awesome\fonts\FontAwesome.otf" />
<Content Include="macroScripts\repository-popularpackages.cshtml" />
<Content Include="Views\MacroPartials\RedirectProjectCategory.cshtml" />
<Content Include="Views\MacroPartials\Community\Home.cshtml" />
<Content Include="Views\MacroPartials\Project\Edit.cshtml" />
<Content Include="masterpages\ProjectPage.master" />
<Content Include="umbraco\lib\bootstrap-tabdrop\README.md" />
<Content Include="Views\MacroPartials\Releases\ReleasesDropdown.cshtml" />
<Content Include="Views\Partials\Community\TermsAndConditions.cshtml" />
<Content Include="Views\Master.cshtml" />
<Content Include="Views\Community.cshtml" />
<Content Include="Views\Forum.cshtml" />
<Content Include="Views\MacroPartials\Members\Login.cshtml" />
<Content Include="Views\MacroPartials\Members\ForgotPassword.cshtml" />
<Content Include="Views\Partials\Forum\Forum.cshtml" />
<Content Include="Views\Partials\Projects\MyProjects.cshtml" />
<Content Include="Views\MacroPartials\Projects\MyProjects.cshtml" />
<Content Include="Views\EditProject.cshtml" />
<Content Include="Views\FileDownload.cshtml" />
<Content Include="Views\DocumentationSubpage.cshtml" />
<Content Include="Views\Download.cshtml" />
<Content Include="Views\Partials\Community\Scripts.cshtml" />
<Content Include="Views\Partials\Community\Home.cshtml" />
<Content Include="Views\Partials\Community\JsValues.cshtml" />
<Content Include="Views\Partials\Forum\ForumActions.cshtml" />
<Content Include="Views\Partials\Forum\MemberBadge.cshtml" />
<Content Include="Views\Partials\Project\EditFiles.cshtml" />
<Content Include="Views\Partials\Project\PackageEditNavigation.cshtml" />
<Content Include="Views\Partials\Project\EditScreenshots.cshtml" />
<Content Include="Views\Partials\Project\Complete.cshtml" />
<Content Include="Views\Partials\Home\LatestForumActivity.cshtml" />
<None Include="Views\Partials\Forum\MemberBadge.cshtml" />
<Content Include="Views\Search\Search.aspx" />
<Content Include="Views\Web.config" />
<Content Include="web.config">
<SubType>Designer</SubType>
@@ -4045,6 +4080,65 @@
<Content Include="umbraco_client\ui\ui-lightness\images\ui-icons_ffd27a_256x240.png" />
<Content Include="umbraco_client\ui\ui-lightness\images\ui-icons_ffffff_256x240.png" />
<Content Include="umbraco_client\ui\ui-lightness\jquery-ui.custom.css" />
<Content Include="usercontrols\dashboard\getMembersFromGroup.ascx" />
<Content Include="usercontrols\dashboard\memberSearch.ascx" />
<Content Include="usercontrols\Deli\Cart\Cart.ascx" />
<Content Include="usercontrols\Deli\Cart\CartDetails.ascx" />
<Content Include="usercontrols\Deli\Cart\CartProgress.ascx" />
<Content Include="usercontrols\Deli\Cart\CartReview.ascx" />
<Content Include="usercontrols\Deli\Cart\MicroCart.ascx" />
<Content Include="usercontrols\Deli\Customers\VendorCustomers.ascx" />
<Content Include="usercontrols\Deli\Dashboard\VendorBIOverview.ascx" />
<Content Include="usercontrols\Deli\Dashboard\VendorProjectBI.ascx" />
<Content Include="usercontrols\Deli\EditPackage.ascx" />
<Content Include="usercontrols\Deli\HQStaffPickProjects.ascx" />
<Content Include="usercontrols\Deli\License\Member\MyLicenses.ascx" />
<Content Include="usercontrols\Deli\License\Vendor\ProjectLicenses.ascx" />
<Content Include="usercontrols\Deli\ListPagination.ascx" />
<Content Include="usercontrols\Deli\Package\Editor.ascx" />
<Content Include="usercontrols\Deli\Package\Steps\Complete.ascx" />
<Content Include="usercontrols\Deli\Package\Steps\Details.ascx" />
<Content Include="usercontrols\Deli\Package\Steps\Files.ascx" />
<Content Include="usercontrols\Deli\Package\Steps\Screenshots.ascx" />
<Content Include="usercontrols\Deli\Payout\VendorPayout.ascx" />
<Content Include="usercontrols\Deli\Payout\VendorPayoutHistory.ascx" />
<Content Include="usercontrols\Deli\Profile\MemberDataLookup.ascx" />
<Content Include="usercontrols\Deli\Profile\MyProjects.ascx" />
<Content Include="usercontrols\Deli\Profile\Signup.ascx" />
<Content Include="usercontrols\Deli\ProjectView.ascx" />
<Content Include="usercontrols\Deli\Purchase\PayPalConfirm.ascx" />
<Content Include="usercontrols\Deli\Purchase\PayPalPayment.ascx" />
<Content Include="usercontrols\Deli\Repository\RepoProjectView.ascx" />
<Content Include="usercontrols\Deli\Support\Member\RefundRequest.ascx" />
<Content Include="usercontrols\Deli\Support\VendorSupportRequest.ascx" />
<Content Include="usercontrols\Deli\Support\Vendor\VendorSupportRequest.ascx" />
<Content Include="usercontrols\Deli\TopPaidProjectsList.ascx" />
<Content Include="usercontrols\FergusonMoriyama\FeedCache\PostInstall.ascx" />
<Content Include="usercontrols\ImageGenInstaller.ascx" />
<Content Include="usercontrols\MemberLocator.ascx" />
<Content Include="usercontrols\our.umbraco.org\acceptTos.ascx" />
<Content Include="usercontrols\our.umbraco.org\EventEditor.ascx" />
<Content Include="usercontrols\our.umbraco.org\EventMailer.ascx" />
<Content Include="usercontrols\our.umbraco.org\FileDownloadProxy.ascx" />
<Content Include="usercontrols\our.umbraco.org\Forgotpassword.ascx" />
<Content Include="usercontrols\our.umbraco.org\HeaderLogin.ascx" />
<Content Include="usercontrols\our.umbraco.org\InsertImage.ascx" />
<Content Include="usercontrols\our.umbraco.org\Login.ascx" />
<Content Include="usercontrols\our.umbraco.org\Login_novalidationscript.ascx" />
<Content Include="usercontrols\our.umbraco.org\ProjectCollabRequest.ascx" />
<Content Include="usercontrols\our.umbraco.org\ProjectContributors.ascx" />
<Content Include="usercontrols\our.umbraco.org\ProjectEditor.ascx" />
<Content Include="usercontrols\our.umbraco.org\ProjectFileUpload.ascx" />
<Content Include="usercontrols\our.umbraco.org\ProjectForums.ascx" />
<Content Include="usercontrols\our.umbraco.org\Signup.ascx" />
<Content Include="usercontrols\our.umbraco.org\testoptimize.ascx" />
<Content Include="usercontrols\our.umbraco.org\YAF_MemberImport.ascx" />
<Content Include="usercontrols\poll\Poll.ascx" />
<Content Include="usercontrols\umbracoMemberControls\umbLogin.ascx" />
<Content Include="usercontrols\umbracoMemberControls\umbPasswordForgot.ascx" />
<Content Include="usercontrols\umbracoMemberControls\umbRegister.ascx" />
<Content Include="usercontrols\Umbraco\ExamineIndexAdmin.ascx" />
<Content Include="usercontrols\uWiki\FileUpload.ascx" />
<Content Include="w3c\p3p.xml" />
<Content Include="webservices\Licensing.asmx" />
<Content Include="webservices\MarketPlace.asmx" />
@@ -4146,6 +4240,8 @@
<Content Include="packages.config" />
<Content Include="App_Data\packages\installed\installedPackages.config" />
<Content Include="config\FileIndexerConfig.config" />
<Content Include="masterpages\ArchivedRelease.master" />
<Content Include="masterpages\ReleaseDownload.master" />
<Content Include="macroScripts\Releases-ListDownloads.cshtml">
<SubType>Code</SubType>
</Content>
@@ -4180,9 +4276,13 @@
<Content Include="projects\umbraco-pro\contour\Documentation\readme.md" />
<Content Include="macroScripts\Rss-CommunityBlogs.cshtml" />
<Content Include="macroScripts\TwitterSearch.cshtml" />
<Content Include="masterpages\SwitchForumEditor.master" />
<Content Include="macroScripts\SwitchForumEditor.cshtml" />
<Content Include="masterpages\ManageSpam.master" />
<Content Include="macroScripts\ManageSpam.cshtml" />
<Content Include="masterpages\ProjectsVersioned.master" />
<Content Include="macroScripts\ProjectsVersionList.cshtml" />
<Content Include="masterpages\ProjectCompatibility.master" />
<Content Include="macroScripts\EditProjectCompatibility.cshtml" />
<Content Include="macroScripts\EventsOverview.cshtml" />
<Content Include="umbraco\assets\fonts\helveticons\helveticons.eot" />
@@ -4289,7 +4389,9 @@
<Content Include="umbraco\Views\Default.cshtml" />
<Content Include="umbraco\webservices\UltimatePickerAutoCompleteHandler.ashx" />
<Content Include="umbraco\xslt\Web.config" />
<Content Include="Views\Partials\Forum\Latest.cshtml" />
<Content Include="Views\MacroPartials\Forum\Latest.cshtml" />
<Content Include="Views\MacroPartials\Forum\Forum.cshtml" />
<Content Include="Views\MacroPartials\Forum\Thread.cshtml" />
<Content Include="Views\Partials\Forum\Question.cshtml" />
<Content Include="Views\Partials\Members\Profile.cshtml" />
<Content Include="Views\Partials\Members\ProfileNotification.cshtml" />
@@ -4297,43 +4399,7 @@
<Content Include="Views\Partials\Projects\CompatibilityReport.cshtml" />
<Content Include="Views\Partials\Project\Edit.cshtml" />
<Content Include="Views\Partials\Home\Documentation.cshtml" />
<Content Include="Views\Partials\Members\Login.cshtml" />
<Content Include="Views\Partials\Members\ForgotPassword.cshtml" />
<Content Include="Views\Partials\Home\TwitterSearchUmbraco.cshtml" />
<Content Include="Views\Projects.cshtml" />
<Content Include="Views\Project.cshtml" />
<Content Include="Views\DocumentationMainpage.cshtml" />
<Content Include="Views\Search.cshtml" />
<Content Include="Views\Partials\SearchResults.cshtml" />
<Content Include="Views\ReleaseLanding.cshtml" />
<Content Include="Views\ReleaseProgress.cshtml" />
<Content Include="Views\Release.cshtml" />
<Content Include="Views\Textpage.cshtml" />
<Content Include="Views\RoadMap.cshtml" />
<Content Include="Views\Profilepage.cshtml" />
<Content Include="Views\ProjectPage.cshtml" />
<Content Include="Views\ReleaseDownload.cshtml" />
<Content Include="Views\PublicMemberProfile.cshtml" />
<Content Include="Views\ReleaseCompare.cshtml" />
<Content Include="Views\Repository.cshtml" />
<Content Include="Views\RepositoryFrontpage.cshtml" />
<Content Include="Views\RepositoryPage.cshtml" />
<Content Include="Views\RepositoryMaster.cshtml" />
<Content Include="Views\Partials\Members\QuickMenu.cshtml" />
<Content Include="Views\Partials\Navigation\TopNavigation.cshtml" />
<Content Include="Views\Partials\Global\Alertbar.cshtml" />
<Content Include="Views\Partials\Global\Breadcrumb.cshtml" />
<Content Include="Views\Partials\Forum\TopicActions.cshtml" />
<Content Include="Views\Partials\Forum\TopicForm.cshtml" />
<Content Include="Views\Partials\Forum\Thread.cshtml" />
<Content Include="Views\Partials\Documentation\Breadcrumb.cshtml" />
<Content Include="Views\Partials\Documentation\DisplayMarkdown.cshtml" />
<Content Include="Views\Partials\Members\PublicProfile.cshtml" />
<Content Include="Views\Partials\Projects\ProjectDetails.cshtml" />
<Content Include="Views\Partials\Releases\ReleasesDropdown.cshtml" />
<Content Include="Views\Partials\Releases\AllReleases.cshtml" />
<Content Include="Views\Error.cshtml" />
<Content Include="Views\PeopleKarma.cshtml" />
<Content Include="Views\Partials\Home\ForumActivity.cshtml" />
<Content Include="Views\Partials\Grid\Editors\Textstring.cshtml" />
<Content Include="Views\Partials\Grid\Editors\Rte.cshtml" />
<Content Include="Views\Partials\Grid\Editors\Media.cshtml" />
@@ -4344,9 +4410,6 @@
<Content Include="Views\Partials\Grid\Bootstrap3-Fluid.cshtml" />
<Content Include="Views\Partials\Grid\Bootstrap2.cshtml" />
<Content Include="Views\Partials\Grid\Bootstrap2-Fluid.cshtml" />
<Content Include="Views\Lesson.cshtml" />
<Content Include="Views\Partials\Home\GitHubContributors.cshtml" />
<Content Include="Views\Partials\Home\Meetups.cshtml" />
<None Include="web.Debug.config">
<DependentUpon>web.config</DependentUpon>
</None>
@@ -4366,6 +4429,7 @@
<Folder Include="css\img\Cached\" />
<Folder Include="umbraco\lib\datetimepicker\langs\" />
<Folder Include="umbraco\Views\directives\" />
<Folder Include="usercontrols\Deli\Admin\" />
</ItemGroup>
<ItemGroup>
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.1.0.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.Analyzers.dll" />
@@ -4376,7 +4440,6 @@
<VSToolsPath Condition="exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets')">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v11.0</VSToolsPath>
<VSToolsPath Condition="exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets')">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v12.0</VSToolsPath>
<VSToolsPath Condition="exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets')">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v14.0</VSToolsPath>
<VSToolsPath Condition="exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets')">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v15.0</VSToolsPath>
</PropertyGroup>
<PropertyGroup>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
@@ -4419,16 +4482,15 @@
<!-- Only runs if the ClientFiles build folder doesn't yet exist -->
<CallTarget Targets="ClientFilesBuild" Condition="!Exists('$(ProjectDir)\..\OurUmbraco.Client\build\assets')" />
</Target>
<Import Project="..\packages\AutoMapper.3.3.1\tools\AutoMapper.targets" Condition="Exists('..\packages\AutoMapper.3.3.1\tools\AutoMapper.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />
<Error Condition="!Exists('..\packages\UmbracoCms.7.5.11\build\UmbracoCms.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\UmbracoCms.7.5.11\build\UmbracoCms.props'))" />
<Error Condition="!Exists('..\packages\UmbracoCms.7.5.11\build\UmbracoCms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\UmbracoCms.7.5.11\build\UmbracoCms.targets'))" />
<Error Condition="!Exists('..\packages\UmbracoCms.7.5.5\build\UmbracoCms.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\UmbracoCms.7.5.5\build\UmbracoCms.props'))" />
<Error Condition="!Exists('..\packages\UmbracoCms.7.5.5\build\UmbracoCms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\UmbracoCms.7.5.5\build\UmbracoCms.targets'))" />
</Target>
<Import Project="..\packages\AutoMapper.3.3.1\tools\AutoMapper.targets" Condition="Exists('..\packages\AutoMapper.3.3.1\tools\AutoMapper.targets')" />
<Import Project="..\packages\UmbracoCms.7.5.11\build\UmbracoCms.targets" Condition="Exists('..\packages\UmbracoCms.7.5.11\build\UmbracoCms.targets')" />
<Import Project="..\packages\UmbracoCms.7.5.5\build\UmbracoCms.targets" Condition="Exists('..\packages\UmbracoCms.7.5.5\build\UmbracoCms.targets')" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="AfterBuild">
-2
View File
@@ -1,2 +0,0 @@
@inherits UmbracoTemplatePage
@Umbraco.RenderMacro(Model.Content.GetPropertyValue<string>("macro"))
-33
View File
@@ -1,33 +0,0 @@
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
@{
Layout = "~/Views/Master.cshtml";
}
@Html.Partial("~/Views/Partials/Community/Home.cshtml")
@section Search
{
<script type="text/template" class="search-item-template">
<li>
<a href="{{ url }}">
<div class="type-icon">
<i class="{{ icon }}"></i>
</div>
<div class="type-context">
<div class="type-name">
{{ name }}
</div>
<div class="type-description">
{{ description }}
</div>
</div>
</a>
</li>
</script>
}
@section EndScripts
{
@Html.Partial("~/Views/Partials/Community/Scripts.cshtml")
}
@@ -1,28 +0,0 @@
@inherits UmbracoTemplatePage
@{
Layout = "~/Views/Master.cshtml";
}
<div id="contribute" class="subpage">
<div id="body" class="markdown-syntax">
<div>
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = false })
</div>
<h1>Contribute to the Umbraco Project</h1>
<div>
@Html.Raw(Model.Content.GetPropertyValue<string>("bodyText"))
</div>
<div class="options">
<div class="row projectGroups">
@foreach (var item in Model.Content.Children.Where(x => x.IsVisible()))
{
<div class="projectGroup col-md-6">
<div style="background-image: url('@(item.GetPropertyValue<string>("contentIcon"))">
<h3><a href="@item.Url">@item.Name</a></h3>
<p>@(item.GetPropertyValue<string>("abstract"))</p>
</div>
</div>
}
</div>
</div>
</div>
</div>
-51
View File
@@ -1,51 +0,0 @@
@using OurUmbraco.Forum.Services
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
@{
Layout = "~/Views/Master.cshtml";
var topicService = new TopicService(ApplicationContext.DatabaseContext);
var topic = topicService.CurrentTopic(Context, ApplicationContext.ApplicationCache.RequestCache, MemberData, Model.Content);
}
<!-- FORUM OVERVIEW START -->
<section class="forum-overview">
<div class="forum-single-thread">
<!-- FORUM HEADER START -->
<div class="utilities">
<!-- FORUM BREADCRUMB START -->
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = true })
<!-- FORUM BREADCRUMB END -->
<!-- THREAD ACTIONS START -->
@if (topic != null)
{
Html.RenderPartial("~/Views/Partials/Forum/TopicActions.cshtml", topic);
}
<!-- THREAD ACTIONS END -->
<div class="clear"></div>
</div>
<!-- FORUM HEADER END -->
@if (topic != null)
{
Html.RenderPartial("~/Views/Partials/Forum/Thread.cshtml", topic);
}
else
{
<p>This topic no longer exists.</p>
}
</div>
</section>
@Html.Partial("~/Views/Partials/Forum/TopicForm.cshtml")
@section HeadCssScripts {
<link rel="stylesheet" type="text/css" href="/css/tooltipster.css" />
}
@section EndScripts {
<script type="text/javascript" src="/scripts/jquery.tooltipster.min.js"></script>
<script type="text/javascript">
$('.highfive-count').tooltipster({
contentAsHTML: true,
interactive: true,
multiple: true
});
</script>
}
@@ -1,22 +0,0 @@
@inherits UmbracoTemplatePage
@{
Layout = "~/Views/Master.cshtml";
}
<div class="has-sidebar">
<div class="documentation">
<div id="wiki" class="subpage">
<div id="body">
<div style="margin-top: 25px;">
@Html.Partial("~/Views/Partials/Documentation/Breadcrumb.cshtml")
</div>
<div id="markdown-docs" class="markdown-syntax">
@Html.Partial("~/Views/Partials/Documentation/DisplayMarkdown.cshtml")
</div>
<br style="clear: both" />
<div class="divider"></div>
</div>
</div>
</div>
</div>
@@ -1,58 +0,0 @@
@inherits UmbracoTemplatePage
@{
Layout = "~/Views/Master.cshtml";
}
<div class="has-sidebar">
<div class="documentation">
<div class="page-content">
<div class="sidebar-area">
<div class="sidebar-content">
<div class="content-wrapper">
@Html.Partial("~/Views/Partials/Documentation/Navigation.cshtml")
</div><!-- .content-wrapper -->
</div><!-- .sidebar-content -->
</div><!-- .sidebar-area-->
<div class="main-area">
<div class="main-content">
<div class="content-wrapper">
<div>
@Html.Partial("~/Views/Partials/Documentation/Breadcrumb.cshtml")
</div>
<div class="search-big">
<input type="search" class="docs-search-input" required placeholder="Search for documentation">
<label for="search">Search for documentation</label>
</div>
<ul class="search-all-results docs-search-listing"></ul>
<div id="markdown-docs" class="docs-default-listing markdown-syntax">
@Html.Partial("~/Views/Partials/Documentation/DisplayMarkdown.cshtml")
</div>
</div><!-- .content-wrapper -->
</div><!-- .main-content -->
</div><!-- .main-area -->
</div><!-- .page-content -->
<script type="text/template" class="search-item-docs">
<li>
<a href="{{ url }}">
<div class="type-icon">
<i class="icon-Book-alt"></i>
</div>
<div class="type-context">
<div class="type-name">
{{ name }}
</div>
<div class="type-description">
{{ body }}
</div>
</div>
</a>
</li>
</script>
</div>
</div>
-77
View File
@@ -1,77 +0,0 @@
@inherits UmbracoTemplatePage
@using ClientDependency.Core.Mvc
@using OurUmbraco.Release
@{
Layout = "~/Views/Master.cshtml";
Html.RequiresCss("~/css/releases.css");
var latestRelease = Download.GetCurrentReleaseFromFile();
}
<section id="download" class="download-umbraco">
<div class="container">
<div class="row">
<div class="col-xs-12">
<div class="dl-content">
<h1>Download Umbraco</h1>
<p>If you're new to Umbraco you might want to start your install with the versions on the <a href="/documentation/getting-started/installation/">Web Platform Installer or WebMatrix</a>. These tools will automatically download and install any dependencies to give you a flying start.</p>
<a id="downloadButton" class="button white" href="/contribute/releases/@(latestRelease.version.Replace(".", string.Empty))?fromdownload=true">
<i class="icon-Download-alt"></i>
<span>Download Umbraco v@(latestRelease.version)</span>
</a>
<p class="small">or, install via nuget</p>
<span class="pm-nuget">
<input class="pre nuget" value="Install-Package UmbracoCms" readonly="">
</span>
</div>
</div>
</div>
</div>
<div class="archive">
<a href="/contribute/releases/">See releases</a>
</div>
</section>
<section id="install" class="download-umbraco" style="display: none">
<div class="mac-notice">
You're running MacOS, follow <a href="">this guide.</a>
</div>
<div class="container">
<div class="row">
<div class="col-xs-12">
<div class="dl-content steps">
<h2>Almost there</h2>
<div class="guide">
<div class="step step-one">
<span>1</span>
<div>Unzip</div>
</div>
<div class="step step-two">
<span>2</span>
<div>Run with WebMatrix</div>
</div>
<div class="step step-three">
<span>3</span>
<div>Follow the installer</div>
</div>
<div class="clearfix"></div>
</div>
<!-- insert gif here -->
</div>
</div>
</div>
</div>
<div class="archive">
See detailed instructions in the <a href="/documentation/Getting-Started/Setup/Install/">documentation</a>
</div>
</section>
<script type="text/javascript">
(function () {
$('.dl-content').on('click', '#downloadButton', function (e) {
$('section#download').fadeOut();
$('section#install').fadeIn();
});
})();
</script>
-33
View File
@@ -1,33 +0,0 @@
@inherits UmbracoTemplatePage
@{
Layout = "~/Views/Master.cshtml";
}
<div class="page-content">
<div class="sidebar-area">
<div class="sidebar-content">
<div class="content-wrapper">
@Html.Partial("~/Views/Partials/Members/ProfileNavigation.cshtml")
</div><!-- .content-wrapper -->
</div><!-- .sidebar-content -->
</div><!-- .sidebar-area -->
<div class="main-area">
<div class="main-content">
<div class="content-wrapper">
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = true })
@if (Request.QueryString["editorStep"] == "files")
{
@Html.Action("RenderFiles", "Project")
}
@if (Request.QueryString["editorStep"] == "screenshots")
{
@Html.Action("RenderScreenshots", "Project")
}
@if (Request.QueryString["editorStep"] == "complete")
{
@Html.Action("RenderComplete", "Project")
}
</div><!-- .content-wrapper -->
</div><!-- .main-content -->
</div><!-- .main-area -->
</div><!-- .page-content -->
-7
View File
@@ -1,7 +0,0 @@
@using Umbraco.Core.Logging
@{
var absoluteReferrer = string.Empty;
var referrer = HttpContext.Current.Request.UrlReferrer;
if(referrer != null) { absoluteReferrer = referrer.AbsoluteUri; }
LogHelper.Info<string>(string.Format("Error view requested on page {0} - referrer {1}", HttpContext.Current.Request.Url.AbsoluteUri, absoluteReferrer));
}
-81
View File
@@ -1,81 +0,0 @@
@using OurUmbraco.Wiki.BusinessLogic
@inherits UmbracoTemplatePage
@{
Layout = "~/Views/Master.cshtml";
if (Request["id"] == null)
{
return;
}
int fileId;
if (int.TryParse(Request["id"], out fileId) == false)
{
return;
}
if (fileId == 0)
{
return;
}
var wikiFile = new WikiFile(fileId);
wikiFile.UpdateDownloadCounter(false, wikiFile.FileType == "package");
using (var sqlHelper = umbraco.BusinessLogic.Application.SqlHelper)
{
var path = sqlHelper.ExecuteScalar<string>(
"Select path from wikiFiles where id = @id;",
sqlHelper.CreateParameter("@id", fileId));
var file = sqlHelper.ExecuteScalar<string>(
"Select name from wikiFiles where id = @id;",
sqlHelper.CreateParameter("@id", fileId));
var fileinfo = new System.IO.FileInfo(Server.MapPath(path));
var extension = System.IO.Path.GetExtension(Server.MapPath(path));
var type = "";
// set known types based on file extension
if (extension != null)
{
switch (extension.ToLower())
{
case ".tif":
case ".tiff":
type = "image/tiff";
break;
case ".jpg":
case ".jpeg":
type = "image/jpeg";
break;
case ".gif":
type = "image/gif";
break;
case ".docx":
case ".doc":
case ".rtf":
type = "Application/msword";
break;
case ".pdf":
type = "Application/pdf";
break;
case ".png":
type = "image/png";
break;
case ".bmp":
type = "image/bmp";
break;
default:
type = "application/octet-stream";
break;
}
}
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename= " + file.Replace(" ", "-"));
Response.AddHeader("Content-Length", fileinfo.Length.ToString());
Response.ContentType = type;
Response.WriteFile(path);
}
}
-39
View File
@@ -1,39 +0,0 @@
@inherits UmbracoTemplatePage
@{
Layout = "~/Views/Master.cshtml";
}
<!-- FORUM OVERVIEW START -->
<section class="forum-overview">
<div class="forum-archive">
@Html.Partial("~/Views/Partials/Forum/Forum.cshtml")
</div>
</section>
@Html.Partial("~/Views/Partials/Forum/TopicForm.cshtml")
@section EndScripts {
@{
var cat = -1;
if (Model.Content.Level > 3)
{
cat = Model.Content.Id;
}
var page = 1;
if (Request["page"] != null)
{
int.TryParse(Request["page"], out page);
}
}
<script type="text/javascript">
$('table')
.scrolly({
page: @page,
dataUrl: '/umbraco/api/PublicForum/LatestPaged/?cat=@cat',
template: '#forum-template',
loadingHtml: '<div class="span"><div class=" loader"></div></div>'
});
</script>
}
-54
View File
@@ -1,54 +0,0 @@
@using OurUmbraco.Documentation.Busineslogic
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
Layout = null;
var path = HttpContext.Current.Items[MarkdownLogic.MarkdownPathKey].ToString();
var ml = new MarkdownLogic(path) { PrefixLinks = false, AppendAltLessonLink = true };
var markdown = ml.DoTransformation();
}
<html>
<head>
<title></title>
<link href="https://fonts.googleapis.com/css?family=Asap:400,700,400italic,700italic" type="text/css" rel="stylesheet"/>
<style>
body {
font-family: Asap, sans-serif;
}
code {
background-color: #eeeeee ;
padding: 5px;
}
pre {
word-wrap: break-word;
white-space: pre-wrap;
}
pre > code {
display: block;
}
img {
max-width: 90%;
}
blockquote {
border-left: 4px solid #ddd;
padding: 1px 15px;
color: #777;
background: #efefef ;
margin: 0;
}
</style>
</head>
<body>
<div>
@Html.Raw(markdown)
</div>
</body>
</html>
@@ -0,0 +1,67 @@
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@{
var homeNotificationText = Model.Content.GetPropertyValue<string>("homeOnlyBanner");
var showHomeNotification = string.IsNullOrWhiteSpace(homeNotificationText) == false;
var globalNotificationText = Model.Content.GetPropertyValue<string>("mainNotification");
var showGlobalNotification = string.IsNullOrWhiteSpace(globalNotificationText) == false;
}
<!-- Search start -->
<section id="search-all" class="search-all">
<div class="search-all-form">
<div class="search-fieldset">
<input class="search-input" type="search" placeholder="Search..">
<input class="search-submit" type="submit" value="&#xe085;">
</div>
<span class="search-all-close"></span>
</div>
<div class="search-all-results equalizer">
<ul></ul>
</div>
@if (!Members.IsLoggedIn())
{
<div class="search-text">
<div class="container">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<strong>The friendliest CMS community on the planet</strong>
<p>our.umbraco.org is the central hub for the friendly umbraco community. Search for documentation, get help and guidance from seasoned experts, download and collaborate on plugins and extensions.</p>
</div>
</div>
</div>
</div>
}
</section>
<!-- Search end -->
<style>
.bannertext p{
line-height: 1.4rem;
}
</style>
@if (showGlobalNotification)
{
<div class="alertbar__yellow">
@Html.Raw(globalNotificationText)
</div>
}
@if (showHomeNotification)
{
@Html.Raw(homeNotificationText)
}
@if (Members.IsLoggedIn())
{
@Html.Partial("home/forumactivity")
@Html.Partial("home/documentation")
}
else
{
@Html.Partial("home/documentation")
@Html.Partial("home/forumactivity")
}
@@ -1,6 +1,6 @@
@using OurUmbraco.Documentation
@using OurUmbraco.Documentation
@using OurUmbraco.Documentation.Busineslogic
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@{
string baseurl = "/";
@@ -9,7 +9,7 @@
directoryName = directoryName.Substring(1);
string[] strDirs = directoryName.Split('\\');
var linkToGithub = string.Empty;
if (absolutePath.StartsWith("/project") == false)
{
@@ -1,5 +1,5 @@
@using OurUmbraco.Documentation.Busineslogic
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
@inherits Umbraco.Web.Macros.PartialViewMacroPage
<style>
#markdown-docs .anchorjs-link {
@@ -1,5 +1,6 @@
@using OurUmbraco.Documentation.Busineslogic.GithubSourcePull
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@{
var zipper = new ZipDownloader();
dynamic sitemap = zipper.DocumentationSiteMap();
@@ -1,198 +1,195 @@
@using OurUmbraco.Forum.Extensions
@using OurUmbraco.Forum.Library
@using OurUmbraco.Forum.Models
@using OurUmbraco.Forum.Services
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
@{
// Save query string for use in pagination links
var queryString = HttpUtility.ParseQueryString(Request.QueryString.ToString());
const int pagesToShowLeft = 4;
int page;
if (!int.TryParse(Request["page"], out page))
{
page = 1;
}
bool unsolved;
bool.TryParse(Request["unsolved"], out unsolved);
bool noreplies;
bool.TryParse(Request["noreplies"], out noreplies);
var cat = -1;
if (CurrentPage.Level > 2)
{
cat = CurrentPage.Id;
}
var topicService = new TopicService(ApplicationContext.DatabaseContext);
IEnumerable<ReadOnlyTopic> topics;
var cache = ApplicationContext.Current.ApplicationCache.RuntimeCache;
// only cache the first page of each category
var pageSize = 50;
if (page > 1)
{
topics = topicService.GetLatestTopicsFiltered(pageSize, page, true, cat, unsolved, noreplies);
}
else
{
var key = "OurForumForum[" + cat + unsolved + noreplies + "]";
topics = (IEnumerable<ReadOnlyTopic>)cache.GetCacheItem(key,
() => topicService.GetLatestTopicsFiltered(pageSize, page, true, cat, unsolved, noreplies).ToArray(),
TimeSpan.FromSeconds(4));
}
var totalCountKey = "OurForumForumThreadCount[" + cat + unsolved + noreplies + "]";
var totalTopics = (int)cache.GetCacheItem(totalCountKey,
() => topicService.GetAllTopicsCount(cat, unsolved, noreplies),
TimeSpan.FromMinutes(1));
var pages = (totalTopics / pageSize) + 1;
var categories = Model.Content.AncestorOrSelf(2);
}
@if (Model.Content.NewTopicsAllowed() == false || Model.Content.AncestorOrSelfIsArchived())
{
var notification = Model.Content.GetPropertyValue<string>("mainNotification");
if (string.IsNullOrWhiteSpace(notification))
{
notification = "This forum is in read only mode, you can no longer create new topics";
}
<div class="alertbar__yellow">
@Html.Raw(notification)
</div>
}
<!-- FORUM HEADER START -->
<div class="utilities">
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = true })
@Html.Partial("~/Views/Partials/Forum/ForumActions.cshtml")
</div>
<div class="forum-settings">
<div class="search-big">
<input type="search" class="forum-search-input" required placeholder="Search for threads">
<label for="search">Search for threads</label>
</div>
<div class="or">or</div>
<div class="sorting">
<select id="selectCategory" data-placeholder="Choose&hellip;">
<option class="category" selected disabled>Filter by category</option>
@if (categories.ContentType.Alias == "Projects")
{
foreach (var tag in CurrentPage.Parent.Children)
{
<option class="@tag.Name.ToLower().Replace(" ", "")" value="@tag.Id" @(CurrentPage.Id == tag.Id ? "selected" : null)>@tag.Name</option>
}
}
else
{
<option class="all" value="@categories.Id">All categories</option>
foreach (var tag in categories.Children)
{
if (tag.ContentType.Alias == "Forum" && tag.IsArchived() == false)
{
<option class="@tag.Name.ToLower().Replace(" ", "")" value="@tag.Id" @(CurrentPage.Id == tag.Id ? "selected" : null)>@tag.Name</option>
}
}
}
</select>
</div>
<div id="search-options" class="search-options">
<label>Filter by</label>
<div class="options">
<label class="checkbox">
<input type="checkbox" name="unsolved" />
<span></span>
<small>show only unsolved topics</small>
</label>
<label class="checkbox">
<input type="checkbox" name="noreplies" />
<span></span>
<small>show only topics with no replies</small>
</label>
</div>
</div>
</div>
<!-- FORUM HEADER END -->
<!-- FORUM TOPICS -->
<div id="overlay" class="overlay"></div>
<!-- FORUM LIST START -->
<section class="forum">
<!-- FORUM LIST HEADER START -->
<div class="forum-head">
<div class="topic">Topic</div>
<div class="category">Category</div>
<div class="posts">Replies</div>
</div>
<!-- FORUM LIST HEADER END -->
<!-- FORUM LIST OF THREADS START -->
<div class="forum-content">
<!-- FORUM THREAD START -->
@foreach (var topic in topics)
{
var forum = Umbraco.TypedContent(topic.ParentId);
if (forum != null)
{
<div class="topic-row @Umbraco.If(topic.Answer > 0, " solved")">
<div class="topic">
<a href="@topic.GetUrl()">
<h3>@topic.Title</h3>
@if (topic.Replies != 0 && !string.IsNullOrEmpty(topic.LastReplyAuthorName))
{
<span title="@string.Format("{0:ddd, dd MMM yyyy} {0:HH:mm:ss} UTC+{1}", topic.Updated, TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now))">last edited by <strong>@topic.LastReplyAuthorName</strong> @topic.Updated.ConvertToRelativeTime()</span>
}
else
{
<span title="@string.Format("{0:ddd, dd MMM yyyy} {0:HH:mm:ss} UTC+{1}", topic.Updated, TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now))">topic created by <strong>@topic.AuthorName</strong> @topic.Updated.ConvertToRelativeTime()</span>
}
</a>
</div>
<div class="category frontend">
<a href="@forum.Url">@(Utils.GetForumName(forum))</a>
</div>
<div class="posts"><small>@topic.Replies</small> <span>replies</span></div>
</div>
}
}
<nav class="pagination" role="navigation">
@if (page > 1)
{
queryString["page"] = (page - 1).ToString();
<a class="prev" href="?@queryString">Prev</a>
<span>&hellip;</span>
}
@for (var i = (page - 1 > 0 ? page - 1 : 1); i < (page + (pagesToShowLeft - (page - 1 > 0 ? 1 : 0))) && i <= pages; i++)
{
queryString["page"] = i.ToString();
<a class="@Umbraco.If(i == page, "active")" href="?@queryString">@i</a>
}
@if (page < pages)
{
queryString["page"] = (page + 1).ToString();
<span>&hellip;</span>
<a class="next" href="?@queryString">Next</a>
}
</nav>
</div>
<div class="forum-conten"></div>
<!-- FORUM LIST OF THREADS START -->
</section>
@using OurUmbraco.Forum.Extensions
@using OurUmbraco.Forum.Library
@using OurUmbraco.Forum.Models
@using OurUmbraco.Forum.Services
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@{
const int pagesToShowLeft = 4;
int page;
if (!int.TryParse(Request["page"], out page))
{
page = 1;
}
bool unsolved;
bool.TryParse(Request["unsolved"], out unsolved);
bool noreplies;
bool.TryParse(Request["noreplies"], out noreplies);
var cat = -1;
if (CurrentPage.Level > 2)
{
cat = CurrentPage.Id;
}
var topicService = new TopicService(ApplicationContext.DatabaseContext);
IEnumerable<ReadOnlyTopic> topics;
var cache = ApplicationContext.Current.ApplicationCache.RuntimeCache;
// only cache the first page of each category
var pageSize = 50;
if (page > 1)
{
topics = topicService.GetLatestTopicsFiltered(pageSize, page, true, cat, unsolved, noreplies);
}
else
{
var key = "OurForumForum[" + cat + unsolved + noreplies + "]";
topics = (IEnumerable<ReadOnlyTopic>)cache.GetCacheItem(key,
() => topicService.GetLatestTopicsFiltered(pageSize, page, true, cat, unsolved, noreplies).ToArray(),
TimeSpan.FromSeconds(4));
}
var totalCountKey = "OurForumForumThreadCount[" + cat + "]";
var totalTopics = (int)cache.GetCacheItem(totalCountKey,
() => topicService.GetAllTopicsCount(cat),
TimeSpan.FromMinutes(1));
var pages = (totalTopics / pageSize) + 1;
var categories = Model.Content.AncestorOrSelf(2);
}
@if (Model.Content.NewTopicsAllowed() == false || Model.Content.AncestorOrSelfIsArchived())
{
var notification = Model.Content.GetPropertyValue<string>("mainNotification");
if (string.IsNullOrWhiteSpace(notification))
{
notification = "This forum is in read only mode, you can no longer create new topics";
}
<div class="alertbar__yellow">
@Html.Raw(notification)
</div>
}
<!-- FORUM HEADER START -->
<div class="utilities">
@Umbraco.RenderMacro("Breadcrumb", new { linktocurrent = "1" })
@Umbraco.RenderMacro("ForumForumActions")
</div>
<div class="forum-settings">
<div class="search-big">
<input type="search" class="forum-search-input" required placeholder="Search for threads">
<label for="search">Search for threads</label>
</div>
<div class="or">or</div>
<div class="sorting">
<select id="selectCategory" data-placeholder="Choose&hellip;">
<option class="category" selected disabled>Filter by category</option>
@if (categories.ContentType.Alias == "Projects")
{
foreach (var tag in CurrentPage.Parent.Children)
{
<option class="@tag.Name.ToLower().Replace(" ", "")" value="@tag.Id" @(CurrentPage.Id == tag.Id ? "selected" : null)>@tag.Name</option>
}
}
else
{
<option class="all" value="@categories.Id">All categories</option>
foreach (var tag in categories.Children)
{
if (tag.ContentType.Alias == "Forum" && tag.IsArchived() == false)
{
<option class="@tag.Name.ToLower().Replace(" ", "")" value="@tag.Id" @(CurrentPage.Id == tag.Id ? "selected" : null)>@tag.Name</option>
}
}
}
</select>
</div>
<div id="search-options" class="search-options">
<label>Filter by</label>
<div class="options">
<label class="checkbox">
<input type="checkbox" name="unsolved" />
<span></span>
<small>show only unsolved topics</small>
</label>
<label class="checkbox">
<input type="checkbox" name="noreplies" />
<span></span>
<small>show only topics with no replies</small>
</label>
</div>
</div>
</div>
<!-- FORUM HEADER END -->
<!-- FORUM TOPICS -->
<div id="overlay" class="overlay"></div>
<!-- FORUM LIST START -->
<section class="forum">
<!-- FORUM LIST HEADER START -->
<div class="forum-head">
<div class="topic">Topic</div>
<div class="category">Category</div>
<div class="posts">Replies</div>
</div>
<!-- FORUM LIST HEADER END -->
<!-- FORUM LIST OF THREADS START -->
<div class="forum-content">
<!-- FORUM THREAD START -->
@foreach (var topic in topics)
{
var forum = Umbraco.TypedContent(topic.ParentId);
if (forum != null)
{
<div class="topic-row @Umbraco.If(topic.Answer > 0, " solved")">
<div class="topic">
<a href="@topic.GetUrl()">
<h3>@topic.Title</h3>
@if (topic.Replies != 0 && !string.IsNullOrEmpty(topic.LastReplyAuthorName))
{
<span title="@string.Format("{0:ddd, dd MMM yyyy} {0:HH:mm:ss} UTC+{1}", topic.Updated, TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now))">last edited by <strong>@topic.LastReplyAuthorName</strong> @topic.Updated.ConvertToRelativeTime()</span>
}
else
{
<span title="@string.Format("{0:ddd, dd MMM yyyy} {0:HH:mm:ss} UTC+{1}", topic.Updated, TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now))">topic created by <strong>@topic.AuthorName</strong> @topic.Updated.ConvertToRelativeTime()</span>
}
</a>
</div>
<div class="category frontend">
<a href="@forum.Url">@(Utils.GetForumName(forum))</a>
</div>
<div class="posts"><small>@topic.Replies</small> <span>replies</span></div>
</div>
}
}
<nav class="pagination" role="navigation">
@if (page > 1)
{
<a class="prev" href="?page=@(page - 1)">Prev</a>
<span>&hellip;</span>
}
@for (var i = (page - 1 > 0 ? page - 1 : 1); i < (page + (pagesToShowLeft - (page - 1 > 0 ? 1 : 0))) && i <= pages; i++)
{
<a class="@Umbraco.If(i == page, "active")" href="?page=@i">@i</a>
}
@if (page < (pages - 3))
{
<span>&hellip;</span>
<a class="next" href="?page=@(page + 1)">Next</a>
}
</nav>
</div>
<div class="forum-conten"></div>
<!-- FORUM LIST OF THREADS START -->
</section>
@@ -1,9 +1,9 @@
@using OurUmbraco.Forum.Extensions
@using OurUmbraco.Forum.Extensions
@using OurUmbraco.NotificationsWeb.Library
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
@inherits Umbraco.Web.Macros.PartialViewMacroPage
<div class="utility-actions">
@if (MemberData != null)
@if (Members.IsLoggedIn())
{
if (Model.Content.AncestorOrSelfIsArchived() == false && Model.Content.NewTopicsAllowed())
{
@@ -12,7 +12,13 @@
</a>
}
var subscribed = Utils.IsSubscribedToForum(CurrentPage.Id, MemberData.Member.Id);
var mem = Members.GetCurrentMember();
var subscribed = false;
if (mem != null)
{
subscribed = Utils.IsSubscribedToForum(CurrentPage.Id, mem.Id);
}
if (subscribed)
{
<a href="#" class="follow button following" data-id="@CurrentPage.Id" data-controller="">
@@ -1,8 +1,9 @@
@using OurUmbraco.Forum.Services
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@{
var topicService = new TopicService(ApplicationContext.Current.DatabaseContext);
var topicService = new TopicService(ApplicationContext.DatabaseContext);
var topics = topicService.GetLatestTopics();
}
@@ -0,0 +1,54 @@
@using OurUmbraco.Forum.Extensions
@using OurUmbraco.Forum.Models
@using OurUmbraco.Forum.Services
@using OurUmbraco.Our
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@{
var ts = new TopicService(ApplicationContext.DatabaseContext);
}
<div class="col-md-12 flex">
@Column(ts.GetLatestTopics(6, 1))
</div>
@helper Column(IEnumerable<ReadOnlyTopic> topics)
{
foreach (var topic in topics.ToArray())
{
var cat = Umbraco.TypedContent(topic.ParentId);
var mem = Members.GetById(topic.LatestReplyAuthor) ?? Members.GetById(topic.MemberId);
<a href="@topic.GetUrl()" class="forum-thread @Umbraco.If(topic.Answer > 0, " solved")">
<div class="avatar">
@if(mem != null)
{
@Html.Raw(Utils.GetMemberAvatar(mem, 100))
}
</div>
<div class="meta">
<div class="forum-thread-text">
<h3>@topic.Title</h3>
<p>
@if (topic.Replies != 0 && !string.IsNullOrEmpty(topic.LastReplyAuthorName))
{
<text>last edited by @topic.LastReplyAuthorName</text>
}
else
{
<text>created by @topic.AuthorName</text>
}
@topic.Updated.ConvertToRelativeTime()
</p>
</div>
<div class="category">
<span class="cat">@cat.Name</span>
</div>
</div>
</a>
}
}
@@ -0,0 +1,163 @@
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@using System.Web.Mvc.Html
@using OurUmbraco.Forum.Extensions
@using OurUmbraco.Forum.Services
@using OurUmbraco.NotificationsWeb.Library
@{
var topicService = new TopicService(ApplicationContext.DatabaseContext);
var topic = topicService.CurrentTopic(this.Context, ApplicationContext.ApplicationCache.RequestCache);
var notification = Model.Content.GetPropertyValue<string>("mainNotification");
if (string.IsNullOrWhiteSpace(notification))
{
notification = "This forum is in read only mode, you can no longer reply";
}
}
<!-- COPY LINK -->
<div id="overlay" class="overlay"></div>
<div id="copy-link-wrapper" class="copy-link-wrapper">
<i class="icon-Link"></i>
<textarea class="getLink" readonly type="text"></textarea>
<p>Press Ctrl / CMD + C to copy this to your clipboard.</p>
</div>
<div id="thankyou">
Copied to clipboard
</div>
<!-- COPY LINK END -->
<!-- DELETE THREAD/COMMENT START -->
@if (Members.IsLoggedIn())
{
<div id="confirm-wrapper" class="confirm-wrapper">
<h4>Are you sure?</h4>
<p>This <span class="type-of"></span> will be gone forever and ever</p>
<br />
<button type="button" class="button green tiny">Yes</button>
<button type="button" class="button red tiny">No</button>
</div>
}
<!-- DELETE THREAD END -->
<!-- FLAG SPAM START -->
<div id="confirm-wrapper-flag" class="confirm-wrapper-flag">
<h4>Flag this post as spam?</h4>
<p>This post will be reported to the moderators as potential spam to be looked at</p>
<br />
<button type="button" class="button green tiny">Yes</button>
<button type="button" class="button red tiny">No</button>
</div>
<!-- FLAG SPAM END -->
@if (topic != null)
{
if (Model.Content.NewTopicsAllowed() == false)
{
<div class="alertbar__yellow" style="margin-bottom: 10px;">
@Html.Raw(notification)
</div>
}
<ul class="comments">
@Html.Partial("forum/question", topic)
@foreach (var comment in topic.Comments.Where(x => x.ParentCommentId == 0))
{
var comm = comment;
Html.RenderPartial("forum/comment", comm, new ViewDataDictionary { { "level", 1 }, { "answer", topic.Answer } });
if (comm.HasChildren)
{
var children = topic.Comments.Where(x => x.ParentCommentId == comm.Id);
foreach (var child in children.Where(c => c.ParentCommentId == comm.Id))
{
Html.RenderPartial("forum/comment", child, new ViewDataDictionary { { "level", 2 }, { "answer", topic.Answer } });
}
}
}
</ul>
if (Members.IsLoggedIn())
{
if (Model.Content.NewTopicsAllowed())
{
<div class="replybutton">
<a href="#" class="button green large reply forum-reply" data-author="@topic.AuthorName" data-topic="@topic.Id" data-controller="comment"><i class="icon-Reply-arrow"></i>&nbsp;Reply to topic</a>
</div>
<div class="utilities">
<div class="utility-actions thread-bottom">
@if (Members.IsLoggedIn())
{
var mem = Members.GetCurrentMember();
var subscribed = false;
if (mem != null)
{
subscribed = Utils.IsSubscribedToForumTopic(topic.Id, mem.Id);
}
if (Members.IsAdmin())
{
<a href="#" class="delete-thread button" data-id="@topic.Id">
<i class="icon-Delete-key"></i><span>Delete thread</span>
</a>
}
if (subscribed)
{
<a href="#" class="follow button following" data-id="@topic.Id" data-controller="topic">
<i class="icon-Bookmark"></i><span>Following</span>
</a>
}
else
{
<a href="#" class="follow button transparent" data-id="@topic.Id" data-controller="topic">
<i class="icon-Bookmark"></i><span>Follow</span>
</a>
}
}
@if (topic.Answer > 0)
{
<a href="#comment-@topic.Answer.ToString()" class="go-to-solution button transparent">
<i class="icon-Check"></i><span>Go to solution</span>
</a>
}
</div>
</div>
}
else
{
<div class="alertbar__yellow">
@Html.Raw(notification)
</div>
}
}
else
{
<div class="replybutton notloggedin">
Please <a href="/member/login?redirectUrl=@(Server.UrlEncode(Request.Url.AbsoluteUri))">Sign in</a> or <a href="/member/signup">register</a> to post replies
</div>
}
}
else
{
<p>This topic no longer exists.</p>
}
<link rel="stylesheet" type="text/css" href="/css/tooltipster.css" />
<script type="text/javascript" src="/scripts/jquery.tooltipster.min.js"></script>
<script type="text/javascript">
$('.highfive-count').tooltipster({
contentAsHTML: true,
interactive: true,
multiple: true
});
</script>
@@ -0,0 +1,50 @@
@using OurUmbraco.Forum.Extensions
@using OurUmbraco.Forum.Services
@using OurUmbraco.NotificationsWeb.Library
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@{
var topicService = new TopicService(ApplicationContext.DatabaseContext);
var topic = topicService.CurrentTopic(this.Context, ApplicationContext.ApplicationCache.RequestCache);
}
<div class="utility-actions">
@if(topic != null)
{
if (Members.IsLoggedIn())
{
var mem = Members.GetCurrentMember();
var subscribed = false;
if (mem != null)
{
subscribed = Utils.IsSubscribedToForumTopic(topic.Id, mem.Id);
}
if (Members.IsAdmin())
{
<a href="#" class="delete-thread button" data-id="@topic.Id">
<i class="icon-Delete-key"></i><span>Delete thread</span>
</a>
}
if (subscribed)
{
<a href="#" class="follow button following" data-id="@topic.Id" data-controller="topic">
<i class="icon-Bookmark"></i><span>Following</span>
</a>
}
else
{
<a href="#" class="follow button transparent" data-id="@topic.Id" data-controller="topic">
<i class="icon-Bookmark"></i><span>Follow</span>
</a>
}
}
if (topic.Answer > 0)
{
<a href="#comment-@topic.Answer.ToString()" class="go-to-solution button transparent">
<i class="icon-Check"></i><span>Go to solution</span>
</a>
}
}
</div>
@@ -1,5 +1,5 @@
@using OurUmbraco.Forum.Extensions
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
@inherits Umbraco.Web.Macros.PartialViewMacroPage
<div class="markdown-spacer"></div>
<div id="markdown-editor" class="markdown-editor">
@@ -101,9 +101,11 @@
</div>
<!-- Mustache template-->
<script id="comment-template" type="x-tmpl-mustache">
<li class="comment {{cssClass}}" data-parent="{{id}}" id="comment-{{id}}">
<li class="comment {{cssClass}}" data-parent="{{id}}" id="comment-{{id}}">
<div class="meta">
<div class="profile">
<a href="/member/{{authorId}}">{{authorName}}</a> has in total {{authorKarma}} karma points
@@ -121,11 +123,14 @@
</div>
<div class="comment-inner">
<a href="/member/{{authorId}}" class="photo">
{{{avatar}}}
</a>
<div class="highfive">
<div class="highfive-count">
0
</div>
@@ -141,6 +146,7 @@
</div>
{{/isSpam}}
{{{body}}}
</div>
</div>
@@ -1,21 +1,28 @@
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
@using System.Drawing
@using OurUmbraco.Our
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@{
var home = Umbraco.TypedContentAtRoot().First();
var notificationText = home.GetPropertyValue<string>("mainNotification");
var showNotification = string.IsNullOrWhiteSpace(notificationText) == false;
Image avatarImage = null;
if (Members.IsLoggedIn())
{
avatarImage = Utils.GetMemberAvatarImage(Members.GetCurrentMember());
}
}
@Html.Action("RenderTerms", "TermsAndConditions", new { showBanner = MemberData != null && MemberData.NewTosAccepted == false })
@Html.Action("RenderTerms", "TermsAndConditions")
@* We'll show it differently on the homepage *@
@* We'll show it differently on the homepage *@
@if (showNotification && Model.Content.Id != home.Id)
{
<div class="alertbar__yellow">
@Html.Raw(notificationText)
</div>
}
@if (Request.Cookies["dismissAvatar"] == null && Model.Content.Id != home.Id && MemberData != null && MemberData.AvatarImageTooSmall)
@if (Request.Cookies["dismissAvatar"] == null && CurrentPage.Id != home.Id && avatarImage != null && (avatarImage.Width < 400 || avatarImage.Height < 400))
{
<div class="notification__blue avatarTooSmall">
<div class="message text-center">
@@ -1,10 +0,0 @@
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@{
if (Members.IsLoggedIn())
{
Response.Redirect("/member/profile");
}
}
@Html.Action("RenderForgotPassword", "Login")
@@ -0,0 +1,18 @@
@using OurUmbraco.Forum.Extensions
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@if(Members.IsLoggedIn()){
var profile = Members.GetCurrentMemberProfileModel();
var member = Members.GetCurrentMember();
if (member != null) {
<script type="text/javascript">
var umb_member_name = '@member.Name';
var umb_member_email = '@profile.Email';
var umb_member_icon = '@member.Avatar()';
</script>
}
}
@@ -1,17 +0,0 @@
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@{
if (Members.IsLoggedIn())
{
if (Model.MacroParameters["NextPage"] != null && string.IsNullOrWhiteSpace(Model.MacroParameters["NextPage"].ToString()) == false)
{
// It's being called from the old package repository, don't redirect
}
else
{
Response.Redirect("/member/profile");
}
}
}
@Html.Action("RenderLogin", "Login")
@@ -1,6 +1,6 @@
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@{
var source = Umbraco.TypedContent(1057);
var source = Umbraco.TypedContent(Model.MacroParameters["source"]);
}
<nav>
@@ -1,4 +1,4 @@
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@using System.Configuration
@using OurUmbraco.Forum.Extensions
@using OurUmbraco.Forum.Services
@@ -17,7 +17,7 @@
}
else
{
var ts = new TopicService(ApplicationContext.DatabaseContext);
var ts = new TopicService(UmbracoContext.Application.DatabaseContext);
var topics = ts.GetLatestTopicsForMember(member.Id);
@@ -30,13 +30,14 @@
{
projects = content.Descendants().Where(c => c.DocumentTypeAlias == "Project").Where(m => m.GetPropertyValue<int>("owner") == member.Id).Where(p => p.GetPropertyValue<bool>("projectLive"));
const string sql = @"SELECT * FROM projectContributors WHERE memberId=@memberId";
var contribPackageIds = ApplicationContext.DatabaseContext.Database.Fetch<int>(sql, new { memberId });
var contribPackageIds = UmbracoContext.Application.DatabaseContext.Database.Fetch<int>(sql, new { memberId });
foreach (var contribPackageId in contribPackageIds)
{
contribProjects.Add(Umbraco.TypedContent(contribPackageId));
}
}
var currentMember = Members.GetCurrentMember();
var reputationCurrent = member.GetPropertyValue<int>("reputationCurrent");
var nodeListingProvider = new NodeListingProvider();
@@ -89,7 +90,7 @@
@if (member.HasValue("company"))
{
<span> works at <span>@member.GetPropertyValue("company")</span></span>
}
}
and has <em class="posts">@member.GetPropertyValue("forumPosts")</em> @if (member.ForumPosts() == 0 || member.ForumPosts() > 1){<text>posts</text>}else{<text>post</text>} and <em class="karma-points">@member.GetPropertyValue("reputationCurrent")</em> <span></span> karma points
</small>
</div>
@@ -238,7 +239,7 @@
</div>
</div>
<!-- .public-member -->
if (MemberData != null && MemberData.IsAdmin)
if (currentMember.IsAdmin())
{
var allTopics = ts.GetLatestTopicsForMember(member.Id, false, 1000);
@@ -269,8 +270,7 @@
</div>
}
<br /><br />
var currentMember = MemberData != null ? MemberData.Member : null;
if (currentMember != null && currentMember.IsHq())
if (currentMember.IsHq())
{
<div style="border: 1px solid red; padding: 4px;">
<p>HQ Tools (also known as "with great power comes great responsibility"):</p><br />
@@ -1,13 +1,29 @@
@inherits OurUmbracoTemplatePage
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@using System.Drawing
@using OurUmbraco.Forum.Extensions
@using OurUmbraco.Our.Models
@{ var profile = MemberData; }
@using OurUmbraco.Forum.Services
@using OurUmbraco.Our
@{
var topicService = new TopicService(ApplicationContext.DatabaseContext);
Image avatarImage = null;
if (Members.IsLoggedIn())
{
avatarImage = Utils.GetMemberAvatarImage(Members.GetCurrentMember());
}
}
<div class="quick-menu">
<div class="container">
<div class="row">
<div class="col-md-12">
@if (profile != null)
@if (Members.IsLoggedIn() && Members.GetCurrentMember() != null)
{
var member = Members.GetCurrentMember();
var roles = member.GetRoles();
var latestTopics = topicService.GetLatestTopicsForMember(member.Id, maxCount: 100);
<div class="close">
<i class="icon-Delete"></i>Close
</div>
@@ -15,47 +31,49 @@
<a href="/member/profile"><i class="icon-Settings"></i>Edit profile</a>
</div>
<div class="user-image">
@Html.Raw(profile.AvatarHtml)
@Html.Raw(Utils.GetMemberAvatar(member, 100))
</div>
<div class="user-profile">
<h2>@profile.Member.Name</h2>
<div class="posts">
@profile.NumberOfForumPosts
@if (profile.NumberOfForumPosts == 0 || profile.NumberOfForumPosts > 1)
<div class="user-profile">
<h2>@member.Name</h2>
<div class="posts">
@member.ForumPosts()
@if (member.ForumPosts() == 0 || member.ForumPosts() > 1)
{
<text>Posts</text>
}
else
{
<text>Post</text>
}
<text>Post</text>
}
</div>
<div class="karma">
@profile.Karma
@member.Karma()
</div>
@if (string.IsNullOrWhiteSpace(profile.TwitterHandle) == false)
@if (member.HasValue("twitter"))
{
var twitterHandle = member.GetPropertyValue<string>("twitter").Replace("@", string.Empty);
<div class="user-twitter">
<a href="https://twitter.com/@profile.TwitterHandle">&commat;<span>@profile.TwitterHandle</span></a>
<a href="https://twitter.com/@twitterHandle">&commat;<span>@twitterHandle</span></a>
</div>
}
@if (profile.Roles.Any())
@if (roles.Any())
{
<span class="roles">
@foreach (var role in profile.Roles)
@foreach (var role in roles)
{
<span class="@role">@role</span>
}
</span>
}
<div class="public-profile">
<a href="/member/@profile.Member.Id">View my public profile</a>
<a href="/member/@member.Id">View my public profile</a>
</div>
@if (profile.IsAdmin)
@if (member.IsAdmin())
{
<div class="public-profile">
<a href="/antispam">Check the spam queue</a>
@@ -66,12 +84,14 @@
</div>
</div>
if (profile.AvatarImageTooSmall)
if (avatarImage != null && (avatarImage.Width < 400 || avatarImage.Height < 400))
{
<div class="user-notifications">
<small>
Your Notifications
</small>
<a href="/member/profile" class="user-notification__green">
<div class="user-notification-text">
<p>Your profile picture is a little on the small side, It would look <strong>much nicer</strong> if you could update it to be larger image.</p>
@@ -81,10 +101,12 @@
}
<div class="user-latest-posts">
<small>
Activity in threads you participated in
</small>
@foreach (var topic in profile.LatestTopics)
@foreach (var topic in latestTopics)
{
var forum = Umbraco.TypedContent(topic.ParentId);
// if forum == null then it's been hidden/unpublished (example: v5 forum)
@@ -106,16 +128,20 @@
@topic.Updated.ConvertToRelativeTime()
</p>
</div>
<div class="category frontend"><span class="cat">@forum.Name</span></div>
</a>
}
}
</div>
}
else
{
<a href="/member/login">Sign in</a> <a href="/member/Signup">Register</a>
}
</div>
</div>
</div>
@@ -0,0 +1,41 @@
@using System.Collections.Specialized
@using System.Drawing
@using OurUmbraco.Our
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@{
@* Get the root of the website *@
var root = CurrentPage.AncestorOrSelf(1);
Image avatarImage = null;
if (Members.IsLoggedIn())
{
avatarImage = Utils.GetMemberAvatarImage(Members.GetCurrentMember());
}
}
<ul>
@foreach (var page in root.Children.Where("Visible"))
{
<li class="@(page.IsAncestorOrSelf(CurrentPage) ? "current" : null)">
<a href="@page.Url">@page.Name</a>
</li>
}
<li>
@if (Members.IsLoggedIn() && Members.GetCurrentMember() != null)
{
var member = Members.GetCurrentMember();
<div class="user">
@Html.Raw(Utils.GetMemberAvatar(member, 75))
@if (avatarImage != null && (avatarImage.Width < 400 || avatarImage.Height < 400))
{
<span class="notificationCount">1</span>
}
</div>
}
else
{
<a href="/member/login?redirectUrl=@(Server.UrlEncode(Request.Url.AbsolutePath))">Sign in</a><strong> / </strong><a href="/member/Signup">Register</a>
}
</li>
</ul>
@@ -0,0 +1,14 @@
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@* Ensure that the Current Page has children, where the property umbracoNaviHide is not True *@
<ul class="level-2">
@* For each child page under the root node, where the property umbracoNaviHide is not True *@
@foreach (var childPage in CurrentPage.ProjectGroups.Where("Visible"))
{
<li>
<h4><a href="?category=@childPage.Name">@childPage.Name</a></h4>
</li>
}
<li><h4><a href="?category=uaas">Umbraco Cloud</a></h4></li>
</ul>
@@ -1,8 +1,10 @@
@using Examine.SearchCriteria
@using OurUmbraco.Our
@using Umbraco.Core.Cache
@using OurUmbraco.Our.Examine
@using OurUmbraco.Project
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
@using OurUmbraco.Project.Services
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@{
//This is the main Our project search
@@ -55,6 +57,7 @@
var toVersion = new Version(parsedVersion.Major, 999, 999).GetNumericalValue();
var versionFilters = new SearchFilters(BooleanOperation.Or);
versionFilters.Filters.Add(new RangeSearchFilter("num_version", fromVersion, toVersion));
versionFilters.Filters.Add(new RangeSearchFilter("num_compatVersions", fromVersion, toVersion));
filters.Add(versionFilters);
}
}
@@ -185,9 +188,7 @@
defaultScreenshot = childContent.GetPropertyValue("defaultScreenshotPath", false, "/css/img/package2.png");
}
}
<img src="@Utils.GetScreenshotPath(defaultScreenshot)?bgcolor=fff&width=50&height=50&format=png"
srcset="@Utils.GetScreenshotPath(defaultScreenshot)?bgcolor=fff&width=100&height=100&format=png 2x,
@Utils.GetScreenshotPath(defaultScreenshot)?bgcolor=fff&width=150&height=150&format=png 3x" />
<img src="@Utils.GetScreenshotPath(defaultScreenshot)?bgcolor=fff&width=50&height=50&format=png" />
</div>
<div class="col-xs-10 col-md-6">
<div class="forum-thread-text">
@@ -1,16 +0,0 @@
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@{
var m = Members.GetCurrentMember();
var reputation = m.GetPropertyValue<string>("reputationTotal");
int reputationTotal;
var enoughReputation = int.TryParse(reputation, out reputationTotal) && reputationTotal > 30;
}
@if (enoughReputation)
{
@Html.Action("RenderMyProjects", "Projects")
}
else
{
<h2>Sorry, your account is too new to create projects! If you're human, make sure to <a href="https://umbraco.com/about-us/team">get in touch with us</a> to get this restriction lifted.</h2>
}
@@ -1,10 +1,9 @@
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@using OurUmbraco.Forum.Extensions
@using OurUmbraco.Our
@using OurUmbraco.Project
@using OurUmbraco.Project.Services
@using OurUmbraco.Wiki.BusinessLogic
@using System.Text.RegularExpressions;
@{
var project = Model.Content;
@@ -39,7 +38,6 @@
var cs = new ContributionService(ApplicationContext.Current.DatabaseContext);
var contributors = cs.GetContributors(project.Id).ToList();
var nuGetPackageUrl = project.GetPropertyValue<string>("nuGetPackageUrl");
var sourceUrl = project.GetPropertyValue<string>("sourceUrl");
var websiteUrl = project.GetPropertyValue<string>("websiteUrl");
var demoUrl = project.GetPropertyValue<string>("demoUrl");
@@ -81,7 +79,7 @@
@foreach (var image in screenshots)
{
<a class="fancybox" data-fancybox="package-gallery" href="@Utils.GetScreenshotPath(image.Path)" title="">
<a class="fancybox" rel="gallery1" href="@Utils.GetScreenshotPath(image.Path)" title="">
<img src="@Utils.GetScreenshotPath(image.Path)?bgcolor=fff&height=154&width=281&format=png" alt=""/>
</a>
}
@@ -236,7 +234,7 @@
<a href="@forum.Url" class="forum-thread">
<div class="row">
<div class="col-xs-12 col-md-12">
<div class="col-xs-10 col-md-0">
<div class="forum-thread-text">
<h3>@forum.Name</h3>
<p>@forum.forumDescription</p>
@@ -257,42 +255,14 @@
<div class="col-md-4 col-md-offset-1">
<div class="package-detail-sidebar">
<div class="package-download">
@if (currentRelease != null)
{
<a href="/FileDownload?id=@currentRelease.Id" class="button green" onclick="ga('PackageMaker.send', 'pageview', window.location.pathname + '/virtual/download/package-files/@(currentRelease.Name.Replace("'", ""))')"><i class="icon-Download-alt"></i>&nbsp;Download package<br/><small>version @project.GetPropertyValue("version")</small></a>
}
else
{
<div class="button green">No current release</div>
}
@if (!string.IsNullOrEmpty(nuGetPackageUrl))
{
Regex regex = new Regex(@"^(http|https)://", RegexOptions.IgnoreCase);
if (!regex.Match(nuGetPackageUrl).Success)
{
nuGetPackageUrl = "http://" + nuGetPackageUrl;
}
var nuGetPackageUri = new Uri(nuGetPackageUrl);
string nuGetPackageCmd = string.Empty;
if (nuGetPackageUri.Segments.Length >= 2)
{
nuGetPackageCmd = nuGetPackageUri.Segments[2].Trim("/");
}
if (!string.IsNullOrEmpty(nuGetPackageCmd))
{
<p class="small">or, install via <a href="@nuGetPackageUrl">nuget</a></p>
<span class="pm-nuget">
<input class="pre nuget" value="Install-Package @nuGetPackageCmd" readonly>
</span>
}
}
</div>
@if (currentRelease != null)
{
<a href="/FileDownload?id=@currentRelease.Id" class="button green" onclick="ga('PackageMaker.send', 'pageview', window.location.pathname + '/virtual/download/package-files/@(currentRelease.Name.Replace("'", ""))')"><i class="icon-Download-alt"></i>&nbsp;Download package<br/><small>version @project.GetPropertyValue("version")</small></a>
}
else
{
<div class="button green">No current release</div>
}
<div class="package-creator">
<h3>Project owner</h3>
@@ -311,7 +281,7 @@
@if (currentMember != null && (currentMember.Id == owner.Id || contributors.Any(c => c.MemberId == currentMember.Id)))
{
<br/><br/>
<a href="/member/profile/projects/details?projectId=@project.Id">Edit project</a>
<a href="/member/profile/projects/edit?id=@project.Id">Edit project</a>
}
</div>
</div>
@@ -1,5 +1,5 @@
@using OurUmbraco.Release
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@{
var sortedVersions = new Dictionary<Version, IPublishedContent>();
@@ -1,295 +1,295 @@
@using OurUmbraco.Release
@using OurUmbraco.Release.Models
@using Version = System.Version
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
@{
var notesOnly = Request.QueryString["notes"] != null;
Version fromVersion;
Version toVersion;
Version.TryParse(Request.QueryString["from"], out fromVersion);
Version.TryParse(Request.QueryString["to"], out toVersion);
// If there's values in the POST (from the form) then those overrule the values in the querystring
if (Request.Form["from"] != null && Request.Form["to"] != null)
{
Version.TryParse(Request.Form["from"], out fromVersion);
Version.TryParse(Request.Form["to"], out toVersion);
}
var sortedVersions = new Dictionary<Version, IPublishedContent>();
var selectedVersions = new Dictionary<Version, IPublishedContent>();
foreach (var release in Model.Content.Parent.Children.Where(x => x.GetPropertyValue<string>("releaseStatus") != "Planning"
&& x.GetPropertyValue<string>("releaseStatus") != "Unreleased"
&& string.IsNullOrWhiteSpace(x.GetPropertyValue<string>("releaseStatus")) == false))
{
try
{
sortedVersions.Add(new Version(release.Name), release);
}
catch (Exception ex)
{
<span style="display: none">Couldn't add version @release.Name</span>
}
}
var majorVersionGroups = sortedVersions.GroupBy(x => x.Key.Major).OrderByDescending(x => x.Key);
var allVersions = new Versions();
var youTrackVersions = allVersions.GetAggregateVersionsFromFile();
var newFeatures = 0;
var breakingChanges = 0;
var issuesTasks = 0;
var newFeatureList = new List<AggregateView>();
var breakingList = new List<AggregateView>();
var issueList = new List<AggregateView>();
if (fromVersion != null && toVersion != null && toVersion <= fromVersion)
{
<p class="error">Can't compare versions that are equal to each other or where the "to" is lower than the "from".</p>
}
// Reset to show the compare between the previous version and the newest available version
if ((fromVersion == null && toVersion == null) || (toVersion <= fromVersion))
{
toVersion = sortedVersions.Last().Key;
fromVersion = sortedVersions.Skip(sortedVersions.Count - 2).First().Key;
}
<form name="compare" method="post">
<div class="row">
<div class="col-xs-6 col-sm-4">
<div class="row">
<div class="col-sm-3 titles">From:</div>
<div class="col-sm-9">
<select name="from">
@foreach (var majorVersion in majorVersionGroups)
{
var versions = majorVersion.OrderByDescending(x => x.Key);
<optgroup label="@majorVersion.Key">
@foreach (var version in versions)
{
if (fromVersion != null && version.Key.ToString() == fromVersion.ToString())
{
<option name="@version.Key" selected="selected" value="@version.Key">@version.Key</option>
}
else
{
<option name="@version.Key" value="@version.Key">@version.Key</option>
}
}
</optgroup>
}
</select>
</div>
</div>
</div>
<div class="col-xs-6 col-sm-4">
<div class="row">
<div class="col-sm-3 titles">To:</div>
<div class="col-sm-9">
<select name="to">
@foreach (var majorVersion in majorVersionGroups)
{
var versions = majorVersion.OrderByDescending(x => x.Key);
<optgroup label="@majorVersion.Key">
@foreach (var version in versions)
{
if (version.Key.ToString() == toVersion.ToString())
{
<option name="@version.Key" selected="selected" value="@version.Key">@version.Key</option>
}
else
{
<option name="@version.Key" value="@version.Key">@version.Key</option>
}
}
</optgroup>
}
</select>
</div>
</div>
</div>
<div class="col-xs-12 col-sm-4">
<div class="row">
<div class="col-xs-12">
<input type="submit" value="Compare" class="button" />
</div>
</div>
</div>
</div>
</form>
<br />
if (fromVersion != null && toVersion != null && fromVersion < toVersion)
{
foreach (var release in sortedVersions.Where(release => release.Key != fromVersion && (release.Key >= fromVersion) && (release.Key <= toVersion)))
{
selectedVersions.Add(release.Key, release.Value);
}
foreach (var version in selectedVersions.OrderByDescending(x => x.Key))
{
var release = youTrackVersions.FirstOrDefault(x => x.version == version.Key.ToString());
if (release == null)
{
continue;
}
var newFeatureIssues = release.issues.Where(x => x.type.ToLowerInvariant().Contains("feature")).ToList();
newFeatureList.Add(new AggregateView { version = version.Key.ToString(), issues = newFeatureIssues });
newFeatures += newFeatureIssues.Count;
var breakingIssues = release.issues.Where(x => x.breaking).ToList();
breakingList.Add(new AggregateView { version = version.Key.ToString(), issues = breakingIssues });
breakingChanges += breakingIssues.Count;
var issueIssues = release.issues.Where(x => x.breaking == false && x.type.ToLowerInvariant().Contains("feature") == false).ToList();
issueList.Add(new AggregateView { version = version.Key.ToString(), issues = issueIssues });
issuesTasks += issueIssues.Count;
}
<div class="row">
<div class="col-sm-12 explain">
<div class="row">
<div class="col-xs-12 col-sm-4">
<div class="dot big progress">
<div class="chart" data-percent="100">
<p>@newFeatures</p>
</div>
</div>
<div class="chartDesc">
<h3><a href="#newFeatures">New Features</a></h3>
</div>
</div>
<div class="col-xs-12 col-sm-4">
<div class="dot big progress">
<div class="chart" data-percent="100">
<p>@breakingChanges</p>
</div>
</div>
<div class="chartDesc">
<h3><a href="#breakingChanges">Breaking Changes</a></h3>
</div>
</div>
<div class="col-xs-12 col-sm-4">
<div class="dot big progress">
<div class="chart" data-percent="100">
<p>@issuesTasks</p>
</div>
</div>
<div class="chartDesc">
<h3><a href="#issuesTasks">Issues & Tasks</a></h3>
</div>
</div>
</div>
</div>
<div class="col-sm-12 statuses">
@if (notesOnly == false)
{
if (newFeatures > 0)
{
<div id="newFeatures" class="status features">
<h2>New Features</h2>
@foreach (var release in newFeatureList.Where(x => x.issues.Any()))
{
<h3>Features released in version @release.version</h3>
foreach (var issue in release.issues)
{
<ul>
<li class="@issue.StateIcon()" title="@issue.state">
<a href="http://issues.umbraco.org/issue/@(issue.id)" target="_blank">@issue.id - @issue.title</a>
</li>
</ul>
}
}
</div>
}
if (breakingChanges > 0)
{
<div id="breakingChanges" class="status breaking">
<h2>Breaking Changes</h2>
@foreach (var release in breakingList.Where(x => x.issues.Any()))
{
<h3>Breaking changes in version @release.version</h3>
foreach (var issue in release.issues)
{
<ul>
<li class="@issue.StateIcon()" title="@issue.state">
<a href="http://issues.umbraco.org/issue/@(issue.id)" target="_blank">@issue.id - @issue.title</a>
</li>
</ul>
}
}
</div>
}
if (issuesTasks > 0)
{
<div id="issuesTasks" class="status issues">
<h2>Issues & Tasks</h2>
@foreach (var release in issueList.Where(x => x.issues.Any()))
{
<h3>Issues & Tasks fixed in version @release.version</h3>
foreach (var issue in release.issues)
{
<ul>
<li class="@issue.StateIcon()" title="@issue.state">
<a href="http://issues.umbraco.org/issue/@(issue.id)" target="_blank">@issue.id - @issue.title</a>
</li>
</ul>
}
}
</div>
}
}
<div id="issuesTasks" class="status issues">
<h2>Release Notes</h2>
@if (notesOnly)
{
<p>
What follows is a list of release notes, <a href="@RemoveQueryStringByKey(Request.Url.OriginalString, "notes")" style="text-decoration: underline">want to see the list of related issues?</a>
</p>
}
@foreach (var version in selectedVersions.OrderByDescending(x => x.Key))
{
<h2>Notes for version @version.Key</h2>
@Html.Raw(version.Value.GetPropertyValue<string>("bodyText"))
}
</div>
</div>
</div>
}
}
@functions {
public static string RemoveQueryStringByKey(string url, string key)
{
var uri = new Uri(url);
// this gets all the query string key value pairs as a collection
var newQueryString = HttpUtility.ParseQueryString(uri.Query);
// this removes the key if exists
newQueryString.Remove(key);
// this gets the page path from root without QueryString
string pagePathWithoutQueryString = uri.GetLeftPart(UriPartial.Path);
return newQueryString.Count > 0
? String.Format("{0}?{1}", pagePathWithoutQueryString, newQueryString)
: pagePathWithoutQueryString;
}
@using OurUmbraco.Release
@using OurUmbraco.Release.Models
@using Version = System.Version
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@{
var notesOnly = Request.QueryString["notes"] != null;
Version fromVersion;
Version toVersion;
Version.TryParse(Request.QueryString["from"], out fromVersion);
Version.TryParse(Request.QueryString["to"], out toVersion);
// If there's values in the POST (from the form) then those overrule the values in the querystring
if (Request.Form["from"] != null && Request.Form["to"] != null)
{
Version.TryParse(Request.Form["from"], out fromVersion);
Version.TryParse(Request.Form["to"], out toVersion);
}
var sortedVersions = new Dictionary<Version, IPublishedContent>();
var selectedVersions = new Dictionary<Version, IPublishedContent>();
foreach (var release in Model.Content.Parent.Children.Where(x => x.GetPropertyValue<string>("releaseStatus") != "Planning"
&& x.GetPropertyValue<string>("releaseStatus") != "Unreleased"
&& string.IsNullOrWhiteSpace(x.GetPropertyValue<string>("releaseStatus")) == false))
{
try
{
sortedVersions.Add(new Version(release.Name), release);
}
catch (Exception ex)
{
<span style="display: none">Couldn't add version @release.Name</span>
}
}
var majorVersionGroups = sortedVersions.GroupBy(x => x.Key.Major).OrderByDescending(x => x.Key);
var allVersions = new Versions();
var youTrackVersions = allVersions.GetAggregateVersionsFromFile();
var newFeatures = 0;
var breakingChanges = 0;
var issuesTasks = 0;
var newFeatureList = new List<AggregateView>();
var breakingList = new List<AggregateView>();
var issueList = new List<AggregateView>();
if (fromVersion != null && toVersion != null && toVersion <= fromVersion)
{
<p class="error">Can't compare versions that are equal to each other or where the "to" is lower than the "from".</p>
}
// Reset to show the compare between the previous version and the newest available version
if ((fromVersion == null && toVersion == null) || (toVersion <= fromVersion))
{
toVersion = sortedVersions.Last().Key;
fromVersion = sortedVersions.Skip(sortedVersions.Count - 2).First().Key;
}
<form name="compare" method="post">
<div class="row">
<div class="col-xs-6 col-sm-4">
<div class="row">
<div class="col-sm-3 titles">From:</div>
<div class="col-sm-9">
<select name="from">
@foreach (var majorVersion in majorVersionGroups)
{
var versions = majorVersion.OrderByDescending(x => x.Key);
<optgroup label="@majorVersion.Key">
@foreach (var version in versions)
{
if (version.Key.ToString() == fromVersion.ToString())
{
<option name="@version.Key" selected="selected" value="@version.Key">@version.Key</option>
}
else
{
<option name="@version.Key" value="@version.Key">@version.Key</option>
}
}
</optgroup>
}
</select>
</div>
</div>
</div>
<div class="col-xs-6 col-sm-4">
<div class="row">
<div class="col-sm-3 titles">To:</div>
<div class="col-sm-9">
<select name="to">
@foreach (var majorVersion in majorVersionGroups)
{
var versions = majorVersion.OrderByDescending(x => x.Key);
<optgroup label="@majorVersion.Key">
@foreach (var version in versions)
{
if (version.Key.ToString() == toVersion.ToString())
{
<option name="@version.Key" selected="selected" value="@version.Key">@version.Key</option>
}
else
{
<option name="@version.Key" value="@version.Key">@version.Key</option>
}
}
</optgroup>
}
</select>
</div>
</div>
</div>
<div class="col-xs-12 col-sm-4">
<div class="row">
<div class="col-xs-12">
<input type="submit" value="Compare" class="button" />
</div>
</div>
</div>
</div>
</form>
<br />
if (fromVersion != null && toVersion != null && fromVersion < toVersion)
{
foreach (var release in sortedVersions.Where(release => release.Key != fromVersion && (release.Key >= fromVersion) && (release.Key <= toVersion)))
{
selectedVersions.Add(release.Key, release.Value);
}
foreach (var version in selectedVersions.OrderByDescending(x => x.Key))
{
var release = youTrackVersions.FirstOrDefault(x => x.version == version.Key.ToString());
if (release == null)
{
continue;
}
var newFeatureIssues = release.issues.Where(x => x.type.ToLowerInvariant().Contains("feature")).ToList();
newFeatureList.Add(new AggregateView { version = version.Key.ToString(), issues = newFeatureIssues });
newFeatures += newFeatureIssues.Count;
var breakingIssues = release.issues.Where(x => x.breaking).ToList();
breakingList.Add(new AggregateView { version = version.Key.ToString(), issues = breakingIssues });
breakingChanges += breakingIssues.Count;
var issueIssues = release.issues.Where(x => x.breaking == false && x.type.ToLowerInvariant().Contains("feature") == false).ToList();
issueList.Add(new AggregateView { version = version.Key.ToString(), issues = issueIssues });
issuesTasks += issueIssues.Count;
}
<div class="row">
<div class="col-sm-12 explain">
<div class="row">
<div class="col-xs-12 col-sm-4">
<div class="dot big progress">
<div class="chart" data-percent="100">
<p>@newFeatures</p>
</div>
</div>
<div class="chartDesc">
<h3><a href="#newFeatures">New Features</a></h3>
</div>
</div>
<div class="col-xs-12 col-sm-4">
<div class="dot big progress">
<div class="chart" data-percent="100">
<p>@breakingChanges</p>
</div>
</div>
<div class="chartDesc">
<h3><a href="#breakingChanges">Breaking Changes</a></h3>
</div>
</div>
<div class="col-xs-12 col-sm-4">
<div class="dot big progress">
<div class="chart" data-percent="100">
<p>@issuesTasks</p>
</div>
</div>
<div class="chartDesc">
<h3><a href="#issuesTasks">Issues & Tasks</a></h3>
</div>
</div>
</div>
</div>
<div class="col-sm-12 statuses">
@if (notesOnly == false)
{
if (newFeatures > 0)
{
<div id="newFeatures" class="status features">
<h2>New Features</h2>
@foreach (var release in newFeatureList.Where(x => x.issues.Any()))
{
<h3>Features released in version @release.version</h3>
foreach (var issue in release.issues)
{
<ul>
<li class="@issue.StateIcon()" title="@issue.state">
<a href="http://issues.umbraco.org/issue/@(issue.id)" target="_blank">@issue.id - @issue.title</a>
</li>
</ul>
}
}
</div>
}
if (breakingChanges > 0)
{
<div id="breakingChanges" class="status breaking">
<h2>Breaking Changes</h2>
@foreach (var release in breakingList.Where(x => x.issues.Any()))
{
<h3>Breaking changes in version @release.version</h3>
foreach (var issue in release.issues)
{
<ul>
<li class="@issue.StateIcon()" title="@issue.state">
<a href="http://issues.umbraco.org/issue/@(issue.id)" target="_blank">@issue.id - @issue.title</a>
</li>
</ul>
}
}
</div>
}
if (issuesTasks > 0)
{
<div id="issuesTasks" class="status issues">
<h2>Issues & Tasks</h2>
@foreach (var release in issueList.Where(x => x.issues.Any()))
{
<h3>Issues & Tasks fixed in version @release.version</h3>
foreach (var issue in release.issues)
{
<ul>
<li class="@issue.StateIcon()" title="@issue.state">
<a href="http://issues.umbraco.org/issue/@(issue.id)" target="_blank">@issue.id - @issue.title</a>
</li>
</ul>
}
}
</div>
}
}
<div id="issuesTasks" class="status issues">
<h2>Release Notes</h2>
@if (notesOnly)
{
<p>
What follows is a list of release notes, <a href="@RemoveQueryStringByKey(Request.Url.OriginalString, "notes")" style="text-decoration: underline">want to see the list of related issues?</a>
</p>
}
@foreach (var version in selectedVersions.OrderByDescending(x => x.Key))
{
<h2>Notes for version @version.Key</h2>
@Html.Raw(version.Value.GetPropertyValue<string>("bodyText"))
}
</div>
</div>
</div>
}
}
@functions {
public static string RemoveQueryStringByKey(string url, string key)
{
var uri = new Uri(url);
// this gets all the query string key value pairs as a collection
var newQueryString = HttpUtility.ParseQueryString(uri.Query);
// this removes the key if exists
newQueryString.Remove(key);
// this gets the page path from root without QueryString
string pagePathWithoutQueryString = uri.GetLeftPart(UriPartial.Path);
return newQueryString.Count > 0
? String.Format("{0}?{1}", pagePathWithoutQueryString, newQueryString)
: pagePathWithoutQueryString;
}
}
@@ -9,7 +9,7 @@
int forumId;
// For some reason the Request.Url will show that this URL looks like: /rss/forum/?id=?id=103196
// This means that Request.QueryString["id"] results in ",1929". Removing the comma helps...
if (int.TryParse(Request.QueryString["id"].Replace(",", string.Empty), out forumId) == false)
if (int.TryParse(Model.MacroParameters["forumId"].ToString().Replace(",", string.Empty), out forumId) == false)
{
return;
}
@@ -7,7 +7,10 @@
var selfUrl = string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Host, Request.Url.PathAndQuery);
var home = Model.Content.AncestorOrSelf(1);
var projectsRoot = home.Children.First(x => x.ContentType.Alias == "Projects");
var projects = projectsRoot.Descendants("Project").OrderByDescending(x => x.UpdateDate).Where(x => x.GetPropertyValue<bool>("projectLive")).Take(20);
var orderByUpdated = Model.MacroParameters["updated"].ToString() == "1";
var projects = orderByUpdated
? projectsRoot.Descendants("Project").OrderByDescending(x => x.UpdateDate).Where(x => x.GetPropertyValue<bool>("projectLive")).Take(20)
: projectsRoot.Descendants("Project").OrderByDescending(x => x.CreateDate).Where(x => x.GetPropertyValue<bool>("projectLive")).Take(20);
}<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
@@ -9,7 +9,7 @@
int memberId;
// For some reason the Request.Url will show that this URL looks like: /rss/forum/?id=?id=103196
// This means that Request.QueryString["id"] results in ",1929". Removing the comma helps...
if (int.TryParse(Request.QueryString["id"].Replace(",", string.Empty), out memberId) == false)
if (int.TryParse(Model.MacroParameters["memberId"].ToString().Replace(",", string.Empty), out memberId) == false)
{
return;
}
@@ -9,7 +9,7 @@
int topicId;
// For some reason the Request.Url will show that this URL looks like: /rss/forum/?id=?id=103196
// This means that Request.QueryString["id"] results in ",1929". Removing the comma helps...
if (int.TryParse(Request.QueryString["id"].Replace(",", string.Empty), out topicId) == false)
if (int.TryParse(Model.MacroParameters["topicId"].ToString().Replace(",", string.Empty), out topicId) == false)
{
return;
}
-186
View File
@@ -1,186 +0,0 @@
@using ClientDependency.Core.Mvc
@using Umbraco.Core.Configuration
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
@{
Layout = null;
var model = UmbracoContext.Current.PublishedContentRequest.PublishedContent;
var bodyCss =
model.Level > 2 && model.AncestorOrSelf(3).Id == 1057
? "profile has-sidebar"
: model.DocumentTypeAlias.ToLower().Replace(" ", "-") + "-page";
var memberIsBlocked = MemberData != null && MemberData.IsBlocked;
Html.RequiresCss("~/assets/css/style.min.css", 0);
Html.RequiresCss("https://fonts.googleapis.com/css?family=Asap:400,700,400italic,700italic", 0);
Html.RequiresCss("https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.1.20/jquery.fancybox.min.css", 0);
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.13.1/jquery.validate.min.js");
Html.RequiresJs("https://ajax.aspnetcdn.com/ajax/mvc/4.0/jquery.validate.unobtrusive.min.js");
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/pagedown/1.0/Markdown.Converter.js");
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/pagedown/1.0/Markdown.Editor.js");
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/pagedown/1.0/Markdown.Sanitizer.js");
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/mustache.js/0.8.1/mustache.min.js");
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.1.20/jquery.fancybox.min.js");
Html.RequiresJs("~/assets/js/jquery.ajaxfileupload.js");
Html.RequiresJs("~/assets/js/jquery.scrolly.js");
Html.RequiresJs("~/assets/js/lodash.min.js");
Html.RequiresJs("~/assets/js/community.js");
Html.RequiresJs("~/assets/js/app.min.js");
Html.RequiresJs("~/assets/js/editor.min.js");
}<!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">
<link rel="alternate" type="application/rss+xml" title="Latest packages" href="//our.umbraco.org/rss/projects" />
<link rel="alternate" type="application/rss+xml" title="Package updates" href="//our.umbraco.org/rss/projectsupdate" />
<link rel="alternate" type="application/rss+xml" title="Active forum topics" href="//our.umbraco.org/rss/activetopics" />
<link rel="alternate" type="application/rss+xml" title="Community blogs" href="//pipes.yahoo.com/pipes/pipe.run?_id=8llM7pvk3RGFfPy4pgt1Yg&_render=rss" />
<link rel="search" type="application/opensearchdescription+xml" title="our.umbraco.org" href="/scripts/OpenSearch.xml">
<!-- Application name -->
<meta name="application-name" content="Our Umbraco" />
<meta name="apple-mobile-web-app-title" content="Our Umbraco">
<!-- Icons -->
<link rel="apple-touch-icon-precomposed" href="/assets/images/app-icons/icon-60.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="/assets/images/app-icons/icon-72.png">
<link rel="apple-touch-icon-precomposed" sizes="76x76" href="/assets/images/app-icons/icon-76.png">
<link rel="icon" sizes="192x192" href="/assets/images/app-icons/touch-icon-192x192.png">
<meta name="msapplication-TileImage" content="/assets/images/app-icons/tile.png" />
<meta name="msapplication-config" content="/assets/images/app-icons/browserconfig.xml">
<link rel="icon" type="image/png" href="/assets/images/app-icons/favicon.png">
<title>
@{
var title = string.Empty;
var navigationTitle = HttpContext.Current.Items["topicTitle"];
if (navigationTitle != null)
{
title = navigationTitle.ToString();
}
if (string.IsNullOrWhiteSpace(title) == false)
{
<text>@title - </text>
}
}
@Model.Content.Name - our.umbraco.org
</title>
<meta name="description" content="">
<meta name="author" content="">
<!--[if lt IE 9]>
<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.7.1/modernizr.min.js"></script>
<![endif]-->
<script type="text/javascript" src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
@Html.Partial("~/Views/Partials/Community/JsValues.cshtml")
@Html.RenderCssHere()
@RenderSection("HeadCssScripts", false)
<script>
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date(); a = s.createElement(o),
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-120590-4', 'auto');
ga('send', 'pageview');
</script>
</head>
<body class="@bodyCss">
@Html.Partial("~/Views/Partials/Members/QuickMenu.cshtml")
<div class="wrapper">
<header>
<div class="navigation">
<div class="container">
<div class="row">
<div class="col-md-3">
<a class="logo" href="/">Our Umbraco</a>
</div>
<div id="toggle" class="menu-toggle">
<a href="#" class="toggle cross"><span></span></a>
</div>
<nav class="col-md-9">
@Html.Partial("~/Views/Partials/Navigation/TopNavigation.cshtml")
</nav>
</div>
</div>
</div>
</header>
@{
if (memberIsBlocked == false)
{
@Html.Partial("~/Views/Partials/Global/AlertBar.cshtml")
@RenderSection("Search", false)
@RenderBody()
}
else
{
<section class="forum">
<div class="container">
<div class="row">
<div class="col-md-12">
<h1 class="text-center">Computer says no</h1>
<p>Unfortunaly, it seems that your account has been blocked.</p>
</div>
</div>
</div>
</section>
}
}
<footer>
<div class="container">
<div class="row">
<div class="col-xs-12">
Our.umbraco.org is the community mothership for Umbraco, the open source asp.net cms. With a friendly forum for all your questions, a comprehensive documentation and a ton of packages from the community.
@if (HttpContext.Current != null && HttpContext.Current.Request.UserAgent != null && HttpContext.Current.Request.UserAgent.ToLower().Contains("googlebot"))
{
<text>This site is running Umbraco.</text>
}
else
{
<text>This site is running</text> <data id="umbraco-version" value="@UmbracoVersion.GetSemanticVersion()">Umbraco version @UmbracoVersion.GetSemanticVersion()</data>
}
</div>
</div>
</div>
</footer>
</div>
<!--.wrapper-->
@Html.RenderJsHere()
<script type="text/javascript">
classOnScroll('header', 'sticky', 10);
</script>
@RenderSection("EndScripts", false)
</body>
</html>
@@ -1,190 +0,0 @@
@using OurUmbraco.Our.Models
@using Skybrud.Social.Meetup.Models.Events
@inherits OurUmbracoTemplatePage
@{
var homeNotificationText = Model.Content.GetPropertyValue<string>("homeOnlyBanner");
var showHomeNotification = string.IsNullOrWhiteSpace(homeNotificationText) == false;
var globalNotificationText = Model.Content.GetPropertyValue<string>("mainNotification");
var showGlobalNotification = string.IsNullOrWhiteSpace(globalNotificationText) == false;
}
<!-- Search start -->
<section id="search-all" class="search-all">
<div class="search-all-form">
<div class="search-fieldset">
<input class="search-input" type="search" placeholder="Search..">
<input class="search-submit" type="submit" value="&#xe085;">
</div>
<span class="search-all-close"></span>
</div>
<div class="search-all-results equalizer">
<ul></ul>
</div>
@if (MemberData == null)
{
<div class="search-text">
<div class="container">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<strong>The friendliest CMS community on the planet</strong>
<p>our.umbraco.org is the central hub for the friendly umbraco community. Search for documentation, get help and guidance from seasoned experts, download and collaborate on plugins and extensions.</p>
</div>
</div>
</div>
</div>
}
</section>
<!-- Search end -->
<style>
.bannertext p {
line-height: 1.4rem;
}
</style>
@if (showGlobalNotification)
{
<div class="alertbar__yellow">
@Html.Raw(globalNotificationText)
</div>
}
@if (showHomeNotification)
{
@Html.Raw(homeNotificationText)
}
@if (Members.IsLoggedIn())
{
@ForumActivity()
@Meetups()
@GitHubContributors()
@TwitterSearch()
@Html.Partial("home/documentation")
}
else
{
@Html.Partial("home/documentation")
@ForumActivity()
@Meetups()
@GitHubContributors()
@TwitterSearch()
}
@helper ForumActivity()
{
<section class="forum">
<div class="container">
<div class="row">
<div class="col-md-12">
<h1 class="text-center">Forum Activity</h1>
<p>
Recent activity in the forums, where people are helping each other with current problems.
</p>
</div>
<div class="col-md-12">
<small>Recent posts</small>
</div>
<div class="col-md-12 flex" id="forum-activity">
<h2>Loading latest forum activity...</h2>
</div>
<div class="col-md-12 goto-forum">
<a class="button green" href="/forum">Go to Forum &rarr;</a>
</div>
</div>
</div>
</section>
}
@helper TwitterSearch()
{
<section class="forum">
<div class="container">
<div class="row">
<div class="col-md-12">
<h1 class="text-center">Twitter Activity</h1>
<p>
Recent activity on twitter, where people are talking about Umbraco.
</p>
</div>
<div class="col-md-12">
<small>Recent tweets</small>
</div>
<div class="col-md-12 flex" id="twitter-search">
<h2>Loading twitter search results...</h2>
</div>
<div class="col-md-12 goto-forum">
<a class="button green" href="https://twitter.com/search?f=tweets&vertical=default&q=umbraco&src=typd">Join the conversation on Twitter &rarr;</a>
</div>
</div>
</div>
</section>
}
@helper GitHubContributors()
{
<section class="github-contributors forum">
<div class="container">
<div class="row">
<div class="col-md-12">
<h1 class="text-center">GitHub Contributions</h1>
<p>
<small class="link-list">
Contributions to default branches for
<a href="https://github.com/umbraco/Umbraco-CMS" target="_blank" title="Umbraco-CMS">Umbraco-CMS</a>,
<a href="https://github.com/umbraco/UmbracoDocs" target="_blank" title="UmbracoDocs">UmbracoDocs</a>,
<a href="https://github.com/umbraco/OurUmbraco" target="_blank" title="OurUmbraco">OurUmbraco</a>,
<a href="https://github.com/umbraco/Umbraco.Deploy.Contrib" target="_blank" title="Umbraco.Deploy.Contrib">Umbraco.Deploy.Contrib</a>,
<a href="https://github.com/umbraco/Umbraco.Courier.Contrib" target="_blank" title="Umbraco.Courier.Contrib">Umbraco.Courier.Contrib</a> and
<a href="https://github.com/umbraco/Umbraco.Deploy.ValueConnectors" target="_blank" title="Umbraco.Deploy.ValueConnectors">Umbraco.Deploy.ValueConnectors</a> repos
</small>
</p>
</div>
<div class="col-md-12">
<small>Contributions the last 12 months (number indicating accepted commits)</small>
</div>
<div class="col-md-12 flex forum-thread" id="github-contributors">
<h2>Loading GitHub contributors...</h2>
</div>
<div class="col-md-12 goto-forum">
<a class="button green" href="https://our.umbraco.org/contribute">Contribute to Umbraco &rarr;</a>
</div>
</div>
</div>
</section>
}
@helper Meetups() {
<section class="forum">
<div class="container">
<div class="row">
<div class="col-md-12">
<h1 class="text-center">Meetups</h1>
<p>
Upcoming meetups organized by the Umbraco community.
</p>
</div>
<div class="col-md-12">
<small>Upcoming meetups</small>
</div>
<div class="col-md-12 flex" id="meetups">
<h2>Loading meetups...</h2>
</div>
</div>
</div>
</section>
}
@@ -1,20 +0,0 @@
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
@if (MemberData != null)
{
<script type="text/javascript">
var umb_member_name = '@MemberData.Member.Name';
var umb_member_email = '@MemberData.Email';
var umb_member_icon = '@MemberData.AvatarPath';
</script>
}
@functions
{
public class MemberJsValues
{
public string Name { get; set; }
public string Email { get; set; }
public string Icon { get; set; }
}
}
@@ -1,37 +0,0 @@
<script type="text/javascript">
function loadAllGitHubContributors() {
$('#github-contributors').addClass('all');
}
$(document).ready(function() {
try {
$("#twitter-search").load("@Url.Action("TwitterSearchResult", "TwitterSearch", new {numberOfResults = 6})");
} catch (errTwitter) {
console.log("Couldn't load Twitter feed", errTwitter.message);
}
try {
console.log("@Url.Action("GetEvents", "Meetups")");
$("#meetups").load("@Url.Action("GetEvents", "Meetups")");
console.log('yay');
}
catch (errTwitter) {
console.log("Couldn't load meetups", errTwitter.message);
}
try {
$("#forum-activity").load("@Url.Action("LatestActivity", "LatestActivity", new {numberOfTopics = 6})");
} catch (errForum) {
console.log("Couldn't load latest forum activity", errForum.message);
}
try {
$("#github-contributors").load("@Url.Action("GitHubGetContributorsResult", "GitHubContributor")");
}
catch (errForum) {
console.log("Couldn't load latest GitHub contributor activity", errForum.message);
}
});
</script>
@@ -1,25 +1,38 @@
@inherits UmbracoViewPage<OurUmbraco.Forum.Models.ReadOnlyComment>
@inherits Umbraco.Web.Mvc.UmbracoViewPage<OurUmbraco.Forum.Models.ReadOnlyComment>
@using OurUmbraco.Forum.Extensions
@using OurUmbraco.Forum.Services
@using OurUmbraco.Powers.Library
@{
var currentMember = Model.MemberData != null && Model.MemberData.Member != null ? Model.MemberData.Member : null;
var commentAuthor = Model.TopicMembers.FirstOrDefault(x => x.Member.Id == Model.MemberId);
var forumReadOnly = Model.ForumNewTopicsAllowed == false;
var currentMember = Members.GetCurrentMember();
var answer = (int)ViewData["answer"];
var roles = new List<string>();
var commentAuthor = Members.GetById(Model.MemberId);
// author could have been deleted (spammer) so make sure to check if they exist
if (commentAuthor != null)
{
roles = commentAuthor.GetRoles();
}
var topicService = new TopicService(ApplicationContext.DatabaseContext);
var topic = topicService.CurrentTopic(this.Context, ApplicationContext.ApplicationCache.RequestCache);
var forum = Umbraco.TypedContent(topic.ParentId);
var forumReadOnly = forum.NewTopicsAllowed() == false;
}
@* If author exists and comment is either not spam or the viewer is a the author or an admin admin *@
@if (commentAuthor != null && (Model.IsSpam == false || (currentMember != null && currentMember.Id == commentAuthor.Member.Id) || Model.MemberData != null && Model.MemberData.IsAdmin))
@if (commentAuthor != null && (Model.IsSpam == false || (currentMember != null && currentMember.Id == commentAuthor.Id) || Members.IsAdmin()))
{
<li class="comment @(Model.ParentCommentId > 0 ? "level-2" : null) @(Model.IsAnswer ? "solution" : null)" data-parent="@Model.ParentCommentId" id="comment-@Model.Id">
<li class="comment @(Model.ParentCommentId > 0 ? "level-2" : null) @(Model.Id == answer ? "solution" : null)" data-parent="@Model.ParentCommentId" id="comment-@Model.Id">
<div class="meta">
<div class="profile">
<a href="/member/@commentAuthor.Member.Id">@commentAuthor.Member.Name</a> <span>@if (commentAuthor.Member.ForumPosts() == 0 || commentAuthor.Member.ForumPosts() > 1){@commentAuthor.Member.ForumPosts() <text>posts</text>}else{@commentAuthor.Member.ForumPosts() <text>post</text>}</span> <span>@commentAuthor.Member.Karma() karma points</span>
<a href="/member/@commentAuthor.Id">@commentAuthor.Name</a> <span>@if (commentAuthor.ForumPosts() == 0 || commentAuthor.ForumPosts() > 1){@commentAuthor.ForumPosts() <text>posts</text>}else{@commentAuthor.ForumPosts() <text>post</text>}</span> <span>@commentAuthor.Karma() karma points</span>
@if (commentAuthor.Roles.Any())
@if (roles.Any())
{
<span class="roles">
@foreach (var role in (commentAuthor.Roles))
@foreach (var role in roles)
{
<span class="@role">@role</span>
}
@@ -33,14 +46,14 @@
</div>
<div class="comment-inner">
<a href="/member/@commentAuthor.Member.Id" class="photo">@Html.Raw(OurUmbraco.Our.Utils.GetMemberAvatar(commentAuthor.Member, 75))</a>
<a href="/member/@commentAuthor.Id" class="photo">@Html.Raw(OurUmbraco.Our.Utils.GetMemberAvatar(commentAuthor, 75))</a>
<div class="highfive highfive-comment">
@{
var html = "High fives from:<br />";
foreach (var vote in Model.Votes)
{
if (Model.IsAnswer && vote.MemberId == Model.TopicAuthorId)
if (Model.Id == answer && vote.MemberId == Model.TopicAuthorId)
{
html = string.Format("{0}<a href=\"/member/{1}\">{2}</a> (marked as the answer)<br />", html, vote.MemberId, vote.MemberName);
}
@@ -55,7 +68,7 @@
<div class="highfive-count votes-tooltip" title="@(Model.Votes.Any() ? html : null)">
@Model.Score
</div>
@if (Model.MemberData != null && !Utils.HasVoted(currentMember.Id, Model.Id, "powersComment"))
@if (Members.IsLoggedIn() && !Utils.HasVoted(currentMember.Id, Model.Id, "powersComment"))
{
if (currentMember.Id != Model.MemberId)
{
@@ -69,7 +82,7 @@
@if (Model.IsSpam)
{
<div class="alert">
@if (Model.MemberData.IsAdmin)
@if (Members.IsAdmin())
{
<span>You can see this comment because you're a moderator of the forum.</span><br/><br/>
}
@@ -84,13 +97,13 @@
</div>
</div>
<div class="actions">
@if (Model.MemberData != null)
@if (Members.IsLoggedIn())
{
<a href="#" class="flag-comment" data-id="@Model.Id" data-member="@currentMember.Id">
<i class="icon-Flag"></i><span>Flag as spam</span>
</a>
if (Model.IsAnswer == false && (Model.MemberData.IsAdmin || currentMember.Id == Model.TopicAuthorId))
if (answer == 0 && (Members.IsAdmin() || currentMember.Id == Model.TopicAuthorId))
{
<a href="#" class="solved" data-id="@Model.Id">
<i class="icon-Check"></i><span>Mark as solution</span>
@@ -99,19 +112,19 @@
if (Model.ParentCommentId <= 0 && forumReadOnly == false)
{
<a href="#" data-author="@commentAuthor.Member.Name" data-topic="@Model.TopicId" data-parent="@Model.Id" data-controller="comment" class="forum-reply reply">
<a href="#" data-author="@commentAuthor.Name" data-topic="@Model.TopicId" data-parent="@Model.Id" data-controller="comment" class="forum-reply reply">
<i class="icon-Reply-arrow"></i><span>Reply</span>
</a>
}
if (Model.ParentCommentId > 0 && forumReadOnly == false)
{
<a href="#" data-author="@commentAuthor.Member.Name" data-topic="@Model.TopicId" data-parent="@Model.ParentCommentId" data-controller="comment" class="forum-reply reply">
<a href="#" data-author="@commentAuthor.Name" data-topic="@Model.TopicId" data-parent="@Model.ParentCommentId" data-controller="comment" class="forum-reply reply">
<i class="icon-Reply-arrow"></i><span>Reply</span>
</a>
}
if (Model.MemberData.IsAdmin || currentMember.Id == Model.MemberId)
if (Members.IsAdmin() || currentMember.Id == Model.MemberId)
{
<a href="#" class="edit-post" data-id="@Model.Id" data-topic="@Model.TopicId" data-controller="comment">
<i class="icon-Edit"></i><span>Edit</span>
@@ -121,7 +134,7 @@
<i class="icon-Delete-key"></i><span>Delete</span>
</a>
if (Model.MemberData.IsAdmin)
if (Members.IsAdmin())
{
if (Model.IsSpam)
{
@@ -1,24 +1,28 @@
@inherits UmbracoViewPage<OurUmbraco.Forum.Models.Topic>
@inherits Umbraco.Web.Mvc.UmbracoViewPage<OurUmbraco.Forum.Models.Topic>
@using OurUmbraco.Forum.Extensions
@using OurUmbraco.Powers.Library
@{
var currentMember = Model.MemberData != null && Model.MemberData.Member != null ? Model.MemberData.Member : null;
var topicAuthor = Model.TopicMembers.FirstOrDefault(x => x.Member.Id == Model.MemberId);
var currentMember = Members.GetCurrentMember();
var topicAuthor = Members.GetById(Model.MemberId);
@* If author exists and question is either not spam or the viewer is a the author or an admin admin *@
if (topicAuthor != null && (Model.IsSpam == false || (currentMember != null && currentMember.Id == topicAuthor.Member.Id) || Model.MemberData != null && Model.MemberData.IsAdmin))
if (topicAuthor != null && (Model.IsSpam == false || (currentMember != null && currentMember.Id == topicAuthor.Id) || Members.IsAdmin()))
{
var forum = Umbraco.TypedContent(Model.ParentId);
var roles = topicAuthor.GetRoles();
<li class="comment question" id="comment-@Model.Id" data-deeplink="@Model.Title" data-version="@Model.Version" data-cat="@Model.ParentId">
<!-- Start of question -->
<div class="meta">
<div class="profile">
<a href="/member/@topicAuthor.Member.Id">@topicAuthor.Member.Name</a> <span>@if (topicAuthor.Member.ForumPosts() == 0 || topicAuthor.Member.ForumPosts() > 1){@topicAuthor.Member.ForumPosts() <text>posts</text>}else{@topicAuthor.Member.ForumPosts() <text>post</text>}</span> <span>@topicAuthor.Member.Karma() karma points</span>
<a href="/member/@topicAuthor.Id">@topicAuthor.Name</a> <span>@if (topicAuthor.ForumPosts() == 0 || topicAuthor.ForumPosts() > 1){@topicAuthor.ForumPosts() <text>posts</text>}else{@topicAuthor.ForumPosts() <text>post</text>}</span> <span>@topicAuthor.Karma() karma points</span>
@if (topicAuthor.Roles.Any())
@if (roles.Any())
{
<span class="roles">
@foreach (var role in topicAuthor.Roles)
@foreach (var role in roles)
{
<span class="@role">@role</span>
}
@@ -33,7 +37,7 @@
</div>
<div class="comment-inner">
<a href="/member/@topicAuthor.Member.Id" class="photo">@Html.Raw(OurUmbraco.Our.Utils.GetMemberAvatar(topicAuthor.Member, 75))</a>
<a href="/member/@topicAuthor.Id" class="photo">@Html.Raw(OurUmbraco.Our.Utils.GetMemberAvatar(topicAuthor, 75))</a>
<div class="highfive highfive-question">
@{
var html = "High fives from:<br />";
@@ -46,7 +50,7 @@
<div class="highfive-count votes-tooltip" title="@(Model.Votes.Any() ? html : null)">
@Model.Score
</div>
@if (Model.MemberData != null && !Utils.HasVoted(currentMember.Id, Model.Id, "powersTopic"))
@if (Members.IsLoggedIn() && !Utils.HasVoted(currentMember.Id, Model.Id, "powersTopic"))
{
if (currentMember.Id != Model.MemberId)
{
@@ -61,7 +65,7 @@
</div>
<div class="categories">
<div class="category core">
<a href="@Model.ForumUrl">@Model.ForumName</a>
<a href="@forum.Url">@forum.Name</a>
</div>
@if (Model.Version > 0)
@@ -78,7 +82,7 @@
@if (Model.IsSpam)
{
<div class="alert">
@if (Model.MemberData != null && Model.MemberData.IsAdmin)
@if (Members.IsAdmin())
{
<span>You can see this topic because you're a moderator of the forum.</span><br/><br/>
}
@@ -94,20 +98,20 @@
</div>
<div class="actions">
@if (Model.MemberData != null)
@if (Members.IsLoggedIn())
{
<a href="#" class="flag-thread" data-id="@Model.Id" data-member="@currentMember.Id">
<i class="icon-Flag"></i><span>Flag as spam</span>
</a>
if (Model.ForumNewTopicsAllowed)
if (forum.NewTopicsAllowed())
{
<a href="#" data-author="@topicAuthor.Member.Name" data-topic="@Model.Id" data-controller="comment" class="reply forum-reply">
<a href="#" data-author="@topicAuthor.Name" data-topic="@Model.Id" data-controller="comment" class="reply forum-reply">
<i class="icon-Reply-arrow"></i><span>Reply</span>
</a>
}
if (Model.MemberData.IsAdmin || Model.MemberData.Member.Id == topicAuthor.Member.Id)
if (Members.IsAdmin() || Members.GetCurrentMember().Id == topicAuthor.Id)
{
<a href="#" class="edit-post" data-id="@Model.Id" data-controller="topic">
<i class="icon-Edit"></i><span>Edit</span>
@@ -118,7 +122,7 @@
</a>
}
if (Model.MemberData.IsAdmin)
if (Members.IsAdmin())
{
if (Model.IsSpam)
{
@@ -1,117 +0,0 @@
@model ReadOnlyTopic
@using System.Web.Mvc.Html
@using OurUmbraco.Forum.Models
@using Umbraco.Core.Logging
<!-- COPY LINK -->
<div id="overlay" class="overlay"></div>
<div id="copy-link-wrapper" class="copy-link-wrapper">
<i class="icon-Link"></i>
<textarea class="getLink" readonly type="text"></textarea>
<p>Press Ctrl / CMD + C to copy this to your clipboard.</p>
</div>
<div id="thankyou">
Copied to clipboard
</div>
<!-- COPY LINK END -->
<!-- DELETE THREAD/COMMENT START -->
@if (Model.MemberData != null)
{
<div id="confirm-wrapper" class="confirm-wrapper">
<h4>Are you sure?</h4>
<p>This <span class="type-of"></span> will be gone forever and ever</p>
<br />
<button type="button" class="button green tiny">Yes</button>
<button type="button" class="button red tiny">No</button>
</div>
}
<!-- DELETE THREAD END -->
<!-- FLAG SPAM START -->
<div id="confirm-wrapper-flag" class="confirm-wrapper-flag">
<h4>Flag this post as spam?</h4>
<p>This post will be reported to the moderators as potential spam to be looked at</p>
<br />
<button type="button" class="button green tiny">Yes</button>
<button type="button" class="button red tiny">No</button>
</div>
<!-- FLAG SPAM END -->
@if (Model.ForumNewTopicsAllowed == false)
{
<div class="alertbar__yellow" style="margin-bottom: 10px;">
@Html.Raw(Model.MainNotification)
</div>
}
<ul class="comments">
@{
try
{
@Html.Partial("forum/question", Model)
}
catch (Exception ex)
{
LogHelper.Error<string>(string.Format("~/Views/MacroPartials/Forum/Thread.cshtml - error rendering topic with id {0}", Model.Id), ex);
}
}
@foreach (var comment in Model.Comments.Where(x => x.ParentCommentId == 0))
{
Html.RenderPartial("forum/comment", comment);
if (comment.HasChildren)
{
foreach (var child in Model.Comments.Where(c => c.ParentCommentId == comment.Id))
{
Html.RenderPartial("forum/comment", child);
}
}
}
</ul>
@if (Model.MemberData != null)
{
if (Model.ForumNewTopicsAllowed)
{
<div class="replybutton">
<a href="#" class="button green large reply forum-reply" data-author="@Model.AuthorName" data-topic="@Model.Id" data-controller="comment"><i class="icon-Reply-arrow"></i>&nbsp;Reply to topic</a>
</div>
<div class="utilities">
<div class="utility-actions thread-bottom">
@if (Model.MemberData.IsAdmin)
{
<a href="#" class="delete-thread button" data-id="@Model.Id">
<i class="icon-Delete-key"></i><span>Delete thread</span>
</a>
}
<a href="#" class="follow button @(Model.Subscribed ? "following" : "transparent")" data-id="@Model.Id" data-controller="topic">
<i class="icon-Bookmark"></i><span>@(Model.Subscribed ? "Following" : "Follow")</span>
</a>
@if (Model.Answer > 0)
{
<a href="#comment-@Model.Answer.ToString()" class="go-to-solution button transparent">
<i class="icon-Check"></i><span>Go to solution</span>
</a>
}
</div>
</div>
}
else
{
<div class="alertbar__yellow">
@Html.Raw(Model.MainNotification)
</div>
}
}
else
{
<div class="replybutton notloggedin">
Please <a href="/member/login?redirectUrl=@(Server.UrlEncode(Request.Url.AbsoluteUri))">Sign in</a> or <a href="/member/signup">register</a> to post replies
</div>
}
@@ -1,25 +0,0 @@
@using OurUmbraco.Forum.Models
@model ReadOnlyTopic
<div class="utility-actions">
@if (Model.MemberData != null)
{
if (Model.MemberData.IsAdmin)
{
<a href="#" class="delete-thread button" data-id="@Model.Id">
<i class="icon-Delete-key"></i><span>Delete thread</span>
</a>
}
<a href="#" class="follow button @(Model.Subscribed ? "following" : "transparent")" data-id="@Model.Id" data-controller="topic">
<i class="icon-Bookmark"></i><span>@(Model.Subscribed ? "Following" : "Follow")</span>
</a>
}
@if (Model.Answer > 0)
{
<a href="#comment-@Model.Answer.ToString()" class="go-to-solution button transparent">
<i class="icon-Check"></i><span>Go to solution</span>
</a>
}
</div>
@@ -1,10 +0,0 @@
@model List<IPublishedContent>
<ul id="breadcrumb">
<li>
<a href="/">Our</a>
</li>
@foreach (var page in Model)
{
<li><a href="@page.Url">@page.Name</a></li>
}
</ul>
@@ -66,7 +66,7 @@
if(cfg != null)
foreach (JProperty property in cfg.Properties())
{
var propertyValue = HttpUtility.HtmlAttributeEncode(property.Value.ToString());
var propertyValue = TemplateUtilities.CleanForXss(property.Value.ToString());
attrs.Add(property.Name + "=\"" + propertyValue + "\"");
}
@@ -76,7 +76,7 @@
var cssVals = new List<string>();
foreach (JProperty property in style.Properties())
{
var propertyValue = property.Value.ToString();
var propertyValue = TemplateUtilities.CleanForXss(property.Value.ToString());
if (string.IsNullOrWhiteSpace(propertyValue) == false)
{
cssVals.Add(property.Name + ":" + propertyValue + ";");
@@ -84,7 +84,7 @@
}
if (cssVals.Any())
attrs.Add("style='" + HttpUtility.HtmlAttributeEncode(string.Join(" ", cssVals)) + "'");
attrs.Add("style='" + string.Join(" ", cssVals) + "'");
}
return new MvcHtmlString(string.Join(" ", attrs));
@@ -66,7 +66,7 @@
if(cfg != null)
foreach (JProperty property in cfg.Properties())
{
var propertyValue = HttpUtility.HtmlAttributeEncode(property.Value.ToString());
var propertyValue = TemplateUtilities.CleanForXss(property.Value.ToString());
attrs.Add(property.Name + "=\"" + propertyValue + "\"");
}
@@ -76,7 +76,7 @@
var cssVals = new List<string>();
foreach (JProperty property in style.Properties())
{
var propertyValue = property.Value.ToString();
var propertyValue = TemplateUtilities.CleanForXss(property.Value.ToString());
if (string.IsNullOrWhiteSpace(propertyValue) == false)
{
cssVals.Add(property.Name + ":" + propertyValue + ";");
@@ -84,7 +84,7 @@
}
if (cssVals.Any())
attrs.Add("style=\"" + HttpUtility.HtmlAttributeEncode(string.Join(" ", cssVals)) + "\"");
attrs.Add("style=\"" + string.Join(" ", cssVals) + "\"");
}
return new MvcHtmlString(string.Join(" ", attrs));
@@ -62,7 +62,7 @@
if(cfg != null)
foreach (JProperty property in cfg.Properties())
{
var propertyValue = HttpUtility.HtmlAttributeEncode(property.Value.ToString());
var propertyValue = TemplateUtilities.CleanForXss(property.Value.ToString());
attrs.Add(property.Name + "=\"" + propertyValue + "\"");
}
@@ -72,7 +72,7 @@
var cssVals = new List<string>();
foreach (JProperty property in style.Properties())
{
var propertyValue = property.Value.ToString();
var propertyValue = TemplateUtilities.CleanForXss(property.Value.ToString());
if (string.IsNullOrWhiteSpace(propertyValue) == false)
{
cssVals.Add(property.Name + ":" + propertyValue + ";");
@@ -80,7 +80,7 @@
}
if (cssVals.Any())
attrs.Add("style='" + HttpUtility.HtmlAttributeEncode(string.Join(" ", cssVals)) + "'");
attrs.Add("style='" + string.Join(" ", cssVals) + "'");
}
return new MvcHtmlString(string.Join(" ", attrs));
@@ -66,17 +66,17 @@
if(cfg != null)
foreach (JProperty property in cfg.Properties())
{
var propertyValue = HttpUtility.HtmlAttributeEncode(property.Value.ToString());
var propertyValue = TemplateUtilities.CleanForXss(property.Value.ToString());
attrs.Add(property.Name + "=\"" + propertyValue + "\"");
}
JObject style = contentItem.styles;
if (style != null) {
var cssVals = new List<string>();
foreach (JProperty property in style.Properties())
{
var propertyValue = property.Value.ToString();
var propertyValue = TemplateUtilities.CleanForXss(property.Value.ToString());
if (string.IsNullOrWhiteSpace(propertyValue) == false)
{
cssVals.Add(property.Name + ":" + propertyValue + ";");
@@ -84,7 +84,7 @@
}
if (cssVals.Any())
attrs.Add("style=\"" + HttpUtility.HtmlAttributeEncode(string.Join(" ", cssVals)) + "\"");
attrs.Add("style=\"" + string.Join(" ", cssVals) + "\"");
}
return new MvcHtmlString(string.Join(" ", attrs));
@@ -4,9 +4,9 @@
@if (Model.editor.config.markup != null)
{
string markup = Model.editor.config.markup.ToString();
var umbracoHelper = new UmbracoHelper(UmbracoContext.Current);
var UmbracoHelper = new UmbracoHelper(UmbracoContext.Current);
markup = markup.Replace("#value#", umbracoHelper.ReplaceLineBreaksForHtml(HttpUtility.HtmlEncode(Model.value.ToString())));
markup = markup.Replace("#value#", UmbracoHelper.ReplaceLineBreaksForHtml(TemplateUtilities.CleanForXss(Model.value.ToString())));
markup = markup.Replace("#style#", Model.editor.config.style.ToString());
<text>
@@ -0,0 +1,26 @@
@inherits Umbraco.Web.Macros.PartialViewMacroPage
<section class="forum">
<div class="container">
<div class="row">
<div class="col-md-12">
<h1 class="text-center">Forum Activity</h1>
<p>
Recent activity in the forums, where people are helping each other with current problems.
</p>
</div>
<div class="col-md-12">
<small>Recent posts</small>
</div>
@Umbraco.RenderMacro("ForumLatestActivity")
<div class="col-md-12 goto-forum">
<a class="button green" href="/forum">Go to Forum &rarr;</a>
</div>
</div>
</div>
</section>
@@ -1,32 +0,0 @@
@model OurUmbraco.Community.Models.GitHubContributorsModel
@if (Model.Contributors.Any())
{
foreach (var contributor in Model.Contributors)
{
<a href="@contributor.AuthorUrl" class="contributor" target="_blank" title="@contributor.AuthorLogin">
<div class="avatar">
<img alt="@contributor.AuthorLogin" src="@contributor.AuthorAvatarUrl&s=112"
srcset="@contributor.AuthorAvatarUrl&s=224 2x, @contributor.AuthorAvatarUrl&s=336 3x" />
<span class="contrib-count" title="@(contributor.TotalCommits + " " + (contributor.TotalCommits == 1 ? "contribution" : "contributions"))">
@contributor.TotalCommits
</span>
<div class="counts">
Additions<br />
<strong>@contributor.TotalAdditions</strong><br />
<br />
Deletions<br />
<strong>@contributor.TotalDeletions</strong>
</div>
</div>
</a>
}
<div class="loadmore">
<a class="button transparent" href="#" onclick="loadAllGitHubContributors(); return false;">Load more</a>
</div>
}
else
{
<h2>Could not load recent GitHub contributors.</h2>
}
@@ -1,40 +0,0 @@
@using OurUmbraco.Forum.Extensions
@using OurUmbraco.Forum.Models
@model ReadOnlyTopic[]
@foreach (var topic in Model)
{
<a href="@topic.GetUrl()" class="forum-thread @(topic.Answer > 0 ? "solved": null)">
<div class="avatar">
@Html.Raw(topic.LastReplyAuthorAvatar)
</div>
<div class="meta">
<div class="forum-thread-text">
<h3>@topic.Title</h3>
<p>
@if (topic.Replies != 0 && !string.IsNullOrEmpty(topic.LastReplyAuthorName))
{
<text>last updated by @topic.LastReplyAuthorName</text>
}
else
{
<text>created by @topic.AuthorName</text>
}
@topic.Updated.ConvertToRelativeTime()
</p>
</div>
<div class="category">
<span class="cat">@topic.CategoryName</span>
</div>
</div>
</a>
}
@if (Model.Any() == false)
{
<h2>Could not load recent forum activity.</h2>
}
@@ -1,71 +0,0 @@
@using OurUmbraco.Community.Models
@using Skybrud.Essentials.Locations
@using Skybrud.Essentials.Locations.Extensions
@using Skybrud.Essentials.Security
@inherits UmbracoViewPage<MeetupEventsModel>
@{
// Get a reference to the current member
IPublishedContent member = Members.GetCurrentMember();
// Get the location of the current member (if logged in and a location is present)
EssentialsLocation memberLocation = null;
if (member != null && member.HasValue("latitude") && member.HasValue("longitude")) {
memberLocation = new EssentialsLocation(
member.GetPropertyValue<double>("latitude"),
member.GetPropertyValue<double>("longitude")
);
}
}
@foreach (MeetupItem item in Model.Items) {
double distance = -1;
if (memberLocation != null) {
if (item.Event.HasVenue) {
distance = memberLocation.GetDistance(item.Event.Venue);
} else {
distance = memberLocation.GetDistance(item.Group);
}
}
<a href="@item.Event.Link" class="forum-thread">
@if (item.Group.GroupPhoto != null)
{
<div class="avatar">
<img src="@item.Group.GroupPhoto.ThumbLink" alt="" />
</div>
}
else
{
string fakeHash = SecurityUtils.GetMd5Hash(item.Group.Id + "");
<div class="avatar">
<img src="https://www.gravatar.com/avatar/@fakeHash?s=100&d=mm&r=g&d=retro" alt="" />
</div>
}
<div class="meta">
<div class="forum-thread-text">
@if (distance >= 0 && distance <= 50000) {
//<span style="float: right; color: red;">@String.Format("~{0:N0}", distance / 1000) km</span>
<span style="float: right; color: red; font-weight: bold;" title="Distance: @String.Format("~{0:N0}", distance / 1000) km">NEAR YOU</span>
}
<h3>@item.Event.Name</h3>
<p>@item.Event.Time.DateTime.ToString("MMM d, yyyy") by @item.Group.Name</p>
</div>
</div>
</a>
}
@if (Model.Items.Length % 2 == 1) {
// If there is an odd amount of events, we add a invisible div so the last event doesn't take up the full width
<div class="forum-thread" style="visibility: hidden;"></div>
}
@if (Model.Items.Any() == false) {
<h2>Could not load upcoming meetups.</h2>
}
@@ -1,49 +0,0 @@
@using OurUmbraco.Forum.Extensions
@model OurUmbraco.Community.Models.TweetsModel
@if (Model.ShowAdminOverView == false)
{
foreach (var tweet in Model.Tweets)
{
<a href="@tweet.Url" class="forum-thread">
<div class="avatar">
<img src="@tweet.CreatedBy.ProfileImageUrl400x400.Replace("http://", "https://")" />
</div>
<div class="meta">
<div class="forum-thread-text">
<h3>@tweet.Text</h3>
<p>@tweet.CreatedAt.ConvertToRelativeTime() by @@@tweet.CreatedBy.UserIdentifier.ScreenName (@tweet.CreatedBy.Name)</p>
</div>
</div>
</a>
}
}
else
{
foreach (var tweet in Model.Tweets)
{
var twitterHandle = tweet.CreatedBy.UserIdentifier.ScreenName;
<img src="@tweet.CreatedBy.ProfileImageUrl400x400.Replace("http://", "https://")" /><br />
<h3>@tweet.Text</h3>
<p>@tweet.CreatedAt.ConvertToRelativeTime() by <a href="https://twitter.com/@twitterHandle/with_replies" target="_blank">@@@twitterHandle (@tweet.CreatedBy.Name)</a></p><br />
<a href="@tweet.Url" target="_blank">@tweet.Url</a><br />
using (Html.BeginForm("MarkAsSpam", "TwitterSearch"))
{
@Html.AntiForgeryToken()
<input type="hidden" name="TwitterHandle" value="@twitterHandle" />
<input type="submit" value="Mark as spam" />
}
<hr />
}
}
@if (Model.Tweets.Any() == false)
{
<h2>Could not load recent tweets.</h2>
}
@@ -1,49 +0,0 @@
@using OurUmbraco.Our.Controllers
@using reCAPTCHA.MVC
@inherits UmbracoViewPage<Umbraco.Web.Models.LoginModel>
@{
Html.EnableClientValidation(true);
Html.EnableUnobtrusiveJavaScript(true);
}
@if (Request.QueryString["success"] == null)
{
<div class="form simpleForm" id="registrationForm">
@using (Html.BeginUmbracoForm<LoginController>("ForgotPassword"))
{
@Html.ValidationSummary(true)
@Html.AntiForgeryToken()
<fieldset>
<p>
@Html.LabelFor(m => m.Username, new { @cless = "inputLabel" })<br />
@Html.ValidationMessageFor(m => m.Username)
@Html.TextBoxFor(m => m.Username, new { @class = "email title" })
</p>
</fieldset>
<fieldset>
<p>
@Html.Recaptcha()
@Html.ValidationMessage("ReCaptcha")
</p>
</fieldset>
<input class="button green" type="submit" value="Retrieve password">
}
</div>
}
else
{
<p>If an account with that email exists you have just been sent instructions to reset your password.</p>
}
<style type="text/css">
.field-validation-error, .validation-summary-errors {
color: red;
}
.input-validation-error {
border-color: red !important;
}
</style>
@@ -1,50 +0,0 @@
@using OurUmbraco.Our.Controllers
@using reCAPTCHA.MVC
@inherits UmbracoViewPage<Umbraco.Web.Models.LoginModel>
@{
Html.EnableClientValidation(true);
Html.EnableUnobtrusiveJavaScript(true);
}
<div class="form simpleForm" id="registrationForm">
@using (Html.BeginUmbracoForm<LoginController>("Login"))
{
@Html.ValidationSummary(true)
@Html.AntiForgeryToken()
<fieldset>
<p>
@Html.LabelFor(m => m.Username, new { @class = "inputLabel" })<br />
@Html.ValidationMessageFor(m => m.Username)
@Html.TextBoxFor(m => m.Username, new { @class = "email title" })
</p>
</fieldset>
<fieldset>
<p>
@Html.LabelFor(m => m.Password, new { @class = "inputLabel" })<br />
@Html.ValidationMessageFor(m => m.Password)
@Html.PasswordFor(m => m.Password, new { @class = "password title" })
</p>
</fieldset>
<fieldset>
<p>
@Html.Recaptcha()
@Html.ValidationMessage("ReCaptcha")
</p>
</fieldset>
<input class="button green" type="submit" value="Log in">
}
</div>
<style type="text/css">
.field-validation-error, .validation-summary-errors {
color: red;
}
.input-validation-error {
border-color: red !important;
}
</style>
@@ -1,5 +1,4 @@
@using OurUmbraco.Our.Controllers
@using reCAPTCHA.MVC
@inherits UmbracoViewPage<OurUmbraco.Our.Models.RegisterModel>
@{
Html.EnableClientValidation(true);
@@ -61,11 +60,6 @@
@Html.CheckBoxFor(m => m.AgreeTerms) <label for="AgreeTerms"><em>I agree to the <a href="/terms-and-conditions" target="_blank">terms and conditions</a> of using the Our Umbraco website.</em></label>
@Html.ValidationMessageFor(m => m.AgreeTerms)
</div>
<div class="profile-input" id="recaptcha">
@Html.Recaptcha()
@Html.ValidationMessage("ReCaptcha")
</div>
<input class="button green" type="submit" value="Sign up">
}
@@ -1,26 +0,0 @@
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
<ul>
@foreach (var page in Model.Content.AncestorOrSelf(1).Children.Where("Visible"))
{
<li class="@(page.IsAncestorOrSelf(Model.Content) ? "current" : null)">
<a href="@page.Url">@page.Name</a>
</li>
}
<li>
@if (MemberData != null)
{
<div class="user">
@Html.Raw(MemberData.AvatarHtml)
@if (MemberData.AvatarImageTooSmall)
{
<span class="notificationCount">1</span>
}
</div>
}
else
{
<a href="/member/login?redirectUrl=@(Server.UrlEncode(Request.Url.AbsolutePath))">Sign in</a><strong> / </strong><a href="/member/Signup">Register</a>
}
</li>
</ul>
@@ -1,20 +0,0 @@
@using OurUmbraco.Our.Controllers
@model OurUmbraco.Our.Models.ProjectCompleteModel
<div class="package-create">
@Html.Partial("~/Views/Partials/Project/PackageEditNavigation.cshtml", "complete")
@using(Html.BeginUmbracoForm<ProjectController>("UpdateProjectLive"))
{
<fieldset>
<legend>Make "@Model.Name" public</legend>
<p>By checking the following box your project will become public as long as you have met all of the terms &amp; conditions of listing.</p>
<p>
@Html.CheckBoxFor(m => m.ProjectLive) @Html.LabelFor(m => m.ProjectLive)
</p>
</fieldset>
<div class="buttons">
<input type="submit" value="Save" class="submitButton button tiny green">
</div>
}
</div>
@@ -31,7 +31,17 @@
</style>
<div class="package-create">
@Html.Partial("~/Views/Partials/Project/PackageEditNavigation.cshtml", "details")
<ul class="stepNavigation">
<li class="current"><a href="/member/profile/projects/details/?projectId=@Model.Id">Package Details</a></li>
@if (Model.Id > 0)
{
<li class=""><a href="/member/profile/projects/edit?editorStep=files&id=@Model.Id">Package Files</a></li>
<li class=""><a href="/member/profile/projects/edit?editorStep=screenshots&id=@Model.Id">Screenshots</a></li>
<li class=""><a href="/member/profile/projects/edit?editorStep=complete&id=@Model.Id">Creation Complete</a></li>
}
</ul>
<div class="form simpleForm" id="registrationForm">
@using (Html.BeginUmbracoForm<ProjectController>("SaveDetails"))
@@ -109,12 +119,6 @@
@Html.ValidationMessageFor(m => m.SourceCodeUrl)
<small>url to where the source code is stored, (ie: codeplex.com, github.com etc)</small>
</p>
<p>
@Html.LabelFor(m => m.NuGetPackageUrl)
@Html.TextBoxFor(m => m.NuGetPackageUrl)
@Html.ValidationMessageFor(m => m.NuGetPackageUrl)
<small>url to the NuGet package if any available</small>
</p>
<p>
@Html.LabelFor(m => m.BugTrackingUrl)
@Html.TextBoxFor(m => m.BugTrackingUrl)
@@ -1,143 +0,0 @@
@using OurUmbraco.Our.Controllers
@model OurUmbraco.Our.Models.EditFileModel
<div class="package-create">
@Html.Partial("~/Views/Partials/Project/PackageEditNavigation.cshtml", "files")
<div class="form simpleForm" id="registrationForm">
<fieldset>
<legend>Current project files</legend>
<p>
<table class="dataTable">
<thead>
<tr>
<th>File</th>
<th>Type</th>
<th>Compatible Version</th>
<th>.NET Version</th>
<th>Uploaded</th>
<th class="center">Default Release</th>
<th class="center">Archive</th>
</tr>
</thead>
<tbody>
@foreach (var wikiFile in Model.AvailableFiles)
{
var versionsList = new List<string>();
foreach (var version in wikiFile.Versions)
{
versionsList.Add(version.Version);
}
var versions = string.Join(",", versionsList);
<tr>
<td>@wikiFile.Name</td>
<td>@wikiFile.FileType</td>
<td>@versions</td>
<td>@wikiFile.DotNetVersion</td>
<td>@wikiFile.CreateDate</td>
<td class="center">
@if (wikiFile.Current == false)
{
using (Html.BeginUmbracoForm<ProjectController>("MarkFileAsCurrent"))
{
<input type="hidden" name="id" value="@Request.QueryString["id"]" />
<input type="hidden" name="releaseFileId" value="@wikiFile.Id" />
<input type="submit" value="Make current" class="actionButton" />
}
}
else
{
<text>Current</text>
}
</td>
<td class="center">
@using (Html.BeginUmbracoForm<ProjectController>("ArchiveFile"))
{
var buttonText = wikiFile.Archived ? "Unarchive" : "Archive";
<input type="hidden" name="id" value="@Request.QueryString["id"]" />
<input type="hidden" name="releaseFileId" value="@wikiFile.Id" />
<input type="submit" value="@buttonText" class="actionButton" />
}
</td>
</tr>
}
</table>
</p>
</fieldset>
<fieldset>
<legend>Upload file</legend>
<div id="">
@using (Html.BeginUmbracoForm<ProjectController>("AddFile"))
{
<span style="color: red;">
@Html.ValidationSummary()
</span>
<div id="">
<p>
<label class="inputLabel">Pick file (10 MB max):</label>
</p>
<div>
<div>
<input type="file" class="title" name="UploadFile.File">
</div>
</div>
<p></p>
<p>
<label class="inputLabel">Choose filetype</label>
@Html.DropDownListFor(model => model.UploadFile.FileType, new List<SelectListItem>
{
new SelectListItem { Text = "Package", Value = "package" },
new SelectListItem { Text = "Hot Fix", Value = "hotfix"},
new SelectListItem { Text = "Documentation", Value = "docs"},
new SelectListItem { Text = "Source Code", Value = "source"}
})
</p>
<div class="pickversionWrapper">
<p id="pickVersion">
<label class="inputLabel">Choose umbraco version</label>
</p>
<div class="pickVersion" style="float: left; margin-bottom: 10px;">
@foreach (var item in Model.UploadFile.AvailableVersions)
{
var versionsSelected = Model.UploadFile.SelectedVersions;
<input type="checkbox" name="UploadFile.SelectedVersions" value="@item.Value" id="@item.Value" @if (versionsSelected != null && versionsSelected.Contains(item.Value)) { <text> checked="checked" </text> } /> <label for="@item.Value" style="display: inline; padding: 0;">@item.Text</label><br />
}
</div>
<p style="clear: both; margin-bottom: 10px;">If your package manifest references a specific version of Umbraco, then that will be used instead.</p>
</div>
<p id="pickNetVersion">
<label class="inputLabel">Choose supported .NET runtime</label>
<select name="UploadFile.DotNetVersion" class="title">
<option value=""></option>
<option value="2.0">2.0</option>
<option value="3.5">3.5</option>
<option value="4.0">4.0</option>
<option value="4.5">4.5</option>
<option value="4.5.1">4.5.1</option>
<option value="4.5.2">4.5.2</option>
<option value="4.6.0">4.6.0</option>
<option value="4.6.1">4.6.1</option>
</select><br>
</p>
<p>
<input type="hidden" name="UploadFile.ProjectId" value="@Request.QueryString["id"]" />
<input type="submit" value="Save file" class="submitButton button blue tiny">
</p>
</div>
}
<div class="buttons">
<a href="/member/profile/projects/edit/?editorStep=screenshots&id=@Request.QueryString["id"]" class="submitButton button green tiny" style="color: white;">Next</a>
</div>
</div>
</fieldset>
</div>
</div>
@@ -1,87 +0,0 @@
@using OurUmbraco.Our.Controllers
@model OurUmbraco.Our.Models.EditScreenshotModel
<div class="package-create">
@Html.Partial("~/Views/Partials/Project/PackageEditNavigation.cshtml", "screenshots")
<div class="form simpleForm" id="registrationForm">
<fieldset>
<legend>Current project files</legend>
<p>
<table class="dataTable">
<thead>
<tr>
<th>Image</th>
<th>Uploaded</th>
<th class="center">Default</th>
<th class="center">Delete</th>
</tr>
</thead>
<tbody>
@foreach (var wikiFile in Model.AvailableFiles)
{
<tr>
<td><img src="@wikiFile.Path?height=100" /></td>
<td>@wikiFile.CreateDate</td>
<td class="center">
@if (wikiFile.Current == false)
{
using (Html.BeginUmbracoForm<ProjectController>("MarkFileAsCurrent"))
{
<input type="hidden" name="id" value="@Request.QueryString["id"]" />
<input type="hidden" name="releaseFileId" value="@wikiFile.Id" />
<input type="submit" value="Make current" class="actionButton" />
}
}
else
{
<text>Current</text>
}
</td>
<td class="center">
@using (Html.BeginUmbracoForm<ProjectController>("DeleteScreenshot"))
{
<input type="hidden" name="id" value="@Request.QueryString["id"]" />
<input type="hidden" name="releaseFileId" value="@wikiFile.Id" />
<input type="submit" value="Delete" class="actionButton" />
}
</td>
</tr>
}
</table>
</p>
</fieldset>
<fieldset>
<legend>Upload file</legend>
<div id="">
@using (Html.BeginUmbracoForm<ProjectController>("AddScreenshot"))
{
<span style="color: red;">
@Html.ValidationSummary()
</span>
<div id="">
<p>
<label class="inputLabel">Pick file (10 MB max):</label>
</p>
<div>
<div>
<input type="file" class="title" name="UploadFile.File">
</div>
</div>
<p>
<input type="hidden" name="UploadFile.ProjectId" value="@Request.QueryString["id"]" />
<input type="submit" value="Save file" class="submitButton button blue tiny">
</p>
</div>
}
<div class="buttons">
<a href="/member/profile/projects/edit/?editorStep=complete&id=@Request.QueryString["id"]" class="submitButton button green tiny" style="color: white;">Next</a>
</div>
</div>
</fieldset>
</div>
</div>
@@ -1,14 +0,0 @@
@model string
@{
var projectId = Request["projectId"];
if (string.IsNullOrWhiteSpace(projectId))
{
projectId = Request["id"];
}
}
<ul class="stepNavigation">
<li class="@(Model == "details" ? "current" : null)" style="text-decoration: underline;"><a href="/member/profile/projects/details?projectId=@projectId">Package Details</a></li>
<li class="@(Model == "files" ? "current" : null)" style="text-decoration: underline;"><a href="/member/profile/projects/edit?editorStep=files&id=@projectId">Package Files</a></li>
<li class="@(Model == "screenshots" ? "current" : null)" style="text-decoration: underline;"><a href="/member/profile/projects/edit?editorStep=screenshots&id=@projectId">Screenshots</a></li>
<li class="@(Model == "complete" ? "current" : null)" style="text-decoration: underline;"><a href="/member/profile/projects/edit?editorStep=complete&id=@projectId">Creation Complete</a></li>
</ul>
@@ -1,14 +0,0 @@
@using Umbraco.Web
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
<ul class="level-2">
@foreach (var childPage in Model.Content.Children().Where(
x => x.DocumentTypeAlias == "ProjectGroup"
&& x.GetPropertyValue<bool>("umbracoNaviHide") == false))
{
<li>
<h4><a href="?category=@childPage.Name">@childPage.Name</a></h4>
</li>
}
<li><h4><a href="?category=uaas">Umbraco Cloud</a></h4></li>
</ul>
@@ -1,61 +0,0 @@
@using OurUmbraco.MarketPlace.Interfaces
@using OurUmbraco.Project
@model OurUmbraco.Our.Models.MyProjectsModel
<div class="profile-settings">
<strong>My Packages</strong>
<div class="profile-settings-packages packages-content">
<a href="/member/profile/projects/details?projectId=" class="button green"><i class="icon-Add"></i>Add package</a>
@foreach (var project in Model.Projects)
{
@RenderProject(project)
}
<strong>Package Contributions</strong>
@foreach (var project in Model.ContribProjects)
{
@RenderProject(project)
}
</div>
</div>
@helper RenderProject(IListingItem project)
{
<div class="box liked">
<div class="row">
<div class="col-xs-2 col-md-1">
<img src="@(string.IsNullOrEmpty(project.DefaultScreenshot) ? "/css/img/package2.png" : project.DefaultScreenshot)?width=65&height=65" alt="">
</div>
<div class="col-xs-10 col-md-6">
<div class="forum-thread-text">
<h3><a href="@project.NiceUrl">@project.Name</a></h3>
<p>
@project.Description.StripHtmlAndLimit(45) ...
<br />
<a href="details?projectId=@project.Id">Edit</a>
<a href="manage-project-forums/?id=@project.Id">Forums</a>
<a href="manage-team/?id=@project.Id">Team</a>
</p>
</div>
</div>
<div class="col-xs-12 col-md-5">
<div class="other">
<div class="package-badge">
<span class="package-name">version</span>
<span class="package-number">@project.CurrentVersion</span>
</div>
<span class="stats">
<span class="downloads">
@project.Downloads<span><i class="icon-Download-alt"></i></span>
</span>
<span class="karma">
@project.Karma<span><i class="icon-Hearts"></i></span>
</span>
</span>
</div>
</div>
</div>
</div>
}
@@ -1,94 +0,0 @@
@using OurUmbraco.Our
@model OurUmbraco.Our.Models.SearchResultContentModel
<div class="plain">
<!-- search OVERVIEW START -->
<section class="search-results">
<div>
<!-- FORUM HEADER START -->
<div class="utilities">
<ul id="breadcrumb">
<li><a href="/" rel="nofollow">Our Umbraco</a></li>
<li><a href="#" rel="nofollow">Search</a></li>
<li><a href="#" rel="nofollow">@Model.Results.SearchTerm</a></li>
</ul>
</div>
@if (Context.IsDebuggingEnabled)
{
<div style="border: 1px solid orange;">
<p>
<strong>Debugging output</strong><br />
<strong>Query:</strong> @Model.Results.LuceneQuery<br />
<strong>Order by:</strong> @Model.Results.OrderBy<br />
<strong>Time elapsed:</strong> @Model.Results.Totalmilliseconds
</p>
</div>
}
<div class="search-big">
<asp:TextBox runat="server" ID="SearchText"></asp:TextBox>
<label for="SearchText">Search</label>
</div>
@if(Request.QueryString["cat"] == "forum") {
<div id="search-options" class="search-options">
<label>Sort by</label>
<div class="options">
<label class="checkbox">
<input type="checkbox" name="solved" />
<span></span>
<small>show only solved topics</small>
</label>
<label class="checkbox">
<input type="checkbox" name="replies" />
<span></span>
<small>show only topics with replies</small>
</label>
<label class="checkbox">
<input type="checkbox" name="order" value="updateDate" />
<span></span>
<small>show last updated first</small>
</label>
</div>
</div>
}
@if(Model.Results.SearchResults.Any() == false) {
<p class="message">No results</p>
}
<section>
@if(string.IsNullOrWhiteSpace(Model.Results.Category) == false) {
<h2 class="search-in">Results from category: @Model.Results.Category</h2>
}
<ul class="search-all-results docs-search-listing">
@foreach(var result in Model.Results.SearchResults) {
<li class="@result.SolvedClass()">
<a href="@result.FullUrl()">
<div class="type-icon">
<i class="<%=result.GetIcon() %>"></i>
</div>
<div class="type-context">
<div class="type-name">@result.GetTitle()</div>
<span class="type-datetime">@result.GetDate()</span>
<div class="type-description">@result.GenerateBlurb(300)</div>
</div>
</a>
</li>
}
</ul>
</section>
</div>
</section>
<!-- search OVERVIEW END -->
</div>
-31
View File
@@ -1,31 +0,0 @@
@using OurUmbraco.Forum.Extensions
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
@{
Layout = "~/Views/Master.cshtml";
var numberOfDays = 365;
var numberOfResults = 25;
if (Request.QueryString["days"] != null)
{
int.TryParse(Request.QueryString["days"], out numberOfDays);
}
var karma = OurUmbraco.Powers.Library.Xslt.MemberKarma(numberOfDays, numberOfResults);
}
<div id="body" class="page markdown-syntax">
<div>
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = false })
</div>
@if (MemberData != null && MemberData.Member != null && MemberData.Member.IsHq())
{
<h1>Karma leaderboard</h1>
<textarea style="width: 400px;height: 600px;">
@while (karma.MoveNext())
{
@karma.Current.InnerXml
}
</textarea>
}
</div>
-26
View File
@@ -1,26 +0,0 @@
@inherits UmbracoTemplatePage
@{
Layout = "~/Views/Master.cshtml";
}
<div class="page-content">
<div id="overlay" class="overlay"></div>
<div class="sidebar-area">
<div class="sidebar-content">
<div class="content-wrapper">
@Html.Partial("~/Views/Partials/Members/ProfileNavigation.cshtml")
</div><!-- .content-wrapper -->
</div><!-- .sidebar-content -->
</div><!-- .sidebar-area -->
<div class="main-area">
<div class="main-content">
<div class="content-wrapper">
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = true })
@Html.Raw(Model.Content.GetPropertyValue<string>("bodyText"))
</div><!-- .content-wrapper -->
</div><!-- .main-content -->
</div><!-- .main-area -->
</div><!-- .page-content -->
-28
View File
@@ -1,28 +0,0 @@
@inherits UmbracoTemplatePage
@{
Layout = "~/Views/Master.cshtml";
}
<section class="plain">
<div>
<!-- FORUM HEADER START -->
<div class="utilities">
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = false })
<div class="clear"></div>
</div>
@Html.Partial("~/Views/Partials/Projects/ProjectDetails.cshtml")
</div>
</section>
@section EndScripts {
<script type="text/javascript">
(function () {
$(".fancybox")
.fancybox({
// options
loop: true,
arrows: true,
infobar: false
});
})();
</script>
}
-21
View File
@@ -1,21 +0,0 @@
@inherits UmbracoTemplatePage
@{
Layout = "~/Views/Master.cshtml";
}
<div class="page-content">
<div class="sidebar-area">
<div class="sidebar-content">
<div class="content-wrapper">
@Html.Partial("~/Views/Partials/Members/ProfileNavigation.cshtml")
</div><!-- .content-wrapper -->
</div><!-- .sidebar-content -->
</div><!-- .sidebar-area -->
<div class="main-area">
<div class="main-content">
<div class="content-wrapper">
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = true })
@Html.Raw(Model.Content.GetPropertyValue<string>("bodyText"))
</div><!-- .content-wrapper -->
</div><!-- .main-content -->
</div><!-- .main-area -->
</div><!-- .page-content -->
-76
View File
@@ -1,76 +0,0 @@
@inherits UmbracoTemplatePage
@{
Layout = "~/Views/Master.cshtml";
}
<div class="page-content">
<div class="sidebar-area">
<div class="sidebar-content">
<div class="content-wrapper">
<nav>
<ul class="level-1">
<li class="filter-orderBy">
<h3>Projects</h3>
<ul class="level-2">
<li><h4><a href="?orderBy=updateDate">Updated projects</a></h4></li>
<li><h4><a href="?orderBy=popularity">Popular projects</a></h4></li>
</ul>
</li>
<li class="filter-version">
<h3>By Version</h3>
<ul class="level-2">
<li><h4><a href="?version=7">Version 7</a></h4></li>
<li><h4><a href="?version=6">Version 6</a></h4></li>
<li><h4><a href="?version=4">Version 4</a></h4></li>
</ul>
</li>
<li class="filter-category">
<h3>By Category</h3>
@Html.Partial("~/Views/Partials/Projects/ListCategories.cshtml")
</li>
</ul>
</nav>
</div><!-- .content-wrapper -->
</div><!-- .sidebar-content -->
</div><!-- .sidebar-area -->
<div class="main-area">
<div class="main-content">
<div class="content-wrapper">
<div>
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = true })
</div>
<div class="packages-content">
@Html.Partial("~/Views/Partials/Projects/ListProjects.cshtml")
</div>
</div><!-- .content-wrapper -->
</div><!-- .main-content -->
</div><!-- .main-area -->
</div><!-- .page-content -->
@section EndScripts
{
<script type="text/javascript">
function getUrlVars() {
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (var i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
var query = getUrlVars();
var filter = '.filter-' + query[0];
$(filter).addClass('open');
$('.level-1>li').on('click', function () {
$('.level-1>li').removeClass('open');
$(this).addClass('open');
});
</script>
}
@@ -1,30 +0,0 @@
@inherits UmbracoTemplatePage
@{
Layout = "~/Views/Master.cshtml";
}
<div class="has-sidebar">
<div class="page-content">
<div id="overlay" class="overlay"></div>
<div class="sidebar-area">
<div class="sidebar-content">
<div class="content-wrapper">
<nav>
<ul class="level-1">
<li class="">
<h3>Profile</h3>
</li>
</ul>
</nav>
</div><!-- .content-wrapper -->
</div><!-- .sidebar-content -->
</div><!-- .sidebar-area -->
<div class="main-area">
<div class="main-content">
<div class="content-wrapper">
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = true })
@Html.Partial("~/Views/Partials/Members/PublicProfile.cshtml")
</div><!-- .content-wrapper -->
</div><!-- .main-content -->
</div><!-- .main-area -->
</div><!-- .page-content -->
</div>
-363
View File
@@ -1,363 +0,0 @@
@using OurUmbraco.Release
@inherits UmbracoTemplatePage
@{
Layout = "~/Views/Master.cshtml";
var downloads = Model.Content.Children().Where(x => x.ContentType.Alias == "ReleaseDownload").ToArray();
if (Request.Params["fromdownload"] != null)
{
if (downloads.Any())
{
var downloadIds = new List<int>();
foreach (var item in downloads)
{
downloadIds.Add(item.Id);
}
Response.Redirect("/ReleaseDownload?id=" + downloadIds.First(), false);
}
}
var currentPage = UmbracoContext.Current.PublishedContentRequest.PublishedContent;
var allReleases = Release.GetAllReleaseFromFile();
var release = allReleases.First(x => x.version == currentPage.Name);
var completedIssues = release.issues.Count(x => x.state == "Fixed");
var totalIssues = release.issues.Count();
var percentComplete = Math.Round(((double)100 / totalIssues) * completedIssues);
var releaseDateParsed = DateTime.Now;
if (release.releaseDate != string.Empty)
{
releaseDateParsed = DateTime.Parse(release.releaseDate.Substring(3, 2) + "-" + release.releaseDate.Substring(0, 2) + "-" + release.releaseDate.Substring(6));
}
var releaseDate = release.releaseDate == "" ? "Not yet determined" : releaseDateParsed.ToString("dddd, MMMM d yyyy");
var umbracoHelper = new UmbracoHelper(UmbracoContext.Current);
var releaseContent = umbracoHelper.TypedContent(umbracoHelper.UmbracoContext.PageId);
if (releaseContent != null)
{
var overrideDescription = releaseContent.GetPropertyValue<bool>("overrideYouTrackDescription");
if (overrideDescription)
{
release.releaseDescription = releaseContent.GetPropertyValue<string>("bodyText");
}
var overrideReleaseDate = releaseContent.GetPropertyValue<string>("overrideYouTrackReleaseDate");
if (string.IsNullOrWhiteSpace(overrideReleaseDate) == false)
{
releaseDate = overrideReleaseDate;
}
}
}
<div class="has-sidebar release">
<div class="page-content">
<div class="sidebar-area">
<div class="sidebar-content">
<div class="content-wrapper">
<nav>
<ul class="level-1">
@foreach (var currentRelease in allReleases.Where(x => x.released && x.currentRelease))
{
<li>
<a class="active" href="/contribute/releases/@(currentRelease.version.Replace(".", string.Empty))"><h3>Latest Release - v@(currentRelease.version)</h3></a>
</li>
}
<li>
<a href="/contribute/progress"><h3>In Progress</h3></a>
</li>
<li>
<a href="/contribute/releases"><h3>All Releases</h3></a>
<ul class="level-2">
<li>
<a href=""><h4>Umbraco 7</h4></a>
</li>
<li>
<a href=""><h4>Umbraco 6</h4></a>
</li>
<li>
<a href=""><h4>Umbraco 4</h4></a>
</li>
</ul>
</li>
</ul>
</nav>
</div><!-- .content-wrapper -->
</div><!-- .sidebar-content -->
</div>
<div class="main-area">
<div class="main-content">
<div class="content-wrapper">
<div>
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = true })
</div>
<style>
.release-page .explain h2 {
margin-top: 12px;
font-size: 2em;
margin-bottom: .3rem;
color: rgba(0,0,0,.8);
}
.release-page .dot {
border: none;
}
.release-page .dot.big {
position: relative;
text-indent: 0;
margin: 15px auto 0;
}
.release-page .chart {
height: 60px;
width: 60px;
top: initial;
left: initial;
text-align: center;
}
.release-page .chart p {
vertical-align: middle;
line-height: 3.7rem;
display: inline-block;
}
.release-page .chart canvas {
top: 0px;
left: 0px;
}
.statuses ul {
list-style-type: none;
}
.statuses ul li {
position: relative;
margin-bottom: 10px;
padding-left: 10px;
}
.statuses li:before {
position: absolute;
top: -4px;
left: -25px;
font-size: 1.5em;
}
</style>
<div class="row explain">
<div class="col-sm-2">
<span class="dot big progress">
<div class="chart" data-percent="percentComplete">
<p>@(percentComplete)%</p>
</div>
</span>
</div>
<div class="col-sm-10">
<h2>v@(Model.Content.Name)</h2>
<small>Status: <span>@(release.released ? "Released" : "In Progress")</span></small>
@if (release.released == false)
{
<h3>
<span>@(percentComplete)% complete</span>
<span>@(100 - percentComplete)% in progress</span>
</h3>
<h3>Target release date: <span style="color:#5B5B5B">@releaseDate</span></h3>
}
@if (Model.Content.HasValue("releaseNotes"))
{
<small><p>@Html.Raw(Model.Content.GetPropertyValue<string>("releaseNotes"))</p></small>
}
</div>
</div>
<div>
@{
var countIsOdd = ((downloads.Count() & 1) != 0) ? true : false;
if (downloads.Any())
{
<div class="get-release row">
@foreach (var item in downloads)
{
var background = item.IsFirst() ? "/images/releases/download.png" : "/media/2483095/download.png";
var width = (item.IsLast() && countIsOdd) ? 895 : 380;
var numberOfDownloads = item.GetPropertyValue<int>("numberOfDownloads");
numberOfDownloads = numberOfDownloads + OurUmbraco.Our.Utils.GetReleaseDownloadCount(item.Id);
if (item.Name.Contains("WebPI") == false)
{
<div class="release @(item.IsFirst() == false ? "bin" : "zip") col-sm-1">
<i class="icon-Download-alt"></i>
</div>
<div class="release @(item.IsFirst() == false ? "bin" : "zip") col-md-5">
<h3><a href="/ReleaseDownload?id=@item.Id" onclick="_gaq.push(['_trackEvent', 'Release', 'Download', '@item.Name']);">@item.Name</a></h3>
@if (item.IsFirst())
{
<p>This is the main Umbraco download, generally you won't need anything else.</p>
}
<small>Downloaded @numberOfDownloads times - uploaded @(item.GetPropertyValue<DateTime>("UploadDate").ToString("D"))</small>
</div>
}
else
{
<div style="display: none;"><a href="/ReleaseDownload?id=@item.Id" onclick="_gaq.push(['_trackEvent', 'Release', 'Download', '@item.Name']);">@item.Name</a></div>
}
}
</div>
}
}
<div class="row markdown-syntax">
<div class="col-md-5">
@if (release.releaseDescription != string.Empty && currentPage.HasValue("bodyText") == false)
{
<span>
<h2>Summary</h2>
<p><span>@Html.Raw(release.releaseDescription)</span></p>
</span>
}
@if (Model.Content.HasValue("bodyText"))
{
<h2>Release notes</h2>
@Html.Raw(Model.Content.GetPropertyValue<string>("bodyText"))
}
<h2>Related changes from the issue tracker</h2>
<div class="panel-wrapper">
<div class="panel-left">
<!-- Columns for statuses -->
<div class="statuses group">
<div class="status features">
<h3>Features</h3>
@{
var features = release.issues.Where(x => x.type.ToLowerInvariant().Contains("feature")).ToList();
if (features.Any())
{
foreach (var issue in features)
{
<ul>
<li class="@issue.StateIcon()" title="@issue.state">
<a href="http://issues.umbraco.org/issue/@issue.id" target="_blank">@issue.id - @issue.title</a>
</li>
</ul>
}
}
else
{
<p>No items to display</p>
}
}
</div>
<div class="status breaking">
<h3>Breaking Changes</h3>
@{
var breaking = release.issues.Where(x => x.breaking).ToList();
if (breaking.Any())
{
foreach (var issue in breaking)
{
<ul>
<li class="@issue.StateIcon()" title="@issue.state">
<a href="http://issues.umbraco.org/issue/@issue.id" target="_blank">@issue.id - @issue.title</a>
</li>
</ul>
}
}
else
{
<p>No items to display</p>
}
}
</div>
<div class="status issues">
<h3>Issues & Tasks</h3>
@{
var issues = release.issues.Where(x => x.breaking == false && x.type.ToLowerInvariant().Contains("feature") == false).ToList();
if (issues.Any())
{
foreach (var issue in issues)
{
<ul>
<li class="@issue.StateIcon()" title="@issue.state">
<a href="http://issues.umbraco.org/issue/@issue.id" target="_blank">@issue.id - @issue.title</a>
</li>
</ul>
}
}
else
{
<p>No items to display</p>
}
}
</div>
</div>
</div>
</div>
</div>
<div class="col-md-5 col-md-offset-2">
<h2>Getting started</h2>
<p>Make sure to give the <a href="http://our.umbraco.org/documentation/Installation/">installation instructions a read</a>.</p>
<p>
Check the <strong>free</strong> <a href="http://umbraco.tv/videos/umbraco-v7/implementor/">foundation videos</a> on how to get started building Umbraco sites. They're available from:<br />
<ul>
<li><a href="http://umbraco.tv/videos/umbraco-v7/implementor/fundamentals/installation/">Installation</a></li>
<li><a href="http://umbraco.tv/videos/umbraco-v7/implementor/fundamentals/document-types/">Document Types</a></li>
<li><a href="http://umbraco.tv/videos/umbraco-v7/implementor/fundamentals/templating/">Templating</a></li>
<li><a href="http://umbraco.tv/videos/umbraco-v7/implementor/fundamentals/stylesheets-and-javascript/">Stylesheets and Javascript</a></li>
</ul>
<h2>World's best community</h2>
<p>You'll find our über active community working hard to help each other at Our Umbraco: <a href="http://our.umbraco.org">http://our.umbraco.org</a></p>
<h2>Upgrading from older versions</h2>
<p>Make sure to read the <a href="http://our.umbraco.org/documentation/Installation/Upgrading/">upgrade instructions</a> before you attempt an upgrade.</p>
<h2>Found a bug?</h2>
<p>We're happy to help you with any problems you encounter, so please report them in <a href="http://issues.umbraco.org/issues/U4">the issue tracker</a> and use the “Affected versions” field to set it to @Model.Content.Name. <br />Do a search first though, if the issue already exists, give it an extra vote.</p>
@if (Model.Content.HasValue("linkToChangeset"))
{
<h2>Source code</h2>
<p>The source for <a href="@(Model.Content.GetPropertyValue<string>("linkToChangeset"))">this specific release is available for download from the repository</a> (click the "ZIP" button).</p>
}
@if (Model.Content.GetPropertyValue<bool>("hasNuGet"))
{
<h2>Also available on NuGet</h2>
<div class="nuget-badge">
<a href="https://nuget.org/packages/UmbracoCms/@Model.Content.Name">
<p><code>PM&gt; Install-Package UmbracoCms -Version @Model.Content.Name</code></p>
</a>
</div>
}
</div><!-- col-md-5 col-md-offset-2 -->
</div><!-- .row .markdown-syntax -->
</div>
</div><!-- .content-wrapper -->
</div><!-- .main-content -->
</div><!-- .main-area -->
</div><!-- .page-content -->
</div><!-- has-sidebar -->
@section EndScripts {
<script src="https://cdnjs.cloudflare.com/ajax/libs/easy-pie-chart/2.1.4/jquery.easypiechart.min.js"></script>
<script type="text/javascript">
setTimeout(function () {
$('.chart').easyPieChart({
size: 60,
barColor: '#569327',
scaleColor: false,
trackColor: '#daf0c9'
});
}, 300);
</script>
}
-190
View File
@@ -1,190 +0,0 @@
@inherits UmbracoTemplatePage
@{
Layout = "~/Views/Master.cshtml";
}
<div class="has-sidebar release">
<div class="page-content">
<div class="sidebar-area">
<div class="sidebar-content">
<div class="content-wrapper">
<nav>
<ul class="level-1">
<li>
<a href="/contribute/progress">
<h3>In Progress</h3>
</a>
</li>
<li class="active open">
<a href="/contribute/releases">
<h3>All releases</h3>
</a>
<ul class="level-2">
<li class="active">
<a href="/contribute/releases/compare">
<h4>Compare Versions</h4>
</a>
</li>
</ul>
</li>
</ul>
</nav>
</div> <!-- .content-wrapper -->
</div> <!-- .sidebar-content -->
</div>
<div class="main-area">
<div class="main-content">
<div class="content-wrapper">
<div>
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = true })
</div>
<style>
.release .explain {
margin-top: 20px;
border-bottom: 1px solid #eee;
border-top: 1px solid #eee;
}
.release .explain h2 {
margin-top: 12px;
font-size: 2em;
margin-bottom: .3rem;
color: rgba(0,0,0,.8);
}
.release .dot {
border: none;
}
.release .dot.big {
position: relative;
text-indent: 0;
margin: 15px !important;
float: left;
}
.statuses ul {
list-style-type: none;
}
.statuses ul li {
position: relative;
margin-bottom: 10px;
padding-left: 10px;
}
.statuses li:before {
position: absolute;
top: -4px;
left: -25px;
font-size: 1.5em;
}
.release .markdown-syntax a {
text-decoration: none;
}
.release .markdown-syntax a:hover {
text-decoration: underline;
}
.markdown-syntax.douh {
margin-top: 0 !important;
}
.release .chart {
height: 60px;
width: 60px;
top: inherit;
left: inherit;
text-align: center;
}
.release .chart p {
vertical-align: middle;
line-height: 2.7rem;
display: inline-block;
}
.release .chart canvas {
top: 0;
left: 0;
}
.release .chartDesc {
float: left;
position: relative;
line-height: 3.6em;
}
.release select {
border-radius: 0;
padding: 10px;
background-position: 95% center;
float: left;
}
.release .titles {
padding: 12px 15px;
font-size: .8rem;
text-transform: uppercase;
font-weight: 700;
letter-spacing: .5px;
}
.release .to {
margin-left: 20px;
margin-right: 20px;
}
.release .button {
float: right;
}
.explain .col-xs-12 {
min-height: 50px;
}
.error {
color: red !important;
}
</style>
<div class="container">
<div class="row markdown-syntax douh">
<div class="col-sm-12">
<h1>Compare Releases</h1>
@Html.Partial("~/Views/Partials/Releases/ReleasesDropdown.cshtml")
</div>
</div>
</div>
</div> <!-- .content-wrapper -->
</div> <!-- .main-content -->
</div> <!-- .main-area -->
</div> <!-- .page-content -->
</div> <!-- has-sidebar -->
@section EndScripts
{
<script src="https://cdnjs.cloudflare.com/ajax/libs/easy-pie-chart/2.1.4/jquery.easypiechart.min.js"></script>
<script type="text/javascript">
function offsetAnchor() {
if (location.hash.length !== 0) {
window.scrollTo(window.scrollX, window.scrollY - 120);
}
}
$(window).on("hashchange", function () {
offsetAnchor();
});
setTimeout(function () {
$('.chart').easyPieChart({
size: 60,
barColor: '#569327',
scaleColor: false,
trackColor: '#daf0c9'
});
offsetAnchor();
}, 300);
</script>
}
@@ -1,54 +0,0 @@
@using OurUmbraco.Release
@inherits UmbracoTemplatePage
@{
Layout = "~/Views/Master.cshtml";
var allReleases = Release.GetAllReleaseFromFile();
}
<div class="has-sidebar">
<!-- Apply to body -->
<div class="page-content">
<div class="sidebar-area">
<div class="sidebar-content">
<div class="content-wrapper">
<nav>
<ul class="level-1">
@foreach (var currentRelease in allReleases.Where(x => x.released && x.currentRelease))
{
<li>
<a class="active" href="/contribute/releases/@(currentRelease.version.Replace(".", string.Empty))">
<h3>Latest Release - v@(currentRelease.version)</h3>
</a>
</li>
}
<li>
<a href="/contribute/progress"><h3>In Progress</h3></a>
</li>
<li class="active open">
<a href="/contribute/releases"><h3>All releases</h3></a>
<ul class="level-2">
<li>
<a href="/contribute/releases/compare"><h4>Compare Versions</h4></a>
</li>
</ul>
</li>
</ul>
</nav>
</div><!-- .content-wrapper -->
</div><!-- .sidebar-content -->
</div>
<div class="main-area">
<div class="main-content">
<div class="content-wrapper">
<div>
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = true })
</div>
<!-- <div class="markdown-syntax"><div data-bind="template: { name: 'releases-template', foreach: currentReleases }"></div></div>-->
<div class="markdown-syntax">
@Html.Partial("~/Views/Partials/Releases/AllReleases.cshtml")
</div>
</div><!-- .content-wrapper -->
</div><!-- .main-content -->
</div><!-- .main-area -->
</div><!-- .page-content -->
</div>
@@ -1,171 +0,0 @@
@using OurUmbraco.Release
@inherits UmbracoTemplatePage
@{
Layout = "~/Views/Master.cshtml";
var allReleases = Release.GetAllReleaseFromFile();
var inProgress = allReleases.Where(x => x.inProgressRelease).ToList();
var umbracoHelper = new UmbracoHelper(UmbracoContext.Current);
var currentPage = umbracoHelper.TypedContent(umbracoHelper.UmbracoContext.PageId);
var releaseLanding = currentPage.Parent.Children().FirstOrDefault(x => x.ContentType.Alias == "ReleaseLanding");
}
<div class="has-sidebar">
<div class="page-content">
<div class="sidebar-area">
<div class="sidebar-content">
<div class="content-wrapper">
<nav>
<ul class="level-1">
@foreach (var currentRelease in allReleases.Where(x => x.released && x.currentRelease))
{
<li>
<a class="active" href="/contribute/releases/@(currentRelease.version.Replace(".", string.Empty))">
<h3>Latest Release - v@(currentRelease.version)</h3>
</a>
</li>
}
<li class="active open">
<a href="/contribute/progress">
<h3>In Progress</h3>
</a>
<ul class="level-2">
@foreach (var release in inProgress)
{
<li>
<a href="/contribute/releases/@(release.version.Replace(".", string.Empty))">
<h4>v@(release.version)</h4>
</a>
</li>
}
</ul>
</li>
<li>
<a href="/contribute/releases">
<h3>All Releases</h3>
</a>
</li>
</ul>
</nav>
</div>
<!-- .content-wrapper -->
</div>
<!-- .sidebar-content -->
</div>
<div class="main-area">
<div class="main-content">
<div class="content-wrapper">
<div style="margin-top: 25px;">
<umbraco:Macro linkToCurrent="1" Alias="Breadcrumb" runat="server"></umbraco:Macro>
</div>
<div class="markdown-syntax">
<h1>In progress</h1>
<p><em>Versions of Umbraco currently in production</em></p>
</div>
<!-- #markdown-docs -->
<div class="releaseTable row">
@foreach (var release in inProgress)
{
var completedIssues = release.issues.Count(x => x.state == "Fixed");
var totalIssues = release.issues.Count();
var percentComplete = Math.Round(((double)100 / totalIssues) * completedIssues);
var releaseDateParsed = DateTime.Now;
if (release.releaseDate != string.Empty)
{
releaseDateParsed = DateTime.Parse(release.releaseDate.Substring(3, 2) + "-" + release.releaseDate.Substring(0, 2) + "-" + release.releaseDate.Substring(6));
}
var releaseDate = release.releaseDate == "" ? "Not yet determined" : releaseDateParsed.ToString("dddd, MMMM d yyyy");
IPublishedContent releaseContent = null;
if (releaseLanding != null)
{
releaseContent = releaseLanding.Children().FirstOrDefault(x => x.Name.ToLowerInvariant() == release.version.ToLowerInvariant());
if (releaseContent != null)
{
var overrideDescription = releaseContent.GetPropertyValue<bool>
("overrideYouTrackDescription");
if (overrideDescription)
{
release.releaseDescription = releaseContent.GetPropertyValue<string>
("bodyText");
}
var overrideReleaseDate = releaseContent.GetPropertyValue<string>
("overrideYouTrackReleaseDate");
if (string.IsNullOrWhiteSpace(overrideReleaseDate) == false)
{
releaseDate = overrideReleaseDate;
}
}
}
<div class="inprogress">
<div class="col-xs-3">
<span class="dot big progress">
<div class="chart" data-percent="@percentComplete">
<div class="percentage">@(percentComplete)%</div>
</div>
<span class="line v-line top" style="@(release == inProgress.First() == false ? " display: block;" : null)"></span>
<span class="line v-line"></span>
<span class="line h-line"></span>
</span>
<span class="dot small">
<span class="line v-line" style="@(release == inProgress.Last() == false ? " display: block;" : null)"></span>
<span class="line h-line"></span>
</span>
</div>
<div class="col-xs-9">
<div class="row explain">
<div class="col-xs-12">
<h4 class="text-right"><a href="/contribute/releases/@(release.version.Replace(".",""))">v@(release.version)</a></h4>
<small><span>@Html.Raw(release.releaseDescription)</span></small>
</div>
<div class="col-xs-6">
<div class="changes">
<small>Features: <span>@(release.issues.Count(x => x.type.ToLowerInvariant().Contains("feature")))</span></small>
<small>Issues: @(release.issues.Count(x => x.type.ToLowerInvariant().Contains("feature") == false && x.breaking == false))<span></span></small>
<small>Breaking changes: <span>@(release.issues.Count(x => x.breaking))</span></small>
</div>
</div>
<div class="col-xs-6">
<div class="changes">
<small>Release date:</small>
<small>@releaseDate</small>
</div>
</div>
</div>
</div>
</div>
}
</div>
</div>
<!-- .content-wrapper -->
</div>
<!-- .main-content -->
</div>
<!-- .main-area -->
</div>
<!-- .page-content -->
</div>
@section EndScripts {
<script src="https://cdnjs.cloudflare.com/ajax/libs/easy-pie-chart/2.1.4/jquery.easypiechart.min.js"></script>
<script type="text/javascript">
setTimeout(function () {
$('.chart').easyPieChart({
size: 60,
barColor: '#569327',
scaleColor: false,
trackColor: '#daf0c9'
});
}, 300);
</script>
}
-20
View File
@@ -1,20 +0,0 @@
@inherits UmbracoTemplatePage
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Umbraco Package Repository</title>
<link href="/umbraco_client/ui/default.css" type="text/css" rel="stylesheet" />
<link href="/umbraco_client/panel/style.css" type="text/css" rel="stylesheet" />
<link href="/css/repository.css" type="text/css" rel="stylesheet" />
</head>
<body>
<div id="TheForm">
<div id="table1" class="propertyPane guiDialogNormal">
<div class="propertyContent">
@Umbraco.RenderMacro("Repository")
</div>
</div>
</div>
</body>
</html>
@@ -1,9 +0,0 @@
@inherits UmbracoTemplatePage
@{
Layout = "~/Views/RepositoryMaster.cshtml";
}
@Umbraco.RenderMacro("Repository-PopularPackages")
<div id="repoForm">
<h3>Log in using your our.umbraco.org credentials</h3>
@Umbraco.RenderMacro("MemberLogin", new { NextPage = "30186", ErrorMessage = "Unknown Login" })
</div>
@@ -1,84 +0,0 @@
@inherits UmbracoTemplatePage
@inherits UmbracoTemplatePage
@{
HttpContext.Current.Response.AddHeader("p3p", "CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"");
}<!DOCTYPE html>
<html>
<head>
<title>Umbraco Package Repository</title>
<link href="/css/repo-styles.css" type="text/css" rel="stylesheet" />
<link href="/css/qtip2.css" type="text/css" rel="stylesheet" />
<script type="text/javascript">
var _callback = '@(Request.QueryString["callback"])';
var _qs = '@(Request.RawUrl.Substring( Request.RawUrl.IndexOf('?')+1 ))';
</script>
<script type="text/javascript" src="/scripts/libs/jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="https://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"></script>
<script type="text/javascript" src="/scripts/repo/typewatch.js"></script>
<script type="text/javascript" src="/scripts/libs/qtip2.js"></script>
<!-- packagetips -->
<script type="text/javascript" src="/scripts/repo/packageTips.js"></script>
<script type="text/javascript" src="/scripts/repo/repoSearch.js"></script>
<script id="search-result" type="text/x-jquery-tmpl">
<li class="clearfix">
<div class="deliPackage">
<div class="brief">
{{if Fields.image == null}}
<a href="/repo_viewproject?@(Request.RawUrl.Substring( Request.RawUrl.IndexOf('?')+1 ))&project_id={{= Id}}" class="packageIcon" style="background: url(/css/img/package2.png?bgcolor=fff&amp;width=50&amp;height=50&amp;format=png;) no-repeat top left;">
Package
</a>
{{/if}}
{{if Fields.image != null}}
<a href="/repo_viewproject?@(Request.RawUrl.Substring( Request.RawUrl.IndexOf('?')+1 ))&project_id={{= Id}}" class="packageIcon" style="background: url({{= Fields.image}}?bgcolor=fff&amp;width=50&amp;height=50&amp;format=png;) no-repeat top left;">
Package
</a>
{{/if}}
<h3>
<a href="/repo_viewproject?@(Request.RawUrl.Substring( Request.RawUrl.IndexOf('?')+1 ))&project_id={{= Id}}">{{= Fields.nodeName}}</a>
</h3>
<div class="category">
{{= Fields.category}}
</div>
<div class="commercialIndicator free">
{{= Fields.listingType}}
</div>
</div>
<div class="hiLite">
<p>
<a href="/repo_viewproject?@(Request.RawUrl.Substring( Request.RawUrl.IndexOf('?')+1 ))&project_id={{= Id}}" title="{{= Fields.nodeName}}" rel="{{= Fields.uniqueId}}">{{= Fields.body}}</a>
</p>
</div>
<div class="popularity">
<div class="karma">
{{= Fields.karma}} <small>Karma</small>
</div>
<div class="downloads">
{{= Fields.downloads}} <small>Downloads</small>
</div>
</div>
</div>
</li>
</script>
@RenderSection("head", false)
</head>
<body>
<form runat="server">
<div id="TheForm">
<div id="search">
<div><input type="text" id="search-field" value="Search..." /><!-- <em>or</em> <a href="#">browse</a>--></div>
</div>
<div id="body">
<ul class="projects" id="search-result-holder" style="display: none;"></ul>
<div id="search-no-results">
<h3>No luck!</h3>
<p>There's no project that matches <strong><span id="search-query"></span></strong>.</p>
<p>Maybe it doesn't exist, maybe it hasn't been approved yet. After all, it does take community kudos from at least 15 people to make it inside this repository</p>
</div>
<div id="repo-content">
@RenderBody()
</div>
</div>
</div>
</form>
</body>
</html>
@@ -1,18 +0,0 @@
@inherits UmbracoTemplatePage
@{
Layout = "~/Views/RepositoryMaster.cshtml";
}
@section head
{
<link rel="stylesheet" type="text/css" href="/css/shadowbox.css" />
<script type="text/javascript" src="/scripts/shadowbox/shadowbox.js"></script>
<script type="text/javascript">
Shadowbox.init({ overlayColor: '#000000', overlayOpacity: '0.7', onFinish: addClickClose });
function addClickClose() {
$('#sb-content').unbind('click').click(function () { Shadowbox.close(); });
}
</script>
}
@Umbraco.Field("bodyText")
-145
View File
@@ -1,145 +0,0 @@
@using OurUmbraco.Release
@inherits UmbracoTemplatePage
@{
Layout = "~/Views/Master.cshtml";
if (Request.Url != null && (Request.Url.AbsolutePath.ToLowerInvariant() == "/roadmap/" || Request.Url.AbsolutePath.ToLowerInvariant() == "/roadmap"))
{
var newUrl = Request.Url.AbsoluteUri.Replace("/roadmap", "/contribute/roadmap");
Response.Redirect(newUrl, true);
}
var roadmap = Roadmap.GetRoadmapReleasesFromFile();
var umbracoHelper = new UmbracoHelper(UmbracoContext.Current);
var currentPage = umbracoHelper.TypedContent(umbracoHelper.UmbracoContext.PageId);
var releaseLanding = currentPage.Parent.Children().FirstOrDefault(x => x.ContentType.Alias == "ReleaseLanding");
var title = Model.Content.Name;
var altHeadline = Model.Content.GetPropertyValue<string>("alternativeHeadline");
if (string.IsNullOrWhiteSpace(altHeadline) == false)
{
title = altHeadline;
}
}
<style>
.chart canvas {
top: -3px;
position: absolute;
left: -3px;
}
</style>
<div class="subpage wrapper">
<div>
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = false })
</div>
<div class="markdown-syntax">
<h1>@title</h1>
@Html.Raw(Model.Content.GetPropertyValue<string>("bodyText"))
<h2>Planned Releases:</h2>
</div>
@foreach (var release in roadmap.OrderBy(x => x.version))
{
var completedIssues = release.issues.Count(x => x.state == "Fixed");
var totalIssues = release.issues.Count();
var percentComplete = Math.Round(((double)100 / totalIssues) * completedIssues);
var releaseDateParsed = DateTime.Now;
if (release.releaseDate != string.Empty)
{
releaseDateParsed = DateTime.Parse(release.releaseDate.Substring(3, 2) + "-" + release.releaseDate.Substring(0, 2) + "-" + release.releaseDate.Substring(6));
}
var releaseDate = release.releaseDate == "" ? "Not yet determined" : releaseDateParsed.ToString("dddd, MMMM d yyyy");
IPublishedContent releaseContent = null;
if (releaseLanding != null)
{
releaseContent = releaseLanding.Children().FirstOrDefault(x => string.Equals(x.Name, release.version, StringComparison.InvariantCultureIgnoreCase));
if (releaseContent != null)
{
var overrideDescription = releaseContent.GetPropertyValue<bool>("overrideYouTrackDescription");
if (overrideDescription)
{
release.releaseDescription = releaseContent.GetPropertyValue<string>("bodyText");
}
var overrideReleaseDate = releaseContent.GetPropertyValue<string>("overrideYouTrackReleaseDate");
if (string.IsNullOrWhiteSpace(overrideReleaseDate) == false)
{
releaseDate = overrideReleaseDate;
}
}
}
<div class="releaseListing">
<div class="plannedreleases">
<div class="row" style="margin-top: 50px; margin-bottom: 50px;">
<div class="col-xs-3">
<span class="dot big progress">
<div class="chart" data-percent="@percentComplete">
<div class="percentage">@(percentComplete)%</div>
</div>
<span class="line v-line"></span>
<span class="line h-line"></span>
</span>
<span class="dot small">
<span class="line v-line"></span>
<span class="line h-line"></span>
</span>
<span class="dot small">
<span class="line h-line"></span>
</span>
</div>
<div class="col-xs-9">
<div class="row explain">
<div class="col-xs-12">
<h4 class="text-right"><a href="/contribute/releases/@(release.version.Replace(".",""))">v@(release.version)</a></h4>
@if (release.releaseDescription != string.Empty) {
<small><span>@Html.Raw(release.releaseDescription)</span></small>
}
</div>
<div class="col-xs-6">
<div class="changes">
<small>Features: <span>@release.issues.Count(x => x.type.ToLowerInvariant().Contains("feature"))</span></small>
<small>Issues: @release.issues.Count(x => x.type.ToLowerInvariant().Contains("feature") == false && x.breaking == false)<span></span></small>
<small>Breaking changes: <span>@release.issues.Count(x => x.breaking)</span></small>
</div>
</div>
<div class="col-xs-6">
<div class="changes">
<small>Release date:</small>
<small>@releaseDate</small>
</div>
</div>
<div class="col-xs-12" style="min-height: initial">
<h1 style="margin-top: 11px; margin-bottom: 30px; font-size: 1.4rem;">Planned features:</h1>
</div>
<div class="issues">
@foreach (var issue in release.issues.Where(x => x.type.ToLowerInvariant().Contains("feature")))
{
<div class="col-sm-6" style="min-height: initial">
<div class="@issue.state.Replace(" ", string.Empty)">
<a href="http://issues.umbraco.org/issue/@issue.id" target="_blank"><small>@issue.id @issue.title</small></a>
</div>
</div>
}
</div>
</div>
</div>
</div>
</div>
</div>
}
</div>
@section EndScripts
{
<script src="https://cdnjs.cloudflare.com/ajax/libs/easy-pie-chart/2.1.4/jquery.easypiechart.min.js"></script>
<script type="text/javascript">
setTimeout(function () {
$('.chart').easyPieChart({
size: 60,
barColor: '#569327',
scaleColor: false,
trackColor: '#daf0c9'
});
}, 300);
</script>
}

Some files were not shown because too many files have changed in this diff Show More