Merge branch 'master' into move-masterpages-to-views

# Conflicts:
#	.gitignore
#	OurUmbraco.Site/OurUmbraco.Site.csproj
#	OurUmbraco.Site/Views/MacroPartials/Members/ForgotPassword.cshtml
#	OurUmbraco.Site/Views/Partials/Members/ForgotPassword.cshtml
#	OurUmbraco.Site/Views/Partials/Members/Login.cshtml
#	OurUmbraco.Site/Views/Search/Search.aspx.cs
#	OurUmbraco.Site/Views/Web.config
#	OurUmbraco.Site/config/ClientDependency.config
#	OurUmbraco.Site/config/Dashboard.config
#	OurUmbraco.Site/config/imageprocessor/cache.config
#	OurUmbraco.Site/masterpages/Community.master
#	OurUmbraco.Site/masterpages/ReleaseProgress.master
#	OurUmbraco.Site/masterpages/Repository/Projects.master
#	OurUmbraco.Site/masterpages/popular.master
#	OurUmbraco.Site/packages.config
#	OurUmbraco/Our/Controllers/LoginController.cs
#	OurUmbraco/Our/MigrationsHandler.cs
#	OurUmbraco/OurUmbraco.csproj
#	OurUmbraco/packages.config
This commit is contained in:
Sebastiaan Janssen
2017-01-21 18:47:09 +01:00
parent fd12775e86
commit e8565650e4
54 changed files with 1061 additions and 342 deletions
+1 -1
View File
@@ -65,4 +65,4 @@ OurUmbraco.Site/apidocs/
OurUmbraco.Site/App_Data/Documentation/
OurUmbraco.Site/App_Data/NotificationTest/
build/tools/node*
wwwcache/*
wwwcache/
@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="utf-8"?>
<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings">
<TelemetryInitializers>
<Add Type="Microsoft.ApplicationInsights.DependencyCollector.HttpDependenciesParsingTelemetryInitializer, Microsoft.AI.DependencyCollector" />
<Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer" />
<Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureWebAppRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer" />
<Add Type="Microsoft.ApplicationInsights.WindowsServer.BuildInfoConfigComponentVersionTelemetryInitializer, Microsoft.AI.WindowsServer" />
<Add Type="Microsoft.ApplicationInsights.Web.WebTestTelemetryInitializer, Microsoft.AI.Web" />
<Add Type="Microsoft.ApplicationInsights.Web.SyntheticUserAgentTelemetryInitializer, Microsoft.AI.Web">
<!-- Extended list of bots:
search|spider|crawl|Bot|Monitor|BrowserMob|BingPreview|PagePeeker|WebThumb|URL2PNG|ZooShot|GomezA|Google SketchUp|Read Later|KTXN|KHTE|Keynote|Pingdom|AlwaysOn|zao|borg|oegp|silk|Xenu|zeal|NING|htdig|lycos|slurp|teoma|voila|yahoo|Sogou|CiBra|Nutch|Java|JNLP|Daumoa|Genieo|ichiro|larbin|pompos|Scrapy|snappy|speedy|vortex|favicon|indexer|Riddler|scooter|scraper|scrubby|WhatWeb|WinHTTP|voyager|archiver|Icarus6j|mogimogi|Netvibes|altavista|charlotte|findlinks|Retreiver|TLSProber|WordPress|wsr-agent|http client|Python-urllib|AppEngine-Google|semanticdiscovery|facebookexternalhit|web/snippet|Google-HTTP-Java-Client-->
<Filters>search|spider|crawl|Bot|Monitor|AlwaysOn</Filters>
</Add>
<Add Type="Microsoft.ApplicationInsights.Web.ClientIpHeaderTelemetryInitializer, Microsoft.AI.Web" />
<Add Type="Microsoft.ApplicationInsights.Web.OperationNameTelemetryInitializer, Microsoft.AI.Web" />
<Add Type="Microsoft.ApplicationInsights.Web.OperationCorrelationTelemetryInitializer, Microsoft.AI.Web" />
<Add Type="Microsoft.ApplicationInsights.Web.UserTelemetryInitializer, Microsoft.AI.Web" />
<Add Type="Microsoft.ApplicationInsights.Web.AuthenticatedUserIdTelemetryInitializer, Microsoft.AI.Web" />
<Add Type="Microsoft.ApplicationInsights.Web.AccountIdTelemetryInitializer, Microsoft.AI.Web" />
<Add Type="Microsoft.ApplicationInsights.Web.SessionTelemetryInitializer, Microsoft.AI.Web" />
</TelemetryInitializers>
<TelemetryModules>
<Add Type="Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule, Microsoft.AI.DependencyCollector" />
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule, Microsoft.AI.PerfCounterCollector">
<!--
Use the following syntax here to collect additional performance counters:
<Counters>
<Add PerformanceCounter="\Process(??APP_WIN32_PROC??)\Handle Count" ReportAs="Process handle count" />
...
</Counters>
PerformanceCounter must be either \CategoryName(InstanceName)\CounterName or \CategoryName\CounterName
NOTE: performance counters configuration will be lost upon NuGet upgrade.
The following placeholders are supported as InstanceName:
??APP_WIN32_PROC?? - instance name of the application process for Win32 counters.
??APP_W3SVC_PROC?? - instance name of the application IIS worker process for IIS/ASP.NET counters.
??APP_CLR_PROC?? - instance name of the application CLR process for .NET counters.
-->
</Add>
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector" />
<Add Type="Microsoft.ApplicationInsights.WindowsServer.DeveloperModeWithDebuggerAttachedTelemetryModule, Microsoft.AI.WindowsServer" />
<Add Type="Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule, Microsoft.AI.WindowsServer" />
<Add Type="Microsoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule, Microsoft.AI.WindowsServer" />
<Add Type="Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule, Microsoft.AI.Web">
<Handlers>
<!--
Add entries here to filter out additional handlers:
NOTE: handler configuration will be lost upon NuGet upgrade.
-->
<Add>System.Web.Handlers.TransferRequestHandler</Add>
<Add>Microsoft.VisualStudio.Web.PageInspector.Runtime.Tracing.RequestDataHttpHandler</Add>
<Add>System.Web.StaticFileHandler</Add>
<Add>System.Web.Handlers.AssemblyResourceLoader</Add>
<Add>System.Web.Optimization.BundleHandler</Add>
<Add>System.Web.Script.Services.ScriptHandlerFactory</Add>
<Add>System.Web.Handlers.TraceHandler</Add>
<Add>System.Web.Services.Discovery.DiscoveryRequestHandler</Add>
<Add>System.Web.HttpDebugHandler</Add>
</Handlers>
</Add>
<Add Type="Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule, Microsoft.AI.Web" />
</TelemetryModules>
<TelemetryProcessors>
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryProcessor, Microsoft.AI.PerfCounterCollector" />
<Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
<MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
</Add>
</TelemetryProcessors>
<TelemetryChannel Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel, Microsoft.AI.ServerTelemetryChannel" />
<!--
Learn more about Application Insights configuration with ApplicationInsights.config here:
http://go.microsoft.com/fwlink/?LinkID=513840
Note: If not present, please add <InstrumentationKey>Your Key</InstrumentationKey> to the top of this file.
-->
<InstrumentationKey>lalalala-not-telling-you</InstrumentationKey>
</ApplicationInsights>
-16
View File
@@ -1,16 +0,0 @@
<%@ 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;
}
}
+82 -7
View File
@@ -26,6 +26,8 @@
<UseGlobalApplicationHostFile />
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<ApplicationInsightsResourceId>/subscriptions/76a04863-9a92-45d6-9801-b26d74a625c4/resourcegroups/Default-ApplicationInsights-EastUS/providers/microsoft.insights/components/OurUmbraco.Site</ApplicationInsightsResourceId>
<ApplicationInsightsAnnotationResourceId>/subscriptions/76a04863-9a92-45d6-9801-b26d74a625c4/resourcegroups/Default-ApplicationInsights-EastUS/providers/microsoft.insights/components/OurUmbraco.Site</ApplicationInsightsAnnotationResourceId>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -47,6 +49,10 @@
<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>
@@ -103,10 +109,6 @@
<HintPath>..\packages\ImageProcessor.Web.4.8.0\lib\net45\ImageProcessor.Web.dll</HintPath>
<Private>True</Private>
</Reference>
<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.6219.11988, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.7\lib\interfaces.dll</HintPath>
<Private>True</Private>
@@ -127,10 +129,42 @@
<HintPath>..\packages\Markdown.1.14.4\lib\net45\MarkdownSharp.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.AI.Agent.Intercept, Version=2.0.6.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.ApplicationInsights.Agent.Intercept.2.0.6\lib\net45\Microsoft.AI.Agent.Intercept.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.AI.DependencyCollector, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.ApplicationInsights.DependencyCollector.2.2.0\lib\net45\Microsoft.AI.DependencyCollector.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.AI.PerfCounterCollector, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.ApplicationInsights.PerfCounterCollector.2.2.0\lib\net45\Microsoft.AI.PerfCounterCollector.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.AI.ServerTelemetryChannel, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.2.0\lib\net45\Microsoft.AI.ServerTelemetryChannel.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.AI.Web, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.ApplicationInsights.Web.2.2.0\lib\net45\Microsoft.AI.Web.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.AI.WindowsServer, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.ApplicationInsights.WindowsServer.2.2.0\lib\net45\Microsoft.AI.WindowsServer.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.ApplicationBlocks.Data, Version=1.0.1559.20655, Culture=neutral">
<HintPath>..\packages\UmbracoCms.Core.7.5.7\lib\Microsoft.ApplicationBlocks.Data.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.ApplicationInsights, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.ApplicationInsights.2.2.0\lib\net45\Microsoft.ApplicationInsights.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.ApplicationInsights.TraceListener, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.ApplicationInsights.TraceListener.2.2.0\lib\net45\Microsoft.ApplicationInsights.TraceListener.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.AspNet.Identity.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.Identity.Core.2.2.1\lib\net45\Microsoft.AspNet.Identity.Core.dll</HintPath>
<Private>True</Private>
@@ -176,6 +210,18 @@
<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>
@@ -192,14 +238,18 @@
<HintPath>..\packages\MySql.Data.6.9.8\lib\net45\MySql.Data.dll</HintPath>
<Private>True</Private>
</Reference>
<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>
<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>
<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>
@@ -225,11 +275,20 @@
<HintPath>..\packages\UmbracoCms.Core.7.5.7\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>
@@ -289,6 +348,10 @@
<HintPath>..\packages\UmbracoCms.Core.7.5.7\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>
<Private>True</Private>
</Reference>
<Reference Include="umbraco, Version=1.0.6219.11997, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.7\lib\umbraco.dll</HintPath>
<Private>True</Private>
@@ -604,6 +667,9 @@
<Content Include="config\imageprocessor\security.config" />
<Content Include="config\imageprocessor\processing.config" />
<Content Include="config\imageprocessor\cache.config" />
<Content Include="ApplicationInsights.config">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="config\tinyMceConfig.config" />
<Content Include="config\scripting.config" />
<Content Include="config\metablogConfig.config" />
@@ -1690,6 +1756,9 @@
<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" />
<Content Include="Views\MacroPartials\Community\Scripts.cshtml" />
<Content Include="Service References\Application Insights\ConnectedService.json" />
<Content Include="Views\Web.config" />
<Content Include="web.config">
<SubType>Designer</SubType>
@@ -4265,7 +4334,10 @@
<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\Home\ForumActivity.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\Partials\Home\ForumActivity.cshtml" />
<Content Include="Views\Projects.cshtml" />
<Content Include="Views\Project.cshtml" />
<Content Include="Views\DocumentationMainpage.cshtml" />
@@ -4321,6 +4393,9 @@
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.1.0.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.Analyzers.dll" />
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.1.0.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll" />
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Service References\" />
</ItemGroup>
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
<VSToolsPath Condition="exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets')">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v11.0</VSToolsPath>
@@ -0,0 +1,7 @@
{
"ProviderId": "Microsoft.ApplicationInsights.ConnectedService.ConnectedServiceProvider",
"Version": "7.16.109.2",
"GettingStartedDocument": {
"Uri": "https://go.microsoft.com/fwlink/?LinkID=613413"
}
}
+3 -1
View File
@@ -24,4 +24,6 @@
</a>
</li>
</script>
}
}
@Umbraco.RenderMacro("CommunityHomeScripts")
+79 -3
View File
@@ -1,5 +1,81 @@
@inherits UmbracoTemplatePage
@using OurUmbraco.Wiki.BusinessLogic
@inherits UmbracoTemplatePage
@{
Layout = "~/Views/Master.cshtml";
}
@Umbraco.RenderMacro("FileDownloadProxy")
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);
}
}
@@ -57,11 +57,71 @@
@if (Members.IsLoggedIn())
{
@Html.Partial("home/forumactivity")
@ForumActivity()
@TwitterSearch()
@Html.Partial("home/documentation")
}
else
{
@Html.Partial("home/documentation")
@Html.Partial("home/forumactivity")
@ForumActivity()
@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>
}
@@ -0,0 +1,18 @@
@inherits Umbraco.Web.Macros.PartialViewMacroPage
<script type="text/javascript">
$(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 {
$("#forum-activity").load("@Url.Action("LatestActivity", "LatestActivity", new { numberOfTopics = 6 })");
}
catch (errForum) {
console.log("Couldn't load latest forum activity", errForum.message);
}
});
</script>
@@ -1,54 +0,0 @@
@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>
}
}
@@ -3,6 +3,7 @@
@using OurUmbraco.Forum.Extensions
@using OurUmbraco.Forum.Services
@using OurUmbraco.NotificationsWeb.Library
@using Umbraco.Core.Logging
@{
var topicService = new TopicService(ApplicationContext.DatabaseContext);
@@ -61,8 +62,17 @@
}
<ul class="comments">
@Html.Partial("forum/question", topic)
@{
try
{
@Html.Partial("forum/question", topic)
}
catch (Exception ex)
{
LogHelper.Error<string>(string.Format("~/Views/MacroPartials/Forum/Thread.cshtml - error rendering topic with id {0}", topic.Id), ex);
}
}
@foreach (var comment in topic.Comments.Where(x => x.ParentCommentId == 0))
{
@@ -73,7 +73,7 @@
<optgroup label="@majorVersion.Key">
@foreach (var version in versions)
{
if (version.Key.ToString() == fromVersion.ToString())
if (fromVersion != null && version.Key.ToString() == fromVersion.ToString())
{
<option name="@version.Key" selected="selected" value="@version.Key">@version.Key</option>
}
@@ -1,26 +0,0 @@
@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>
@@ -0,0 +1,40 @@
@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>
}
@@ -0,0 +1,25 @@
@using OurUmbraco.Forum.Extensions
@using Tweetinvi.Models
@model ITweet[]
@foreach (var tweet in Model)
{
<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>
}
@if (Model.Any() == false)
{
<h2>Could not load recent tweets.</h2>
}
@@ -1,4 +1,5 @@
@using OurUmbraco.Our.Controllers
@using reCAPTCHA.MVC
@inherits UmbracoViewPage<OurUmbraco.Our.Models.RegisterModel>
@{
Html.EnableClientValidation(true);
@@ -60,6 +61,11 @@
@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
View File
@@ -12,6 +12,7 @@
+13 -9
View File
@@ -10,7 +10,7 @@ NOTES:
* Compression/Combination/Minification is not enabled unless debug="false" is specified on the 'compiliation' element in the web.config
* A new version will invalidate both client and server cache and create new persisted files
-->
<clientDependency version="1149821498" fileDependencyExtensions=".js,.css" loggerType="Umbraco.Web.UI.CdfLogger, umbraco">
<clientDependency version="336352293" fileDependencyExtensions=".js,.css" loggerType="Umbraco.Web.UI.CdfLogger, umbraco">
<!--
This section is used for Web Forms only, the enableCompositeFiles="true" is optional and by default is set to true.
@@ -19,18 +19,19 @@ NOTES:
-->
<fileRegistration defaultProvider="PlaceHolderProvider">
<providers>
<add name="PageHeaderProvider" type="ClientDependency.Core.FileRegistration.Providers.PageHeaderProvider, ClientDependency.Core" />
<add name="LazyLoadProvider" type="ClientDependency.Core.FileRegistration.Providers.LazyLoadProvider, ClientDependency.Core" />
<add name="LoaderControlProvider" type="ClientDependency.Core.FileRegistration.Providers.LoaderControlProvider, ClientDependency.Core" />
<add name="PlaceHolderProvider" type="ClientDependency.Core.FileRegistration.Providers.PlaceHolderProvider, ClientDependency.Core" javascriptPlaceHolderId="JavaScriptPlaceHolder" cssPlaceHolderId="CssPlaceHolder" />
<add name="PageHeaderProvider" type="ClientDependency.Core.FileRegistration.Providers.PageHeaderProvider, ClientDependency.Core"/>
<add name="LazyLoadProvider" type="ClientDependency.Core.FileRegistration.Providers.LazyLoadProvider, ClientDependency.Core"/>
<add name="LoaderControlProvider" type="ClientDependency.Core.FileRegistration.Providers.LoaderControlProvider, ClientDependency.Core"/>
<add name="PlaceHolderProvider" type="ClientDependency.Core.FileRegistration.Providers.PlaceHolderProvider, ClientDependency.Core"
javascriptPlaceHolderId="JavaScriptPlaceHolder" cssPlaceHolderId="CssPlaceHolder"/>
</providers>
</fileRegistration>
<!-- This section is used for MVC only -->
<mvc defaultRenderer="StandardRenderer">
<renderers>
<add name="StandardRenderer" type="ClientDependency.Core.FileRegistration.Providers.StandardRenderer, ClientDependency.Core" />
<add name="LazyLoadRenderer" type="ClientDependency.Core.FileRegistration.Providers.LazyLoadRenderer, ClientDependency.Core" />
<add name="StandardRenderer" type="ClientDependency.Core.FileRegistration.Providers.StandardRenderer, ClientDependency.Core"/>
<add name="LazyLoadRenderer" type="ClientDependency.Core.FileRegistration.Providers.LazyLoadRenderer, ClientDependency.Core"/>
</renderers>
</mvc>
@@ -44,12 +45,15 @@ NOTES:
-->
<compositeFiles defaultProvider="defaultFileProcessingProvider" compositeFileHandlerPath="~/DependencyHandler.axd">
<fileProcessingProviders>
<add name="CompositeFileProcessor" type="ClientDependency.Core.CompositeFiles.Providers.CompositeFileProcessingProvider, ClientDependency.Core" enableCssMinify="true" enableJsMinify="true" persistFiles="true" compositeFilePath="~/App_Data/TEMP/ClientDependency" bundleDomains="localhost:123456" urlType="Base64QueryStrings" pathUrlFormat="{dependencyId}/{version}/{type}" />
<add name="CompositeFileProcessor" type="ClientDependency.Core.CompositeFiles.Providers.CompositeFileProcessingProvider, ClientDependency.Core"
enableCssMinify="true" enableJsMinify="true" persistFiles="true" compositeFilePath="~/App_Data/TEMP/ClientDependency" bundleDomains="localhost:123456"
urlType="Base64QueryStrings" pathUrlFormat="{dependencyId}/{version}/{type}"/>
</fileProcessingProviders>
<!-- A file map provider stores references to dependency files by an id to be used in the handler URL when using the MappedId Url type -->
<fileMapProviders>
<add name="XmlFileMap" type="ClientDependency.Core.CompositeFiles.Providers.XmlFileMapper, ClientDependency.Core" mapPath="~/App_Data/TEMP/ClientDependency" />
<add name="XmlFileMap" type="ClientDependency.Core.CompositeFiles.Providers.XmlFileMapper, ClientDependency.Core"
mapPath="~/App_Data/TEMP/ClientDependency"/>
</fileMapProviders>
</compositeFiles>
+32 -12
View File
@@ -30,16 +30,6 @@
<control showOnce="true" addPanel="true" panelCaption="">
views/dashboard/developer/developerdashboardvideos.html
</control>
</tab>
<tab caption="Our Management">
<control>
/App_Plugins/OurManagement/ourmanagement.html
</control>
</tab>
<tab caption="Examine Management">
<control>
views/dashboard/developer/examinemanagement.html
</control>
</tab>
<tab caption="Health Check">
<control>
@@ -51,6 +41,11 @@
views/dashboard/developer/redirecturls.html
</control>
</tab>
<tab caption="Examine Management">
<control>
views/dashboard/developer/examinemanagement.html
</control>
</tab>
</section>
<section alias="StartupMediaDashboardSection">
@@ -97,13 +92,38 @@
</control>
</tab>
</section>
<section alias="DocumentationDashboard">
<areas>
<area>developer</area>
</areas>
<tab caption="GitHub Documentation">
<control showOnce="false" addPanel="true" panelCaption="">
~/usercontrols/dashboard/ForceDocumentationDownload.ascx
</control>
</tab>
</section>
<section alias="ReleasesDashboard">
<areas>
<area>developer</area>
</areas>
<tab caption="YouTrack Releases">
<control showOnce="false" addPanel="true" panelCaption="">
~/usercontrols/dashboard/ForceYouTrackDownload.ascx
</control>
</tab>
</section>
<section alias="UmbracoHealthCheck">
<areas>
<area>developer</area>
</areas>
<tab caption="Health Check">
<control>
views/dashboard/developer/healthcheck.html
</control>
</tab>
</section>
<section alias="UmbracoModelsBuilder">
<areas>
<area>developer</area>
+42 -2
View File
@@ -19,6 +19,7 @@
<add key="documentation/extending-umbraco/property-editors/value-converters-v7-full-example-attributes" value="/documentation/extending/property-editors/value-converters-v7-full-example-attributes/" />
<add key="documentation/extending-umbraco/property-editors/value-converters-v7-full-example-interface" value="/documentation/extending/property-editors/value-converters-v7-full-example-interface/" />
<add key="documentation/extending-umbraco/property-editors/value-converters-v7" value="/documentation/extending/property-editors/value-converters-v7/" />
<add key="documentation/Extending-Umbraco/Property-Editors/PropertyEditorValueConverters" value="/documentation/Extending/Property-Editors/value-converters-v7/" />
<add key="documentation/extending-umbraco/section-trees" value="/documentation/extending/section-trees/" />
<add key="documentation/extending-umbraco/section-trees/sections" value="/documentation/extending/section-trees/sections/" />
<add key="documentation/extending-umbraco/section-trees/trees-v6" value="/documentation/extending/section-trees/trees-v6/" />
@@ -152,6 +153,13 @@
<add key="documentation/using-umbraco/backoffice-overview/property-editors/built-in-property-editors-v7/grid-layout/render-grid-in-template" value="/documentation/getting-started/backoffice/property-editors/built-in-property-editors/grid-layout/render-grid-in-template/" />
<add key="documentation/using-umbraco/backoffice-overview/property-editors/built-in-property-editors-v7/grid-layout/settings-and-styles" value="/documentation/getting-started/backoffice/property-editors/built-in-property-editors/grid-layout/settings-and-styles/" />
<add key="documentation/using-umbraco/backoffice-overview/property-editors/built-in-property-editors-v7/grid-layout/what-are-grid-layouts" value="/documentation/getting-started/backoffice/property-editors/built-in-property-editors/grid-layout/what-are-grid-layouts/" />
<add key="documentation/using-umbraco/backoffice-overview/property-editors/built-in-property-editors-v7/Grid-Layout/Grid-Layout/configuring-the-grid-layout-datatype" value="/Documentation/Getting-Started/Data/Content-Entry/Grid-Layout/" />
<add key="documentation/using-umbraco/backoffice-overview/property-editors/built-in-property-editors-v7/Grid-Layout/Grid-Layout/What-Are-Grid-Layouts" value="/Documentation/Getting-Started/Data/Content-Entry/Grid-Layout/" />
<add key="documentation/using-umbraco/backoffice-overview/property-editors/built-in-property-editors-v7/Grid-Layout/Grid-Layout/grid-editors" value="/Documentation/Getting-Started/Data/Content-Entry/Grid-Layout/" />
<add key="documentation/using-umbraco/backoffice-overview/property-editors/built-in-property-editors-v7/Grid-Layout/Grid-Layout/Settings-and-styles" value="/Documentation/Getting-Started/Data/Content-Entry/Grid-Layout/" />
<add key="Documentation/Using-Umbraco/Backoffice-Overview/Property-Editors/Built-in-Property-Editors-v7/Grid-Layout-Best-Practices" value="/Documentation/Getting-Started/Data/Content-Entry/Grid-Layout/" />
<add key="documentation/using-umbraco/backoffice-overview/Property-Editors/Built-in-Property-Editors-v7/Grid-Layout/Grid-Layout/Render-Grid-In-Template" value="/Documentation/Getting-Started/Data/Content-Entry/Grid-Layout/" />
<add key="documentation/using-umbraco/backoffice-overview/property-editors/built-in-property-editors-v7/Grid-Layout/Grid-Layout/configuring-the-grid-layout-datatype/" value="/Documentation/Getting-Started/Data/Content-Entry/Grid-Layout/" />
<add key="documentation/using-umbraco/config-files/404handlers" value="/documentation/reference/config/404handlers/" />
<add key="documentation/using-umbraco/config-files/applications" value="/documentation/reference/config/applications/" />
<add key="documentation/using-umbraco/config-files/baserestextensions" value="/documentation/reference/config/baserestextensions/" />
@@ -410,6 +418,7 @@
<add key="documentation/getting-started/design/templates/macros/razor/using-razor-axes" value="/documentation/Reference/Templating/Mvc/views/" />
<add key="documentation/getting-started/design/templates/mvc/scaffolding" value="/documentation/Reference/Templating/Mvc/" />
<add key="documentation/getting-started/setup/config/webconfig7" value="/documentation/Reference/Config/" />
<add key="documentation/getting-started/installation" value="/documentation/Getting-Started/Setup/Install/" />
<add key="documentation/implementation/client-side-dependency" value="/documentation/Getting-Started/Design/Stylesheets-Javascript/" />
<add key="documentation/implementation/content-definition" value="/documentation/Reference/Managing/Services/" />
@@ -461,6 +470,37 @@
<add key="wiki/reference/files-and-folders/files-in-the-config-folder/404handlersconfig" value="/Documentation/Reference/Routing/Request-Pipeline/IContentFinder" />
<add key="wiki/reference/files-and-folders/dashboardconfig" value="/Documentation/Extending/Dashboards" />
<add key="wiki/reference/umbracolibrary" value="/apidocs/csharp/api" />
<add key="wiki/how-tos/getting-started-with-umbraco-what-is-next-after-you-install" value="/documentation/Getting-Started/" />
<add key="wiki/how-tos/how-to-submit-patches-for-the-umbraco-core" value="/contribute/" />
<add key="wiki/how-tos/working-with-document-types" value="/documentation/Getting-Started/Data/Document-Types/" />
<add key="wiki/how-tos/newbie-guide-how-to-install-the-45-binaries-on-localhost" value="/documentation/Getting-Started/Setup/Install/" />
<add key="wiki/how-tos/how-to-creating-your-first-umbraco-website-from-first-principles" value="/documentation/Getting-Started/" />
<add key="wiki/how-tos/submitting-bug-reports" value="/contribute/report-an-issue-or-request-a-feature" />
<add key="wiki/how-tos/preparing-a-pull-request" value="/contribute/" />
<add key="wiki/how-tos/installing-umbraco-461-on-plesk-shared-host" value="/documentation/Getting-Started/Setup/Install/" />
<add key="wiki/how-tos/extending-contour-sending-email-dependent-on-form-selection" value="/projects/umbraco-pro/contour/documentation/" />
<add key="wiki/how-tos/how-to-compile-umbraco-from-sources" value="/contribute/working-with-the-umbraco-source/" />
<add key="wiki/how-tos/contour-howto-delete-a-form-entry-by-member" value="/projects/umbraco-pro/contour/documentation/" />
<add key="wiki/how-tos/contour-howto-delete-a-form-entry-by-member/contour-howto-list-form-entries-by-member" /> value="/projects/umbraco-pro/contour/documentation/" />
<add key="wiki/how-tos/how-to-contribute-to-umbraco" value="/contribute/" />
<add key="wiki/how-tos/a-complete-newbies-guide-to-umbraco" value="/documentation/Getting-Started/" />
<add key="wiki/how-tos/umbraco-absolute-beginner-tutorial" value="/documentation/Getting-Started/" />
</rewriteMap>
</rewriteMaps>
<!-- 301 URL Tracker Import -->
<add key="m" value="/" />
<add key="forum/active-topics" value="/forum" />
<add key="projests/newest" value="/projects" />
<add key="projects/starter-kits/flexewebcommerce-starter-kit" value="/projects/starter-kits/flexeweb-commerce" />
<add key="projects/backoffice-extensions/perplexmail-for-umbraco-2" value="/projects/backoffice-extensions/perplexmail-for-umbraco" />
<add key="projects/collaboration/automatically-resize-images-on-save-using-aspose-image-resizer-for-umbraco-1" value="/projects/collaboration/automatically-resize-images-on-save-using-aspose-image-resizer-for-umbraco" />
<add key="projects/collaboration/umbraco-export-members-to-excel-text-csv-and-opendocument-spreadsheet-2" value="/projects/collaboration/umbraco-export-members-to-excel-text-csv-and-opendocument-spreadsheet" />
<add key="projects/backoffice-extensions/ulogs-5" value="/projects/backoffice-extensions/ulogs" />
<add key="forum/getting-started-and-using-umbraco" value="/forum/using-umbraco-and-getting-started" />
<add key="forum/templates-and-document-types" value="/forum/templates-partial-views-and-macros" />
<add key="forum/templates-document-types-partial-views-and-macros" value="/forum/templates-partial-views-and-macros" />
<add key="oops-something-went-wrong" value="/error" />
<add key="documentation/install-umbraco-with-microsoft-webmatrix" value="/documentation/Getting-Started/Setup/Install/install-umbraco-with-microsoft-webmatrix" />
<add key="umbraco/api/Search/FindProjects" value="/" />
</rewriteMap>
</rewriteMaps>
+14 -2
View File
@@ -30,6 +30,18 @@
<logger name="umbraco.macro">
<level value="WARN" />
</logger>
<!-- Suppress: "WARN Umbraco.Web.Mvc.RenderRouteHandler - The current Document Type Project matches a locally declared controller of type
OurUmbraco.Our.Controllers.ProjectController. Custom Controllers for Umbraco routing must implement
'Umbraco.Web.Mvc.IRenderController' and inherit from 'System.Web.Mvc.ControllerBase'." -->
<logger name="Umbraco.Web.Mvc.RenderRouteHandler">
<level value="OFF" />
</logger>
<!-- Suppress: "System.Web.HttpRequestValidationException (0x80004005): A potentially dangerous Request.QueryString value was detected
from the client (aspxerrorpath="...aco/help/"<a href=")." -->
<logger name="System.Web.HttpRequestValidationException">
<level value="OFF" />
</logger>
</log4net>
</log4net>
@@ -11,6 +11,8 @@
@using Umbraco.Web
@{
System.Web.Helpers.AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
var take = 30;
var filters = new List<SearchFilters>();
@@ -3,6 +3,7 @@
@using Umbraco.Core
@{
System.Web.Helpers.AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
var id = int.Parse(Request.QueryString["category_id"]);
var categoryProvider = new OurUmbraco.MarketPlace.Providers.UmbracoCategoryProvider();
@@ -61,7 +62,7 @@
<h3><a href="@pUrl@project.Id">@project.Name</a></h3>
<div class="category">@project.GetCategoryName()</div>
<div class="category">@project.Name</div>
<div class='commercialIndicator @project.ListingType'>@project.ListingType</div>
@@ -69,7 +70,7 @@
<div class="hiLite">
<p><a rel="@project.ProjectGuid" title="@project.Name" href="@pUrl@project.Id">@project.GetCategoryName()</a></p>
<p><a rel="@project.ProjectGuid" title="@project.Name" href="@pUrl@project.Id">@project.Name</a></p>
</div>
@@ -1,8 +1,14 @@
@using OurUmbraco.Project
@using Umbraco.Web
@{
System.Web.Helpers.AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
var ProjectsProvider = new OurUmbraco.MarketPlace.NodeListing.NodeListingProvider();
var projectId = int.Parse(Request.QueryString["project_id"]);
int projectId;
if (int.TryParse(Request.QueryString["project_id"], out projectId) == false)
{
return;
}
var qs = Request.RawUrl.Substring(Request.RawUrl.IndexOf('?') + 1).Replace("&project_id=" + projectId, "");
var callback = Request.QueryString["callback"];
@@ -19,7 +25,10 @@
string ProjectCompatitbleWithDotNet = "4.0";
string ProjectCompatitbleWithMediumTrust = "No";
if (Project.Description.Length > 2000) { descCssClass = "wrap"; }
if (Project.Description.Length > 2000)
{
descCssClass = "wrap";
}
int currentReleaseFile = 0;
if (int.TryParse(Project.CurrentReleaseFile, out currentReleaseFile))
@@ -143,9 +152,15 @@
<h2>Screenshots</h2>
@foreach (var image in Project.ScreenShots)
{
<a href="@image.Path" class="projectscreenshot" rel="shadowbox[gallery]">
<img src="@image.Path?bgcolor=fff&width=100&height=100&format=png" style="border:0;" />
</a>
if (image.Path.EndsWith("gif") ||
image.Path.EndsWith("png") ||
image.Path.EndsWith("jpg") ||
image.Path.EndsWith("jpeg"))
{
<a href="@image.Path" class="projectscreenshot" rel="shadowbox[gallery]">
<img src="@image.Path?bgcolor=fff&width=100&height=100&format=png" style="border: 0;"/>
</a>
}
}
</div>
+11 -2
View File
@@ -18,6 +18,14 @@
<package id="Lucene.Net" version="2.9.4.1" targetFramework="net452" />
<package id="Markdown" version="1.14.4" targetFramework="net452" />
<package id="MarkdownSharp" version="1.13.0.0" targetFramework="net4" />
<package id="Microsoft.ApplicationInsights" version="2.2.0" targetFramework="net452" />
<package id="Microsoft.ApplicationInsights.Agent.Intercept" version="2.0.6" targetFramework="net452" />
<package id="Microsoft.ApplicationInsights.DependencyCollector" version="2.2.0" targetFramework="net452" />
<package id="Microsoft.ApplicationInsights.PerfCounterCollector" version="2.2.0" targetFramework="net452" />
<package id="Microsoft.ApplicationInsights.TraceListener" version="2.2.0" targetFramework="net452" />
<package id="Microsoft.ApplicationInsights.Web" version="2.2.0" targetFramework="net452" />
<package id="Microsoft.ApplicationInsights.WindowsServer" version="2.2.0" targetFramework="net452" />
<package id="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel" version="2.2.0" targetFramework="net452" />
<package id="Microsoft.AspNet.Cors" version="5.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.Identity.Core" version="2.2.1" targetFramework="net452" />
<package id="Microsoft.AspNet.Identity.Owin" version="2.2.1" targetFramework="net452" />
@@ -45,20 +53,21 @@
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net452" />
<package id="MiniProfiler" version="2.1.0" targetFramework="net452" />
<package id="MySql.Data" version="6.9.8" targetFramework="net452" />
<package id="Newtonsoft.Json" version="6.0.8" targetFramework="net452" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net452" />
<package id="Owin" version="1.0" targetFramework="net452" />
<package id="reCAPTCH.MVC" version="1.0.1" targetFramework="net452" />
<package id="RestSharp" version="104.1" targetFramework="net4" />
<package id="semver" version="1.1.2" targetFramework="net452" />
<package id="SharpZipLib" version="0.86.0" targetFramework="net452" />
<package id="System.Collections.Immutable" version="1.1.36" targetFramework="net452" />
<package id="System.Reflection.Metadata" version="1.0.21" targetFramework="net452" />
<package id="TweetinviAPI" version="1.2.0" targetFramework="net452" />
<package id="Umbraco.ModelsBuilder" version="3.0.5" targetFramework="net452" />
<package id="UmbracoCms" version="7.5.7" targetFramework="net452" />
<package id="UmbracoCms.Core" version="7.5.7" targetFramework="net452" />
<package id="UmbracoCms.IdentityExtensions" version="1.0.0" targetFramework="net451" />
<package id="UmbracoCms.IdentityExtensions.Google" version="1.0.0" targetFramework="net451" />
<package id="UrlRewritingNet" version="2.0.7" targetFramework="net452" />
<package id="UrlTracker" version="3.11" targetFramework="net451" />
<package id="xmlrpcnet" version="2.5.0" targetFramework="net452" />
<package id="YouTrackSharp" version="2.0.11.0" targetFramework="net4" />
</packages>
+44 -5
View File
@@ -15,6 +15,12 @@
<section name="FileSystemProviders" type="Umbraco.Core.Configuration.FileSystemProvidersSection, Umbraco.Core" requirePermission="false" />
<section name="dashBoard" type="Umbraco.Core.Configuration.Dashboard.DashboardSection, Umbraco.Core" requirePermission="false" />
</sectionGroup>
<sectionGroup name="imageProcessor">
<section name="security" requirePermission="false" type="ImageProcessor.Web.Configuration.ImageSecuritySection, ImageProcessor.Web" />
<section name="processing" requirePermission="false" type="ImageProcessor.Web.Configuration.ImageProcessingSection, ImageProcessor.Web" />
<section name="caching" requirePermission="false" type="ImageProcessor.Web.Configuration.ImageCacheSection, ImageProcessor.Web" />
</sectionGroup>
</configSections>
<umbracoConfiguration>
@@ -24,7 +30,6 @@
<dashBoard configSource="config\Dashboard.config" />
</umbracoConfiguration>
<urlrewritingnet configSource="config\UrlRewriting.config" />
<microsoft.scripting configSource="config\scripting.config" />
<clientDependency configSource="config\ClientDependency.config" />
@@ -32,6 +37,13 @@
<ExamineLuceneIndexSets configSource="config\ExamineIndex.config" />
<log4net configSource="config\log4net.config" />
<DocumentationIndexConfig configSource="config\FileIndexerConfig.config" />
<imageProcessor>
<security configSource="config\imageprocessor\security.config" />
<caching configSource="config\imageprocessor\cache.config" />
<processing configSource="config\imageprocessor\processing.config" />
</imageProcessor>
<appSettings>
<!--
Umbraco web.config configuration documentation can be found here:
@@ -104,6 +116,15 @@
<add key="GoogleOAuthClientID" value="it's a secret.. and no, this is not the secret, this key will transformed on the build server" />
<add key="GoogleOAuthSecret" value="it's a secret.. and no, this is not the secret, this key will transformed on the build server" />
<add key="HangFireEnabled" value="false" />
<!-- this reCaptcha key pair ONLY works on localhost and will be transformed on the build server -->
<add key="reCaptchaPublicKey" value="6LdwJQ4UAAAAAL9hZdbodu7UHh9t6rV1reGyj2nX" />
<add key="reCaptchaPrivateKey" value="6LdwJQ4UAAAAAISU06nHKXMx10WLnerO6jDEEDUD" />
<add key="twitterConsumerKey" value="it's a secret.. and no, this is not the secret, this key will transformed on the build server" />
<add key="twitterConsumerSecret" value="it's a secret.. and no, this is not the secret, this key will transformed on the build server" />
<add key="twitterUserAccessToken" value="it's a secret.. and no, this is not the secret, this key will transformed on the build server" />
<add key="twitterUserAccessSecret" value="it's a secret.. and no, this is not the secret, this key will transformed on the build server" />
</appSettings>
<connectionStrings>
<remove name="umbracoDbDSN" />
@@ -159,8 +180,8 @@
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add name="UmbracoModule" type="Umbraco.Web.UmbracoModule,umbraco" />
<add name="ClientDependencyModule" type="ClientDependency.Core.Module.ClientDependencyModule, ClientDependency.Core" />
<add name="ImageProcessorModule" type="ImageProcessor.Web.HttpModules.ImageProcessingModule, ImageProcessor.Web" />
</httpModules>
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
<add name="ImageProcessorModule" type="ImageProcessor.Web.HttpModules.ImageProcessingModule, ImageProcessor.Web" /></httpModules>
<httpHandlers>
<remove verb="*" path="*.asmx" />
<add verb="*" path="*.asmx" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" />
@@ -343,6 +364,9 @@
<remove name="FormsAuthentication" />
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" />
<add name="ImageProcessorModule" type="ImageProcessor.Web.HttpModules.ImageProcessingModule, ImageProcessor.Web" />
<remove name="ApplicationInsightsWebTracking" />
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" />
</modules>
<handlers accessPolicy="Read, Write, Script, Execute">
@@ -516,6 +540,14 @@
<match url="wiki/reference/" />
<action type="Redirect" url="/Documentation/Reference/" redirectType="Permanent" appendQueryString="true" />
</rule>
<rule name="ReleasesLanding" patternSyntax="ExactMatch" stopProcessing="true">
<match url="releases" />
<action type="Redirect" url="/contribute/releases/" />
</rule>
<rule name="Releases" patternSyntax="Wildcard" stopProcessing="true">
<match url="releases/*" />
<action type="Redirect" url="/contribute/releases/{R:1}" />
</rule>
</rules>
</rewrite>
<validation validateIntegratedModeConfiguration="false" />
@@ -570,7 +602,7 @@
<!-- Ensure correct version of HtmlAgilityPack -->
<dependentAssembly>
<assemblyIdentity name="HtmlAgilityPack" publicKeyToken="bd319b19eaf3b43a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.4.9.0" newVersion="1.4.9.0" />
<bindingRedirect oldVersion="0.0.0.0-1.4.9.5" newVersion="1.4.9.5" />
</dependentAssembly>
<dependentAssembly>
@@ -580,7 +612,7 @@
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
</dependentAssembly>
<dependentAssembly>
@@ -625,4 +657,11 @@
<urlCompression doStaticCompression="false" doDynamicCompression="false" dynamicCompressionBeforeCache="false" />
</system.webServer>
</location>
<system.diagnostics>
<trace autoflush="true" indentsize="0">
<listeners>
<add name="myAppInsightsListener" type="Microsoft.ApplicationInsights.TraceListener.ApplicationInsightsTraceListener, Microsoft.ApplicationInsights.TraceListener" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
@@ -0,0 +1,63 @@
using System;
using System.Configuration;
using System.Linq;
using System.Web.Mvc;
using Tweetinvi;
using Tweetinvi.Models;
using Tweetinvi.Parameters;
using Umbraco.Core;
using Umbraco.Core.Cache;
using Umbraco.Core.Logging;
using Umbraco.Web;
using Umbraco.Web.Mvc;
namespace OurUmbraco.Community.Controllers
{
public class TwitterSearchController : SurfaceController
{
public ActionResult TwitterSearchResult(int numberOfResults = 6)
{
if (numberOfResults > 30)
numberOfResults = 6;
ITweet[] filteredTweets = { };
try
{
var tweets = ApplicationContext.ApplicationCache.RuntimeCache.GetCacheItem<ITweet[]>("UmbracoSearchedTweets",
() =>
{
Auth.SetUserCredentials(ConfigurationManager.AppSettings["twitterConsumerKey"],
ConfigurationManager.AppSettings["twitterConsumerSecret"],
ConfigurationManager.AppSettings["twitterUserAccessToken"],
ConfigurationManager.AppSettings["twitterUserAccessSecret"]);
Tweetinvi.User.GetAuthenticatedUser();
var searchParameter = new SearchTweetsParameters("umbraco") { SearchType = SearchResultType.Recent };
return Search.SearchTweets(searchParameter).ToArray();
}, TimeSpan.FromMinutes(2));
var settingsNode = Umbraco.TypedContentAtRoot().FirstOrDefault();
if (settingsNode != null)
{
var usernameFilter = settingsNode.GetPropertyValue<string>("twitterFilterAccounts")
.ToLowerInvariant().Split(',').Where(x => x != string.Empty);
var wordFilter = settingsNode.GetPropertyValue<string>("twitterFilterWords")
.ToLowerInvariant().Split(',').Where(x => x != string.Empty);
filteredTweets = tweets.Where(x =>
x.CreatedBy.UserIdentifier.ScreenName.ToLowerInvariant().ContainsAny(usernameFilter) == false
&& x.Text.ToLowerInvariant().ContainsAny(wordFilter) == false)
.Take(numberOfResults)
.ToArray();
}
}
catch (Exception ex)
{
LogHelper.Error<ITweet>("Could not get tweets", ex);
}
return PartialView("~/Views/Partials/Home/TwitterSearchUmbraco.cshtml", filteredTweets);
}
}
}
@@ -0,0 +1,31 @@
using System.Linq;
using System.Web.Mvc;
using OurUmbraco.Forum.Services;
using Umbraco.Web.Mvc;
namespace OurUmbraco.Forum.Controllers
{
public class LatestActivityController : SurfaceController
{
public ActionResult LatestActivity(int numberOfTopics = 6)
{
if (numberOfTopics > 30)
numberOfTopics = 6;
var ts = new TopicService(ApplicationContext.DatabaseContext);
var topics = ts.GetLatestTopics(numberOfTopics).ToArray();
foreach (var topic in topics)
{
var category = Umbraco.TypedContent(topic.ParentId);
if(category != null)
topic.CategoryName = category.Name;
var member = Members.GetById(topic.LatestReplyAuthor) ?? Members.GetById(topic.MemberId);
if (member != null)
topic.LastReplyAuthorAvatar = Our.Utils.GetMemberAvatar(member, 100);
}
return PartialView("~/Views/Partials/Home/LatestForumActivity.cshtml", topics);
}
}
}
+6
View File
@@ -16,5 +16,11 @@ namespace OurUmbraco.Forum.Models
[ResultColumn("LastReplyAuthorName")]
public string LastReplyAuthorName { get; set; }
[ResultColumn("LastReplyAuthorAvatar")]
public string LastReplyAuthorAvatar { get; set; }
[ResultColumn("CategoryName")]
public string CategoryName { get; set; }
}
}
@@ -68,7 +68,7 @@ namespace OurUmbraco.NotificationsCore.Notifications
var domain = _details.SelectSingleNode("//domain").InnerText;
var body = _details.SelectSingleNode("//body").InnerText;
body = string.Format(body, topic.Title, "https://" + domain + url + "#comment-" + comment.Id, memberName,
HttpUtility.HtmlDecode(umbraco.library.StripHtml(comment.Body)));
HttpUtility.HtmlDecode(comment.Body.StripHtml()));
var mailMessage = new MailMessage
{
@@ -68,7 +68,7 @@ namespace OurUmbraco.NotificationsCore.Notifications
var body = _details.SelectSingleNode("//body").InnerText;
body = string.Format(body, forum.Name, "https://" + domain + url, memberName, topic.Title,
HttpUtility.HtmlDecode(umbraco.library.StripHtml(topic.Body)));
HttpUtility.HtmlDecode(topic.Body.StripHtml()));
var mailMessage = new MailMessage
{
+1 -1
View File
@@ -37,7 +37,7 @@ namespace OurUmbraco.Our.Api
}
break;
case "gravatar":
var gravatarUrl = "http://www.gravatar.com/avatar/" + umbraco.library.md5(member.Email) + "?s=48&d=monsterid";
var gravatarUrl = "https://www.gravatar.com/avatar/" + umbraco.library.md5(member.Email) + "?s=48&d=monsterid";
return SaveUrlAsBuddyIcon(gravatarUrl, member);
}
@@ -6,13 +6,14 @@ using System.Text;
using System.Web.Mvc;
using System.Web.Security;
using OurUmbraco.Our.usercontrols;
using reCAPTCHA.MVC;
using Umbraco.Core;
using Umbraco.Web.Models;
using Umbraco.Web.Mvc;
namespace OurUmbraco.Our.Controllers
{
public class LoginController: SurfaceController
public class LoginController : SurfaceController
{
[ChildActionOnly]
public ActionResult RenderLogin()
@@ -28,6 +29,7 @@ namespace OurUmbraco.Our.Controllers
return PartialView("~/Views/Partials/Members/ForgotPassword.cshtml", loginModel);
}
[CaptchaValidator]
public ActionResult Login(LoginModel model)
{
if (ModelState.IsValid == false)
@@ -83,6 +85,7 @@ namespace OurUmbraco.Our.Controllers
return CurrentUmbracoPage();
}
[CaptchaValidator]
public ActionResult ForgotPassword(LoginModel model)
{
if(string.IsNullOrWhiteSpace(model.Username))
@@ -119,8 +122,7 @@ namespace OurUmbraco.Our.Controllers
if (m == null)
{
// Don't add an error and reveal that someone with this email address exists on this site
TempData["Success"] = true;
return RedirectToCurrentUmbracoPage();
return Redirect(CurrentPage.Url + "?success=true");
}
// Automatically approve all members, as we don't have an approval process now
@@ -153,8 +155,7 @@ namespace OurUmbraco.Our.Controllers
smtpClient.Send(mailMessage);
}
TempData["Success"] = true;
return RedirectToCurrentUmbracoPage();
return Redirect(CurrentPage.Url + "?success=true");
}
private string RandomString(int size, bool lowerCase)
@@ -6,6 +6,7 @@ using System.Web.Hosting;
using System.Web.Mvc;
using OurUmbraco.Our.Models;
using OurUmbraco.Our.usercontrols;
using reCAPTCHA.MVC;
using Umbraco.Core;
using Umbraco.Core.Logging;
using Umbraco.Core.Models;
@@ -26,6 +27,7 @@ namespace OurUmbraco.Our.Controllers
[HttpPost]
[ValidateAntiForgeryToken]
[CaptchaValidator]
public ActionResult HandleSubmit(RegisterModel model)
{
var locationInvalid = string.IsNullOrEmpty(model.Latitude) || string.IsNullOrEmpty(model.Longitude);
@@ -41,7 +43,7 @@ namespace OurUmbraco.Our.Controllers
}
var memberService = Services.MemberService;
if (memberService.GetByEmail(model.Email) != null)
{
ModelState.AddModelError("Email", "A member with that email address already exists");
@@ -60,6 +62,27 @@ namespace OurUmbraco.Our.Controllers
return Redirect("/");
}
// these values are enforced in MemberDto which is internal ;-(
// we should really have ways to query for Core meta-data!
const int maxEmailLength = 400;
const int maxLoginNameLength = 200;
const int maxPasswordLength = 400;
const int maxPropertyLength = 400;
if (model.Email != null && model.Email.Length > maxEmailLength
|| model.Name != null && model.Name.Length > maxLoginNameLength
|| model.Password != null && model.Password.Length > maxPasswordLength
|| model.Location != null && model.Location.Length > maxPropertyLength
|| model.Longitude != null && model.Longitude.Length > maxPropertyLength
|| model.Latitude != null && model.Latitude.Length > maxPropertyLength
|| model.TwitterAlias != null && model.TwitterAlias.Length > maxPropertyLength
)
{
// has to be a rogue registration
// go away!
return Redirect("/");
}
var member = memberService.CreateMember(model.Email, model.Email, model.Name, "member");
member.SetValue("location", model.Location);
member.SetValue("longitude", model.Longitude);
@@ -86,7 +109,7 @@ namespace OurUmbraco.Our.Controllers
memberService.AssignRole(member.Username, "standard");
memberService.SavePassword(member, model.Password);
memberService.SavePassword(member, model.Password);
Members.Login(model.Email, model.Password);
@@ -127,7 +150,7 @@ namespace OurUmbraco.Our.Controllers
private static string GetAvatarPath(IMembershipUser member)
{
var url = "http://www.gravatar.com/avatar/" + member.Email.ToMd5() + "?s=400&d=retro";
var url = "https://www.gravatar.com/avatar/" + member.Email.ToMd5() + "?s=400&d=retro";
try
{
@@ -20,6 +20,7 @@ namespace OurUmbraco.Our.CustomHandlers
{
BindExamineEvents();
ZipDownloader.OnFinish += ZipDownloader_OnFinish;
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
}
private void BindExamineEvents()
@@ -6,6 +6,7 @@ using Examine.LuceneEngine.Providers;
using OurUmbraco.Our.Examine;
using OurUmbraco.Wiki.BusinessLogic;
using Umbraco.Core;
using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Core.Models.EntityBase;
using Umbraco.Core.Services;
@@ -64,12 +65,15 @@ namespace OurUmbraco.Our.CustomHandlers
var projectVotes = Utils.GetProjectTotalVotes(content.Id);
var files = WikiFile.CurrentFiles(content.Id).ToArray();
var compatVersions = Utils.GetProjectCompatibleVersions(content.Id);
var compatVersions = Utils.GetProjectCompatibleVersions(content.Id) ?? new List<string>();
var simpleDataIndexer = (SimpleDataIndexer)ExamineManager.Instance.IndexProviderCollection["projectIndexer"];
simpleDataSet = ((ProjectNodeIndexDataService)simpleDataIndexer.DataService)
.MapProjectToSimpleDataIndexItem(content, simpleDataSet, "project", projectVotes, files, downloads, compatVersions);
if (simpleDataSet.NodeDefinition.Type == null)
simpleDataSet.NodeDefinition.Type = "project";
var xml = simpleDataSet.RowData.ToExamineXml(simpleDataSet.NodeDefinition.NodeId, simpleDataSet.NodeDefinition.Type);
simpleDataIndexer.ReIndexNode(xml, "project");
}
@@ -0,0 +1 @@
using System;
+2 -1
View File
@@ -5,6 +5,7 @@ using System.Linq;
using System.Text.RegularExpressions;
using Examine;
using Examine.LuceneEngine;
using Umbraco.Core;
using Umbraco.Core.Logging;
namespace OurUmbraco.Our.Examine
@@ -45,7 +46,7 @@ namespace OurUmbraco.Our.Examine
lines.AddRange(File.ReadAllLines(file.FullName));
var body = lines.Any()
? umbraco.library.StripHtml(RemoveSpecialCharacters(string.Join("", lines)))
? RemoveSpecialCharacters(string.Join("", lines)).StripHtml()
: string.Empty;
var firstHeadline = lines.FirstOrDefault(x => x.StartsWith("#"));
+1 -1
View File
@@ -23,7 +23,7 @@ namespace OurUmbraco.Our.Examine
foreach (var currentComment in topic.Comments.Where(c => c.IsSpam == false))
commentText += currentComment.Body;
var body = library.StripHtml(topic.Body + commentText);
var body = (topic.Body + commentText).StripHtml();
simpleDataSet.NodeDefinition.NodeId = id;
simpleDataSet.NodeDefinition.Type = indexType;
@@ -216,7 +216,7 @@ namespace OurUmbraco.Our.Examine
//remove the current version field from the lucene doc
e.Document.RemoveField("body");
//add a 'body' field with stripped html
e.Document.Add(new Field("body", library.StripHtml(e.Fields["body"]), Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.YES));
e.Document.Add(new Field("body", e.Fields["body"].StripHtml(), Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.YES));
}
//If there is a versions field, we'll split it and index the same field on each version
@@ -12,8 +12,8 @@ namespace OurUmbraco.Our.Extensions
public static string MakeSearchQuerySafe(this string query)
{
if (query == null) return string.Empty;
var regex = new Regex(@"[^\w\s-]");
return regex.Replace(query, " ");
var regex = new Regex(@"[^\w\s]");
return regex.Replace(query, " ").ToLowerInvariant();
}
}
}
+13
View File
@@ -0,0 +1,13 @@
using System.Web.Mvc;
using OurUmbraco.Our.ErrorHandler;
namespace OurUmbraco.Our
{
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new AiHandleErrorAttribute());
}
}
}
+135 -54
View File
@@ -7,7 +7,6 @@ using System.Web.Hosting;
using Umbraco.Core;
using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Web;
using File = System.IO.File;
using Macro = umbraco.cms.businesslogic.macro.Macro;
@@ -33,16 +32,18 @@ namespace OurUmbraco.Our
UseNewRegistrationForm();
AddStrictMinimumVersionForPackages();
AddSearchDocumentTypeAndPage();
UseNewLoginForm();
UseNewForgotPasswordForm();
UseNewMyProjectsOverview();
UseNewRssFeedsOverview();
RenameUaaStoUCloud();
AddMarkAsSolutionReminderSent();
RenameUaaStoUCloud();
AddMarkAsSolutionReminderSent();
UseNewLoginForm();
UseNewForgotPasswordForm();
AddTwitterFilters();
AddHomeScriptsMacro();
}
private void EnsureMigrationsMarkerPathExists()
{
var path = HostingEnvironment.MapPath(MigrationMarkersPath);
@@ -593,56 +594,6 @@ namespace OurUmbraco.Our
}
}
private void UseNewLoginForm()
{
var migrationName = MethodBase.GetCurrentMethod().Name;
try
{
var path = HostingEnvironment.MapPath(MigrationMarkersPath + migrationName + ".txt");
if (File.Exists(path))
return;
var macroService = ApplicationContext.Current.Services.MacroService;
var macro = macroService.GetByAlias("MemberLogin");
macro.ControlType = "";
macro.ScriptPath = "~/Views/MacroPartials/Members/Login.cshtml";
macroService.Save(macro);
string[] lines = { "" };
File.WriteAllLines(path, lines);
}
catch (Exception ex)
{
LogHelper.Error<MigrationsHandler>(string.Format("Migration: '{0}' failed", migrationName), ex);
}
}
private void UseNewForgotPasswordForm()
{
var migrationName = MethodBase.GetCurrentMethod().Name;
try
{
var path = HostingEnvironment.MapPath(MigrationMarkersPath + migrationName + ".txt");
if (File.Exists(path))
return;
var macroService = ApplicationContext.Current.Services.MacroService;
var macro = macroService.GetByAlias("MemberPasswordReminder");
macro.ControlType = "";
macro.ScriptPath = "~/Views/MacroPartials/Members/ForgotPassword.cshtml";
macroService.Save(macro);
string[] lines = { "" };
File.WriteAllLines(path, lines);
}
catch (Exception ex)
{
LogHelper.Error<MigrationsHandler>(string.Format("Migration: '{0}' failed", migrationName), ex);
}
}
private void UseNewMyProjectsOverview()
{
var migrationName = MethodBase.GetCurrentMethod().Name;
@@ -818,5 +769,135 @@ namespace OurUmbraco.Our
LogHelper.Error<MigrationsHandler>(string.Format("Migration: '{0}' failed", migrationName), ex);
}
}
private void UseNewLoginForm()
{
var migrationName = MethodBase.GetCurrentMethod().Name;
try
{
var path = HostingEnvironment.MapPath(MigrationMarkersPath + migrationName + ".txt");
if (File.Exists(path))
return;
var macroService = ApplicationContext.Current.Services.MacroService;
var macro = macroService.GetByAlias("MemberLogin");
macro.ControlType = "";
macro.ScriptPath = "~/Views/MacroPartials/Members/Login.cshtml";
macroService.Save(macro);
string[] lines = { "" };
File.WriteAllLines(path, lines);
}
catch (Exception ex)
{
LogHelper.Error<MigrationsHandler>(string.Format("Migration: '{0}' failed", migrationName), ex);
}
}
private void UseNewForgotPasswordForm()
{
var migrationName = MethodBase.GetCurrentMethod().Name;
try
{
var path = HostingEnvironment.MapPath(MigrationMarkersPath + migrationName + ".txt");
if (File.Exists(path))
return;
var macroService = ApplicationContext.Current.Services.MacroService;
var macro = macroService.GetByAlias("MemberPasswordReminder");
macro.ControlType = "";
macro.ScriptPath = "~/Views/MacroPartials/Members/ForgotPassword.cshtml";
macroService.Save(macro);
string[] lines = { "" };
File.WriteAllLines(path, lines);
}
catch (Exception ex)
{
LogHelper.Error<MigrationsHandler>(string.Format("Migration: '{0}' failed", migrationName), ex);
}
}
private void AddTwitterFilters()
{
var migrationName = MethodBase.GetCurrentMethod().Name;
try
{
var path = HostingEnvironment.MapPath(MigrationMarkersPath + migrationName + ".txt");
if (File.Exists(path))
return;
var contentTypeService = ApplicationContext.Current.Services.ContentTypeService;
var communityContentType = contentTypeService.GetContentType("Community");
var propertyTypeAlias = "twitterFilterAccounts";
var textboxMultiple = new DataTypeDefinition("Umbraco.TextboxMultiple");
var tabName = "Settings";
if (communityContentType.PropertyGroups.Contains(tabName) == false)
communityContentType.AddPropertyGroup(tabName);
if (communityContentType.PropertyTypeExists(propertyTypeAlias) == false)
{
var textboxAccountsFilter = new PropertyType(textboxMultiple, propertyTypeAlias) { Name = "CSV of Twitter accounts to filter" };
communityContentType.AddPropertyType(textboxAccountsFilter, tabName);
}
propertyTypeAlias = "twitterFilterWords";
if (communityContentType.PropertyTypeExists(propertyTypeAlias) == false)
{
var textboxWordFilter = new PropertyType(textboxMultiple, propertyTypeAlias) { Name = "CSV of words filter tweets out" };
communityContentType.AddPropertyType(textboxWordFilter, tabName);
}
contentTypeService.Save(communityContentType);
string[] lines = { "" };
File.WriteAllLines(path, lines);
}
catch (Exception ex)
{
LogHelper.Error<MigrationsHandler>(string.Format("Migration: '{0}' failed", migrationName), ex);
}
}
private void AddHomeScriptsMacro()
{
var migrationName = MethodBase.GetCurrentMethod().Name;
try
{
var path = HostingEnvironment.MapPath(MigrationMarkersPath + migrationName + ".txt");
if (File.Exists(path))
return;
var macroService = ApplicationContext.Current.Services.MacroService;
var macroAlias = "CommunityHomeScripts";
if (macroService.GetByAlias(macroAlias) == null)
{
// Run migration
var macro = new Macro
{
Name = "[Community] Home Scripts",
Alias = macroAlias,
ScriptingFile = "~/Views/MacroPartials/Community/Scripts.cshtml",
UseInEditor = false
};
macro.Save();
}
string[] lines = { "" };
File.WriteAllLines(path, lines);
}
catch (Exception ex)
{
LogHelper.Error<MigrationsHandler>(string.Format("Migration: '{0}' failed", migrationName), ex);
}
}
}
}
+6
View File
@@ -238,6 +238,9 @@ namespace OurUmbraco.Our
if (hasAvatar)
{
var avatarPath = member.GetPropertyValue("avatar").ToString();
if (avatarPath.StartsWith("http://") || avatarPath.StartsWith("https://"))
return avatarPath;
var path = HostingEnvironment.MapPath(avatarPath);
if (System.IO.File.Exists(path))
return path;
@@ -286,6 +289,9 @@ namespace OurUmbraco.Our
{
try
{
if (memberAvatarPath.StartsWith("http://") || memberAvatarPath.StartsWith("https://"))
return null;
return Image.FromFile(memberAvatarPath);
}
catch (Exception ex)
@@ -1 +0,0 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="FileDownloadProxy.ascx.cs" Inherits="OurUmbraco.Our.usercontrols.FileDownloadProxy" %>
@@ -1,83 +0,0 @@
using System;
using OurUmbraco.Wiki.BusinessLogic;
using BL = umbraco.BusinessLogic;
namespace OurUmbraco.Our.usercontrols
{
public partial class FileDownloadProxy : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request["id"] == null)
return;
var fileId = int.Parse(Request["id"]);
var wikiFile = new WikiFile(fileId);
wikiFile.UpdateDownloadCounter(false, wikiFile.FileType == "package");
using (var sqlHelper = BL.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= " + MakeSafeFileName(file));
Response.AddHeader("Content-Length", fileinfo.Length.ToString());
Response.ContentType = type;
Response.WriteFile(path);
}
}
private string MakeSafeFileName(string orig)
{
return orig.Replace(" ","-");
}
}
}
@@ -1,15 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace OurUmbraco.Our.usercontrols {
public partial class FileDownloadProxy {
}
}
+1 -1
View File
@@ -180,7 +180,7 @@ namespace OurUmbraco.Our.usercontrols
private static string GetAvatarPath(IMember member)
{
var url = "http://www.gravatar.com/avatar/" + member.Email.ToMd5() + "?s=400&d=retro";
var url = "https://www.gravatar.com/avatar/" + member.Email.ToMd5() + "?s=400&d=retro";
try
{
+92 -6
View File
@@ -12,6 +12,8 @@
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -31,6 +33,10 @@
<WarningLevel>4</WarningLevel>
</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>
@@ -71,12 +77,12 @@
<HintPath>..\packages\Examine.0.1.80\lib\net45\Examine.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Hangfire.Core, Version=1.6.7.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Hangfire.Core.1.6.7\lib\net45\Hangfire.Core.dll</HintPath>
<Reference Include="Hangfire.Core, Version=1.6.8.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Hangfire.Core.1.6.8\lib\net45\Hangfire.Core.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Hangfire.SqlServer, Version=1.6.7.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Hangfire.SqlServer.1.6.7\lib\net45\Hangfire.SqlServer.dll</HintPath>
<Reference Include="Hangfire.SqlServer, Version=1.6.8.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Hangfire.SqlServer.1.6.8\lib\net45\Hangfire.SqlServer.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="HtmlAgilityPack, Version=1.4.9.5, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
@@ -123,6 +129,10 @@
<HintPath>..\packages\UmbracoCms.Core.7.5.7\lib\Microsoft.ApplicationBlocks.Data.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.ApplicationInsights, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.ApplicationInsights.2.2.0\lib\net45\Microsoft.ApplicationInsights.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.AspNet.Identity.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.Identity.Core.2.2.1\lib\net45\Microsoft.AspNet.Identity.Core.dll</HintPath>
<Private>True</Private>
@@ -131,6 +141,38 @@
<HintPath>..\packages\Microsoft.AspNet.Identity.Owin.2.2.1\lib\net45\Microsoft.AspNet.Identity.Owin.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Extensions.Configuration, Version=1.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Configuration.1.1.0\lib\netstandard1.1\Microsoft.Extensions.Configuration.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Extensions.Configuration.Abstractions, Version=1.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Configuration.Abstractions.1.1.0\lib\netstandard1.0\Microsoft.Extensions.Configuration.Abstractions.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Extensions.Configuration.FileExtensions, Version=1.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Configuration.FileExtensions.1.1.0\lib\net451\Microsoft.Extensions.Configuration.FileExtensions.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Extensions.Configuration.Json, Version=1.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Configuration.Json.1.1.0\lib\net451\Microsoft.Extensions.Configuration.Json.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Extensions.FileProviders.Abstractions, Version=1.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.FileProviders.Abstractions.1.1.0\lib\netstandard1.0\Microsoft.Extensions.FileProviders.Abstractions.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Extensions.FileProviders.Physical, Version=1.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.FileProviders.Physical.1.1.0\lib\net451\Microsoft.Extensions.FileProviders.Physical.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Extensions.FileSystemGlobbing, Version=1.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.FileSystemGlobbing.1.1.0\lib\net45\Microsoft.Extensions.FileSystemGlobbing.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Extensions.Primitives, Version=1.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Primitives.1.1.0\lib\netstandard1.0\Microsoft.Extensions.Primitives.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.IO.RecyclableMemoryStream, Version=1.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.IO.RecyclableMemoryStream.1.2.0\lib\net45\Microsoft.IO.RecyclableMemoryStream.dll</HintPath>
<Private>True</Private>
@@ -159,6 +201,18 @@
<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.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
<Private>True</Private>
@@ -171,14 +225,18 @@
<HintPath>..\packages\MySql.Data.6.9.8\lib\net45\MySql.Data.dll</HintPath>
<Private>True</Private>
</Reference>
<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>
<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>
<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">
<HintPath>..\packages\RestSharp.104.1\lib\net4\RestSharp.dll</HintPath>
<Private>True</Private>
@@ -192,6 +250,7 @@
<Private>True</Private>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
@@ -205,12 +264,31 @@
<Private>True</Private>
</Reference>
<Reference Include="System.Drawing" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.Net" />
<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.Numerics" />
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.3.0\lib\netstandard1.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Web" />
<Reference Include="System.Web.ApplicationServices" />
@@ -266,6 +344,10 @@
<HintPath>..\packages\UmbracoCms.Core.7.5.7\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>
<Private>True</Private>
</Reference>
<Reference Include="umbraco, Version=1.0.6219.11997, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.7\lib\umbraco.dll</HintPath>
<Private>True</Private>
@@ -313,6 +395,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="CamelCaseFormatter.cs" />
<Compile Include="Community\Controllers\TwitterSearchController.cs" />
<Compile Include="CustomDateTimeConvertor.cs" />
<Compile Include="Documentation\Busineslogic\ConventionExtensions.cs" />
<Compile Include="Documentation\Busineslogic\DefaultVersion.cs" />
@@ -342,6 +425,7 @@
<Compile Include="Forum\Api\ForumControllerBase.cs" />
<Compile Include="Forum\Api\PublicForumController.cs" />
<Compile Include="Forum\Api\TopicController.cs" />
<Compile Include="Forum\Controllers\LatestActivityController.cs" />
<Compile Include="Forum\EventHandlers\MemberApprovedEventhandler.cs" />
<Compile Include="Forum\EventHandlers\NewForumHandler.cs" />
<Compile Include="Forum\Events.cs" />
@@ -449,6 +533,7 @@
<Compile Include="Our\CustomHandlers\ProjectVote.cs" />
<Compile Include="Our\CustomHandlers\TopicVote.cs" />
<Compile Include="Our\DefaultMemberAvatarHandler.cs" />
<Compile Include="Our\ErrorHandler\AiHandleErrorAttribute.cs" />
<Compile Include="Our\Examine\DocumentationIndexConfig.cs" />
<Compile Include="Our\Examine\DocumentationIndexDataService.cs" />
<Compile Include="Our\Examine\ExamineHelper.cs" />
@@ -460,6 +545,7 @@
<Compile Include="Our\Examine\SearchFilter.cs" />
<Compile Include="Our\Examine\SearchFilters.cs" />
<Compile Include="Our\Extensions\StringExtensions.cs" />
<Compile Include="Our\FilterConfig.cs" />
<Compile Include="Our\GoogleOAuth\UmbracoAuthTokenServerExtensions.cs" />
<Compile Include="Our\GoogleOAuth\UmbracoCustomOwinStartup.cs" />
<Compile Include="Our\GoogleOAuth\UmbracoGoogleAuthExtensions.cs" />
+1 -1
View File
@@ -99,7 +99,7 @@ namespace OurUmbraco.Project
public static string StripHtmlAndLimit(this String str, int chars)
{
str = umbraco.library.StripHtml(str);
str = str.StripHtml();
if (str.Length > chars)
str = str.Substring(0, chars);
+2 -1
View File
@@ -395,7 +395,8 @@ namespace OurUmbraco.Wiki.BusinessLogic
}
else
{
throw new ArgumentException(string.Format("No node exists with id '{0}'", Id));
HttpContext.Current.Response.StatusCode = 404;
HttpContext.Current.Response.End();
}
}
}
+1 -1
View File
@@ -33,7 +33,7 @@
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+49 -4
View File
@@ -6,9 +6,9 @@
<package id="ClientDependency-Mvc5" version="1.8.0.0" targetFramework="net452" />
<package id="EasyHttp" version="1.6.29.0" targetFramework="net451" />
<package id="Examine" version="0.1.80" targetFramework="net452" />
<package id="Hangfire" version="1.6.7" targetFramework="net452" />
<package id="Hangfire.Core" version="1.6.7" targetFramework="net452" />
<package id="Hangfire.SqlServer" version="1.6.7" targetFramework="net452" />
<package id="Hangfire" version="1.6.8" targetFramework="net452" />
<package id="Hangfire.Core" version="1.6.8" targetFramework="net452" />
<package id="Hangfire.SqlServer" version="1.6.8" targetFramework="net452" />
<package id="HtmlAgilityPack" version="1.4.9.5" targetFramework="net452" />
<package id="ImageProcessor" version="2.5.1" targetFramework="net452" />
<package id="ImageProcessor.Web" version="4.8.0" targetFramework="net452" />
@@ -17,6 +17,7 @@
<package id="Markdown" version="1.14.4" targetFramework="net452" />
<package id="MarkdownDeep.NET" version="1.5" targetFramework="net451" />
<package id="MarkdownSharp" version="1.13.0.0" targetFramework="net451" />
<package id="Microsoft.ApplicationInsights" version="2.2.0" targetFramework="net452" />
<package id="Microsoft.AspNet.Cors" version="5.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.Identity.Core" version="2.2.1" targetFramework="net452" />
<package id="Microsoft.AspNet.Identity.Owin" version="2.2.1" targetFramework="net452" />
@@ -28,7 +29,17 @@
<package id="Microsoft.AspNet.WebApi.Cors" version="5.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net452" />
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net452" />
<package id="Microsoft.Extensions.Configuration" version="1.1.0" targetFramework="net452" />
<package id="Microsoft.Extensions.Configuration.Abstractions" version="1.1.0" targetFramework="net452" />
<package id="Microsoft.Extensions.Configuration.FileExtensions" version="1.1.0" targetFramework="net452" />
<package id="Microsoft.Extensions.Configuration.Json" version="1.1.0" targetFramework="net452" />
<package id="Microsoft.Extensions.FileProviders.Abstractions" version="1.1.0" targetFramework="net452" />
<package id="Microsoft.Extensions.FileProviders.Physical" version="1.1.0" targetFramework="net452" />
<package id="Microsoft.Extensions.FileSystemGlobbing" version="1.1.0" targetFramework="net452" />
<package id="Microsoft.Extensions.Primitives" version="1.1.0" targetFramework="net452" />
<package id="Microsoft.IO.RecyclableMemoryStream" version="1.2.0" targetFramework="net452" />
<package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net452" />
<package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="net452" />
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net452" />
<package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net452" />
<package id="Microsoft.Owin.Security" version="3.0.1" targetFramework="net452" />
@@ -38,11 +49,45 @@
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net452" />
<package id="MiniProfiler" version="2.1.0" targetFramework="net452" />
<package id="MySql.Data" version="6.9.8" targetFramework="net452" />
<package id="Newtonsoft.Json" version="6.0.8" targetFramework="net452" />
<package id="NETStandard.Library" version="1.6.1" targetFramework="net452" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net452" />
<package id="Owin" version="1.0" targetFramework="net452" />
<package id="reCAPTCH.MVC" version="1.0.1" targetFramework="net452" />
<package id="RestSharp" version="104.1" targetFramework="net451" />
<package id="semver" version="1.1.2" targetFramework="net452" />
<package id="SharpZipLib" version="0.86.0" targetFramework="net452" />
<package id="System.Collections" version="4.3.0" targetFramework="net452" />
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net452" />
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net452" />
<package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="net452" />
<package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="net452" />
<package id="System.Globalization" version="4.3.0" targetFramework="net452" />
<package id="System.IO" version="4.3.0" targetFramework="net452" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net452" />
<package id="System.Linq" version="4.3.0" targetFramework="net452" />
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="net452" />
<package id="System.Net.Http" version="4.3.0" targetFramework="net452" />
<package id="System.Net.Primitives" version="4.3.0" targetFramework="net452" />
<package id="System.ObjectModel" version="4.3.0" targetFramework="net452" />
<package id="System.Reflection" version="4.3.0" targetFramework="net452" />
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="net452" />
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="net452" />
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="net452" />
<package id="System.Runtime" version="4.3.0" targetFramework="net452" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.3.0" targetFramework="net452" />
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net452" />
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net452" />
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net452" />
<package id="System.Runtime.Numerics" version="4.3.0" targetFramework="net452" />
<package id="System.Text.Encoding" version="4.3.0" targetFramework="net452" />
<package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="net452" />
<package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="net452" />
<package id="System.Threading" version="4.3.0" targetFramework="net452" />
<package id="System.Threading.Tasks" version="4.3.0" targetFramework="net452" />
<package id="System.Threading.Timer" version="4.3.0" targetFramework="net452" />
<package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="net452" />
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="net452" />
<package id="TweetinviAPI" version="1.2.0" targetFramework="net452" />
<package id="UmbracoCms.Core" version="7.5.7" targetFramework="net452" />
<package id="UmbracoCms.IdentityExtensions" version="1.0.0" targetFramework="net451" />
<package id="UmbracoCms.IdentityExtensions.Google" version="1.0.0" targetFramework="net451" />
+13 -5
View File
@@ -1,4 +1,4 @@
<Project DefaultTargets="TransformWebConfig" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="TransformConfigs" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectPath>.\</ProjectPath>
<SourceDirectory>.\OurUmbraco.Site\</SourceDirectory>
@@ -10,20 +10,28 @@
<UsingTask TaskName="TransformXml" AssemblyFile="$(DeployHelperDirectory)Microsoft.Web.Publishing.Tasks.dll"/>
<Target Name="TransformWebConfig">
<Target Name="TransformConfigs">
<PropertyGroup>
<WebConfigTransformInputFile>$(SourceDirectory)web.config</WebConfigTransformInputFile>
<WebConfigTransformFile>$(DeployHelperDirectory)\$(ProjectName)\ConfigTransforms\Web.$(Environment).config</WebConfigTransformFile>
<WebConfigTransformOutputFolder>$(DeployHelperDirectory)\$(ProjectName)\$(Environment)\</WebConfigTransformOutputFolder>
<ApplicationInsightsConfigTransformInputFile>$(SourceDirectory)ApplicationInsights.config</ApplicationInsightsConfigTransformInputFile>
<ApplicationInsightsConfigTransformFile>$(DeployHelperDirectory)\$(ProjectName)\ConfigTransforms\ApplicationInsights.$(Environment).config</ApplicationInsightsConfigTransformFile>
<ConfigTransformOutputFolder>$(DeployHelperDirectory)\$(ProjectName)\$(Environment)\</ConfigTransformOutputFolder>
<StackTraceEnabled>False</StackTraceEnabled>
</PropertyGroup>
<MakeDir Directories="$(WebConfigTransformOutputFolder)"/>
<MakeDir Directories="$(ConfigTransformOutputFolder)"/>
<TransformXml Source="$(WebConfigTransformInputFile)"
Transform="$(WebConfigTransformFile)"
Destination="$(WebConfigTransformOutputFolder)\Web.config"
Destination="$(ConfigTransformOutputFolder)\Web.config"
StackTrace="$(StackTraceEnabled)" />
<TransformXml Source="$(ApplicationInsightsConfigTransformInputFile)"
Transform="$(ApplicationInsightsConfigTransformFile)"
Destination="$(ConfigTransformOutputFolder)\ApplicationInsights.config"
StackTrace="$(StackTraceEnabled)" />
</Target>
</Project>