Compare commits
190 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 27f88dfb80 | |||
| 252a9015dc | |||
| 166007c668 | |||
| 0ad13cf309 | |||
| 9af7fc7752 | |||
| 5d6c3aaee1 | |||
| 0fffc62360 | |||
| 7faf09a80f | |||
| 83ea40bc83 | |||
| 92babb8674 | |||
| abac4190aa | |||
| f23b7f1036 | |||
| 3fd893a611 | |||
| af4a802b19 | |||
| 4a4e7c9874 | |||
| 1e04654a16 | |||
| a16fece807 | |||
| 3f61b8c903 | |||
| 088ce651c8 | |||
| 67d48acbf6 | |||
| f152e7bbe8 | |||
| bb206a5cc5 | |||
| cd69617d76 | |||
| 3e661e6cdd | |||
| 24c9389e2e | |||
| ccc6fb2043 | |||
| 00ad76fdd0 | |||
| 0c39411ff2 | |||
| 9222213757 | |||
| b7d5fc0cf1 | |||
| 4b401048ae | |||
| 7adcbd327a | |||
| 0a777c44a6 | |||
| 0797ecc574 | |||
| b414a29b1d | |||
| bd8b002ecf | |||
| b811d3d127 | |||
| 2c5aa5ed31 | |||
| deae2a5a89 | |||
| 25327495ad | |||
| 6e74e38e39 | |||
| 1f7723d1ed | |||
| 4133c2c009 | |||
| 6b94c119a4 | |||
| eccd0eec87 | |||
| 6e2f578676 | |||
| 62bc966bfe | |||
| a810cc6bad | |||
| 1ca1e0ab87 | |||
| 3f17a57289 | |||
| 16e61c9ac4 | |||
| 2c8e1fe3a2 | |||
| 85ed5b5c66 | |||
| 5c74a14f80 | |||
| 6504f340ed | |||
| 6d1d1d398c | |||
| d5cab0fe92 | |||
| 8b28b24d8f | |||
| 89b1e2d124 | |||
| 2aed23b022 | |||
| 82dd7734dc | |||
| 18e1ae74bf | |||
| 95a7bb32be | |||
| 1075e8de1a | |||
| 1b319c5c55 | |||
| 5c6eb8213c | |||
| 640d6ab4ad | |||
| 1ea8a13dd0 | |||
| 1f9e1ac764 | |||
| 2e62edb015 | |||
| 1c766208dc | |||
| e373687c75 | |||
| f9c7a24871 | |||
| 04a25a84f7 | |||
| 948eea9c51 | |||
| 1ba26a4dd1 | |||
| 90d0ab7df1 | |||
| ac9007f1f6 | |||
| 94a0d63ff2 | |||
| 868770b553 | |||
| 126de6dbe5 | |||
| 26a88e1381 | |||
| d398dfb024 | |||
| 3ec0a9eebd | |||
| 6cea47b608 | |||
| aaccdbb1a4 | |||
| 95cc9ba067 | |||
| b729494047 | |||
| 76684a497e | |||
| 75fb9d1986 | |||
| 5e9dd0d52e | |||
| b63c5f93c3 | |||
| e87a80b8ca | |||
| 7c507d9767 | |||
| 8cf00d0420 | |||
| f59bb01d3a | |||
| 2eba7632ce | |||
| a8ca4fc0f5 | |||
| 6239d78858 | |||
| e78de056f2 | |||
| 060fb89496 | |||
| bc24b136ad | |||
| c401398922 | |||
| 96876b72d0 | |||
| af201ce6e6 | |||
| 80598056ee | |||
| 341664e978 | |||
| 5d070a021b | |||
| a6c3077f95 | |||
| f3001b900a | |||
| 7b720101f5 | |||
| 4880f82561 | |||
| 5675a68b8c | |||
| e620c153d7 | |||
| 031e8ec967 | |||
| f26ddc85f8 | |||
| e516082c0e | |||
| 6b3313728b | |||
| 7adc171a0e | |||
| e1938c68d2 | |||
| ada3b38995 | |||
| a571e0b5bf | |||
| 7cc2fb3eca | |||
| 98f60d9410 | |||
| b2a79b95e9 | |||
| ad1c6da04f | |||
| 638d3cc562 | |||
| 1a65664c6c | |||
| 26d7b60159 | |||
| 85662496aa | |||
| e1246d1ae7 | |||
| 8110dcc4bf | |||
| 368e84b4d1 | |||
| abc7e39eb2 | |||
| 0b5e452032 | |||
| 1eecf4c4de | |||
| 88d7edf5ee | |||
| 004ae6b023 | |||
| ad0b3b7c71 | |||
| 70b63998a1 | |||
| fe52faa065 | |||
| b7b3e18a3e | |||
| 8f81ce037a | |||
| 39aa7e5311 | |||
| 53c188c5b6 | |||
| 7d0578d8c1 | |||
| c27b8790d5 | |||
| 0e4f7718d4 | |||
| 3035bff4dd | |||
| 302a678a07 | |||
| 38fd648c43 | |||
| f5d3ef9480 | |||
| be4a2a5aec | |||
| 4f58b4f2ea | |||
| 69cff0f328 | |||
| 5727b06d4b | |||
| 17f1de89d2 | |||
| 476eb858cd | |||
| e7bbcb0029 | |||
| d3d75c80ce | |||
| 58503221f8 | |||
| 161b0fc47f | |||
| 234420aed9 | |||
| ef8e1cd45c | |||
| 602c524f70 | |||
| d179ac3703 | |||
| b12871d47e | |||
| 018dc957c3 | |||
| 4f8d757e7f | |||
| 295039b455 | |||
| de732c4a86 | |||
| 7e692525ff | |||
| 8423e6938f | |||
| e8e944d918 | |||
| 720d1f001c | |||
| 639b371b0e | |||
| 1dba5261f8 | |||
| b02fbcbaef | |||
| 55ee5e9ae4 | |||
| e1d50b5da5 | |||
| 2b87f60066 | |||
| dc0f71e354 | |||
| 0467c69b88 | |||
| ceabcc4ce4 | |||
| 9be6b66841 | |||
| da4f1f0f8a | |||
| 2191054412 | |||
| e1cd3d576f | |||
| c851acb92d | |||
| 2db2b5df03 |
@@ -61,3 +61,6 @@ OurUmbraco.Site/[Aa]ssets/css/style.min.css
|
||||
OurUmbraco.Site/[Aa]ssets/js/app.min.js
|
||||
.vs/
|
||||
OurUmbraco.Site/App_Data/migrations/*.txt
|
||||
OurUmbraco.Site/apidocs/
|
||||
OurUmbraco.Site/App_Data/Documentation/
|
||||
build/tools/node*
|
||||
|
||||
@@ -3,7 +3,4 @@
|
||||
<solution>
|
||||
<add key="disableSourceControlIntegration" value="true" />
|
||||
</solution>
|
||||
<packageSources>
|
||||
<add key="Umbraco 7 Nightly Feed" value="https://www.myget.org/F/umbraco72nightly/api/v2" />
|
||||
</packageSources>
|
||||
</configuration>
|
||||
@@ -1,155 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">$(MSBuildProjectDirectory)\..\</SolutionDir>
|
||||
|
||||
<!-- Enable the restore command to run before builds -->
|
||||
<RestorePackages Condition=" '$(RestorePackages)' == '' ">false</RestorePackages>
|
||||
|
||||
<!-- Property that enables building a package from a project -->
|
||||
<BuildPackage Condition=" '$(BuildPackage)' == '' ">false</BuildPackage>
|
||||
|
||||
<!-- Determines if package restore consent is required to restore packages -->
|
||||
<RequireRestoreConsent Condition=" '$(RequireRestoreConsent)' != 'false' ">true</RequireRestoreConsent>
|
||||
|
||||
<!-- Download NuGet.exe if it does not already exist -->
|
||||
<DownloadNuGetExe Condition=" '$(DownloadNuGetExe)' == '' ">false</DownloadNuGetExe>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(PackageSources)' == '' ">
|
||||
<!-- Package sources used to restore packages. By default, registered sources under %APPDATA%\NuGet\NuGet.Config will be used -->
|
||||
<!-- The official NuGet package source (https://nuget.org/api/v2/) will be excluded if package sources are specified and it does not appear in the list -->
|
||||
<!--
|
||||
<PackageSource Include="https://nuget.org/api/v2/" />
|
||||
<PackageSource Include="https://my-nuget-source/nuget/" />
|
||||
-->
|
||||
<PackageSource Include="https://nuget.org/api/v2/" />
|
||||
<PackageSource Include="https://www.myget.org/F/umbraco72nightly/api/v2" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(OS)' == 'Windows_NT'">
|
||||
<!-- Windows specific commands -->
|
||||
<NuGetToolsPath>$([System.IO.Path]::Combine($(SolutionDir), ".nuget"))</NuGetToolsPath>
|
||||
<PackagesConfig>$([System.IO.Path]::Combine($(ProjectDir), "packages.config"))</PackagesConfig>
|
||||
<PackagesDir>$([System.IO.Path]::Combine($(SolutionDir), "packages"))</PackagesDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(OS)' != 'Windows_NT'">
|
||||
<!-- We need to launch nuget.exe with the mono command if we're not on windows -->
|
||||
<NuGetToolsPath>$(SolutionDir).nuget</NuGetToolsPath>
|
||||
<PackagesConfig>packages.config</PackagesConfig>
|
||||
<PackagesDir>$(SolutionDir)packages</PackagesDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- NuGet command -->
|
||||
<NuGetExePath Condition=" '$(NuGetExePath)' == '' ">$(NuGetToolsPath)\nuget.exe</NuGetExePath>
|
||||
<PackageSources Condition=" $(PackageSources) == '' ">@(PackageSource)</PackageSources>
|
||||
|
||||
<NuGetCommand Condition=" '$(OS)' == 'Windows_NT'">"$(NuGetExePath)"</NuGetCommand>
|
||||
<NuGetCommand Condition=" '$(OS)' != 'Windows_NT' ">mono --runtime=v4.0.30319 $(NuGetExePath)</NuGetCommand>
|
||||
|
||||
<PackageOutputDir Condition="$(PackageOutputDir) == ''">$(TargetDir.Trim('\\'))</PackageOutputDir>
|
||||
|
||||
<RequireConsentSwitch Condition=" $(RequireRestoreConsent) == 'true' ">-RequireConsent</RequireConsentSwitch>
|
||||
<!-- Commands -->
|
||||
<RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch) -o "$(PackagesDir)"</RestoreCommand>
|
||||
<BuildCommand>$(NuGetCommand) pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols</BuildCommand>
|
||||
|
||||
<!-- We need to ensure packages are restored prior to assembly resolve -->
|
||||
<ResolveReferencesDependsOn Condition="$(RestorePackages) == 'true'">
|
||||
RestorePackages;
|
||||
$(ResolveReferencesDependsOn);
|
||||
</ResolveReferencesDependsOn>
|
||||
|
||||
<!-- Make the build depend on restore packages -->
|
||||
<BuildDependsOn Condition="$(BuildPackage) == 'true'">
|
||||
$(BuildDependsOn);
|
||||
BuildPackage;
|
||||
</BuildDependsOn>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="CheckPrerequisites">
|
||||
<!-- Raise an error if we're unable to locate nuget.exe -->
|
||||
<Error Condition="'$(DownloadNuGetExe)' != 'true' AND !Exists('$(NuGetExePath)')" Text="Unable to locate '$(NuGetExePath)'" />
|
||||
<SetEnvironmentVariable EnvKey="VisualStudioVersion" EnvValue="$(VisualStudioVersion)" Condition=" '$(VisualStudioVersion)' != '' AND '$(OS)' == 'Windows_NT' " />
|
||||
<!--
|
||||
Take advantage of MsBuild's build dependency tracking to make sure that we only ever download nuget.exe once.
|
||||
This effectively acts as a lock that makes sure that the download operation will only happen once and all
|
||||
parallel builds will have to wait for it to complete.
|
||||
-->
|
||||
<MsBuild Targets="_DownloadNuGet" Projects="$(MSBuildThisFileFullPath)" Properties="Configuration=NOT_IMPORTANT" />
|
||||
</Target>
|
||||
|
||||
<Target Name="_DownloadNuGet">
|
||||
<DownloadNuGet OutputFilename="$(NuGetExePath)" Condition=" '$(DownloadNuGetExe)' == 'true' AND !Exists('$(NuGetExePath)')" />
|
||||
</Target>
|
||||
|
||||
<Target Name="RestorePackages" DependsOnTargets="CheckPrerequisites">
|
||||
<Exec Command="$(RestoreCommand)"
|
||||
Condition="'$(OS)' != 'Windows_NT' And Exists('$(PackagesConfig)')" />
|
||||
|
||||
<Exec Command="$(RestoreCommand)"
|
||||
LogStandardErrorAsError="true"
|
||||
Condition="'$(OS)' == 'Windows_NT' And Exists('$(PackagesConfig)')" />
|
||||
</Target>
|
||||
|
||||
<Target Name="BuildPackage" DependsOnTargets="CheckPrerequisites">
|
||||
<Exec Command="$(BuildCommand)"
|
||||
Condition=" '$(OS)' != 'Windows_NT' " />
|
||||
|
||||
<Exec Command="$(BuildCommand)"
|
||||
LogStandardErrorAsError="true"
|
||||
Condition=" '$(OS)' == 'Windows_NT' " />
|
||||
</Target>
|
||||
|
||||
<UsingTask TaskName="DownloadNuGet" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
|
||||
<ParameterGroup>
|
||||
<OutputFilename ParameterType="System.String" Required="true" />
|
||||
</ParameterGroup>
|
||||
<Task>
|
||||
<Reference Include="System.Core" />
|
||||
<Using Namespace="System" />
|
||||
<Using Namespace="System.IO" />
|
||||
<Using Namespace="System.Net" />
|
||||
<Using Namespace="Microsoft.Build.Framework" />
|
||||
<Using Namespace="Microsoft.Build.Utilities" />
|
||||
<Code Type="Fragment" Language="cs">
|
||||
<![CDATA[
|
||||
try {
|
||||
OutputFilename = Path.GetFullPath(OutputFilename);
|
||||
|
||||
Log.LogMessage("Downloading latest version of NuGet.exe...");
|
||||
WebClient webClient = new WebClient();
|
||||
webClient.DownloadFile("https://nuget.org/nuget.exe", OutputFilename);
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex) {
|
||||
Log.LogErrorFromException(ex);
|
||||
return false;
|
||||
}
|
||||
]]>
|
||||
</Code>
|
||||
</Task>
|
||||
</UsingTask>
|
||||
|
||||
<UsingTask TaskName="SetEnvironmentVariable" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
|
||||
<ParameterGroup>
|
||||
<EnvKey ParameterType="System.String" Required="true" />
|
||||
<EnvValue ParameterType="System.String" Required="true" />
|
||||
</ParameterGroup>
|
||||
<Task>
|
||||
<Using Namespace="System" />
|
||||
<Code Type="Fragment" Language="cs">
|
||||
<![CDATA[
|
||||
try {
|
||||
Environment.SetEnvironmentVariable(EnvKey, EnvValue, System.EnvironmentVariableTarget.Process);
|
||||
}
|
||||
catch {
|
||||
}
|
||||
]]>
|
||||
</Code>
|
||||
</Task>
|
||||
</UsingTask>
|
||||
</Project>
|
||||
@@ -1,22 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using uForum.Businesslogic;
|
||||
|
||||
namespace NotificationsCore.EventHandlers
|
||||
{
|
||||
public class Forum : umbraco.BusinessLogic.ApplicationBase
|
||||
{
|
||||
public Forum()
|
||||
{
|
||||
Comment.AfterCreate += new EventHandler<CreateEventArgs>(Comment_AfterCreate);
|
||||
}
|
||||
|
||||
void Comment_AfterCreate(object sender, uForum.Businesslogic.CreateEventArgs e)
|
||||
{
|
||||
Comment c = (Comment)sender;
|
||||
|
||||
//InstantNotification.Execute("NewComment", c.Id);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,72 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Reflection;
|
||||
|
||||
namespace NotificationsCore
|
||||
{
|
||||
public class InstantNotification
|
||||
{
|
||||
private delegate void ExecuteDelegate(string config, string assemblydir, string name, params object[] args);
|
||||
private ExecuteDelegate ed;
|
||||
|
||||
public InstantNotification()
|
||||
{
|
||||
ed = new ExecuteDelegate(this.Execute);
|
||||
}
|
||||
|
||||
public void Invoke(string config, string assemblydir, string name, params object[] args)
|
||||
{
|
||||
ed.BeginInvoke(config, assemblydir, name, args, null, null);
|
||||
}
|
||||
|
||||
public void Execute(string config,string assemblydir, string name, params object[] args)
|
||||
{
|
||||
try
|
||||
{
|
||||
XmlDocument notifications = new XmlDocument();
|
||||
notifications.Load(config);
|
||||
|
||||
XmlNode settings = notifications.SelectSingleNode("//global");
|
||||
|
||||
XmlNode node = notifications.SelectSingleNode(
|
||||
string.Format("//instant//notification [@name = '{0}']", name));
|
||||
|
||||
XmlDocument details = new XmlDocument();
|
||||
XmlNode cont = details.CreateElement("details");
|
||||
|
||||
cont.AppendChild(details.ImportNode(settings,true));
|
||||
cont.AppendChild(details.ImportNode(node,true));
|
||||
|
||||
details.AppendChild(cont);
|
||||
|
||||
if (node != null)
|
||||
{
|
||||
|
||||
|
||||
string assemblyFile =
|
||||
String.Format("{0}{1}.dll", assemblydir, node.Attributes["assembly"].Value);
|
||||
|
||||
Assembly nAssembly = System.Reflection.Assembly.LoadFrom(assemblyFile);
|
||||
|
||||
Notification n =
|
||||
(Notification)Activator.CreateInstance(
|
||||
nAssembly.GetType(node.Attributes["type"].Value));
|
||||
|
||||
n.SendNotification(details, args);
|
||||
}
|
||||
else
|
||||
{
|
||||
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, 666, "not found");
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, 666, e.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
|
||||
namespace NotificationsCore.Interfaces
|
||||
{
|
||||
interface INotification
|
||||
{
|
||||
bool SendNotification(XmlNode details, params object[] args);
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using NotificationsCore.Interfaces;
|
||||
using System.Xml;
|
||||
|
||||
namespace NotificationsCore
|
||||
{
|
||||
public abstract class Notification: INotification
|
||||
{
|
||||
#region INotification Members
|
||||
|
||||
public virtual bool SendNotification(XmlNode details, params object[] args) { return false; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,322 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>9.0.30729</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{80E5F59D-A7A0-4CEE-AEB6-6C626C44B2B2}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>NotificationsCore</RootNamespace>
|
||||
<AssemblyName>NotificationsCore</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
<TargetFrameworkProfile />
|
||||
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
|
||||
<RestorePackages>true</RestorePackages>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="AutoMapper, Version=3.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\AutoMapper.3.0.0\lib\net40\AutoMapper.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="AutoMapper.Net4, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\AutoMapper.3.0.0\lib\net40\AutoMapper.Net4.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="businesslogic, Version=1.0.5780.28252, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\businesslogic.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="ClientDependency.Core, Version=1.8.4.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\ClientDependency.1.8.4\lib\net45\ClientDependency.Core.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="ClientDependency.Core.Mvc, Version=1.8.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\ClientDependency-Mvc5.1.8.0.0\lib\net45\ClientDependency.Core.Mvc.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="cms, Version=1.0.5780.28253, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\cms.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="controls, Version=1.0.5780.28254, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\controls.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="CookComputing.XmlRpcV2, Version=2.5.0.0, Culture=neutral, PublicKeyToken=a7d6e17aa302004d, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\xmlrpcnet.2.5.0\lib\net20\CookComputing.XmlRpcV2.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Examine, Version=0.1.68.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Examine.0.1.68.0\lib\Examine.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="HtmlAgilityPack, Version=1.4.9.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\HtmlAgilityPack.1.4.9\lib\Net45\HtmlAgilityPack.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="ImageProcessor, Version=2.3.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\ImageProcessor.2.3.0.0\lib\net45\ImageProcessor.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="ImageProcessor.Web, Version=4.4.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\ImageProcessor.Web.4.4.0.0\lib\net45\ImageProcessor.Web.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="interfaces, Version=1.0.5780.28247, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\interfaces.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="log4net, Version=1.2.11.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\log4net.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Lucene.Net, Version=2.9.4.1, Culture=neutral, PublicKeyToken=85089178b9ac3181, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Lucene.Net.2.9.4.1\lib\net40\Lucene.Net.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.ApplicationBlocks.Data, Version=1.0.1559.20655, Culture=neutral">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\Microsoft.ApplicationBlocks.Data.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AspNet.Identity.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.Identity.Core.2.2.1\lib\net45\Microsoft.AspNet.Identity.Core.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AspNet.Identity.Owin, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.Identity.Owin.2.2.1\lib\net45\Microsoft.AspNet.Identity.Owin.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin.Host.SystemWeb, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.Host.SystemWeb.3.0.1\lib\net45\Microsoft.Owin.Host.SystemWeb.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin.Security, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.Security.3.0.1\lib\net45\Microsoft.Owin.Security.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin.Security.Cookies, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.Security.Cookies.3.0.1\lib\net45\Microsoft.Owin.Security.Cookies.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin.Security.OAuth, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.Security.OAuth.3.0.1\lib\net45\Microsoft.Owin.Security.OAuth.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>
|
||||
</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>
|
||||
</Reference>
|
||||
<Reference Include="MiniProfiler, Version=2.1.0.0, Culture=neutral, PublicKeyToken=b44f9351044011a3, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MiniProfiler.2.1.0\lib\net40\MiniProfiler.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="MySql.Data, Version=6.9.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MySql.Data.6.9.7\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>
|
||||
<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="Semver, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\semver.1.1.2\lib\net451\Semver.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="SQLCE4Umbraco, Version=1.0.5780.28254, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\SQLCE4Umbraco.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.configuration" />
|
||||
<Reference Include="System.Core">
|
||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||
</Reference>
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\System.Data.SqlServerCe.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Data.SqlServerCe.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\System.Data.SqlServerCe.Entity.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<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.Web" />
|
||||
<Reference Include="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.Helpers.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Http, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Http.WebHost, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.Razor.3.2.3\lib\net45\System.Web.Razor.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.WebPages.Deployment, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Deployment.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Razor.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="TidyNet, Version=1.0.0.0, Culture=neutral">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\TidyNet.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="umbraco, Version=1.0.5780.28255, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\umbraco.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Umbraco.Core, Version=1.0.5780.28249, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\Umbraco.Core.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="umbraco.DataLayer, Version=1.0.5780.28252, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\umbraco.DataLayer.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="umbraco.editorControls, Version=1.0.5780.28258, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\umbraco.editorControls.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="umbraco.MacroEngines, Version=1.0.5780.28258, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\umbraco.MacroEngines.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="umbraco.providers, Version=1.0.5780.28254, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\umbraco.providers.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Umbraco.Web.UI, Version=1.0.5780.28259, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\Umbraco.Web.UI.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="UmbracoExamine, Version=0.7.0.28253, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\UmbracoExamine.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="UrlRewritingNet.UrlRewriter, Version=2.0.60829.1, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\UrlRewritingNet.UrlRewriter.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="WebMatrix.Data, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebPages.Data.3.2.3\lib\net45\WebMatrix.Data.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="WebMatrix.WebData, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebPages.WebData.3.2.3\lib\net45\WebMatrix.WebData.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="InstantNotification.cs" />
|
||||
<Compile Include="Interfaces\INotification.cs" />
|
||||
<Compile Include="Notification.cs" />
|
||||
<Compile Include="NotificationTypes\NewForumTopic.cs" />
|
||||
<Compile Include="NotificationTypes\NewForumTopicComment.cs" />
|
||||
<Compile Include="SheduledNotification.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="app.config" />
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\OurUmbraco\OurUmbraco.csproj">
|
||||
<Project>{a8e5c936-ecab-45b3-bfda-d12f680eb2a6}</Project>
|
||||
<Name>OurUmbraco</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
|
||||
</Target>
|
||||
<Import Project="..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" />
|
||||
<Target Name="EnsureBclBuildImported" BeforeTargets="BeforeBuild" Condition="'$(BclBuildImported)' == ''">
|
||||
<Error Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=317567." HelpKeyword="BCLBUILD2001" />
|
||||
<Error Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="The build restored NuGet packages. Build the project again to include these packages in the build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317568." HelpKeyword="BCLBUILD2002" />
|
||||
</Target>
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
@@ -1,52 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Timers;
|
||||
using System.Reflection;
|
||||
using System.Xml;
|
||||
|
||||
|
||||
namespace NotificationsCore
|
||||
{
|
||||
public class NotificationExecuter
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public double Interval { get; set; }
|
||||
public string Assembly { get; set; }
|
||||
public string Type { get; set; }
|
||||
public XmlNode Details { get; set; }
|
||||
|
||||
Timer timer = new Timer();
|
||||
|
||||
public NotificationExecuter(string name, double interval, string assembly, string type, XmlNode details)
|
||||
{
|
||||
this.Name = name;
|
||||
this.Interval = interval;
|
||||
this.Assembly = assembly;
|
||||
this.Type = type;
|
||||
this.Details = details;
|
||||
}
|
||||
public void Start()
|
||||
{
|
||||
timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
|
||||
timer.Interval = Interval;
|
||||
timer.Enabled = true;
|
||||
|
||||
}
|
||||
|
||||
void timer_Elapsed(object sender, ElapsedEventArgs e)
|
||||
{
|
||||
string assemblyFile =
|
||||
String.Format("{0}.dll", Assembly);
|
||||
|
||||
Assembly nAssembly = System.Reflection.Assembly.LoadFrom(assemblyFile);
|
||||
|
||||
Notification n =
|
||||
(Notification)Activator.CreateInstance(
|
||||
nAssembly.GetType(Type));
|
||||
|
||||
n.SendNotification(Details);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,113 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Net.Mail;
|
||||
using System.Data.SqlClient;
|
||||
using umbraco.cms.businesslogic.member;
|
||||
using umbraco.presentation.nodeFactory;
|
||||
using umbraco.cms.businesslogic.web;
|
||||
using System.Web;
|
||||
using OurUmbraco.Forum.Models;
|
||||
|
||||
namespace NotificationsCore.NotificationTypes
|
||||
{
|
||||
public class NewForumTopic: Notification
|
||||
{
|
||||
public NewForumTopic()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override bool SendNotification(System.Xml.XmlNode details, params object[] args)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
var topic = (Topic)args[0];
|
||||
string url = (string)args[1];
|
||||
var memberName = (string)args[2];
|
||||
|
||||
if (topic.IsSpam)
|
||||
{
|
||||
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, string.Format("[Notifications] Topic ID {0} is marked as spam, no notification sent{0}", topic.Id));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
SmtpClient c = new SmtpClient();
|
||||
//c.Credentials = new System.Net.NetworkCredential(details.SelectSingleNode("//username").InnerText, details.SelectSingleNode("//password").InnerText);
|
||||
|
||||
MailAddress from = new MailAddress(
|
||||
details.SelectSingleNode("//from/email").InnerText,
|
||||
details.SelectSingleNode("//from/name").InnerText);
|
||||
|
||||
string subject = details.SelectSingleNode("//subject").InnerText;
|
||||
string body = details.SelectSingleNode("//body").InnerText;
|
||||
|
||||
|
||||
|
||||
//currently using document api instead of nodefactory
|
||||
Document forum = new Document(topic.ParentId);
|
||||
|
||||
|
||||
subject = string.Format(subject, forum.Text);
|
||||
|
||||
var domain = details.SelectSingleNode("//domain").InnerText;
|
||||
|
||||
body = string.Format(body, forum.Text, "https://" + domain + url, memberName, topic.Title, HttpUtility.HtmlDecode(umbraco.library.StripHtml(topic.Body)));
|
||||
|
||||
|
||||
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["umbracoDbDSN"].ConnectionString);
|
||||
|
||||
|
||||
SqlCommand comm = new SqlCommand("Select memberId from forumSubscribers where forumId = @forumId", conn);
|
||||
comm.Parameters.AddWithValue("@forumId", topic.ParentId);
|
||||
conn.Open();
|
||||
|
||||
SqlDataReader dr = comm.ExecuteReader();
|
||||
|
||||
while (dr.Read())
|
||||
{
|
||||
|
||||
int mid = dr.GetInt32(0);
|
||||
try
|
||||
{
|
||||
|
||||
Member m = new Member(mid);
|
||||
|
||||
|
||||
if (m.Id != topic.MemberId
|
||||
&& (m.getProperty("bugMeNot").Value.ToString() != "1"))
|
||||
{
|
||||
MailMessage mm = new MailMessage();
|
||||
mm.Subject = subject;
|
||||
mm.Body = body;
|
||||
|
||||
mm.To.Add(m.Email);
|
||||
mm.From = from;
|
||||
|
||||
c.Send(mm);
|
||||
}
|
||||
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1,
|
||||
"[Notifications] Error sending mail to " + mid.ToString() + " " + e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
conn.Close();
|
||||
|
||||
|
||||
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, "[Notifications]" + e.Message);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,107 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Net.Mail;
|
||||
using System.Data.SqlClient;
|
||||
using umbraco.cms.businesslogic.member;
|
||||
using System.Web;
|
||||
using OurUmbraco.Forum.Models;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Web;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Web.Security;
|
||||
|
||||
namespace NotificationsCore.NotificationTypes
|
||||
{
|
||||
public class NewForumTopicComment: Notification
|
||||
{
|
||||
public NewForumTopicComment()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override bool SendNotification(System.Xml.XmlNode details, params object[] args)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
|
||||
|
||||
Comment com = (Comment)args[0];
|
||||
Topic topic = (Topic)args[1];
|
||||
string url = (string)args[2];
|
||||
string memberName = (string)args[3];
|
||||
|
||||
|
||||
if (com.IsSpam)
|
||||
{
|
||||
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, string.Format("[Notifications] Comment Id {{0}} is marked as spam, no notification sent{0}", com.Id));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
//SMTP SETTINGS
|
||||
SmtpClient c = new SmtpClient();
|
||||
//c.Credentials = new System.Net.NetworkCredential(details.SelectSingleNode("//username").InnerText, details.SelectSingleNode("//password").InnerText);
|
||||
|
||||
//SENDER ADDRESS
|
||||
MailAddress from = new MailAddress(
|
||||
details.SelectSingleNode("//from/email").InnerText,
|
||||
details.SelectSingleNode("//from/name").InnerText);
|
||||
|
||||
//Notification details
|
||||
var domain = details.SelectSingleNode("//domain").InnerText;
|
||||
var subject = string.Format(details.SelectSingleNode("//subject").InnerText, topic.Title);
|
||||
var body = details.SelectSingleNode("//body").InnerText;
|
||||
body = string.Format(body, topic.Title, "https://" + domain + url + "#comment-" + com.Id, memberName, HttpUtility.HtmlDecode(umbraco.library.StripHtml(com.Body)));
|
||||
|
||||
|
||||
//connect to DB
|
||||
|
||||
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["umbracoDbDSN"].ConnectionString);
|
||||
SqlCommand comm = new SqlCommand("Select memberId from forumTopicSubscribers where topicId = @topicId", conn);
|
||||
comm.Parameters.AddWithValue("@topicId", topic.Id);
|
||||
conn.Open();
|
||||
|
||||
|
||||
//shit this must be so fucking slow
|
||||
SqlDataReader dr = comm.ExecuteReader();
|
||||
while (dr.Read())
|
||||
{
|
||||
int mid = dr.GetInt32(0);
|
||||
try
|
||||
{
|
||||
var m = new umbraco.cms.businesslogic.member.Member(mid);
|
||||
|
||||
if (m.Id != com.MemberId
|
||||
&& m.getProperty("bugMeNot").Value.ToString() != "1")
|
||||
{
|
||||
MailMessage mm = new MailMessage();
|
||||
mm.Subject = subject;
|
||||
mm.Body = body;
|
||||
|
||||
mm.To.Add(m.Email);
|
||||
mm.From = from;
|
||||
|
||||
c.Send(mm);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1,
|
||||
"[Notifications] Error sending mail to " + mid.ToString() + " " + e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
conn.Close();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, "[Notifications]" + e.Message);
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("Notification")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Notification")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2010")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("df83d509-8920-49a4-a9e0-41665d8bfa42")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
@@ -1,52 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Timers;
|
||||
using System.Reflection;
|
||||
using System.Xml;
|
||||
|
||||
|
||||
namespace NotificationsCore
|
||||
{
|
||||
public class SheduledNotification
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public double Interval { get; set; }
|
||||
public string Assembly { get; set; }
|
||||
public string Type { get; set; }
|
||||
public XmlNode Details { get; set; }
|
||||
|
||||
Timer timer = new Timer();
|
||||
|
||||
public SheduledNotification(string name, double interval, string assembly, string type, XmlNode details)
|
||||
{
|
||||
this.Name = name;
|
||||
this.Interval = interval;
|
||||
this.Assembly = assembly;
|
||||
this.Type = type;
|
||||
this.Details = details;
|
||||
}
|
||||
public void Start()
|
||||
{
|
||||
timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
|
||||
timer.Interval = Interval;
|
||||
timer.Enabled = true;
|
||||
|
||||
}
|
||||
|
||||
void timer_Elapsed(object sender, ElapsedEventArgs e)
|
||||
{
|
||||
string assemblyFile =
|
||||
String.Format("{0}.dll", Assembly);
|
||||
|
||||
Assembly nAssembly = System.Reflection.Assembly.LoadFrom(assemblyFile);
|
||||
|
||||
Notification n =
|
||||
(Notification)Activator.CreateInstance(
|
||||
nAssembly.GetType(Type));
|
||||
|
||||
n.SendNotification(Details);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Http.WebHost" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
@@ -1,42 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="AutoMapper" version="3.0.0" targetFramework="net451" />
|
||||
<package id="ClientDependency" version="1.8.4" targetFramework="net451" />
|
||||
<package id="ClientDependency-Mvc" version="1.8.0.0" targetFramework="net451" />
|
||||
<package id="ClientDependency-Mvc5" version="1.8.0.0" targetFramework="net451" />
|
||||
<package id="Examine" version="0.1.68.0" targetFramework="net451" />
|
||||
<package id="HtmlAgilityPack" version="1.4.9" targetFramework="net451" />
|
||||
<package id="ImageProcessor" version="2.3.0.0" targetFramework="net451" />
|
||||
<package id="ImageProcessor.Web" version="4.4.0.0" targetFramework="net451" />
|
||||
<package id="Lucene.Net" version="2.9.4.1" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.Identity.Core" version="2.2.1" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.Identity.Owin" version="2.2.1" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.Mvc.FixedDisplayModes" version="5.0.0" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebHelpers" version="3.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebPages.Data" version="3.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebPages.WebData" version="3.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.Bcl" version="1.1.10" targetFramework="net451" />
|
||||
<package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="net451" />
|
||||
<package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net451" />
|
||||
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net451" />
|
||||
<package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net451" />
|
||||
<package id="Microsoft.Owin.Security" version="3.0.1" targetFramework="net451" />
|
||||
<package id="Microsoft.Owin.Security.Cookies" version="3.0.1" targetFramework="net451" />
|
||||
<package id="Microsoft.Owin.Security.OAuth" version="3.0.1" targetFramework="net451" />
|
||||
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net451" />
|
||||
<package id="MiniProfiler" version="2.1.0" targetFramework="net451" />
|
||||
<package id="MySql.Data" version="6.9.7" targetFramework="net451" />
|
||||
<package id="Newtonsoft.Json" version="6.0.8" targetFramework="net451" />
|
||||
<package id="Owin" version="1.0" targetFramework="net451" />
|
||||
<package id="semver" version="1.1.2" targetFramework="net451" />
|
||||
<package id="SharpZipLib" version="0.86.0" targetFramework="net451" />
|
||||
<package id="UmbracoCms.Core" version="7.3.1" targetFramework="net451" />
|
||||
<package id="xmlrpcnet" version="2.5.0" targetFramework="net451" />
|
||||
</packages>
|
||||
@@ -1,10 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<configuration>
|
||||
<appSettings>
|
||||
<add key="url" value="http://dreamingofawhitechristmas.our.umbraco.org/umbraco/plugins/Notifications/SheduledTaskTrigger.aspx"/>
|
||||
<add key="interval" value="900000"/>
|
||||
<!--
|
||||
<add key="configFile" value="C:\Users\Tim Geyssens\Documents\Visual Studio 2008\Umbraco\OUR\NotificationMailer\NotificationMailer.config"/>
|
||||
-->
|
||||
</appSettings>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/></startup></configuration>
|
||||
@@ -1,24 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
|
||||
<notification name="New forum post" interval="200" assembly="temp" type="temp">
|
||||
<from>
|
||||
<name>Our umbraco</name>
|
||||
<email>robot@umbraco.org</email>
|
||||
</from>
|
||||
<subject>There has been a new post</subject>
|
||||
<body>There has been a new post</body>
|
||||
</notification>
|
||||
|
||||
|
||||
<notification name="Another forum post" interval="100" assembly="temp" type="temp">
|
||||
<from>
|
||||
<name>Our umbraco</name>
|
||||
<email>robot@umbraco.org</email>
|
||||
</from>
|
||||
<subject>There has been a new post</subject>
|
||||
<body>There has been a new post</body>
|
||||
</notification>
|
||||
|
||||
|
||||
</configuration>
|
||||
@@ -1,53 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Timers;
|
||||
using System.Reflection;
|
||||
using Notifications;
|
||||
using System.Xml;
|
||||
|
||||
|
||||
namespace NotificationMailer
|
||||
{
|
||||
public class NotificationExecuter
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public double Interval { get; set; }
|
||||
public string Assembly { get; set; }
|
||||
public string Type { get; set; }
|
||||
public XmlNode Details { get; set; }
|
||||
|
||||
Timer timer = new Timer();
|
||||
|
||||
public NotificationExecuter(string name, double interval, string assembly, string type, XmlNode details)
|
||||
{
|
||||
this.Name = name;
|
||||
this.Interval = interval;
|
||||
this.Assembly = assembly;
|
||||
this.Type = type;
|
||||
this.Details = details;
|
||||
}
|
||||
public void Start()
|
||||
{
|
||||
timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
|
||||
timer.Interval = Interval;
|
||||
timer.Enabled = true;
|
||||
|
||||
}
|
||||
|
||||
void timer_Elapsed(object sender, ElapsedEventArgs e)
|
||||
{
|
||||
string assemblyFile =
|
||||
String.Format("{0}.dll", Assembly);
|
||||
|
||||
Assembly nAssembly = System.Reflection.Assembly.LoadFrom(assemblyFile);
|
||||
|
||||
Notification n =
|
||||
(Notification)Activator.CreateInstance(
|
||||
nAssembly.GetType(Type));
|
||||
|
||||
n.SendNotification(Details);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,85 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>9.0.21022</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{F41D51B7-3ECF-4C4C-955E-6E761345E18E}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>NotificationMailer</RootNamespace>
|
||||
<AssemblyName>NotificationMailer</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
<UpgradeBackupLocation />
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Configuration.Install" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Management" />
|
||||
<Reference Include="System.ServiceProcess" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="NotificationService.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="NotificationService.Designer.cs">
|
||||
<DependentUpon>NotificationService.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="ProjectInstaller.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ProjectInstaller.Designer.cs">
|
||||
<DependentUpon>ProjectInstaller.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="NotificationService.resx">
|
||||
<DependentUpon>NotificationService.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="ProjectInstaller.resx">
|
||||
<DependentUpon>ProjectInstaller.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
@@ -1,40 +0,0 @@
|
||||
namespace NotificationMailer
|
||||
{
|
||||
partial class NotificationService
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
//
|
||||
// NotificationService
|
||||
//
|
||||
this.ServiceName = "NotificationService";
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,88 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Diagnostics;
|
||||
using System.ServiceProcess;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Configuration;
|
||||
using System.Threading;
|
||||
using System.Net;
|
||||
|
||||
namespace NotificationMailer
|
||||
{
|
||||
public partial class NotificationService : ServiceBase
|
||||
{
|
||||
|
||||
public NotificationService()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
protected override void OnStart(string[] args)
|
||||
{
|
||||
|
||||
System.Timers.Timer timer = new System.Timers.Timer();
|
||||
|
||||
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
|
||||
timer.Interval = double.Parse(ConfigurationSettings.AppSettings["interval"]);
|
||||
timer.Enabled = true;
|
||||
|
||||
timer.Start();
|
||||
|
||||
|
||||
//XmlDocument notifications = new XmlDocument();
|
||||
//notifications.Load(ConfigurationSettings.AppSettings["configFile"]);
|
||||
|
||||
//XmlNode settings = notifications.SelectSingleNode("//global");
|
||||
|
||||
//XmlNodeList xnl = notifications.SelectNodes("//sheduled//notification");
|
||||
//foreach (XmlNode node in xnl)
|
||||
//{
|
||||
// XmlDocument details = new XmlDocument();
|
||||
// XmlNode cont = details.CreateElement("details");
|
||||
|
||||
// cont.AppendChild(details.ImportNode(settings, true));
|
||||
// cont.AppendChild(details.ImportNode(node, true));
|
||||
|
||||
// details.AppendChild(cont);
|
||||
|
||||
// SheduledNotification n =
|
||||
// new SheduledNotification(
|
||||
// node.Attributes["name"].Value,
|
||||
// double.Parse(node.Attributes["interval"].Value),
|
||||
// node.Attributes["assembly"].Value,
|
||||
// node.Attributes["type"].Value,
|
||||
// details);
|
||||
|
||||
// Thread nThread = new Thread(new ThreadStart(n.Start));
|
||||
// nThread.Start();
|
||||
|
||||
//}
|
||||
}
|
||||
|
||||
void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
|
||||
{
|
||||
HttpWebRequest request = (HttpWebRequest)
|
||||
WebRequest.Create(ConfigurationSettings.AppSettings["url"]);
|
||||
|
||||
HttpWebResponse response = (HttpWebResponse)
|
||||
request.GetResponse();
|
||||
|
||||
|
||||
}
|
||||
|
||||
protected override void OnStop()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//public static string GetNodeValue(XmlNode n)
|
||||
//{
|
||||
// if (n == null || n.FirstChild == null)
|
||||
// return string.Empty;
|
||||
// return n.FirstChild.Value;
|
||||
//}
|
||||
}
|
||||
}
|
||||
@@ -1,123 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -1,23 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ServiceProcess;
|
||||
using System.Text;
|
||||
|
||||
namespace NotificationMailer
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
static void Main()
|
||||
{
|
||||
ServiceBase[] ServicesToRun;
|
||||
ServicesToRun = new ServiceBase[]
|
||||
{
|
||||
new NotificationService()
|
||||
};
|
||||
ServiceBase.Run(ServicesToRun);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,58 +0,0 @@
|
||||
namespace NotificationMailer
|
||||
{
|
||||
partial class ProjectInstaller
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.serviceProcessInstaller1 = new System.ServiceProcess.ServiceProcessInstaller();
|
||||
this.serviceInstaller1 = new System.ServiceProcess.ServiceInstaller();
|
||||
//
|
||||
// serviceProcessInstaller1
|
||||
//
|
||||
this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem;
|
||||
this.serviceProcessInstaller1.Password = null;
|
||||
this.serviceProcessInstaller1.Username = null;
|
||||
//
|
||||
// serviceInstaller1
|
||||
//
|
||||
this.serviceInstaller1.ServiceName = "NotificationService";
|
||||
this.serviceInstaller1.StartType = System.ServiceProcess.ServiceStartMode.Automatic;
|
||||
//
|
||||
// ProjectInstaller
|
||||
//
|
||||
this.Installers.AddRange(new System.Configuration.Install.Installer[] {
|
||||
this.serviceProcessInstaller1,
|
||||
this.serviceInstaller1});
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.ServiceProcess.ServiceProcessInstaller serviceProcessInstaller1;
|
||||
private System.ServiceProcess.ServiceInstaller serviceInstaller1;
|
||||
}
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Configuration.Install;
|
||||
using System.Linq;
|
||||
|
||||
|
||||
namespace NotificationMailer
|
||||
{
|
||||
[RunInstaller(true)]
|
||||
public partial class ProjectInstaller : System.Configuration.Install.Installer
|
||||
{
|
||||
public ProjectInstaller()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,129 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="serviceProcessInstaller1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="serviceInstaller1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>196, 17</value>
|
||||
</metadata>
|
||||
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -1,36 +0,0 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("NotificationMailer")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("NotificationMailer")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2010")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("d9a67c91-946c-4774-b7d7-dc4f97a17a1d")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
@@ -1,31 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.IO;
|
||||
|
||||
namespace NotificationsWeb
|
||||
{
|
||||
public class Config
|
||||
{
|
||||
private static string _path = umbraco.GlobalSettings.FullpathToRoot + Path.DirectorySeparatorChar + "config" + Path.DirectorySeparatorChar;
|
||||
private static string _filename = "Notification.config";
|
||||
|
||||
public static string AssemblyDir
|
||||
{
|
||||
get
|
||||
{
|
||||
return umbraco.GlobalSettings.FullpathToRoot + Path.DirectorySeparatorChar + "bin" + Path.DirectorySeparatorChar;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static string ConfigurationFile
|
||||
{
|
||||
get
|
||||
{
|
||||
return _path + _filename;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,346 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>9.0.30729</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{6CF53D68-BD81-47BB-8F56-350A1B04F114}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>NotificationsWeb</RootNamespace>
|
||||
<AssemblyName>NotificationsWeb</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
<OldToolsVersion>4.0</OldToolsVersion>
|
||||
<TargetFrameworkProfile />
|
||||
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
|
||||
<RestorePackages>true</RestorePackages>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="AutoMapper, Version=3.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\AutoMapper.3.0.0\lib\net40\AutoMapper.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="AutoMapper.Net4, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\AutoMapper.3.0.0\lib\net40\AutoMapper.Net4.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="businesslogic, Version=1.0.5780.28252, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\businesslogic.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="ClientDependency.Core, Version=1.8.4.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\ClientDependency.1.8.4\lib\net45\ClientDependency.Core.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="ClientDependency.Core.Mvc, Version=1.8.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\ClientDependency-Mvc5.1.8.0.0\lib\net45\ClientDependency.Core.Mvc.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="cms, Version=1.0.5780.28253, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\cms.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="controls, Version=1.0.5780.28254, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\controls.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="CookComputing.XmlRpcV2, Version=2.5.0.0, Culture=neutral, PublicKeyToken=a7d6e17aa302004d, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\xmlrpcnet.2.5.0\lib\net20\CookComputing.XmlRpcV2.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Examine, Version=0.1.68.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Examine.0.1.68.0\lib\Examine.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="HtmlAgilityPack, Version=1.4.9.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\HtmlAgilityPack.1.4.9\lib\Net45\HtmlAgilityPack.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="ImageProcessor, Version=2.3.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\ImageProcessor.2.3.0.0\lib\net45\ImageProcessor.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="ImageProcessor.Web, Version=4.4.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\ImageProcessor.Web.4.4.0.0\lib\net45\ImageProcessor.Web.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="interfaces, Version=1.0.5780.28247, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\interfaces.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="log4net, Version=1.2.11.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\log4net.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Lucene.Net, Version=2.9.4.1, Culture=neutral, PublicKeyToken=85089178b9ac3181, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Lucene.Net.2.9.4.1\lib\net40\Lucene.Net.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.ApplicationBlocks.Data, Version=1.0.1559.20655, Culture=neutral">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\Microsoft.ApplicationBlocks.Data.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AspNet.Identity.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.Identity.Core.2.2.1\lib\net45\Microsoft.AspNet.Identity.Core.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AspNet.Identity.Owin, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.Identity.Owin.2.2.1\lib\net45\Microsoft.AspNet.Identity.Owin.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin.Host.SystemWeb, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.Host.SystemWeb.3.0.1\lib\net45\Microsoft.Owin.Host.SystemWeb.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin.Security, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.Security.3.0.1\lib\net45\Microsoft.Owin.Security.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin.Security.Cookies, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.Security.Cookies.3.0.1\lib\net45\Microsoft.Owin.Security.Cookies.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin.Security.OAuth, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.Security.OAuth.3.0.1\lib\net45\Microsoft.Owin.Security.OAuth.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>
|
||||
</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>
|
||||
</Reference>
|
||||
<Reference Include="MiniProfiler, Version=2.1.0.0, Culture=neutral, PublicKeyToken=b44f9351044011a3, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MiniProfiler.2.1.0\lib\net40\MiniProfiler.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="MySql.Data, Version=6.9.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MySql.Data.6.9.7\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>
|
||||
<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="Semver, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\semver.1.1.2\lib\net451\Semver.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="SQLCE4Umbraco, Version=1.0.5780.28254, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\SQLCE4Umbraco.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\System.Data.SqlServerCe.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Data.SqlServerCe.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\System.Data.SqlServerCe.Entity.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<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.Web.ApplicationServices" />
|
||||
<Reference Include="System.Web.DynamicData" />
|
||||
<Reference Include="System.Web.Entity" />
|
||||
<Reference Include="System.Web.Extensions" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.Helpers.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Http, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Http.WebHost, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.Razor.3.2.3\lib\net45\System.Web.Razor.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.WebPages.Deployment, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Deployment.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Razor.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Web.Services" />
|
||||
<Reference Include="System.EnterpriseServices" />
|
||||
<Reference Include="System.Web.Mobile" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="TidyNet, Version=1.0.0.0, Culture=neutral">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\TidyNet.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="umbraco, Version=1.0.5780.28255, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\umbraco.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Umbraco.Core, Version=1.0.5780.28249, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\Umbraco.Core.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="umbraco.DataLayer, Version=1.0.5780.28252, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\umbraco.DataLayer.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="umbraco.editorControls, Version=1.0.5780.28258, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\umbraco.editorControls.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="umbraco.MacroEngines, Version=1.0.5780.28258, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\umbraco.MacroEngines.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="umbraco.providers, Version=1.0.5780.28254, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\umbraco.providers.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Umbraco.Web.UI, Version=1.0.5780.28259, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\Umbraco.Web.UI.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="UmbracoExamine, Version=0.7.0.28253, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\UmbracoExamine.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="UrlRewritingNet.UrlRewriter, Version=2.0.60829.1, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\UrlRewritingNet.UrlRewriter.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="WebMatrix.Data, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebPages.Data.3.2.3\lib\net45\WebMatrix.Data.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="WebMatrix.WebData, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebPages.WebData.3.2.3\lib\net45\WebMatrix.WebData.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Api\NotificationsController.cs" />
|
||||
<Compile Include="Config.cs" />
|
||||
<Compile Include="EventHandlers\Forum.cs" />
|
||||
<Compile Include="Library\Utils.cs" />
|
||||
<Compile Include="Models\ForumSubscriber.cs" />
|
||||
<Compile Include="Models\ForumTopicSubscriber.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Services\NotificationService.cs" />
|
||||
<Compile Include="Singleton.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Notification\Notification.csproj">
|
||||
<Project>{80E5F59D-A7A0-4CEE-AEB6-6C626C44B2B2}</Project>
|
||||
<Name>Notification</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\OurUmbraco\OurUmbraco.csproj">
|
||||
<Project>{a8e5c936-ecab-45b3-bfda-d12f680eb2a6}</Project>
|
||||
<Name>OurUmbraco</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="app.config" />
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
<ProjectExtensions />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
|
||||
</Target>
|
||||
<Import Project="..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" />
|
||||
<Target Name="EnsureBclBuildImported" BeforeTargets="BeforeBuild" Condition="'$(BclBuildImported)' == ''">
|
||||
<Error Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=317567." HelpKeyword="BCLBUILD2001" />
|
||||
<Error Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="The build restored NuGet packages. Build the project again to include these packages in the build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317568." HelpKeyword="BCLBUILD2002" />
|
||||
</Target>
|
||||
</Project>
|
||||
@@ -1,35 +0,0 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("NotificationsWeb")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("NotificationsWeb")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2010")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("3d5900ae-111a-45be-96b3-d9e4606ca793")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
@@ -1,59 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Http.WebHost" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
@@ -1,42 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="AutoMapper" version="3.0.0" targetFramework="net451" />
|
||||
<package id="ClientDependency" version="1.8.4" targetFramework="net451" />
|
||||
<package id="ClientDependency-Mvc" version="1.8.0.0" targetFramework="net451" />
|
||||
<package id="ClientDependency-Mvc5" version="1.8.0.0" targetFramework="net451" />
|
||||
<package id="Examine" version="0.1.68.0" targetFramework="net451" />
|
||||
<package id="HtmlAgilityPack" version="1.4.9" targetFramework="net451" />
|
||||
<package id="ImageProcessor" version="2.3.0.0" targetFramework="net451" />
|
||||
<package id="ImageProcessor.Web" version="4.4.0.0" targetFramework="net451" />
|
||||
<package id="Lucene.Net" version="2.9.4.1" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.Identity.Core" version="2.2.1" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.Identity.Owin" version="2.2.1" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.Mvc.FixedDisplayModes" version="5.0.0" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebHelpers" version="3.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebPages.Data" version="3.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebPages.WebData" version="3.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.Bcl" version="1.1.10" targetFramework="net451" />
|
||||
<package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="net451" />
|
||||
<package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net451" />
|
||||
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net451" />
|
||||
<package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net451" />
|
||||
<package id="Microsoft.Owin.Security" version="3.0.1" targetFramework="net451" />
|
||||
<package id="Microsoft.Owin.Security.Cookies" version="3.0.1" targetFramework="net451" />
|
||||
<package id="Microsoft.Owin.Security.OAuth" version="3.0.1" targetFramework="net451" />
|
||||
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net451" />
|
||||
<package id="MiniProfiler" version="2.1.0" targetFramework="net451" />
|
||||
<package id="MySql.Data" version="6.9.7" targetFramework="net451" />
|
||||
<package id="Newtonsoft.Json" version="6.0.8" targetFramework="net451" />
|
||||
<package id="Owin" version="1.0" targetFramework="net451" />
|
||||
<package id="semver" version="1.1.2" targetFramework="net451" />
|
||||
<package id="SharpZipLib" version="0.86.0" targetFramework="net451" />
|
||||
<package id="UmbracoCms.Core" version="7.3.1" targetFramework="net451" />
|
||||
<package id="xmlrpcnet" version="2.5.0" targetFramework="net451" />
|
||||
</packages>
|
||||
@@ -10,7 +10,7 @@ var gulp = require('gulp'),
|
||||
imageMin = require('gulp-imagemin'),
|
||||
clean = require('gulp-clean'),
|
||||
svgmin = require('gulp-svgmin'),
|
||||
cmq = require('gulp-combine-media-queries');
|
||||
cmq = require('gulp-group-css-media-queries');
|
||||
rename = require('gulp-rename');
|
||||
|
||||
var settings = {
|
||||
|
||||
@@ -4,25 +4,25 @@
|
||||
"description": "Umbraco Our gulpjs config",
|
||||
"main": "gulpfile.js",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
},
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"gulp": "3.8.x",
|
||||
"gulp-util": "2.2.x",
|
||||
"gulp-watch": "0.6.x",
|
||||
"gulp-minify-css": "1.1.x",
|
||||
"node-sass": "3.2.x",
|
||||
"gulp-sass": "2.0.x",
|
||||
"gulp-combine-media-queries": "0.1.x",
|
||||
"gulp-imagemin": "0.6.x",
|
||||
"gulp-autoprefixer": "2.3.1",
|
||||
"gulp-uglify": "0.3.x",
|
||||
"gulp-jshint": "1.6.x",
|
||||
"gulp-concat": "2.2.x",
|
||||
"jshint-stylish": "0.2.x",
|
||||
"gulp-clean": "0.3.x",
|
||||
"gulp-svgmin": "0.4.x",
|
||||
"gulp-rename": "1.2.x"
|
||||
"gulp": "^3.9.1",
|
||||
"gulp-autoprefixer": "^3.1.0",
|
||||
"gulp-clean": "*",
|
||||
"gulp-concat": "^2.6.0",
|
||||
"gulp-group-css-media-queries": "^1.1.0",
|
||||
"gulp-imagemin": "^3.0.2",
|
||||
"gulp-jshint": "^2.0.1",
|
||||
"gulp-minify-css": "^1.2.4",
|
||||
"gulp-rename": "*",
|
||||
"gulp-sass": "^2.3.2",
|
||||
"gulp-svgmin": "^1.2.2",
|
||||
"gulp-uglify": "^2.0.0",
|
||||
"gulp-util": "^3.0.7",
|
||||
"gulp-watch": "^4.3.9",
|
||||
"jshint": "^2.9.2",
|
||||
"jshint-stylish": "^2.2.0",
|
||||
"node-sass": "^3.8.0"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "gulp build --verbose"
|
||||
|
||||
@@ -57,7 +57,7 @@ function GetSearchFilters(cssClass) {
|
||||
if(cssClass === undefined) {
|
||||
filters.category = undefined;
|
||||
} else {
|
||||
var category = cssClass.replace("-search-input", "");
|
||||
var category = cssClass.replace("-search-input valid", "").replace("-search-input", "");
|
||||
filters.category = category;
|
||||
}
|
||||
|
||||
@@ -112,7 +112,7 @@ var projectSearch = _.debounce(function(ev) {
|
||||
//iterate
|
||||
_.each(response.items, function(item){
|
||||
|
||||
var image = (item.Fields.image && item.Fields.image.length > 0) ? item.Fields.image : "<i class='icon-Box'></i>";
|
||||
var image = (item.Fields.image && item.Fields.image.length > 0) ? item.Fields.image : null;
|
||||
var itemData = {
|
||||
nodeName: item.Fields.nodeName,
|
||||
body: _.escape(item.Fields.body.substring(0, 150)),
|
||||
|
||||
@@ -228,7 +228,7 @@
|
||||
font-size: 1.1rem;
|
||||
|
||||
@media (min-width: $md) {
|
||||
font-size: 1.5rem;
|
||||
font-size: 1.35rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -244,7 +244,7 @@
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
align-items: flex-start;
|
||||
|
||||
.category, .version {
|
||||
a {
|
||||
@@ -260,13 +260,13 @@
|
||||
.topic {
|
||||
flex: 0 0 100%;
|
||||
|
||||
@media (min-width: $md) {
|
||||
flex: 0 0 72%;
|
||||
margin-right: 3%;
|
||||
}
|
||||
|
||||
|
||||
margin-bottom: .2rem;
|
||||
word-break: break-all;
|
||||
|
||||
@media (min-width: $md) {
|
||||
flex: 0 0 70%;
|
||||
padding-right: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -276,7 +276,7 @@
|
||||
flex: 0 0 100%;
|
||||
|
||||
@media (min-width: $md) {
|
||||
flex: 0 0 25%;
|
||||
flex: 0 0 30%;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ header {
|
||||
left: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
.navigation {
|
||||
position: relative;
|
||||
z-index: 200;
|
||||
@@ -54,11 +54,11 @@ header {
|
||||
|
||||
|
||||
.logo {
|
||||
background: url('/media/7514486/nous-sommes-france.png');
|
||||
background: url('../images/logo.svg');
|
||||
background-repeat: no-repeat;
|
||||
background-position: left center;
|
||||
background-size: 30px auto;
|
||||
|
||||
|
||||
height: 60px;
|
||||
line-height: 60px;
|
||||
|
||||
@@ -66,24 +66,21 @@ header {
|
||||
|
||||
text-indent: 40px;
|
||||
text-decoration: none;
|
||||
|
||||
|
||||
position: relative;
|
||||
z-index: 300;
|
||||
|
||||
font-size: 1rem;
|
||||
font-size: 1.15rem;
|
||||
|
||||
@include transition(all, .2s);
|
||||
|
||||
@media (min-width: $md) {
|
||||
background-size: 40px auto;
|
||||
text-indent: 46px;
|
||||
text-indent: 50px;
|
||||
|
||||
|
||||
&:hover {
|
||||
color: rgba(#fff, .66);
|
||||
|
||||
background-size: 36px auto;
|
||||
background-position: 4px center;
|
||||
opacity: .6;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -381,10 +378,10 @@ header {
|
||||
height: 100%;
|
||||
|
||||
background: rgba($color-our, .98);
|
||||
|
||||
|
||||
transform: translate(0, -100%);
|
||||
@include transition(transform, .3s);
|
||||
|
||||
|
||||
visibility: hidden;
|
||||
opacity: 0;
|
||||
|
||||
@@ -480,4 +477,3 @@ header {
|
||||
background: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -145,6 +145,10 @@
|
||||
font-size: .95rem;
|
||||
line-height: 1.3;
|
||||
|
||||
h3 {
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
display: block;
|
||||
@@ -545,3 +549,8 @@
|
||||
.topic-row.solved + .topic-row.solved {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.forum .forum-thread.solved {
|
||||
background: rgba(163, 219, 120, 0.23) none repeat scroll 0 0;
|
||||
border: 2px solid rgba(163, 219, 120, 0.66);
|
||||
}
|
||||
@@ -216,13 +216,9 @@
|
||||
}
|
||||
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
a {
|
||||
text-decoration: underline;
|
||||
font-family: $font-family;
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@ section.forum {
|
||||
|
||||
.forum-thread, .person-activity {
|
||||
background: #fff;
|
||||
padding: 15px;
|
||||
padding: 25px;
|
||||
margin-bottom: 30px;
|
||||
border: 1px solid darken(#f6f6f6, 5%);
|
||||
transition: box-shadow .2s;
|
||||
@@ -182,6 +182,7 @@ section.forum {
|
||||
color: #000;
|
||||
line-height: 1.3;
|
||||
font-size: 1rem;
|
||||
word-break: break-all;
|
||||
|
||||
@media (min-width: $md) {
|
||||
font-size: 1.1rem;
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
<access>
|
||||
<page id="1057" loginPage="4729" noRightsPage="4729" simple="False">
|
||||
<group id="standard" />
|
||||
</page>
|
||||
<page id="6772" loginPage="1056" noRightsPage="1056" simple="False">
|
||||
<group id="standard" />
|
||||
</page>
|
||||
<page id="8283" loginPage="1056" noRightsPage="4729" simple="False">
|
||||
<group id="wiki editor" />
|
||||
</page>
|
||||
<page id="8615" loginPage="1056" noRightsPage="4729" simple="False">
|
||||
<group id="wiki editor" />
|
||||
</page>
|
||||
</access>
|
||||
@@ -1,11 +0,0 @@
|
||||
<access>
|
||||
<page id="1057" loginPage="4729" noRightsPage="4729" simple="False">
|
||||
<group id="standard" />
|
||||
</page>
|
||||
<page id="6772" loginPage="1056" noRightsPage="1056" simple="False">
|
||||
<group id="standard" />
|
||||
</page>
|
||||
<page id="8283" loginPage="1056" noRightsPage="4729" simple="False">
|
||||
<group id="wiki editor" />
|
||||
</page>
|
||||
</access>
|
||||
@@ -0,0 +1,31 @@
|
||||
function modelsBuilderController($scope, umbRequestHelper, $log, $http, modelsBuilderResource) {
|
||||
|
||||
$scope.generate = function() {
|
||||
$scope.generating = true;
|
||||
umbRequestHelper.resourcePromise(
|
||||
$http.post(umbRequestHelper.getApiUrl("modelsBuilderBaseUrl", "BuildModels")),
|
||||
'Failed to generate.')
|
||||
.then(function (result) {
|
||||
$scope.generating = false;
|
||||
$scope.dashboard = result;
|
||||
});
|
||||
};
|
||||
|
||||
$scope.reload = function () {
|
||||
$scope.ready = false;
|
||||
modelsBuilderResource.getDashboard().then(function (result) {
|
||||
$scope.dashboard = result;
|
||||
$scope.ready = true;
|
||||
});
|
||||
};
|
||||
|
||||
function init() {
|
||||
modelsBuilderResource.getDashboard().then(function(result) {
|
||||
$scope.dashboard = result;
|
||||
$scope.ready = true;
|
||||
});
|
||||
}
|
||||
|
||||
init();
|
||||
}
|
||||
angular.module("umbraco").controller("Umbraco.Dashboard.ModelsBuilderController", modelsBuilderController);
|
||||
@@ -0,0 +1,41 @@
|
||||
<div id="modelsBuilder" ng-controller="Umbraco.Dashboard.ModelsBuilderController">
|
||||
|
||||
<div ng-show="ready" style="float: right;">
|
||||
<button type="button" class="btn" ng-click="reload()"><span>Reload</span></button>
|
||||
</div>
|
||||
|
||||
<h3>Models Builder</h3>
|
||||
|
||||
<div ng-show="!ready">
|
||||
Loading...
|
||||
</div>
|
||||
|
||||
<div ng-show="ready">
|
||||
<div ng-bind-html-unsafe="dashboard.text"></div>
|
||||
|
||||
<div ng-if="dashboard.outOfDateModels">
|
||||
<p>Models are <strong>out-of-date</strong>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div ng-if="dashboard.canGenerate">
|
||||
<div ng-if="dashboard.generateCausesRestart">
|
||||
<p style="color: red; font-weight: bold;">Generating models will restart the application.</p>
|
||||
</div>
|
||||
<div ng-show="!generating">
|
||||
<button type="button" ng-click="generate()" class="btn btn-danger">
|
||||
<span>Generate models</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="umb-loader-wrapper" ng-show="generating">
|
||||
<div class="umb-loader"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-if="dashboard.lastError" style="margin-top: 32px;" ng-show="!generating">
|
||||
<span style="color: red; font-weight: bold;">Last generation failed with the following error:</span>
|
||||
<pre style="width: 80%; white-space: pre-line; background: #f8f8f8; padding: 4px; font-size: small;">{{dashboard.lastError}}</pre>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,23 @@
|
||||
function modelsBuilderResource($q, $http, umbRequestHelper) {
|
||||
|
||||
return {
|
||||
getModelsOutOfDateStatus: function () {
|
||||
return umbRequestHelper.resourcePromise(
|
||||
$http.get(umbRequestHelper.getApiUrl("modelsBuilderBaseUrl", "GetModelsOutOfDateStatus")),
|
||||
"Failed to get models out-of-date status");
|
||||
},
|
||||
|
||||
buildModels: function () {
|
||||
return umbRequestHelper.resourcePromise(
|
||||
$http.post(umbRequestHelper.getApiUrl("modelsBuilderBaseUrl", "BuildModels")),
|
||||
"Failed to build models");
|
||||
},
|
||||
|
||||
getDashboard: function () {
|
||||
return umbRequestHelper.resourcePromise(
|
||||
$http.get(umbRequestHelper.getApiUrl("modelsBuilderBaseUrl", "GetDashboard")),
|
||||
"Failed to get dashboard");
|
||||
}
|
||||
};
|
||||
}
|
||||
angular.module("umbraco.resources").factory("modelsBuilderResource", modelsBuilderResource);
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
//array of files we want to inject into the application on app_start
|
||||
javascript: [
|
||||
'~/App_Plugins/ModelsBuilder/modelsbuilder.controller.js',
|
||||
'~/App_Plugins/ModelsBuilder/modelsbuilder.resource.js'
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 18 KiB |
@@ -1 +1 @@
|
||||
<svg height="50" viewBox="0 0 50 50" width="50" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h50v50H0z"/><path fill="none" stroke="#000" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M35.89 30.054L25 40.944l-10.89-10.89M25 9v31.445"/></svg>
|
||||
<svg height="50" viewBox="0 0 50 50" width="50" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h50v50H0z"/><path fill="none" stroke="#000" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M35.891 30.054L25 40.943l-10.89-10.89M25 9v31.445"/></svg>
|
||||
|
Before Width: | Height: | Size: 275 B After Width: | Height: | Size: 276 B |
@@ -1 +1 @@
|
||||
<svg height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><path d="M396.6 160l19.4 20.7L256 352 96 180.7l19.3-20.7L256 310.5"/></svg>
|
||||
<svg height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><path d="M396.6 160l19.4 20.7L256 352 96 180.7l19.3-20.7L256 310.5z"/></svg>
|
||||
|
Before Width: | Height: | Size: 162 B After Width: | Height: | Size: 163 B |
@@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-281 286 36 30"><path fill="#98D768" d="M-267 316l8-5v-8l14-17h-36l14 17"/></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-281 286 36 30"><path fill="#98D768" d="M-267 316l8-5v-8l14-17h-36l14 17z"/></svg>
|
||||
|
Before Width: | Height: | Size: 130 B After Width: | Height: | Size: 131 B |
@@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-281 286 36 30"><path fill="#191919" d="M-267 316l8-5v-8l14-17h-36l14 17"/></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-281 286 36 30"><path fill="#191919" d="M-267 316l8-5v-8l14-17h-36l14 17z"/></svg>
|
||||
|
Before Width: | Height: | Size: 130 B After Width: | Height: | Size: 131 B |
@@ -1 +1,2 @@
|
||||
<%@ Application Inherits="Umbraco.Web.UmbracoApplication" Language="C#" %>
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
|
||||
by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<WebPublishMethod>FileSystem</WebPublishMethod>
|
||||
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
|
||||
<LastUsedPlatform>Any CPU</LastUsedPlatform>
|
||||
<SiteUrlToLaunchAfterPublish />
|
||||
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
|
||||
<ExcludeApp_Data>False</ExcludeApp_Data>
|
||||
<publishUrl>c:\ourtestpublish</publishUrl>
|
||||
<DeleteExistingFiles>False</DeleteExistingFiles>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -1,5 +1,10 @@
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
|
||||
@{
|
||||
var homeNotificationText = Model.Content.GetPropertyValue<string>("homeOnlyBanner");
|
||||
var showHomeNotification = string.IsNullOrWhiteSpace(homeNotificationText) == false;
|
||||
var globalNotificationText = Model.Content.GetPropertyValue<string>("mainNotification");
|
||||
var showGlobalNotification = string.IsNullOrWhiteSpace(globalNotificationText) == false;
|
||||
}
|
||||
<!-- Search start -->
|
||||
<section id="search-all" class="search-all">
|
||||
|
||||
@@ -28,10 +33,28 @@
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
|
||||
</section>
|
||||
<!-- Search end -->
|
||||
|
||||
<style>
|
||||
.bannertext p{
|
||||
line-height: 1.4rem;
|
||||
}
|
||||
</style>
|
||||
|
||||
@if (showGlobalNotification)
|
||||
{
|
||||
<div class="alertbar__yellow">
|
||||
@Html.Raw(globalNotificationText)
|
||||
</div>
|
||||
}
|
||||
|
||||
@if (showHomeNotification)
|
||||
{
|
||||
@Html.Raw(homeNotificationText)
|
||||
}
|
||||
|
||||
@if (Members.IsLoggedIn())
|
||||
{
|
||||
@Html.Partial("home/forumactivity")
|
||||
|
||||
@@ -1,6 +1,55 @@
|
||||
@using OurUmbraco.Documentation.Busineslogic
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
|
||||
<style>
|
||||
#markdown-docs .anchorjs-link {
|
||||
color: #ff6e00 !important;
|
||||
font-size: 20px !important;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
#markdown-docs a.offset-anchor {
|
||||
visibility: hidden;
|
||||
position: relative;
|
||||
top: -100px;
|
||||
display: block;
|
||||
}
|
||||
</style>
|
||||
@*<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/anchor-js/3.2.1/anchor.js"></script>*@
|
||||
<script type="text/javascript" src="/scripts/anchorjs/anchorjs.custom.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
anchors.options = {
|
||||
placement: 'left',
|
||||
visible: "hover",
|
||||
anchorCreated: function(e) {
|
||||
var id = $(e).attr('id');
|
||||
//clear it's id since we'll be creating a custom anchor point with an offset
|
||||
$(e).removeAttr("id");
|
||||
$(e).addClass("anchorjs-heading");
|
||||
$(e).prepend("<a class='offset-anchor' id='" + id + "'></a>");
|
||||
}
|
||||
};
|
||||
anchors.add('.markdown-syntax h1, .markdown-syntax h2, .markdown-syntax h3, .markdown-syntax h4, .markdown-syntax h5, .markdown-syntax h5');
|
||||
|
||||
var element = $(window.location.hash);
|
||||
if (element.length === 1) {
|
||||
setTimeout(function() {
|
||||
//hightlight it
|
||||
element.closest(".anchorjs-heading").css("color", "#ff6e00");
|
||||
element.closest(".anchorjs-heading").find("a").not(".anchorjs-link").css("color", "#ff6e00");
|
||||
}, 100);
|
||||
}
|
||||
|
||||
$("#markdown-docs .anchorjs-link").click(function() {
|
||||
if (element.length === 1) {
|
||||
//un hightlight it
|
||||
element.closest(".anchorjs-heading").css("color", "inherit");
|
||||
element.closest(".anchorjs-heading").find("a").not(".anchorjs-link").css("color", "inherit");
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
@{
|
||||
var path = HttpContext.Current.Items[MarkdownLogic.MarkdownPathKey].ToString();
|
||||
var ml = new MarkdownLogic(path) { PrefixLinks = false };
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
bool.TryParse(Request["noreplies"], out noreplies);
|
||||
|
||||
var cat = -1;
|
||||
if (CurrentPage.Level > 3)
|
||||
if (CurrentPage.Level > 2)
|
||||
{
|
||||
cat = CurrentPage.Id;
|
||||
}
|
||||
@@ -47,9 +47,9 @@
|
||||
|
||||
var pages = (totalTopics / pageSize) + 1;
|
||||
|
||||
var categories = CurrentPage.AncestorOrSelf(2);
|
||||
var categories = Model.Content.AncestorOrSelf(2);
|
||||
}
|
||||
@if (Model.Content.NewTopicsAllowed() == false)
|
||||
@if (Model.Content.NewTopicsAllowed() == false || Model.Content.AncestorOrSelfIsArchived())
|
||||
{
|
||||
var notification = Model.Content.GetPropertyValue<string>("mainNotification");
|
||||
if (string.IsNullOrWhiteSpace(notification))
|
||||
@@ -84,17 +84,17 @@
|
||||
{
|
||||
foreach (var tag in CurrentPage.Parent.Children)
|
||||
{
|
||||
<option class="@tag.Name.ToLower().Replace(" ", "")" value="@tag.Id" @(CurrentPage.Id == tag.Id ? "selected" : null)>@tag.Parent.Name - @tag.Name</option>
|
||||
<option class="@tag.Name.ToLower().Replace(" ", "")" value="@tag.Id" @(CurrentPage.Id == tag.Id ? "selected" : null)>@tag.Name</option>
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
<option class="all" value="@categories.Id">All categories</option>
|
||||
foreach (var main in categories.Children)
|
||||
foreach (var tag in categories.Children)
|
||||
{
|
||||
foreach (var tag in main.Children)
|
||||
if (tag.ContentType.Alias == "Forum" && tag.IsArchived() == false)
|
||||
{
|
||||
<option class="@tag.Name.ToLower().Replace(" ", "")" value="@tag.Id" @(CurrentPage.Id == tag.Id ? "selected" : null)>@tag.Parent.Name - @tag.Name</option>
|
||||
<option class="@tag.Name.ToLower().Replace(" ", "")" value="@tag.Id" @(CurrentPage.Id == tag.Id ? "selected" : null)>@tag.Name</option>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
@using OurUmbraco.Forum.Extensions
|
||||
@using OurUmbraco.NotificationsWeb.Library
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
|
||||
<div class="utility-actions">
|
||||
@if (Members.IsLoggedIn())
|
||||
{
|
||||
if (Model.Content.NewTopicsAllowed())
|
||||
if (Model.Content.AncestorOrSelfIsArchived() == false && Model.Content.NewTopicsAllowed())
|
||||
{
|
||||
<a href="#" class="button create-new-thread" data-controller="topic">
|
||||
<i class="icon-Add"></i><span>Create new</span>
|
||||
@@ -15,23 +16,20 @@
|
||||
var subscribed = false;
|
||||
if (mem != null)
|
||||
{
|
||||
subscribed = NotificationsWeb.Library.Utils.IsSubscribedToForum(CurrentPage.Id, mem.Id);
|
||||
subscribed = Utils.IsSubscribedToForum(CurrentPage.Id, mem.Id);
|
||||
}
|
||||
|
||||
if (CurrentPage.Level == 4)
|
||||
if (subscribed)
|
||||
{
|
||||
if (subscribed)
|
||||
{
|
||||
<a href="#" class="follow button following" data-id="@CurrentPage.Id" data-controller="">
|
||||
<i class="icon-Bookmark"></i><span>Following</span>
|
||||
</a>
|
||||
}
|
||||
else
|
||||
{
|
||||
<a href="#" class="follow button transparent" data-id="@CurrentPage.Id" data-controller="">
|
||||
<i class="icon-Bookmark"></i><span>Follow</span>
|
||||
</a>
|
||||
}
|
||||
<a href="#" class="follow button following" data-id="@CurrentPage.Id" data-controller="">
|
||||
<i class="icon-Bookmark"></i><span>Following</span>
|
||||
</a>
|
||||
}
|
||||
else
|
||||
{
|
||||
<a href="#" class="follow button transparent" data-id="@CurrentPage.Id" data-controller="">
|
||||
<i class="icon-Bookmark"></i><span>Follow</span>
|
||||
</a>
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
var cat = Umbraco.TypedContent(topic.ParentId);
|
||||
var mem = Members.GetById(topic.LatestReplyAuthor) ?? Members.GetById(topic.MemberId);
|
||||
|
||||
<a href="@topic.GetUrl()" class="forum-thread">
|
||||
<a href="@topic.GetUrl()" class="forum-thread @Umbraco.If(topic.Answer > 0, " solved")">
|
||||
|
||||
<div class="avatar">
|
||||
@if(mem != null)
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
@using System.Web.Mvc.Html
|
||||
@using OurUmbraco.Forum.Extensions
|
||||
@using OurUmbraco.Forum.Services
|
||||
@using OurUmbraco.NotificationsWeb.Library
|
||||
|
||||
@{
|
||||
var topicService = new TopicService(ApplicationContext.DatabaseContext);
|
||||
@@ -98,7 +99,7 @@
|
||||
var subscribed = false;
|
||||
if (mem != null)
|
||||
{
|
||||
subscribed = NotificationsWeb.Library.Utils.IsSubscribedToForumTopic(topic.Id, mem.Id);
|
||||
subscribed = Utils.IsSubscribedToForumTopic(topic.Id, mem.Id);
|
||||
}
|
||||
|
||||
if (Members.IsAdmin())
|
||||
@@ -149,4 +150,14 @@
|
||||
else
|
||||
{
|
||||
<p>This topic no longer exists.</p>
|
||||
}
|
||||
}
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="/css/tooltipster.css" />
|
||||
<script type="text/javascript" src="/scripts/jquery.tooltipster.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
$('.highfive-count').tooltipster({
|
||||
contentAsHTML: true,
|
||||
interactive: true,
|
||||
multiple: true
|
||||
});
|
||||
</script>
|
||||
@@ -1,5 +1,6 @@
|
||||
@using OurUmbraco.Forum.Extensions
|
||||
@using OurUmbraco.Forum.Services
|
||||
@using OurUmbraco.NotificationsWeb.Library
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
@{
|
||||
var topicService = new TopicService(ApplicationContext.DatabaseContext);
|
||||
@@ -15,7 +16,7 @@
|
||||
var subscribed = false;
|
||||
if (mem != null)
|
||||
{
|
||||
subscribed = NotificationsWeb.Library.Utils.IsSubscribedToForumTopic(topic.Id, mem.Id);
|
||||
subscribed = Utils.IsSubscribedToForumTopic(topic.Id, mem.Id);
|
||||
}
|
||||
|
||||
if (Members.IsAdmin())
|
||||
|
||||
@@ -17,18 +17,22 @@
|
||||
|
||||
@if (CurrentPage.Parent.DocumentTypeAlias != "Project")
|
||||
{
|
||||
var categories = Model.Content.AncestorOrSelf(2).Children.Where(m => m.NewTopicsAllowed()).ToList();
|
||||
var categoriesIncludeCurrentPage = categories.Any(x => x.Id == Model.Content.Id);
|
||||
|
||||
<div class="col-sm-3 col-xs-6">
|
||||
<select name="topic-category" id="topic-category" class="markdown-control">
|
||||
<option value="" selected="" disabled="">Choose a category</option>
|
||||
@foreach (var main in Model.Content.AncestorOrSelf(2).Children)
|
||||
@if (categoriesIncludeCurrentPage)
|
||||
{
|
||||
foreach (var cat in main.Children)
|
||||
{
|
||||
if (cat.NewTopicsAllowed())
|
||||
{
|
||||
<option class="@cat.Name.ToLower().Replace(" ", "")" value="@cat.Id">@cat.Parent.Name - @cat.Name</option>
|
||||
}
|
||||
}
|
||||
<option value="" disabled="">Choose a category</option>
|
||||
}
|
||||
else
|
||||
{
|
||||
<option value="" selected="" disabled="">Choose a category</option>
|
||||
}
|
||||
@foreach (var cat in categories)
|
||||
{
|
||||
<option class="@cat.Name.ToLower().Replace(" ", "")" value="@cat.Id" selected="@(cat.Id == Model.Content.Id ? "" : null)">@cat.Name</option>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
@@ -135,8 +139,10 @@
|
||||
<div class="body markdown-syntax">
|
||||
{{#isSpam}}
|
||||
<div class="alert">
|
||||
Sorry if we're causing you any inconvenience but this comment has been automatically marked as spam. A moderator has been notified and will evaluate the validity of your comment. <br>
|
||||
Only moderators and the comment author starter can see this comment. When this comment has been marked as clean, this comment will be shown as normal.<br>
|
||||
Sorry if we're causing you any inconvenience but this comment has been automatically marked for manual approval. A moderator has been notified and will evaluate to make sure you're not trying to post spam. <br />
|
||||
Only moderators and the comment author can see this comment. When this comment has been approved this comment will be shown as normal. After that, your future comments will not need manual approval. <br /><br />
|
||||
<strong>Note:</strong>We will send you an email when your account has been approved.<br /><br />
|
||||
<strong>Why are we doing this?</strong> We're dealing with a spam problem that cannot be fought with automated systems. Therefore, we approve each account that has a low number of posts manually. Again, sorry for the inconvenience, we much appreciate your contribution and your patience while we approve your account.
|
||||
</div>
|
||||
{{/isSpam}}
|
||||
{{{body}}}
|
||||
|
||||
@@ -12,7 +12,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
@if (showNotification)
|
||||
@Html.Action("RenderTerms", "TermsAndConditions")
|
||||
|
||||
@* We'll show it differently on the homepage *@
|
||||
@if (showNotification && Model.Content.Id != home.Id)
|
||||
{
|
||||
<div class="alertbar__yellow">
|
||||
@Html.Raw(notificationText)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@using NotificationsWeb.Services
|
||||
@using OurUmbraco.Forum.Services
|
||||
@using OurUmbraco.NotificationsWeb.Services
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
@{
|
||||
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
@using Examine.SearchCriteria
|
||||
@using OurUmbraco.Our
|
||||
@using Umbraco.Core.Cache
|
||||
@using OurUmbraco.Our.Examine
|
||||
@using OurUmbraco.Project
|
||||
@using OurUmbraco.Project.Services
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
@{
|
||||
//This is the main Our project search
|
||||
|
||||
const int pagesToShowLeft = 4;
|
||||
const int pagesToShowRight = 2;
|
||||
var orderMode = !string.IsNullOrEmpty(Request["orderBy"]) ? Request["orderBy"] : "createDate";
|
||||
var page = !string.IsNullOrEmpty(Request["page"]) ? int.Parse(Request["page"]) : 1;
|
||||
var category = Request["category"];
|
||||
@@ -21,15 +25,15 @@
|
||||
headline = category == "uaas" ? "Umbraco as a Service" : category.ToLowerInvariant();
|
||||
}
|
||||
|
||||
var filters = new List<SearchFilters>();
|
||||
var searchFilters = new SearchFilters(BooleanOperation.And);
|
||||
//MUST be live
|
||||
searchFilters.Filters.Add(new SearchFilter("projectLive", "1"));
|
||||
var filters = new List<SearchFilters> { searchFilters };
|
||||
|
||||
if (!string.IsNullOrEmpty(category))
|
||||
{
|
||||
var categoryFilters = new SearchFilters(BooleanOperation.Or);
|
||||
//NOTE: We could add multiple category searches here if we wanted to match on multiple,
|
||||
// you'd need to split the 'category' query string into each category and add a filter per item
|
||||
// since it is an "OR" clause above it will match any of the categories
|
||||
//NOTE: categories are indexed as lower case and are not tokenized so must be an exact match and therefore
|
||||
// require quotes
|
||||
//NOTE: categories are indexed as lower case and are not tokenized so must be an exact match and therefore require quotes
|
||||
|
||||
if (category.ToLowerInvariant() == "uaas".ToLowerInvariant())
|
||||
{
|
||||
@@ -45,21 +49,36 @@
|
||||
|
||||
if (!string.IsNullOrEmpty(version))
|
||||
{
|
||||
var versionFilters = new SearchFilters(BooleanOperation.Or);
|
||||
//NOTE: We could add multiple version searches here if we wanted to match on multiple,
|
||||
// you'd need to split the 'version' query string into each version and add a filter per item
|
||||
// since it is an "OR" clause above it will match any of the versions, if however you wanted to filter
|
||||
// to only match projects that are tagged for the inclusive versions, you'd change the Boolean op to AND.
|
||||
//NOTE: We are doing a *wildcard* search here because versions are stored as comma delimited values in the index
|
||||
// when I release the next version of Examine this will be different since we'll store each version separately in the same version
|
||||
// field which will be nicer to query.
|
||||
versionFilters.Filters.Add(new SearchFilter("versions", string.Format("{0}.*", version.Trim())));
|
||||
filters.Add(versionFilters);
|
||||
//need to clean up this string, it could be all sorts of things
|
||||
var parsedVersion = version.GetFromUmbracoString();
|
||||
if (parsedVersion != null)
|
||||
{
|
||||
var fromVersion = parsedVersion.GetNumericalValue();
|
||||
var toVersion = new Version(parsedVersion.Major, 999, 999).GetNumericalValue();
|
||||
var versionFilters = new SearchFilters(BooleanOperation.Or);
|
||||
versionFilters.Filters.Add(new RangeSearchFilter("num_version", fromVersion, toVersion));
|
||||
versionFilters.Filters.Add(new RangeSearchFilter("num_compatVersions", fromVersion, toVersion));
|
||||
filters.Add(versionFilters);
|
||||
}
|
||||
}
|
||||
|
||||
var searcher = new OurSearcher(term, "project", orderMode, filters: filters, maxResults: pageSize * page);
|
||||
var examineOrder = orderMode;
|
||||
if (examineOrder == "popularity")
|
||||
{
|
||||
examineOrder = string.Concat(orderMode, "[Type=INT]");
|
||||
}
|
||||
else if (examineOrder == "createDate")
|
||||
{
|
||||
examineOrder = string.Concat(orderMode, "[Type=LONG]");
|
||||
}
|
||||
|
||||
var search = searcher.Search();
|
||||
//TODO: cache for 1 minute with this key just need to ensure the enumerable in the result is finalized
|
||||
//var key = string.Format("ListProjects.{0}.{1}.{2}.{3}.{4}", page, orderMode, term, version, category);
|
||||
var searcher = new OurSearcher(term,
|
||||
"project", examineOrder,
|
||||
filters: filters, maxResults: pageSize * page);
|
||||
|
||||
var search = searcher.Search("projectSearcher");
|
||||
var total = search.SearchResults.TotalItemCount;
|
||||
var pages = (total / pageSize) + 1;
|
||||
|
||||
@@ -90,23 +109,30 @@
|
||||
return defaultVal;
|
||||
}
|
||||
|
||||
public string ParseVersion(string version)
|
||||
public string ParseVersion(SearchResult result)
|
||||
{
|
||||
if (string.IsNullOrEmpty(version))
|
||||
var versions = result.GetValues("versions").ToList();
|
||||
if (result.Fields.Keys.Contains("versions"))
|
||||
{
|
||||
versions.Add(result["versions"]);
|
||||
}
|
||||
|
||||
var orderedVersions = versions
|
||||
.Select(x =>
|
||||
{
|
||||
Version v;
|
||||
return Version.TryParse(x, out v) ? v : null;
|
||||
}).WhereNotNull()
|
||||
.OrderByDescending(x => x)
|
||||
.ToArray();
|
||||
|
||||
if (orderedVersions.Any() == false)
|
||||
return "n/a";
|
||||
|
||||
var versions = version.Trim(',').Split(',').Select(decimal.Parse).ToArray();
|
||||
if (orderedVersions.Length == 1)
|
||||
return orderedVersions.First() + "+";
|
||||
|
||||
if (!versions.Any())
|
||||
return "n/a";
|
||||
|
||||
if (versions.Count() == 1)
|
||||
return (versions.First()) + "+";
|
||||
|
||||
var high = versions.Max();
|
||||
var low = versions.Min();
|
||||
|
||||
return high.ToString("N2") + "-" + low.ToString("N2");
|
||||
return orderedVersions.Min() + " - " + orderedVersions.Max();
|
||||
}
|
||||
}
|
||||
<h1>Browse @headline projects</h1>
|
||||
@@ -114,7 +140,11 @@
|
||||
<div class="box">
|
||||
<div class="row">
|
||||
<div class="col-xs-2 col-md-1">
|
||||
{[ if (image != null) { ]}
|
||||
<img src="{{image}}" alt="">
|
||||
{[ } else { ]}
|
||||
<i class='icon-Box'></i>
|
||||
{[ } ]}
|
||||
</div>
|
||||
<div class="col-xs-10 col-md-6">
|
||||
<div class="forum-thread-text">
|
||||
@@ -173,7 +203,7 @@
|
||||
<div class="other">
|
||||
<div class="package-badge">
|
||||
<span class="package-name">version</span>
|
||||
<span class="package-number">@ParseVersion(GetField(childPage.Fields, "versions"))</span>
|
||||
<span class="package-number">@ParseVersion(childPage)</span>
|
||||
</div>
|
||||
<span class="stats">
|
||||
<span class="downloads">
|
||||
@@ -187,8 +217,8 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
<nav class="pagination" role="navigation">
|
||||
@if (page > 1)
|
||||
{
|
||||
@@ -199,7 +229,7 @@
|
||||
{
|
||||
<a class="@Umbraco.If(i == page, "active")" href="?page=@i&@url">@i</a>
|
||||
}
|
||||
|
||||
|
||||
@if (page < pages)
|
||||
{
|
||||
<span>…</span>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
@using OurUmbraco.Forum.Extensions
|
||||
@using OurUmbraco.Our
|
||||
@using OurUmbraco.Project
|
||||
@using OurUmbraco.Project.Services
|
||||
@using OurUmbraco.Wiki.BusinessLogic
|
||||
|
||||
@@ -65,7 +66,7 @@
|
||||
<div class="package-detail-description">
|
||||
<h1>@project.Name</h1>
|
||||
|
||||
@Html.Raw(project.GetPropertyValue("description"))
|
||||
@Html.Raw(project.GetPropertyValue<string>("description").CleanHtmlAttributes())
|
||||
|
||||
</div>
|
||||
|
||||
@@ -118,6 +119,10 @@
|
||||
<div class="type-description">
|
||||
uploaded @release.CreateDate.ToShortDateString() by @owner.Name<br>
|
||||
<span>For Umbraco: @string.Join(", ", release.Versions.Select(x => x.Name)) & .NET Version: @release.DotNetVersion</span>
|
||||
@if (string.IsNullOrWhiteSpace(release.MinimumVersionStrict) == false)
|
||||
{
|
||||
<span><strong>Note that the minimum version required to install this package is @release.MinimumVersionStrict</strong></span>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
@@ -0,0 +1,295 @@
|
||||
@using OurUmbraco.Release
|
||||
@using OurUmbraco.Release.Models
|
||||
@using Version = System.Version
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
|
||||
@{
|
||||
var notesOnly = Request.QueryString["notes"] != null;
|
||||
|
||||
Version fromVersion;
|
||||
Version toVersion;
|
||||
|
||||
Version.TryParse(Request.QueryString["from"], out fromVersion);
|
||||
Version.TryParse(Request.QueryString["to"], out toVersion);
|
||||
|
||||
// If there's values in the POST (from the form) then those overrule the values in the querystring
|
||||
if (Request.Form["from"] != null && Request.Form["to"] != null)
|
||||
{
|
||||
Version.TryParse(Request.Form["from"], out fromVersion);
|
||||
Version.TryParse(Request.Form["to"], out toVersion);
|
||||
}
|
||||
|
||||
var sortedVersions = new Dictionary<Version, IPublishedContent>();
|
||||
var selectedVersions = new Dictionary<Version, IPublishedContent>();
|
||||
|
||||
foreach (var release in Model.Content.Parent.Children.Where(x => x.GetPropertyValue<string>("releaseStatus") != "Planning"
|
||||
&& x.GetPropertyValue<string>("releaseStatus") != "Unreleased"
|
||||
&& string.IsNullOrWhiteSpace(x.GetPropertyValue<string>("releaseStatus")) == false))
|
||||
{
|
||||
try
|
||||
{
|
||||
sortedVersions.Add(new Version(release.Name), release);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
<span style="display: none">Couldn't add version @release.Name</span>
|
||||
}
|
||||
}
|
||||
|
||||
var majorVersionGroups = sortedVersions.GroupBy(x => x.Key.Major).OrderByDescending(x => x.Key);
|
||||
var allVersions = new Versions();
|
||||
var youTrackVersions = allVersions.GetAggregateVersionsFromFile();
|
||||
|
||||
var newFeatures = 0;
|
||||
var breakingChanges = 0;
|
||||
var issuesTasks = 0;
|
||||
|
||||
var newFeatureList = new List<AggregateView>();
|
||||
var breakingList = new List<AggregateView>();
|
||||
var issueList = new List<AggregateView>();
|
||||
|
||||
if (fromVersion != null && toVersion != null && toVersion <= fromVersion)
|
||||
{
|
||||
<p class="error">Can't compare versions that are equal to each other or where the "to" is lower than the "from".</p>
|
||||
}
|
||||
|
||||
// Reset to show the compare between the previous version and the newest available version
|
||||
if ((fromVersion == null && toVersion == null) || (toVersion <= fromVersion))
|
||||
{
|
||||
toVersion = sortedVersions.Last().Key;
|
||||
fromVersion = sortedVersions.Skip(sortedVersions.Count - 2).First().Key;
|
||||
}
|
||||
|
||||
<form name="compare" method="post">
|
||||
<div class="row">
|
||||
<div class="col-xs-6 col-sm-4">
|
||||
<div class="row">
|
||||
<div class="col-sm-3 titles">From:</div>
|
||||
<div class="col-sm-9">
|
||||
<select name="from">
|
||||
@foreach (var majorVersion in majorVersionGroups)
|
||||
{
|
||||
var versions = majorVersion.OrderByDescending(x => x.Key);
|
||||
<optgroup label="@majorVersion.Key">
|
||||
@foreach (var version in versions)
|
||||
{
|
||||
if (version.Key.ToString() == fromVersion.ToString())
|
||||
{
|
||||
<option name="@version.Key" selected="selected" value="@version.Key">@version.Key</option>
|
||||
}
|
||||
else
|
||||
{
|
||||
<option name="@version.Key" value="@version.Key">@version.Key</option>
|
||||
}
|
||||
}
|
||||
</optgroup>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 col-sm-4">
|
||||
<div class="row">
|
||||
<div class="col-sm-3 titles">To:</div>
|
||||
<div class="col-sm-9">
|
||||
<select name="to">
|
||||
@foreach (var majorVersion in majorVersionGroups)
|
||||
{
|
||||
var versions = majorVersion.OrderByDescending(x => x.Key);
|
||||
<optgroup label="@majorVersion.Key">
|
||||
@foreach (var version in versions)
|
||||
{
|
||||
if (version.Key.ToString() == toVersion.ToString())
|
||||
{
|
||||
<option name="@version.Key" selected="selected" value="@version.Key">@version.Key</option>
|
||||
}
|
||||
else
|
||||
{
|
||||
<option name="@version.Key" value="@version.Key">@version.Key</option>
|
||||
}
|
||||
}
|
||||
</optgroup>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<input type="submit" value="Compare" class="button" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<br />
|
||||
|
||||
if (fromVersion != null && toVersion != null && fromVersion < toVersion)
|
||||
{
|
||||
foreach (var release in sortedVersions.Where(release => release.Key != fromVersion && (release.Key >= fromVersion) && (release.Key <= toVersion)))
|
||||
{
|
||||
selectedVersions.Add(release.Key, release.Value);
|
||||
}
|
||||
|
||||
foreach (var version in selectedVersions.OrderByDescending(x => x.Key))
|
||||
{
|
||||
var release = youTrackVersions.FirstOrDefault(x => x.version == version.Key.ToString());
|
||||
|
||||
if (release == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var newFeatureIssues = release.issues.Where(x => x.type.ToLowerInvariant().Contains("feature")).ToList();
|
||||
newFeatureList.Add(new AggregateView { version = version.Key.ToString(), issues = newFeatureIssues });
|
||||
newFeatures += newFeatureIssues.Count;
|
||||
|
||||
var breakingIssues = release.issues.Where(x => x.breaking).ToList();
|
||||
breakingList.Add(new AggregateView { version = version.Key.ToString(), issues = breakingIssues });
|
||||
breakingChanges += breakingIssues.Count;
|
||||
|
||||
var issueIssues = release.issues.Where(x => x.breaking == false && x.type.ToLowerInvariant().Contains("feature") == false).ToList();
|
||||
issueList.Add(new AggregateView { version = version.Key.ToString(), issues = issueIssues });
|
||||
issuesTasks += issueIssues.Count;
|
||||
}
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-12 explain">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<div class="dot big progress">
|
||||
<div class="chart" data-percent="100">
|
||||
<p>@newFeatures</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="chartDesc">
|
||||
<h3><a href="#newFeatures">New Features</a></h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<div class="dot big progress">
|
||||
<div class="chart" data-percent="100">
|
||||
<p>@breakingChanges</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="chartDesc">
|
||||
<h3><a href="#breakingChanges">Breaking Changes</a></h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<div class="dot big progress">
|
||||
<div class="chart" data-percent="100">
|
||||
<p>@issuesTasks</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="chartDesc">
|
||||
<h3><a href="#issuesTasks">Issues & Tasks</a></h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-12 statuses">
|
||||
|
||||
@if (notesOnly == false)
|
||||
{
|
||||
if (newFeatures > 0)
|
||||
{
|
||||
<div id="newFeatures" class="status features">
|
||||
<h2>New Features</h2>
|
||||
@foreach (var release in newFeatureList.Where(x => x.issues.Any()))
|
||||
{
|
||||
<h3>Features released in version @release.version</h3>
|
||||
foreach (var issue in release.issues)
|
||||
{
|
||||
<ul>
|
||||
<li class="@issue.StateIcon()" title="@issue.state">
|
||||
<a href="http://issues.umbraco.org/issue/@(issue.id)" target="_blank">@issue.id - @issue.title</a>
|
||||
</li>
|
||||
</ul>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
if (breakingChanges > 0)
|
||||
{
|
||||
<div id="breakingChanges" class="status breaking">
|
||||
<h2>Breaking Changes</h2>
|
||||
@foreach (var release in breakingList.Where(x => x.issues.Any()))
|
||||
{
|
||||
<h3>Breaking changes in version @release.version</h3>
|
||||
foreach (var issue in release.issues)
|
||||
{
|
||||
<ul>
|
||||
<li class="@issue.StateIcon()" title="@issue.state">
|
||||
<a href="http://issues.umbraco.org/issue/@(issue.id)" target="_blank">@issue.id - @issue.title</a>
|
||||
</li>
|
||||
</ul>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
if (issuesTasks > 0)
|
||||
{
|
||||
<div id="issuesTasks" class="status issues">
|
||||
<h2>Issues & Tasks</h2>
|
||||
@foreach (var release in issueList.Where(x => x.issues.Any()))
|
||||
{
|
||||
<h3>Issues & Tasks fixed in version @release.version</h3>
|
||||
foreach (var issue in release.issues)
|
||||
{
|
||||
<ul>
|
||||
<li class="@issue.StateIcon()" title="@issue.state">
|
||||
<a href="http://issues.umbraco.org/issue/@(issue.id)" target="_blank">@issue.id - @issue.title</a>
|
||||
</li>
|
||||
</ul>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
}
|
||||
}
|
||||
|
||||
<div id="issuesTasks" class="status issues">
|
||||
<h2>Release Notes</h2>
|
||||
|
||||
@if (notesOnly)
|
||||
{
|
||||
<p>
|
||||
What follows is a list of release notes, <a href="@RemoveQueryStringByKey(Request.Url.OriginalString, "notes")" style="text-decoration: underline">want to see the list of related issues?</a>
|
||||
</p>
|
||||
}
|
||||
@foreach (var version in selectedVersions.OrderByDescending(x => x.Key))
|
||||
{
|
||||
<h2>Notes for version @version.Key</h2>
|
||||
@Html.Raw(version.Value.GetPropertyValue<string>("bodyText"))
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
|
||||
@functions {
|
||||
|
||||
public static string RemoveQueryStringByKey(string url, string key)
|
||||
{
|
||||
var uri = new Uri(url);
|
||||
|
||||
// this gets all the query string key value pairs as a collection
|
||||
var newQueryString = HttpUtility.ParseQueryString(uri.Query);
|
||||
|
||||
// this removes the key if exists
|
||||
newQueryString.Remove(key);
|
||||
|
||||
// this gets the page path from root without QueryString
|
||||
string pagePathWithoutQueryString = uri.GetLeftPart(UriPartial.Path);
|
||||
|
||||
return newQueryString.Count > 0
|
||||
? String.Format("{0}?{1}", pagePathWithoutQueryString, newQueryString)
|
||||
: pagePathWithoutQueryString;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,19 +2,23 @@
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
|
||||
@{
|
||||
var orderMode = !string.IsNullOrEmpty(Request["orderBy"]) ? Request["orderBy"] : "updateDate";
|
||||
var orderMode = !string.IsNullOrEmpty(Request["orderBy"]) ? Request["orderBy"] : "createDate";
|
||||
var page = !string.IsNullOrEmpty(Request["page"]) ? int.Parse(Request["page"]) : 1;
|
||||
var category = Request["category"];
|
||||
var version = Request["version"];
|
||||
var term = Request["term"];
|
||||
var pageSize = 50;
|
||||
|
||||
//TODO: If we are searching on projects, they need to be filtered to approved/live!
|
||||
|
||||
//TODO: Depending on what order by this is, we need to pass in a data
|
||||
// type here, for example, if its an INT or a Date!
|
||||
OurSearcher searcher = new OurSearcher(term, orderBy: orderMode);
|
||||
|
||||
|
||||
IEnumerable<SearchResult> result = new List<SearchResult>();
|
||||
var url = "orderBy=" + orderMode + "&q=" + term + "&version=" + version;
|
||||
var pages = 0;
|
||||
|
||||
|
||||
if(string.IsNullOrEmpty(term) == false){
|
||||
var search = searcher.Search();
|
||||
var total = search.SearchResults.TotalItemCount;
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
@using OurUmbraco.Our.Controllers
|
||||
@model OurUmbraco.Our.Models.TermsAndConditionsModel
|
||||
@if (Model.ShowTermsAndConditionsBanner)
|
||||
{
|
||||
<div class="alertbar__blue">
|
||||
Hi! The <a href="/terms-and-conditions">terms and conditions</a> for Our Umbraco have changed. <a href="/terms-and-conditions">Give them a read (we promise they're short)</a>.<br />
|
||||
Your continued use of this site after changes are posted constitutes your acceptance of the terms and conditions as modified.<br />
|
||||
@using (Html.BeginUmbracoForm<TermsAndConditionsController>("AcceptTerms"))
|
||||
{
|
||||
<input type="submit" value="Okay, noted" style="margin-top: 10px;" class="button" />
|
||||
}
|
||||
</div>
|
||||
}
|
||||
@@ -18,6 +18,7 @@
|
||||
var topic = topicService.CurrentTopic(this.Context, ApplicationContext.ApplicationCache.RequestCache);
|
||||
var forum = Umbraco.TypedContent(topic.ParentId);
|
||||
var forumReadOnly = forum.NewTopicsAllowed() == false;
|
||||
|
||||
}
|
||||
@* If author exists and comment is either not spam or the viewer is a the author or an admin admin *@
|
||||
@if (commentAuthor != null && (Model.IsSpam == false || (currentMember != null && currentMember.Id == commentAuthor.Id) || Members.IsAdmin()))
|
||||
@@ -48,8 +49,23 @@
|
||||
<a href="/member/@commentAuthor.Id" class="photo">@Html.Raw(OurUmbraco.Our.Utils.GetMemberAvatar(commentAuthor, 75))</a>
|
||||
|
||||
<div class="highfive highfive-comment">
|
||||
@{
|
||||
var html = "High fives from:<br />";
|
||||
foreach (var vote in Model.Votes)
|
||||
{
|
||||
if (Model.Id == answer && vote.MemberId == Model.TopicAuthorId)
|
||||
{
|
||||
html = string.Format("{0}<a href=\"/member/{1}\">{2}</a> (marked as the answer)<br />", html, vote.MemberId, vote.MemberName);
|
||||
}
|
||||
else
|
||||
{
|
||||
html = string.Format("{0}<a href=\"/member/{1}\">{2}</a><br />", html, vote.MemberId, vote.MemberName);
|
||||
}
|
||||
}
|
||||
|
||||
<div class="highfive-count">
|
||||
@*html = string.Format("{0}<a href=\"/documentation/our/karma\" class=\"explain\">what is this?</a><br />", html);*@
|
||||
}
|
||||
<div class="highfive-count votes-tooltip" title="@(Model.Votes.Any() ? html : null)">
|
||||
@Model.Score
|
||||
</div>
|
||||
@if (Members.IsLoggedIn() && !Utils.HasVoted(currentMember.Id, Model.Id, "powersComment"))
|
||||
@@ -70,8 +86,10 @@
|
||||
{
|
||||
<span>You can see this comment because you're a moderator of the forum.</span><br/><br/>
|
||||
}
|
||||
Sorry if we're causing you any inconvenience but this comment has been automatically marked as spam. A moderator has been notified and will evaluate the validity of your comment. <br/>
|
||||
Only moderators and the comment author starter can see this comment. When this comment has been marked as clean, this comment will be shown as normal.<br/>
|
||||
Sorry if we're causing you any inconvenience but this comment has been automatically marked for manual approval. A moderator has been notified and will evaluate to make sure you're not trying to post spam. <br />
|
||||
Only moderators and the comment author can see this comment. When this comment has been approved this comment will be shown as normal. After that, your future comments will not need manual approval.<br /><br />
|
||||
<strong>Note:</strong> We will send you an email when your account has been approved.<br /><br />
|
||||
<strong>Why are we doing this?</strong> We're dealing with a spam problem that cannot be fought with automated systems. Therefore, we approve each account that has a low number of posts manually. Again, sorry for the inconvenience, we much appreciate your contribution and your patience while we approve your account.
|
||||
</div>
|
||||
}
|
||||
|
||||
|
||||
@@ -39,15 +39,22 @@
|
||||
<div class="comment-inner">
|
||||
<a href="/member/@topicAuthor.Id" class="photo">@Html.Raw(OurUmbraco.Our.Utils.GetMemberAvatar(topicAuthor, 75))</a>
|
||||
<div class="highfive highfive-question">
|
||||
|
||||
<div class="highfive-count">
|
||||
@{
|
||||
var html = "High fives from:<br />";
|
||||
foreach (var vote in Model.Votes)
|
||||
{
|
||||
html = string.Format("{0}<a href='/member/{1}'>{2}</a><br />", html, vote.MemberId, vote.MemberName);
|
||||
}
|
||||
@*html = string.Format("{0}<a href=\"/documentation/our/karma\" class=\"explain\">what is this?</a><br />", html);*@
|
||||
}
|
||||
<div class="highfive-count votes-tooltip" title="@(Model.Votes.Any() ? html : null)">
|
||||
@Model.Score
|
||||
</div>
|
||||
@if (Members.IsLoggedIn() && !Utils.HasVoted(currentMember.Id, Model.Id, "powersTopic"))
|
||||
{
|
||||
if (currentMember.Id != Model.MemberId)
|
||||
{
|
||||
<a href="#" data-id="@Model.Id"><img src="/assets/images/highfive.svg" alt="high five" />High Five</a>
|
||||
<a href="#" data-id="@Model.Id"><img src="/assets/images/highfive.svg" alt="high five"/>High Five</a>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
@@ -77,10 +84,12 @@
|
||||
<div class="alert">
|
||||
@if (Members.IsAdmin())
|
||||
{
|
||||
<span>You can see this topic because you're a moderator of the forum.</span><br /><br />
|
||||
<span>You can see this topic because you're a moderator of the forum.</span><br/><br/>
|
||||
}
|
||||
Sorry if we're causing you any inconvenience but this topic has been automatically marked as spam. A moderator has been notified and will evaluate the validity of your topic. <br />
|
||||
Only moderators and the topic author starter can see this topic. When this topic has been marked as clean, this topic will be shown as normal.<br />
|
||||
Sorry if we're causing you any inconvenience but this post has been automatically marked for manual approval. A moderator has been notified and will evaluate to make sure you're not trying to post spam. <br />
|
||||
Only moderators and the post author can see this post. When this post has been approved this post will be shown as normal. After that, your future posts will not need manual approval.<br /><br />
|
||||
<strong>Note:</strong> We will send you an email when your account has been approved.<br /><br />
|
||||
<strong>Why are we doing this?</strong> We're dealing with a spam problem that cannot be fought with automated systems. Therefore, we approve each account that has a low number of posts manually. Again, sorry for the inconvenience, we much appreciate your contribution and your patience while we approve your account.
|
||||
</div>
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,9 @@
|
||||
{
|
||||
string markup = Model.editor.config.markup.ToString();
|
||||
|
||||
markup = markup.Replace("#value#", Model.value.ToString());
|
||||
var UmbracoHelper = new UmbracoHelper(UmbracoContext.Current);
|
||||
|
||||
markup = markup.Replace("#value#", UmbracoHelper.ReplaceLineBreaksForHtml(Model.value.ToString()));
|
||||
markup = markup.Replace("#style#", Model.editor.config.style.ToString());
|
||||
|
||||
<text>
|
||||
|
||||
@@ -1,106 +1,71 @@
|
||||
@using OurUmbraco.Our
|
||||
@using OurUmbraco.Our.Controllers
|
||||
@inherits Umbraco.Web.Mvc.UmbracoViewPage<OurUmbraco.Our.Models.RegisterModel>
|
||||
@inherits UmbracoViewPage<OurUmbraco.Our.Models.RegisterModel>
|
||||
@{
|
||||
Html.EnableClientValidation(true);
|
||||
Html.EnableUnobtrusiveJavaScript(true);
|
||||
}
|
||||
|
||||
|
||||
<div id="update-avatar-dialog" class="community-dialog">
|
||||
<div>
|
||||
<p><b>Upload avatar</b></p>
|
||||
<p class="invalid-file">The select file type is invalid. File must be gif, png, jpg, jpeg.</p>
|
||||
<input type="file" name="file" id="file" data-action="/umbraco/api/community/imageupload" />
|
||||
<div style="text-align:center;">
|
||||
<button class="button transparent tiny">Cancel<div class="span" style="display:none;"><div class=" loader"></div></div></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="profile-settings">
|
||||
<strong>Your details</strong>
|
||||
<div class="profile-settings-forms">
|
||||
<p>We just need some basic information from you:</p>
|
||||
<div id="registrationForm" class="profile-settings-forms">
|
||||
|
||||
@using (Html.BeginUmbracoForm<RegisterController>("HandleSubmit"))
|
||||
{
|
||||
@Html.ValidationSummary(true)
|
||||
@Html.AntiForgeryToken()
|
||||
|
||||
<div class="avatar" id="avatar">
|
||||
<label for="avatar">
|
||||
Avatar
|
||||
</label>
|
||||
|
||||
<div class="avatar-image inked">
|
||||
@if (Model.Avatar != null)
|
||||
{
|
||||
@Html.Raw(Utils.GetLocalAvatar(Model.Avatar ?? "", 100, ""))
|
||||
}
|
||||
else
|
||||
{
|
||||
@Html.Raw(Utils.GetLocalAvatar("/media/avatar/default.gif", 100, "Umbraco Logo"))
|
||||
}
|
||||
<span>Change image</span>
|
||||
</div>
|
||||
@Html.HiddenFor(m => m.Avatar)
|
||||
@Html.ValidationMessageFor(m => m.Avatar)
|
||||
</div>
|
||||
|
||||
<div class="profile-input" id="username">
|
||||
@Html.LabelFor(m => m.Name)
|
||||
@Html.TextBoxFor(m => m.Name)
|
||||
@Html.ValidationMessageFor(m => m.Name)
|
||||
@Html.TextBoxFor(m => m.Name)
|
||||
</div>
|
||||
|
||||
|
||||
<div class="profile-input" id="email">
|
||||
@Html.LabelFor(m => m.Email)
|
||||
@Html.TextBoxFor(m => m.Email)
|
||||
@Html.ValidationMessageFor(m => m.Email)
|
||||
|
||||
@Html.TextBoxFor(m => m.Email)
|
||||
</div>
|
||||
|
||||
|
||||
<div class="profile-input" id="password">
|
||||
@Html.LabelFor(m => m.Password)
|
||||
@Html.ValidationMessageFor(m => m.Password)
|
||||
@Html.PasswordFor(m => m.Password, new { @class = "password-input" })
|
||||
@Html.ValidationMessageFor(m => m.Password)
|
||||
</div>
|
||||
|
||||
<div class="profile-input confirm-password" id="repeat-password">
|
||||
@Html.LabelFor(m => m.RepeatPassword)
|
||||
@Html.PasswordFor(m => m.RepeatPassword, new { @class = "password-input" })
|
||||
@Html.ValidationMessageFor(m => m.Password)
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="profile-input" id="bio">
|
||||
@Html.LabelFor(m => m.Bio)
|
||||
@Html.TextAreaFor(m => m.Bio)
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="profile-input" id="twitter-alias">
|
||||
@Html.LabelFor(m => m.TwitterAlias)
|
||||
<em>Are you on Twitter? We have an active Twitter community. Follow the <a href="https://twitter.com/search?f=tweets&vertical=default&q=umbraco&src=typd" target="_blank">umbraco search term</a> and join the conversation.</em>
|
||||
@Html.TextBoxFor(m => m.TwitterAlias)
|
||||
</div>
|
||||
|
||||
|
||||
<div class="profile-input" id="located-at">
|
||||
@Html.LabelFor(m => m.Location)
|
||||
@Html.TextBoxFor(m => m.Location)
|
||||
<em>When your location is displayed correctly on the map below, enough information has been provided.</em>
|
||||
@Html.ValidationMessageFor(m => m.Location)
|
||||
@Html.HiddenFor(m => m.Location)
|
||||
@Html.HiddenFor(m => m.Latitude)
|
||||
@Html.HiddenFor(m => m.Longitude)
|
||||
<div id="map"></div>
|
||||
<input id="pac-input" class="controls" type="text" placeholder="Search for your location">
|
||||
</div>
|
||||
|
||||
<div class="profile-input" id="personal">
|
||||
@Html.HiddenFor(m => m.Flickr)
|
||||
@Html.HiddenFor(m => m.Bio)
|
||||
</div>
|
||||
|
||||
<input class="button green" type="submit" value="Register">
|
||||
<div class="profile-input" id="terms-conditions">
|
||||
@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>
|
||||
|
||||
<input class="button green" type="submit" value="Sign up">
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script type="text/javascript" src="/scripts/register.js"></script>
|
||||
<script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyASbfPWsRxZgSnmH2jaQlrWNE7VTV5QuwI&libraries=places&callback=initAutocomplete"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/css/register.css" />
|
||||
@@ -22,6 +22,8 @@ namespace OurUmbraco.Site.Views.Search
|
||||
|
||||
var nodeTypeAlias = Request.QueryString["cat"];
|
||||
|
||||
//TODO: If we are searching on projects, they need to be filtered to approved/live!
|
||||
|
||||
int forumId;
|
||||
var forumName = string.Empty;
|
||||
var filters = new List<SearchFilters>();
|
||||
@@ -66,6 +68,8 @@ namespace OurUmbraco.Site.Views.Search
|
||||
}
|
||||
|
||||
var ourSearcher = new OurSearcher(Request.QueryString["q"],
|
||||
//TODO: Depending on what order by this is, we need to pass in a data
|
||||
// type here, for example, if its an INT or a Date!
|
||||
orderBy: orderBy,
|
||||
maxResults: 100,
|
||||
nodeTypeAlias:
|
||||
|
||||
@@ -1,14 +1,24 @@
|
||||
<?xml version="1.0"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
|
||||
<configSections>
|
||||
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
|
||||
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
|
||||
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
|
||||
|
||||
|
||||
<system.web.webPages.razor>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<system.web.webPages.razor>
|
||||
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<pages pageBaseType="System.Web.Mvc.WebViewPage">
|
||||
<namespaces>
|
||||
@@ -22,18 +32,14 @@
|
||||
<add namespace="Umbraco.Web.Mvc" />
|
||||
<add namespace="umbraco" />
|
||||
<add namespace="Examine" />
|
||||
|
||||
<add namespace="Umbraco.Web.PublishedContentModels" />
|
||||
</namespaces>
|
||||
</pages>
|
||||
</system.web.webPages.razor>
|
||||
|
||||
<appSettings>
|
||||
</system.web.webPages.razor><appSettings>
|
||||
<add key="webpages:Enabled" value="false" />
|
||||
</appSettings>
|
||||
|
||||
<system.web>
|
||||
</appSettings><system.web>
|
||||
<httpHandlers>
|
||||
<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
|
||||
<add path="*" verb="*" type="System.Web.HttpNotFoundHandler" />
|
||||
</httpHandlers>
|
||||
|
||||
<!--
|
||||
@@ -43,23 +49,16 @@
|
||||
To change this behavior apply the ValidateInputAttribute to a
|
||||
controller or action.
|
||||
-->
|
||||
<pages
|
||||
validateRequest="false"
|
||||
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
|
||||
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
|
||||
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
|
||||
<pages validateRequest="false" pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
|
||||
<controls>
|
||||
<add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
|
||||
</controls>
|
||||
</pages>
|
||||
</system.web>
|
||||
|
||||
<system.webServer>
|
||||
</system.web><system.webServer>
|
||||
<validation validateIntegratedModeConfiguration="false" />
|
||||
|
||||
<handlers>
|
||||
<remove name="BlockViewHandler"/>
|
||||
<remove name="BlockViewHandler" />
|
||||
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
|
||||
</handlers>
|
||||
</system.webServer>
|
||||
</configuration>
|
||||
</system.webServer></configuration>
|
||||
|
||||
@@ -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="1562814933" fileDependencyExtensions=".js,.css" loggerType="Umbraco.Web.UI.CdfLogger, umbraco">
|
||||
<clientDependency version="1272768233" 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,14 +45,16 @@ 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>
|
||||
</clientDependency>
|
||||
|
||||
@@ -30,17 +30,12 @@
|
||||
<control showOnce="true" addPanel="true" panelCaption="">
|
||||
views/dashboard/developer/developerdashboardvideos.html
|
||||
</control>
|
||||
</tab>
|
||||
</tab>
|
||||
<tab caption="Examine Management">
|
||||
<control>
|
||||
views/dashboard/developer/examinemanagement.html
|
||||
</control>
|
||||
</tab>
|
||||
<tab caption="Xml Data Integrity Report">
|
||||
<control>
|
||||
views/dashboard/developer/xmldataintegrityreport.html
|
||||
</control>
|
||||
</tab>
|
||||
</section>
|
||||
|
||||
<section alias="StartupMediaDashboardSection">
|
||||
@@ -66,19 +61,14 @@
|
||||
<access>
|
||||
<grant>admin</grant>
|
||||
</access>
|
||||
|
||||
<control showOnce="true" addPanel="true" panelCaption="">
|
||||
views/dashboard/default/startupdashboardintro.html
|
||||
</control>
|
||||
|
||||
</tab>
|
||||
<tab caption="Change password">
|
||||
<control showOnce="false" addPanel="false" panelCaption="">
|
||||
views/dashboard/ChangePassword.html
|
||||
</control>
|
||||
</tab>
|
||||
<tab caption="Url Tracker">
|
||||
<control addPanel="true">~/Umbraco/UrlTracker/InfoCaster.Umbraco.UrlTracker.UI.UrlTrackerManagerWrapper.ascx</control>
|
||||
<tab caption="Redirect URL Management">
|
||||
<control>
|
||||
views/dashboard/developer/redirecturls.html
|
||||
</control>
|
||||
</tab>
|
||||
</section>
|
||||
|
||||
@@ -114,4 +104,24 @@
|
||||
</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>
|
||||
</areas>
|
||||
<tab caption="Models Builder">
|
||||
<control>
|
||||
/App_Plugins/ModelsBuilder/modelsbuilder.htm
|
||||
</control>
|
||||
</tab>
|
||||
</section>
|
||||
</dashBoard>
|
||||
@@ -82,12 +82,17 @@ More information and documentation can be found on CodePlex: http://umbracoexami
|
||||
<add Name="popularity" EnableSorting="true" Type="INT" />
|
||||
<add Name="karma" EnableSorting="true" Type="INT" />
|
||||
<add Name="downloads" EnableSorting="true" Type="INT" />
|
||||
<add Name="packageFiles" Type="INT" />
|
||||
<add Name="projectLive" />
|
||||
<add Name="approved" />
|
||||
<add Name="image" />
|
||||
<add Name="versions" />
|
||||
<add Name="compatVersions" />
|
||||
<add Name="categoryFolder" />
|
||||
<add Name="uniqueId" />
|
||||
<add Name="worksOnUaaS" />
|
||||
<add Name="worksOnUaaS" />
|
||||
<add Name="minimumVersionStrict" />
|
||||
</IndexUserFields>
|
||||
|
||||
</IndexSet>
|
||||
|
||||
@@ -7,5 +7,5 @@
|
||||
<add key="virtualRoot" value="~/media/" />
|
||||
</Parameters>
|
||||
</Provider>
|
||||
|
||||
|
||||
</FileSystemProviders>
|
||||
|
||||
@@ -436,6 +436,31 @@
|
||||
<add key="documentation/implementation/routing/pipeline" value="/documentation/implementation/Routing/Default-Routing/" />
|
||||
<add key="documentation/implementation/routing/pipeline/ishortstringhelper" value="/documentation/Legacy/" />
|
||||
|
||||
<add key="documentation/references/searching/examine/full-configuration" value="/documentation/Reference/Config/ExamineSettings/" />
|
||||
<add key="documentation/references/searching/examine/full-configuration" value="/documentation/Reference/Config/ExamineSettings/" />
|
||||
|
||||
<!-- WIKI -->
|
||||
<add key="wiki/reference/webconfig" value="/Documentation/Reference/Config/WebConfig" />
|
||||
<add key="wiki/reference/files-and-folders/permissions" value="/Documentation/Getting-Started/Setup/Install/Permissions" />
|
||||
<add key="wiki/reference/api-cheatsheet/creating-a-document" value="/Documentation/Reference/Management/Services/ContentService" />
|
||||
<add key="wiki/reference/api-cheatsheet/modifying-document-properties" value="/Documentation/Reference/Management/Models/Content" />
|
||||
<add key="wiki/reference/api-cheatsheet/attaching-document-event-handlers" value="/Documentation/Reference/Events/ContentService-Events" />
|
||||
<add key="wiki/reference/api-cheatsheet/attaching-document-event-handlers/change-the-documents-template" value="/Documentation/Reference/Management/Models/Content" />
|
||||
<add key="wiki/reference/api-cheatsheet/working-with-nodefactory" value="/Documentation/Reference/Querying/IPublishedContent" />
|
||||
<add key="wiki/reference/api-cheatsheet/enumerating-documents" value="/Documentation/Reference/Querying/IPublishedContent" />
|
||||
<add key="wiki/reference/api-cheatsheet/working-with-members" value="/Documentation/Getting-Started/Data/Members" />
|
||||
<add key="wiki/reference/api-cheatsheet/working-with-members/membertypes-creator-and-createmembertype-page" value="/Documentation/Getting-Started/Data/Members" />
|
||||
<add key="wiki/reference/api-cheatsheet/working-with-members/manually-selecting-member-properties" value="/Documentation/Getting-Started/Data/Members" />
|
||||
<add key="wiki/reference/api-cheatsheet/relationtypes-and-relations" value="/Documentation/Reference/Management/Services/RelationService" />
|
||||
<add key="wiki/reference/api-cheatsheet/relationtypes-and-relations/object-guids-for-creating-relation-types" value="/apidocs/csharp/api/Umbraco.Core.Constants.ObjectTypes.html" />
|
||||
<add key="wiki/reference/api-cheatsheet/publishing-and-republishing" value="/Documentation/Reference/Management/Services/ContentService" />
|
||||
<add key="wiki/reference/api-cheatsheet/moving-a-document" value="/Documentation/Reference/Management/Services/ContentService" />
|
||||
<add key="wiki/reference/api-cheatsheet/unpublish-a-document" value="/Documentation/Reference/Management/Services/ContentService" />
|
||||
<add key="wiki/reference/api-cheatsheet/using-iapplicationeventhandler-to-register-events" value="/Documentation/Reference/Events/ContentService-Events" />
|
||||
<add key="wiki/reference/files-and-folders/system-files-and-folders" value="/Documentation/Getting-Started/Setup/Install/Permissions" />
|
||||
<add key="wiki/reference/files-and-folders/files-in-the-config-folder/umbracosettingsconfig" value="/Documentation/Reference/Config/umbracoSettings" />
|
||||
<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" />
|
||||
|
||||
</rewriteMap>
|
||||
</rewriteMaps>
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
<instant>
|
||||
|
||||
<notification name="NewTopic"
|
||||
assembly="NotificationsCore"
|
||||
type="NotificationsCore.NotificationTypes.NewForumTopic">
|
||||
assembly="OurUmbraco"
|
||||
type="OurUmbraco.NotificationsCore.NotificationTypes.NewForumTopic">
|
||||
<subject>Umbraco community: New topic in '{0}' forum</subject>
|
||||
<body>{2} just added a new topic to the '{0}' forum.
|
||||
|
||||
@@ -41,8 +41,8 @@ You can unsubscribe from your profile on our.umbraco.org
|
||||
</notification>
|
||||
|
||||
<notification name="NewComment"
|
||||
assembly="NotificationsCore"
|
||||
type="NotificationsCore.NotificationTypes.NewForumTopicComment">
|
||||
assembly="OurUmbraco"
|
||||
type="OurUmbraco.NotificationsCore.NotificationTypes.NewForumTopicComment">
|
||||
<subject>Umbraco community: New comment in topic '{0}'</subject>
|
||||
<body>{2} just added a new comment to the '{0}' topic.
|
||||
|
||||
@@ -59,6 +59,24 @@ You can view the new comment here:
|
||||
Thank You from the Umbraco Community!
|
||||
--------------------------------------------------
|
||||
You get this notification because you are subscribed to the '{0}' topic notifications.
|
||||
You can unsubscribe from your profile on our.umbraco.org
|
||||
</body>
|
||||
</notification>
|
||||
|
||||
<notification name="AccountApproved">
|
||||
<subject>Umbraco community: Account approved</subject>
|
||||
<body>Hi there!
|
||||
|
||||
You recently posted on the our.umbraco.org forum for one of your first times.
|
||||
This triggered a manual check to make sure you weren't posting any spam.
|
||||
|
||||
Good news: one of our moderators has just approved your accounta and your future posts will no longer be marked for manual approval.
|
||||
|
||||
We're sorry for the inconvenience; We're dealing with a spam problem that cannot be fought with automated systems. Therefore, we approve each account that has a low number of posts manually.
|
||||
|
||||
Thank You from the Umbraco Community!
|
||||
--------------------------------------------------
|
||||
You get this notification because you posted to our forum.
|
||||
You can unsubscribe from your profile on our.umbraco.org
|
||||
</body>
|
||||
</notification>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<applications>
|
||||
<add alias="content" name="Content" icon="traycontent" sortOrder="0" />
|
||||
<add alias="media" name="Media" icon="traymedia" sortOrder="1" />
|
||||
<add alias="settings" name="Settings" icon="traysettings" sortOrder="2" />
|
||||
<add alias="developer" name="Developer" icon="traydeveloper" sortOrder="3" />
|
||||
<add alias="users" name="Users" icon="trayuser" sortOrder="4" />
|
||||
<add alias="member" name="Members" icon="traymember" sortOrder="5" />
|
||||
<add alias="forms" name="Forms" icon="icon-umb-contour" sortOrder="6" />
|
||||
<add alias="translation" name="Translation" icon="traytranslation" sortOrder="7" />
|
||||
<add alias="content" name="Content" icon="traycontent" sortOrder="0"/>
|
||||
<add alias="media" name="Media" icon="traymedia" sortOrder="1"/>
|
||||
<add alias="settings" name="Settings" icon="traysettings" sortOrder="2"/>
|
||||
<add alias="developer" name="Developer" icon="traydeveloper" sortOrder="3"/>
|
||||
<add alias="users" name="Users" icon="trayusers" sortOrder="4"/>
|
||||
<add alias="member" name="Members" icon="traymember" sortOrder="5"/>
|
||||
<add alias="forms" name="Forms" icon="icon-umb-contour" sortOrder="6"/>
|
||||
<add alias="translation" name="Translation" icon="traytranslation" sortOrder="7"/>
|
||||
</applications>
|
||||
@@ -2,220 +2,246 @@
|
||||
<!-- Any changes to this file requires the application (umbraco) to restart -->
|
||||
<!-- This can be done by touching the web.config or recycling the application pool -->
|
||||
<tinymceConfig>
|
||||
<commands>
|
||||
<command>
|
||||
<umbracoAlias>code</umbracoAlias>
|
||||
<icon>images/editor/code.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="code">code</tinyMceCommand>
|
||||
<priority>1</priority>
|
||||
</command>
|
||||
<command>
|
||||
<commands>
|
||||
<command>
|
||||
<umbracoAlias>code</umbracoAlias>
|
||||
<name>Code</name>
|
||||
<icon>images/editor/code.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="code">code</tinyMceCommand>
|
||||
<priority>1</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>codemirror</umbracoAlias>
|
||||
<name>Code mirror</name>
|
||||
<icon>images/editor/code.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="codemirror">codemirror</tinyMceCommand>
|
||||
<priority>1</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>removeformat</umbracoAlias>
|
||||
<icon>images/editor/removeformat.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="removeformat">removeformat</tinyMceCommand>
|
||||
<priority>2</priority>
|
||||
</command>
|
||||
|
||||
<command>
|
||||
<umbracoAlias>Undo</umbracoAlias>
|
||||
<icon>images/editor/undo.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="undo">undo</tinyMceCommand>
|
||||
<priority>11</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>Redo</umbracoAlias>
|
||||
<icon>images/editor/redo.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="redo">redo</tinyMceCommand>
|
||||
<priority>12</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>Cut</umbracoAlias>
|
||||
<icon>images/editor/cut.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="cut">cut</tinyMceCommand>
|
||||
<priority>13</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>Copy</umbracoAlias>
|
||||
<icon>images/editor/copy.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="copy">copy</tinyMceCommand>
|
||||
<priority>14</priority>
|
||||
</command>
|
||||
|
||||
<command>
|
||||
<umbracoAlias>styleselect</umbracoAlias>
|
||||
<icon>images/editor/showStyles.png</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="styleselect">styleselect</tinyMceCommand>
|
||||
<priority>20</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>bold</umbracoAlias>
|
||||
<icon>images/editor/bold.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="bold">bold</tinyMceCommand>
|
||||
<priority>21</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>italic</umbracoAlias>
|
||||
<icon>images/editor/italic.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="italic">italic</tinyMceCommand>
|
||||
<priority>22</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>Underline</umbracoAlias>
|
||||
<icon>images/editor/underline.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="underline">underline</tinyMceCommand>
|
||||
<priority>23</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>Strikethrough</umbracoAlias>
|
||||
<icon>images/editor/strikethrough.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="strikethrough">strikethrough</tinyMceCommand>
|
||||
<priority>24</priority>
|
||||
</command>
|
||||
|
||||
<command>
|
||||
<umbracoAlias>JustifyLeft</umbracoAlias>
|
||||
<icon>images/editor/justifyleft.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="alignleft">justifyleft</tinyMceCommand>
|
||||
<priority>31</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>JustifyCenter</umbracoAlias>
|
||||
<icon>images/editor/justifycenter.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="aligncenter">justifycenter</tinyMceCommand>
|
||||
<priority>32</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>JustifyRight</umbracoAlias>
|
||||
<icon>images/editor/justifyright.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="alignright">justifyright</tinyMceCommand>
|
||||
<priority>33</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>JustifyFull</umbracoAlias>
|
||||
<icon>images/editor/justifyfull.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="alignjustify">alignjustify</tinyMceCommand>
|
||||
<priority>34</priority>
|
||||
</command>
|
||||
|
||||
<command>
|
||||
<umbracoAlias>bullist</umbracoAlias>
|
||||
<icon>images/editor/bullist.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="bullist">bullist</tinyMceCommand>
|
||||
<priority>41</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>numlist</umbracoAlias>
|
||||
<icon>images/editor/numlist.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="numlist">numlist</tinyMceCommand>
|
||||
<priority>42</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>Outdent</umbracoAlias>
|
||||
<icon>images/editor/outdent.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="outdent">outdent</tinyMceCommand>
|
||||
<priority>43</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>Indent</umbracoAlias>
|
||||
<icon>images/editor/indent.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="indent">indent</tinyMceCommand>
|
||||
<priority>44</priority>
|
||||
</command>
|
||||
|
||||
<command>
|
||||
<umbracoAlias>mceLink</umbracoAlias>
|
||||
<icon>images/editor/link.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="true" frontendCommand="link">link</tinyMceCommand>
|
||||
<priority>51</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>unlink</umbracoAlias>
|
||||
<icon>images/editor/unLink.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="unlink">unlink</tinyMceCommand>
|
||||
<priority>52</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>mceInsertAnchor</umbracoAlias>
|
||||
<icon>images/editor/anchor.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="anchor">anchor</tinyMceCommand>
|
||||
<priority>53</priority>
|
||||
</command>
|
||||
|
||||
<command>
|
||||
<umbracoAlias>mceImage</umbracoAlias>
|
||||
<icon>images/editor/image.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="true" frontendCommand="umbmediapicker">image</tinyMceCommand>
|
||||
<priority>61</priority>
|
||||
</command>
|
||||
|
||||
<command>
|
||||
<umbracoAlias>umbracomacro</umbracoAlias>
|
||||
<icon>images/editor/insMacro.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="true" frontendCommand="umbmacro">umbracomacro</tinyMceCommand>
|
||||
<priority>62</priority>
|
||||
</command>
|
||||
|
||||
|
||||
|
||||
<command>
|
||||
<umbracoAlias>mceInsertTable</umbracoAlias>
|
||||
<icon>images/editor/table.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="true" frontendCommand="table">table</tinyMceCommand>
|
||||
<priority>63</priority>
|
||||
</command>
|
||||
|
||||
<command>
|
||||
<umbracoAlias>umbracoembed</umbracoAlias>
|
||||
<icon>images/editor/media.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="true" frontendCommand="umbembeddialog">umbracoembed</tinyMceCommand>
|
||||
<priority>66</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>inserthorizontalrule</umbracoAlias>
|
||||
<icon>images/editor/hr.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="hr">hr</tinyMceCommand>
|
||||
<priority>71</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>subscript</umbracoAlias>
|
||||
<icon>images/editor/sub.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="subscript">subscript</tinyMceCommand>
|
||||
<priority>72</priority>
|
||||
</command>
|
||||
|
||||
<command>
|
||||
<umbracoAlias>superscript</umbracoAlias>
|
||||
<icon>images/editor/sup.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="superscript">superscript</tinyMceCommand>
|
||||
<priority>73</priority>
|
||||
</command>
|
||||
|
||||
<command>
|
||||
<umbracoAlias>mceCharMap</umbracoAlias>
|
||||
<icon>images/editor/charmap.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="charmap">charmap</tinyMceCommand>
|
||||
<priority>74</priority>
|
||||
</command>
|
||||
|
||||
</commands>
|
||||
<plugins>
|
||||
<umbracoAlias>removeformat</umbracoAlias>
|
||||
<name>Remove format</name>
|
||||
<icon>images/editor/removeformat.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="removeformat">removeformat</tinyMceCommand>
|
||||
<priority>2</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>undo</umbracoAlias>
|
||||
<name>Undo</name>
|
||||
<name>Remove Format</name>
|
||||
<icon>images/editor/undo.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="undo">undo</tinyMceCommand>
|
||||
<priority>11</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>redo</umbracoAlias>
|
||||
<name>Redo</name>
|
||||
<icon>images/editor/redo.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="redo">redo</tinyMceCommand>
|
||||
<priority>12</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>cut</umbracoAlias>
|
||||
<name>Cut</name>
|
||||
<icon>images/editor/cut.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="cut">cut</tinyMceCommand>
|
||||
<priority>13</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>copy</umbracoAlias>
|
||||
<name>Copy</name>
|
||||
<icon>images/editor/copy.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="copy">copy</tinyMceCommand>
|
||||
<priority>14</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>paste</umbracoAlias>
|
||||
<name>Paste</name>
|
||||
<icon>images/editor/paste.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="paste">paste</tinyMceCommand>
|
||||
<priority>15</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>styleselect</umbracoAlias>
|
||||
<name>Style select</name>
|
||||
<icon>images/editor/showStyles.png</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="styleselect">styleselect</tinyMceCommand>
|
||||
<priority>20</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>bold</umbracoAlias>
|
||||
<name>Bold</name>
|
||||
<icon>images/editor/bold.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="bold">bold</tinyMceCommand>
|
||||
<priority>21</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>italic</umbracoAlias>
|
||||
<name>Italic</name>
|
||||
<icon>images/editor/italic.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="italic">italic</tinyMceCommand>
|
||||
<priority>22</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>underline</umbracoAlias>
|
||||
<name>Underline</name>
|
||||
<icon>images/editor/underline.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="underline">underline</tinyMceCommand>
|
||||
<priority>23</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>strikethrough</umbracoAlias>
|
||||
<name>Strikethrough</name>
|
||||
<icon>images/editor/strikethrough.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="strikethrough">strikethrough</tinyMceCommand>
|
||||
<priority>24</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>justifyleft</umbracoAlias>
|
||||
<name>Justify left</name>
|
||||
<icon>images/editor/justifyleft.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="alignleft">justifyleft</tinyMceCommand>
|
||||
<priority>31</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>justifycenter</umbracoAlias>
|
||||
<name>Justify center</name>
|
||||
<icon>images/editor/justifycenter.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="aligncenter">justifycenter</tinyMceCommand>
|
||||
<priority>32</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>justifyright</umbracoAlias>
|
||||
<name>Justify right</name>
|
||||
<icon>images/editor/justifyright.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="alignright">justifyright</tinyMceCommand>
|
||||
<priority>33</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>justifyfull</umbracoAlias>
|
||||
<name>Justify full</name>
|
||||
<icon>images/editor/justifyfull.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="alignjustify">alignjustify</tinyMceCommand>
|
||||
<priority>34</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>bullist</umbracoAlias>
|
||||
<name>Bullet list</name>
|
||||
<icon>images/editor/bullist.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="bullist">bullist</tinyMceCommand>
|
||||
<priority>41</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>numlist</umbracoAlias>
|
||||
<name>Numbered list</name>
|
||||
<icon>images/editor/numlist.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="numlist">numlist</tinyMceCommand>
|
||||
<priority>42</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>outdent</umbracoAlias>
|
||||
<name>Decrease indent</name>
|
||||
<icon>images/editor/outdent.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="outdent">outdent</tinyMceCommand>
|
||||
<priority>43</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>indent</umbracoAlias>
|
||||
<name>Increase indent</name>
|
||||
<icon>images/editor/indent.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="indent">indent</tinyMceCommand>
|
||||
<priority>44</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>mceLink</umbracoAlias>
|
||||
<name>Insert/edit link</name>
|
||||
<icon>images/editor/link.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="true" frontendCommand="link">link</tinyMceCommand>
|
||||
<priority>51</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>unlink</umbracoAlias>
|
||||
<name>Remove link</name>
|
||||
<icon>images/editor/unLink.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="unlink">unlink</tinyMceCommand>
|
||||
<priority>52</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>mceInsertAnchor</umbracoAlias>
|
||||
<name>Anchor</name>
|
||||
<icon>images/editor/anchor.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="anchor">anchor</tinyMceCommand>
|
||||
<priority>53</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>mceImage</umbracoAlias>
|
||||
<name>Image</name>
|
||||
<icon>images/editor/image.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="true" frontendCommand="umbmediapicker">image</tinyMceCommand>
|
||||
<priority>61</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>umbracomacro</umbracoAlias>
|
||||
<name>Macro</name>
|
||||
<icon>images/editor/insMacro.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="true" frontendCommand="umbmacro">umbracomacro</tinyMceCommand>
|
||||
<priority>62</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>mceInsertTable</umbracoAlias>
|
||||
<name>Table</name>
|
||||
<icon>images/editor/table.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="true" frontendCommand="table">table</tinyMceCommand>
|
||||
<priority>63</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>umbracoembed</umbracoAlias>
|
||||
<name>Embed</name>
|
||||
<icon>images/editor/media.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="true" frontendCommand="umbembeddialog">umbracoembed</tinyMceCommand>
|
||||
<priority>66</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>inserthorizontalrule</umbracoAlias>
|
||||
<name>Horizontal rule</name>
|
||||
<icon>images/editor/hr.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="hr">hr</tinyMceCommand>
|
||||
<priority>71</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>subscript</umbracoAlias>
|
||||
<name>Subscript</name>
|
||||
<icon>images/editor/sub.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="subscript">subscript</tinyMceCommand>
|
||||
<priority>72</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>superscript</umbracoAlias>
|
||||
<name>Superscript</name>
|
||||
<icon>images/editor/sup.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="superscript">superscript</tinyMceCommand>
|
||||
<priority>73</priority>
|
||||
</command>
|
||||
<command>
|
||||
<umbracoAlias>mceCharMap</umbracoAlias>
|
||||
<name>Character map</name>
|
||||
<icon>images/editor/charmap.gif</icon>
|
||||
<tinyMceCommand value="" userInterface="false" frontendCommand="charmap">charmap</tinyMceCommand>
|
||||
<priority>74</priority>
|
||||
</command>
|
||||
</commands>
|
||||
<plugins>
|
||||
<plugin loadOnFrontend="true">code</plugin>
|
||||
<plugin loadOnFrontend="true">codemirror</plugin>
|
||||
<plugin loadOnFrontend="true">paste</plugin>
|
||||
<plugin loadOnFrontend="true">umbracolink</plugin>
|
||||
<plugin loadOnFrontend="true">anchor</plugin>
|
||||
<plugin loadOnFrontend="true">charmap</plugin>
|
||||
<plugin loadOnFrontend="true">table</plugin>
|
||||
<plugin loadOnFrontend="true">codemirror</plugin>
|
||||
<plugin loadOnFrontend="true">paste</plugin>
|
||||
<plugin loadOnFrontend="true">umbracolink</plugin>
|
||||
<plugin loadOnFrontend="true">anchor</plugin>
|
||||
<plugin loadOnFrontend="true">charmap</plugin>
|
||||
<plugin loadOnFrontend="true">table</plugin>
|
||||
<plugin loadOnFrontend="true">lists</plugin>
|
||||
</plugins>
|
||||
<validElements>
|
||||
<![CDATA[+a[id|style|rel|data-id|rev|charset|hreflang|dir|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur|onclick|
|
||||
<plugin loadOnFrontend="true">hr</plugin>
|
||||
</plugins>
|
||||
<validElements>
|
||||
<![CDATA[+a[id|style|rel|data-id|rev|charset|hreflang|dir|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur|onclick|
|
||||
ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],-strong/-b[class|style],-em/-i[class|style],
|
||||
-strike[class|style],-u[class|style],#p[id|style|dir|class|align],-ol[class|reversed|start|style|type],-ul[class|style],-li[class|style],br[class],
|
||||
img[id|dir|lang|longdesc|usemap|style|class|src|onmouseover|onmouseout|border|alt=|title|hspace|vspace|width|height|align|umbracoorgwidth|umbracoorgheight|onresize|onresizestart|onresizeend|rel|data-id],
|
||||
@@ -227,24 +253,24 @@ thead[id|class],tfoot[id|class],#td[id|lang|dir|class|colspan|rowspan|width|heig
|
||||
-h3[id|dir|class|align|style],-h4[id|dir|class|align|style],-h5[id|dir|class|align|style],-h6[id|style|dir|class|align|style],hr[class|style],
|
||||
dd[id|class|title|style|dir|lang],dl[id|class|title|style|dir|lang],dt[id|class|title|style|dir|lang],object[class|id|width|height|codebase|*],
|
||||
param[name|value|_value|class],embed[type|width|height|src|class|*],map[name|class],area[shape|coords|href|alt|target|class],bdo[class],button[class],iframe[*]]]>
|
||||
</validElements>
|
||||
<invalidElements>font</invalidElements>
|
||||
</validElements>
|
||||
<invalidElements>font</invalidElements>
|
||||
|
||||
<!-- this area is for custom config settings that should be added during TinyMCE initialization -->
|
||||
<customConfig>
|
||||
<!-- <config key="myKey">mySetting</config>-->
|
||||
<config key="entity_encoding">raw</config>
|
||||
<config key="codemirror">
|
||||
{
|
||||
"indentOnInit": false,
|
||||
"path": "../../../../lib/codemirror",
|
||||
"config": {
|
||||
},
|
||||
"jsFiles": [
|
||||
],
|
||||
"cssFiles": [
|
||||
]
|
||||
}
|
||||
</config>
|
||||
</customConfig>
|
||||
<!-- this area is for custom config settings that should be added during TinyMCE initialization -->
|
||||
<customConfig>
|
||||
<!-- <config key="myKey">mySetting</config>-->
|
||||
<config key="entity_encoding">raw</config>
|
||||
<config key="codemirror">
|
||||
{
|
||||
"indentOnInit": false,
|
||||
"path": "../../../../lib/codemirror",
|
||||
"config": {
|
||||
},
|
||||
"jsFiles": [
|
||||
],
|
||||
"cssFiles": [
|
||||
]
|
||||
}
|
||||
</config>
|
||||
</customConfig>
|
||||
</tinymceConfig>
|
||||
@@ -1,41 +1,72 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<trees>
|
||||
<!--Content-->
|
||||
<add initialize="true" sortOrder="0" alias="content" application="content" title="Content" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.ContentTreeController, umbraco" />
|
||||
<add initialize="false" sortOrder="0" alias="contentRecycleBin" application="content" title="Recycle Bin" iconClosed="icon-folder" iconOpen="icon-folder" type="umbraco.cms.presentation.Trees.ContentRecycleBin, umbraco" />
|
||||
<add initialize="true" sortOrder="0" alias="content" application="content" title="Content" iconClosed="icon-folder" iconOpen="icon-folder"
|
||||
type="Umbraco.Web.Trees.ContentTreeController, umbraco"/>
|
||||
<add initialize="false" sortOrder="0" alias="contentRecycleBin" application="content" title="Recycle Bin" iconClosed="icon-folder" iconOpen="icon-folder"
|
||||
type="umbraco.cms.presentation.Trees.ContentRecycleBin, umbraco"/>
|
||||
|
||||
<!--Media-->
|
||||
<add initialize="true" sortOrder="0" alias="media" application="media" title="Media" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.MediaTreeController, umbraco" />
|
||||
<add initialize="false" sortOrder="0" alias="mediaRecycleBin" application="media" title="Recycle Bin" iconClosed="icon-folder" iconOpen="icon-folder" type="umbraco.cms.presentation.Trees.MediaRecycleBin, umbraco" />
|
||||
<add initialize="true" sortOrder="0" alias="media" application="media" title="Media" iconClosed="icon-folder" iconOpen="icon-folder"
|
||||
type="Umbraco.Web.Trees.MediaTreeController, umbraco"/>
|
||||
<add initialize="false" sortOrder="0" alias="mediaRecycleBin" application="media" title="Recycle Bin" iconClosed="icon-folder" iconOpen="icon-folder"
|
||||
type="umbraco.cms.presentation.Trees.MediaRecycleBin, umbraco"/>
|
||||
|
||||
<!--Settings-->
|
||||
<add application="settings" alias="stylesheets" title="Stylesheets" type="umbraco.loadStylesheets, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="0" />
|
||||
<add application="settings" alias="stylesheetProperty" title="Stylesheet Property" type="umbraco.loadStylesheetProperty, umbraco" iconClosed="" iconOpen="" initialize="false" sortOrder="0" />
|
||||
<add application="settings" alias="templates" title="Templates" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.TemplatesTreeController, umbraco" initialize="true" sortOrder="1"/>
|
||||
<add application="settings" alias="partialViews" title="Partial Views" silent="false" initialize="true" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.PartialViewsTree, umbraco" sortOrder="2" />
|
||||
<add application="settings" alias="scripts" title="Scripts" type="umbraco.loadScripts, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="3" />
|
||||
<add application="settings" alias="dictionary" title="Dictionary" type="umbraco.loadDictionary, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="4" />
|
||||
<add application="settings" alias="languages" title="Languages" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.LanguageTreeController, umbraco" sortOrder="5" />
|
||||
<add application="settings" alias="mediaTypes" title="Media Types" type="umbraco.loadMediaTypes, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="6" />
|
||||
<add application="settings" alias="nodeTypes" title="Document Types" type="umbraco.loadNodeTypes, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="7" />
|
||||
<!--Developer-->
|
||||
<add initialize="true" sortOrder="0" alias="datatype" application="developer" title="Data Types" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.DataTypeTreeController, umbraco" />
|
||||
<add application="developer" alias="macros" title="Macros" type="umbraco.loadMacros, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="2" />
|
||||
<add application="developer" alias="packager" title="Packages" type="umbraco.loadPackager, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="3" />
|
||||
<add application="developer" alias="packagerPackages" title="Packager Packages" type="umbraco.loadPackages, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" initialize="false" sortOrder="3" />
|
||||
<add application="developer" alias="relationTypes" title="Relation Types" type="umbraco.loadRelationTypes, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="4" />
|
||||
<add application="developer" alias="xslt" title="XSLT Files" type="umbraco.loadXslt, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="5" />
|
||||
<add application="developer" alias="partialViewMacros" type="Umbraco.Web.Trees.PartialViewMacrosTree, umbraco" silent="false" initialize="true" sortOrder="6" title="Partial View Macro Files" iconClosed="icon-folder" iconOpen="icon-folder" />
|
||||
<add initialize="true" sortOrder="0" alias="documentTypes" application="settings" title="Document Types" iconClosed="icon-folder" iconOpen="icon-folder-open"
|
||||
type="Umbraco.Web.Trees.ContentTypeTreeController, umbraco"/>
|
||||
<add application="settings" alias="templates" title="Templates" iconClosed="icon-folder" iconOpen="icon-folder-open"
|
||||
type="Umbraco.Web.Trees.TemplatesTreeController, umbraco" initialize="true" sortOrder="1"/>
|
||||
<add application="settings" alias="partialViews" title="Partial Views" silent="false" initialize="true" iconClosed="icon-folder" iconOpen="icon-folder"
|
||||
type="Umbraco.Web.Trees.PartialViewsTree, umbraco" sortOrder="2"/>
|
||||
<add application="settings" alias="stylesheets" title="Stylesheets" type="umbraco.loadStylesheets, umbraco" iconClosed="icon-folder" iconOpen="icon-folder"
|
||||
sortOrder="3"/>
|
||||
<add application="settings" alias="stylesheetProperty" title="Stylesheet Property" type="umbraco.loadStylesheetProperty, umbraco" iconClosed="" iconOpen=""
|
||||
initialize="false" sortOrder="0"/>
|
||||
<add application="settings" alias="scripts" title="Scripts" type="umbraco.loadScripts, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="4"/>
|
||||
<add application="settings" alias="languages" title="Languages" iconClosed="icon-folder" iconOpen="icon-folder-open"
|
||||
type="Umbraco.Web.Trees.LanguageTreeController, umbraco" sortOrder="5"/>
|
||||
<add application="settings" alias="dictionary" title="Dictionary" type="umbraco.loadDictionary, umbraco" iconClosed="icon-folder" iconOpen="icon-folder"
|
||||
sortOrder="6"/>
|
||||
<add initialize="true" sortOrder="7" alias="mediaTypes" application="settings" title="Media Types" iconClosed="icon-folder" iconOpen="icon-folder-open"
|
||||
type="Umbraco.Web.Trees.MediaTypeTreeController, umbraco"/>
|
||||
|
||||
<!--Developer-->
|
||||
<add initialize="true" sortOrder="1" alias="dataTypes" application="developer" title="Data Types" iconClosed="icon-folder" iconOpen="icon-folder"
|
||||
type="Umbraco.Web.Trees.DataTypeTreeController, umbraco"/>
|
||||
<add application="developer" alias="macros" title="Macros" type="umbraco.loadMacros, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="2"/>
|
||||
|
||||
|
||||
<add application="developer" alias="relationTypes" title="Relation Types" type="umbraco.loadRelationTypes, umbraco" iconClosed="icon-folder"
|
||||
iconOpen="icon-folder" sortOrder="4"/>
|
||||
<add application="developer" alias="xslt" title="XSLT Files" type="umbraco.loadXslt, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="5"/>
|
||||
<add application="developer" alias="partialViewMacros" type="Umbraco.Web.Trees.PartialViewMacrosTree, umbraco" silent="false" initialize="true" sortOrder="6"
|
||||
title="Partial View Macro Files" iconClosed="icon-folder" iconOpen="icon-folder"/>
|
||||
|
||||
<!--Users-->
|
||||
<add application="users" alias="users" title="Users" type="umbraco.loadUsers, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="0" />
|
||||
<add application="users" alias="userTypes" title="User Types" type="umbraco.cms.presentation.Trees.UserTypes, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="1" />
|
||||
<add application="users" alias="userPermissions" title="User Permissions" type="umbraco.cms.presentation.Trees.UserPermissions, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="2" />
|
||||
<add application="users" alias="users" title="Users" type="umbraco.loadUsers, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="0"/>
|
||||
<add application="users" alias="userTypes" title="User Types" type="umbraco.cms.presentation.Trees.UserTypes, umbraco" iconClosed="icon-folder"
|
||||
iconOpen="icon-folder" sortOrder="1"/>
|
||||
<add application="users" alias="userPermissions" title="User Permissions" type="umbraco.cms.presentation.Trees.UserPermissions, umbraco"
|
||||
iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="2"/>
|
||||
|
||||
<!--Members-->
|
||||
<add initialize="true" sortOrder="0" alias="member" application="member" title="Members" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.MemberTreeController, umbraco" />
|
||||
<add application="member" alias="memberGroup" title="Member Groups" type="umbraco.loadMemberGroups, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="1" />
|
||||
<add application="member" alias="memberType" title="Member Types" type="umbraco.loadMemberTypes, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="2" />
|
||||
<add initialize="true" sortOrder="0" alias="member" application="member" title="Members" iconClosed="icon-folder" iconOpen="icon-folder-open"
|
||||
type="Umbraco.Web.Trees.MemberTreeController, umbraco"/>
|
||||
<add initialize="true" sortOrder="1" alias="memberTypes" application="member" title="Member Types" iconClosed="icon-folder" iconOpen="icon-folder-open"
|
||||
type="Umbraco.Web.Trees.MemberTypeTreeController, umbraco"/>
|
||||
<add application="member" sortOrder="2" alias="memberGroups" title="Member Groups" type="umbraco.loadMemberGroups, umbraco" iconClosed="icon-folder"
|
||||
iconOpen="icon-folder"/>
|
||||
|
||||
<!--Translation-->
|
||||
<add silent="false" initialize="true" sortOrder="1" alias="openTasks" application="translation" title="Tasks assigned to you" iconClosed="icon-folder" iconOpen="icon-folder" type="umbraco.loadOpenTasks, umbraco" />
|
||||
<add silent="false" initialize="true" sortOrder="2" alias="yourTasks" application="translation" title="Tasks created by you" iconClosed="icon-folder" iconOpen="icon-folder" type="umbraco.loadYourTasks, umbraco" />
|
||||
<add silent="false" initialize="true" sortOrder="1" alias="openTasks" application="translation" title="Tasks assigned to you" iconClosed="icon-folder"
|
||||
iconOpen="icon-folder" type="umbraco.loadOpenTasks, umbraco"/>
|
||||
<add silent="false" initialize="true" sortOrder="2" alias="yourTasks" application="translation" title="Tasks created by you" iconClosed="icon-folder"
|
||||
iconOpen="icon-folder" type="umbraco.loadYourTasks, umbraco"/>
|
||||
|
||||
<!-- Custom -->
|
||||
<!--<add application="myApplication" alias="myTree" title="Me Tree" type="MyNamespace.myTree, MyAssembly"
|
||||
iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="10" />-->
|
||||
<add initialize="true" sortOrder="0" alias="packager" application="developer" iconClosed="icon-folder" iconOpen="icon-folder-open"
|
||||
type="Umbraco.Web.Trees.PackagesTreeController, umbraco"/>
|
||||
</trees>
|
||||
@@ -6,23 +6,27 @@
|
||||
<!-- versions do not require voteName or voteDescription if vote=false -->
|
||||
<!-- versions required package targeting require the key name and description fields -->
|
||||
|
||||
<configuration default="v49">
|
||||
<configuration default="v750">
|
||||
<versions>
|
||||
<!-- version key="v5" name="Version 5.0.x" description="Compatible with version 5.0.x" vote="false"/ -->
|
||||
<version key="v750" name="Version 7.5.x" description="Compatible with version 7.5.x" vote="true" voteDescription="Version 7.5.x" voteName="7.5.x"/>
|
||||
<version key="v740" name="Version 7.4.x" description="Compatible with version 7.4.x" vote="true" voteDescription="Version 7.4.x" voteName="7.4.x"/>
|
||||
<version key="v730" name="Version 7.3.x" description="Compatible with version 7.3.x" vote="true" voteDescription="Version 7.3.x" voteName="7.3.x"/>
|
||||
<version key="v720" name="Version 7.2.x" description="Compatible with version 7.2.x" vote="true" voteDescription="Version 7.2.x" voteName="7.2.x"/>
|
||||
<version key="v710" name="Version 7.1.x" description="Compatible with version 7.1.x" vote="true" voteDescription="Version 7.1.x" voteName="7.1.x"/>
|
||||
<version key="v700" name="Version 7.0.x" description="Compatible with version 7.0.x" vote="true" voteDescription="Version 7.0.x" voteName="7.0.x"/>
|
||||
<version key="v610" name="Version 6.1.x" description="Compatible with version 6.1.x" vote="true" voteDescription="Version 6.1.x" voteName="6.1.x"/>
|
||||
<version key="v600" name="Version 6.0.x" description="Compatible with version 6.0.x" vote="true" voteDescription="Version 6.0.x" voteName="6.0.x"/>
|
||||
|
||||
<!-- NOTE: this one NEEDS to be there in order to be able to upload screenshots. Reaally? Yes, really. - SJ -->
|
||||
<version key="nan" name="Not version dependant" description="Works with all versions of umbraco, as it does not contain any version dependencies" vote="false"/>
|
||||
|
||||
<!--
|
||||
<version key="v411" name="Version 4.11.x" description="Compatible with version 4.11.x" vote="true" voteDescription="Version 4.11.x" voteName="4.11.x"/>
|
||||
<version key="v410" name="Version 4.10.x" description="Compatible with version 4.10.x" vote="true" voteDescription="Version 4.10.0" voteName="4.10.0"/>
|
||||
<version vote="true" voteDescription="Version 4.9.1" voteName="4.9.1"/>
|
||||
<version key="v49" name="Version 4.9.x" description="Compatible with version 4.9.x" vote="true" voteDescription="Version 4.9.0" voteName="4.9.0"/>
|
||||
<!-- NOTE: this one NEEDS to be there in order to be able to upload screenshots. Reaally? Yes, really. - SJ -->
|
||||
<version key="nan" name="Not version dependant" description="Works with all versions of umbraco, as it does not contain any version dependencies" vote="false"/>
|
||||
|
||||
<!--<version vote="true" voteDescription="Version 4.8.1" voteName="4.8.1"/>
|
||||
<version vote="true" voteDescription="Version 4.8.1" voteName="4.8.1"/>
|
||||
<version key="v48" name="Version 4.8.x" description="Compatible with version 4.8.x" vote="true" voteDescription="Version 4.8.0" voteName="4.8.0"/>
|
||||
<version vote="true" voteDescription="Version 4.7.2" voteName="4.7.2"/>
|
||||
<version vote="true" voteDescription="Version 4.7.1.1" voteName="4.7.1.1"/>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<settings>
|
||||
|
||||
<!--
|
||||
@@ -200,10 +200,8 @@
|
||||
Configure it here if you need anything specific. Needs to be a complete url with scheme and umbraco
|
||||
path, eg http://mysite.com/umbraco. NOT just "mysite.com" or "mysite.com/umbraco" or "http://mysite.com".
|
||||
-->
|
||||
<web.routing
|
||||
trySkipIisCustomErrors="true"
|
||||
internalRedirectPreservesTemplate="false" disableAlternativeTemplates="false" disableFindContentByIdPath="false"
|
||||
umbracoApplicationUrl="">
|
||||
<web.routing trySkipIisCustomErrors="true" internalRedirectPreservesTemplate="false" disableAlternativeTemplates="false" disableFindContentByIdPath="false"
|
||||
umbracoApplicationUrl="">
|
||||
</web.routing>
|
||||
|
||||
</settings>
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
.controls {
|
||||
margin-top: 10px;
|
||||
border: 1px solid transparent;
|
||||
border-radius: 2px 0 0 2px;
|
||||
box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
height: 32px;
|
||||
outline: none;
|
||||
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
#pac-input {
|
||||
background-color: #fff;
|
||||
font-family: Roboto;
|
||||
font-size: 15px;
|
||||
font-weight: 300;
|
||||
margin-left: 12px;
|
||||
padding: 0 11px 0 13px;
|
||||
text-overflow: ellipsis;
|
||||
width: 470px !important;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#pac-input:focus {
|
||||
border-color: #4d90fe;
|
||||
}
|
||||
|
||||
.pac-container {
|
||||
font-family: Roboto;
|
||||
}
|
||||
|
||||
#type-selector {
|
||||
color: #fff;
|
||||
background-color: #4d90fe;
|
||||
padding: 5px 11px 0px 11px;
|
||||
}
|
||||
|
||||
#type-selector label {
|
||||
font-family: Roboto;
|
||||
font-size: 13px;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
#target {
|
||||
width: 345px;
|
||||
}
|
||||
|
||||
#map {
|
||||
width: 500px;
|
||||
height: 460px;
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
#registrationForm {
|
||||
max-width: 640px;
|
||||
}
|
||||
|
||||
#registrationForm label {
|
||||
margin: 4px 0;
|
||||
display: block;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#registrationForm .profile-input em {
|
||||
margin: 4px 0;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#registrationForm input.button {
|
||||
margin: 10px 0;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#terms-conditions input {
|
||||
display: inline;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#terms-conditions {
|
||||
margin-top: 20px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
#terms-conditions label {
|
||||
padding-top: 1px;
|
||||
padding-left: 28px;
|
||||
}
|
||||
|
||||
.field-validation-error {
|
||||
color: red;
|
||||
display: block;
|
||||
margin: 4px 0;
|
||||
}
|
||||
|
||||
.input-validation-error {
|
||||
border-color: red !important;
|
||||
}
|
||||
@@ -0,0 +1,274 @@
|
||||
/* This is the default Tooltipster theme (feel free to modify or duplicate and create multiple themes!): */
|
||||
.tooltipster-default {
|
||||
border-radius: 5px;
|
||||
border: 2px solid #000;
|
||||
background: #4c4c4c;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/* Use this next selector to style things like font-size and line-height: */
|
||||
.tooltipster-default .tooltipster-content {
|
||||
font-family: Arial, sans-serif;
|
||||
font-size: 14px;
|
||||
line-height: 16px;
|
||||
padding: 8px 10px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* This next selector defines the color of the border on the outside of the arrow. This will automatically match the color and size of the border set on the main tooltip styles. Set display: none; if you would like a border around the tooltip but no border around the arrow */
|
||||
.tooltipster-default .tooltipster-arrow .tooltipster-arrow-border {
|
||||
/* border-color: ... !important; */
|
||||
}
|
||||
|
||||
|
||||
/* If you're using the icon option, use this next selector to style them */
|
||||
.tooltipster-icon {
|
||||
cursor: help;
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* This is the base styling required to make all Tooltipsters work */
|
||||
.tooltipster-base {
|
||||
padding: 0;
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 9999999;
|
||||
pointer-events: none;
|
||||
width: auto;
|
||||
overflow: visible;
|
||||
}
|
||||
.tooltipster-base .tooltipster-content {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
/* These next classes handle the styles for the little arrow attached to the tooltip. By default, the arrow will inherit the same colors and border as what is set on the main tooltip itself. */
|
||||
.tooltipster-arrow {
|
||||
display: block;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: -1;
|
||||
}
|
||||
.tooltipster-arrow span, .tooltipster-arrow-border {
|
||||
display: block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
position: absolute;
|
||||
}
|
||||
.tooltipster-arrow-top span, .tooltipster-arrow-top-right span, .tooltipster-arrow-top-left span {
|
||||
border-left: 8px solid transparent !important;
|
||||
border-right: 8px solid transparent !important;
|
||||
border-top: 8px solid;
|
||||
bottom: -7px;
|
||||
}
|
||||
.tooltipster-arrow-top .tooltipster-arrow-border, .tooltipster-arrow-top-right .tooltipster-arrow-border, .tooltipster-arrow-top-left .tooltipster-arrow-border {
|
||||
border-left: 9px solid transparent !important;
|
||||
border-right: 9px solid transparent !important;
|
||||
border-top: 9px solid;
|
||||
bottom: -7px;
|
||||
}
|
||||
|
||||
.tooltipster-arrow-bottom span, .tooltipster-arrow-bottom-right span, .tooltipster-arrow-bottom-left span {
|
||||
border-left: 8px solid transparent !important;
|
||||
border-right: 8px solid transparent !important;
|
||||
border-bottom: 8px solid;
|
||||
top: -7px;
|
||||
}
|
||||
.tooltipster-arrow-bottom .tooltipster-arrow-border, .tooltipster-arrow-bottom-right .tooltipster-arrow-border, .tooltipster-arrow-bottom-left .tooltipster-arrow-border {
|
||||
border-left: 9px solid transparent !important;
|
||||
border-right: 9px solid transparent !important;
|
||||
border-bottom: 9px solid;
|
||||
top: -7px;
|
||||
}
|
||||
.tooltipster-arrow-top span, .tooltipster-arrow-top .tooltipster-arrow-border, .tooltipster-arrow-bottom span, .tooltipster-arrow-bottom .tooltipster-arrow-border {
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.tooltipster-arrow-top-left span, .tooltipster-arrow-bottom-left span {
|
||||
left: 6px;
|
||||
}
|
||||
.tooltipster-arrow-top-left .tooltipster-arrow-border, .tooltipster-arrow-bottom-left .tooltipster-arrow-border {
|
||||
left: 5px;
|
||||
}
|
||||
.tooltipster-arrow-top-right span, .tooltipster-arrow-bottom-right span {
|
||||
right: 6px;
|
||||
}
|
||||
.tooltipster-arrow-top-right .tooltipster-arrow-border, .tooltipster-arrow-bottom-right .tooltipster-arrow-border {
|
||||
right: 5px;
|
||||
}
|
||||
.tooltipster-arrow-left span, .tooltipster-arrow-left .tooltipster-arrow-border {
|
||||
border-top: 8px solid transparent !important;
|
||||
border-bottom: 8px solid transparent !important;
|
||||
border-left: 8px solid;
|
||||
top: 50%;
|
||||
margin-top: -7px;
|
||||
right: -7px;
|
||||
}
|
||||
.tooltipster-arrow-left .tooltipster-arrow-border {
|
||||
border-top: 9px solid transparent !important;
|
||||
border-bottom: 9px solid transparent !important;
|
||||
border-left: 9px solid;
|
||||
margin-top: -8px;
|
||||
}
|
||||
.tooltipster-arrow-right span, .tooltipster-arrow-right .tooltipster-arrow-border {
|
||||
border-top: 8px solid transparent !important;
|
||||
border-bottom: 8px solid transparent !important;
|
||||
border-right: 8px solid;
|
||||
top: 50%;
|
||||
margin-top: -7px;
|
||||
left: -7px;
|
||||
}
|
||||
.tooltipster-arrow-right .tooltipster-arrow-border {
|
||||
border-top: 9px solid transparent !important;
|
||||
border-bottom: 9px solid transparent !important;
|
||||
border-right: 9px solid;
|
||||
margin-top: -8px;
|
||||
}
|
||||
|
||||
|
||||
/* Some CSS magic for the awesome animations - feel free to make your own custom animations and reference it in your Tooltipster settings! */
|
||||
|
||||
.tooltipster-fade {
|
||||
opacity: 0;
|
||||
-webkit-transition-property: opacity;
|
||||
-moz-transition-property: opacity;
|
||||
-o-transition-property: opacity;
|
||||
-ms-transition-property: opacity;
|
||||
transition-property: opacity;
|
||||
}
|
||||
.tooltipster-fade-show {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.tooltipster-grow {
|
||||
-webkit-transform: scale(0,0);
|
||||
-moz-transform: scale(0,0);
|
||||
-o-transform: scale(0,0);
|
||||
-ms-transform: scale(0,0);
|
||||
transform: scale(0,0);
|
||||
-webkit-transition-property: -webkit-transform;
|
||||
-moz-transition-property: -moz-transform;
|
||||
-o-transition-property: -o-transform;
|
||||
-ms-transition-property: -ms-transform;
|
||||
transition-property: transform;
|
||||
-webkit-backface-visibility: hidden;
|
||||
}
|
||||
.tooltipster-grow-show {
|
||||
-webkit-transform: scale(1,1);
|
||||
-moz-transform: scale(1,1);
|
||||
-o-transform: scale(1,1);
|
||||
-ms-transform: scale(1,1);
|
||||
transform: scale(1,1);
|
||||
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
||||
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
|
||||
-moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
|
||||
-ms-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
|
||||
-o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
|
||||
transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
|
||||
}
|
||||
|
||||
.tooltipster-swing {
|
||||
opacity: 0;
|
||||
-webkit-transform: rotateZ(4deg);
|
||||
-moz-transform: rotateZ(4deg);
|
||||
-o-transform: rotateZ(4deg);
|
||||
-ms-transform: rotateZ(4deg);
|
||||
transform: rotateZ(4deg);
|
||||
-webkit-transition-property: -webkit-transform, opacity;
|
||||
-moz-transition-property: -moz-transform;
|
||||
-o-transition-property: -o-transform;
|
||||
-ms-transition-property: -ms-transform;
|
||||
transition-property: transform;
|
||||
}
|
||||
.tooltipster-swing-show {
|
||||
opacity: 1;
|
||||
-webkit-transform: rotateZ(0deg);
|
||||
-moz-transform: rotateZ(0deg);
|
||||
-o-transform: rotateZ(0deg);
|
||||
-ms-transform: rotateZ(0deg);
|
||||
transform: rotateZ(0deg);
|
||||
-webkit-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 1);
|
||||
-webkit-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
|
||||
-moz-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
|
||||
-ms-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
|
||||
-o-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
|
||||
transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
|
||||
}
|
||||
|
||||
.tooltipster-fall {
|
||||
top: 0;
|
||||
-webkit-transition-property: top;
|
||||
-moz-transition-property: top;
|
||||
-o-transition-property: top;
|
||||
-ms-transition-property: top;
|
||||
transition-property: top;
|
||||
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
||||
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
|
||||
-moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
|
||||
-ms-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
|
||||
-o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
|
||||
transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
|
||||
}
|
||||
.tooltipster-fall-show {
|
||||
}
|
||||
.tooltipster-fall.tooltipster-dying {
|
||||
-webkit-transition-property: all;
|
||||
-moz-transition-property: all;
|
||||
-o-transition-property: all;
|
||||
-ms-transition-property: all;
|
||||
transition-property: all;
|
||||
top: 0px !important;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.tooltipster-slide {
|
||||
left: -40px;
|
||||
-webkit-transition-property: left;
|
||||
-moz-transition-property: left;
|
||||
-o-transition-property: left;
|
||||
-ms-transition-property: left;
|
||||
transition-property: left;
|
||||
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
||||
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
|
||||
-moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
|
||||
-ms-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
|
||||
-o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
|
||||
transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
|
||||
}
|
||||
.tooltipster-slide.tooltipster-slide-show {
|
||||
}
|
||||
.tooltipster-slide.tooltipster-dying {
|
||||
-webkit-transition-property: all;
|
||||
-moz-transition-property: all;
|
||||
-o-transition-property: all;
|
||||
-ms-transition-property: all;
|
||||
transition-property: all;
|
||||
left: 0px !important;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
|
||||
/* CSS transition for when contenting is changing in a tooltip that is still open. The only properties that will NOT transition are: width, height, top, and left */
|
||||
.tooltipster-content-changing {
|
||||
opacity: 0.5;
|
||||
-webkit-transform: scale(1.1, 1.1);
|
||||
-moz-transform: scale(1.1, 1.1);
|
||||
-o-transform: scale(1.1, 1.1);
|
||||
-ms-transform: scale(1.1, 1.1);
|
||||
transform: scale(1.1, 1.1);
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
google-site-verification: google98fb13fcf3cf0ae7.html
|
||||
@@ -1,34 +1,34 @@
|
||||
@using System.Configuration
|
||||
|
||||
@{
|
||||
var blogsXmlFile = Server.MapPath("~/App_Data/communityblogs.xml");
|
||||
|
||||
var random = Guid.NewGuid();
|
||||
// var blogsXmlFile = Server.MapPath("~/App_Data/communityblogs.xml");
|
||||
|
||||
var yahooPipesId = ConfigurationManager.AppSettings["YahooPipesId"];
|
||||
// var random = Guid.NewGuid();
|
||||
|
||||
var url = string.Format("http://pipes.yahoo.com/pipes/pipe.run?_id={0}&_render=rss&rnd={1}", yahooPipesId, random);
|
||||
// var yahooPipesId = ConfigurationManager.AppSettings["YahooPipesId"];
|
||||
|
||||
if(File.GetLastWriteTime(blogsXmlFile) < DateTime.Now.AddMinutes(-60))
|
||||
{
|
||||
string html = "";
|
||||
// var url = string.Format("http://pipes.yahoo.com/pipes/pipe.run?_id={0}&_render=rss&rnd={1}", yahooPipesId, random);
|
||||
|
||||
using(WebClient client = new WebClient())
|
||||
{
|
||||
html = client.DownloadString(url);
|
||||
}
|
||||
// if(File.GetLastWriteTime(blogsXmlFile) < DateTime.Now.AddMinutes(-60))
|
||||
// {
|
||||
// string html = "";
|
||||
|
||||
html = html.Replace(string.Format("http://pipes.yahoo.com/pipes/pipe.info?_id={0}", yahooPipesId), "http://our.umbraco.org/rss/communityblogs/");
|
||||
html = html.Replace(string.Format("http://pipes.yahoo.com/pipes/pipe.run?_id={0}&_render=rss&page=2", yahooPipesId), "http://our.umbraco.org/rss/communityblogs/");
|
||||
|
||||
using(StreamWriter writer = new StreamWriter(blogsXmlFile, false))
|
||||
{
|
||||
writer.WriteLine(html);
|
||||
}
|
||||
}
|
||||
// using(WebClient client = new WebClient())
|
||||
// {
|
||||
// html = client.DownloadString(url);
|
||||
// }
|
||||
|
||||
string blogs = File.ReadAllText(blogsXmlFile);
|
||||
|
||||
Response.ContentType = "application/xml";
|
||||
Response.Write(blogs);
|
||||
// html = html.Replace(string.Format("http://pipes.yahoo.com/pipes/pipe.info?_id={0}", yahooPipesId), "http://our.umbraco.org/rss/communityblogs/");
|
||||
// html = html.Replace(string.Format("http://pipes.yahoo.com/pipes/pipe.run?_id={0}&_render=rss&page=2", yahooPipesId), "http://our.umbraco.org/rss/communityblogs/");
|
||||
|
||||
// using(StreamWriter writer = new StreamWriter(blogsXmlFile, false))
|
||||
// {
|
||||
// writer.WriteLine(html);
|
||||
// }
|
||||
// }
|
||||
|
||||
// string blogs = File.ReadAllText(blogsXmlFile);
|
||||
|
||||
// Response.ContentType = "application/xml";
|
||||
//Response.Write(blogs);
|
||||
}
|
||||
@@ -1,163 +1,202 @@
|
||||
@using System.Text.RegularExpressions
|
||||
@using System.Xml;
|
||||
@using Examine.LuceneEngine.Providers
|
||||
@using Examine.SearchCriteria
|
||||
@using OurUmbraco.MarketPlace.Interfaces
|
||||
@using OurUmbraco.MarketPlace.ListingItem
|
||||
@using OurUmbraco.Our
|
||||
@using OurUmbraco.Our.Examine
|
||||
@using OurUmbraco.Project
|
||||
@using Umbraco.Core
|
||||
@using Umbraco.Web
|
||||
|
||||
@{
|
||||
var projectsProvider = new OurUmbraco.MarketPlace.NodeListing.NodeListingProvider();
|
||||
var take = 30;
|
||||
|
||||
var filters = new List<SearchFilters>();
|
||||
var searchFilters = new SearchFilters(BooleanOperation.And);
|
||||
//MUST be live
|
||||
searchFilters.Filters.Add(new SearchFilter("projectLive", "1"));
|
||||
filters.Add(searchFilters);
|
||||
//Get the version that the package repository is displaying for
|
||||
var version = "v45";
|
||||
if (Request.QueryString["fullVersion"] != null)
|
||||
{
|
||||
version = Request.QueryString["fullVersion"];
|
||||
}
|
||||
//need to clean up this string, it could be all sorts of things
|
||||
var parsedVersion = version.GetFromUmbracoString();
|
||||
if (parsedVersion != null)
|
||||
{
|
||||
var numericalVersion = parsedVersion.GetNumericalValue();
|
||||
var versionFilters = new SearchFilters(BooleanOperation.Or);
|
||||
versionFilters.Filters.Add(new RangeSearchFilter("num_version", 0, numericalVersion));
|
||||
versionFilters.Filters.Add(new RangeSearchFilter("num_compatVersions", 0, numericalVersion));
|
||||
filters.Add(versionFilters);
|
||||
}
|
||||
|
||||
var ourSearcher = new OurSearcher(string.Empty, "project", "popularity[Type=INT]", maxResults: take, filters: filters);
|
||||
|
||||
var wrapperClass = "notLoggedIn";
|
||||
|
||||
var qs = Request.RawUrl.Substring( Request.RawUrl.IndexOf('?')+1 );
|
||||
var qs = Request.RawUrl.Substring(Request.RawUrl.IndexOf('?') + 1);
|
||||
|
||||
var version = "v45";
|
||||
if(Request.QueryString["version"] != null){
|
||||
version = Request.QueryString["version"].ToLower();
|
||||
}
|
||||
|
||||
const string uniqueWhatever = "E295637E-E957-4CCA-92CE-BF5D58F9FF59";
|
||||
var cacheKey = uniqueWhatever + "[" + version + "]";
|
||||
var cache = ApplicationContext.Current.ApplicationCache.RuntimeCache;
|
||||
|
||||
IEnumerable<IListingItem> projects = (IEnumerable<IListingItem>)cache.GetCacheItem(cacheKey, () =>
|
||||
{
|
||||
return projectsProvider
|
||||
.GetListingsByKarma(0, take, true, false)
|
||||
.Where(x => !x.NotAPackage &&
|
||||
(string.Join("", x.UmbracoVerionsSupported).Contains("nan") ||
|
||||
string.Join("", x.UmbracoVerionsSupported).Contains(version)));
|
||||
}, TimeSpan.FromMinutes(10));
|
||||
var found = ourSearcher.Search("projectSearcher");
|
||||
//var result = projectsProvider
|
||||
// .GetListingsByKarma(0, take, true, false)
|
||||
// .Where(x => !x.NotAPackage &&
|
||||
// (string.Join("", x.UmbracoVerionsSupported).Contains("nan") ||
|
||||
// string.Join("", x.UmbracoVerionsSupported).Contains(version)));
|
||||
|
||||
var pUrl = "/repo_viewproject?" + qs + "&project_id=";
|
||||
var favs = new List<IListingItem>();
|
||||
var favs = new List<PublishedContentListingItem>();
|
||||
|
||||
|
||||
if(umbraco.library.IsLoggedOn()){
|
||||
if (umbraco.library.IsLoggedOn())
|
||||
{
|
||||
wrapperClass = "loggedIn";
|
||||
|
||||
var memId = umbraco.cms.businesslogic.member.Member.GetCurrentMember().Id;
|
||||
var umbracoHelper = new UmbracoHelper(UmbracoContext.Current);
|
||||
|
||||
var memId = umbraco.cms.businesslogic.member.Member.GetCurrentMember().Id;
|
||||
var projectsProvider = new OurUmbraco.MarketPlace.NodeListing.NodeListingProvider();
|
||||
var iterator = OurUmbraco.Powers.Library.Xslt.ItemsVotedFor(memId, "powersproject").Current.Select("//id");
|
||||
while (iterator.MoveNext() && iterator.CurrentPosition < 20)
|
||||
{
|
||||
var node = (IHasXmlNode)iterator.Current;
|
||||
|
||||
if(node != null){
|
||||
string id = umbraco.xmlHelper.GetNodeValue(node.GetNode());
|
||||
|
||||
if(id != null){
|
||||
try{
|
||||
var project = projectsProvider.GetListing(int.Parse(id), false);
|
||||
if(project != null){
|
||||
favs.Add(project);
|
||||
if (node != null)
|
||||
{
|
||||
var id = umbraco.xmlHelper.GetNodeValue(node.GetNode());
|
||||
if (id != null)
|
||||
{
|
||||
var content = umbracoHelper.TypedContent(id);
|
||||
if (content != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
var project = (PublishedContentListingItem)projectsProvider.GetListing(content, false);
|
||||
if (project != null)
|
||||
{
|
||||
//set the category name
|
||||
favs.Add(project);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
//do nothing
|
||||
}
|
||||
}catch{
|
||||
//do nothing
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
favs = favs.Where(x => !x.NotAPackage && (string.Join("",x.UmbracoVerionsSupported).Contains("nan") || string.Join("",x.UmbracoVerionsSupported).Contains(version) )).ToList();
|
||||
favs = favs.Where(x => !x.NotAPackage && (string.Join("", x.UmbracoVerionsSupported).Contains("nan") || string.Join("", x.UmbracoVerionsSupported).Contains(version))).ToList();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
<div class="@wrapperClass">
|
||||
|
||||
<div class="projectDiv">
|
||||
<h1>Popular Packages</h1>
|
||||
<p>The most popular packages, based on karma and downloads</p>
|
||||
<ul class="projects">
|
||||
@foreach(var project in projects)
|
||||
{
|
||||
<li class="clearfix">
|
||||
<div class="deliPackage">
|
||||
|
||||
<div class="brief">
|
||||
|
||||
@{
|
||||
var screenShot = project.DefaultScreenshot;
|
||||
var image = string.IsNullOrEmpty(screenShot) == false ? screenShot + "?bgcolor=fff&width=50&height=50&format=png" : "/css/img/package2.png";
|
||||
}
|
||||
<a href="@pUrl@project.Id" class="packageIcon" style="background: url('@image') no-repeat top left;">Package</a>
|
||||
|
||||
<h3><a rel="@project.ProjectGuid" href="@pUrl@project.Id">@project.Name</a></h3>
|
||||
<div class="projectDiv">
|
||||
<h1>Popular Packages</h1>
|
||||
<p>The most popular packages, based on karma and downloads</p>
|
||||
<ul class="projects">
|
||||
@foreach (var project in found.SearchResults)
|
||||
{
|
||||
<li class="clearfix">
|
||||
<div class="deliPackage">
|
||||
|
||||
<div class="category">@project.GetCategoryName()</div>
|
||||
</div>
|
||||
<div class="brief">
|
||||
|
||||
<div class="hiLite">
|
||||
<p><a rel="@project.ProjectGuid" title="@project.Name" href="@pUrl@project.Id">@ShortenText(project.Description)</a></p>
|
||||
</div>
|
||||
@{
|
||||
var screenShot = project.Fields.ContainsKey("image") ? project["image"] : string.Empty;
|
||||
var image = string.IsNullOrEmpty(screenShot) == false ? screenShot + "?bgcolor=fff&width=50&height=50&format=png" : "/css/img/package2.png";
|
||||
}
|
||||
<a href="@pUrl@project.Id" class="packageIcon" style="background: url('@image') no-repeat top left;">Package</a>
|
||||
|
||||
<div class="popularity">
|
||||
<div class="karma">
|
||||
@project.Karma
|
||||
<small>Karma</small>
|
||||
</div>
|
||||
<div class="downloads">
|
||||
@project.Downloads
|
||||
<small>Downloads</small>
|
||||
</div>
|
||||
</div>
|
||||
<h3><a rel="@project["uniqueId"]" href="@pUrl@project.Id">@project["nodeName"]</a>
|
||||
</h3>
|
||||
|
||||
<div class="category">@project["categoryFolder"]</div>
|
||||
</div>
|
||||
|
||||
<div class="hiLite">
|
||||
<p>
|
||||
<a rel="@project["uniqueId"]" title="@project["nodeName"]" href="@pUrl@project.Id">
|
||||
@ShortenText(project[string.Concat(LuceneIndexer.SpecialFieldPrefix, "body")])
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="popularity">
|
||||
<div class="karma">
|
||||
@project["karma"]
|
||||
<small>Karma</small>
|
||||
</div>
|
||||
<div class="downloads">
|
||||
@project["downloads"]
|
||||
<small>Downloads</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@if (favs.Any())
|
||||
{
|
||||
<div class="favsDiv">
|
||||
<h1>Your favorites</h1>
|
||||
<p>This is your favourites, based on your karma votes and downloads</p>
|
||||
<ul class="projects">
|
||||
@foreach (var project in @favs)
|
||||
{
|
||||
<li class="clearfix">
|
||||
<div class="deliPackage">
|
||||
|
||||
<div class="brief">
|
||||
|
||||
@{
|
||||
var screenShot = project.DefaultScreenshot;
|
||||
var image = string.IsNullOrEmpty(screenShot) == false ? screenShot + "?bgcolor=fff&width=50&height=50" : "/css/img/package2.png";
|
||||
}
|
||||
<a href="@pUrl@project.Id" class="packageIcon" style="background: url('@image') no-repeat top left;">Package</a>
|
||||
|
||||
<h3><a rel="@project.ProjectGuid" href="@pUrl@project.Id">@project.Name</a>
|
||||
</h3>
|
||||
|
||||
<div class="category">@project.PublishedContent.Parent.Name</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="hiLite">
|
||||
<p><a rel="@project.ProjectGuid" title="@project.Name" href="@pUrl@project.Id">@ShortenText(project.Description)</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="popularity">
|
||||
<div class="karma">
|
||||
@project.Karma
|
||||
<small>Karma</small>
|
||||
</div>
|
||||
<div class="downloads">
|
||||
@project.Downloads
|
||||
<small>Downloads</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@if(favs.Count() > 0){
|
||||
<div class="favsDiv">
|
||||
<h1>Your favorites</h1>
|
||||
<p>This is your favourites, based on your karma votes and downloads</p>
|
||||
<ul class="projects">
|
||||
@foreach(var project in @favs)
|
||||
{
|
||||
<li class="clearfix">
|
||||
<div class="deliPackage">
|
||||
|
||||
<div class="brief">
|
||||
|
||||
@{
|
||||
var screenShot = project.DefaultScreenshot;
|
||||
var image = string.IsNullOrEmpty(screenShot) == false ? screenShot + "?bgcolor=fff&width=50&height=50" : "/css/img/package2.png";
|
||||
}
|
||||
<a href="@pUrl@project.Id" class="packageIcon" style="background: url('@image') no-repeat top left;">Package</a>
|
||||
|
||||
<h3><a rel="@project.ProjectGuid" href="@pUrl@project.Id">@project.Name</a></h3>
|
||||
|
||||
<div class="category">@project.GetCategoryName()</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="hiLite">
|
||||
<p><a rel="@project.ProjectGuid" title="@project.Name" href="@pUrl@project.Id">@ShortenText(project.Description)</a></p>
|
||||
</div>
|
||||
|
||||
<div class="popularity">
|
||||
<div class="karma">
|
||||
@project.Karma
|
||||
<small>Karma</small>
|
||||
</div>
|
||||
<div class="downloads">
|
||||
@project.Downloads
|
||||
<small>Downloads</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
}else{
|
||||
<a href="#" id="loginToSeeFavs" class="rounded">Log in to see your favourites</a>
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
<a href="#" id="loginToSeeFavs" class="rounded">Log in to see your favourites</a>
|
||||
}
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@@ -10,7 +10,8 @@
|
||||
var Project = ProjectsProvider.GetListing(projectId, false);
|
||||
var node = new umbraco.NodeFactory.Node(projectId);
|
||||
var parentId = node.Parent.Id;
|
||||
|
||||
var categoryName = node.Parent.Name;
|
||||
|
||||
var pUrl = "repo/project?id=";
|
||||
|
||||
string descCssClass = "noWrap";
|
||||
@@ -61,7 +62,7 @@
|
||||
|
||||
<ul id="breadcrumb">
|
||||
<li><a href="/repo?@qs">Repository</a> →</li>
|
||||
<li><a href="/repo_category?@qs&category_id=@parentId">@Project.GetCategoryName()</a> →</li>
|
||||
<li><a href="/repo_category?@qs&category_id=@parentId">@categoryName</a> →</li>
|
||||
<li>@Project.Name</li>
|
||||
</ul>
|
||||
|
||||
@@ -130,7 +131,7 @@
|
||||
<div>
|
||||
|
||||
<div id="projectDescriptionText" class="@descCssClass">
|
||||
@Html.Raw(Project.Description)
|
||||
@Html.Raw(Project.Description.CleanHtmlAttributes())
|
||||
</div>
|
||||
|
||||
<div class="divider" style="clear:left;"></div>
|
||||
|
||||
@@ -12,10 +12,12 @@
|
||||
|
||||
|
||||
<h1>Contribute to the Umbraco Project</h1>
|
||||
<div class="options">
|
||||
<div>
|
||||
<umbraco:Item field="bodyText" runat="server" />
|
||||
</div>
|
||||
<umbraco:Macro Alias="ContentLanding-Summary" runat="server" />
|
||||
<div class="options">
|
||||
<umbraco:Macro Alias="ContentLanding-Summary" runat="server" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</asp:Content>
|
||||
@@ -48,14 +48,10 @@
|
||||
<meta name="author" content="">
|
||||
|
||||
<CD:HackedCdfLoader runat="server" ID="Loader" />
|
||||
|
||||
<link href="https://fonts.googleapis.com/css?family=Asap:400,700,400italic,700italic" rel="stylesheet" type="text/css" />
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="/assets/css/style.min.css" />
|
||||
|
||||
<CD:HtmlInclude runat="server">
|
||||
<link rel="stylesheet" type="text/css" href="/assets/css/style.min.css" />
|
||||
</CD:HtmlInclude>
|
||||
|
||||
<link href="https://fonts.googleapis.com/css?family=Asap:400,700,400italic,700italic" rel="stylesheet" type="text/css" />
|
||||
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.min.css" />
|
||||
|
||||
<asp:PlaceHolder runat="server" ID="CssPlaceHolder"></asp:PlaceHolder>
|
||||
@@ -73,7 +69,7 @@
|
||||
|
||||
<script>
|
||||
var _prum = [['id', '529dbcf6abe53d055a000000'],
|
||||
['mark', 'firstbyte', (new Date()).getTime()]];
|
||||
['mark', 'firstbyte', (new Date()).getTime()]];
|
||||
(function () {
|
||||
var s = document.getElementsByTagName('script')[0]
|
||||
, p = document.createElement('script');
|
||||
@@ -84,15 +80,16 @@
|
||||
</script>
|
||||
<script>
|
||||
(function (i, s, o, g, r, a, m) {
|
||||
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
|
||||
(i[r].q = i[r].q || []).push(arguments)
|
||||
}, i[r].l = 1 * new Date(); a = s.createElement(o),
|
||||
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
|
||||
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
|
||||
(i[r].q = i[r].q || []).push(arguments)
|
||||
}, i[r].l = 1 * new Date(); a = s.createElement(o),
|
||||
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
|
||||
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
|
||||
|
||||
|
||||
ga('create', 'UA-120590-4', 'auto');
|
||||
ga('send', 'pageview');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<%
|
||||
@@ -105,7 +102,7 @@
|
||||
|
||||
<body class="<%= bodyCss %>">
|
||||
<form runat="server">
|
||||
|
||||
|
||||
<umbraco:Macro Alias="MembersQuickMenu" runat="server"></umbraco:Macro>
|
||||
|
||||
<div class="wrapper">
|
||||
@@ -135,7 +132,7 @@
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<%
|
||||
var ms = new MembershipHelper(UmbracoContext.Current);
|
||||
var member = ms.GetCurrentMember();
|
||||
@@ -147,22 +144,24 @@
|
||||
if (memberIsBlocked == false)
|
||||
{
|
||||
%>
|
||||
<umbraco:Macro Alias="GlobalAlertBar" runat="server"></umbraco:Macro>
|
||||
|
||||
<asp:ContentPlaceHolder ID="Search" runat="server" />
|
||||
<umbraco:Macro Alias="GlobalAlertBar" runat="server"></umbraco:Macro>
|
||||
|
||||
<asp:ContentPlaceHolder ID="Main" runat="server" />
|
||||
<% } else { %>
|
||||
<section class="forum">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h1 class="text-center">Computer says no</h1>
|
||||
<p>Unfortunaly, it seems that your account has been blocked.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<asp:ContentPlaceHolder ID="Search" runat="server" />
|
||||
|
||||
<asp:ContentPlaceHolder ID="Main" runat="server" />
|
||||
<% }
|
||||
else
|
||||
{ %>
|
||||
<section class="forum">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h1 class="text-center">Computer says no</h1>
|
||||
<p>Unfortunaly, it seems that your account has been blocked.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<% } %>
|
||||
|
||||
<footer>
|
||||
@@ -171,7 +170,15 @@
|
||||
|
||||
<div class="col-xs-12">
|
||||
Our.umbraco.org is the community mothership for Umbraco, the open source asp.net cms. With a friendly forum for all your questions, a comprehensive documentation and a ton of packages from the community.
|
||||
This site is running <data id="umbraco-version" value='<%= Umbraco.Core.Configuration.UmbracoVersion.GetSemanticVersion() %>'>Umbraco version <%= Umbraco.Core.Configuration.UmbracoVersion.GetSemanticVersion() %></data>
|
||||
<% if (Request.UserAgent.ToLower().Contains("googlebot"))
|
||||
{ %>
|
||||
This site is running Umbraco.
|
||||
<% }
|
||||
else
|
||||
{ %>
|
||||
This site is running
|
||||
<data id="umbraco-version" value='<%= Umbraco.Core.Configuration.UmbracoVersion.GetSemanticVersion() %>'>Umbraco version <%= Umbraco.Core.Configuration.UmbracoVersion.GetSemanticVersion() %></data>
|
||||
<% } %>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -188,15 +195,15 @@
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pagedown/1.0/Markdown.Sanitizer.js"> </script>
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mustache.js/0.8.1/mustache.min.js"> </script>
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.min.js"></script>
|
||||
<script type="text/javascript" src="/assets/js/jquery.ajaxfileupload.js"></script>
|
||||
|
||||
<script type="text/javascript" src="/assets/js/jquery.scrolly.js"></script>
|
||||
<script type="text/javascript" src="/assets/js/lodash.min.js"></script>
|
||||
<script type="text/javascript" src="/assets/js/community.js"></script>
|
||||
<script type="text/javascript" src="/assets/js/app.min.js"></script>
|
||||
<script type="text/javascript" src="/assets/js/editor.min.js"></script>
|
||||
|
||||
|
||||
<CD:HtmlInclude runat="server">
|
||||
<script type="text/javascript" src="/assets/js/jquery.ajaxfileupload.js"></script>
|
||||
|
||||
<script type="text/javascript" src="/assets/js/jquery.scrolly.js"></script>
|
||||
<script type="text/javascript" src="/assets/js/lodash.min.js"></script>
|
||||
<script type="text/javascript" src="/assets/js/community.js"></script>
|
||||
<script type="text/javascript" src="/assets/js/app.min.js"></script>
|
||||
<script type="text/javascript" src="/assets/js/editor.min.js"></script>
|
||||
</CD:HtmlInclude>
|
||||
|
||||
<asp:PlaceHolder runat="server" ID="JavaScriptPlaceHolder"></asp:PlaceHolder>
|
||||
@@ -205,6 +212,7 @@
|
||||
classOnScroll('header', 'sticky', 10);
|
||||
</script>
|
||||
|
||||
|
||||
<asp:ContentPlaceHolder ID="EndScripts" runat="server" />
|
||||
</form>
|
||||
</body>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<li class="filter-orderBy">
|
||||
<h3>Projects</h3>
|
||||
<ul class="level-2">
|
||||
<li><h4><a href="?orderBy=createDate">Newest projects</a></h4></li>
|
||||
<li><h4><a href="?orderBy=updateDate">Updated projects</a></h4></li>
|
||||
<li><h4><a href="?orderBy=popularity">Popular projects</a></h4></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
@@ -0,0 +1,219 @@
|
||||
<%@ Master Language="C#" MasterPageFile="~/masterpages/Master.master" AutoEventWireup="true" %>
|
||||
|
||||
<%@ Import Namespace="Umbraco.Web" %>
|
||||
<%@ Import Namespace="OurUmbraco.Release" %>
|
||||
<%@ Import Namespace="Umbraco.Core.Models" %>
|
||||
|
||||
<asp:Content ID="Content1" ContentPlaceHolderID="Head" runat="server">
|
||||
</asp:Content>
|
||||
|
||||
<asp:Content ID="Content2" ContentPlaceHolderID="Main" runat="server">
|
||||
|
||||
<div class="has-sidebar release">
|
||||
<div class="page-content">
|
||||
<div class="sidebar-area">
|
||||
<div class="sidebar-content">
|
||||
<div class="content-wrapper">
|
||||
|
||||
<nav>
|
||||
<ul class="level-1">
|
||||
<%-- <%
|
||||
foreach (var currentRelease in allReleases.Where(x => x.released && x.currentRelease))
|
||||
{
|
||||
%>
|
||||
<li>
|
||||
<a class="active" href="/contribute/releases/<%= currentRelease.version.Replace(".", string.Empty) %>"><h3>Latest Release - v<%= currentRelease.version %></h3></a>
|
||||
</li>
|
||||
<% } %>--%>
|
||||
<li>
|
||||
<a href="/contribute/progress">
|
||||
<h3>In Progress</h3>
|
||||
</a>
|
||||
</li>
|
||||
<li class="active open">
|
||||
<a href="/contribute/releases">
|
||||
<h3>All releases</h3>
|
||||
</a>
|
||||
<ul class="level-2">
|
||||
<li class="active">
|
||||
<a href="/contribute/releases/compare">
|
||||
<h4>Compare Versions</h4>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
<!-- .content-wrapper -->
|
||||
</div>
|
||||
<!-- .sidebar-content -->
|
||||
</div>
|
||||
<div class="main-area">
|
||||
<div class="main-content">
|
||||
<div class="content-wrapper">
|
||||
|
||||
<div>
|
||||
<umbraco:Macro linkToCurrent="1" Alias="Breadcrumb" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.release .explain {
|
||||
margin-top: 20px;
|
||||
border-bottom: 1px solid #eee;
|
||||
border-top: 1px solid #eee;
|
||||
}
|
||||
|
||||
.release .explain h2 {
|
||||
margin-top: 12px;
|
||||
font-size: 2em;
|
||||
margin-bottom: .3rem;
|
||||
color: rgba(0,0,0,.8);
|
||||
}
|
||||
|
||||
.release .dot {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.release .dot.big {
|
||||
position: relative;
|
||||
text-indent: 0;
|
||||
margin: 15px !important;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.statuses ul {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
.statuses ul li {
|
||||
position: relative;
|
||||
margin-bottom: 10px;
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.statuses li:before {
|
||||
position: absolute;
|
||||
top: -4px;
|
||||
left: -25px;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
.release .markdown-syntax a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.release .markdown-syntax a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.markdown-syntax.douh {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
|
||||
.release .chart {
|
||||
height: 60px;
|
||||
width: 60px;
|
||||
top: inherit;
|
||||
left: inherit;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.release .chart p {
|
||||
vertical-align: middle;
|
||||
line-height: 2.7rem;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.release .chart canvas {
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.release .chartDesc {
|
||||
float: left;
|
||||
position: relative;
|
||||
line-height: 3.6em;
|
||||
}
|
||||
|
||||
.release select {
|
||||
border-radius: 0;
|
||||
padding: 10px;
|
||||
background-position: 95% center;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.release .titles {
|
||||
padding: 12px 15px;
|
||||
font-size: .8rem;
|
||||
text-transform: uppercase;
|
||||
font-weight: 700;
|
||||
letter-spacing: .5px;
|
||||
}
|
||||
|
||||
.release .to {
|
||||
margin-left: 20px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.release .button {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.explain .col-xs-12 {
|
||||
min-height: 50px;
|
||||
}
|
||||
|
||||
.error {
|
||||
color: red !important;
|
||||
}
|
||||
</style>
|
||||
<div class="container">
|
||||
<div class="row markdown-syntax douh">
|
||||
<div class="col-sm-12">
|
||||
<h1>Compare Releases</h1>
|
||||
<umbraco:Macro Alias="ReleasesDropdown" runat="server" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- .content-wrapper -->
|
||||
</div>
|
||||
<!-- .main-content -->
|
||||
</div>
|
||||
<!-- .main-area -->
|
||||
</div>
|
||||
<!-- .page-content -->
|
||||
</div>
|
||||
<!-- has-sidebar -->
|
||||
|
||||
</asp:Content>
|
||||
|
||||
<asp:Content ContentPlaceHolderID="EndScripts" runat="server">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/easy-pie-chart/2.1.4/jquery.easypiechart.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
function offsetAnchor() {
|
||||
if (location.hash.length !== 0) {
|
||||
window.scrollTo(window.scrollX, window.scrollY - 120);
|
||||
}
|
||||
}
|
||||
|
||||
$(window).on("hashchange", function () {
|
||||
offsetAnchor();
|
||||
});
|
||||
|
||||
//window.setTimeout(function () {
|
||||
// offsetAnchor();
|
||||
//}, 1);
|
||||
setTimeout(function () {
|
||||
$('.chart').easyPieChart({
|
||||
size: 60,
|
||||
barColor: '#569327',
|
||||
scaleColor: false,
|
||||
trackColor: '#daf0c9'
|
||||
});
|
||||
offsetAnchor();
|
||||
}, 300);
|
||||
</script>
|
||||
</asp:Content>
|
||||
@@ -31,9 +31,14 @@
|
||||
<li>
|
||||
<a href="/contribute/progress"><h3>In Progress</h3></a>
|
||||
</li>
|
||||
<li class="active">
|
||||
<li class="active open">
|
||||
<a href="/contribute/releases"><h3>All releases</h3></a>
|
||||
</li>
|
||||
<ul class="level-2">
|
||||
<li>
|
||||
<a href="/contribute/releases/compare"><h4>Compare Versions</h4></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
||||
@@ -1,53 +1,62 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="AspNetMvc" version="3.0.20105.1" targetFramework="net4" />
|
||||
<package id="AutoMapper" version="3.0.0" targetFramework="net451" />
|
||||
<package id="ClientDependency" version="1.8.4" targetFramework="net451" />
|
||||
<package id="AutoMapper" version="3.0.0" targetFramework="net452" />
|
||||
<package id="ClientDependency" version="1.9.1" targetFramework="net452" />
|
||||
<package id="ClientDependency-Mvc" version="1.8.0.0" targetFramework="net451" />
|
||||
<package id="ClientDependency-Mvc5" version="1.8.0.0" targetFramework="net451" />
|
||||
<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.68.0" targetFramework="net451" />
|
||||
<package id="HtmlAgilityPack" version="1.4.9" targetFramework="net451" />
|
||||
<package id="ImageProcessor" version="2.3.0.0" targetFramework="net451" />
|
||||
<package id="ImageProcessor.Web" version="4.4.0.0" targetFramework="net451" />
|
||||
<package id="Examine" version="0.1.69.0" targetFramework="net452" />
|
||||
<package id="HtmlAgilityPack" version="1.4.9" targetFramework="net452" />
|
||||
<package id="ImageProcessor" version="2.4.4.0" targetFramework="net452" />
|
||||
<package id="ImageProcessor.Web" version="4.6.4.0" targetFramework="net452" />
|
||||
<package id="jQuery" version="1.4.1" targetFramework="net451" />
|
||||
<package id="jQuery.Validation" version="1.8" targetFramework="net451" />
|
||||
<package id="jQuery.Validation.Unobtrusive" version="2.0.20710.0" targetFramework="net451" />
|
||||
<package id="JsonFx" version="2.0.1209.2802" targetFramework="net4" />
|
||||
<package id="Lucene.Net" version="2.9.4.1" targetFramework="net451" />
|
||||
<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.AspNet.Identity.Core" version="2.2.1" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.Identity.Owin" version="2.2.1" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.Mvc.FixedDisplayModes" version="5.0.0" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net451" />
|
||||
<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" />
|
||||
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net452" />
|
||||
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net452" />
|
||||
<package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net452" />
|
||||
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net452" />
|
||||
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net452" />
|
||||
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net452" />
|
||||
<package id="Microsoft.AspNet.WebHelpers" version="3.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net452" />
|
||||
<package id="Microsoft.AspNet.WebPages.Data" version="3.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.WebPages.WebData" version="3.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.Bcl" version="1.1.10" targetFramework="net451" />
|
||||
<package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="net451" />
|
||||
<package id="Microsoft.CodeAnalysis.Analyzers" version="1.0.0" targetFramework="net452" />
|
||||
<package id="Microsoft.CodeAnalysis.Common" version="1.0.0" targetFramework="net452" />
|
||||
<package id="Microsoft.CodeAnalysis.CSharp" version="1.0.0" targetFramework="net452" />
|
||||
<package id="Microsoft.jQuery.Unobtrusive.Validation" version="2.0.20710.0" targetFramework="net451" />
|
||||
<package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net451" />
|
||||
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net451" />
|
||||
<package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net451" />
|
||||
<package id="Microsoft.Owin.Security" version="3.0.1" targetFramework="net451" />
|
||||
<package id="Microsoft.Owin.Security.Cookies" version="3.0.1" targetFramework="net451" />
|
||||
<package id="Microsoft.Owin.Security.OAuth" version="3.0.1" targetFramework="net451" />
|
||||
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net451" />
|
||||
<package id="MiniProfiler" version="2.1.0" targetFramework="net451" />
|
||||
<package id="MySql.Data" version="6.9.7" targetFramework="net451" />
|
||||
<package id="Newtonsoft.Json" version="6.0.8" targetFramework="net451" />
|
||||
<package id="Owin" version="1.0" targetFramework="net451" />
|
||||
<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" />
|
||||
<package id="Microsoft.Owin.Security.Cookies" version="3.0.1" targetFramework="net452" />
|
||||
<package id="Microsoft.Owin.Security.Google" version="3.0.1" targetFramework="net451" />
|
||||
<package id="Microsoft.Owin.Security.OAuth" version="3.0.1" targetFramework="net452" />
|
||||
<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="Owin" version="1.0" targetFramework="net452" />
|
||||
<package id="RestSharp" version="104.1" targetFramework="net4" />
|
||||
<package id="semver" version="1.1.2" targetFramework="net451" />
|
||||
<package id="SharpZipLib" version="0.86.0" targetFramework="net451" />
|
||||
<package id="UmbracoCms.Core" version="7.3.1" targetFramework="net451" />
|
||||
<package id="UrlTracker" version="3.8" targetFramework="net451" />
|
||||
<package id="xmlrpcnet" version="2.5.0" targetFramework="net451" />
|
||||
<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="Umbraco.ModelsBuilder" version="3.0.4" targetFramework="net452" />
|
||||
<package id="UmbracoCms" version="7.5.3" targetFramework="net452" />
|
||||
<package id="UmbracoCms.Core" version="7.5.3" 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>
|
||||
@@ -0,0 +1,353 @@
|
||||
/**
|
||||
* AnchorJS - v3.2.1 - 2016-07-18
|
||||
* https://github.com/bryanbraun/anchorjs
|
||||
* Copyright (c) 2016 Bryan Braun; Licensed MIT
|
||||
*/
|
||||
|
||||
/* SD: This has been modified to support an offset */
|
||||
|
||||
/* eslint-env amd, node */
|
||||
|
||||
// https://github.com/umdjs/umd/blob/master/templates/returnExports.js
|
||||
(function (root, factory) {
|
||||
'use strict';
|
||||
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module.
|
||||
define([], factory);
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory();
|
||||
} else {
|
||||
// Browser globals (root is window)
|
||||
root.AnchorJS = factory();
|
||||
root.anchors = new root.AnchorJS();
|
||||
}
|
||||
}(this, function () {
|
||||
'use strict';
|
||||
|
||||
function AnchorJS(options) {
|
||||
this.options = options || {};
|
||||
this.elements = [];
|
||||
|
||||
/**
|
||||
* Assigns options to the internal options object, and provides defaults.
|
||||
* @param {Object} opts - Options object
|
||||
*/
|
||||
function _applyRemainingDefaultOptions(opts) {
|
||||
opts.icon = opts.hasOwnProperty('icon') ? opts.icon : '\ue9cb'; // Accepts characters (and also URLs?), like '#', '¶', '❡', or '§'.
|
||||
opts.visible = opts.hasOwnProperty('visible') ? opts.visible : 'hover'; // Also accepts 'always' & 'touch'
|
||||
opts.placement = opts.hasOwnProperty('placement') ? opts.placement : 'right'; // Also accepts 'left'
|
||||
opts.class = opts.hasOwnProperty('class') ? opts.class : ''; // Accepts any class name.
|
||||
// Using Math.floor here will ensure the value is Number-cast and an integer.
|
||||
opts.truncate = opts.hasOwnProperty('truncate') ? Math.floor(opts.truncate) : 64; // Accepts any value that can be typecast to a number.
|
||||
opts.anchorCreated = opts.hasOwnProperty('anchorCreated') ? opts.anchorCreated : null; // no callback by default
|
||||
}
|
||||
|
||||
_applyRemainingDefaultOptions(this.options);
|
||||
|
||||
/**
|
||||
* Checks to see if this device supports touch. Uses criteria pulled from Modernizr:
|
||||
* https://github.com/Modernizr/Modernizr/blob/da22eb27631fc4957f67607fe6042e85c0a84656/feature-detects/touchevents.js#L40
|
||||
* @return {Boolean} - true if the current device supports touch.
|
||||
*/
|
||||
this.isTouchDevice = function () {
|
||||
return !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch);
|
||||
};
|
||||
|
||||
/**
|
||||
* Add anchor links to page elements.
|
||||
* @param {String|Array|Nodelist} selector - A CSS selector for targeting the elements you wish to add anchor links
|
||||
* to. Also accepts an array or nodeList containing the relavant elements.
|
||||
* @return {this} - The AnchorJS object
|
||||
*/
|
||||
this.add = function (selector) {
|
||||
var elements,
|
||||
elsWithIds,
|
||||
idList,
|
||||
elementID,
|
||||
i,
|
||||
index,
|
||||
count,
|
||||
tidyText,
|
||||
newTidyText,
|
||||
readableID,
|
||||
anchor,
|
||||
visibleOptionToUse,
|
||||
indexesToDrop = [];
|
||||
|
||||
// We reapply options here because somebody may have overwritten the default options object when setting options.
|
||||
// For example, this overwrites all options but visible:
|
||||
//
|
||||
// anchors.options = { visible: 'always'; }
|
||||
_applyRemainingDefaultOptions(this.options);
|
||||
|
||||
visibleOptionToUse = this.options.visible;
|
||||
if (visibleOptionToUse === 'touch') {
|
||||
visibleOptionToUse = this.isTouchDevice() ? 'always' : 'hover';
|
||||
}
|
||||
|
||||
// Provide a sensible default selector, if none is given.
|
||||
if (!selector) {
|
||||
selector = 'h1, h2, h3, h4, h5, h6';
|
||||
}
|
||||
|
||||
elements = _getElements(selector);
|
||||
|
||||
if (elements.length === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
_addBaselineStyles();
|
||||
|
||||
// We produce a list of existing IDs so we don't generate a duplicate.
|
||||
elsWithIds = document.querySelectorAll('[id]');
|
||||
idList = [].map.call(elsWithIds, function assign(el) {
|
||||
return el.id;
|
||||
});
|
||||
|
||||
for (i = 0; i < elements.length; i++) {
|
||||
if (this.hasAnchorJSLink(elements[i])) {
|
||||
indexesToDrop.push(i);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (elements[i].hasAttribute('id')) {
|
||||
elementID = elements[i].getAttribute('id');
|
||||
} else {
|
||||
tidyText = this.urlify(elements[i].textContent);
|
||||
|
||||
// Compare our generated ID to existing IDs (and increment it if needed)
|
||||
// before we add it to the page.
|
||||
newTidyText = tidyText;
|
||||
count = 0;
|
||||
do {
|
||||
if (index !== undefined) {
|
||||
newTidyText = tidyText + '-' + count;
|
||||
}
|
||||
|
||||
index = idList.indexOf(newTidyText);
|
||||
count += 1;
|
||||
} while (index !== -1);
|
||||
index = undefined;
|
||||
idList.push(newTidyText);
|
||||
|
||||
elements[i].setAttribute('id', newTidyText);
|
||||
elementID = newTidyText;
|
||||
}
|
||||
|
||||
readableID = elementID.replace(/-/g, ' ');
|
||||
|
||||
// The following code builds the following DOM structure in a more effiecient (albeit opaque) way.
|
||||
// '<a class="anchorjs-link ' + this.options.class + '" href="#' + elementID + '" aria-label="Anchor link for: ' + readableID + '" data-anchorjs-icon="' + this.options.icon + '"></a>';
|
||||
anchor = document.createElement('a');
|
||||
anchor.className = 'anchorjs-link ' + this.options.class;
|
||||
anchor.href = '#' + elementID;
|
||||
anchor.setAttribute('aria-label', 'Anchor link for: ' + readableID);
|
||||
anchor.setAttribute('data-anchorjs-icon', this.options.icon);
|
||||
|
||||
if (visibleOptionToUse === 'always') {
|
||||
anchor.style.opacity = '1';
|
||||
}
|
||||
|
||||
if (this.options.icon === '\ue9cb') {
|
||||
anchor.style.fontFamily = 'anchorjs-icons';
|
||||
anchor.style.fontStyle = 'normal';
|
||||
anchor.style.fontVariant = 'normal';
|
||||
anchor.style.fontWeight = 'normal';
|
||||
anchor.style.lineHeight = 1;
|
||||
|
||||
// We set lineHeight = 1 here because the `anchorjs-icons` font family could otherwise affect the
|
||||
// height of the heading. This isn't the case for icons with `placement: left`, so we restore
|
||||
// line-height: inherit in that case, ensuring they remain positioned correctly. For more info,
|
||||
// see https://github.com/bryanbraun/anchorjs/issues/39.
|
||||
if (this.options.placement === 'left') {
|
||||
anchor.style.lineHeight = 'inherit';
|
||||
}
|
||||
}
|
||||
|
||||
if (this.options.placement === 'left') {
|
||||
anchor.style.position = 'absolute';
|
||||
anchor.style.marginLeft = '-1em';
|
||||
anchor.style.paddingRight = '0.5em';
|
||||
elements[i].insertBefore(anchor, elements[i].firstChild);
|
||||
} else { // if the option provided is `right` (or anything else).
|
||||
anchor.style.paddingLeft = '0.375em';
|
||||
elements[i].appendChild(anchor);
|
||||
}
|
||||
|
||||
//execute the callback
|
||||
if (this.options.anchorCreated !== null) {
|
||||
this.options.anchorCreated(elements[i]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
for (i = 0; i < indexesToDrop.length; i++) {
|
||||
elements.splice(indexesToDrop[i] - i, 1);
|
||||
}
|
||||
this.elements = this.elements.concat(elements);
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Removes all anchorjs-links from elements targed by the selector.
|
||||
* @param {String|Array|Nodelist} selector - A CSS selector string targeting elements with anchor links,
|
||||
* OR a nodeList / array containing the DOM elements.
|
||||
* @return {this} - The AnchorJS object
|
||||
*/
|
||||
this.remove = function (selector) {
|
||||
var index,
|
||||
domAnchor,
|
||||
elements = _getElements(selector);
|
||||
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
domAnchor = elements[i].querySelector('.anchorjs-link');
|
||||
if (domAnchor) {
|
||||
// Drop the element from our main list, if it's in there.
|
||||
index = this.elements.indexOf(elements[i]);
|
||||
if (index !== -1) {
|
||||
this.elements.splice(index, 1);
|
||||
}
|
||||
// Remove the anchor from the DOM.
|
||||
elements[i].removeChild(domAnchor);
|
||||
}
|
||||
}
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Removes all anchorjs links. Mostly used for tests.
|
||||
*/
|
||||
this.removeAll = function () {
|
||||
this.remove(this.elements);
|
||||
};
|
||||
|
||||
/**
|
||||
* Urlify - Refine text so it makes a good ID.
|
||||
*
|
||||
* To do this, we remove apostrophes, replace nonsafe characters with hyphens,
|
||||
* remove extra hyphens, truncate, trim hyphens, and make lowercase.
|
||||
*
|
||||
* @param {String} text - Any text. Usually pulled from the webpage element we are linking to.
|
||||
* @return {String} - hyphen-delimited text for use in IDs and URLs.
|
||||
*/
|
||||
this.urlify = function (text) {
|
||||
// Regex for finding the nonsafe URL characters (many need escaping): & +$,:;=?@"#{}|^~[`%!']./()*\
|
||||
var nonsafeChars = /[& +$,:;=?@"#{}|^~[`%!'\]\.\/\(\)\*\\]/g,
|
||||
urlText;
|
||||
|
||||
// The reason we include this _applyRemainingDefaultOptions is so urlify can be called independently,
|
||||
// even after setting options. This can be useful for tests or other applications.
|
||||
if (!this.options.truncate) {
|
||||
_applyRemainingDefaultOptions(this.options);
|
||||
}
|
||||
|
||||
// Note: we trim hyphens after truncating because truncating can cause dangling hyphens.
|
||||
// Example string: // " ⚡⚡ Don't forget: URL fragments should be i18n-friendly, hyphenated, short, and clean."
|
||||
urlText = text.trim() // "⚡⚡ Don't forget: URL fragments should be i18n-friendly, hyphenated, short, and clean."
|
||||
.replace(/\'/gi, '') // "⚡⚡ Dont forget: URL fragments should be i18n-friendly, hyphenated, short, and clean."
|
||||
.replace(nonsafeChars, '-') // "⚡⚡-Dont-forget--URL-fragments-should-be-i18n-friendly--hyphenated--short--and-clean-"
|
||||
.replace(/-{2,}/g, '-') // "⚡⚡-Dont-forget-URL-fragments-should-be-i18n-friendly-hyphenated-short-and-clean-"
|
||||
.substring(0, this.options.truncate) // "⚡⚡-Dont-forget-URL-fragments-should-be-i18n-friendly-hyphenated-"
|
||||
.replace(/^-+|-+$/gm, '') // "⚡⚡-Dont-forget-URL-fragments-should-be-i18n-friendly-hyphenated"
|
||||
.toLowerCase(); // "⚡⚡-dont-forget-url-fragments-should-be-i18n-friendly-hyphenated"
|
||||
|
||||
return urlText;
|
||||
};
|
||||
|
||||
/**
|
||||
* Determines if this element already has an AnchorJS link on it.
|
||||
* Uses this technique: http://stackoverflow.com/a/5898748/1154642
|
||||
* @param {HTMLElemnt} el - a DOM node
|
||||
* @return {Boolean} true/false
|
||||
*/
|
||||
this.hasAnchorJSLink = function (el) {
|
||||
var hasLeftAnchor = el.firstChild && ((' ' + el.firstChild.className + ' ').indexOf(' anchorjs-link ') > -1),
|
||||
hasRightAnchor = el.lastChild && ((' ' + el.lastChild.className + ' ').indexOf(' anchorjs-link ') > -1);
|
||||
|
||||
return hasLeftAnchor || hasRightAnchor || false;
|
||||
};
|
||||
|
||||
/**
|
||||
* Turns a selector, nodeList, or array of elements into an array of elements (so we can use array methods).
|
||||
* It also throws errors on any other inputs. Used to handle inputs to .add and .remove.
|
||||
* @param {String|Array|Nodelist} input - A CSS selector string targeting elements with anchor links,
|
||||
* OR a nodeList / array containing the DOM elements.
|
||||
* @return {Array} - An array containing the elements we want.
|
||||
*/
|
||||
function _getElements(input) {
|
||||
var elements;
|
||||
if (typeof input === 'string' || input instanceof String) {
|
||||
// See https://davidwalsh.name/nodelist-array for the technique transforming nodeList -> Array.
|
||||
elements = [].slice.call(document.querySelectorAll(input));
|
||||
// I checked the 'input instanceof NodeList' test in IE9 and modern browsers and it worked for me.
|
||||
} else if (Array.isArray(input) || input instanceof NodeList) {
|
||||
elements = [].slice.call(input);
|
||||
} else {
|
||||
throw new Error('The selector provided to AnchorJS was invalid.');
|
||||
}
|
||||
return elements;
|
||||
}
|
||||
|
||||
/**
|
||||
* _addBaselineStyles
|
||||
* Adds baseline styles to the page, used by all AnchorJS links irregardless of configuration.
|
||||
*/
|
||||
function _addBaselineStyles() {
|
||||
// We don't want to add global baseline styles if they've been added before.
|
||||
if (document.head.querySelector('style.anchorjs') !== null) {
|
||||
return;
|
||||
}
|
||||
|
||||
var style = document.createElement('style'),
|
||||
linkRule =
|
||||
' .anchorjs-link {' +
|
||||
' opacity: 0;' +
|
||||
' text-decoration: none;' +
|
||||
' -webkit-font-smoothing: antialiased;' +
|
||||
' -moz-osx-font-smoothing: grayscale;' +
|
||||
' }',
|
||||
hoverRule =
|
||||
' *:hover > .anchorjs-link,' +
|
||||
' .anchorjs-link:focus {' +
|
||||
' opacity: 1;' +
|
||||
' }',
|
||||
anchorjsLinkFontFace =
|
||||
' @font-face {' +
|
||||
' font-family: "anchorjs-icons";' +
|
||||
' font-style: normal;' +
|
||||
' font-weight: normal;' + // Icon from icomoon; 10px wide & 10px tall; 2 empty below & 4 above
|
||||
' src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBTUAAAC8AAAAYGNtYXAWi9QdAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5Zgq29TcAAAF4AAABNGhlYWQEZM3pAAACrAAAADZoaGVhBhUDxgAAAuQAAAAkaG10eASAADEAAAMIAAAAFGxvY2EAKACuAAADHAAAAAxtYXhwAAgAVwAAAygAAAAgbmFtZQ5yJ3cAAANIAAAB2nBvc3QAAwAAAAAFJAAAACAAAwJAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpywPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6cv//f//AAAAAAAg6cv//f//AAH/4xY5AAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAACADEARAJTAsAAKwBUAAABIiYnJjQ/AT4BMzIWFxYUDwEGIicmND8BNjQnLgEjIgYPAQYUFxYUBw4BIwciJicmND8BNjIXFhQPAQYUFx4BMzI2PwE2NCcmNDc2MhcWFA8BDgEjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAEAAAABAACiToc1Xw889QALBAAAAAAA0XnFFgAAAADRecUWAAAAAAJTAsAAAAAIAAIAAAAAAAAAAQAAA8D/wAAABAAAAAAAAlMAAQAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAACAAAAAoAAMQAAAAAACgAUAB4AmgABAAAABQBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADgAAAAEAAAAAAAIABwCfAAEAAAAAAAMADgBLAAEAAAAAAAQADgC0AAEAAAAAAAUACwAqAAEAAAAAAAYADgB1AAEAAAAAAAoAGgDeAAMAAQQJAAEAHAAOAAMAAQQJAAIADgCmAAMAAQQJAAMAHABZAAMAAQQJAAQAHADCAAMAAQQJAAUAFgA1AAMAAQQJAAYAHACDAAMAAQQJAAoANAD4YW5jaG9yanMtaWNvbnMAYQBuAGMAaABvAHIAagBzAC0AaQBjAG8AbgBzVmVyc2lvbiAxLjAAVgBlAHIAcwBpAG8AbgAgADEALgAwYW5jaG9yanMtaWNvbnMAYQBuAGMAaABvAHIAagBzAC0AaQBjAG8AbgBzYW5jaG9yanMtaWNvbnMAYQBuAGMAaABvAHIAagBzAC0AaQBjAG8AbgBzUmVndWxhcgBSAGUAZwB1AGwAYQByYW5jaG9yanMtaWNvbnMAYQBuAGMAaABvAHIAagBzAC0AaQBjAG8AbgBzRm9udCBnZW5lcmF0ZWQgYnkgSWNvTW9vbi4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==) format("truetype");' +
|
||||
' }',
|
||||
pseudoElContent =
|
||||
' [data-anchorjs-icon]::after {' +
|
||||
' content: attr(data-anchorjs-icon);' +
|
||||
' }',
|
||||
firstStyleEl;
|
||||
|
||||
style.className = 'anchorjs';
|
||||
style.appendChild(document.createTextNode('')); // Necessary for Webkit.
|
||||
|
||||
// We place it in the head with the other style tags, if possible, so as to
|
||||
// not look out of place. We insert before the others so these styles can be
|
||||
// overridden if necessary.
|
||||
firstStyleEl = document.head.querySelector('[rel="stylesheet"], style');
|
||||
if (firstStyleEl === undefined) {
|
||||
document.head.appendChild(style);
|
||||
} else {
|
||||
document.head.insertBefore(style, firstStyleEl);
|
||||
}
|
||||
|
||||
style.sheet.insertRule(linkRule, style.sheet.cssRules.length);
|
||||
style.sheet.insertRule(hoverRule, style.sheet.cssRules.length);
|
||||
style.sheet.insertRule(pseudoElContent, style.sheet.cssRules.length);
|
||||
style.sheet.insertRule(anchorjsLinkFontFace, style.sheet.cssRules.length);
|
||||
}
|
||||
}
|
||||
|
||||
return AnchorJS;
|
||||
}));
|
||||
@@ -56,38 +56,6 @@ window.location = "/search?q=" + encodeURIComponent(jQuery('#searchField').val()
|
||||
|
||||
|
||||
|
||||
/* SIGNUP FORM RELATED */
|
||||
function lookupTwitter(field){
|
||||
var f = $(field);
|
||||
if(f.val() != ""){
|
||||
var turl = "/base/twitter/Profile/" + f.val() + ".aspx";
|
||||
$.get(turl, function(d){
|
||||
var buddyIcon = $(d).find("user profile_image_url").text();
|
||||
if(buddyIcon != ""){
|
||||
$("label[class != 'inputLabel']",f.parent()).remove();
|
||||
f.after("<label class='success'><img src='" + buddyIcon + "'/> We found you!</label>");
|
||||
}
|
||||
else
|
||||
$("label[class != 'inputLabel']",f.parent()).remove();
|
||||
});
|
||||
}}
|
||||
|
||||
function lookupEmail(field){
|
||||
var f = $(field);
|
||||
|
||||
if(!f.hasClass("error") && f.val() != ""){
|
||||
var turl = "/umbraco/api/Community/IsEmailUnique/?email=" + f.val();
|
||||
$.get(turl, function(d){
|
||||
|
||||
if( jQuery("value",d).text() != "true"){
|
||||
$("label[class != 'inputLabel']",f.parent()).remove();
|
||||
f.after("<label class='error'>Email already registered</label>");}
|
||||
else
|
||||
$("label[class != 'inputLabel']",f.parent()).remove();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function killButton(button, label){
|
||||
var b = $(button);
|
||||
b.after("<em class='yellow'>" + label + "</em>");
|
||||
|
||||