Component Updates; Add Winter Theme
subject for larger patch Fix Binding Redirect for smaller patchrefactor-intermediate-models
|
@ -31,7 +31,9 @@ namespace BuildFeed.Model
|
|||
|
||||
public string LabUrl { get; private set; }
|
||||
|
||||
public bool IsLeaked => SourceType == TypeOfSource.PublicRelease || SourceType == TypeOfSource.InternalLeak || SourceType == TypeOfSource.UpdateGDR;
|
||||
public bool IsLeaked => SourceType == TypeOfSource.PublicRelease ||
|
||||
SourceType == TypeOfSource.InternalLeak ||
|
||||
SourceType == TypeOfSource.UpdateGDR;
|
||||
|
||||
public string FullBuildString { get; private set; }
|
||||
|
||||
|
@ -46,7 +48,7 @@ namespace BuildFeed.Model
|
|||
{
|
||||
get
|
||||
{
|
||||
HtmlDocument hDoc = new HtmlDocument();
|
||||
var hDoc = new HtmlDocument();
|
||||
hDoc.LoadHtml($"<div>{SourceDetails}</div>");
|
||||
|
||||
if (string.IsNullOrWhiteSpace(hDoc.DocumentNode.InnerText))
|
||||
|
@ -56,8 +58,9 @@ namespace BuildFeed.Model
|
|||
|
||||
if (Uri.IsWellFormedUriString(hDoc.DocumentNode.InnerText, UriKind.Absolute))
|
||||
{
|
||||
Uri uri = new Uri(hDoc.DocumentNode.InnerText, UriKind.Absolute);
|
||||
return $"<a href=\"{uri}\" target=\"_blank\">{VariantTerms.Model_ExternalLink} <i class=\"fa fa-external-link\"></i></a>";
|
||||
var uri = new Uri(hDoc.DocumentNode.InnerText, UriKind.Absolute);
|
||||
return
|
||||
$"<a href=\"{uri}\" target=\"_blank\">{VariantTerms.Model_ExternalLink} <i class=\"fa fa-external-link\"></i></a>";
|
||||
}
|
||||
|
||||
return SourceDetails;
|
||||
|
@ -74,7 +77,7 @@ namespace BuildFeed.Model
|
|||
|
||||
private void GenerateFullBuildString()
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
var sb = new StringBuilder();
|
||||
sb.Append($"{MajorVersion}.{MinorVersion}.{Number}");
|
||||
|
||||
if (Revision.HasValue)
|
||||
|
@ -97,7 +100,7 @@ namespace BuildFeed.Model
|
|||
|
||||
private void GenerateAlternateBuildString()
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
var sb = new StringBuilder();
|
||||
sb.Append($"{MajorVersion}.{MinorVersion}.{Number}");
|
||||
|
||||
if (Revision.HasValue)
|
||||
|
@ -111,7 +114,8 @@ namespace BuildFeed.Model
|
|||
|
||||
if (BuildTime.HasValue)
|
||||
{
|
||||
sb.Append($".{BuildTime.Value.ToString("yyMMdd-HHmm", CultureInfo.InvariantCulture.DateTimeFormat)}");
|
||||
sb.Append(
|
||||
$".{BuildTime.Value.ToString("yyMMdd-HHmm", CultureInfo.InvariantCulture.DateTimeFormat)}");
|
||||
}
|
||||
|
||||
sb.Append(")");
|
||||
|
|
|
@ -10,6 +10,7 @@ namespace BuildFeed.Model
|
|||
public class BuildDetails
|
||||
{
|
||||
[Required]
|
||||
[Range(1, int.MaxValue)]
|
||||
[Display(ResourceType = typeof(VariantTerms), Name = nameof(VariantTerms.Model_MajorVersion))]
|
||||
public uint MajorVersion { get; set; }
|
||||
|
||||
|
@ -18,6 +19,7 @@ namespace BuildFeed.Model
|
|||
public uint MinorVersion { get; set; }
|
||||
|
||||
[Required]
|
||||
[Range(1, int.MaxValue)]
|
||||
[Display(ResourceType = typeof(VariantTerms), Name = nameof(VariantTerms.Model_BuildNumber))]
|
||||
public uint Number { get; set; }
|
||||
|
||||
|
|
|
@ -34,8 +34,8 @@
|
|||
<Reference Include="AutoMapper, Version=6.1.1.0, Culture=neutral, PublicKeyToken=be96cd2c38ef1005, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\AutoMapper.6.1.1\lib\net45\AutoMapper.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="HtmlAgilityPack, Version=1.5.5.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\HtmlAgilityPack.1.5.5\lib\Net45\HtmlAgilityPack.dll</HintPath>
|
||||
<Reference Include="HtmlAgilityPack, Version=1.6.3.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\HtmlAgilityPack.1.6.3\lib\Net45\HtmlAgilityPack.dll</HintPath>
|
||||
</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>
|
||||
|
|
|
@ -29,7 +29,7 @@ namespace BuildFeed.Model
|
|||
|
||||
public BuildRepository()
|
||||
{
|
||||
MongoClientSettings settings = new MongoClientSettings
|
||||
var settings = new MongoClientSettings
|
||||
{
|
||||
Server = new MongoServerAddress(MongoConfig.Host, MongoConfig.Port)
|
||||
};
|
||||
|
@ -42,7 +42,7 @@ namespace BuildFeed.Model
|
|||
};
|
||||
}
|
||||
|
||||
MongoClient dbClient = new MongoClient(settings);
|
||||
var dbClient = new MongoClient(settings);
|
||||
|
||||
IMongoDatabase buildDatabase = dbClient.GetDatabase(MongoConfig.Database);
|
||||
_buildCollection = buildDatabase.GetCollection<Build>(BUILD_COLLECTION_NAME);
|
||||
|
@ -50,7 +50,7 @@ namespace BuildFeed.Model
|
|||
|
||||
public async Task SetupIndexes()
|
||||
{
|
||||
List<BsonDocument> indexes = await (await _buildCollection.Indexes.ListAsync()).ToListAsync();
|
||||
var indexes = await (await _buildCollection.Indexes.ListAsync()).ToListAsync();
|
||||
|
||||
if (indexes.All(i => i["name"] != "_idx_group"))
|
||||
{
|
||||
|
@ -95,7 +95,8 @@ namespace BuildFeed.Model
|
|||
|
||||
if (indexes.All(i => i["name"] != "_idx_bstr"))
|
||||
{
|
||||
await _buildCollection.Indexes.CreateOneAsync(Builders<Build>.IndexKeys.Ascending(b => b.FullBuildString),
|
||||
await _buildCollection.Indexes.CreateOneAsync(
|
||||
Builders<Build>.IndexKeys.Ascending(b => b.FullBuildString),
|
||||
new CreateIndexOptions
|
||||
{
|
||||
Name = "_idx_bstr"
|
||||
|
@ -104,7 +105,8 @@ namespace BuildFeed.Model
|
|||
|
||||
if (indexes.All(i => i["name"] != "_idx_alt_bstr"))
|
||||
{
|
||||
await _buildCollection.Indexes.CreateOneAsync(Builders<Build>.IndexKeys.Ascending(b => b.AlternateBuildString),
|
||||
await _buildCollection.Indexes.CreateOneAsync(
|
||||
Builders<Build>.IndexKeys.Ascending(b => b.AlternateBuildString),
|
||||
new CreateIndexOptions
|
||||
{
|
||||
Name = "_idx_alt_bstr"
|
||||
|
@ -134,15 +136,18 @@ namespace BuildFeed.Model
|
|||
public async Task<List<Build>> Select() => await _buildCollection.Find(new BsonDocument()).ToListAsync();
|
||||
|
||||
[DataObjectMethod(DataObjectMethodType.Select, false)]
|
||||
public async Task<Build> SelectById(Guid id) => await _buildCollection.Find(Builders<Build>.Filter.Eq(b => b.Id, id)).SingleOrDefaultAsync();
|
||||
public async Task<Build> SelectById(Guid id)
|
||||
=> await _buildCollection.Find(Builders<Build>.Filter.Eq(b => b.Id, id)).SingleOrDefaultAsync();
|
||||
|
||||
[DataObjectMethod(DataObjectMethodType.Select, false)]
|
||||
public async Task<Build> SelectByLegacyId(long id) => await _buildCollection.Find(Builders<Build>.Filter.Eq(b => b.LegacyId, id)).SingleOrDefaultAsync();
|
||||
public async Task<Build> SelectByLegacyId(long id) => await _buildCollection
|
||||
.Find(Builders<Build>.Filter.Eq(b => b.LegacyId, id))
|
||||
.SingleOrDefaultAsync();
|
||||
|
||||
[DataObjectMethod(DataObjectMethodType.Select, false)]
|
||||
public async Task<List<Build>> SelectBuildsByOrder(int limit = -1, int skip = 0)
|
||||
{
|
||||
IFindFluent<Build, Build> query = _buildCollection.Find(new BsonDocument()).Sort(sortByOrder).Skip(skip);
|
||||
var query = _buildCollection.Find(new BsonDocument()).Sort(sortByOrder).Skip(skip);
|
||||
|
||||
if (limit > 0)
|
||||
{
|
||||
|
@ -155,18 +160,33 @@ namespace BuildFeed.Model
|
|||
[DataObjectMethod(DataObjectMethodType.Select, false)]
|
||||
public async Task<Dictionary<ProjectFamily, FrontPage>> SelectFrontPage()
|
||||
{
|
||||
const int currentFamily = (int)ProjectFamily.Redstone;
|
||||
const int currentXbox = (int)ProjectFamily.Redstone2;
|
||||
const int currentLongTerm = (int)ProjectFamily.Redstone;
|
||||
const int currentFamily = (int)ProjectFamily.Redstone3;
|
||||
const int currentXbox = (int)ProjectFamily.Redstone3;
|
||||
|
||||
var families = new Dictionary<ProjectFamily, FrontPage>();
|
||||
|
||||
IAggregateFluent<BsonDocument> query = _buildCollection.Aggregate()
|
||||
var query = _buildCollection.Aggregate()
|
||||
.Match(new BsonDocument
|
||||
{
|
||||
{
|
||||
nameof(Build.Family), new BsonDocument
|
||||
"$or", new BsonArray
|
||||
{
|
||||
{"$gte", currentFamily}
|
||||
new BsonDocument
|
||||
{
|
||||
{
|
||||
nameof(Build.Family), new BsonDocument
|
||||
{
|
||||
{"$gte", currentFamily}
|
||||
}
|
||||
}
|
||||
},
|
||||
new BsonDocument
|
||||
{
|
||||
{
|
||||
nameof(Build.Family), currentLongTerm
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
@ -199,44 +219,67 @@ namespace BuildFeed.Model
|
|||
}
|
||||
});
|
||||
|
||||
List<BsonDocument> dbResults = await query.ToListAsync();
|
||||
var dbResults = await query.ToListAsync();
|
||||
|
||||
var results = (from g in dbResults
|
||||
select new
|
||||
{
|
||||
Key = new
|
||||
{
|
||||
Family = (ProjectFamily)g["_id"].AsBsonDocument[nameof(Build.Family)].AsInt32,
|
||||
LabUrl = g["_id"].AsBsonDocument[nameof(Build.LabUrl)].AsString,
|
||||
SourceType = (TypeOfSource)g["_id"].AsBsonDocument[nameof(Build.SourceType)].AsInt32
|
||||
},
|
||||
select new
|
||||
{
|
||||
Key = new
|
||||
{
|
||||
Family = (ProjectFamily)g["_id"].AsBsonDocument[nameof(Build.Family)].AsInt32,
|
||||
LabUrl = g["_id"].AsBsonDocument[nameof(Build.LabUrl)].AsString,
|
||||
SourceType = (TypeOfSource)g["_id"].AsBsonDocument[nameof(Build.SourceType)].AsInt32
|
||||
},
|
||||
|
||||
Items = from i in g["items"].AsBsonArray
|
||||
select new FrontPageBuild
|
||||
{
|
||||
Id = i[nameof(Build.Id)].AsGuid,
|
||||
MajorVersion = (uint)i[nameof(Build.MajorVersion)].AsInt32,
|
||||
MinorVersion = (uint)i[nameof(Build.MinorVersion)].AsInt32,
|
||||
Number = (uint)i[nameof(Build.Number)].AsInt32,
|
||||
Revision = (uint?)i[nameof(Build.Revision)].AsNullableInt32,
|
||||
Lab = i[nameof(Build.Lab)].AsString,
|
||||
BuildTime = i[nameof(Build.BuildTime)].ToNullableUniversalTime()
|
||||
}
|
||||
}).ToArray();
|
||||
Items = from i in g["items"].AsBsonArray
|
||||
select new FrontPageBuild
|
||||
{
|
||||
Id = i[nameof(Build.Id)].AsGuid,
|
||||
MajorVersion = (uint)i[nameof(Build.MajorVersion)].AsInt32,
|
||||
MinorVersion = (uint)i[nameof(Build.MinorVersion)].AsInt32,
|
||||
Number = (uint)i[nameof(Build.Number)].AsInt32,
|
||||
Revision = (uint?)i[nameof(Build.Revision)].AsNullableInt32,
|
||||
Lab = i[nameof(Build.Lab)].AsString,
|
||||
BuildTime = i[nameof(Build.BuildTime)].ToNullableUniversalTime()
|
||||
}
|
||||
}).ToArray();
|
||||
|
||||
IEnumerable<ProjectFamily> listOfFamilies = results.GroupBy(g => g.Key.Family).Select(g => g.Key).OrderByDescending(k => k);
|
||||
IEnumerable<ProjectFamily> listOfFamilies =
|
||||
results.GroupBy(g => g.Key.Family).Select(g => g.Key).OrderByDescending(k => k);
|
||||
|
||||
foreach (ProjectFamily family in listOfFamilies)
|
||||
{
|
||||
FrontPage fp = new FrontPage
|
||||
var fp = new FrontPage
|
||||
{
|
||||
CurrentCanary = results.Where(g => g.Key.Family == family && !g.Key.LabUrl.Contains("xbox")).SelectMany(g => g.Items).OrderByDescending(b => b.BuildTime).FirstOrDefault(),
|
||||
CurrentInsider = results.Where(g => g.Key.Family == family && !g.Key.LabUrl.Contains("xbox") && (g.Key.SourceType == TypeOfSource.PublicRelease || g.Key.SourceType == TypeOfSource.UpdateGDR)).SelectMany(g => g.Items)
|
||||
.OrderByDescending(b => b.BuildTime).FirstOrDefault(),
|
||||
CurrentCanary = results.Where(g => g.Key.Family == family && !g.Key.LabUrl.Contains("xbox"))
|
||||
.SelectMany(g => g.Items)
|
||||
.OrderByDescending(b => b.BuildTime)
|
||||
.FirstOrDefault(),
|
||||
CurrentInsider = results
|
||||
.Where(g => g.Key.Family == family &&
|
||||
!g.Key.LabUrl.Contains("xbox") &&
|
||||
(g.Key.SourceType == TypeOfSource.PublicRelease ||
|
||||
g.Key.SourceType == TypeOfSource.UpdateGDR))
|
||||
.SelectMany(g => g.Items)
|
||||
.OrderByDescending(b => b.BuildTime)
|
||||
.FirstOrDefault(),
|
||||
CurrentRelease = results
|
||||
.Where(g => g.Key.Family == family && g.Key.LabUrl.Contains("_release") && !g.Key.LabUrl.Contains("xbox") && (g.Key.SourceType == TypeOfSource.PublicRelease || g.Key.SourceType == TypeOfSource.UpdateGDR))
|
||||
.SelectMany(g => g.Items).OrderByDescending(b => b.BuildTime).FirstOrDefault(),
|
||||
CurrentXbox = results.Where(g => (int)g.Key.Family >= currentXbox && g.Key.Family == family && g.Key.LabUrl.Contains("xbox")).SelectMany(g => g.Items).OrderByDescending(b => b.BuildTime).FirstOrDefault()
|
||||
.Where(g => g.Key.Family == family &&
|
||||
g.Key.LabUrl.Contains("_release") &&
|
||||
!g.Key.LabUrl.Contains("xbox") &&
|
||||
(g.Key.SourceType == TypeOfSource.PublicRelease ||
|
||||
g.Key.SourceType == TypeOfSource.UpdateGDR))
|
||||
.SelectMany(g => g.Items)
|
||||
.OrderByDescending(b => b.BuildTime)
|
||||
.FirstOrDefault(),
|
||||
CurrentXbox =
|
||||
results.Where(g
|
||||
=> (int)g.Key.Family >= currentXbox &&
|
||||
g.Key.Family == family &&
|
||||
g.Key.LabUrl.Contains("xbox"))
|
||||
.SelectMany(g => g.Items)
|
||||
.OrderByDescending(b => b.BuildTime)
|
||||
.FirstOrDefault()
|
||||
};
|
||||
|
||||
families.Add(family, fp);
|
||||
|
@ -248,7 +291,10 @@ namespace BuildFeed.Model
|
|||
[DataObjectMethod(DataObjectMethodType.Select, false)]
|
||||
public async Task<List<Build>> SelectBuildsByStringSearch(string term, int limit = -1)
|
||||
{
|
||||
IAggregateFluent<Build> query = _buildCollection.Aggregate().Match(b => b.FullBuildString != null).Match(b => b.FullBuildString != "").Match(b => b.FullBuildString.ToLower().Contains(term.ToLower()));
|
||||
var query = _buildCollection.Aggregate()
|
||||
.Match(b => b.FullBuildString != null)
|
||||
.Match(b => b.FullBuildString != "")
|
||||
.Match(b => b.FullBuildString.ToLower().Contains(term.ToLower()));
|
||||
|
||||
if (limit > 0)
|
||||
{
|
||||
|
@ -261,13 +307,14 @@ namespace BuildFeed.Model
|
|||
[DataObjectMethod(DataObjectMethodType.Select, false)]
|
||||
public async Task<Build> SelectBuildByFullBuildString(string build)
|
||||
{
|
||||
return await _buildCollection.Find(Builders<Build>.Filter.Eq(b => b.FullBuildString, build)).SingleOrDefaultAsync();
|
||||
return await _buildCollection.Find(Builders<Build>.Filter.Eq(b => b.FullBuildString, build))
|
||||
.SingleOrDefaultAsync();
|
||||
}
|
||||
|
||||
[DataObjectMethod(DataObjectMethodType.Select, false)]
|
||||
public async Task<List<Build>> SelectBuildsByCompileDate(int limit = -1, int skip = 0)
|
||||
{
|
||||
IFindFluent<Build, Build> query = _buildCollection.Find(new BsonDocument()).Sort(sortByCompileDate).Skip(skip);
|
||||
var query = _buildCollection.Find(new BsonDocument()).Sort(sortByCompileDate).Skip(skip);
|
||||
|
||||
if (limit > 0)
|
||||
{
|
||||
|
@ -280,7 +327,7 @@ namespace BuildFeed.Model
|
|||
[DataObjectMethod(DataObjectMethodType.Select, false)]
|
||||
public async Task<List<Build>> SelectBuildsByAddedDate(int limit = -1, int skip = 0)
|
||||
{
|
||||
IFindFluent<Build, Build> query = _buildCollection.Find(new BsonDocument()).Sort(sortByAddedDate).Skip(skip);
|
||||
var query = _buildCollection.Find(new BsonDocument()).Sort(sortByAddedDate).Skip(skip);
|
||||
|
||||
if (limit > 0)
|
||||
{
|
||||
|
@ -293,7 +340,7 @@ namespace BuildFeed.Model
|
|||
[DataObjectMethod(DataObjectMethodType.Select, false)]
|
||||
public async Task<List<Build>> SelectBuildsByLeakedDate(int limit = -1, int skip = 0)
|
||||
{
|
||||
IFindFluent<Build, Build> query = _buildCollection.Find(new BsonDocument()).Sort(sortByLeakedDate).Skip(skip);
|
||||
var query = _buildCollection.Find(new BsonDocument()).Sort(sortByLeakedDate).Skip(skip);
|
||||
|
||||
if (limit > 0)
|
||||
{
|
||||
|
@ -340,7 +387,7 @@ namespace BuildFeed.Model
|
|||
|
||||
public async Task RegenerateCachedProperties()
|
||||
{
|
||||
List<Build> builds = await Select();
|
||||
var builds = await Select();
|
||||
foreach (Build bd in builds)
|
||||
{
|
||||
bd.RegenerateCachedProperties();
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="AutoMapper" version="6.1.1" targetFramework="net47" />
|
||||
<package id="HtmlAgilityPack" version="1.5.5" targetFramework="net47" />
|
||||
<package id="HtmlAgilityPack" version="1.6.3" targetFramework="net47" />
|
||||
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net47" />
|
||||
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net47" />
|
||||
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net47" />
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\packages\Microsoft.Net.Compilers.2.3.2\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.2.3.2\build\Microsoft.Net.Compilers.props')" />
|
||||
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
|
||||
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
|
||||
<Import Project="..\packages\Microsoft.Net.Compilers.2.4.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.2.4.0\build\Microsoft.Net.Compilers.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
|
@ -29,7 +29,7 @@
|
|||
<UseGlobalApplicationHostFile />
|
||||
<TargetFrameworkProfile />
|
||||
<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
|
||||
<TypeScriptToolsVersion>2.5</TypeScriptToolsVersion>
|
||||
<TypeScriptToolsVersion>2.6</TypeScriptToolsVersion>
|
||||
<Use64BitIISExpress />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
|
@ -67,14 +67,14 @@
|
|||
<Reference Include="AutoMapper, Version=6.1.1.0, Culture=neutral, PublicKeyToken=be96cd2c38ef1005, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\AutoMapper.6.1.1\lib\net45\AutoMapper.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="HtmlAgilityPack, Version=1.5.5.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\HtmlAgilityPack.1.5.5\lib\Net45\HtmlAgilityPack.dll</HintPath>
|
||||
<Reference Include="HtmlAgilityPack, Version=1.6.3.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\HtmlAgilityPack.1.6.3\lib\Net45\HtmlAgilityPack.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Humanizer, Version=2.2.0.0, Culture=neutral, PublicKeyToken=979442b78dfc278e, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Humanizer.Core.2.2.0\lib\netstandard1.0\Humanizer.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll</HintPath>
|
||||
<Reference Include="Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.8.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
|
@ -266,7 +266,14 @@
|
|||
<Content Include="BingSiteAuth.xml" />
|
||||
<Content Include="browserconfig.xml" />
|
||||
<None Include="gulpfile.js" />
|
||||
<Content Include="content\tile\notify.png" />
|
||||
<None Include="res\css\inc\_christmas.scss" />
|
||||
<Content Include="res\css\winter.css">
|
||||
<DependentUpon>winter.scss</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="res\css\winter.css.map">
|
||||
<DependentUpon>winter.css</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="res\ico\notify.png" />
|
||||
<Content Include="OneSignalSDKUpdaterWorker.js" />
|
||||
<Content Include="OneSignalSDKWorker.js" />
|
||||
<Content Include="res\card\Longhorn.png" />
|
||||
|
@ -280,18 +287,15 @@
|
|||
<Content Include="res\card\Windows8.png" />
|
||||
<Content Include="res\card\WindowsBlue.png" />
|
||||
<Content Include="res\card\WindowsVista.png" />
|
||||
<Content Include="content\icons-2x.png" />
|
||||
<Content Include="content\icons.png" />
|
||||
<Content Include="content\tile\wide.png" />
|
||||
<Content Include="content\tile\large.png" />
|
||||
<Content Include="content\tile\square.png" />
|
||||
<Content Include="content\tile\tiny.png" />
|
||||
<Content Include="res\ico\wide.png" />
|
||||
<Content Include="res\ico\large.png" />
|
||||
<Content Include="res\ico\square.png" />
|
||||
<Content Include="res\ico\tiny.png" />
|
||||
<Content Include="favicon.ico" />
|
||||
<Content Include="Global.asax" />
|
||||
<Content Include="Areas\Admin\Views\web.config" />
|
||||
<Content Include="Areas\Admin\Views\Users\index.cshtml" />
|
||||
<Content Include="Areas\Admin\Views\_ViewStart.cshtml" />
|
||||
<Content Include="content\Web.config" />
|
||||
<Content Include="Areas\Admin\Views\Root\index.cshtml" />
|
||||
<Content Include="Areas\Admin\Views\Users\admins.cshtml" />
|
||||
<Content Include="Areas\Admin\Views\Meta\index.cshtml" />
|
||||
|
@ -327,6 +331,12 @@
|
|||
<Content Include="res\ts\bfs.js.map">
|
||||
<DependentUpon>bfs.js</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="res\ts\christmas.js">
|
||||
<DependentUpon>christmas.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="res\ts\christmas.js.map">
|
||||
<DependentUpon>christmas.js</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="robots.txt" />
|
||||
<Content Include="App_Code\PaginationHelpers.cshtml" />
|
||||
<Content Include="res\css\default.scss" />
|
||||
|
@ -339,8 +349,9 @@
|
|||
<Content Include="packages.config" />
|
||||
<None Include="Properties\PublishProfiles\Milestone 1 WebDeploy %28Private%29.pubxml" />
|
||||
<None Include="Properties\PublishProfiles\Milestone 1 WebDeploy.pubxml" />
|
||||
<Content Include="res\css\inc\variables.scss" />
|
||||
<Content Include="res\css\inc\nord.scss" />
|
||||
<Content Include="res\css\inc\_variables.scss" />
|
||||
<Content Include="res\css\inc\_nord.scss" />
|
||||
<Content Include="res\css\winter.scss" />
|
||||
<None Include="Scripts\jquery-3.2.1.intellisense.js" />
|
||||
<Content Include="Scripts\jquery-3.2.1.js" />
|
||||
<Content Include="Scripts\jquery-3.2.1.min.js" />
|
||||
|
@ -355,6 +366,7 @@
|
|||
<Content Include="Scripts\jquery.validate.unobtrusive.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\langs\ar.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\langs\bg.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\langs\by.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\langs\ca.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\langs\cs.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\langs\da.min.js" />
|
||||
|
@ -372,12 +384,14 @@
|
|||
<Content Include="Scripts\trumbowyg\langs\it.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\langs\ja.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\langs\ko.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\langs\mn.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\langs\my.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\langs\nl.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\langs\no_nb.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\langs\ph.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\langs\pl.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\langs\pt.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\langs\pt_br.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\langs\ro.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\langs\rs.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\langs\rs_latin.min.js" />
|
||||
|
@ -389,34 +403,21 @@
|
|||
<Content Include="Scripts\trumbowyg\langs\vi.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\langs\zh_cn.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\langs\zh_tw.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\base64\trumbowyg.base64.js" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\base64\trumbowyg.base64.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\cleanpaste\trumbowyg.cleanpaste.js" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\cleanpaste\trumbowyg.cleanpaste.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\colors\trumbowyg.colors.js" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\colors\trumbowyg.colors.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\colors\ui\trumbowyg.colors.css" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\colors\ui\trumbowyg.colors.min.css" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\emoji\trumbowyg.emoji.js" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\emoji\trumbowyg.emoji.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\insertaudio\trumbowyg.insertaudio.js" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\emoji\ui\trumbowyg.emoji.min.css" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\insertaudio\trumbowyg.insertaudio.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\noembed\trumbowyg.noembed.js" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\noembed\trumbowyg.noembed.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\pasteimage\trumbowyg.pasteimage.js" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\pasteimage\trumbowyg.pasteimage.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\preformatted\trumbowyg.preformatted.js" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\preformatted\trumbowyg.preformatted.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\table\trumbowyg.table.js" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\table\trumbowyg.table.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\template\trumbowyg.template.js" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\template\trumbowyg.template.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\upload\trumbowyg.upload.js" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\upload\trumbowyg.upload.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\trumbowyg.js" />
|
||||
<Content Include="Scripts\trumbowyg\trumbowyg.min.js" />
|
||||
<Content Include="Scripts\trumbowyg\ui\icons.svg" />
|
||||
<Content Include="Scripts\trumbowyg\ui\trumbowyg.css" />
|
||||
<Content Include="Scripts\trumbowyg\ui\trumbowyg.min.css" />
|
||||
<Content Include="yandex_702baad42b020be7.html" />
|
||||
<None Include="Properties\PublishProfiles\Local Folder.pubxml" />
|
||||
|
@ -462,8 +463,6 @@
|
|||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Views\front\AddBulk.cshtml" />
|
||||
<Content Include="Scripts\trumbowyg\plugins\colors\ui\sass\trumbowyg.colors.scss" />
|
||||
<Content Include="Scripts\trumbowyg\ui\sass\trumbowyg.scss" />
|
||||
<Content Include="Views\account\validate-success.cshtml" />
|
||||
<Content Include="Views\account\validate-failure.cshtml" />
|
||||
<None Include="tsconfig.json" />
|
||||
|
@ -471,6 +470,7 @@
|
|||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<TypeScriptCompile Include="res\ts\bfs.ts" />
|
||||
<TypeScriptCompile Include="res\ts\christmas.ts" />
|
||||
<TypeScriptCompile Include="Scripts\typings\google.analytics\ga.d.ts" />
|
||||
<TypeScriptCompile Include="Scripts\typings\jquery\jquery.d.ts" />
|
||||
<TypeScriptCompile Include="Scripts\typings\jsrender\jsrender.d.ts" />
|
||||
|
@ -540,11 +540,11 @@
|
|||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
|
||||
<Error Condition="!Exists('..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.2.3.2\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.2.3.2\build\Microsoft.Net.Compilers.props'))" />
|
||||
<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.2.4.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.2.4.0\build\Microsoft.Net.Compilers.props'))" />
|
||||
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
|
||||
<Error Condition="!Exists('..\packages\NETStandard.Library.2.0.1\build\netstandard2.0\NETStandard.Library.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NETStandard.Library.2.0.1\build\netstandard2.0\NETStandard.Library.targets'))" />
|
||||
</Target>
|
||||
<Import Project="..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets')" />
|
||||
<Import Project="..\packages\NETStandard.Library.2.0.1\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('..\packages\NETStandard.Library.2.0.1\build\netstandard2.0\NETStandard.Library.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">
|
||||
|
|
|
@ -11,23 +11,22 @@ namespace BuildFeed.Code.Options
|
|||
private const string THEME_COOKIE_NAME = "bf_theme";
|
||||
|
||||
public static Theme[] AvailableThemes = (from st in Enum.GetValues(typeof(SiteTheme)).Cast<SiteTheme>()
|
||||
select new Theme(st)).ToArray();
|
||||
select new Theme(st)).ToArray();
|
||||
|
||||
private readonly SiteTheme _siteTheme;
|
||||
|
||||
public string CookieValue => _siteTheme.ToString();
|
||||
public string CssPath => $"~/res/css/{_siteTheme.ToString().ToLower()}.css";
|
||||
public string DisplayName => MvcExtensions.GetDisplayTextForEnum(_siteTheme);
|
||||
public string CookieValue => Value.ToString();
|
||||
public string CssPath => $"~/res/css/{Value.ToString().ToLower()}.css";
|
||||
public string DisplayName => MvcExtensions.GetDisplayTextForEnum(Value);
|
||||
public SiteTheme Value { get; }
|
||||
|
||||
public Theme(SiteTheme st)
|
||||
{
|
||||
_siteTheme = st;
|
||||
Value = st;
|
||||
}
|
||||
|
||||
public static SiteTheme DetectTheme(HttpContextBase context)
|
||||
{
|
||||
string themeCookie = context.Request.Cookies[THEME_COOKIE_NAME]?.Value;
|
||||
SiteTheme theme = SiteTheme.Dark;
|
||||
var theme = SiteTheme.Dark;
|
||||
if (!string.IsNullOrEmpty(themeCookie))
|
||||
{
|
||||
Enum.TryParse(themeCookie, out theme);
|
||||
|
@ -43,6 +42,8 @@ namespace BuildFeed.Code.Options
|
|||
Dark = 0,
|
||||
|
||||
[Display(ResourceType = typeof(VariantTerms), Name = nameof(VariantTerms.Common_ThemeLight))]
|
||||
Light
|
||||
Light,
|
||||
|
||||
Winter
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
/* ===========================================================
|
||||
* by.js
|
||||
* Belarusian translation for Trumbowyg
|
||||
* http://alex-d.github.com/Trumbowyg
|
||||
* ===========================================================
|
||||
* Author : Yury Karalkou
|
||||
*/
|
||||
jQuery.trumbowyg.langs.by={viewHTML:"Паглядзець HTML",undo:"Скасаваць",redo:"Паўтарыць",formatting:"Фарматаванне",p:"Звычайны",blockquote:"Цытата",code:"Код",header:"Загаловак",bold:"Паўтлусты",italic:"Курсіў",strikethrough:"Закрэслены",underline:"Падкрэслены",strong:"Паўтлусты",em:"Курсіў",del:"Закрэслены",superscript:"Верхні індэкс",subscript:"Індэкс",unorderedList:"Звычайны спіс",orderedList:"Нумараваны спіс",insertImage:"Уставіць выяву",insertVideo:"Уставіць відэа",link:"Спасылка",createLink:"Уставіць спасылку",unlink:"Выдаліць спасылку",justifyLeft:"Па леваму боку",justifyCenter:"У цэнтры",justifyRight:"Па праваму боку",justifyFull:"Па шырыні",horizontalRule:"Гарызантальная лінія",removeformat:"Ачысціць фарматаванне",fullscreen:"На ўвесь экран",close:"Зачыніць",submit:"Уставіць",reset:"Скасаваць",required:"Абавязкова",description:"Апісанне",title:"Падказка",text:"Тэкст"};
|
|
@ -9,4 +9,4 @@
|
|||
* LinkedIn: https://gr.linkedin.com/in/merianosnikos
|
||||
* Behance: https://www.behance.net/web_design_blog
|
||||
*/
|
||||
jQuery.trumbowyg.langs.es={viewHTML:"Προβολή κώδικα HTML",formatting:"Μορφοποίηση",p:"Παράγραφος",blockquote:"Παράθεση",code:"Κώδικας",header:"Επικεφαλίδα",bold:"Έντονα",italic:"Πλάγια",strikethrough:"Διαγραφή",underline:"Υπογράμμιση",strong:"Έντονα",em:"Πλάγια",del:"Διαγραφή",unorderedList:"Αταξινόμητη λίστα",orderedList:"Ταξινομημένη λίστα",insertImage:"Εισαγωγή εικόνας",insertVideo:"Εισαγωγή βίντεο",link:"Σύνδεσμος",createLink:"Δημιουργία συνδέσμου",unlink:"Διαγραφή συνδέσμου",justifyLeft:"Στοίχιση αριστερά",justifyCenter:"Στοίχιση στο κέντρο",justifyRight:"Στοίχιση δεξιά",justifyFull:"Πλήρης στοίχιση",horizontalRule:"Οριζόντια γραμμή",fullscreen:"Πλήρης οθόνη",close:"Κλείσιμο",submit:"Υποβολή",reset:"Επαναφορά",required:"Απαραίτητο",description:"Περιγραφή",title:"Τίτλος",text:"Κείμενο"};
|
||||
jQuery.trumbowyg.langs.el={viewHTML:"Προβολή κώδικα HTML",formatting:"Μορφοποίηση",p:"Παράγραφος",blockquote:"Παράθεση",code:"Κώδικας",header:"Επικεφαλίδα",bold:"Έντονα",italic:"Πλάγια",strikethrough:"Διαγραφή",underline:"Υπογράμμιση",strong:"Έντονα",em:"Πλάγια",del:"Διαγραφή",unorderedList:"Αταξινόμητη λίστα",orderedList:"Ταξινομημένη λίστα",insertImage:"Εισαγωγή εικόνας",insertVideo:"Εισαγωγή βίντεο",link:"Σύνδεσμος",createLink:"Δημιουργία συνδέσμου",unlink:"Διαγραφή συνδέσμου",justifyLeft:"Στοίχιση αριστερά",justifyCenter:"Στοίχιση στο κέντρο",justifyRight:"Στοίχιση δεξιά",justifyFull:"Πλήρης στοίχιση",horizontalRule:"Οριζόντια γραμμή",removeformat:"Καθαρισμός μορφοποίησης",fullscreen:"Πλήρης οθόνη",close:"Κλείσιμο",submit:"Υποβολή",reset:"Επαναφορά",required:"Απαραίτητο",description:"Περιγραφή",title:"Τίτλος",text:"Κείμενο"};
|
|
@ -6,4 +6,4 @@
|
|||
* Author : Moisés Márquez
|
||||
* Email : moises.marquez.g@gmail.com
|
||||
*/
|
||||
jQuery.trumbowyg.langs.es={viewHTML:"Ver HTML",undo:"Desfazer",redo:"Refazer",formatting:"Formato",p:"Párrafo",blockquote:"Cita",code:"Código",header:"Título",bold:"Negrita",italic:"Cursiva",strikethrough:"Tachado",underline:"Subrayado",strong:"Negrita",em:"Énfasis",del:"Borrar",superscript:"Sobrescrito",subscript:"Subíndice",unorderedList:"Lista Desordenada",orderedList:"Lista Ordenada",insertImage:"Insertar una imagen",insertVideo:"Insertar un vídeo",link:"Enlace",createLink:"Insertar un enlace",unlink:"Suprimir un enlace",justifyLeft:"Izquierda",justifyCenter:"Centrar",justifyRight:"Derecha",justifyFull:"Justificado",horizontalRule:"Insertar separador horizontal",removeformat:"Eliminar formato",fullscreen:"Pantalla completa",close:"Cerrar",submit:"Enviar",reset:"Cancelar",required:"Obligatorio",description:"Descripción",title:"Título",text:"Texto",target:"Target"};
|
||||
jQuery.trumbowyg.langs.es={viewHTML:"Ver HTML",undo:"Deshacer",redo:"Rehacer",formatting:"Formato",p:"Párrafo",blockquote:"Cita",code:"Código",header:"Título",bold:"Negrita",italic:"Cursiva",strikethrough:"Tachado",underline:"Subrayado",strong:"Negrita",em:"Énfasis",del:"Borrar",superscript:"Sobrescrito",subscript:"Subíndice",unorderedList:"Lista Desordenada",orderedList:"Lista Ordenada",insertImage:"Insertar una imagen",insertVideo:"Insertar un vídeo",link:"Enlace",createLink:"Insertar un enlace",unlink:"Suprimir un enlace",justifyLeft:"Izquierda",justifyCenter:"Centrar",justifyRight:"Derecha",justifyFull:"Justificado",horizontalRule:"Insertar separador horizontal",removeformat:"Eliminar formato",fullscreen:"Pantalla completa",close:"Cerrar",submit:"Enviar",reset:"Cancelar",required:"Obligatorio",description:"Descripción",title:"Título",text:"Texto",target:"Target"};
|
|
@ -5,4 +5,4 @@
|
|||
* ===========================================================
|
||||
* Author : Mirko Buffoni
|
||||
*/
|
||||
jQuery.trumbowyg.langs.it={viewHTML:"Mostra HTML",formatting:"Formattazione",p:"Paragrafo",blockquote:"Citazione",code:"Codice",header:"Intestazione",bold:"Grassetto",italic:"Italico",strikethrough:"Barrato",underline:"Sottolineato",strong:"Rafforza",em:"Enfatizza",del:"Cancella",unorderedList:"Elenco puntato",orderedList:"Elenco numerato",insertImage:"Inserisci immagine",insertVideo:"Inserisci video",link:"Collegamento",createLink:"Crea un collegamento",unlink:"Elimina collegamento",justifyLeft:"Allinea a sinistra",justifyCenter:"Centra",justifyRight:"Allinea a destra",justifyFull:"Giustifica",horizontalRule:"Inserisci un separatore orizzontale",fullscreen:"Schermo intero",close:"Chiudi",submit:"Invia",reset:"Annulla",required:"Obbligatorio",description:"Descrizione",title:"Titolo",text:"Testo"};
|
||||
jQuery.trumbowyg.langs.it={viewHTML:"Mostra HTML",formatting:"Formattazione",p:"Paragrafo",blockquote:"Citazione",code:"Codice",header:"Intestazione",bold:"Grassetto",italic:"Italico",strikethrough:"Barrato",underline:"Sottolineato",strong:"Rafforza",em:"Enfatizza",del:"Cancella",unorderedList:"Elenco puntato",orderedList:"Elenco numerato",insertImage:"Inserisci immagine",insertVideo:"Inserisci video",link:"Collegamento",createLink:"Crea un collegamento",unlink:"Elimina collegamento",justifyLeft:"Allinea a sinistra",justifyCenter:"Centra",justifyRight:"Allinea a destra",justifyFull:"Giustifica",horizontalRule:"Inserisci un separatore orizzontale",fullscreen:"Schermo intero",close:"Chiudi",submit:"Invia",reset:"Annulla",required:"Obbligatorio",description:"Descrizione",title:"Titolo",text:"Testo",removeformat:"Rimuovi Formattazione",superscript:"Apice",subscript:"Pedice"};
|
|
@ -7,4 +7,4 @@
|
|||
* Twitter : @foo9
|
||||
* Website : https://github.com/foo9
|
||||
*/
|
||||
jQuery.trumbowyg.langs.ja={viewHTML:"HTML表示",formatting:"フォーマット",p:"段落",blockquote:"引用",code:"コード",header:"見出し",bold:"太字",italic:"斜体",strikethrough:"取り消し線",underline:"下線",strong:"太字",em:"斜体",del:"取り消し線",unorderedList:"順序なしリスト",orderedList:"順序ありリスト",insertImage:"画像の挿入",insertVideo:"動画の挿入",link:"リンク",createLink:"リンクの作成",unlink:"リンクの削除",justifyLeft:"左揃え",justifyCenter:"中央揃え",justifyRight:"右揃え",justifyFull:"両端揃え",horizontalRule:"横罫線",fullscreen:"全画面表示",close:"閉じる",submit:"送信",reset:"キャンセル",required:"必須",description:"説明",title:"タイトル",text:"テキスト"};
|
||||
jQuery.trumbowyg.langs.ja={viewHTML:"HTML表示",undo:"元に戻す",redo:"やり直す",formatting:"フォーマット",p:"段落",blockquote:"引用",code:"コード",header:"見出し",bold:"太字",italic:"斜体",strikethrough:"取り消し線",underline:"下線",strong:"太字",em:"斜体",del:"取り消し線",superscript:"上付き文字",subscript:"下付き文字",unorderedList:"順序なしリスト",orderedList:"順序ありリスト",insertImage:"画像の挿入",link:"リンク",createLink:"リンクの作成",unlink:"リンクの削除",justifyLeft:"左揃え",justifyCenter:"中央揃え",justifyRight:"右揃え",justifyFull:"両端揃え",horizontalRule:"横罫線",removeformat:"フォーマットの削除",fullscreen:"全画面表示",close:"閉じる",submit:"送信",reset:"キャンセル",required:"必須",description:"説明",title:"タイトル",text:"テキスト",target:"ターゲット"};
|
|
@ -0,0 +1,8 @@
|
|||
/* ===========================================================
|
||||
* mn.js
|
||||
* Mongolian translation for Trumbowyg
|
||||
* http://alex-d.github.com/Trumbowyg
|
||||
* ===========================================================
|
||||
* Author : Ganbayar.B (ganbayar13)
|
||||
*/
|
||||
jQuery.trumbowyg.langs.mn={viewHTML:"HTML харах",undo:"Буцаах",redo:"Дахих",formatting:"Формат",p:"Догол мөр",blockquote:"Ишлэл",code:"Код",header:"Гарчиг",bold:"Тод",italic:"Налуу",strikethrough:"Дундуур зураас",underline:"Доогуур зураас",strong:"Тод",em:"Налуу",del:"Дундуур зураас",superscript:"Дээд индекс",subscript:"Доод индекс",unorderedList:"Дугаарлаагүй жагсаалт",orderedList:"Дугаарласан жагсаалт",insertImage:"Зураг оруулах",insertVideo:"Видео оруулах",link:"Холбоос",createLink:"Холбоос үүсгэх",unlink:"Холбоос цуцлах",justifyLeft:"Зүүн тийш шахах",justifyCenter:"Голлуулах",justifyRight:"Баруун Баруун тийш шахах",justifyFull:"Тэгшитгэх",horizontalRule:"Хөндлөн шугам",removeformat:"Формат арилгах",fullscreen:"Дэлгэц дүүргэх",close:"Хаах",submit:"Оруулах",reset:"Цуцлах",required:"Шаардлагатай",description:"Тайлбар",title:"Гарчиг",text:"Текст",target:"Бай"};
|
|
@ -0,0 +1,11 @@
|
|||
/* ===========================================================
|
||||
* pt_br.js
|
||||
* Portuguese Brazilian translation for Trumbowyg
|
||||
* http://alex-d.github.com/Trumbowyg
|
||||
* ===========================================================
|
||||
* Author : Alex Gotardi (alexgotardi)
|
||||
* Twitter : @alexgotardi
|
||||
* Github : https://github.com/alexgotardi
|
||||
*/
|
||||
// jshint camelcase:false
|
||||
jQuery.trumbowyg.langs.pt_br={viewHTML:"Ver HTML",undo:"Desfazer",redo:"Refazer",formatting:"Formatar",p:"Parágrafo",blockquote:"Citação",code:"Código",header:"Título",bold:"Negrito",italic:"Itálico",strikethrough:"Tachado",underline:"Sublinhado",strong:"Negrito",em:"Ênfase",del:"Apagar",superscript:"Sobrescrito",subscript:"Subscrito",unorderedList:"Lista não ordenada",orderedList:"Lista ordenada",insertImage:"Inserir imagem",insertVideo:"Inserir vídeo",link:"Link",createLink:"Criar um link",unlink:"Remover link",justifyLeft:"Alinhar a esquerda",justifyCenter:"Centralizar",justifyRight:"Alinhar a direita",justifyFull:"Justificar",horizontalRule:"Inserir separador horizontal",removeformat:"Remover formatação",fullscreen:"Tela cheia",close:"Fechar",submit:"Enviar",reset:"Limpar",required:"Obrigatório",description:"Descrição",title:"Título",text:"Texto",target:"Target"};
|
|
@ -9,4 +9,4 @@
|
|||
* Website : creative-studio51.co.uk
|
||||
* Github : https://github.com/pacMakaveli
|
||||
*/
|
||||
jQuery.trumbowyg.langs.pt={viewHTML:"Vizualizare HTML",formatting:"Format",p:"Paragraf",blockquote:"Citație",code:"Cod",header:"Titlu",bold:"Bold",italic:"Italic",strikethrough:"Tăiat",underline:"Subliniat",strong:"Puternic",em:"Accentuat",del:"Sterge",unorderedList:"Lista dezordonată",orderedList:"Liste ordonată",insertImage:"Adăugare Imagine",insertVideo:"Adăugare Video",link:"Link",createLink:"Crează link",unlink:"Remover link",justifyLeft:"Aliniază stânga",justifyCenter:"Aliniază centru",justifyRight:"Aliniază dreapta",justifyFull:"Justificare",horizontalRule:"Linie orizontală",fullscreen:"Tot ecranul",close:"Închide",submit:"Procesează",reset:"Resetează",required:"Obligatoriu",description:"Descriere",title:"Titlu",text:"Text"};
|
||||
jQuery.trumbowyg.langs.ro={viewHTML:"Vizualizare HTML",formatting:"Format",p:"Paragraf",blockquote:"Citație",code:"Cod",header:"Titlu",bold:"Bold",italic:"Italic",strikethrough:"Tăiat",underline:"Subliniat",strong:"Puternic",em:"Accentuat",del:"Sterge",unorderedList:"Lista dezordonată",orderedList:"Liste ordonată",insertImage:"Adăugare Imagine",insertVideo:"Adăugare Video",link:"Link",createLink:"Crează link",unlink:"Remover link",justifyLeft:"Aliniază stânga",justifyCenter:"Aliniază centru",justifyRight:"Aliniază dreapta",justifyFull:"Justificare",horizontalRule:"Linie orizontală",fullscreen:"Tot ecranul",close:"Închide",submit:"Procesează",reset:"Resetează",required:"Obligatoriu",description:"Descriere",title:"Titlu",text:"Text"};
|
|
@ -1,109 +0,0 @@
|
|||
/* ===========================================================
|
||||
* trumbowyg.base64.js v1.0
|
||||
* Base64 plugin for Trumbowyg
|
||||
* http://alex-d.github.com/Trumbowyg
|
||||
* ===========================================================
|
||||
* Author : Cyril Biencourt (lizardK)
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
'use strict';
|
||||
|
||||
var isSupported = function () {
|
||||
return typeof FileReader !== 'undefined';
|
||||
};
|
||||
|
||||
var isValidImage = function (type) {
|
||||
return /^data:image\/[a-z]?/i.test(type);
|
||||
};
|
||||
|
||||
$.extend(true, $.trumbowyg, {
|
||||
langs: {
|
||||
// jshint camelcase:false
|
||||
en: {
|
||||
base64: 'Image as base64',
|
||||
file: 'File',
|
||||
errFileReaderNotSupported: 'FileReader is not supported by your browser.',
|
||||
errInvalidImage: 'Invalid image file.'
|
||||
},
|
||||
fr: {
|
||||
base64: 'Image en base64',
|
||||
file: 'Fichier'
|
||||
},
|
||||
cs: {
|
||||
base64: 'Vložit obrázek',
|
||||
file: 'Soubor'
|
||||
},
|
||||
zh_cn: {
|
||||
base64: '图片(Base64编码)',
|
||||
file: '文件'
|
||||
},
|
||||
nl: {
|
||||
errFileReaderNotSupported: 'Uw browser ondersteunt deze functionaliteit niet.',
|
||||
errInvalidImage: 'De gekozen afbeelding is ongeldig.'
|
||||
}
|
||||
},
|
||||
// jshint camelcase:true
|
||||
|
||||
plugins: {
|
||||
base64: {
|
||||
shouldInit: isSupported,
|
||||
init: function (trumbowyg) {
|
||||
var btnDef = {
|
||||
isSupported: isSupported,
|
||||
fn: function () {
|
||||
trumbowyg.saveRange();
|
||||
|
||||
var file;
|
||||
var $modal = trumbowyg.openModalInsert(
|
||||
// Title
|
||||
trumbowyg.lang.base64,
|
||||
|
||||
// Fields
|
||||
{
|
||||
file: {
|
||||
type: 'file',
|
||||
required: true,
|
||||
attributes: {
|
||||
accept: 'image/*'
|
||||
}
|
||||
},
|
||||
alt: {
|
||||
label: 'description',
|
||||
value: trumbowyg.getRangeText()
|
||||
}
|
||||
},
|
||||
|
||||
// Callback
|
||||
function (values) {
|
||||
var fReader = new FileReader();
|
||||
|
||||
fReader.onloadend = function (e) {
|
||||
if (isValidImage(e.target.result)) {
|
||||
trumbowyg.execCmd('insertImage', fReader.result);
|
||||
$(['img[src="', fReader.result, '"]:not([alt])'].join(''), trumbowyg.$box).attr('alt', values.alt);
|
||||
trumbowyg.closeModal();
|
||||
} else {
|
||||
trumbowyg.addErrorOnModalField(
|
||||
$('input[type=file]', $modal),
|
||||
trumbowyg.lang.errInvalidImage
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
fReader.readAsDataURL(file);
|
||||
}
|
||||
);
|
||||
|
||||
$('input[type=file]').on('change', function (e) {
|
||||
file = e.target.files[0];
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
trumbowyg.addBtnDef('base64', btnDef);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
})(jQuery);
|
|
@ -1 +1 @@
|
|||
!function(e){"use strict";var a=function(){return"undefined"!=typeof FileReader},t=function(e){return/^data:image\/[a-z]?/i.test(e)};e.extend(!0,e.trumbowyg,{langs:{en:{base64:"Image as base64",file:"File",errFileReaderNotSupported:"FileReader is not supported by your browser.",errInvalidImage:"Invalid image file."},fr:{base64:"Image en base64",file:"Fichier"},cs:{base64:"Vložit obrázek",file:"Soubor"},zh_cn:{base64:"图片(Base64编码)",file:"文件"},nl:{errFileReaderNotSupported:"Uw browser ondersteunt deze functionaliteit niet.",errInvalidImage:"De gekozen afbeelding is ongeldig."}},plugins:{base64:{shouldInit:a,init:function(n){var i={isSupported:a,fn:function(){n.saveRange();var a,i=n.openModalInsert(n.lang.base64,{file:{type:"file",required:!0,attributes:{accept:"image/*"}},alt:{label:"description",value:n.getRangeText()}},function(r){var l=new FileReader;l.onloadend=function(a){t(a.target.result)?(n.execCmd("insertImage",l.result),e(['img[src="',l.result,'"]:not([alt])'].join(""),n.$box).attr("alt",r.alt),n.closeModal()):n.addErrorOnModalField(e("input[type=file]",i),n.lang.errInvalidImage)},l.readAsDataURL(a)});e("input[type=file]").on("change",function(e){a=e.target.files[0]})}};n.addBtnDef("base64",i)}}}})}(jQuery);
|
||||
!function(e){"use strict";var a=function(){return"undefined"!=typeof FileReader},r=function(e){return/^data:image\/[a-z]?/i.test(e)};e.extend(!0,e.trumbowyg,{langs:{en:{base64:"Image as base64",file:"File",errFileReaderNotSupported:"FileReader is not supported by your browser.",errInvalidImage:"Invalid image file."},fr:{base64:"Image en base64",file:"Fichier"},cs:{base64:"Vložit obrázek",file:"Soubor"},zh_cn:{base64:"图片(Base64编码)",file:"文件"},nl:{errFileReaderNotSupported:"Uw browser ondersteunt deze functionaliteit niet.",errInvalidImage:"De gekozen afbeelding is ongeldig."},ru:{base64:"Изображение как код в base64",file:"Файл",errFileReaderNotSupported:"FileReader не поддерживается вашим браузером.",errInvalidImage:"Недопустимый файл изображения."},ja:{base64:"画像 (Base64形式)",file:"ファイル",errFileReaderNotSupported:"あなたのブラウザーはFileReaderをサポートしていません",errInvalidImage:"画像形式が正しくありません"}},plugins:{base64:{shouldInit:a,init:function(i){var t={isSupported:a,fn:function(){i.saveRange();var a,t=i.openModalInsert(i.lang.base64,{file:{type:"file",required:!0,attributes:{accept:"image/*"}},alt:{label:"description",value:i.getRangeText()}},function(n){var l=new FileReader;l.onloadend=function(a){r(a.target.result)?(i.execCmd("insertImage",l.result),e(['img[src="',l.result,'"]:not([alt])'].join(""),i.$box).attr("alt",n.alt),i.closeModal()):i.addErrorOnModalField(e("input[type=file]",t),i.lang.errInvalidImage)},l.readAsDataURL(a)});e("input[type=file]").on("change",function(e){a=e.target.files[0]})}};i.addBtnDef("base64",t)}}}})}(jQuery);
|
|
@ -1,179 +0,0 @@
|
|||
/* ===========================================================
|
||||
* trumbowyg.cleanpaste.js v1.0
|
||||
* Font Clean paste plugin for Trumbowyg
|
||||
* http://alex-d.github.com/Trumbowyg
|
||||
* ===========================================================
|
||||
* Author : Eric Radin
|
||||
*/
|
||||
|
||||
/**
|
||||
* This plugin will perform a "cleaning" on any paste, in particular
|
||||
* it will clean pasted content of microsoft word document tags and classes.
|
||||
*/
|
||||
(function ($) {
|
||||
'use strict';
|
||||
|
||||
function reverse(sentString) {
|
||||
var theString = '';
|
||||
for (var i = sentString.length - 1; i >= 0; i -= 1) {
|
||||
theString += sentString.charAt(i);
|
||||
}
|
||||
return theString;
|
||||
}
|
||||
|
||||
function checkValidTags(snippet) {
|
||||
var theString = snippet;
|
||||
|
||||
// Replace uppercase element names with lowercase
|
||||
theString = theString.replace(/<[^> ]*/g, function (match) {
|
||||
return match.toLowerCase();
|
||||
});
|
||||
|
||||
// Replace uppercase attribute names with lowercase
|
||||
theString = theString.replace(/<[^>]*>/g, function (match) {
|
||||
match = match.replace(/ [^=]+=/g, function (match2) {
|
||||
return match2.toLowerCase();
|
||||
});
|
||||
return match;
|
||||
});
|
||||
|
||||
// Put quotes around unquoted attributes
|
||||
theString = theString.replace(/<[^>]*>/g, function (match) {
|
||||
match = match.replace(/( [^=]+=)([^"][^ >]*)/g, '$1\"$2\"');
|
||||
return match;
|
||||
});
|
||||
|
||||
return theString;
|
||||
}
|
||||
|
||||
function cleanIt(htmlBefore, htmlAfter) {
|
||||
var matchedHead = '';
|
||||
var matchedTail = '';
|
||||
var afterStart;
|
||||
var afterFinish;
|
||||
var newSnippet;
|
||||
|
||||
// we need to extract the inserted block
|
||||
for (afterStart = 0; htmlAfter.charAt(afterStart) === htmlBefore.charAt(afterStart); afterStart += 1) {
|
||||
matchedHead += htmlAfter.charAt(afterStart);
|
||||
}
|
||||
|
||||
// If afterStart is inside a HTML tag, move to opening brace of tag
|
||||
for (var i = afterStart; i >= 0; i -= 1) {
|
||||
if (htmlBefore.charAt(i) === '<') {
|
||||
afterStart = i;
|
||||
matchedHead = htmlBefore.substring(0, afterStart);
|
||||
break;
|
||||
} else if (htmlBefore.charAt(i) === '>') {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// now reverse string and work from the end in
|
||||
htmlAfter = reverse(htmlAfter);
|
||||
htmlBefore = reverse(htmlBefore);
|
||||
|
||||
// Find end of both strings that matches
|
||||
for (afterFinish = 0; htmlAfter.charAt(afterFinish) === htmlBefore.charAt(afterFinish); afterFinish += 1) {
|
||||
matchedTail += htmlAfter.charAt(afterFinish);
|
||||
}
|
||||
|
||||
// If afterFinish is inside a HTML tag, move to closing brace of tag
|
||||
for (var j = afterFinish; j >= 0; j -= 1) {
|
||||
if (htmlBefore.charAt(j) === '>') {
|
||||
afterFinish = j;
|
||||
matchedTail = htmlBefore.substring(0, afterFinish);
|
||||
break;
|
||||
} else if (htmlBefore.charAt(j) === '<') {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
matchedTail = reverse(matchedTail);
|
||||
|
||||
// If there's no difference in pasted content
|
||||
if (afterStart === (htmlAfter.length - afterFinish)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
htmlAfter = reverse(htmlAfter);
|
||||
newSnippet = htmlAfter.substring(afterStart, htmlAfter.length - afterFinish);
|
||||
|
||||
// first make sure all tags and attributes are made valid
|
||||
newSnippet = checkValidTags(newSnippet);
|
||||
|
||||
// Replace opening bold tags with strong
|
||||
newSnippet = newSnippet.replace(/<b(\s+|>)/g, '<strong$1');
|
||||
// Replace closing bold tags with closing strong
|
||||
newSnippet = newSnippet.replace(/<\/b(\s+|>)/g, '</strong$1');
|
||||
|
||||
// Replace italic tags with em
|
||||
newSnippet = newSnippet.replace(/<i(\s+|>)/g, '<em$1');
|
||||
// Replace closing italic tags with closing em
|
||||
newSnippet = newSnippet.replace(/<\/i(\s+|>)/g, '</em$1');
|
||||
|
||||
// strip out comments -cgCraft
|
||||
newSnippet = newSnippet.replace(/<!(?:--[\s\S]*?--\s*)?>\s*/g, '');
|
||||
|
||||
// strip out -cgCraft
|
||||
newSnippet = newSnippet.replace(/ /gi, ' ');
|
||||
// strip out extra spaces -cgCraft
|
||||
newSnippet = newSnippet.replace(/ <\//gi, '</');
|
||||
|
||||
while (newSnippet.indexOf(' ') !== -1) {
|
||||
var anArray = newSnippet.split(' ');
|
||||
newSnippet = anArray.join(' ');
|
||||
}
|
||||
|
||||
// strip -cgCraft
|
||||
newSnippet = newSnippet.replace(/^\s*|\s*$/g, '');
|
||||
|
||||
// Strip out unaccepted attributes
|
||||
newSnippet = newSnippet.replace(/<[^>]*>/g, function (match) {
|
||||
match = match.replace(/ ([^=]+)="[^"]*"/g, function (match2, attributeName) {
|
||||
if (['alt', 'href', 'src', 'title'].indexOf(attributeName) !== -1) {
|
||||
return match2;
|
||||
}
|
||||
return '';
|
||||
});
|
||||
return match;
|
||||
});
|
||||
|
||||
// Final cleanout for MS Word crud
|
||||
newSnippet = newSnippet.replace(/<\?xml[^>]*>/g, '');
|
||||
newSnippet = newSnippet.replace(/<[^ >]+:[^>]*>/g, '');
|
||||
newSnippet = newSnippet.replace(/<\/[^ >]+:[^>]*>/g, '');
|
||||
|
||||
// remove unwanted tags
|
||||
newSnippet = newSnippet.replace(/<(div|span|style|meta|link){1}.*?>/gi, '');
|
||||
|
||||
htmlAfter = matchedHead + newSnippet + matchedTail;
|
||||
return htmlAfter;
|
||||
}
|
||||
|
||||
// clean editor
|
||||
// this will clean the inserted contents
|
||||
// it does a compare, before and after paste to determine the
|
||||
// pasted contents
|
||||
$.extend(true, $.trumbowyg, {
|
||||
plugins: {
|
||||
cleanPaste: {
|
||||
init: function (trumbowyg) {
|
||||
trumbowyg.pasteHandlers.push(function () {
|
||||
try {
|
||||
var contentBefore = trumbowyg.$ed.html();
|
||||
setTimeout(function () {
|
||||
var contentAfter = trumbowyg.$ed.html();
|
||||
contentAfter = cleanIt(contentBefore, contentAfter);
|
||||
trumbowyg.$ed.html(contentAfter);
|
||||
}, 0);
|
||||
} catch (c) {
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
})(jQuery);
|
||||
|
||||
|
|
@ -1,168 +0,0 @@
|
|||
/* ===========================================================
|
||||
* trumbowyg.colors.js v1.2
|
||||
* Colors picker plugin for Trumbowyg
|
||||
* http://alex-d.github.com/Trumbowyg
|
||||
* ===========================================================
|
||||
* Author : Alexandre Demode (Alex-D)
|
||||
* Twitter : @AlexandreDemode
|
||||
* Website : alex-d.fr
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
'use strict';
|
||||
|
||||
$.extend(true, $.trumbowyg, {
|
||||
langs: {
|
||||
// jshint camelcase:false
|
||||
cs: {
|
||||
foreColor: 'Barva textu',
|
||||
backColor: 'Barva pozadí'
|
||||
},
|
||||
en: {
|
||||
foreColor: 'Text color',
|
||||
backColor: 'Background color'
|
||||
},
|
||||
fr: {
|
||||
foreColor: 'Couleur du texte',
|
||||
backColor: 'Couleur de fond'
|
||||
},
|
||||
sk: {
|
||||
foreColor: 'Farba textu',
|
||||
backColor: 'Farba pozadia'
|
||||
},
|
||||
zh_cn: {
|
||||
foreColor: '文字颜色',
|
||||
backColor: '背景颜色'
|
||||
}
|
||||
}
|
||||
});
|
||||
// jshint camelcase:true
|
||||
|
||||
|
||||
function hex(x) {
|
||||
return ('0' + parseInt(x).toString(16)).slice(-2);
|
||||
}
|
||||
|
||||
function colorToHex(rgb) {
|
||||
if (rgb.search('rgb') === -1) {
|
||||
return rgb.replace('#', '');
|
||||
} else if (rgb === 'rgba(0, 0, 0, 0)') {
|
||||
return 'transparent';
|
||||
} else {
|
||||
rgb = rgb.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+))?\)$/);
|
||||
return hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);
|
||||
}
|
||||
}
|
||||
|
||||
function colorTagHandler(element, trumbowyg) {
|
||||
var tags = [];
|
||||
|
||||
if(!element.style){
|
||||
return tags;
|
||||
}
|
||||
|
||||
// background color
|
||||
if (element.style.backgroundColor !== '') {
|
||||
var backColor = colorToHex(element.style.backgroundColor);
|
||||
if (trumbowyg.o.plugins.colors.colorList.indexOf(backColor) >= 0) {
|
||||
tags.push('backColor' + backColor);
|
||||
} else {
|
||||
tags.push('backColorFree');
|
||||
}
|
||||
}
|
||||
|
||||
// text color
|
||||
var foreColor;
|
||||
if (element.style.color !== '') {
|
||||
foreColor = colorToHex(element.style.color);
|
||||
} else if (element.hasAttribute('color')) {
|
||||
foreColor = colorToHex(element.getAttribute('color'));
|
||||
}
|
||||
if (foreColor) {
|
||||
if (trumbowyg.o.plugins.colors.colorList.indexOf(foreColor) >= 0) {
|
||||
tags.push('foreColor' + foreColor);
|
||||
} else {
|
||||
tags.push('foreColorFree');
|
||||
}
|
||||
}
|
||||
|
||||
return tags;
|
||||
}
|
||||
|
||||
var defaultOptions = {
|
||||
colorList: ['ffffff', '000000', 'eeece1', '1f497d', '4f81bd', 'c0504d', '9bbb59', '8064a2', '4bacc6', 'f79646', 'ffff00', 'f2f2f2', '7f7f7f', 'ddd9c3', 'c6d9f0', 'dbe5f1', 'f2dcdb', 'ebf1dd', 'e5e0ec', 'dbeef3', 'fdeada', 'fff2ca', 'd8d8d8', '595959', 'c4bd97', '8db3e2', 'b8cce4', 'e5b9b7', 'd7e3bc', 'ccc1d9', 'b7dde8', 'fbd5b5', 'ffe694', 'bfbfbf', '3f3f3f', '938953', '548dd4', '95b3d7', 'd99694', 'c3d69b', 'b2a2c7', 'b7dde8', 'fac08f', 'f2c314', 'a5a5a5', '262626', '494429', '17365d', '366092', '953734', '76923c', '5f497a', '92cddc', 'e36c09', 'c09100', '7f7f7f', '0c0c0c', '1d1b10', '0f243e', '244061', '632423', '4f6128', '3f3151', '31859b', '974806', '7f6000']
|
||||
};
|
||||
|
||||
// Add all colors in two dropdowns
|
||||
$.extend(true, $.trumbowyg, {
|
||||
plugins: {
|
||||
color: {
|
||||
init: function (trumbowyg) {
|
||||
trumbowyg.o.plugins.colors = trumbowyg.o.plugins.colors || defaultOptions;
|
||||
var foreColorBtnDef = {
|
||||
dropdown: buildDropdown('foreColor', trumbowyg)
|
||||
},
|
||||
backColorBtnDef = {
|
||||
dropdown: buildDropdown('backColor', trumbowyg)
|
||||
};
|
||||
|
||||
trumbowyg.addBtnDef('foreColor', foreColorBtnDef);
|
||||
trumbowyg.addBtnDef('backColor', backColorBtnDef);
|
||||
},
|
||||
tagHandler: colorTagHandler
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
function buildDropdown(fn, trumbowyg) {
|
||||
var dropdown = [];
|
||||
|
||||
$.each(trumbowyg.o.plugins.colors.colorList, function (i, color) {
|
||||
var btn = fn + color,
|
||||
btnDef = {
|
||||
fn: fn,
|
||||
forceCss: true,
|
||||
param: '#' + color,
|
||||
style: 'background-color: #' + color + ';'
|
||||
};
|
||||
trumbowyg.addBtnDef(btn, btnDef);
|
||||
dropdown.push(btn);
|
||||
});
|
||||
|
||||
var removeColorButtonName = fn + 'Remove',
|
||||
removeColorBtnDef = {
|
||||
fn: 'removeFormat',
|
||||
param: fn,
|
||||
style: 'background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAG0lEQVQIW2NkQAAfEJMRmwBYhoGBYQtMBYoAADziAp0jtJTgAAAAAElFTkSuQmCC);'
|
||||
};
|
||||
trumbowyg.addBtnDef(removeColorButtonName, removeColorBtnDef);
|
||||
dropdown.push(removeColorButtonName);
|
||||
|
||||
// add free color btn
|
||||
var freeColorButtonName = fn + 'Free',
|
||||
freeColorBtnDef = {
|
||||
fn: function () {
|
||||
trumbowyg.openModalInsert(trumbowyg.lang[fn],
|
||||
{
|
||||
color: {
|
||||
label: fn,
|
||||
value: '#FFFFFF'
|
||||
}
|
||||
},
|
||||
// callback
|
||||
function (values) {
|
||||
trumbowyg.execCmd(fn, values.color);
|
||||
return true;
|
||||
}
|
||||
);
|
||||
},
|
||||
text: '#',
|
||||
// style adjust for displaying the text
|
||||
style: 'text-indent: 0;line-height: 20px;padding: 0 5px;'
|
||||
};
|
||||
trumbowyg.addBtnDef(freeColorButtonName, freeColorBtnDef);
|
||||
dropdown.push(freeColorButtonName);
|
||||
|
||||
return dropdown;
|
||||
}
|
||||
})(jQuery);
|
|
@ -1 +1 @@
|
|||
!function(o){"use strict";function r(o){return("0"+parseInt(o).toString(16)).slice(-2)}function e(o){return-1===o.search("rgb")?o.replace("#",""):"rgba(0, 0, 0, 0)"===o?"transparent":(o=o.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+))?\)$/),r(o[1])+r(o[2])+r(o[3]))}function f(o,r){var f=[];if(!o.style)return f;if(""!==o.style.backgroundColor){var c=e(o.style.backgroundColor);r.o.plugins.colors.colorList.indexOf(c)>=0?f.push("backColor"+c):f.push("backColorFree")}var a;return""!==o.style.color?a=e(o.style.color):o.hasAttribute("color")&&(a=e(o.getAttribute("color"))),a&&(r.o.plugins.colors.colorList.indexOf(a)>=0?f.push("foreColor"+a):f.push("foreColorFree")),f}function c(r,e){var f=[];o.each(e.o.plugins.colors.colorList,function(o,c){var a=r+c,d={fn:r,forceCss:!0,param:"#"+c,style:"background-color: #"+c+";"};e.addBtnDef(a,d),f.push(a)});var c=r+"Remove",a={fn:"removeFormat",param:r,style:"background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAG0lEQVQIW2NkQAAfEJMRmwBYhoGBYQtMBYoAADziAp0jtJTgAAAAAElFTkSuQmCC);"};e.addBtnDef(c,a),f.push(c);var d=r+"Free",t={fn:function(){e.openModalInsert(e.lang[r],{color:{label:r,value:"#FFFFFF"}},function(o){return e.execCmd(r,o.color),!0})},text:"#",style:"text-indent: 0;line-height: 20px;padding: 0 5px;"};return e.addBtnDef(d,t),f.push(d),f}o.extend(!0,o.trumbowyg,{langs:{cs:{foreColor:"Barva textu",backColor:"Barva pozadí"},en:{foreColor:"Text color",backColor:"Background color"},fr:{foreColor:"Couleur du texte",backColor:"Couleur de fond"},sk:{foreColor:"Farba textu",backColor:"Farba pozadia"},zh_cn:{foreColor:"文字颜色",backColor:"背景颜色"}}});var a={colorList:["ffffff","000000","eeece1","1f497d","4f81bd","c0504d","9bbb59","8064a2","4bacc6","f79646","ffff00","f2f2f2","7f7f7f","ddd9c3","c6d9f0","dbe5f1","f2dcdb","ebf1dd","e5e0ec","dbeef3","fdeada","fff2ca","d8d8d8","595959","c4bd97","8db3e2","b8cce4","e5b9b7","d7e3bc","ccc1d9","b7dde8","fbd5b5","ffe694","bfbfbf","3f3f3f","938953","548dd4","95b3d7","d99694","c3d69b","b2a2c7","b7dde8","fac08f","f2c314","a5a5a5","262626","494429","17365d","366092","953734","76923c","5f497a","92cddc","e36c09","c09100","7f7f7f","0c0c0c","1d1b10","0f243e","244061","632423","4f6128","3f3151","31859b","974806","7f6000"]};o.extend(!0,o.trumbowyg,{plugins:{color:{init:function(o){o.o.plugins.colors=o.o.plugins.colors||a;var r={dropdown:c("foreColor",o)},e={dropdown:c("backColor",o)};o.addBtnDef("foreColor",r),o.addBtnDef("backColor",e)},tagHandler:f}}})}(jQuery);
|
||||
!function(o){"use strict";function r(o){return("0"+parseInt(o).toString(16)).slice(-2)}function e(o){return-1===o.search("rgb")?o.replace("#",""):"rgba(0, 0, 0, 0)"===o?"transparent":(o=o.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+))?\)$/),r(o[1])+r(o[2])+r(o[3]))}function f(o,r){var f=[];if(!o.style)return f;if(""!==o.style.backgroundColor){var c=e(o.style.backgroundColor);r.o.plugins.colors.colorList.indexOf(c)>=0?f.push("backColor"+c):f.push("backColorFree")}var a;return""!==o.style.color?a=e(o.style.color):o.hasAttribute("color")&&(a=e(o.getAttribute("color"))),a&&(r.o.plugins.colors.colorList.indexOf(a)>=0?f.push("foreColor"+a):f.push("foreColorFree")),f}function c(r,e){var f=[];o.each(e.o.plugins.colors.colorList,function(o,c){var a=r+c,d={fn:r,forceCss:!0,param:"#"+c,style:"background-color: #"+c+";"};e.addBtnDef(a,d),f.push(a)});var c=r+"Remove",a={fn:"removeFormat",param:r,style:"background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAG0lEQVQIW2NkQAAfEJMRmwBYhoGBYQtMBYoAADziAp0jtJTgAAAAAElFTkSuQmCC);"};e.addBtnDef(c,a),f.push(c);var d=r+"Free",l={fn:function(){e.openModalInsert(e.lang[r],{color:{label:r,value:"#FFFFFF"}},function(o){return e.execCmd(r,o.color),!0})},text:"#",style:"text-indent: 0;line-height: 20px;padding: 0 5px;"};return e.addBtnDef(d,l),f.push(d),f}o.extend(!0,o.trumbowyg,{langs:{cs:{foreColor:"Barva textu",backColor:"Barva pozadí"},en:{foreColor:"Text color",backColor:"Background color"},fr:{foreColor:"Couleur du texte",backColor:"Couleur de fond"},sk:{foreColor:"Farba textu",backColor:"Farba pozadia"},zh_cn:{foreColor:"文字颜色",backColor:"背景颜色"},ru:{foreColor:"Цвет текста",backColor:"Цвет выделения текста"},ja:{foreColor:"文字色",backColor:"背景色"}}});var a={colorList:["ffffff","000000","eeece1","1f497d","4f81bd","c0504d","9bbb59","8064a2","4bacc6","f79646","ffff00","f2f2f2","7f7f7f","ddd9c3","c6d9f0","dbe5f1","f2dcdb","ebf1dd","e5e0ec","dbeef3","fdeada","fff2ca","d8d8d8","595959","c4bd97","8db3e2","b8cce4","e5b9b7","d7e3bc","ccc1d9","b7dde8","fbd5b5","ffe694","bfbfbf","3f3f3f","938953","548dd4","95b3d7","d99694","c3d69b","b2a2c7","b7dde8","fac08f","f2c314","a5a5a5","262626","494429","17365d","366092","953734","76923c","5f497a","92cddc","e36c09","c09100","7f7f7f","0c0c0c","1d1b10","0f243e","244061","632423","4f6128","3f3151","31859b","974806","7f6000"]};o.extend(!0,o.trumbowyg,{plugins:{color:{init:function(o){o.o.plugins.colors=o.o.plugins.colors||a;var r={dropdown:c("foreColor",o)},e={dropdown:c("backColor",o)};o.addBtnDef("foreColor",r),o.addBtnDef("backColor",e)},tagHandler:f}}})}(jQuery);
|
|
@ -1,49 +0,0 @@
|
|||
/**
|
||||
* Trumbowyg v2.5.0 - A lightweight WYSIWYG editor
|
||||
* Colors plugin stylesheet for Trumbowyg editor
|
||||
* ------------------------
|
||||
* @link http://alex-d.github.io/Trumbowyg
|
||||
* @license MIT
|
||||
* @author Alexandre Demode (Alex-D)
|
||||
* Twitter : @AlexandreDemode
|
||||
* Website : alex-d.fr
|
||||
*/
|
||||
|
||||
.trumbowyg-dropdown-foreColor,
|
||||
.trumbowyg-dropdown-backColor {
|
||||
width: 276px;
|
||||
padding: 7px 5px;
|
||||
|
||||
svg {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
button {
|
||||
display: block;
|
||||
position: relative;
|
||||
float: left;
|
||||
text-indent: -9999px;
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
border: 1px solid #333;
|
||||
padding: 0;
|
||||
margin: 2px;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
&::after {
|
||||
content: " ";
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: -5px;
|
||||
left: -5px;
|
||||
height: 27px;
|
||||
width: 27px;
|
||||
background: inherit;
|
||||
border: 1px solid #FFF;
|
||||
box-shadow: #000 0 0 2px;
|
||||
z-index: 10;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,43 +0,0 @@
|
|||
/**
|
||||
* Trumbowyg v2.5.0 - A lightweight WYSIWYG editor
|
||||
* Colors plugin stylesheet for Trumbowyg editor
|
||||
* ------------------------
|
||||
* @link http://alex-d.github.io/Trumbowyg
|
||||
* @license MIT
|
||||
* @author Alexandre Demode (Alex-D)
|
||||
* Twitter : @AlexandreDemode
|
||||
* Website : alex-d.fr
|
||||
*/
|
||||
|
||||
.trumbowyg-dropdown-foreColor,
|
||||
.trumbowyg-dropdown-backColor {
|
||||
width: 276px;
|
||||
padding: 7px 5px; }
|
||||
.trumbowyg-dropdown-foreColor svg,
|
||||
.trumbowyg-dropdown-backColor svg {
|
||||
display: none !important; }
|
||||
.trumbowyg-dropdown-foreColor button,
|
||||
.trumbowyg-dropdown-backColor button {
|
||||
display: block;
|
||||
position: relative;
|
||||
float: left;
|
||||
text-indent: -9999px;
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
border: 1px solid #333;
|
||||
padding: 0;
|
||||
margin: 2px; }
|
||||
.trumbowyg-dropdown-foreColor button:hover::after, .trumbowyg-dropdown-foreColor button:focus::after,
|
||||
.trumbowyg-dropdown-backColor button:hover::after,
|
||||
.trumbowyg-dropdown-backColor button:focus::after {
|
||||
content: " ";
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: -5px;
|
||||
left: -5px;
|
||||
height: 27px;
|
||||
width: 27px;
|
||||
background: inherit;
|
||||
border: 1px solid #FFF;
|
||||
box-shadow: #000 0 0 2px;
|
||||
z-index: 10; }
|
|
@ -1,2 +1,2 @@
|
|||
/** Trumbowyg v2.5.0 - A lightweight WYSIWYG editor - alex-d.github.io/Trumbowyg - License MIT - Author : Alexandre Demode (Alex-D) / alex-d.fr */
|
||||
/** Trumbowyg v2.8.1 - A lightweight WYSIWYG editor - alex-d.github.io/Trumbowyg - License MIT - Author : Alexandre Demode (Alex-D) / alex-d.fr */
|
||||
.trumbowyg-dropdown-backColor,.trumbowyg-dropdown-foreColor{width:276px;padding:7px 5px}.trumbowyg-dropdown-backColor svg,.trumbowyg-dropdown-foreColor svg{display:none!important}.trumbowyg-dropdown-backColor button,.trumbowyg-dropdown-foreColor button{display:block;position:relative;float:left;text-indent:-9999px;height:20px;width:20px;border:1px solid #333;padding:0;margin:2px}.trumbowyg-dropdown-backColor button:focus::after,.trumbowyg-dropdown-backColor button:hover::after,.trumbowyg-dropdown-foreColor button:focus::after,.trumbowyg-dropdown-foreColor button:hover::after{content:" ";display:block;position:absolute;top:-5px;left:-5px;height:27px;width:27px;background:inherit;border:1px solid #FFF;box-shadow:#000 0 0 2px;z-index:10}
|
|
@ -1,938 +0,0 @@
|
|||
/* ===========================================================
|
||||
* trumbowyg.emoji.js v0.1
|
||||
* Emoji picker plugin for Trumbowyg
|
||||
* http://alex-d.github.com/Trumbowyg
|
||||
* ===========================================================
|
||||
* Author : Nicolas Pion
|
||||
* Twitter : @nicolas_pion
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
'use strict';
|
||||
|
||||
var defaultOptions = {
|
||||
emojiList: [
|
||||
':bowtie:',
|
||||
':smile:',
|
||||
':laughing:',
|
||||
':blush:',
|
||||
':smiley:',
|
||||
':relaxed:',
|
||||
':smirk:',
|
||||
':heart_eyes:',
|
||||
':kissing_heart:',
|
||||
':kissing_closed_eyes:',
|
||||
':flushed:',
|
||||
':relieved:',
|
||||
':satisfied:',
|
||||
':grin:',
|
||||
':wink:',
|
||||
':stuck_out_tongue_winking_eye:',
|
||||
':stuck_out_tongue_closed_eyes:',
|
||||
':grinning:',
|
||||
':kissing:',
|
||||
':kissing_smiling_eyes:',
|
||||
':stuck_out_tongue:',
|
||||
':sleeping:',
|
||||
':worried:',
|
||||
':frowning:',
|
||||
':anguished:',
|
||||
':open_mouth:',
|
||||
':grimacing:',
|
||||
':confused:',
|
||||
':hushed:',
|
||||
':expressionless:',
|
||||
':unamused:',
|
||||
':sweat_smile:',
|
||||
':sweat:',
|
||||
':disappointed_relieved:',
|
||||
':weary:',
|
||||
':pensive:',
|
||||
':disappointed:',
|
||||
':confounded:',
|
||||
':fearful:',
|
||||
':cold_sweat:',
|
||||
':persevere:',
|
||||
':cry:',
|
||||
':sob:',
|
||||
':joy:',
|
||||
':astonished:',
|
||||
':scream:',
|
||||
':neckbeard:',
|
||||
':tired_face:',
|
||||
':angry:',
|
||||
':rage:',
|
||||
':triumph:',
|
||||
':sleepy:',
|
||||
':yum:',
|
||||
':mask:',
|
||||
':sunglasses:',
|
||||
':dizzy_face:',
|
||||
':imp:',
|
||||
':smiling_imp:',
|
||||
':neutral_face:',
|
||||
':no_mouth:',
|
||||
':innocent:',
|
||||
':alien:',
|
||||
':yellow_heart:',
|
||||
':blue_heart:',
|
||||
':purple_heart:',
|
||||
':heart:',
|
||||
':green_heart:',
|
||||
':broken_heart:',
|
||||
':heartbeat:',
|
||||
':heartpulse:',
|
||||
':two_hearts:',
|
||||
':revolving_hearts:',
|
||||
':cupid:',
|
||||
':sparkling_heart:',
|
||||
':sparkles:',
|
||||
':star:',
|
||||
':star2:',
|
||||
':dizzy:',
|
||||
':boom:',
|
||||
':collision:',
|
||||
':anger:',
|
||||
':exclamation:',
|
||||
':question:',
|
||||
':grey_exclamation:',
|
||||
':grey_question:',
|
||||
':zzz:',
|
||||
':dash:',
|
||||
':sweat_drops:',
|
||||
':notes:',
|
||||
':musical_note:',
|
||||
':fire:',
|
||||
':hankey:',
|
||||
':poop:',
|
||||
':shit:',
|
||||
':+1:',
|
||||
':thumbsup:',
|
||||
':-1:',
|
||||
':thumbsdown:',
|
||||
':ok_hand:',
|
||||
':punch:',
|
||||
':facepunch:',
|
||||
':fist:',
|
||||
':v:',
|
||||
':wave:',
|
||||
':hand:',
|
||||
':raised_hand:',
|
||||
':open_hands:',
|
||||
':point_up:',
|
||||
':point_down:',
|
||||
':point_left:',
|
||||
':point_right:',
|
||||
':raised_hands:',
|
||||
':pray:',
|
||||
':point_up_2:',
|
||||
':clap:',
|
||||
':muscle:',
|
||||
':metal:',
|
||||
':fu:',
|
||||
':runner:',
|
||||
':running:',
|
||||
':couple:',
|
||||
':family:',
|
||||
':two_men_holding_hands:',
|
||||
':two_women_holding_hands:',
|
||||
':dancer:',
|
||||
':dancers:',
|
||||
':ok_woman:',
|
||||
':no_good:',
|
||||
':information_desk_person:',
|
||||
':raising_hand:',
|
||||
':bride_with_veil:',
|
||||
':person_with_pouting_face:',
|
||||
':person_frowning:',
|
||||
':bow:',
|
||||
':couplekiss:',
|
||||
':couple_with_heart:',
|
||||
':massage:',
|
||||
':haircut:',
|
||||
':nail_care:',
|
||||
':boy:',
|
||||
':girl:',
|
||||
':woman:',
|
||||
':man:',
|
||||
':baby:',
|
||||
':older_woman:',
|
||||
':older_man:',
|
||||
':person_with_blond_hair:',
|
||||
':man_with_gua_pi_mao:',
|
||||
':man_with_turban:',
|
||||
':construction_worker:',
|
||||
':cop:',
|
||||
':angel:',
|
||||
':princess:',
|
||||
':smiley_cat:',
|
||||
':smile_cat:',
|
||||
':heart_eyes_cat:',
|
||||
':kissing_cat:',
|
||||
':smirk_cat:',
|
||||
':scream_cat:',
|
||||
':crying_cat_face:',
|
||||
':joy_cat:',
|
||||
':pouting_cat:',
|
||||
':japanese_ogre:',
|
||||
':japanese_goblin:',
|
||||
':see_no_evil:',
|
||||
':hear_no_evil:',
|
||||
':speak_no_evil:',
|
||||
':guardsman:',
|
||||
':skull:',
|
||||
':feet:',
|
||||
':lips:',
|
||||
':kiss:',
|
||||
':droplet:',
|
||||
':ear:',
|
||||
':eyes:',
|
||||
':nose:',
|
||||
':tongue:',
|
||||
':love_letter:',
|
||||
':bust_in_silhouette:',
|
||||
':busts_in_silhouette:',
|
||||
':speech_balloon:',
|
||||
':thought_balloon:',
|
||||
':feelsgood:',
|
||||
':finnadie:',
|
||||
':goberserk:',
|
||||
':godmode:',
|
||||
':hurtrealbad:',
|
||||
':rage1:',
|
||||
':rage2:',
|
||||
':rage3:',
|
||||
':rage4:',
|
||||
':suspect:',
|
||||
':trollface:',
|
||||
':sunny:',
|
||||
':umbrella:',
|
||||
':cloud:',
|
||||
':snowflake:',
|
||||
':snowman:',
|
||||
':zap:',
|
||||
':cyclone:',
|
||||
':foggy:',
|
||||
':ocean:',
|
||||
':cat:',
|
||||
':dog:',
|
||||
':mouse:',
|
||||
':hamster:',
|
||||
':rabbit:',
|
||||
':wolf:',
|
||||
':frog:',
|
||||
':tiger:',
|
||||
':koala:',
|
||||
':bear:',
|
||||
':pig:',
|
||||
':pig_nose:',
|
||||
':cow:',
|
||||
':boar:',
|
||||
':monkey_face:',
|
||||
':monkey:',
|
||||
':horse:',
|
||||
':racehorse:',
|
||||
':camel:',
|
||||
':sheep:',
|
||||
':elephant:',
|
||||
':panda_face:',
|
||||
':snake:',
|
||||
':bird:',
|
||||
':baby_chick:',
|
||||
':hatched_chick:',
|
||||
':hatching_chick:',
|
||||
':chicken:',
|
||||
':penguin:',
|
||||
':turtle:',
|
||||
':bug:',
|
||||
':honeybee:',
|
||||
':ant:',
|
||||
':beetle:',
|
||||
':snail:',
|
||||
':octopus:',
|
||||
':tropical_fish:',
|
||||
':fish:',
|
||||
':whale:',
|
||||
':whale2:',
|
||||
':dolphin:',
|
||||
':cow2:',
|
||||
':ram:',
|
||||
':rat:',
|
||||
':water_buffalo:',
|
||||
':tiger2:',
|
||||
':rabbit2:',
|
||||
':dragon:',
|
||||
':goat:',
|
||||
':rooster:',
|
||||
':dog2:',
|
||||
':pig2:',
|
||||
':mouse2:',
|
||||
':ox:',
|
||||
':dragon_face:',
|
||||
':blowfish:',
|
||||
':crocodile:',
|
||||
':dromedary_camel:',
|
||||
':leopard:',
|
||||
':cat2:',
|
||||
':poodle:',
|
||||
':paw_prints:',
|
||||
':bouquet:',
|
||||
':cherry_blossom:',
|
||||
':tulip:',
|
||||
':four_leaf_clover:',
|
||||
':rose:',
|
||||
':sunflower:',
|
||||
':hibiscus:',
|
||||
':maple_leaf:',
|
||||
':leaves:',
|
||||
':fallen_leaf:',
|
||||
':herb:',
|
||||
':mushroom:',
|
||||
':cactus:',
|
||||
':palm_tree:',
|
||||
':evergreen_tree:',
|
||||
':deciduous_tree:',
|
||||
':chestnut:',
|
||||
':seedling:',
|
||||
':blossom:',
|
||||
':ear_of_rice:',
|
||||
':shell:',
|
||||
':globe_with_meridians:',
|
||||
':sun_with_face:',
|
||||
':full_moon_with_face:',
|
||||
':new_moon_with_face:',
|
||||
':new_moon:',
|
||||
':waxing_crescent_moon:',
|
||||
':first_quarter_moon:',
|
||||
':waxing_gibbous_moon:',
|
||||
':full_moon:',
|
||||
':waning_gibbous_moon:',
|
||||
':last_quarter_moon:',
|
||||
':waning_crescent_moon:',
|
||||
':last_quarter_moon_with_face:',
|
||||
':first_quarter_moon_with_face:',
|
||||
':crescent_moon:',
|
||||
':earth_africa:',
|
||||
':earth_americas:',
|
||||
':earth_asia:',
|
||||
':volcano:',
|
||||
':milky_way:',
|
||||
':partly_sunny:',
|
||||
':octocat:',
|
||||
':squirrel:',
|
||||
':bamboo:',
|
||||
':gift_heart:',
|
||||
':dolls:',
|
||||
':school_satchel:',
|
||||
':mortar_board:',
|
||||
':flags:',
|
||||
':fireworks:',
|
||||
':sparkler:',
|
||||
':wind_chime:',
|
||||
':rice_scene:',
|
||||
':jack_o_lantern:',
|
||||
':ghost:',
|
||||
':santa:',
|
||||
':christmas_tree:',
|
||||
':gift:',
|
||||
':bell:',
|
||||
':no_bell:',
|
||||
':tanabata_tree:',
|
||||
':tada:',
|
||||
':confetti_ball:',
|
||||
':balloon:',
|
||||
':crystal_ball:',
|
||||
':cd:',
|
||||
':dvd:',
|
||||
':floppy_disk:',
|
||||
':camera:',
|
||||
':video_camera:',
|
||||
':movie_camera:',
|
||||
':computer:',
|
||||
':tv:',
|
||||
':iphone:',
|
||||
':phone:',
|
||||
':telephone:',
|
||||
':telephone_receiver:',
|
||||
':pager:',
|
||||
':fax:',
|
||||
':minidisc:',
|
||||
':vhs:',
|
||||
':sound:',
|
||||
':speaker:',
|
||||
':mute:',
|
||||
':loudspeaker:',
|
||||
':mega:',
|
||||
':hourglass:',
|
||||
':hourglass_flowing_sand:',
|
||||
':alarm_clock:',
|
||||
':watch:',
|
||||
':radio:',
|
||||
':satellite:',
|
||||
':loop:',
|
||||
':mag:',
|
||||
':mag_right:',
|
||||
':unlock:',
|
||||
':lock:',
|
||||
':lock_with_ink_pen:',
|
||||
':closed_lock_with_key:',
|
||||
':key:',
|
||||
':bulb:',
|
||||
':flashlight:',
|
||||
':high_brightness:',
|
||||
':low_brightness:',
|
||||
':electric_plug:',
|
||||
':battery:',
|
||||
':calling:',
|
||||
':email:',
|
||||
':mailbox:',
|
||||
':postbox:',
|
||||
':bath:',
|
||||
':bathtub:',
|
||||
':shower:',
|
||||
':toilet:',
|
||||
':wrench:',
|
||||
':nut_and_bolt:',
|
||||
':hammer:',
|
||||
':seat:',
|
||||
':moneybag:',
|
||||
':yen:',
|
||||
':dollar:',
|
||||
':pound:',
|
||||
':euro:',
|
||||
':credit_card:',
|
||||
':money_with_wings:',
|
||||
':e-mail:',
|
||||
':inbox_tray:',
|
||||
':outbox_tray:',
|
||||
':envelope:',
|
||||
':incoming_envelope:',
|
||||
':postal_horn:',
|
||||
':mailbox_closed:',
|
||||
':mailbox_with_mail:',
|
||||
':mailbox_with_no_mail:',
|
||||
':package:',
|
||||
':door:',
|
||||
':smoking:',
|
||||
':bomb:',
|
||||
':gun:',
|
||||
':hocho:',
|
||||
':pill:',
|
||||
':syringe:',
|
||||
':page_facing_up:',
|
||||
':page_with_curl:',
|
||||
':bookmark_tabs:',
|
||||
':bar_chart:',
|
||||
':chart_with_upwards_trend:',
|
||||
':chart_with_downwards_trend:',
|
||||
':scroll:',
|
||||
':clipboard:',
|
||||
':calendar:',
|
||||
':date:',
|
||||
':card_index:',
|
||||
':file_folder:',
|
||||
':open_file_folder:',
|
||||
':scissors:',
|
||||
':pushpin:',
|
||||
':paperclip:',
|
||||
':black_nib:',
|
||||
':pencil2:',
|
||||
':straight_ruler:',
|
||||
':triangular_ruler:',
|
||||
':closed_book:',
|
||||
':green_book:',
|
||||
':blue_book:',
|
||||
':orange_book:',
|
||||
':notebook:',
|
||||
':notebook_with_decorative_cover:',
|
||||
':ledger:',
|
||||
':books:',
|
||||
':bookmark:',
|
||||
':name_badge:',
|
||||
':microscope:',
|
||||
':telescope:',
|
||||
':newspaper:',
|
||||
':football:',
|
||||
':basketball:',
|
||||
':soccer:',
|
||||
':baseball:',
|
||||
':tennis:',
|
||||
':8ball:',
|
||||
':rugby_football:',
|
||||
':bowling:',
|
||||
':golf:',
|
||||
':mountain_bicyclist:',
|
||||
':bicyclist:',
|
||||
':horse_racing:',
|
||||
':snowboarder:',
|
||||
':swimmer:',
|
||||
':surfer:',
|
||||
':ski:',
|
||||
':spades:',
|
||||
':hearts:',
|
||||
':clubs:',
|
||||
':diamonds:',
|
||||
':gem:',
|
||||
':ring:',
|
||||
':trophy:',
|
||||
':musical_score:',
|
||||
':musical_keyboard:',
|
||||
':violin:',
|
||||
':space_invader:',
|
||||
':video_game:',
|
||||
':black_joker:',
|
||||
':flower_playing_cards:',
|
||||
':game_die:',
|
||||
':dart:',
|
||||
':mahjong:',
|
||||
':clapper:',
|
||||
':memo:',
|
||||
':pencil:',
|
||||
':book:',
|
||||
':art:',
|
||||
':microphone:',
|
||||
':headphones:',
|
||||
':trumpet:',
|
||||
':saxophone:',
|
||||
':guitar:',
|
||||
':shoe:',
|
||||
':sandal:',
|
||||
':high_heel:',
|
||||
':lipstick:',
|
||||
':boot:',
|
||||
':shirt:',
|
||||
':tshirt:',
|
||||
':necktie:',
|
||||
':womans_clothes:',
|
||||
':dress:',
|
||||
':running_shirt_with_sash:',
|
||||
':jeans:',
|
||||
':kimono:',
|
||||
':bikini:',
|
||||
':ribbon:',
|
||||
':tophat:',
|
||||
':crown:',
|
||||
':womans_hat:',
|
||||
':mans_shoe:',
|
||||
':closed_umbrella:',
|
||||
':briefcase:',
|
||||
':handbag:',
|
||||
':pouch:',
|
||||
':purse:',
|
||||
':eyeglasses:',
|
||||
':fishing_pole_and_fish:',
|
||||
':coffee:',
|
||||
':tea:',
|
||||
':sake:',
|
||||
':baby_bottle:',
|
||||
':beer:',
|
||||
':beers:',
|
||||
':cocktail:',
|
||||
':tropical_drink:',
|
||||
':wine_glass:',
|
||||
':fork_and_knife:',
|
||||
':pizza:',
|
||||
':hamburger:',
|
||||
':fries:',
|
||||
':poultry_leg:',
|
||||
':meat_on_bone:',
|
||||
':spaghetti:',
|
||||
':curry:',
|
||||
':fried_shrimp:',
|
||||
':bento:',
|
||||
':sushi:',
|
||||
':fish_cake:',
|
||||
':rice_ball:',
|
||||
':rice_cracker:',
|
||||
':rice:',
|
||||
':ramen:',
|
||||
':stew:',
|
||||
':oden:',
|
||||
':dango:',
|
||||
':egg:',
|
||||
':bread:',
|
||||
':doughnut:',
|
||||
':custard:',
|
||||
':icecream:',
|
||||
':ice_cream:',
|
||||
':shaved_ice:',
|
||||
':birthday:',
|
||||
':cake:',
|
||||
':cookie:',
|
||||
':chocolate_bar:',
|
||||
':candy:',
|
||||
':lollipop:',
|
||||
':honey_pot:',
|
||||
':apple:',
|
||||
':green_apple:',
|
||||
':tangerine:',
|
||||
':lemon:',
|
||||
':cherries:',
|
||||
':grapes:',
|
||||
':watermelon:',
|
||||
':strawberry:',
|
||||
':peach:',
|
||||
':melon:',
|
||||
':banana:',
|
||||
':pear:',
|
||||
':pineapple:',
|
||||
':sweet_potato:',
|
||||
':eggplant:',
|
||||
':tomato:',
|
||||
':corn:',
|
||||
':house:',
|
||||
':house_with_garden:',
|
||||
':school:',
|
||||
':office:',
|
||||
':post_office:',
|
||||
':hospital:',
|
||||
':bank:',
|
||||
':convenience_store:',
|
||||
':love_hotel:',
|
||||
':hotel:',
|
||||
':wedding:',
|
||||
':church:',
|
||||
':department_store:',
|
||||
':european_post_office:',
|
||||
':city_sunrise:',
|
||||
':city_sunset:',
|
||||
':japanese_castle:',
|
||||
':european_castle:',
|
||||
':tent:',
|
||||
':factory:',
|
||||
':tokyo_tower:',
|
||||
':japan:',
|
||||
':mount_fuji:',
|
||||
':sunrise_over_mountains:',
|
||||
':sunrise:',
|
||||
':stars:',
|
||||
':statue_of_liberty:',
|
||||
':bridge_at_night:',
|
||||
':carousel_horse:',
|
||||
':rainbow:',
|
||||
':ferris_wheel:',
|
||||
':fountain:',
|
||||
':roller_coaster:',
|
||||
':ship:',
|
||||
':speedboat:',
|
||||
':boat:',
|
||||
':sailboat:',
|
||||
':rowboat:',
|
||||
':anchor:',
|
||||
':rocket:',
|
||||
':airplane:',
|
||||
':helicopter:',
|
||||
':steam_locomotive:',
|
||||
':tram:',
|
||||
':mountain_railway:',
|
||||
':bike:',
|
||||
':aerial_tramway:',
|
||||
':suspension_railway:',
|
||||
':mountain_cableway:',
|
||||
':tractor:',
|
||||
':blue_car:',
|
||||
':oncoming_automobile:',
|
||||
':car:',
|
||||
':red_car:',
|
||||
':taxi:',
|
||||
':oncoming_taxi:',
|
||||
':articulated_lorry:',
|
||||
':bus:',
|
||||
':oncoming_bus:',
|
||||
':rotating_light:',
|
||||
':police_car:',
|
||||
':oncoming_police_car:',
|
||||
':fire_engine:',
|
||||
':ambulance:',
|
||||
':minibus:',
|
||||
':truck:',
|
||||
':train:',
|
||||
':station:',
|
||||
':train2:',
|
||||
':bullettrain_front:',
|
||||
':bullettrain_side:',
|
||||
':light_rail:',
|
||||
':monorail:',
|
||||
':railway_car:',
|
||||
':trolleybus:',
|
||||
':ticket:',
|
||||
':fuelpump:',
|
||||
':vertical_traffic_light:',
|
||||
':traffic_light:',
|
||||
':warning:',
|
||||
':construction:',
|
||||
':beginner:',
|
||||
':atm:',
|
||||
':slot_machine:',
|
||||
':busstop:',
|
||||
':barber:',
|
||||
':hotsprings:',
|
||||
':checkered_flag:',
|
||||
':crossed_flags:',
|
||||
':izakaya_lantern:',
|
||||
':moyai:',
|
||||
':circus_tent:',
|
||||
':performing_arts:',
|
||||
':round_pushpin:',
|
||||
':triangular_flag_on_post:',
|
||||
':jp:',
|
||||
':kr:',
|
||||
':cn:',
|
||||
':us:',
|
||||
':fr:',
|
||||
':es:',
|
||||
':it:',
|
||||
':ru:',
|
||||
':gb:',
|
||||
':uk:',
|
||||
':de:',
|
||||
':one:',
|
||||
':two:',
|
||||
':three:',
|
||||
':four:',
|
||||
':five:',
|
||||
':six:',
|
||||
':seven:',
|
||||
':eight:',
|
||||
':nine:',
|
||||
':keycap_ten:',
|
||||
':1234:',
|
||||
':zero:',
|
||||
':hash:',
|
||||
':symbols:',
|
||||
':arrow_backward:',
|
||||
':arrow_down:',
|
||||
':arrow_forward:',
|
||||
':arrow_left:',
|
||||
':capital_abcd:',
|
||||
':abcd:',
|
||||
':abc:',
|
||||
':arrow_lower_left:',
|
||||
':arrow_lower_right:',
|
||||
':arrow_right:',
|
||||
':arrow_up:',
|
||||
':arrow_upper_left:',
|
||||
':arrow_upper_right:',
|
||||
':arrow_double_down:',
|
||||
':arrow_double_up:',
|
||||
':arrow_down_small:',
|
||||
':arrow_heading_down:',
|
||||
':arrow_heading_up:',
|
||||
':leftwards_arrow_with_hook:',
|
||||
':arrow_right_hook:',
|
||||
':left_right_arrow:',
|
||||
':arrow_up_down:',
|
||||
':arrow_up_small:',
|
||||
':arrows_clockwise:',
|
||||
':arrows_counterclockwise:',
|
||||
':rewind:',
|
||||
':fast_forward:',
|
||||
':information_source:',
|
||||
':ok:',
|
||||
':twisted_rightwards_arrows:',
|
||||
':repeat:',
|
||||
':repeat_one:',
|
||||
':new:',
|
||||
':top:',
|
||||
':up:',
|
||||
':cool:',
|
||||
':free:',
|
||||
':ng:',
|
||||
':cinema:',
|
||||
':koko:',
|
||||
':signal_strength:',
|
||||
':u5272:',
|
||||
':u5408:',
|
||||
':u55b6:',
|
||||
':u6307:',
|
||||
':u6708:',
|
||||
':u6709:',
|
||||
':u6e80:',
|
||||
':u7121:',
|
||||
':u7533:',
|
||||
':u7a7a:',
|
||||
':u7981:',
|
||||
':sa:',
|
||||
':restroom:',
|
||||
':mens:',
|
||||
':womens:',
|
||||
':baby_symbol:',
|
||||
':no_smoking:',
|
||||
':parking:',
|
||||
':wheelchair:',
|
||||
':metro:',
|
||||
':baggage_claim:',
|
||||
':accept:',
|
||||
':wc:',
|
||||
':potable_water:',
|
||||
':put_litter_in_its_place:',
|
||||
':secret:',
|
||||
':congratulations:',
|
||||
':m:',
|
||||
':passport_control:',
|
||||
':left_luggage:',
|
||||
':customs:',
|
||||
':ideograph_advantage:',
|
||||
':cl:',
|
||||
':sos:',
|
||||
':id:',
|
||||
':no_entry_sign:',
|
||||
':underage:',
|
||||
':no_mobile_phones:',
|
||||
':do_not_litter:',
|
||||
':non-potable_water:',
|
||||
':no_bicycles:',
|
||||
':no_pedestrians:',
|
||||
':children_crossing:',
|
||||
':no_entry:',
|
||||
':eight_spoked_asterisk:',
|
||||
':sparkle:',
|
||||
':eight_pointed_black_star:',
|
||||
':heart_decoration:',
|
||||
':vs:',
|
||||
':vibration_mode:',
|
||||
':mobile_phone_off:',
|
||||
':chart:',
|
||||
':currency_exchange:',
|
||||
':aries:',
|
||||
':taurus:',
|
||||
':gemini:',
|
||||
':cancer:',
|
||||
':leo:',
|
||||
':virgo:',
|
||||
':libra:',
|
||||
':scorpius:',
|
||||
':sagittarius:',
|
||||
':capricorn:',
|
||||
':aquarius:',
|
||||
':pisces:',
|
||||
':ophiuchus:',
|
||||
':six_pointed_star:',
|
||||
':negative_squared_cross_mark:',
|
||||
':a:',
|
||||
':b:',
|
||||
':ab:',
|
||||
':o2:',
|
||||
':diamond_shape_with_a_dot_inside:',
|
||||
':recycle:',
|
||||
':end:',
|
||||
':back:',
|
||||
':on:',
|
||||
':soon:',
|
||||
':clock1:',
|
||||
':clock130:',
|
||||
':clock10:',
|
||||
':clock1030:',
|
||||
':clock11:',
|
||||
':clock1130:',
|
||||
':clock12:',
|
||||
':clock1230:',
|
||||
':clock2:',
|
||||
':clock230:',
|
||||
':clock3:',
|
||||
':clock330:',
|
||||
':clock4:',
|
||||
':clock430:',
|
||||
':clock5:',
|
||||
':clock530:',
|
||||
':clock6:',
|
||||
':clock630:',
|
||||
':clock7:',
|
||||
':clock730:',
|
||||
':clock8:',
|
||||
':clock830:',
|
||||
':clock9:',
|
||||
':clock930:',
|
||||
':heavy_dollar_sign:',
|
||||
':copyright:',
|
||||
':registered:',
|
||||
':tm:',
|
||||
':x:',
|
||||
':heavy_exclamation_mark:',
|
||||
':bangbang:',
|
||||
':interrobang:',
|
||||
':o:',
|
||||
':heavy_multiplication_x:',
|
||||
':heavy_plus_sign:',
|
||||
':heavy_minus_sign:',
|
||||
':heavy_division_sign:',
|
||||
':white_flower:',
|
||||
':100:',
|
||||
':heavy_check_mark:',
|
||||
':ballot_box_with_check:',
|
||||
':radio_button:',
|
||||
':link:',
|
||||
':curly_loop:',
|
||||
':wavy_dash:',
|
||||
':part_alternation_mark:',
|
||||
':trident:',
|
||||
':black_small_square:',
|
||||
':white_small_square:',
|
||||
':black_medium_small_square:',
|
||||
':white_medium_small_square:',
|
||||
':black_medium_square:',
|
||||
':white_medium_square:',
|
||||
':black_large_square:',
|
||||
':white_large_square:',
|
||||
':white_check_mark:',
|
||||
':black_square_button:',
|
||||
':white_square_button:',
|
||||
':black_circle:',
|
||||
':white_circle:',
|
||||
':red_circle:',
|
||||
':large_blue_circle:',
|
||||
':large_blue_diamond:',
|
||||
':large_orange_diamond:',
|
||||
':small_blue_diamond:',
|
||||
':small_orange_diamond:',
|
||||
':small_red_triangle:',
|
||||
':small_red_triangle_down:',
|
||||
':shipit:'
|
||||
]
|
||||
};
|
||||
|
||||
// Add all emoji in a dropdown
|
||||
$.extend(true, $.trumbowyg, {
|
||||
langs: {
|
||||
en: {
|
||||
emoji: 'Add an emoji'
|
||||
},
|
||||
fr: {
|
||||
emoji: 'Ajouter un emoji'
|
||||
},
|
||||
zh_cn: {
|
||||
emoji: '添加表情'
|
||||
}
|
||||
},
|
||||
plugins: {
|
||||
emoji: {
|
||||
init: function (trumbowyg) {
|
||||
trumbowyg.o.plugins.emoji = $.extend(true, {}, defaultOptions, trumbowyg.o.plugins.emoji || {});
|
||||
var emojiBtnDef = {
|
||||
dropdown: buildDropdown(trumbowyg)
|
||||
};
|
||||
trumbowyg.addBtnDef('emoji', emojiBtnDef);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
function buildDropdown(trumbowyg) {
|
||||
var dropdown = [];
|
||||
|
||||
$.each(trumbowyg.o.plugins.emoji.emojiList, function (i, emoji) {
|
||||
var btn = emoji,
|
||||
btnDef = {
|
||||
param: emoji,
|
||||
fn: function () {
|
||||
trumbowyg.execCmd('insertText', emoji);
|
||||
return true;
|
||||
}
|
||||
};
|
||||
trumbowyg.addBtnDef(btn, btnDef);
|
||||
dropdown.push(btn);
|
||||
});
|
||||
|
||||
return dropdown;
|
||||
}
|
||||
})(jQuery);
|
|
@ -0,0 +1,2 @@
|
|||
/** Trumbowyg v2.8.1 - A lightweight WYSIWYG editor - alex-d.github.io/Trumbowyg - License MIT - Author : Alexandre Demode (Alex-D) / alex-d.fr */
|
||||
.trumbowyg-dropdown-emoji{width:265px;padding:7px 0 7px 5px;height:200px;overflow-y:scroll;overflow-x:hidden}.trumbowyg-dropdown-emoji svg{display:none!important}.trumbowyg-dropdown-emoji button{display:block;position:relative;float:left;height:26px;width:26px;padding:0;margin:2px;line-height:24px;text-align:center}.trumbowyg-dropdown-emoji button:focus::after,.trumbowyg-dropdown-emoji button:hover::after{display:block;position:absolute;top:-5px;left:-5px;height:27px;width:27px;background:inherit;box-shadow:#000 0 0 2px;z-index:10;background-color:transparent}.trumbowyg .emoji{width:22px;height:22px;display:inline-block}
|
|
@ -1,77 +0,0 @@
|
|||
/*/* ===========================================================
|
||||
* trumbowyg.insertaudio.js v1.0
|
||||
* InsertAudio plugin for Trumbowyg
|
||||
* http://alex-d.github.com/Trumbowyg
|
||||
* ===========================================================
|
||||
* Author : Adam Hess (AdamHess)
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
'use strict';
|
||||
|
||||
var insertAudioOptions = {
|
||||
src: {
|
||||
label: 'URL',
|
||||
required: true
|
||||
},
|
||||
autoplay: {
|
||||
label: 'AutoPlay',
|
||||
required: false,
|
||||
type: 'checkbox'
|
||||
},
|
||||
muted: {
|
||||
label: 'Muted',
|
||||
required: false,
|
||||
type: 'checkbox'
|
||||
},
|
||||
preload: {
|
||||
label: 'preload options',
|
||||
required: false
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
$.extend(true, $.trumbowyg, {
|
||||
langs: {
|
||||
en: {
|
||||
insertAudio: 'Insert Audio'
|
||||
}
|
||||
},
|
||||
plugins: {
|
||||
insertAudio: {
|
||||
init: function (trumbowyg) {
|
||||
var btnDef = {
|
||||
fn: function () {
|
||||
var insertAudioCallback = function (v) {
|
||||
// controls should always be show otherwise the audio will
|
||||
// be invisible defeating the point of a wysiwyg
|
||||
var html = '<audio controls';
|
||||
if (v.src) {
|
||||
html += ' src=\'' + v.src + '\'';
|
||||
}
|
||||
if (v.autoplay) {
|
||||
html += ' autoplay';
|
||||
}
|
||||
if (v.muted) {
|
||||
html += ' muted';
|
||||
}
|
||||
if (v.preload) {
|
||||
html += ' preload=\'' + v + '\'';
|
||||
}
|
||||
html += '></audio>';
|
||||
var node = $(html)[0];
|
||||
trumbowyg.range.deleteContents();
|
||||
trumbowyg.range.insertNode(node);
|
||||
return true;
|
||||
};
|
||||
|
||||
trumbowyg.openModalInsert(trumbowyg.lang.insertAudio, insertAudioOptions, insertAudioCallback);
|
||||
}
|
||||
};
|
||||
|
||||
trumbowyg.addBtnDef('insertAudio', btnDef);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
})(jQuery);
|
|
@ -1 +1 @@
|
|||
!function(e){"use strict";var r={src:{label:"URL",required:!0},autoplay:{label:"AutoPlay",required:!1,type:"checkbox"},muted:{label:"Muted",required:!1,type:"checkbox"},preload:{label:"preload options",required:!1}};e.extend(!0,e.trumbowyg,{langs:{en:{insertAudio:"Insert Audio"}},plugins:{insertAudio:{init:function(t){var n={fn:function(){var n=function(r){var n="<audio controls";r.src&&(n+=" src='"+r.src+"'"),r.autoplay&&(n+=" autoplay"),r.muted&&(n+=" muted"),r.preload&&(n+=" preload='"+r+"'"),n+="></audio>";var o=e(n)[0];return t.range.deleteContents(),t.range.insertNode(o),!0};t.openModalInsert(t.lang.insertAudio,r,n)}};t.addBtnDef("insertAudio",n)}}}})}(jQuery);
|
||||
!function(e){"use strict";var r={src:{label:"URL",required:!0},autoplay:{label:"AutoPlay",required:!1,type:"checkbox"},muted:{label:"Muted",required:!1,type:"checkbox"},preload:{label:"preload options",required:!1}};e.extend(!0,e.trumbowyg,{langs:{en:{insertAudio:"Insert Audio"},ru:{insertAudio:"Вставить аудио"},ja:{insertAudio:"音声の挿入"}},plugins:{insertAudio:{init:function(t){var n={fn:function(){var n=function(r){var n="<audio controls";r.src&&(n+=" src='"+r.src+"'"),r.autoplay&&(n+=" autoplay"),r.muted&&(n+=" muted"),r.preload&&(n+=" preload='"+r+"'"),n+="></audio>";var o=e(n)[0];return t.range.deleteContents(),t.range.insertNode(o),!0};t.openModalInsert(t.lang.insertAudio,r,n)}};t.addBtnDef("insertAudio",n)}}}})}(jQuery);
|
|
@ -1,96 +0,0 @@
|
|||
/* ===========================================================
|
||||
* trumbowyg.noembed.js v1.0
|
||||
* noEmbed plugin for Trumbowyg
|
||||
* http://alex-d.github.com/Trumbowyg
|
||||
* ===========================================================
|
||||
* Author : Jake Johns (jakejohns)
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
'use strict';
|
||||
|
||||
var defaultOptions = {
|
||||
proxy: 'https://noembed.com/embed?nowrap=on',
|
||||
urlFiled: 'url',
|
||||
data: [],
|
||||
success: undefined,
|
||||
error: undefined
|
||||
};
|
||||
|
||||
$.extend(true, $.trumbowyg, {
|
||||
langs: {
|
||||
en: {
|
||||
noembed: 'noEmbed',
|
||||
noembedError: 'Error'
|
||||
},
|
||||
sk: {
|
||||
noembedError: 'Chyba'
|
||||
},
|
||||
fr: {
|
||||
noembed: 'noEmbed',
|
||||
noembedError: 'Erreur'
|
||||
},
|
||||
cs: {
|
||||
noembedError: 'Chyba'
|
||||
}
|
||||
},
|
||||
|
||||
plugins: {
|
||||
noembed: {
|
||||
init: function (trumbowyg) {
|
||||
trumbowyg.o.plugins.noembed = $.extend(true, {}, defaultOptions, trumbowyg.o.plugins.noembed || {});
|
||||
|
||||
var btnDef = {
|
||||
fn: function () {
|
||||
var $modal = trumbowyg.openModalInsert(
|
||||
// Title
|
||||
trumbowyg.lang.noembed,
|
||||
|
||||
// Fields
|
||||
{
|
||||
url: {
|
||||
label: 'URL',
|
||||
required: true
|
||||
}
|
||||
},
|
||||
|
||||
// Callback
|
||||
function (data) {
|
||||
$.ajax({
|
||||
url: trumbowyg.o.plugins.noembed.proxy,
|
||||
type: 'GET',
|
||||
data: data,
|
||||
cache: false,
|
||||
dataType: 'json',
|
||||
|
||||
success: trumbowyg.o.plugins.noembed.success || function (data) {
|
||||
if (data.html) {
|
||||
trumbowyg.execCmd('insertHTML', data.html);
|
||||
setTimeout(function () {
|
||||
trumbowyg.closeModal();
|
||||
}, 250);
|
||||
} else {
|
||||
trumbowyg.addErrorOnModalField(
|
||||
$('input[type=text]', $modal),
|
||||
data.error
|
||||
);
|
||||
}
|
||||
},
|
||||
error: trumbowyg.o.plugins.noembed.error || function () {
|
||||
trumbowyg.addErrorOnModalField(
|
||||
$('input[type=text]', $modal),
|
||||
trumbowyg.lang.noembedError
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
trumbowyg.addBtnDef('noembed', btnDef);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
})(jQuery);
|
|
@ -1 +1 @@
|
|||
!function(e){"use strict";var o={proxy:"https://noembed.com/embed?nowrap=on",urlFiled:"url",data:[],success:void 0,error:void 0};e.extend(!0,e.trumbowyg,{langs:{en:{noembed:"noEmbed",noembedError:"Error"},sk:{noembedError:"Chyba"},fr:{noembed:"noEmbed",noembedError:"Erreur"},cs:{noembedError:"Chyba"}},plugins:{noembed:{init:function(n){n.o.plugins.noembed=e.extend(!0,{},o,n.o.plugins.noembed||{});var r={fn:function(){var o=n.openModalInsert(n.lang.noembed,{url:{label:"URL",required:!0}},function(r){e.ajax({url:n.o.plugins.noembed.proxy,type:"GET",data:r,cache:!1,dataType:"json",success:n.o.plugins.noembed.success||function(r){r.html?(n.execCmd("insertHTML",r.html),setTimeout(function(){n.closeModal()},250)):n.addErrorOnModalField(e("input[type=text]",o),r.error)},error:n.o.plugins.noembed.error||function(){n.addErrorOnModalField(e("input[type=text]",o),n.lang.noembedError)}})})}};n.addBtnDef("noembed",r)}}}})}(jQuery);
|
||||
!function(e){"use strict";var r={proxy:"https://noembed.com/embed?nowrap=on",urlFiled:"url",data:[],success:void 0,error:void 0};e.extend(!0,e.trumbowyg,{langs:{en:{noembed:"Noembed",noembedError:"Error"},sk:{noembedError:"Chyba"},fr:{noembedError:"Erreur"},cs:{noembedError:"Chyba"},ru:{noembedError:"Ошибка"},ja:{noembedError:"エラー"}},plugins:{noembed:{init:function(o){o.o.plugins.noembed=e.extend(!0,{},r,o.o.plugins.noembed||{});var n={fn:function(){var r=o.openModalInsert(o.lang.noembed,{url:{label:"URL",required:!0}},function(n){e.ajax({url:o.o.plugins.noembed.proxy,type:"GET",data:n,cache:!1,dataType:"json",success:o.o.plugins.noembed.success||function(n){n.html?(o.execCmd("insertHTML",n.html),setTimeout(function(){o.closeModal()},250)):o.addErrorOnModalField(e("input[type=text]",r),n.error)},error:o.o.plugins.noembed.error||function(){o.addErrorOnModalField(e("input[type=text]",r),o.lang.noembedError)}})})}};o.addBtnDef("noembed",n)}}}})}(jQuery);
|
|
@ -1,41 +0,0 @@
|
|||
/* ===========================================================
|
||||
* trumbowyg.pasteimage.js v1.0
|
||||
* Basic base64 paste plugin for Trumbowyg
|
||||
* http://alex-d.github.com/Trumbowyg
|
||||
* ===========================================================
|
||||
* Author : Alexandre Demode (Alex-D)
|
||||
* Twitter : @AlexandreDemode
|
||||
* Website : alex-d.fr
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
'use strict';
|
||||
|
||||
$.extend(true, $.trumbowyg, {
|
||||
plugins: {
|
||||
pasteImage: {
|
||||
init: function (trumbowyg) {
|
||||
trumbowyg.pasteHandlers.push(function (pasteEvent) {
|
||||
try {
|
||||
var items = (pasteEvent.originalEvent || pasteEvent).clipboardData.items,
|
||||
reader;
|
||||
|
||||
for (var i = items.length -1; i >= 0; i += 1) {
|
||||
if (items[i].type.match(/^image\//)) {
|
||||
reader = new FileReader();
|
||||
/* jshint -W083 */
|
||||
reader.onloadend = function (event) {
|
||||
trumbowyg.execCmd('insertImage', event.target.result, undefined, true);
|
||||
};
|
||||
/* jshint +W083 */
|
||||
reader.readAsDataURL(items[i].getAsFile());
|
||||
}
|
||||
}
|
||||
} catch (c) {
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
})(jQuery);
|
|
@ -1,117 +0,0 @@
|
|||
/* ===========================================================
|
||||
* trumbowyg.preformatted.js v1.0
|
||||
* Preformatted plugin for Trumbowyg
|
||||
* http://alex-d.github.com/Trumbowyg
|
||||
* ===========================================================
|
||||
* Author : Casella Edoardo (Civile)
|
||||
*/
|
||||
|
||||
|
||||
(function ($) {
|
||||
'use strict';
|
||||
|
||||
$.extend(true, $.trumbowyg, {
|
||||
langs: {
|
||||
// jshint camelcase:false
|
||||
en: {
|
||||
preformatted: 'Code sample <pre>'
|
||||
},
|
||||
fr: {
|
||||
preformatted: 'Exemple de code'
|
||||
},
|
||||
it: {
|
||||
preformatted: 'Codice <pre>'
|
||||
},
|
||||
zh_cn: {
|
||||
preformatted: '代码示例 <pre>'
|
||||
}
|
||||
},
|
||||
// jshint camelcase:true
|
||||
|
||||
plugins: {
|
||||
preformatted: {
|
||||
init: function (trumbowyg) {
|
||||
var btnDef = {
|
||||
fn: function () {
|
||||
trumbowyg.saveRange();
|
||||
var text = trumbowyg.getRangeText();
|
||||
if (text.replace(/\s/g, '') !== '') {
|
||||
try {
|
||||
var curtag = getSelectionParentElement().tagName.toLowerCase();
|
||||
if (curtag === 'code' || curtag === 'pre') {
|
||||
return unwrapCode();
|
||||
}
|
||||
else {
|
||||
trumbowyg.execCmd('insertHTML', '<pre><code>' + strip(text) + '</code></pre>');
|
||||
}
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
},
|
||||
tag: 'pre'
|
||||
};
|
||||
|
||||
trumbowyg.addBtnDef('preformatted', btnDef);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
* GetSelectionParentElement
|
||||
*/
|
||||
function getSelectionParentElement() {
|
||||
var parentEl = null,
|
||||
selection;
|
||||
if (window.getSelection) {
|
||||
selection = window.getSelection();
|
||||
if (selection.rangeCount) {
|
||||
parentEl = selection.getRangeAt(0).commonAncestorContainer;
|
||||
if (parentEl.nodeType !== 1) {
|
||||
parentEl = parentEl.parentNode;
|
||||
}
|
||||
}
|
||||
} else if ((selection = document.selection) && selection.type !== 'Control') {
|
||||
parentEl = selection.createRange().parentElement();
|
||||
}
|
||||
return parentEl;
|
||||
}
|
||||
|
||||
/*
|
||||
* Strip
|
||||
* returns a text without HTML tags
|
||||
*/
|
||||
function strip(html) {
|
||||
var tmp = document.createElement('DIV');
|
||||
tmp.innerHTML = html;
|
||||
return tmp.textContent || tmp.innerText || '';
|
||||
}
|
||||
|
||||
/*
|
||||
* UnwrapCode
|
||||
* ADD/FIX: to improve, works but can be better
|
||||
* "paranoic" solution
|
||||
*/
|
||||
function unwrapCode() {
|
||||
var container = null;
|
||||
if (document.selection) { //for IE
|
||||
container = document.selection.createRange().parentElement();
|
||||
} else {
|
||||
var select = window.getSelection();
|
||||
if (select.rangeCount > 0) {
|
||||
container = select.getRangeAt(0).startContainer.parentNode;
|
||||
}
|
||||
}
|
||||
//'paranoic' unwrap
|
||||
var ispre = $(container).contents().closest('pre').length;
|
||||
var iscode = $(container).contents().closest('code').length;
|
||||
if (ispre && iscode) {
|
||||
$(container).contents().unwrap('code').unwrap('pre');
|
||||
} else if (ispre) {
|
||||
$(container).contents().unwrap('pre');
|
||||
} else if (iscode) {
|
||||
$(container).contents().unwrap('code');
|
||||
}
|
||||
}
|
||||
|
||||
})(jQuery);
|
|
@ -1 +1 @@
|
|||
!function(e){"use strict";function t(){var e,t=null;return window.getSelection?(e=window.getSelection(),e.rangeCount&&(t=e.getRangeAt(0).commonAncestorContainer,1!==t.nodeType&&(t=t.parentNode))):(e=document.selection)&&"Control"!==e.type&&(t=e.createRange().parentElement()),t}function n(e){var t=document.createElement("DIV");return t.innerHTML=e,t.textContent||t.innerText||""}function r(){var t=null;if(document.selection)t=document.selection.createRange().parentElement();else{var n=window.getSelection();n.rangeCount>0&&(t=n.getRangeAt(0).startContainer.parentNode)}var r=e(t).contents().closest("pre").length,o=e(t).contents().closest("code").length;r&&o?e(t).contents().unwrap("code").unwrap("pre"):r?e(t).contents().unwrap("pre"):o&&e(t).contents().unwrap("code")}e.extend(!0,e.trumbowyg,{langs:{en:{preformatted:"Code sample <pre>"},fr:{preformatted:"Exemple de code"},it:{preformatted:"Codice <pre>"},zh_cn:{preformatted:"代码示例 <pre>"}},plugins:{preformatted:{init:function(e){var o={fn:function(){e.saveRange();var o=e.getRangeText();if(""!==o.replace(/\s/g,""))try{var a=t().tagName.toLowerCase();if("code"===a||"pre"===a)return r();e.execCmd("insertHTML","<pre><code>"+n(o)+"</code></pre>")}catch(c){}},tag:"pre"};e.addBtnDef("preformatted",o)}}}})}(jQuery);
|
||||
!function(e){"use strict";function t(){var e,t=null;return window.getSelection?(e=window.getSelection(),e.rangeCount&&(t=e.getRangeAt(0).commonAncestorContainer,1!==t.nodeType&&(t=t.parentNode))):(e=document.selection)&&"Control"!==e.type&&(t=e.createRange().parentElement()),t}function n(e){var t=document.createElement("DIV");return t.innerHTML=e,t.textContent||t.innerText||""}function r(){var t=null;if(document.selection)t=document.selection.createRange().parentElement();else{var n=window.getSelection();n.rangeCount>0&&(t=n.getRangeAt(0).startContainer.parentNode)}var r=e(t).contents().closest("pre").length,o=e(t).contents().closest("code").length;r&&o?e(t).contents().unwrap("code").unwrap("pre"):r?e(t).contents().unwrap("pre"):o&&e(t).contents().unwrap("code")}e.extend(!0,e.trumbowyg,{langs:{en:{preformatted:"Code sample <pre>"},fr:{preformatted:"Exemple de code"},it:{preformatted:"Codice <pre>"},zh_cn:{preformatted:"代码示例 <pre>"},ru:{preformatted:"Пример кода <pre>"},ja:{preformatted:"コードサンプル <pre>"}},plugins:{preformatted:{init:function(e){var o={fn:function(){e.saveRange();var o=e.getRangeText();if(""!==o.replace(/\s/g,""))try{var a=t().tagName.toLowerCase();if("code"===a||"pre"===a)return r();e.execCmd("insertHTML","<pre><code>"+n(o)+"</code></pre>")}catch(c){}},tag:"pre"};e.addBtnDef("preformatted",o)}}}})}(jQuery);
|
|
@ -1,136 +0,0 @@
|
|||
/* ===========================================================
|
||||
* trumbowyg.table.js v1.2
|
||||
* Table plugin for Trumbowyg
|
||||
* http://alex-d.github.com/Trumbowyg
|
||||
* ===========================================================
|
||||
* Author : Lawrence Meckan
|
||||
* Twitter : @absalomedia
|
||||
* Website : absalom.biz
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
'use strict';
|
||||
|
||||
var defaultOptions = {
|
||||
rows: 0,
|
||||
columns: 0,
|
||||
styler: ''
|
||||
};
|
||||
|
||||
$.extend(true, $.trumbowyg, {
|
||||
langs: {
|
||||
en: {
|
||||
table: 'Insert table',
|
||||
tableAddRow: 'Add rows',
|
||||
tableAddColumn: 'Add columns',
|
||||
rows: 'Rows',
|
||||
columns: 'Columns',
|
||||
styler: 'Table class',
|
||||
error: 'Error'
|
||||
},
|
||||
sk: {
|
||||
table: 'Vytvoriť tabuľky',
|
||||
tableAddRow: 'Pridať riadok',
|
||||
tableAddColumn: 'Pridať stĺpec',
|
||||
rows: 'Riadky',
|
||||
columns: 'Stĺpce',
|
||||
styler: 'Tabuľku triedy',
|
||||
error: 'Chyba'
|
||||
},
|
||||
fr: {
|
||||
table: 'Insérer un tableau',
|
||||
tableAddRow: 'Ajouter des lignes',
|
||||
tableAddColumn: 'Ajouter des colonnes',
|
||||
rows: 'Lignes',
|
||||
columns: 'Colonnes',
|
||||
styler: 'Classes CSS sur la table',
|
||||
error: 'Erreur'
|
||||
},
|
||||
cs: {
|
||||
table: 'Vytvořit příkaz Table',
|
||||
tableAddRow: 'Přidat řádek',
|
||||
tableAddColumn: 'Přidat sloupec',
|
||||
rows: 'Řádky',
|
||||
columns: 'Sloupce',
|
||||
styler: 'Tabulku třída',
|
||||
error: 'Chyba'
|
||||
}
|
||||
},
|
||||
|
||||
plugins: {
|
||||
table: {
|
||||
init: function (trumbowyg) {
|
||||
trumbowyg.o.plugins.table = $.extend(true, {}, defaultOptions, trumbowyg.o.plugins.table || {});
|
||||
|
||||
var tableBuild = {
|
||||
fn: function () {
|
||||
trumbowyg.saveRange();
|
||||
trumbowyg.openModalInsert(
|
||||
// Title
|
||||
trumbowyg.lang.table,
|
||||
|
||||
// Fields
|
||||
{
|
||||
rows: {
|
||||
type: 'number',
|
||||
required: true
|
||||
},
|
||||
columns: {
|
||||
type: 'number',
|
||||
required: true
|
||||
},
|
||||
styler: {
|
||||
label: trumbowyg.lang.styler,
|
||||
type: 'text'
|
||||
}
|
||||
},
|
||||
function (v) { // v is value
|
||||
var tabler = $('<table></table>');
|
||||
if (v.styler.length !== 0) {
|
||||
tabler.addClass(v.styler);
|
||||
}
|
||||
|
||||
for (var i = 0; i < v.rows; i += 1) {
|
||||
var row = $('<tr></tr>').appendTo(tabler);
|
||||
for (var j = 0; j < v.columns; j += 1) {
|
||||
$('<td></td>').appendTo(row);
|
||||
}
|
||||
}
|
||||
|
||||
trumbowyg.range.deleteContents();
|
||||
trumbowyg.range.insertNode(tabler[0]);
|
||||
return true;
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
var addRow = {
|
||||
fn: function () {
|
||||
trumbowyg.saveRange();
|
||||
var rower = $('<tr></tr>');
|
||||
trumbowyg.range.deleteContents();
|
||||
trumbowyg.range.insertNode(rower[0]);
|
||||
return true;
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
var addColumn = {
|
||||
fn: function () {
|
||||
trumbowyg.saveRange();
|
||||
var columner = $('<td></td>');
|
||||
trumbowyg.range.deleteContents();
|
||||
trumbowyg.range.insertNode(columner[0]);
|
||||
return true;
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
trumbowyg.addBtnDef('table', tableBuild);
|
||||
trumbowyg.addBtnDef('tableAddRow', addRow);
|
||||
trumbowyg.addBtnDef('tableAddColumn', addColumn);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
})(jQuery);
|
|
@ -1 +1 @@
|
|||
!function(e){"use strict";var t={rows:0,columns:0,styler:""};e.extend(!0,e.trumbowyg,{langs:{en:{table:"Insert table",tableAddRow:"Add rows",tableAddColumn:"Add columns",rows:"Rows",columns:"Columns",styler:"Table class",error:"Error"},sk:{table:"Vytvoriť tabuľky",tableAddRow:"Pridať riadok",tableAddColumn:"Pridať stĺpec",rows:"Riadky",columns:"Stĺpce",styler:"Tabuľku triedy",error:"Chyba"},fr:{table:"Insérer un tableau",tableAddRow:"Ajouter des lignes",tableAddColumn:"Ajouter des colonnes",rows:"Lignes",columns:"Colonnes",styler:"Classes CSS sur la table",error:"Erreur"},cs:{table:"Vytvořit příkaz Table",tableAddRow:"Přidat řádek",tableAddColumn:"Přidat sloupec",rows:"Řádky",columns:"Sloupce",styler:"Tabulku třída",error:"Chyba"}},plugins:{table:{init:function(r){r.o.plugins.table=e.extend(!0,{},t,r.o.plugins.table||{});var n={fn:function(){r.saveRange(),r.openModalInsert(r.lang.table,{rows:{type:"number",required:!0},columns:{type:"number",required:!0},styler:{label:r.lang.styler,type:"text"}},function(t){var n=e("<table></table>");0!==t.styler.length&&n.addClass(t.styler);for(var a=0;a<t.rows;a+=1)for(var l=e("<tr></tr>").appendTo(n),o=0;o<t.columns;o+=1)e("<td></td>").appendTo(l);return r.range.deleteContents(),r.range.insertNode(n[0]),!0})}},a={fn:function(){r.saveRange();var t=e("<tr></tr>");return r.range.deleteContents(),r.range.insertNode(t[0]),!0}},l={fn:function(){r.saveRange();var t=e("<td></td>");return r.range.deleteContents(),r.range.insertNode(t[0]),!0}};r.addBtnDef("table",n),r.addBtnDef("tableAddRow",a),r.addBtnDef("tableAddColumn",l)}}}})}(jQuery);
|
||||
!function(e){"use strict";var t={rows:0,columns:0,styler:""};e.extend(!0,e.trumbowyg,{langs:{en:{table:"Insert table",tableAddRow:"Add rows",tableAddColumn:"Add columns",rows:"Rows",columns:"Columns",styler:"Table class",error:"Error"},sk:{table:"Vytvoriť tabuľky",tableAddRow:"Pridať riadok",tableAddColumn:"Pridať stĺpec",rows:"Riadky",columns:"Stĺpce",styler:"Tabuľku triedy",error:"Chyba"},fr:{table:"Insérer un tableau",tableAddRow:"Ajouter des lignes",tableAddColumn:"Ajouter des colonnes",rows:"Lignes",columns:"Colonnes",styler:"Classes CSS sur la table",error:"Erreur"},cs:{table:"Vytvořit příkaz Table",tableAddRow:"Přidat řádek",tableAddColumn:"Přidat sloupec",rows:"Řádky",columns:"Sloupce",styler:"Tabulku třída",error:"Chyba"},ru:{table:"Вставить таблицу",tableAddRow:"Добавить строки",tableAddColumn:"Добавить столбцы",rows:"Строки",columns:"Столбцы",styler:"Имя CSS класса для таблицы",error:"Ошибка"},ja:{table:"表の挿入",tableAddRow:"行の追加",tableAddColumn:"列の追加",rows:"行",columns:"列",styler:"表のクラス",error:"エラー"}},plugins:{table:{init:function(r){r.o.plugins.table=e.extend(!0,{},t,r.o.plugins.table||{});var l={fn:function(){r.saveRange(),r.openModalInsert(r.lang.table,{rows:{type:"number",required:!0},columns:{type:"number",required:!0},styler:{label:r.lang.styler,type:"text"}},function(t){var l=e("<table></table>");0!==t.styler.length&&l.addClass(t.styler);for(var n=0;n<t.rows;n+=1)for(var a=e("<tr></tr>").appendTo(l),o=0;o<t.columns;o+=1)e("<td></td>").appendTo(a);return r.range.deleteContents(),r.range.insertNode(l[0]),!0})}},n={fn:function(){r.saveRange();var t=e("<tr></tr>");return r.range.deleteContents(),r.range.insertNode(t[0]),!0}},a={fn:function(){r.saveRange();var t=e("<td></td>");return r.range.deleteContents(),r.range.insertNode(t[0]),!0}};r.addBtnDef("table",l),r.addBtnDef("tableAddRow",n),r.addBtnDef("tableAddColumn",a)}}}})}(jQuery);
|
|
@ -1,52 +0,0 @@
|
|||
(function($) {
|
||||
'use strict';
|
||||
|
||||
// Adds the language variables
|
||||
$.extend(true, $.trumbowyg, {
|
||||
langs: {
|
||||
en: {
|
||||
template: 'Template'
|
||||
},
|
||||
nl: {
|
||||
template: 'Sjabloon'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Adds the extra button definition
|
||||
$.extend(true, $.trumbowyg, {
|
||||
plugins: {
|
||||
template: {
|
||||
shouldInit: function(trumbowyg) {
|
||||
return trumbowyg.o.plugins.hasOwnProperty('templates');
|
||||
},
|
||||
init: function(trumbowyg) {
|
||||
trumbowyg.addBtnDef('template', {
|
||||
dropdown: templateSelector(trumbowyg),
|
||||
hasIcon: false,
|
||||
text: trumbowyg.lang.template
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Creates the template-selector dropdown.
|
||||
function templateSelector(trumbowyg) {
|
||||
var available = trumbowyg.o.plugins.templates;
|
||||
var templates = [];
|
||||
|
||||
$.each(available, function(index, template) {
|
||||
trumbowyg.addBtnDef('template_' + index, {
|
||||
fn: function(){
|
||||
trumbowyg.html(template.html);
|
||||
},
|
||||
hasIcon: false,
|
||||
title: template.name
|
||||
});
|
||||
templates.push('template_' + index);
|
||||
});
|
||||
|
||||
return templates;
|
||||
}
|
||||
})(jQuery);
|
|
@ -1 +1 @@
|
|||
!function(t){"use strict";function e(e){var n=e.o.plugins.templates,a=[];return t.each(n,function(t,n){e.addBtnDef("template_"+t,{fn:function(){e.html(n.html)},hasIcon:!1,title:n.name}),a.push("template_"+t)}),a}t.extend(!0,t.trumbowyg,{langs:{en:{template:"Template"},nl:{template:"Sjabloon"}}}),t.extend(!0,t.trumbowyg,{plugins:{template:{shouldInit:function(t){return t.o.plugins.hasOwnProperty("templates")},init:function(t){t.addBtnDef("template",{dropdown:e(t),hasIcon:!1,text:t.lang.template})}}}})}(jQuery);
|
||||
!function(t){"use strict";function e(e){var n=e.o.plugins.templates,a=[];return t.each(n,function(t,n){e.addBtnDef("template_"+t,{fn:function(){e.html(n.html)},hasIcon:!1,title:n.name}),a.push("template_"+t)}),a}t.extend(!0,t.trumbowyg,{langs:{en:{template:"Template"},nl:{template:"Sjabloon"},ru:{template:"Шаблон"},ja:{template:"テンプレート"}}}),t.extend(!0,t.trumbowyg,{plugins:{template:{shouldInit:function(t){return t.o.plugins.hasOwnProperty("templates")},init:function(t){t.addBtnDef("template",{dropdown:e(t),hasIcon:!1,text:t.lang.template})}}}})}(jQuery);
|
|
@ -1,223 +0,0 @@
|
|||
/* ===========================================================
|
||||
* trumbowyg.upload.js v1.2
|
||||
* Upload plugin for Trumbowyg
|
||||
* http://alex-d.github.com/Trumbowyg
|
||||
* ===========================================================
|
||||
* Author : Alexandre Demode (Alex-D)
|
||||
* Twitter : @AlexandreDemode
|
||||
* Website : alex-d.fr
|
||||
* Mod by : Aleksandr-ru
|
||||
* Twitter : @Aleksandr_ru
|
||||
* Website : aleksandr.ru
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
'use strict';
|
||||
|
||||
var defaultOptions = {
|
||||
serverPath: './src/plugins/upload/trumbowyg.upload.php',
|
||||
fileFieldName: 'fileToUpload',
|
||||
data: [], // Additional data for ajax [{name: 'key', value: 'value'}]
|
||||
headers: {}, // Additional headers
|
||||
xhrFields: {}, // Additional fields
|
||||
urlPropertyName: 'file', // How to get url from the json response (for instance 'url' for {url: ....})
|
||||
statusPropertyName: 'success', // How to get status from the json response
|
||||
success: undefined, // Success callback: function (data, trumbowyg, $modal, values) {}
|
||||
error: undefined // Error callback: function () {}
|
||||
};
|
||||
|
||||
function getDeep(object, propertyParts) {
|
||||
var mainProperty = propertyParts.shift(),
|
||||
otherProperties = propertyParts;
|
||||
|
||||
if (object !== null) {
|
||||
if (otherProperties.length === 0) {
|
||||
return object[mainProperty];
|
||||
}
|
||||
|
||||
if (typeof object === 'object') {
|
||||
return getDeep(object[mainProperty], otherProperties);
|
||||
}
|
||||
}
|
||||
return object;
|
||||
}
|
||||
|
||||
addXhrProgressEvent();
|
||||
|
||||
$.extend(true, $.trumbowyg, {
|
||||
langs: {
|
||||
// jshint camelcase:false
|
||||
en: {
|
||||
upload: 'Upload',
|
||||
file: 'File',
|
||||
uploadError: 'Error'
|
||||
},
|
||||
sk: {
|
||||
upload: 'Nahrať',
|
||||
file: 'Súbor',
|
||||
uploadError: 'Chyba'
|
||||
},
|
||||
fr: {
|
||||
upload: 'Envoi',
|
||||
file: 'Fichier',
|
||||
uploadError: 'Erreur'
|
||||
},
|
||||
cs: {
|
||||
upload: 'Nahrát obrázek',
|
||||
file: 'Soubor',
|
||||
uploadError: 'Chyba'
|
||||
},
|
||||
zh_cn: {
|
||||
upload: '上传',
|
||||
file: '文件',
|
||||
uploadError: '错误'
|
||||
},
|
||||
ru: {
|
||||
upload: 'Загрузка',
|
||||
file: 'Файл',
|
||||
uploadError: 'Ошибка'
|
||||
}
|
||||
},
|
||||
// jshint camelcase:true
|
||||
|
||||
plugins: {
|
||||
upload: {
|
||||
init: function (trumbowyg) {
|
||||
trumbowyg.o.plugins.upload = $.extend(true, {}, defaultOptions, trumbowyg.o.plugins.upload || {});
|
||||
var btnDef = {
|
||||
fn: function () {
|
||||
trumbowyg.saveRange();
|
||||
|
||||
var file,
|
||||
prefix = trumbowyg.o.prefix;
|
||||
|
||||
var $modal = trumbowyg.openModalInsert(
|
||||
// Title
|
||||
trumbowyg.lang.upload,
|
||||
|
||||
// Fields
|
||||
{
|
||||
file: {
|
||||
type: 'file',
|
||||
required: true,
|
||||
attributes: {
|
||||
accept: 'image/*'
|
||||
}
|
||||
},
|
||||
alt: {
|
||||
label: 'description',
|
||||
value: trumbowyg.getRangeText()
|
||||
}
|
||||
},
|
||||
|
||||
// Callback
|
||||
function (values) {
|
||||
var data = new FormData();
|
||||
data.append(trumbowyg.o.plugins.upload.fileFieldName, file);
|
||||
|
||||
trumbowyg.o.plugins.upload.data.map(function (cur) {
|
||||
data.append(cur.name, cur.value);
|
||||
});
|
||||
|
||||
if ($('.' + prefix + 'progress', $modal).length === 0) {
|
||||
$('.' + prefix + 'modal-title', $modal)
|
||||
.after(
|
||||
$('<div/>', {
|
||||
'class': prefix + 'progress'
|
||||
}).append(
|
||||
$('<div/>', {
|
||||
'class': prefix + 'progress-bar'
|
||||
})
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: trumbowyg.o.plugins.upload.serverPath,
|
||||
headers: trumbowyg.o.plugins.upload.headers,
|
||||
xhrFields: trumbowyg.o.plugins.upload.xhrFields,
|
||||
type: 'POST',
|
||||
data: data,
|
||||
cache: false,
|
||||
dataType: 'json',
|
||||
processData: false,
|
||||
contentType: false,
|
||||
|
||||
progressUpload: function (e) {
|
||||
$('.' + prefix + 'progress-bar').stop().animate({
|
||||
width: Math.round(e.loaded * 100 / e.total) + '%'
|
||||
}, 200);
|
||||
},
|
||||
|
||||
success: function (data) {
|
||||
if (trumbowyg.o.plugins.upload.success) {
|
||||
trumbowyg.o.plugins.upload.success(data, trumbowyg, $modal, values);
|
||||
} else {
|
||||
if (!!getDeep(data, trumbowyg.o.plugins.upload.statusPropertyName.split('.'))) {
|
||||
var url = getDeep(data, trumbowyg.o.plugins.upload.urlPropertyName.split('.'));
|
||||
trumbowyg.execCmd('insertImage', url);
|
||||
$('img[src="' + url + '"]:not([alt])', trumbowyg.$box).attr('alt', values.alt);
|
||||
setTimeout(function () {
|
||||
trumbowyg.closeModal();
|
||||
}, 250);
|
||||
trumbowyg.$c.trigger('tbwuploadsuccess', [trumbowyg, data, url]);
|
||||
} else {
|
||||
trumbowyg.addErrorOnModalField(
|
||||
$('input[type=file]', $modal),
|
||||
trumbowyg.lang[data.message]
|
||||
);
|
||||
trumbowyg.$c.trigger('tbwuploaderror', [trumbowyg, data]);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
error: trumbowyg.o.plugins.upload.error || function () {
|
||||
trumbowyg.addErrorOnModalField(
|
||||
$('input[type=file]', $modal),
|
||||
trumbowyg.lang.uploadError
|
||||
);
|
||||
trumbowyg.$c.trigger('tbwuploaderror', [trumbowyg]);
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
$('input[type=file]').on('change', function (e) {
|
||||
try {
|
||||
// If multiple files allowed, we just get the first.
|
||||
file = e.target.files[0];
|
||||
} catch (err) {
|
||||
// In IE8, multiple files not allowed
|
||||
file = e.target.value;
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
trumbowyg.addBtnDef('upload', btnDef);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function addXhrProgressEvent() {
|
||||
if (!$.trumbowyg && !$.trumbowyg.addedXhrProgressEvent) { // Avoid adding progress event multiple times
|
||||
var originalXhr = $.ajaxSettings.xhr;
|
||||
$.ajaxSetup({
|
||||
xhr: function () {
|
||||
var req = originalXhr(),
|
||||
that = this;
|
||||
if (req && typeof req.upload === 'object' && that.progressUpload !== undefined) {
|
||||
req.upload.addEventListener('progress', function (e) {
|
||||
that.progressUpload(e);
|
||||
}, false);
|
||||
}
|
||||
|
||||
return req;
|
||||
}
|
||||
});
|
||||
$.trumbowyg.addedXhrProgressEvent = true;
|
||||
}
|
||||
}
|
||||
})(jQuery);
|
|
@ -1 +1 @@
|
|||
!function(e){"use strict";function r(e,a){var o=a.shift(),l=a;if(null!==e){if(0===l.length)return e[o];if("object"==typeof e)return r(e[o],l)}return e}function a(){if(!e.trumbowyg&&!e.trumbowyg.addedXhrProgressEvent){var r=e.ajaxSettings.xhr;e.ajaxSetup({xhr:function(){var e=r(),a=this;return e&&"object"==typeof e.upload&&void 0!==a.progressUpload&&e.upload.addEventListener("progress",function(e){a.progressUpload(e)},!1),e}}),e.trumbowyg.addedXhrProgressEvent=!0}}var o={serverPath:"./src/plugins/upload/trumbowyg.upload.php",fileFieldName:"fileToUpload",data:[],headers:{},xhrFields:{},urlPropertyName:"file",statusPropertyName:"success",success:void 0,error:void 0};a(),e.extend(!0,e.trumbowyg,{langs:{en:{upload:"Upload",file:"File",uploadError:"Error"},sk:{upload:"Nahrať",file:"Súbor",uploadError:"Chyba"},fr:{upload:"Envoi",file:"Fichier",uploadError:"Erreur"},cs:{upload:"Nahrát obrázek",file:"Soubor",uploadError:"Chyba"},zh_cn:{upload:"上传",file:"文件",uploadError:"错误"},ru:{upload:"Загрузка",file:"Файл",uploadError:"Ошибка"}},plugins:{upload:{init:function(a){a.o.plugins.upload=e.extend(!0,{},o,a.o.plugins.upload||{});var l={fn:function(){a.saveRange();var o,l=a.o.prefix,t=a.openModalInsert(a.lang.upload,{file:{type:"file",required:!0,attributes:{accept:"image/*"}},alt:{label:"description",value:a.getRangeText()}},function(u){var s=new FormData;s.append(a.o.plugins.upload.fileFieldName,o),a.o.plugins.upload.data.map(function(e){s.append(e.name,e.value)}),0===e("."+l+"progress",t).length&&e("."+l+"modal-title",t).after(e("<div/>",{"class":l+"progress"}).append(e("<div/>",{"class":l+"progress-bar"}))),e.ajax({url:a.o.plugins.upload.serverPath,headers:a.o.plugins.upload.headers,xhrFields:a.o.plugins.upload.xhrFields,type:"POST",data:s,cache:!1,dataType:"json",processData:!1,contentType:!1,progressUpload:function(r){e("."+l+"progress-bar").stop().animate({width:Math.round(100*r.loaded/r.total)+"%"},200)},success:function(o){if(a.o.plugins.upload.success)a.o.plugins.upload.success(o,a,t,u);else if(r(o,a.o.plugins.upload.statusPropertyName.split("."))){var l=r(o,a.o.plugins.upload.urlPropertyName.split("."));a.execCmd("insertImage",l),e('img[src="'+l+'"]:not([alt])',a.$box).attr("alt",u.alt),setTimeout(function(){a.closeModal()},250),a.$c.trigger("tbwuploadsuccess",[a,o,l])}else a.addErrorOnModalField(e("input[type=file]",t),a.lang[o.message]),a.$c.trigger("tbwuploaderror",[a,o])},error:a.o.plugins.upload.error||function(){a.addErrorOnModalField(e("input[type=file]",t),a.lang.uploadError),a.$c.trigger("tbwuploaderror",[a])}})});e("input[type=file]").on("change",function(e){try{o=e.target.files[0]}catch(r){o=e.target.value}})}};a.addBtnDef("upload",l)}}}})}(jQuery);
|
||||
!function(r){"use strict";function e(r,a){var o=a.shift(),l=a;if(null!==r){if(0===l.length)return r[o];if("object"==typeof r)return e(r[o],l)}return r}function a(){if(!r.trumbowyg.addedXhrProgressEvent){var e=r.ajaxSettings.xhr;r.ajaxSetup({xhr:function(){var r=e(),a=this;return r&&"object"==typeof r.upload&&void 0!==a.progressUpload&&r.upload.addEventListener("progress",function(r){a.progressUpload(r)},!1),r}}),r.trumbowyg.addedXhrProgressEvent=!0}}var o={serverPath:"",fileFieldName:"fileToUpload",data:[],headers:{},xhrFields:{},urlPropertyName:"file",statusPropertyName:"success",success:void 0,error:void 0};a(),r.extend(!0,r.trumbowyg,{langs:{en:{upload:"Upload",file:"File",uploadError:"Error"},sk:{upload:"Nahrať",file:"Súbor",uploadError:"Chyba"},fr:{upload:"Envoi",file:"Fichier",uploadError:"Erreur"},cs:{upload:"Nahrát obrázek",file:"Soubor",uploadError:"Chyba"},zh_cn:{upload:"上传",file:"文件",uploadError:"错误"},zh_tw:{upload:"上傳",file:"文件",uploadError:"錯誤"},ru:{upload:"Загрузка",file:"Файл",uploadError:"Ошибка"},ja:{upload:"アップロード",file:"ファイル",uploadError:"エラー"},pt_br:{upload:"Enviar do local",file:"Arquivo",uploadError:"Erro"}},plugins:{upload:{init:function(a){a.o.plugins.upload=r.extend(!0,{},o,a.o.plugins.upload||{});var l={fn:function(){a.saveRange();var o,l=a.o.prefix,t=a.openModalInsert(a.lang.upload,{file:{type:"file",required:!0,attributes:{accept:"image/*"}},alt:{label:"description",value:a.getRangeText()}},function(u){var p=new FormData;p.append(a.o.plugins.upload.fileFieldName,o),a.o.plugins.upload.data.map(function(r){p.append(r.name,r.value)}),r.map(u,function(r,e){"file"!==e&&p.append(e,r)}),0===r("."+l+"progress",t).length&&r("."+l+"modal-title",t).after(r("<div/>",{"class":l+"progress"}).append(r("<div/>",{"class":l+"progress-bar"}))),r.ajax({url:a.o.plugins.upload.serverPath,headers:a.o.plugins.upload.headers,xhrFields:a.o.plugins.upload.xhrFields,type:"POST",data:p,cache:!1,dataType:"json",processData:!1,contentType:!1,progressUpload:function(e){r("."+l+"progress-bar").css("width",Math.round(100*e.loaded/e.total)+"%")},success:function(o){if(a.o.plugins.upload.success)a.o.plugins.upload.success(o,a,t,u);else if(e(o,a.o.plugins.upload.statusPropertyName.split("."))){var l=e(o,a.o.plugins.upload.urlPropertyName.split("."));a.execCmd("insertImage",l),r('img[src="'+l+'"]:not([alt])',a.$box).attr("alt",u.alt),setTimeout(function(){a.closeModal()},250),a.$c.trigger("tbwuploadsuccess",[a,o,l])}else a.addErrorOnModalField(r("input[type=file]",t),a.lang[o.message]),a.$c.trigger("tbwuploaderror",[a,o])},error:a.o.plugins.upload.error||function(){a.addErrorOnModalField(r("input[type=file]",t),a.lang.uploadError),a.$c.trigger("tbwuploaderror",[a])}})});r("input[type=file]").on("change",function(r){try{o=r.target.files[0]}catch(e){o=r.target.value}})}};a.addBtnDef("upload",l)}}}})}(jQuery);
|
|
@ -1,786 +0,0 @@
|
|||
/**
|
||||
* Trumbowyg v2.5.0 - A lightweight WYSIWYG editor
|
||||
* Default stylesheet for Trumbowyg editor
|
||||
* ------------------------
|
||||
* @link http://alex-d.github.io/Trumbowyg
|
||||
* @license MIT
|
||||
* @author Alexandre Demode (Alex-D)
|
||||
* Twitter : @AlexandreDemode
|
||||
* Website : alex-d.fr
|
||||
*/
|
||||
|
||||
$light-color: #ecf0f1 !default;
|
||||
$dark-color: #222 !default;
|
||||
|
||||
$modal-submit-color: #2ecc71 !default;
|
||||
$modal-reset-color: #EEE !default;
|
||||
|
||||
$transition-duration: 150ms !default;
|
||||
|
||||
#trumbowyg-icons {
|
||||
overflow: hidden;
|
||||
visibility: hidden;
|
||||
height: 0;
|
||||
width: 0;
|
||||
|
||||
svg {
|
||||
height: 0;
|
||||
width: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.trumbowyg-box {
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
svg {
|
||||
width: 17px;
|
||||
height: 100%;
|
||||
fill: $dark-color;
|
||||
}
|
||||
}
|
||||
|
||||
.trumbowyg-box,
|
||||
.trumbowyg-editor {
|
||||
display: block;
|
||||
position: relative;
|
||||
border: 1px solid #DDD;
|
||||
width: 100%;
|
||||
min-height: 300px;
|
||||
margin: 17px auto;
|
||||
}
|
||||
|
||||
.trumbowyg-box .trumbowyg-editor {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.trumbowyg-box.trumbowyg-fullscreen {
|
||||
background: #FEFEFE;
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
.trumbowyg-editor,
|
||||
.trumbowyg-textarea {
|
||||
position: relative;
|
||||
box-sizing: border-box;
|
||||
padding: 20px;
|
||||
min-height: 300px;
|
||||
width: 100%;
|
||||
border-style: none;
|
||||
resize: none;
|
||||
outline: none;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.trumbowyg-box-blur .trumbowyg-editor {
|
||||
*,
|
||||
&::before {
|
||||
color: transparent !important;
|
||||
text-shadow: 0 0 7px #333;
|
||||
|
||||
@media screen and (min-width: 0 \0
|
||||
) {
|
||||
color: rgba(200, 200, 200, 0.6) !important;
|
||||
}
|
||||
@supports (-ms-accelerator:true) {
|
||||
color: rgba(200, 200, 200, 0.6) !important;
|
||||
}
|
||||
}
|
||||
img,
|
||||
hr {
|
||||
opacity: 0.2;
|
||||
}
|
||||
}
|
||||
|
||||
.trumbowyg-textarea {
|
||||
position: relative;
|
||||
display: block;
|
||||
overflow: auto;
|
||||
border: none;
|
||||
white-space: normal;
|
||||
font-size: 14px;
|
||||
font-family: "Inconsolata", "Consolas", "Courier", "Courier New", sans-serif;
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
.trumbowyg-box.trumbowyg-editor-visible {
|
||||
.trumbowyg-textarea {
|
||||
height: 1px !important;
|
||||
width: 25%;
|
||||
min-height: 0 !important;
|
||||
padding: 0 !important;
|
||||
background: none;
|
||||
opacity: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.trumbowyg-box.trumbowyg-editor-hidden {
|
||||
.trumbowyg-textarea {
|
||||
display: block;
|
||||
}
|
||||
.trumbowyg-editor {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.trumbowyg-box.trumbowyg-disabled {
|
||||
.trumbowyg-textarea {
|
||||
opacity: 0.8;
|
||||
background: none;
|
||||
}
|
||||
}
|
||||
|
||||
.trumbowyg-editor[contenteditable=true]:empty:not(:focus)::before {
|
||||
content: attr(placeholder);
|
||||
color: #999;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.trumbowyg-button-pane {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
width: 100%;
|
||||
min-height: 36px;
|
||||
background: $light-color;
|
||||
border-bottom: 1px solid darken($light-color, 7%);
|
||||
margin: 0;
|
||||
padding: 0 5px;
|
||||
list-style-type: none;
|
||||
line-height: 10px;
|
||||
backface-visibility: hidden;
|
||||
|
||||
&::after {
|
||||
content: " ";
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 36px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
width: 100%;
|
||||
height: 1px;
|
||||
background: darken($light-color, 7%);
|
||||
}
|
||||
|
||||
.trumbowyg-button-group {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
|
||||
.trumbowyg-fullscreen-button svg {
|
||||
color: transparent;
|
||||
}
|
||||
|
||||
&:not(:empty) + .trumbowyg-button-group::before {
|
||||
content: " ";
|
||||
display: block;
|
||||
width: 1px;
|
||||
background: darken($light-color, 7%);
|
||||
margin: 0 5px;
|
||||
height: 35px;
|
||||
}
|
||||
}
|
||||
|
||||
button {
|
||||
display: block;
|
||||
position: relative;
|
||||
width: 35px;
|
||||
height: 35px;
|
||||
padding: 1px 6px !important;
|
||||
margin-bottom: 1px;
|
||||
overflow: hidden;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
background: none;
|
||||
transition: background-color $transition-duration, opacity $transition-duration;
|
||||
|
||||
&.trumbowyg-textual-button {
|
||||
width: auto;
|
||||
line-height: 35px;
|
||||
}
|
||||
}
|
||||
|
||||
&.trumbowyg-disable button:not(.trumbowyg-not-disable):not(.trumbowyg-active),
|
||||
.trumbowyg-disabled & button:not(.trumbowyg-not-disable):not(.trumbowyg-viewHTML-button) {
|
||||
opacity: 0.2;
|
||||
cursor: default;
|
||||
}
|
||||
&.trumbowyg-disable,
|
||||
.trumbowyg-disabled & {
|
||||
.trumbowyg-button-group::before {
|
||||
background: darken($light-color, 3%);
|
||||
}
|
||||
}
|
||||
|
||||
button:not(.trumbowyg-disable):hover,
|
||||
button:not(.trumbowyg-disable):focus,
|
||||
button.trumbowyg-active {
|
||||
background-color: #FFF;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.trumbowyg-open-dropdown {
|
||||
&::after {
|
||||
display: block;
|
||||
content: " ";
|
||||
position: absolute;
|
||||
top: 25px;
|
||||
right: 3px;
|
||||
height: 0;
|
||||
width: 0;
|
||||
border: 3px solid transparent;
|
||||
border-top-color: #555;
|
||||
}
|
||||
|
||||
&.trumbowyg-textual-button {
|
||||
padding-left: 10px !important;
|
||||
padding-right: 18px !important;
|
||||
|
||||
&::after {
|
||||
top: 17px;
|
||||
right: 7px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.trumbowyg-right {
|
||||
margin-left: auto;
|
||||
|
||||
&::before {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.trumbowyg-dropdown {
|
||||
width: 200px;
|
||||
border: 1px solid $light-color;
|
||||
padding: 5px 0;
|
||||
border-top: none;
|
||||
background: #FFF;
|
||||
margin-left: -1px;
|
||||
box-shadow: rgba(0, 0, 0, .1) 0 2px 3px;
|
||||
|
||||
button {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 35px;
|
||||
line-height: 35px;
|
||||
text-decoration: none;
|
||||
background: #FFF;
|
||||
padding: 0 10px;
|
||||
color: #333 !important;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
text-align: left;
|
||||
font-size: 15px;
|
||||
transition: all $transition-duration;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
background: $light-color;
|
||||
}
|
||||
|
||||
svg {
|
||||
float: left;
|
||||
margin-right: 14px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Modal box */
|
||||
.trumbowyg-modal {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
max-width: 520px;
|
||||
width: 100%;
|
||||
height: 350px;
|
||||
z-index: 11;
|
||||
overflow: hidden;
|
||||
backface-visibility: hidden;
|
||||
}
|
||||
|
||||
.trumbowyg-modal-box {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
max-width: 500px;
|
||||
width: calc(100% - 20px);
|
||||
padding-bottom: 45px;
|
||||
z-index: 1;
|
||||
background-color: #FFF;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
box-shadow: rgba(0, 0, 0, .2) 0 2px 3px;
|
||||
backface-visibility: hidden;
|
||||
|
||||
.trumbowyg-modal-title {
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
margin: 0 0 20px;
|
||||
padding: 15px 0 13px;
|
||||
display: block;
|
||||
border-bottom: 1px solid #EEE;
|
||||
color: #333;
|
||||
background: lighten($light-color, 5%);
|
||||
}
|
||||
|
||||
.trumbowyg-progress {
|
||||
width: 100%;
|
||||
height: 3px;
|
||||
position: absolute;
|
||||
top: 58px;
|
||||
|
||||
.trumbowyg-progress-bar {
|
||||
background: #2BC06A;
|
||||
height: 100%;
|
||||
transition: width $transition-duration linear;
|
||||
}
|
||||
}
|
||||
|
||||
label {
|
||||
display: block;
|
||||
position: relative;
|
||||
margin: 15px 12px;
|
||||
height: 29px;
|
||||
line-height: 29px;
|
||||
overflow: hidden;
|
||||
|
||||
.trumbowyg-input-infos {
|
||||
display: block;
|
||||
text-align: left;
|
||||
height: 25px;
|
||||
line-height: 25px;
|
||||
transition: all 150ms;
|
||||
|
||||
span {
|
||||
display: block;
|
||||
color: darken($light-color, 45%);
|
||||
background-color: lighten($light-color, 5%);
|
||||
border: 1px solid #DEDEDE;
|
||||
padding: 0 7px;
|
||||
width: 150px;
|
||||
}
|
||||
span.trumbowyg-msg-error {
|
||||
color: #e74c3c;
|
||||
}
|
||||
}
|
||||
|
||||
&.trumbowyg-input-error {
|
||||
input,
|
||||
textarea {
|
||||
border: 1px solid #e74c3c;
|
||||
}
|
||||
|
||||
.trumbowyg-input-infos {
|
||||
margin-top: -27px;
|
||||
}
|
||||
}
|
||||
|
||||
input {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 27px;
|
||||
line-height: 27px;
|
||||
border: 1px solid #DEDEDE;
|
||||
background: #fff;
|
||||
font-size: 14px;
|
||||
max-width: 330px;
|
||||
width: 70%;
|
||||
padding: 0 7px;
|
||||
transition: all $transition-duration;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
outline: none;
|
||||
border: 1px solid #95a5a6;
|
||||
}
|
||||
&:focus {
|
||||
background: lighten($light-color, 5%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.error {
|
||||
margin-top: 25px;
|
||||
display: block;
|
||||
color: red;
|
||||
}
|
||||
|
||||
.trumbowyg-modal-button {
|
||||
position: absolute;
|
||||
bottom: 10px;
|
||||
right: 0;
|
||||
text-decoration: none;
|
||||
color: #FFF;
|
||||
display: block;
|
||||
width: 100px;
|
||||
height: 35px;
|
||||
line-height: 33px;
|
||||
margin: 0 10px;
|
||||
background-color: #333;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
font-family: "Trebuchet MS", Helvetica, Verdana, sans-serif;
|
||||
font-size: 16px;
|
||||
transition: all $transition-duration;
|
||||
|
||||
&.trumbowyg-modal-submit {
|
||||
right: 110px;
|
||||
background: darken($modal-submit-color, 3%);
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
background: lighten($modal-submit-color, 5%);
|
||||
outline: none;
|
||||
}
|
||||
&:active {
|
||||
background: darken($modal-submit-color, 10%);
|
||||
}
|
||||
}
|
||||
|
||||
&.trumbowyg-modal-reset {
|
||||
color: #555;
|
||||
background: darken($modal-reset-color, 3%);
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
background: lighten($modal-reset-color, 5%);
|
||||
outline: none;
|
||||
}
|
||||
&:active {
|
||||
background: darken($modal-reset-color, 10%);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.trumbowyg-overlay {
|
||||
position: absolute;
|
||||
background-color: rgba(255, 255, 255, 0.5);
|
||||
width: 100%;
|
||||
left: 0;
|
||||
display: none;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fullscreen
|
||||
*/
|
||||
body.trumbowyg-body-fullscreen {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.trumbowyg-fullscreen {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
z-index: 99999;
|
||||
|
||||
&.trumbowyg-box,
|
||||
.trumbowyg-editor {
|
||||
border: none;
|
||||
}
|
||||
.trumbowyg-editor,
|
||||
.trumbowyg-textarea {
|
||||
height: calc(100% - 37px) !important;
|
||||
overflow: auto;
|
||||
}
|
||||
.trumbowyg-overlay {
|
||||
height: 100% !important;
|
||||
}
|
||||
.trumbowyg-button-group .trumbowyg-fullscreen-button svg {
|
||||
color: $dark-color;
|
||||
fill: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
.trumbowyg-editor {
|
||||
object,
|
||||
embed,
|
||||
video,
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
video,
|
||||
img {
|
||||
height: auto;
|
||||
}
|
||||
img {
|
||||
cursor: move;
|
||||
}
|
||||
|
||||
/*
|
||||
* lset for resetCss option
|
||||
*/
|
||||
&.trumbowyg-reset-css {
|
||||
background: #FEFEFE !important;
|
||||
font-family: "Trebuchet MS", Helvetica, Verdana, sans-serif !important;
|
||||
font-size: 14px !important;
|
||||
line-height: 1.45em !important;
|
||||
white-space: normal !important;
|
||||
color: #333;
|
||||
|
||||
a {
|
||||
color: #15c !important;
|
||||
text-decoration: underline !important;
|
||||
}
|
||||
|
||||
div,
|
||||
p,
|
||||
ul,
|
||||
ol,
|
||||
blockquote {
|
||||
box-shadow: none !important;
|
||||
background: none !important;
|
||||
margin: 0 !important;
|
||||
margin-bottom: 15px !important;
|
||||
line-height: 1.4em !important;
|
||||
font-family: "Trebuchet MS", Helvetica, Verdana, sans-serif !important;
|
||||
font-size: 14px !important;
|
||||
border: none;
|
||||
}
|
||||
iframe,
|
||||
object,
|
||||
hr {
|
||||
margin-bottom: 15px !important;
|
||||
}
|
||||
blockquote {
|
||||
margin-left: 32px !important;
|
||||
font-style: italic !important;
|
||||
color: #555;
|
||||
}
|
||||
ul,
|
||||
ol {
|
||||
padding-left: 20px !important;
|
||||
}
|
||||
ul ul,
|
||||
ol ol,
|
||||
ul ol,
|
||||
ol ul {
|
||||
border: none;
|
||||
margin: 2px !important;
|
||||
padding: 0 !important;
|
||||
padding-left: 24px !important;
|
||||
}
|
||||
hr {
|
||||
display: block;
|
||||
height: 1px;
|
||||
border: none;
|
||||
border-top: 1px solid #CCC;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4 {
|
||||
color: #111;
|
||||
background: none;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 32px !important;
|
||||
line-height: 38px !important;
|
||||
margin-bottom: 20px !important;
|
||||
}
|
||||
h2 {
|
||||
font-size: 26px !important;
|
||||
line-height: 34px !important;
|
||||
margin-bottom: 15px !important;
|
||||
}
|
||||
h3 {
|
||||
font-size: 22px !important;
|
||||
line-height: 28px !important;
|
||||
margin-bottom: 7px !important;
|
||||
}
|
||||
h4 {
|
||||
font-size: 16px !important;
|
||||
line-height: 22px !important;
|
||||
margin-bottom: 7px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Dark theme
|
||||
*/
|
||||
.trumbowyg-dark {
|
||||
.trumbowyg-textarea {
|
||||
background: #111;
|
||||
color: #ddd;
|
||||
}
|
||||
.trumbowyg-box {
|
||||
border: 1px solid lighten($dark-color, 7%);
|
||||
|
||||
&.trumbowyg-fullscreen {
|
||||
background: #111;
|
||||
}
|
||||
&.trumbowyg-box-blur .trumbowyg-editor {
|
||||
*,
|
||||
&::before {
|
||||
text-shadow: 0 0 7px #ccc;
|
||||
|
||||
@media screen and (min-width: 0 \0
|
||||
) {
|
||||
color: rgba(20, 20, 20, 0.6) !important;
|
||||
}
|
||||
@supports (-ms-accelerator:true) {
|
||||
color: rgba(20, 20, 20, 0.6) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
svg {
|
||||
fill: $light-color;
|
||||
color: $light-color;
|
||||
}
|
||||
}
|
||||
.trumbowyg-button-pane {
|
||||
background-color: $dark-color;
|
||||
border-bottom-color: lighten($dark-color, 7%);
|
||||
|
||||
&::after {
|
||||
background: lighten($dark-color, 7%);
|
||||
}
|
||||
|
||||
.trumbowyg-button-group:not(:empty) {
|
||||
&::before {
|
||||
background-color: lighten($dark-color, 7%);
|
||||
}
|
||||
.trumbowyg-fullscreen-button svg {
|
||||
color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
&.trumbowyg-disable {
|
||||
.trumbowyg-button-group::before {
|
||||
background-color: lighten($dark-color, 3%);
|
||||
}
|
||||
}
|
||||
|
||||
button:not(.trumbowyg-disable):hover,
|
||||
button:not(.trumbowyg-disable):focus,
|
||||
button.trumbowyg-active {
|
||||
background-color: #333;
|
||||
}
|
||||
|
||||
.trumbowyg-open-dropdown::after {
|
||||
border-top-color: #fff;
|
||||
}
|
||||
}
|
||||
.trumbowyg-fullscreen {
|
||||
.trumbowyg-button-group .trumbowyg-fullscreen-button svg {
|
||||
color: $light-color;
|
||||
fill: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
.trumbowyg-dropdown {
|
||||
border-color: $dark-color;
|
||||
background: #333;
|
||||
box-shadow: rgba(0, 0, 0, .3) 0 2px 3px;
|
||||
|
||||
button {
|
||||
background: #333;
|
||||
color: #fff !important;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
background: $dark-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Modal box
|
||||
.trumbowyg-modal-box {
|
||||
background-color: $dark-color;
|
||||
|
||||
.trumbowyg-modal-title {
|
||||
border-bottom: 1px solid #555;
|
||||
color: #fff;
|
||||
background: lighten($dark-color, 10%);
|
||||
}
|
||||
|
||||
label {
|
||||
display: block;
|
||||
position: relative;
|
||||
margin: 15px 12px;
|
||||
height: 27px;
|
||||
line-height: 27px;
|
||||
overflow: hidden;
|
||||
|
||||
.trumbowyg-input-infos {
|
||||
span {
|
||||
color: #eee;
|
||||
background-color: lighten($dark-color, 5%);
|
||||
border-color: $dark-color;
|
||||
}
|
||||
span.trumbowyg-msg-error {
|
||||
color: #e74c3c;
|
||||
}
|
||||
}
|
||||
|
||||
&.trumbowyg-input-error {
|
||||
input,
|
||||
textarea {
|
||||
border-color: #e74c3c;
|
||||
}
|
||||
}
|
||||
|
||||
input {
|
||||
border-color: $dark-color;
|
||||
color: #eee;
|
||||
background: #333;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
border-color: lighten($dark-color, 25%);
|
||||
}
|
||||
&:focus {
|
||||
background-color: lighten($dark-color, 5%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.trumbowyg-modal-button {
|
||||
&.trumbowyg-modal-submit {
|
||||
background: darken($modal-submit-color, 20%);
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
background: darken($modal-submit-color, 10%);
|
||||
}
|
||||
&:active {
|
||||
background: darken($modal-submit-color, 25%);
|
||||
}
|
||||
}
|
||||
&.trumbowyg-modal-reset {
|
||||
background: #333;
|
||||
color: #ccc;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
background: #444;
|
||||
}
|
||||
&:active {
|
||||
background: #111;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.trumbowyg-overlay {
|
||||
background-color: rgba(15, 15, 15, 0.6);
|
||||
}
|
||||
}
|
|
@ -1,584 +0,0 @@
|
|||
/**
|
||||
* Trumbowyg v2.5.0 - A lightweight WYSIWYG editor
|
||||
* Default stylesheet for Trumbowyg editor
|
||||
* ------------------------
|
||||
* @link http://alex-d.github.io/Trumbowyg
|
||||
* @license MIT
|
||||
* @author Alexandre Demode (Alex-D)
|
||||
* Twitter : @AlexandreDemode
|
||||
* Website : alex-d.fr
|
||||
*/
|
||||
|
||||
#trumbowyg-icons {
|
||||
overflow: hidden;
|
||||
visibility: hidden;
|
||||
height: 0;
|
||||
width: 0; }
|
||||
#trumbowyg-icons svg {
|
||||
height: 0;
|
||||
width: 0; }
|
||||
|
||||
.trumbowyg-box *,
|
||||
.trumbowyg-box *::before,
|
||||
.trumbowyg-box *::after {
|
||||
box-sizing: border-box; }
|
||||
|
||||
.trumbowyg-box svg {
|
||||
width: 17px;
|
||||
height: 100%;
|
||||
fill: #222; }
|
||||
|
||||
.trumbowyg-box,
|
||||
.trumbowyg-editor {
|
||||
display: block;
|
||||
position: relative;
|
||||
border: 1px solid #DDD;
|
||||
width: 100%;
|
||||
min-height: 300px;
|
||||
margin: 17px auto; }
|
||||
|
||||
.trumbowyg-box .trumbowyg-editor {
|
||||
margin: 0 auto; }
|
||||
|
||||
.trumbowyg-box.trumbowyg-fullscreen {
|
||||
background: #FEFEFE;
|
||||
border: none !important; }
|
||||
|
||||
.trumbowyg-editor,
|
||||
.trumbowyg-textarea {
|
||||
position: relative;
|
||||
box-sizing: border-box;
|
||||
padding: 20px;
|
||||
min-height: 300px;
|
||||
width: 100%;
|
||||
border-style: none;
|
||||
resize: none;
|
||||
outline: none;
|
||||
overflow: auto; }
|
||||
|
||||
.trumbowyg-box-blur .trumbowyg-editor *, .trumbowyg-box-blur .trumbowyg-editor::before {
|
||||
color: transparent !important;
|
||||
text-shadow: 0 0 7px #333; }
|
||||
@media screen and (min-width: 0 \0 ) {
|
||||
.trumbowyg-box-blur .trumbowyg-editor *, .trumbowyg-box-blur .trumbowyg-editor::before {
|
||||
color: rgba(200, 200, 200, 0.6) !important; } }
|
||||
@supports (-ms-accelerator: true) {
|
||||
.trumbowyg-box-blur .trumbowyg-editor *, .trumbowyg-box-blur .trumbowyg-editor::before {
|
||||
color: rgba(200, 200, 200, 0.6) !important; } }
|
||||
|
||||
.trumbowyg-box-blur .trumbowyg-editor img,
|
||||
.trumbowyg-box-blur .trumbowyg-editor hr {
|
||||
opacity: 0.2; }
|
||||
|
||||
.trumbowyg-textarea {
|
||||
position: relative;
|
||||
display: block;
|
||||
overflow: auto;
|
||||
border: none;
|
||||
white-space: normal;
|
||||
font-size: 14px;
|
||||
font-family: "Inconsolata", "Consolas", "Courier", "Courier New", sans-serif;
|
||||
line-height: 18px; }
|
||||
|
||||
.trumbowyg-box.trumbowyg-editor-visible .trumbowyg-textarea {
|
||||
height: 1px !important;
|
||||
width: 25%;
|
||||
min-height: 0 !important;
|
||||
padding: 0 !important;
|
||||
background: none;
|
||||
opacity: 0 !important; }
|
||||
|
||||
.trumbowyg-box.trumbowyg-editor-hidden .trumbowyg-textarea {
|
||||
display: block; }
|
||||
|
||||
.trumbowyg-box.trumbowyg-editor-hidden .trumbowyg-editor {
|
||||
display: none; }
|
||||
|
||||
.trumbowyg-box.trumbowyg-disabled .trumbowyg-textarea {
|
||||
opacity: 0.8;
|
||||
background: none; }
|
||||
|
||||
.trumbowyg-editor[contenteditable=true]:empty:not(:focus)::before {
|
||||
content: attr(placeholder);
|
||||
color: #999;
|
||||
pointer-events: none; }
|
||||
|
||||
.trumbowyg-button-pane {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-ms-flex-flow: row wrap;
|
||||
flex-flow: row wrap;
|
||||
width: 100%;
|
||||
min-height: 36px;
|
||||
background: #ecf0f1;
|
||||
border-bottom: 1px solid #d7e0e2;
|
||||
margin: 0;
|
||||
padding: 0 5px;
|
||||
list-style-type: none;
|
||||
line-height: 10px;
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden; }
|
||||
.trumbowyg-button-pane::after {
|
||||
content: " ";
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 36px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
width: 100%;
|
||||
height: 1px;
|
||||
background: #d7e0e2; }
|
||||
.trumbowyg-button-pane .trumbowyg-button-group {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-ms-flex-flow: row wrap;
|
||||
flex-flow: row wrap; }
|
||||
.trumbowyg-button-pane .trumbowyg-button-group .trumbowyg-fullscreen-button svg {
|
||||
color: transparent; }
|
||||
.trumbowyg-button-pane .trumbowyg-button-group:not(:empty) + .trumbowyg-button-group::before {
|
||||
content: " ";
|
||||
display: block;
|
||||
width: 1px;
|
||||
background: #d7e0e2;
|
||||
margin: 0 5px;
|
||||
height: 35px; }
|
||||
.trumbowyg-button-pane button {
|
||||
display: block;
|
||||
position: relative;
|
||||
width: 35px;
|
||||
height: 35px;
|
||||
padding: 1px 6px !important;
|
||||
margin-bottom: 1px;
|
||||
overflow: hidden;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
background: none;
|
||||
-webkit-transition: background-color 150ms, opacity 150ms;
|
||||
transition: background-color 150ms, opacity 150ms; }
|
||||
.trumbowyg-button-pane button.trumbowyg-textual-button {
|
||||
width: auto;
|
||||
line-height: 35px; }
|
||||
.trumbowyg-button-pane.trumbowyg-disable button:not(.trumbowyg-not-disable):not(.trumbowyg-active),
|
||||
.trumbowyg-disabled .trumbowyg-button-pane button:not(.trumbowyg-not-disable):not(.trumbowyg-viewHTML-button) {
|
||||
opacity: 0.2;
|
||||
cursor: default; }
|
||||
.trumbowyg-button-pane.trumbowyg-disable .trumbowyg-button-group::before,
|
||||
.trumbowyg-disabled .trumbowyg-button-pane .trumbowyg-button-group::before {
|
||||
background: #e3e9eb; }
|
||||
.trumbowyg-button-pane button:not(.trumbowyg-disable):hover,
|
||||
.trumbowyg-button-pane button:not(.trumbowyg-disable):focus,
|
||||
.trumbowyg-button-pane button.trumbowyg-active {
|
||||
background-color: #FFF;
|
||||
outline: none; }
|
||||
.trumbowyg-button-pane .trumbowyg-open-dropdown::after {
|
||||
display: block;
|
||||
content: " ";
|
||||
position: absolute;
|
||||
top: 25px;
|
||||
right: 3px;
|
||||
height: 0;
|
||||
width: 0;
|
||||
border: 3px solid transparent;
|
||||
border-top-color: #555; }
|
||||
.trumbowyg-button-pane .trumbowyg-open-dropdown.trumbowyg-textual-button {
|
||||
padding-left: 10px !important;
|
||||
padding-right: 18px !important; }
|
||||
.trumbowyg-button-pane .trumbowyg-open-dropdown.trumbowyg-textual-button::after {
|
||||
top: 17px;
|
||||
right: 7px; }
|
||||
.trumbowyg-button-pane .trumbowyg-right {
|
||||
margin-left: auto; }
|
||||
.trumbowyg-button-pane .trumbowyg-right::before {
|
||||
display: none !important; }
|
||||
|
||||
.trumbowyg-dropdown {
|
||||
width: 200px;
|
||||
border: 1px solid #ecf0f1;
|
||||
padding: 5px 0;
|
||||
border-top: none;
|
||||
background: #FFF;
|
||||
margin-left: -1px;
|
||||
box-shadow: rgba(0, 0, 0, 0.1) 0 2px 3px; }
|
||||
.trumbowyg-dropdown button {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 35px;
|
||||
line-height: 35px;
|
||||
text-decoration: none;
|
||||
background: #FFF;
|
||||
padding: 0 10px;
|
||||
color: #333 !important;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
text-align: left;
|
||||
font-size: 15px;
|
||||
-webkit-transition: all 150ms;
|
||||
transition: all 150ms; }
|
||||
.trumbowyg-dropdown button:hover, .trumbowyg-dropdown button:focus {
|
||||
background: #ecf0f1; }
|
||||
.trumbowyg-dropdown button svg {
|
||||
float: left;
|
||||
margin-right: 14px; }
|
||||
|
||||
/* Modal box */
|
||||
.trumbowyg-modal {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 50%;
|
||||
-webkit-transform: translateX(-50%);
|
||||
transform: translateX(-50%);
|
||||
max-width: 520px;
|
||||
width: 100%;
|
||||
height: 350px;
|
||||
z-index: 11;
|
||||
overflow: hidden;
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden; }
|
||||
|
||||
.trumbowyg-modal-box {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 50%;
|
||||
-webkit-transform: translateX(-50%);
|
||||
transform: translateX(-50%);
|
||||
max-width: 500px;
|
||||
width: calc(100% - 20px);
|
||||
padding-bottom: 45px;
|
||||
z-index: 1;
|
||||
background-color: #FFF;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
box-shadow: rgba(0, 0, 0, 0.2) 0 2px 3px;
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden; }
|
||||
.trumbowyg-modal-box .trumbowyg-modal-title {
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
margin: 0 0 20px;
|
||||
padding: 15px 0 13px;
|
||||
display: block;
|
||||
border-bottom: 1px solid #EEE;
|
||||
color: #333;
|
||||
background: #fbfcfc; }
|
||||
.trumbowyg-modal-box .trumbowyg-progress {
|
||||
width: 100%;
|
||||
height: 3px;
|
||||
position: absolute;
|
||||
top: 58px; }
|
||||
.trumbowyg-modal-box .trumbowyg-progress .trumbowyg-progress-bar {
|
||||
background: #2BC06A;
|
||||
height: 100%;
|
||||
-webkit-transition: width 150ms linear;
|
||||
transition: width 150ms linear; }
|
||||
.trumbowyg-modal-box label {
|
||||
display: block;
|
||||
position: relative;
|
||||
margin: 15px 12px;
|
||||
height: 29px;
|
||||
line-height: 29px;
|
||||
overflow: hidden; }
|
||||
.trumbowyg-modal-box label .trumbowyg-input-infos {
|
||||
display: block;
|
||||
text-align: left;
|
||||
height: 25px;
|
||||
line-height: 25px;
|
||||
-webkit-transition: all 150ms;
|
||||
transition: all 150ms; }
|
||||
.trumbowyg-modal-box label .trumbowyg-input-infos span {
|
||||
display: block;
|
||||
color: #69878f;
|
||||
background-color: #fbfcfc;
|
||||
border: 1px solid #DEDEDE;
|
||||
padding: 0 7px;
|
||||
width: 150px; }
|
||||
.trumbowyg-modal-box label .trumbowyg-input-infos span.trumbowyg-msg-error {
|
||||
color: #e74c3c; }
|
||||
.trumbowyg-modal-box label.trumbowyg-input-error input,
|
||||
.trumbowyg-modal-box label.trumbowyg-input-error textarea {
|
||||
border: 1px solid #e74c3c; }
|
||||
.trumbowyg-modal-box label.trumbowyg-input-error .trumbowyg-input-infos {
|
||||
margin-top: -27px; }
|
||||
.trumbowyg-modal-box label input {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 27px;
|
||||
line-height: 27px;
|
||||
border: 1px solid #DEDEDE;
|
||||
background: #fff;
|
||||
font-size: 14px;
|
||||
max-width: 330px;
|
||||
width: 70%;
|
||||
padding: 0 7px;
|
||||
-webkit-transition: all 150ms;
|
||||
transition: all 150ms; }
|
||||
.trumbowyg-modal-box label input:hover, .trumbowyg-modal-box label input:focus {
|
||||
outline: none;
|
||||
border: 1px solid #95a5a6; }
|
||||
.trumbowyg-modal-box label input:focus {
|
||||
background: #fbfcfc; }
|
||||
.trumbowyg-modal-box .error {
|
||||
margin-top: 25px;
|
||||
display: block;
|
||||
color: red; }
|
||||
.trumbowyg-modal-box .trumbowyg-modal-button {
|
||||
position: absolute;
|
||||
bottom: 10px;
|
||||
right: 0;
|
||||
text-decoration: none;
|
||||
color: #FFF;
|
||||
display: block;
|
||||
width: 100px;
|
||||
height: 35px;
|
||||
line-height: 33px;
|
||||
margin: 0 10px;
|
||||
background-color: #333;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
font-family: "Trebuchet MS", Helvetica, Verdana, sans-serif;
|
||||
font-size: 16px;
|
||||
-webkit-transition: all 150ms;
|
||||
transition: all 150ms; }
|
||||
.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit {
|
||||
right: 110px;
|
||||
background: #2bc06a; }
|
||||
.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:hover, .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:focus {
|
||||
background: #40d47e;
|
||||
outline: none; }
|
||||
.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:active {
|
||||
background: #25a25a; }
|
||||
.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset {
|
||||
color: #555;
|
||||
background: #e6e6e6; }
|
||||
.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:hover, .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:focus {
|
||||
background: #fbfbfb;
|
||||
outline: none; }
|
||||
.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:active {
|
||||
background: #d5d5d5; }
|
||||
|
||||
.trumbowyg-overlay {
|
||||
position: absolute;
|
||||
background-color: rgba(255, 255, 255, 0.5);
|
||||
width: 100%;
|
||||
left: 0;
|
||||
display: none;
|
||||
z-index: 10; }
|
||||
|
||||
/**
|
||||
* Fullscreen
|
||||
*/
|
||||
body.trumbowyg-body-fullscreen {
|
||||
overflow: hidden; }
|
||||
|
||||
.trumbowyg-fullscreen {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
z-index: 99999; }
|
||||
.trumbowyg-fullscreen.trumbowyg-box,
|
||||
.trumbowyg-fullscreen .trumbowyg-editor {
|
||||
border: none; }
|
||||
.trumbowyg-fullscreen .trumbowyg-editor,
|
||||
.trumbowyg-fullscreen .trumbowyg-textarea {
|
||||
height: calc(100% - 37px) !important;
|
||||
overflow: auto; }
|
||||
.trumbowyg-fullscreen .trumbowyg-overlay {
|
||||
height: 100% !important; }
|
||||
.trumbowyg-fullscreen .trumbowyg-button-group .trumbowyg-fullscreen-button svg {
|
||||
color: #222;
|
||||
fill: transparent; }
|
||||
|
||||
.trumbowyg-editor {
|
||||
/*
|
||||
* lset for resetCss option
|
||||
*/ }
|
||||
.trumbowyg-editor object,
|
||||
.trumbowyg-editor embed,
|
||||
.trumbowyg-editor video,
|
||||
.trumbowyg-editor img {
|
||||
max-width: 100%; }
|
||||
.trumbowyg-editor video,
|
||||
.trumbowyg-editor img {
|
||||
height: auto; }
|
||||
.trumbowyg-editor img {
|
||||
cursor: move; }
|
||||
.trumbowyg-editor.trumbowyg-reset-css {
|
||||
background: #FEFEFE !important;
|
||||
font-family: "Trebuchet MS", Helvetica, Verdana, sans-serif !important;
|
||||
font-size: 14px !important;
|
||||
line-height: 1.45em !important;
|
||||
white-space: normal !important;
|
||||
color: #333; }
|
||||
.trumbowyg-editor.trumbowyg-reset-css a {
|
||||
color: #15c !important;
|
||||
text-decoration: underline !important; }
|
||||
.trumbowyg-editor.trumbowyg-reset-css div,
|
||||
.trumbowyg-editor.trumbowyg-reset-css p,
|
||||
.trumbowyg-editor.trumbowyg-reset-css ul,
|
||||
.trumbowyg-editor.trumbowyg-reset-css ol,
|
||||
.trumbowyg-editor.trumbowyg-reset-css blockquote {
|
||||
box-shadow: none !important;
|
||||
background: none !important;
|
||||
margin: 0 !important;
|
||||
margin-bottom: 15px !important;
|
||||
line-height: 1.4em !important;
|
||||
font-family: "Trebuchet MS", Helvetica, Verdana, sans-serif !important;
|
||||
font-size: 14px !important;
|
||||
border: none; }
|
||||
.trumbowyg-editor.trumbowyg-reset-css iframe,
|
||||
.trumbowyg-editor.trumbowyg-reset-css object,
|
||||
.trumbowyg-editor.trumbowyg-reset-css hr {
|
||||
margin-bottom: 15px !important; }
|
||||
.trumbowyg-editor.trumbowyg-reset-css blockquote {
|
||||
margin-left: 32px !important;
|
||||
font-style: italic !important;
|
||||
color: #555; }
|
||||
.trumbowyg-editor.trumbowyg-reset-css ul,
|
||||
.trumbowyg-editor.trumbowyg-reset-css ol {
|
||||
padding-left: 20px !important; }
|
||||
.trumbowyg-editor.trumbowyg-reset-css ul ul,
|
||||
.trumbowyg-editor.trumbowyg-reset-css ol ol,
|
||||
.trumbowyg-editor.trumbowyg-reset-css ul ol,
|
||||
.trumbowyg-editor.trumbowyg-reset-css ol ul {
|
||||
border: none;
|
||||
margin: 2px !important;
|
||||
padding: 0 !important;
|
||||
padding-left: 24px !important; }
|
||||
.trumbowyg-editor.trumbowyg-reset-css hr {
|
||||
display: block;
|
||||
height: 1px;
|
||||
border: none;
|
||||
border-top: 1px solid #CCC; }
|
||||
.trumbowyg-editor.trumbowyg-reset-css h1,
|
||||
.trumbowyg-editor.trumbowyg-reset-css h2,
|
||||
.trumbowyg-editor.trumbowyg-reset-css h3,
|
||||
.trumbowyg-editor.trumbowyg-reset-css h4 {
|
||||
color: #111;
|
||||
background: none;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
font-weight: bold; }
|
||||
.trumbowyg-editor.trumbowyg-reset-css h1 {
|
||||
font-size: 32px !important;
|
||||
line-height: 38px !important;
|
||||
margin-bottom: 20px !important; }
|
||||
.trumbowyg-editor.trumbowyg-reset-css h2 {
|
||||
font-size: 26px !important;
|
||||
line-height: 34px !important;
|
||||
margin-bottom: 15px !important; }
|
||||
.trumbowyg-editor.trumbowyg-reset-css h3 {
|
||||
font-size: 22px !important;
|
||||
line-height: 28px !important;
|
||||
margin-bottom: 7px !important; }
|
||||
.trumbowyg-editor.trumbowyg-reset-css h4 {
|
||||
font-size: 16px !important;
|
||||
line-height: 22px !important;
|
||||
margin-bottom: 7px !important; }
|
||||
|
||||
/*
|
||||
* Dark theme
|
||||
*/
|
||||
.trumbowyg-dark .trumbowyg-textarea {
|
||||
background: #111;
|
||||
color: #ddd; }
|
||||
|
||||
.trumbowyg-dark .trumbowyg-box {
|
||||
border: 1px solid #343434; }
|
||||
.trumbowyg-dark .trumbowyg-box.trumbowyg-fullscreen {
|
||||
background: #111; }
|
||||
.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor *, .trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor::before {
|
||||
text-shadow: 0 0 7px #ccc; }
|
||||
@media screen and (min-width: 0 \0 ) {
|
||||
.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor *, .trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor::before {
|
||||
color: rgba(20, 20, 20, 0.6) !important; } }
|
||||
@supports (-ms-accelerator: true) {
|
||||
.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor *, .trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor::before {
|
||||
color: rgba(20, 20, 20, 0.6) !important; } }
|
||||
.trumbowyg-dark .trumbowyg-box svg {
|
||||
fill: #ecf0f1;
|
||||
color: #ecf0f1; }
|
||||
|
||||
.trumbowyg-dark .trumbowyg-button-pane {
|
||||
background-color: #222;
|
||||
border-bottom-color: #343434; }
|
||||
.trumbowyg-dark .trumbowyg-button-pane::after {
|
||||
background: #343434; }
|
||||
.trumbowyg-dark .trumbowyg-button-pane .trumbowyg-button-group:not(:empty)::before {
|
||||
background-color: #343434; }
|
||||
.trumbowyg-dark .trumbowyg-button-pane .trumbowyg-button-group:not(:empty) .trumbowyg-fullscreen-button svg {
|
||||
color: transparent; }
|
||||
.trumbowyg-dark .trumbowyg-button-pane.trumbowyg-disable .trumbowyg-button-group::before {
|
||||
background-color: #2a2a2a; }
|
||||
.trumbowyg-dark .trumbowyg-button-pane button:not(.trumbowyg-disable):hover,
|
||||
.trumbowyg-dark .trumbowyg-button-pane button:not(.trumbowyg-disable):focus,
|
||||
.trumbowyg-dark .trumbowyg-button-pane button.trumbowyg-active {
|
||||
background-color: #333; }
|
||||
.trumbowyg-dark .trumbowyg-button-pane .trumbowyg-open-dropdown::after {
|
||||
border-top-color: #fff; }
|
||||
|
||||
.trumbowyg-dark .trumbowyg-fullscreen .trumbowyg-button-group .trumbowyg-fullscreen-button svg {
|
||||
color: #ecf0f1;
|
||||
fill: transparent; }
|
||||
|
||||
.trumbowyg-dark .trumbowyg-dropdown {
|
||||
border-color: #222;
|
||||
background: #333;
|
||||
box-shadow: rgba(0, 0, 0, 0.3) 0 2px 3px; }
|
||||
.trumbowyg-dark .trumbowyg-dropdown button {
|
||||
background: #333;
|
||||
color: #fff !important; }
|
||||
.trumbowyg-dark .trumbowyg-dropdown button:hover, .trumbowyg-dark .trumbowyg-dropdown button:focus {
|
||||
background: #222; }
|
||||
|
||||
.trumbowyg-dark .trumbowyg-modal-box {
|
||||
background-color: #222; }
|
||||
.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-title {
|
||||
border-bottom: 1px solid #555;
|
||||
color: #fff;
|
||||
background: #3c3c3c; }
|
||||
.trumbowyg-dark .trumbowyg-modal-box label {
|
||||
display: block;
|
||||
position: relative;
|
||||
margin: 15px 12px;
|
||||
height: 27px;
|
||||
line-height: 27px;
|
||||
overflow: hidden; }
|
||||
.trumbowyg-dark .trumbowyg-modal-box label .trumbowyg-input-infos span {
|
||||
color: #eee;
|
||||
background-color: #2f2f2f;
|
||||
border-color: #222; }
|
||||
.trumbowyg-dark .trumbowyg-modal-box label .trumbowyg-input-infos span.trumbowyg-msg-error {
|
||||
color: #e74c3c; }
|
||||
.trumbowyg-dark .trumbowyg-modal-box label.trumbowyg-input-error input,
|
||||
.trumbowyg-dark .trumbowyg-modal-box label.trumbowyg-input-error textarea {
|
||||
border-color: #e74c3c; }
|
||||
.trumbowyg-dark .trumbowyg-modal-box label input {
|
||||
border-color: #222;
|
||||
color: #eee;
|
||||
background: #333; }
|
||||
.trumbowyg-dark .trumbowyg-modal-box label input:hover, .trumbowyg-dark .trumbowyg-modal-box label input:focus {
|
||||
border-color: #626262; }
|
||||
.trumbowyg-dark .trumbowyg-modal-box label input:focus {
|
||||
background-color: #2f2f2f; }
|
||||
.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit {
|
||||
background: #1b7943; }
|
||||
.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:hover, .trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:focus {
|
||||
background: #25a25a; }
|
||||
.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:active {
|
||||
background: #176437; }
|
||||
.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset {
|
||||
background: #333;
|
||||
color: #ccc; }
|
||||
.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:hover, .trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:focus {
|
||||
background: #444; }
|
||||
.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:active {
|
||||
background: #111; }
|
||||
|
||||
.trumbowyg-dark .trumbowyg-overlay {
|
||||
background-color: rgba(15, 15, 15, 0.6); }
|
|
@ -1,187 +1,194 @@
|
|||
@using BuildFeed.Controllers
|
||||
@using BuildFeed.Model
|
||||
@model BuildFeed.Model.Build
|
||||
@model Build
|
||||
@{
|
||||
ViewBag.Title = (string)ViewContext.RouteData.Values["action"] == nameof(FrontController.AddBuild)
|
||||
? $"{VariantTerms.Common_AddBuild} | {InvariantTerms.SiteName}"
|
||||
: $"{VariantTerms.Front_EditBuild} {Model.FullBuildString} | {InvariantTerms.SiteName}";
|
||||
Html.EnableClientValidation();
|
||||
Html.EnableUnobtrusiveJavaScript();
|
||||
ViewBag.Title = (string)ViewContext.RouteData.Values["action"] == nameof(FrontController.AddBuild)
|
||||
? $"{VariantTerms.Common_AddBuild} | {InvariantTerms.SiteName}"
|
||||
: $"{VariantTerms.Front_EditBuild} {Model.FullBuildString} | {InvariantTerms.SiteName}";
|
||||
Html.EnableClientValidation();
|
||||
Html.EnableUnobtrusiveJavaScript();
|
||||
}
|
||||
|
||||
@section head
|
||||
{
|
||||
<link href="~/Scripts/trumbowyg/ui/trumbowyg.min.css" rel="stylesheet" type="text/css" />
|
||||
}
|
||||
|
||||
@if ((string)ViewContext.RouteData.Values["action"] == nameof(FrontController.AddBuild))
|
||||
{
|
||||
<h1>@VariantTerms.Common_AddBuild</h1>
|
||||
<h1>@VariantTerms.Common_AddBuild</h1>
|
||||
}
|
||||
else
|
||||
{
|
||||
<h1 class="eager-wrapping">@VariantTerms.Front_EditBuild @Model.AlternateBuildString</h1>
|
||||
<h1 class="eager-wrapping">@VariantTerms.Front_EditBuild @Model.AlternateBuildString</h1>
|
||||
}
|
||||
|
||||
<div class="form-group">
|
||||
<label for="quickpaste">@VariantTerms.Front_QuickPaste</label>
|
||||
<div>
|
||||
<input id="quickpaste" type="text" />
|
||||
</div>
|
||||
<label for="quickpaste">@VariantTerms.Front_QuickPaste</label>
|
||||
<div>
|
||||
<input id="quickpaste" type="text" />
|
||||
</div>
|
||||
</div>
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
@Html.AntiForgeryToken()
|
||||
@Html.AntiForgeryToken()
|
||||
|
||||
@Html.ValidationSummary(true)
|
||||
@Html.ValidationSummary(true)
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.MajorVersion)
|
||||
<div>
|
||||
@Html.TextBoxFor(model => model.MajorVersion)
|
||||
@Html.ValidationMessageFor(model => model.MajorVersion)
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.MajorVersion)
|
||||
<div>
|
||||
@Html.TextBoxFor(model => model.MajorVersion)
|
||||
@Html.ValidationMessageFor(model => model.MajorVersion)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.MinorVersion)
|
||||
<div>
|
||||
@Html.TextBoxFor(model => model.MinorVersion)
|
||||
@Html.ValidationMessageFor(model => model.MinorVersion)
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.MinorVersion)
|
||||
<div>
|
||||
@Html.TextBoxFor(model => model.MinorVersion)
|
||||
@Html.ValidationMessageFor(model => model.MinorVersion)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.Number)
|
||||
<div>
|
||||
@Html.TextBoxFor(model => model.Number)
|
||||
@Html.ValidationMessageFor(model => model.Number)
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.Number)
|
||||
<div>
|
||||
@Html.TextBoxFor(model => model.Number)
|
||||
@Html.ValidationMessageFor(model => model.Number)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.Revision)
|
||||
<div>
|
||||
@Html.TextBoxFor(model => model.Revision)
|
||||
@Html.ValidationMessageFor(model => model.Revision)
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.Revision)
|
||||
<div>
|
||||
@Html.TextBoxFor(model => model.Revision)
|
||||
@Html.ValidationMessageFor(model => model.Revision)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.Lab)
|
||||
<div>
|
||||
@Html.TextBoxFor(model => model.Lab)
|
||||
@Html.ValidationMessageFor(model => model.Lab)
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.Lab)
|
||||
<div>
|
||||
@Html.TextBoxFor(model => model.Lab)
|
||||
@Html.ValidationMessageFor(model => model.Lab)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.BuildTime)
|
||||
<div>
|
||||
@Html.TextBoxFor(model => model.BuildTime, "{0:yyMMdd-HHmm}")
|
||||
@Html.ValidationMessageFor(model => model.BuildTime)
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.BuildTime)
|
||||
<div>
|
||||
@Html.TextBoxFor(model => model.BuildTime, "{0:yyMMdd-HHmm}")
|
||||
@Html.ValidationMessageFor(model => model.BuildTime)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.SourceType)
|
||||
<div>
|
||||
@Html.DropDownListFor(model => model.SourceType, EnumHelper.GetSelectList(typeof(TypeOfSource)))
|
||||
@Html.ValidationMessageFor(model => model.SourceType)
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.SourceType)
|
||||
<div>
|
||||
@Html.DropDownListFor(model => model.SourceType, EnumHelper.GetSelectList(typeof(TypeOfSource)))
|
||||
@Html.ValidationMessageFor(model => model.SourceType)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.LeakDate)
|
||||
<div>
|
||||
<div class="group-input-button">
|
||||
@Html.TextBoxFor(model => model.LeakDate, "{0:dd/MM/yyyy}")
|
||||
<button onclick="$('#@Html.IdFor(model => model.LeakDate)').val('@DateTime.Now.ToShortDateString()');return false;">@VariantTerms.Front_Today</button>
|
||||
</div>
|
||||
@Html.ValidationMessageFor(model => model.LeakDate)
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.LeakDate)
|
||||
<div>
|
||||
<div class="group-input-button">
|
||||
@Html.TextBoxFor(model => model.LeakDate, "{0:dd/MM/yyyy}")
|
||||
<button onclick="$('#@Html.IdFor(model => model.LeakDate)').val('@DateTime.Now.ToShortDateString()');return false;">@VariantTerms.Front_Today</button>
|
||||
</div>
|
||||
@Html.ValidationMessageFor(model => model.LeakDate)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.SourceDetails)
|
||||
<div class="wide-group">
|
||||
@Html.TextAreaFor(model => model.SourceDetails)
|
||||
@Html.ValidationMessageFor(model => model.SourceDetails)
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(model => model.SourceDetails)
|
||||
<div class="wide-group">
|
||||
@Html.TextAreaFor(model => model.SourceDetails)
|
||||
@Html.ValidationMessageFor(model => model.SourceDetails)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<span class="label-placeholder"></span>
|
||||
<div>
|
||||
<input type="submit" value="@((string)ViewContext.RouteData.Values["action"] == nameof(FrontController.AddBuild)
|
||||
? VariantTerms.Common_AddBuild
|
||||
: VariantTerms.Front_EditBuild)" />
|
||||
 
|
||||
<a href="/" onclick="window.history.back();return false;" class="button">
|
||||
@VariantTerms.Front_ReturnToListing
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<span class="label-placeholder"></span>
|
||||
<div>
|
||||
<input type="submit" value="@((string)ViewContext.RouteData.Values["action"] == nameof(FrontController.AddBuild)
|
||||
? VariantTerms.Common_AddBuild
|
||||
: VariantTerms.Front_EditBuild)" />
|
||||
 
|
||||
<a href="/" onclick="window.history.back();return false;" class="button">
|
||||
@VariantTerms.Front_ReturnToListing
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
@section Scripts
|
||||
{
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js" type="text/javascript"></script>
|
||||
<script src="~/Scripts/trumbowyg/trumbowyg.min.js" type="text/javascript"></script>
|
||||
<link href="~/Scripts/trumbowyg/ui/trumbowyg.min.css" rel="stylesheet" type="text/css" />
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
|
||||
<script src="~/Scripts/trumbowyg/trumbowyg.min.js" type="text/javascript"></script>
|
||||
|
||||
<script src="~/Scripts/jquery.validate.js" type="text/javascript"></script>
|
||||
<script src="~/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.min.js" integrity="sha256-F6h55Qw6sweK+t7SiOJX+2bpSAa3b/fnlrVCJvmEj1A=" crossorigin="anonymous"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validation-unobtrusive/3.2.6/jquery.validate.unobtrusive.min.js" integrity="sha256-g1QKGxqsp+x5JkuN/JjHl96je2wztgS5Wo4h4c7gm9M=" crossorigin="anonymous"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(function($)
|
||||
{
|
||||
$.validator.addMethod('date',
|
||||
function(value, element)
|
||||
{
|
||||
if (this.optional(element))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
<script type="text/javascript">
|
||||
jQuery(function($)
|
||||
{
|
||||
$.validator.addMethod('date',
|
||||
function(value, element)
|
||||
{
|
||||
if (this.optional(element))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
var ok = true;
|
||||
try
|
||||
{
|
||||
new Date(Date.parse(value, "yyMMdd-HHmm"));
|
||||
}
|
||||
catch (err)
|
||||
{
|
||||
ok = false;
|
||||
}
|
||||
return ok;
|
||||
});
|
||||
});
|
||||
var ok = true;
|
||||
try
|
||||
{
|
||||
new Date(Date.parse(value, "yyMMdd-HHmm"));
|
||||
}
|
||||
catch (err)
|
||||
{
|
||||
ok = false;
|
||||
}
|
||||
return ok;
|
||||
});
|
||||
});
|
||||
|
||||
$(function()
|
||||
{
|
||||
$("#@Html.IdFor(model => model.SourceDetails)")
|
||||
.trumbowyg({
|
||||
autogrow: true,
|
||||
btns: [
|
||||
['strong', 'em'],
|
||||
'|', 'link',
|
||||
'|', 'btnGrp-lists',
|
||||
'|', 'btnGrp-justify',
|
||||
'|', 'viewHTML',
|
||||
'|'
|
||||
]
|
||||
});
|
||||
$(function()
|
||||
{
|
||||
$.trumbowyg.svgPath = "/Scripts/trumbowyg/ui/icons.svg";
|
||||
|
||||
$(".trumbowyg").addClass("trumbowyg-black");
|
||||
$("#@Html.IdFor(model => model.SourceDetails)")
|
||||
.trumbowyg({
|
||||
autogrow: true,
|
||||
btns: [
|
||||
['strong', 'em'],
|
||||
'|', 'link',
|
||||
'|', ['justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull'],
|
||||
'|', ['unorderedList', 'orderedList'],
|
||||
'|', 'viewHTML',
|
||||
'|'
|
||||
]
|
||||
});
|
||||
|
||||
$("#quickpaste")
|
||||
.change(function()
|
||||
{
|
||||
var regex = /(([\d]{1,2})\.([\d]{1,2})\.)?([\d]{4,5})(\.([\d]{1,5}))?(\.| \()([a-zA-Z][a-zA-Z0-9._\(\)-]+?)\.(\d\d\d\d\d\d-\d\d\d\d)\)?/;
|
||||
var result = regex.exec($("#quickpaste").val());
|
||||
//$(".trumbowyg").addClass("trumbowyg-black");
|
||||
|
||||
$("#MajorVersion").val(result[2]);
|
||||
$("#MinorVersion").val(result[3]);
|
||||
$("#Number").val(result[4]);
|
||||
$("#Revision").val(result[6]);
|
||||
$("#Lab").val(result[8]);
|
||||
$("#BuildTime").val(result[9]);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
$("#quickpaste")
|
||||
.change(function()
|
||||
{
|
||||
var regex =
|
||||
/(([\d]{1,2})\.([\d]{1,2})\.)?([\d]{4,5})(\.([\d]{1,5}))?(\.| \()([a-zA-Z][a-zA-Z0-9._\(\)-]+?)\.(\d\d\d\d\d\d-\d\d\d\d)\)?/;
|
||||
var result = regex.exec($("#quickpaste").val());
|
||||
|
||||
$("#MajorVersion").val(result[2]);
|
||||
$("#MinorVersion").val(result[3]);
|
||||
$("#Number").val(result[4]);
|
||||
$("#Revision").val(result[6]);
|
||||
$("#Lab").val(result[8]);
|
||||
$("#BuildTime").val(result[9]);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
}
|
|
@ -2,9 +2,9 @@
|
|||
@using BuildFeed.Controllers
|
||||
@using BuildFeed.Model
|
||||
@using BuildFeed.Model.View
|
||||
@model Dictionary<BuildFeed.Model.ProjectFamily, BuildFeed.Model.View.FrontPage>
|
||||
@model Dictionary<ProjectFamily, FrontPage>
|
||||
@{
|
||||
ViewBag.Title = string.Format(VariantTerms.Front_HomeH1, InvariantTerms.SiteName);
|
||||
ViewBag.Title = string.Format(VariantTerms.Front_HomeH1, InvariantTerms.SiteName);
|
||||
}
|
||||
@section Head
|
||||
{
|
||||
|
@ -17,79 +17,79 @@
|
|||
<h3>@VariantTerms.Front_LatestBuilds</h3>
|
||||
<a href="@Url.Action("IndexPage", new
|
||||
{
|
||||
Page = 1
|
||||
Page = 1
|
||||
})" class="latest-full">
|
||||
@VariantTerms.Front_FullBuildListing
|
||||
@VariantTerms.Front_FullBuildListing
|
||||
</a>
|
||||
<div class="trim-wrapper">
|
||||
<div class="latest-family-wrapper">
|
||||
@foreach (KeyValuePair<ProjectFamily, FrontPage> item in Model)
|
||||
{
|
||||
FrontPage family = item.Value;
|
||||
<div class="latest-family-wrapper">
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
FrontPage family = item.Value;
|
||||
|
||||
<div class="latest-family">
|
||||
<h3>@MvcExtensions.GetDisplayTextForEnum(item.Key)</h3>
|
||||
<div class="latest-flex">
|
||||
@if (family.CurrentCanary != null && family.CurrentCanary.Id != family.CurrentInsider?.Id)
|
||||
{
|
||||
<a href="@Url.Action(nameof(FrontController.ViewBuild), new
|
||||
{
|
||||
family.CurrentCanary.Id
|
||||
})" class="latest-flex-item latest-flex-red">
|
||||
<h4 class="latest-flex-title">@VariantTerms.Front_CurrentCanary</h4>
|
||||
<div class="latest-flex-detail">
|
||||
<p class="latest-flex-build">@(family.CurrentCanary.Number).@(family.CurrentCanary.Revision)</p>
|
||||
<p class="latest-flex-lab">@family.CurrentCanary.Lab</p>
|
||||
<p class="latest-flex-time">@(family.CurrentCanary.BuildTime?.ToString("HH:mm, dddd dd MMMM yyyy"))</p>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
@if (family.CurrentInsider != null && family.CurrentInsider.Id != family.CurrentRelease?.Id)
|
||||
{
|
||||
<a href="@Url.Action(nameof(FrontController.ViewBuild), new
|
||||
{
|
||||
family.CurrentInsider.Id
|
||||
})" class="latest-flex-item latest-flex-yellow">
|
||||
<h4 class="latest-flex-title">@VariantTerms.Front_CurrentInsider</h4>
|
||||
<div class="latest-flex-detail">
|
||||
<p class="latest-flex-build">@(family.CurrentInsider.Number).@(family.CurrentInsider.Revision)</p>
|
||||
<p class="latest-flex-lab">@family.CurrentInsider.Lab</p>
|
||||
<p class="latest-flex-time">@(family.CurrentInsider.BuildTime?.ToString("HH:mm, dddd dd MMMM yyyy"))</p>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
@if (family.CurrentRelease != null)
|
||||
{
|
||||
<a href="@Url.Action(nameof(FrontController.ViewBuild), new
|
||||
{
|
||||
family.CurrentRelease.Id
|
||||
})" class="latest-flex-item latest-flex-blue">
|
||||
<h4 class="latest-flex-title">@VariantTerms.Front_CurrentRelease</h4>
|
||||
<div class="latest-flex-detail">
|
||||
<p class="latest-flex-build">@(family.CurrentRelease.Number).@(family.CurrentRelease.Revision)</p>
|
||||
<p class="latest-flex-lab">@family.CurrentRelease.Lab</p>
|
||||
<p class="latest-flex-time">@(family.CurrentRelease.BuildTime?.ToString("HH:mm, dddd dd MMMM yyyy"))</p>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
@if (family.CurrentXbox != null)
|
||||
{
|
||||
<a href="@Url.Action(nameof(FrontController.ViewBuild), new
|
||||
{
|
||||
family.CurrentXbox.Id
|
||||
})" class="latest-flex-item latest-flex-green">
|
||||
<h4 class="latest-flex-title">@VariantTerms.Front_CurrentXbox</h4>
|
||||
<div class="latest-flex-detail">
|
||||
<p class="latest-flex-build">@(family.CurrentXbox.Number).@(family.CurrentXbox.Revision)</p>
|
||||
<p class="latest-flex-lab">@family.CurrentXbox.Lab</p>
|
||||
<p class="latest-flex-time">@(family.CurrentXbox.BuildTime?.ToString("HH:mm, dddd dd MMMM yyyy"))</p>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
<div class="latest-family">
|
||||
<h3>@MvcExtensions.GetDisplayTextForEnum(item.Key)</h3>
|
||||
<div class="latest-flex">
|
||||
@if (family.CurrentCanary != null && family.CurrentCanary.Id != family.CurrentInsider?.Id)
|
||||
{
|
||||
<a href="@Url.Action(nameof(FrontController.ViewBuild), new
|
||||
{
|
||||
family.CurrentCanary.Id
|
||||
})" class="latest-flex-item latest-flex-red">
|
||||
<h4 class="latest-flex-title">@VariantTerms.Front_CurrentCanary</h4>
|
||||
<div class="latest-flex-detail">
|
||||
<p class="latest-flex-build">@(family.CurrentCanary.Number).@(family.CurrentCanary.Revision)</p>
|
||||
<p class="latest-flex-lab">@family.CurrentCanary.Lab</p>
|
||||
<p class="latest-flex-time">@(family.CurrentCanary.BuildTime?.ToString("HH:mm, dddd dd MMMM yyyy"))</p>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
@if (family.CurrentInsider != null && family.CurrentInsider.Id != family.CurrentRelease?.Id)
|
||||
{
|
||||
<a href="@Url.Action(nameof(FrontController.ViewBuild), new
|
||||
{
|
||||
family.CurrentInsider.Id
|
||||
})" class="latest-flex-item latest-flex-yellow">
|
||||
<h4 class="latest-flex-title">@VariantTerms.Front_CurrentInsider</h4>
|
||||
<div class="latest-flex-detail">
|
||||
<p class="latest-flex-build">@(family.CurrentInsider.Number).@(family.CurrentInsider.Revision)</p>
|
||||
<p class="latest-flex-lab">@family.CurrentInsider.Lab</p>
|
||||
<p class="latest-flex-time">@(family.CurrentInsider.BuildTime?.ToString("HH:mm, dddd dd MMMM yyyy"))</p>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
@if (family.CurrentRelease != null)
|
||||
{
|
||||
<a href="@Url.Action(nameof(FrontController.ViewBuild), new
|
||||
{
|
||||
family.CurrentRelease.Id
|
||||
})" class="latest-flex-item latest-flex-blue">
|
||||
<h4 class="latest-flex-title">@VariantTerms.Front_CurrentRelease</h4>
|
||||
<div class="latest-flex-detail">
|
||||
<p class="latest-flex-build">@(family.CurrentRelease.Number).@(family.CurrentRelease.Revision)</p>
|
||||
<p class="latest-flex-lab">@family.CurrentRelease.Lab</p>
|
||||
<p class="latest-flex-time">@(family.CurrentRelease.BuildTime?.ToString("HH:mm, dddd dd MMMM yyyy"))</p>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
@if (family.CurrentXbox != null)
|
||||
{
|
||||
<a href="@Url.Action(nameof(FrontController.ViewBuild), new
|
||||
{
|
||||
family.CurrentXbox.Id
|
||||
})" class="latest-flex-item latest-flex-green">
|
||||
<h4 class="latest-flex-title">@VariantTerms.Front_CurrentXbox</h4>
|
||||
<div class="latest-flex-detail">
|
||||
<p class="latest-flex-build">@(family.CurrentXbox.Number).@(family.CurrentXbox.Revision)</p>
|
||||
<p class="latest-flex-lab">@family.CurrentXbox.Lab</p>
|
||||
<p class="latest-flex-time">@(family.CurrentXbox.BuildTime?.ToString("HH:mm, dddd dd MMMM yyyy"))</p>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<h3>@VariantTerms.Front_Share</h3>
|
||||
<div class="addthis_sharing_toolbox"></div>
|
||||
|
|
|
@ -8,73 +8,74 @@
|
|||
Response.PushPromise(VirtualPathUtility.ToAbsolute(((Theme)ViewBag.Theme).CssPath) + "?20170517");
|
||||
if (isRtl)
|
||||
{
|
||||
Response.PushPromise("/res/css/rtl.css");
|
||||
Response.PushPromise("/res/css/rtl.css");
|
||||
}
|
||||
|
||||
Response.PushPromise("/res/ts/bfs.js");
|
||||
}
|
||||
<!DOCTYPE html>
|
||||
}<!DOCTYPE html>
|
||||
<html dir="@(isRtl
|
||||
? "rtl"
|
||||
: "ltr")" lang="@CultureInfo.CurrentUICulture.IetfLanguageTag">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="format-detection" content="telephone=no" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<title>@ViewBag.Title</title>
|
||||
<link href="/res/css/default.css" rel="stylesheet" type="text/css" />
|
||||
<link href="@(VirtualPathUtility.ToAbsolute(((Theme)ViewBag.Theme).CssPath))" rel="stylesheet" type="text/css" />
|
||||
@if (isRtl)
|
||||
{
|
||||
<link href="/res/css/rtl.css" rel="stylesheet" type="text/css" />
|
||||
}
|
||||
@switch (CultureInfo.CurrentUICulture.TwoLetterISOLanguageName)
|
||||
{
|
||||
case "ru":
|
||||
case "uk":
|
||||
<link href="https://fonts.googleapis.com/css?family=Fira+Sans:300,400,700&subset=cyrillic" rel="stylesheet" type="text/css" />
|
||||
break;
|
||||
case "el":
|
||||
<link href="https://fonts.googleapis.com/css?family=Fira+Sans:300,400,700&subset=greek" rel="stylesheet" type="text/css" />
|
||||
break;
|
||||
case "vi":
|
||||
<link href="https://fonts.googleapis.com/css?family=Fira+Sans:300,400,700&subset=vietnamese" rel="stylesheet" type="text/css" />
|
||||
break;
|
||||
default:
|
||||
<link href="https://fonts.googleapis.com/css?family=Fira+Sans:300,400,700" rel="stylesheet" type="text/css" />
|
||||
break;
|
||||
}
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" integrity="sha256-eZrrJcwDc/3uDhsdt61sL2oOBY362qM3lon1gyExkL0=" crossorigin="anonymous" />
|
||||
<link rel="manifest" href="~/manifest.json">
|
||||
<link rel="shortcut icon" href="~/favicon.ico" />
|
||||
<link rel="icon" href="~/favicon.ico" />
|
||||
<link rel="canonical" href="@Url.Action()" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:site_name" content="@InvariantTerms.SiteName" />
|
||||
<meta property="og:url" content="@Url.Action()" />
|
||||
<meta name="theme-color" content="#373736">
|
||||
<meta name="application-name" content="@InvariantTerms.SiteName" />
|
||||
<meta name="twitter:site" content="@("@")buildfeed">
|
||||
@RenderSection("head", false)
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="format-detection" content="telephone=no" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<title>@ViewBag.Title</title>
|
||||
<link href="/res/css/default.css" rel="stylesheet" type="text/css" />
|
||||
<link href="@(VirtualPathUtility.ToAbsolute(((Theme)ViewBag.Theme).CssPath))" rel="stylesheet" type="text/css" />
|
||||
@if (isRtl)
|
||||
{
|
||||
<link href="/res/css/rtl.css" rel="stylesheet" type="text/css" />
|
||||
}
|
||||
@switch (CultureInfo.CurrentUICulture.TwoLetterISOLanguageName)
|
||||
{
|
||||
case "ru":
|
||||
case "uk":
|
||||
<link href="https://fonts.googleapis.com/css?family=Fira+Sans:300,400,700&subset=cyrillic" rel="stylesheet" type="text/css" />
|
||||
break;
|
||||
case "el":
|
||||
<link href="https://fonts.googleapis.com/css?family=Fira+Sans:300,400,700&subset=greek" rel="stylesheet" type="text/css" />
|
||||
break;
|
||||
case "vi":
|
||||
<link href="https://fonts.googleapis.com/css?family=Fira+Sans:300,400,700&subset=vietnamese" rel="stylesheet" type="text/css" />
|
||||
break;
|
||||
default:
|
||||
<link href="https://fonts.googleapis.com/css?family=Fira+Sans:300,400,700" rel="stylesheet" type="text/css" />
|
||||
break;
|
||||
}
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" integrity="sha256-eZrrJcwDc/3uDhsdt61sL2oOBY362qM3lon1gyExkL0=" crossorigin="anonymous" />
|
||||
<link rel="manifest" href="~/manifest.json" />
|
||||
<link rel="shortcut icon" href="~/favicon.ico" />
|
||||
<link rel="icon" href="~/favicon.ico" />
|
||||
<link rel="canonical" href="@Url.Action()" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:site_name" content="@InvariantTerms.SiteName" />
|
||||
<meta property="og:url" content="@Url.Action()" />
|
||||
<meta name="theme-color" content="#3B4252" />
|
||||
<meta name="application-name" content="@InvariantTerms.SiteName" />
|
||||
<meta name="twitter:site" content="@("@")buildfeed" />
|
||||
@RenderSection("head", false)
|
||||
|
||||
<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async></script>
|
||||
<script>
|
||||
var OneSignal = window.OneSignal || [];
|
||||
OneSignal.push(["init", {
|
||||
appId: "94384f83-dced-4d66-a88c-c2b6e3cdfbaa",
|
||||
safari_web_id: "web.onesignal.auto.4cc30974-98f9-47ba-8e02-4635d2d477f2",
|
||||
persistNotification: false,
|
||||
allowLocalhostAsSecureOrigin: true,
|
||||
autoRegister: true,
|
||||
notifyButton: {
|
||||
enable: false
|
||||
}
|
||||
}]);
|
||||
</script>
|
||||
<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async="async"></script>
|
||||
<script>
|
||||
var OneSignal = window.OneSignal || [];
|
||||
OneSignal.push([
|
||||
"init", {
|
||||
appId: "94384f83-dced-4d66-a88c-c2b6e3cdfbaa",
|
||||
safari_web_id: "web.onesignal.auto.4cc30974-98f9-47ba-8e02-4635d2d477f2",
|
||||
persistNotification: false,
|
||||
allowLocalhostAsSecureOrigin: true,
|
||||
autoRegister: true,
|
||||
notifyButton: {
|
||||
enable: false
|
||||
}
|
||||
}
|
||||
]);
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<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);
|
||||
|
@ -86,235 +87,239 @@
|
|||
ga('require', 'displayfeatures');
|
||||
ga('require', 'linkid', 'linkid.js');
|
||||
ga('send', 'pageview');
|
||||
</script>
|
||||
<header id="page-header">
|
||||
<div class="container">
|
||||
<h1>
|
||||
</script>
|
||||
<header id="page-header">
|
||||
<div class="container">
|
||||
<h1>
|
||||
@Html.ActionLink(InvariantTerms.SiteName, nameof(FrontController.Index), new
|
||||
{
|
||||
controller = "Front",
|
||||
area = ""
|
||||
})
|
||||
</h1>
|
||||
</div>
|
||||
</header>
|
||||
<nav id="page-navigation" role="navigation">
|
||||
<div class="container">
|
||||
<button id="page-navigation-toggle">
|
||||
{
|
||||
controller = "Front",
|
||||
area = ""
|
||||
})
|
||||
</h1>
|
||||
</div>
|
||||
</header>
|
||||
<nav id="page-navigation" role="navigation">
|
||||
<div class="container">
|
||||
<button id="page-navigation-toggle">
|
||||
<i class="fa fa-bars"></i> @VariantTerms.Common_ToggleNavigation
|
||||
</button>
|
||||
<ul id="page-navigation-links">
|
||||
</button>
|
||||
<ul id="page-navigation-links">
|
||||
<li>
|
||||
<a href="#" id="page-navigation-search" title="@VariantTerms.Search_Title">
|
||||
<i class="fa fa-fw fa-search"></i> @VariantTerms.Search_Title
|
||||
</a>
|
||||
<a href="#" id="page-navigation-search" title="@VariantTerms.Search_Title">
|
||||
<i class="fa fa-fw fa-search"></i> @VariantTerms.Search_Title
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="@Url.Action(nameof(SupportController.Rss), new
|
||||
<a href="@Url.Action(nameof(SupportController.Rss), new
|
||||
{
|
||||
controller = "Support",
|
||||
area = ""
|
||||
})" title="@VariantTerms.Common_RssFeeds">
|
||||
<i class="fa fa-fw fa-rss"></i> @VariantTerms.Common_RssFeeds
|
||||
</a>
|
||||
<i class="fa fa-fw fa-rss"></i> @VariantTerms.Common_RssFeeds
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://twitter.com/buildfeed" title="@VariantTerms.Common_Twitter" target="_blank" rel="noopener">
|
||||
<i class="fa fa-fw fa-twitter"></i> @VariantTerms.Common_Twitter
|
||||
</a>
|
||||
<a href="https://twitter.com/buildfeed" title="@VariantTerms.Common_Twitter" target="_blank" rel="noopener">
|
||||
<i class="fa fa-fw fa-twitter"></i> @VariantTerms.Common_Twitter
|
||||
</a>
|
||||
</li>
|
||||
<li class="dropdown-parent">
|
||||
<a href="#">
|
||||
<i class="fa fa-fw fa-user"></i>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li id="user-action-menu" class="dropdown-menu-block">
|
||||
<ul>
|
||||
@if (!User.Identity.IsAuthenticated)
|
||||
{
|
||||
<li>
|
||||
<a href="@Url.Action(nameof(AccountController.Login), new
|
||||
{
|
||||
controller = "Account",
|
||||
area = ""
|
||||
})" title="@VariantTerms.Common_LogIn">
|
||||
<i class="fa fa-fw fa-user"></i> @VariantTerms.Common_LogIn
|
||||
</a>
|
||||
</li>
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Roles.IsUserInRole("Administrators"))
|
||||
{
|
||||
<li>
|
||||
<a href="@Url.Action("Index", new
|
||||
{
|
||||
controller = "Root",
|
||||
area = "admin"
|
||||
})" title="@VariantTerms.Common_Admin">
|
||||
<i class="fa fa-fw fa-cogs"></i> @VariantTerms.Common_Admin
|
||||
</a>
|
||||
</li>
|
||||
}
|
||||
if (Roles.IsUserInRole("Administrators") || Roles.IsUserInRole("Editors"))
|
||||
{
|
||||
<li>
|
||||
<a href="@Url.Action(nameof(FrontController.AddBuild), new
|
||||
{
|
||||
controller = "Front",
|
||||
area = ""
|
||||
})" title="@VariantTerms.Common_AddBuild">
|
||||
<i class="fa fa-fw fa-plus-square"></i> @VariantTerms.Common_AddBuild
|
||||
</a>
|
||||
</li>
|
||||
}
|
||||
if (Roles.IsUserInRole("Administrators"))
|
||||
{
|
||||
<li>
|
||||
<a href="@Url.Action(nameof(FrontController.AddBulk), new
|
||||
{
|
||||
controller = "Front",
|
||||
area = ""
|
||||
})" title="@VariantTerms.Common_AddBulk">
|
||||
<i class="fa fa-fw fa-database"></i> @VariantTerms.Common_AddBulk
|
||||
</a>
|
||||
</li>
|
||||
}
|
||||
<li>
|
||||
<a href="@Url.Action(nameof(AccountController.Logout), new
|
||||
{
|
||||
controller = "Account",
|
||||
area = ""
|
||||
})" title="@VariantTerms.Common_LogOut">
|
||||
<i class="fa fa-fw fa-user"></i> @VariantTerms.Common_LogOut
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="@Url.Action(nameof(AccountController.Password), new
|
||||
{
|
||||
controller = "Account",
|
||||
area = ""
|
||||
})" title="@VariantTerms.Common_ChangePassword">
|
||||
<i class="fa fa-fw fa-key"></i> @VariantTerms.Common_ChangePassword
|
||||
</a>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<a href="#">
|
||||
<i class="fa fa-fw fa-user"></i>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li id="user-action-menu" class="dropdown-menu-block">
|
||||
<ul>
|
||||
@if (!User.Identity.IsAuthenticated)
|
||||
{
|
||||
<li>
|
||||
<a href="@Url.Action(nameof(AccountController.Login), new
|
||||
{
|
||||
controller = "Account",
|
||||
area = ""
|
||||
})" title="@VariantTerms.Common_LogIn">
|
||||
<i class="fa fa-fw fa-user"></i> @VariantTerms.Common_LogIn
|
||||
</a>
|
||||
</li>
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Roles.IsUserInRole("Administrators"))
|
||||
{
|
||||
<li>
|
||||
<a href="@Url.Action("Index", new
|
||||
{
|
||||
controller = "Root",
|
||||
area = "admin"
|
||||
})" title="@VariantTerms.Common_Admin">
|
||||
<i class="fa fa-fw fa-cogs"></i> @VariantTerms.Common_Admin
|
||||
</a>
|
||||
</li>
|
||||
}
|
||||
if (Roles.IsUserInRole("Administrators") || Roles.IsUserInRole("Editors"))
|
||||
{
|
||||
<li>
|
||||
<a href="@Url.Action(nameof(FrontController.AddBuild), new
|
||||
{
|
||||
controller = "Front",
|
||||
area = ""
|
||||
})" title="@VariantTerms.Common_AddBuild">
|
||||
<i class="fa fa-fw fa-plus-square"></i> @VariantTerms.Common_AddBuild
|
||||
</a>
|
||||
</li>
|
||||
}
|
||||
if (Roles.IsUserInRole("Administrators"))
|
||||
{
|
||||
<li>
|
||||
<a href="@Url.Action(nameof(FrontController.AddBulk), new
|
||||
{
|
||||
controller = "Front",
|
||||
area = ""
|
||||
})" title="@VariantTerms.Common_AddBulk">
|
||||
<i class="fa fa-fw fa-database"></i> @VariantTerms.Common_AddBulk
|
||||
</a>
|
||||
</li>
|
||||
}
|
||||
<li>
|
||||
<a href="@Url.Action(nameof(AccountController.Logout), new
|
||||
{
|
||||
controller = "Account",
|
||||
area = ""
|
||||
})" title="@VariantTerms.Common_LogOut">
|
||||
<i class="fa fa-fw fa-user"></i> @VariantTerms.Common_LogOut
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="@Url.Action(nameof(AccountController.Password), new
|
||||
{
|
||||
controller = "Account",
|
||||
area = ""
|
||||
})" title="@VariantTerms.Common_ChangePassword">
|
||||
<i class="fa fa-fw fa-key"></i> @VariantTerms.Common_ChangePassword
|
||||
</a>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown-parent">
|
||||
<a href="#">
|
||||
<i class="fa fa-gear fa-fw"></i>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li id="settings-theme-menu" class="dropdown-menu-block">
|
||||
<h4>@VariantTerms.Common_NavigationTheme</h4>
|
||||
<ul>
|
||||
@foreach (Theme item in Theme.AvailableThemes)
|
||||
{
|
||||
<li>
|
||||
<a href="#" data-theme="@item.CookieValue">@item.DisplayName</a>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
</li>
|
||||
<li id="settings-lang-menu" class="dropdown-menu-block">
|
||||
<h4>@VariantTerms.Common_NavigationLanguage</h4>
|
||||
<ul>
|
||||
@foreach (Locale locale in Locale.AvailableLocales)
|
||||
{
|
||||
<li>
|
||||
<a href="#" data-lang="@locale.LocaleId" dir="@(locale.Info.TextInfo.IsRightToLeft
|
||||
<a href="#">
|
||||
<i class="fa fa-gear fa-fw"></i>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li id="settings-theme-menu" class="dropdown-menu-block">
|
||||
<h4>@VariantTerms.Common_NavigationTheme</h4>
|
||||
<ul>
|
||||
@foreach (Theme item in Theme.AvailableThemes)
|
||||
{
|
||||
<li>
|
||||
<a href="#" data-theme="@item.CookieValue">@item.DisplayName</a>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
</li>
|
||||
<li id="settings-lang-menu" class="dropdown-menu-block">
|
||||
<h4>@VariantTerms.Common_NavigationLanguage</h4>
|
||||
<ul>
|
||||
@foreach (Locale locale in Locale.AvailableLocales)
|
||||
{
|
||||
<li>
|
||||
<a href="#" data-lang="@locale.LocaleId" dir="@(locale.Info.TextInfo.IsRightToLeft
|
||||
? "rtl"
|
||||
: "ltr")">
|
||||
@locale.DisplayName
|
||||
</a>
|
||||
</li>
|
||||
}
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@locale.DisplayName
|
||||
</a>
|
||||
</li>
|
||||
}
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
<article id="page-content">
|
||||
<div class="container">
|
||||
@RenderBody()
|
||||
</div>
|
||||
</article>
|
||||
<footer id="page-footer">
|
||||
<div class="container">
|
||||
<div class="footer-flex">
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
<article id="page-content">
|
||||
<div class="container">
|
||||
@RenderBody()
|
||||
</div>
|
||||
</article>
|
||||
<footer id="page-footer">
|
||||
<div class="container">
|
||||
<div class="footer-flex">
|
||||
<div class="footer-flex-item">
|
||||
<p>
|
||||
<a href="@Url.Action(nameof(SupportController.Sitemap), new
|
||||
<p>
|
||||
<a href="@Url.Action(nameof(SupportController.Sitemap), new
|
||||
{
|
||||
controller = "Support",
|
||||
area = ""
|
||||
})">
|
||||
@VariantTerms.Common_Sitemap
|
||||
</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="@Url.Action(nameof(SupportController.Credits), new
|
||||
{
|
||||
controller = "Support",
|
||||
area = ""
|
||||
})">
|
||||
@VariantTerms.Common_Credits
|
||||
</a>
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-language"></i> 
|
||||
@CultureInfo.CurrentUICulture.NativeName
|
||||
</p>
|
||||
@VariantTerms.Common_Sitemap
|
||||
</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="@Url.Action(nameof(SupportController.Credits), new
|
||||
{
|
||||
controller = "Support",
|
||||
area = ""
|
||||
})">
|
||||
@VariantTerms.Common_Credits
|
||||
</a>
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-language"></i> 
|
||||
@CultureInfo.CurrentUICulture.NativeName
|
||||
</p>
|
||||
</div>
|
||||
<div class="footer-flex-item">
|
||||
<p>
|
||||
© 2013 - @DateTime.Now.Year.ToString(), <span dir="ltr">@InvariantTerms.SiteName</span>
|
||||
</p>
|
||||
<p>
|
||||
@Html.Raw(string.Format(VariantTerms.Common_DevelopedBy, $"<a href=\"https://twitter.com/tomhounsell\" target=\"_blank\" dir=\"ltr\" rel=\"noopener\">{InvariantTerms.DeveloperName}</a>"))
|
||||
</p>
|
||||
<p>
|
||||
@Html.Raw(string.Format(VariantTerms.Common_ContributeOn, "<a href=\"https://github.com/hounsell/BuildFeed\" target=\"_blank\" dir=\"ltr\" rel=\"noopener\"><i class=\"fa fa-github\"></i> GitHub</a>"))
|
||||
</p>
|
||||
<p>
|
||||
© 2013 - @DateTime.Now.Year.ToString(), <span dir="ltr">@InvariantTerms.SiteName</span>
|
||||
</p>
|
||||
<p>
|
||||
@Html.Raw(string.Format(VariantTerms.Common_DevelopedBy, $"<a href=\"https://twitter.com/tomhounsell\" target=\"_blank\" dir=\"ltr\" rel=\"noopener\">{InvariantTerms.DeveloperName}</a>"))
|
||||
</p>
|
||||
<p>
|
||||
@Html.Raw(string.Format(VariantTerms.Common_ContributeOn, "<a href=\"https://github.com/hounsell/BuildFeed\" target=\"_blank\" dir=\"ltr\" rel=\"noopener\"><i class=\"fa fa-github\"></i> GitHub</a>"))
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<div id="modal-search-overlay">
|
||||
<div id="modal-search">
|
||||
<h3>@VariantTerms.Search_BuildFeed</h3>
|
||||
<div id="modal-search-box">
|
||||
<div id="modal-search-overlay">
|
||||
<div id="modal-search">
|
||||
<h3>@VariantTerms.Search_BuildFeed</h3>
|
||||
<div id="modal-search-box">
|
||||
<input id="modal-search-input" type="text" placeholder="@VariantTerms.Search_TypePlaceholder" />
|
||||
<button id="modal-search-button">
|
||||
<i class="fa fa-search"></i>
|
||||
<i class="fa fa-search"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div id="modal-search-result"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="menu-open-overlay"></div>
|
||||
</div>
|
||||
<div id="modal-search-result"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="menu-open-overlay"></div>
|
||||
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jsrender/1.0.0-rc.70/jsrender.min.js" integrity="sha256-3UBtL0tzgKVuJU8ZZiWLXEWGEjXEr6Z023rpauMnBUE=" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" src="/res/ts/bfs.js" async="async"></script>
|
||||
@RenderSection("scripts", false)
|
||||
<script id="result-template" type="text/x-jsrender">
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jsrender/1.0.0-rc.70/jsrender.min.js" integrity="sha256-3UBtL0tzgKVuJU8ZZiWLXEWGEjXEr6Z023rpauMnBUE=" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" src="~/res/ts/bfs.js" async="async"></script>
|
||||
@if (((Theme)ViewBag.Theme).Value == SiteTheme.Winter)
|
||||
{
|
||||
<script type="text/javascript" src="~/res/ts/christmas.js" async="async"></script>
|
||||
}
|
||||
@RenderSection("scripts", false)
|
||||
<script id="result-template" type="text/x-jsrender">
|
||||
<a href="{{:Url}}" class="search-result-item" title="{{:Title}}">
|
||||
<h4 class="search-result-heading no-wrapping">{{:Label}}</h4>
|
||||
<p class="search-result-text">{{:Group}}</p>
|
||||
</a>
|
||||
</script>
|
||||
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5431719a661cbfd0" async="async"></script>
|
||||
<script type="text/javascript" src="https://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5431719a661cbfd0" async="async"></script>
|
||||
</body>
|
||||
</html>
|
|
@ -1,370 +1,375 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<appSettings file="settings.config">
|
||||
<add key="webpages:Version" value="3.0.0.0"/>
|
||||
<add key="webpages:Enabled" value="false"/>
|
||||
<add key="PreserveLoginUrl" value="true"/>
|
||||
<add key="ClientValidationEnabled" value="true"/>
|
||||
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
|
||||
<add key="data:MongoDB" value="BuildFeed"/>
|
||||
<add key="webpages:Version" value="3.0.0.0" />
|
||||
<add key="webpages:Enabled" value="false" />
|
||||
<add key="PreserveLoginUrl" value="true" />
|
||||
<add key="ClientValidationEnabled" value="true" />
|
||||
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
|
||||
<add key="data:MongoDB" value="BuildFeed" />
|
||||
</appSettings>
|
||||
<system.web>
|
||||
<compilation debug="true" targetFramework="4.7">
|
||||
<assemblies>
|
||||
<add assembly="System.Globalization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
|
||||
<add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
|
||||
<add assembly="System.Globalization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
</assemblies>
|
||||
</compilation>
|
||||
<httpRuntime targetFramework="4.7" enableVersionHeader="false"/>
|
||||
<globalization culture="auto:en" uiCulture="auto:en"/>
|
||||
<trace enabled="true" requestLimit="40" pageOutput="false"/>
|
||||
<sessionState cookieless="UseCookies"/>
|
||||
<anonymousIdentification cookieless="UseCookies" enabled="false"/>
|
||||
<httpRuntime targetFramework="4.7" enableVersionHeader="false" />
|
||||
<globalization culture="auto:en" uiCulture="auto:en" />
|
||||
<trace enabled="true" requestLimit="40" pageOutput="false" />
|
||||
<sessionState cookieless="UseCookies" />
|
||||
<anonymousIdentification cookieless="UseCookies" enabled="false" />
|
||||
<authentication mode="Forms">
|
||||
<forms loginUrl="/login/" cookieless="UseCookies" name="BuildFeedAuth"/>
|
||||
<forms loginUrl="/login/" cookieless="UseCookies" name="BuildFeedAuth" />
|
||||
</authentication>
|
||||
<membership defaultProvider="BuildFeedMemberProvider">
|
||||
<providers>
|
||||
<clear/>
|
||||
<add name="BuildFeedMemberProvider" type="MongoAuth.MongoMembershipProvider,MongoAuth"/>
|
||||
<clear />
|
||||
<add name="BuildFeedMemberProvider" type="MongoAuth.MongoMembershipProvider,MongoAuth" />
|
||||
</providers>
|
||||
</membership>
|
||||
<roleManager defaultProvider="BuildFeedRoleProvider" enabled="true">
|
||||
<providers>
|
||||
<clear/>
|
||||
<add name="BuildFeedRoleProvider" type="MongoAuth.MongoRoleProvider,MongoAuth"/>
|
||||
<clear />
|
||||
<add name="BuildFeedRoleProvider" type="MongoAuth.MongoRoleProvider,MongoAuth" />
|
||||
</providers>
|
||||
</roleManager>
|
||||
<httpModules/>
|
||||
<httpHandlers/>
|
||||
<httpModules />
|
||||
<httpHandlers />
|
||||
</system.web>
|
||||
<system.webServer>
|
||||
<urlCompression doDynamicCompression="true"/>
|
||||
<validation validateIntegratedModeConfiguration="false"/>
|
||||
<modules/>
|
||||
<urlCompression doDynamicCompression="true" />
|
||||
<validation validateIntegratedModeConfiguration="false" />
|
||||
<modules />
|
||||
<rewrite>
|
||||
<rules>
|
||||
<rule name="(2015-05) Support Pages">
|
||||
<match url=".*"/>
|
||||
<match url=".*" />
|
||||
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
|
||||
<add input="{Support Pages:{REQUEST_URI}}" pattern="(.+)"/>
|
||||
<add input="{Support Pages:{REQUEST_URI}}" pattern="(.+)" />
|
||||
</conditions>
|
||||
<action type="Redirect" url="{C:1}" appendQueryString="true"/>
|
||||
<action type="Redirect" url="{C:1}" appendQueryString="true" />
|
||||
</rule>
|
||||
<rule name="(2015-05) Pagination">
|
||||
<match url="(.*)page/(\d+)/(.*)"/>
|
||||
<action type="Redirect" redirectType="Permanent" url="/{R:1}{R:3}"/>
|
||||
<match url="(.*)page/(\d+)/(.*)" />
|
||||
<action type="Redirect" redirectType="Permanent" url="/{R:1}{R:3}" />
|
||||
</rule>
|
||||
<rule name="(2015-12) Build Info Pages">
|
||||
<match url="^actions/info/([0-9a-f-]+)/(\?.+)?$"/>
|
||||
<action type="Redirect" redirectType="Permanent" url="/build/{R:1}/{R:2}"/>
|
||||
<match url="^actions/info/([0-9a-f-]+)/(\?.+)?$" />
|
||||
<action type="Redirect" redirectType="Permanent" url="/build/{R:1}/{R:2}" />
|
||||
</rule>
|
||||
<rule name="(2016-07) RSS Flights">
|
||||
<match url="^rss/flight/([a-z-]+)/(\?.+)?$"/>
|
||||
<action type="Redirect" redirectType="Permanent" url="/rss/"/>
|
||||
<match url="^rss/flight/([a-z-]+)/(\?.+)?$" />
|
||||
<action type="Redirect" redirectType="Permanent" url="/rss/" />
|
||||
</rule>
|
||||
</rules>
|
||||
<rewriteMaps>
|
||||
<rewriteMap name="Support Pages">
|
||||
<add key="/statistics/" value="/"/>
|
||||
<add key="/support/question/" value="/"/>
|
||||
<add key="/support/stats/" value="/"/>
|
||||
<add key="/support/rss/" value="/rss/"/>
|
||||
<add key="/actions/create/" value="/add/"/>
|
||||
<add key="/support/login/" value="/login/"/>
|
||||
<add key="/support/logout/" value="/logout/"/>
|
||||
<add key="/support/password/" value="/password/"/>
|
||||
<add key="/support/register/" value="/register/"/>
|
||||
<add key="/support/sitemap/" value="/sitemap/"/>
|
||||
<add key="/support/xmlsitemap/" value="/xml-sitemap/"/>
|
||||
<add key="/content/tile/large.png" value="/res/ico/large.png" />
|
||||
<add key="/content/tile/notify.png" value="/res/ico/notify.png" />
|
||||
<add key="/content/tile/square.png" value="/res/ico/square.png" />
|
||||
<add key="/content/tile/tiny.png" value="/res/ico/tiny.png" />
|
||||
<add key="/content/tile/wide.png" value="/res/ico/wide.png" />
|
||||
<add key="/statistics/" value="/" />
|
||||
<add key="/support/question/" value="/" />
|
||||
<add key="/support/stats/" value="/" />
|
||||
<add key="/support/rss/" value="/rss/" />
|
||||
<add key="/actions/create/" value="/add/" />
|
||||
<add key="/support/login/" value="/login/" />
|
||||
<add key="/support/logout/" value="/logout/" />
|
||||
<add key="/support/password/" value="/password/" />
|
||||
<add key="/support/register/" value="/register/" />
|
||||
<add key="/support/sitemap/" value="/sitemap/" />
|
||||
<add key="/support/xmlsitemap/" value="/xml-sitemap/" />
|
||||
</rewriteMap>
|
||||
</rewriteMaps>
|
||||
</rewrite>
|
||||
<httpProtocol>
|
||||
<customHeaders>
|
||||
<clear/>
|
||||
<add name="X-Content-Type-Options" value="nosniff"/>
|
||||
<add name="X-Frame-Options" value="DENY"/>
|
||||
<add name="X-XSS-Protection" value="1; mode=block"/>
|
||||
<add name="Referrer-Policy" value="origin-when-cross-origin"/>
|
||||
<clear />
|
||||
<add name="X-Content-Type-Options" value="nosniff" />
|
||||
<add name="X-Frame-Options" value="DENY" />
|
||||
<add name="X-XSS-Protection" value="1; mode=block" />
|
||||
<add name="Referrer-Policy" value="origin-when-cross-origin" />
|
||||
</customHeaders>
|
||||
</httpProtocol>
|
||||
<handlers>
|
||||
<remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
|
||||
<remove name="OPTIONSVerbHandler"/>
|
||||
<remove name="TRACEVerbHandler"/>
|
||||
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/>
|
||||
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
|
||||
<remove name="OPTIONSVerbHandler" />
|
||||
<remove name="TRACEVerbHandler" />
|
||||
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
|
||||
</handlers>
|
||||
</system.webServer>
|
||||
<system.net>
|
||||
<mailSettings>
|
||||
<smtp configSource="smtp.config"/>
|
||||
<smtp configSource="smtp.config" />
|
||||
</mailSettings>
|
||||
</system.net>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Reflection.Extensions" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
|
||||
<assemblyIdentity name="System.Reflection.Extensions" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Threading" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0"/>
|
||||
<assemblyIdentity name="System.Threading" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Threading.Overlapped" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0"/>
|
||||
<assemblyIdentity name="System.Threading.Overlapped" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Text.Encoding.Extensions" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0"/>
|
||||
<assemblyIdentity name="System.Text.Encoding.Extensions" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Text.Encoding" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0"/>
|
||||
<assemblyIdentity name="System.Text.Encoding" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Globalization" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0"/>
|
||||
<assemblyIdentity name="System.Globalization" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.Serialization.Xml" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.3.0" newVersion="4.1.3.0"/>
|
||||
<assemblyIdentity name="System.Runtime.Serialization.Xml" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.3.0" newVersion="4.1.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Security.SecureString" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0"/>
|
||||
<assemblyIdentity name="System.Security.SecureString" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Threading.Timer" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
|
||||
<assemblyIdentity name="System.Threading.Timer" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Net.Primitives" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0"/>
|
||||
<assemblyIdentity name="System.Net.Primitives" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Net.Sockets" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0"/>
|
||||
<assemblyIdentity name="System.Net.Sockets" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Collections" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0"/>
|
||||
<assemblyIdentity name="System.Collections" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Xml.ReaderWriter" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0"/>
|
||||
<assemblyIdentity name="System.Xml.ReaderWriter" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Diagnostics.Debug" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0"/>
|
||||
<assemblyIdentity name="System.Diagnostics.Debug" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Resources.ResourceManager" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
|
||||
<assemblyIdentity name="System.Resources.ResourceManager" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Linq.Queryable" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
|
||||
<assemblyIdentity name="System.Linq.Queryable" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.ValueTuple" publicKeyToken="CC7B13FFCD2DDD51" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0"/>
|
||||
<assemblyIdentity name="System.ValueTuple" publicKeyToken="CC7B13FFCD2DDD51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Threading.Tasks" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0"/>
|
||||
<assemblyIdentity name="System.Threading.Tasks" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Diagnostics.Contracts" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
|
||||
<assemblyIdentity name="System.Diagnostics.Contracts" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.Numerics" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
|
||||
<assemblyIdentity name="System.Runtime.Numerics" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.ComponentModel.EventBasedAsync" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0"/>
|
||||
<assemblyIdentity name="System.ComponentModel.EventBasedAsync" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Collections.Concurrent" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0"/>
|
||||
<assemblyIdentity name="System.Collections.Concurrent" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Dynamic.Runtime" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0"/>
|
||||
<assemblyIdentity name="System.Dynamic.Runtime" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Reflection.Primitives" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
|
||||
<assemblyIdentity name="System.Reflection.Primitives" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Security.Principal" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
|
||||
<assemblyIdentity name="System.Security.Principal" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.ComponentModel" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
|
||||
<assemblyIdentity name="System.ComponentModel" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Security.Cryptography.Algorithms" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0"/>
|
||||
<assemblyIdentity name="System.Security.Cryptography.Algorithms" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Linq.Parallel" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
|
||||
<assemblyIdentity name="System.Linq.Parallel" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Diagnostics.StackTrace" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0"/>
|
||||
<assemblyIdentity name="System.Diagnostics.StackTrace" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Xml.XmlSerializer" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0"/>
|
||||
<assemblyIdentity name="System.Xml.XmlSerializer" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Net.NetworkInformation" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0"/>
|
||||
<assemblyIdentity name="System.Net.NetworkInformation" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Xml.XDocument" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0"/>
|
||||
<assemblyIdentity name="System.Xml.XDocument" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.Serialization.Json" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
|
||||
<assemblyIdentity name="System.Runtime.Serialization.Json" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.ObjectModel" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0"/>
|
||||
<assemblyIdentity name="System.ObjectModel" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Xml.XPath.XDocument" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0"/>
|
||||
<assemblyIdentity name="System.Xml.XPath.XDocument" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Globalization.Extensions" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0"/>
|
||||
<assemblyIdentity name="System.Globalization.Extensions" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Linq.Expressions" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0"/>
|
||||
<assemblyIdentity name="System.Linq.Expressions" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Threading.Tasks.Parallel" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
|
||||
<assemblyIdentity name="System.Threading.Tasks.Parallel" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.Serialization.Primitives" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0"/>
|
||||
<assemblyIdentity name="System.Runtime.Serialization.Primitives" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Diagnostics.Tools" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
|
||||
<assemblyIdentity name="System.Diagnostics.Tools" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Net.Requests" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0"/>
|
||||
<assemblyIdentity name="System.Net.Requests" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Data.Common" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0"/>
|
||||
<assemblyIdentity name="System.Data.Common" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0"/>
|
||||
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35"/>
|
||||
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0"/>
|
||||
<assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" />
|
||||
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930"/>
|
||||
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2"/>
|
||||
<assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.ApplicationInsights" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.2.0.5639" newVersion="1.2.0.5639"/>
|
||||
<assemblyIdentity name="Microsoft.ApplicationInsights" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.2.0.5639" newVersion="1.2.0.5639" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.AI.Agent.Intercept" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.7.0" newVersion="2.0.7.0"/>
|
||||
<assemblyIdentity name="Microsoft.AI.Agent.Intercept" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.7.0" newVersion="2.0.7.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0"/>
|
||||
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0"/>
|
||||
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
|
||||
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
|
||||
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
|
||||
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
|
||||
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
|
||||
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
|
||||
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
|
||||
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
|
||||
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
|
||||
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Linq" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0"/>
|
||||
<assemblyIdentity name="System.Linq" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Reflection" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0"/>
|
||||
<assemblyIdentity name="System.Reflection" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Text.RegularExpressions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0"/>
|
||||
<assemblyIdentity name="System.Text.RegularExpressions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.Extensions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0"/>
|
||||
<assemblyIdentity name="System.Runtime.Extensions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0"/>
|
||||
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.InteropServices" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0"/>
|
||||
<assemblyIdentity name="System.Runtime.InteropServices" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Diagnostics.Tracing" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0"/>
|
||||
<assemblyIdentity name="System.Diagnostics.Tracing" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Security.Cryptography.X509Certificates" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0"/>
|
||||
<assemblyIdentity name="System.Security.Cryptography.X509Certificates" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.IO" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0"/>
|
||||
<assemblyIdentity name="System.IO" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Win32.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
|
||||
<assemblyIdentity name="Microsoft.Win32.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0"/>
|
||||
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
<system.codedom>
|
||||
<compilers>
|
||||
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701"/>
|
||||
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/>
|
||||
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.8.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />
|
||||
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.8.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" />
|
||||
</compilers>
|
||||
</system.codedom>
|
||||
</configuration>
|
||||
|
|
|
@ -3,10 +3,10 @@
|
|||
<browserconfig>
|
||||
<msapplication>
|
||||
<tile>
|
||||
<square70x70logo src="content/tile/tiny.png" />
|
||||
<square150x150logo src="content/tile/square.png" />
|
||||
<wide310x150logo src="content/tile/wide.png" />
|
||||
<square310x310logo src="content/tile/large.png" />
|
||||
<square70x70logo src="res/ico/tiny.png" />
|
||||
<square150x150logo src="res/ico/square.png" />
|
||||
<wide310x150logo src="res/ico/wide.png" />
|
||||
<square310x310logo src="res/ico/large.png" />
|
||||
<TileColor>#2E3440</TileColor>
|
||||
</tile>
|
||||
<notification>
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<configuration>
|
||||
<system.webServer>
|
||||
<staticContent>
|
||||
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
|
||||
</staticContent>
|
||||
</system.webServer>
|
||||
</configuration>
|
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 6.8 KiB |
|
@ -4,7 +4,7 @@ var sass = require("gulp-sass");
|
|||
var cleanCss = require("gulp-clean-css");
|
||||
var sourceMaps = require("gulp-sourcemaps");
|
||||
var ts = require("gulp-typescript");
|
||||
var uglify = require("gulp-uglify");
|
||||
var uglify = require("gulp-uglify-es").default;
|
||||
var autoprefixer = require("gulp-autoprefixer");
|
||||
|
||||
gulp.task("sass-compile",
|
||||
|
@ -28,7 +28,7 @@ gulp.task("typescript",
|
|||
return gulp.src("./res/ts/*.ts")
|
||||
.pipe(sourceMaps.init())
|
||||
.pipe(ts({
|
||||
target: "es5",
|
||||
target: "es6",
|
||||
sourceMap: false
|
||||
}))
|
||||
.js
|
||||
|
@ -40,6 +40,6 @@ gulp.task("typescript",
|
|||
gulp.task("watch-sass",
|
||||
function()
|
||||
{
|
||||
gulp.watch("./res/scss/*.scss", ["sass-compile"]);
|
||||
gulp.watch("./res/css/**.scss", ["sass-compile"]);
|
||||
gulp.watch("./res/ts/*.ts", ["typescript"]);
|
||||
});
|
|
@ -1,16 +1,16 @@
|
|||
{
|
||||
"name": "BuildFeed",
|
||||
"short_name": "BuildFeed",
|
||||
"background_color": "#2E3440",
|
||||
"theme_color": "#2E3440",
|
||||
"description": "Learn what Dona Sarkar won't tell you. Keep up to date with the latest Microsoft Windows developments with BuildFeed, the comprehensive build tracker.",
|
||||
"icons": [
|
||||
{
|
||||
"src": "https://buildfeed.net/content/tile/notify.png",
|
||||
"sizes": "2048x2048"
|
||||
}
|
||||
],
|
||||
"start_url": "https://buildfeed.net/",
|
||||
"display": "standalone",
|
||||
"gcm_sender_id": "482941778795"
|
||||
"name": "BuildFeed",
|
||||
"short_name": "BuildFeed",
|
||||
"background_color": "#3B4252",
|
||||
"theme_color": "#3B4252",
|
||||
"description": "Learn what Dona Sarkar won't tell you. Keep up to date with the latest Microsoft Windows developments with BuildFeed, the comprehensive build tracker.",
|
||||
"icons": [
|
||||
{
|
||||
"src": "https://buildfeed.net/res/ico/notify.png",
|
||||
"sizes": "2048x2048"
|
||||
}
|
||||
],
|
||||
"start_url": "https://buildfeed.net/",
|
||||
"display": "standalone",
|
||||
"gcm_sender_id": "482941778795"
|
||||
}
|
|
@ -36,9 +36,9 @@
|
|||
}
|
||||
},
|
||||
"abbrev": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
|
||||
"integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=",
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
|
||||
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
|
||||
"dev": true
|
||||
},
|
||||
"acorn": {
|
||||
|
@ -48,13 +48,15 @@
|
|||
"dev": true
|
||||
},
|
||||
"ajv": {
|
||||
"version": "4.11.8",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
|
||||
"integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
|
||||
"version": "5.3.0",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.3.0.tgz",
|
||||
"integrity": "sha1-RBT/dKUIecII7l/cgm4ywwNUnto=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"co": "4.6.0",
|
||||
"json-stable-stringify": "1.0.1"
|
||||
"fast-deep-equal": "1.0.0",
|
||||
"fast-json-stable-stringify": "2.0.0",
|
||||
"json-schema-traverse": "0.3.1"
|
||||
}
|
||||
},
|
||||
"amdefine": {
|
||||
|
@ -76,9 +78,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"aproba": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.2.tgz",
|
||||
"integrity": "sha512-ZpYajIfO0j2cOFTO955KUMIKNmj6zhX8kVztMAxFsDaMwz+9Z9SV0uou2pC9HJqcfpffOsjnbrDMvkNy+9RXPw==",
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
|
||||
"integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
|
||||
"dev": true
|
||||
},
|
||||
"archy": {
|
||||
|
@ -187,9 +189,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"assert-plus": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
|
||||
"integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
|
||||
"dev": true
|
||||
},
|
||||
"async-foreach": {
|
||||
|
@ -225,9 +227,9 @@
|
|||
}
|
||||
},
|
||||
"aws-sign2": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
|
||||
"integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
|
||||
"integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
|
||||
"dev": true
|
||||
},
|
||||
"aws4": {
|
||||
|
@ -268,12 +270,12 @@
|
|||
}
|
||||
},
|
||||
"boom": {
|
||||
"version": "2.10.1",
|
||||
"resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
|
||||
"integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz",
|
||||
"integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"hoek": "2.16.3"
|
||||
"hoek": "4.2.0"
|
||||
}
|
||||
},
|
||||
"brace-expansion": {
|
||||
|
@ -475,12 +477,23 @@
|
|||
}
|
||||
},
|
||||
"cryptiles": {
|
||||
"version": "2.0.5",
|
||||
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
|
||||
"integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz",
|
||||
"integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"boom": "2.10.1"
|
||||
"boom": "5.2.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"boom": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz",
|
||||
"integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"hoek": "4.2.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"css": {
|
||||
|
@ -531,14 +544,6 @@
|
|||
"dev": true,
|
||||
"requires": {
|
||||
"assert-plus": "1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"assert-plus": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"dateformat": {
|
||||
|
@ -854,6 +859,18 @@
|
|||
"time-stamp": "1.1.0"
|
||||
}
|
||||
},
|
||||
"fast-deep-equal": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz",
|
||||
"integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=",
|
||||
"dev": true
|
||||
},
|
||||
"fast-json-stable-stringify": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
|
||||
"integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
|
||||
"dev": true
|
||||
},
|
||||
"filename-regex": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
|
||||
|
@ -959,14 +976,14 @@
|
|||
"dev": true
|
||||
},
|
||||
"form-data": {
|
||||
"version": "2.1.4",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
|
||||
"integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz",
|
||||
"integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"asynckit": "0.4.0",
|
||||
"combined-stream": "1.0.5",
|
||||
"mime-types": "2.1.16"
|
||||
"mime-types": "2.1.17"
|
||||
}
|
||||
},
|
||||
"fs-exists-sync": {
|
||||
|
@ -990,7 +1007,7 @@
|
|||
"graceful-fs": "4.1.11",
|
||||
"inherits": "2.0.3",
|
||||
"mkdirp": "0.5.1",
|
||||
"rimraf": "2.6.1"
|
||||
"rimraf": "2.6.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"graceful-fs": {
|
||||
|
@ -1007,7 +1024,7 @@
|
|||
"integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"aproba": "1.1.2",
|
||||
"aproba": "1.2.0",
|
||||
"console-control-strings": "1.1.0",
|
||||
"has-unicode": "2.0.1",
|
||||
"object-assign": "4.1.1",
|
||||
|
@ -1053,14 +1070,6 @@
|
|||
"dev": true,
|
||||
"requires": {
|
||||
"assert-plus": "1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"assert-plus": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"glob": {
|
||||
|
@ -1282,6 +1291,17 @@
|
|||
"vinyl-sourcemaps-apply": "0.2.1"
|
||||
}
|
||||
},
|
||||
"gulp-exec": {
|
||||
"version": "2.1.3",
|
||||
"resolved": "https://registry.npmjs.org/gulp-exec/-/gulp-exec-2.1.3.tgz",
|
||||
"integrity": "sha1-RgpOyN+GhB0XOLx0lYxo5XaTQtk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"gulp-util": "3.0.8",
|
||||
"gulplog": "1.0.0",
|
||||
"through2": "2.0.3"
|
||||
}
|
||||
},
|
||||
"gulp-sass": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-3.1.0.tgz",
|
||||
|
@ -1290,7 +1310,7 @@
|
|||
"requires": {
|
||||
"gulp-util": "3.0.8",
|
||||
"lodash.clonedeep": "4.5.0",
|
||||
"node-sass": "4.5.3",
|
||||
"node-sass": "4.6.1",
|
||||
"through2": "2.0.3",
|
||||
"vinyl-sourcemaps-apply": "0.2.1"
|
||||
}
|
||||
|
@ -1335,9 +1355,9 @@
|
|||
}
|
||||
},
|
||||
"gulp-typescript": {
|
||||
"version": "3.2.2",
|
||||
"resolved": "https://registry.npmjs.org/gulp-typescript/-/gulp-typescript-3.2.2.tgz",
|
||||
"integrity": "sha1-t+Xh08s193LlPmBAJmAYJuK+d/w=",
|
||||
"version": "3.2.3",
|
||||
"resolved": "https://registry.npmjs.org/gulp-typescript/-/gulp-typescript-3.2.3.tgz",
|
||||
"integrity": "sha512-Np2sJXgtDUwIAoMtlJ9uXsVmpu1FWXlKZw164hLuo56uJa7qo5W2KZ0yAYiYH/HUsaz5L0O2toMOcLIokpFCPg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"gulp-util": "3.0.8",
|
||||
|
@ -1558,26 +1578,32 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"gulp-uglify": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.0.tgz",
|
||||
"integrity": "sha1-DfAzHXKg0wLj434QlIXd3zPG0co=",
|
||||
"gulp-uglify-es": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmjs.org/gulp-uglify-es/-/gulp-uglify-es-0.1.4.tgz",
|
||||
"integrity": "sha512-gVAzB1ubmPScn49lU78fA+CZzW8jK6GGAY7p9M11WKO/yIs9DY+4WB+GUnZ53sD6Wq9GpaOPUPH7WRgmKxBsqw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"gulplog": "1.0.0",
|
||||
"has-gulplog": "0.1.0",
|
||||
"lodash": "4.17.4",
|
||||
"make-error-cause": "1.2.2",
|
||||
"through2": "2.0.3",
|
||||
"uglify-js": "3.0.28",
|
||||
"vinyl-sourcemaps-apply": "0.2.1"
|
||||
"gulp-exec": "2.1.3",
|
||||
"o-stream": "0.2.2",
|
||||
"uglify-es": "3.1.9"
|
||||
},
|
||||
"dependencies": {
|
||||
"lodash": {
|
||||
"version": "4.17.4",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
|
||||
"integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true
|
||||
},
|
||||
"uglify-es": {
|
||||
"version": "3.1.9",
|
||||
"resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.1.9.tgz",
|
||||
"integrity": "sha512-wVSiJKHDgDDFmxTVVvnbAH6IpamAFHYDI+5JvwPdaqIMnk8kRTX2JKwq1Fx7gb2+Jj5Dus8kzvIpKkWOMNU51w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"commander": "2.11.0",
|
||||
"source-map": "0.6.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -1617,19 +1643,19 @@
|
|||
}
|
||||
},
|
||||
"har-schema": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz",
|
||||
"integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=",
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
|
||||
"integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
|
||||
"dev": true
|
||||
},
|
||||
"har-validator": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
|
||||
"integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=",
|
||||
"version": "5.0.3",
|
||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
|
||||
"integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ajv": "4.11.8",
|
||||
"har-schema": "1.0.5"
|
||||
"ajv": "5.3.0",
|
||||
"har-schema": "2.0.0"
|
||||
}
|
||||
},
|
||||
"has-ansi": {
|
||||
|
@ -1663,21 +1689,21 @@
|
|||
"dev": true
|
||||
},
|
||||
"hawk": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
|
||||
"integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
|
||||
"version": "6.0.2",
|
||||
"resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz",
|
||||
"integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"boom": "2.10.1",
|
||||
"cryptiles": "2.0.5",
|
||||
"hoek": "2.16.3",
|
||||
"sntp": "1.0.9"
|
||||
"boom": "4.3.1",
|
||||
"cryptiles": "3.1.2",
|
||||
"hoek": "4.2.0",
|
||||
"sntp": "2.1.0"
|
||||
}
|
||||
},
|
||||
"hoek": {
|
||||
"version": "2.16.3",
|
||||
"resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
|
||||
"integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz",
|
||||
"integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==",
|
||||
"dev": true
|
||||
},
|
||||
"homedir-polyfill": {
|
||||
|
@ -1696,12 +1722,12 @@
|
|||
"dev": true
|
||||
},
|
||||
"http-signature": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
|
||||
"integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
|
||||
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"assert-plus": "0.2.0",
|
||||
"assert-plus": "1.0.0",
|
||||
"jsprim": "1.4.1",
|
||||
"sshpk": "1.13.1"
|
||||
}
|
||||
|
@ -1968,9 +1994,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"js-base64": {
|
||||
"version": "2.1.9",
|
||||
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz",
|
||||
"integrity": "sha1-8OgK4DmkvWVLXygfyT8EqRSn/M4=",
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.3.2.tgz",
|
||||
"integrity": "sha512-Y2/+DnfJJXT1/FCwUebUhLWb3QihxiSC42+ctHLGogmW2jPY6LCapMdFZXRvVP2z6qyKW7s6qncE/9gSqZiArw==",
|
||||
"dev": true
|
||||
},
|
||||
"jsbn": {
|
||||
|
@ -1986,6 +2012,12 @@
|
|||
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
|
||||
"dev": true
|
||||
},
|
||||
"json-schema-traverse": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
|
||||
"integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
|
||||
"dev": true
|
||||
},
|
||||
"json-stable-stringify": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
|
||||
|
@ -2017,14 +2049,6 @@
|
|||
"extsprintf": "1.3.0",
|
||||
"json-schema": "0.2.3",
|
||||
"verror": "1.10.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"assert-plus": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"kind-of": {
|
||||
|
@ -2325,21 +2349,6 @@
|
|||
"es5-ext": "0.10.30"
|
||||
}
|
||||
},
|
||||
"make-error": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.0.tgz",
|
||||
"integrity": "sha1-Uq06M5zPEM5itAQLcI/nByRLi5Y=",
|
||||
"dev": true
|
||||
},
|
||||
"make-error-cause": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz",
|
||||
"integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"make-error": "1.3.0"
|
||||
}
|
||||
},
|
||||
"map-cache": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
|
||||
|
@ -2457,18 +2466,18 @@
|
|||
}
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.29.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz",
|
||||
"integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=",
|
||||
"version": "1.30.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
|
||||
"integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=",
|
||||
"dev": true
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.16",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz",
|
||||
"integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=",
|
||||
"version": "2.1.17",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
|
||||
"integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"mime-db": "1.29.0"
|
||||
"mime-db": "1.30.0"
|
||||
}
|
||||
},
|
||||
"minimatch": {
|
||||
|
@ -2519,9 +2528,9 @@
|
|||
}
|
||||
},
|
||||
"nan": {
|
||||
"version": "2.6.2",
|
||||
"resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz",
|
||||
"integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=",
|
||||
"version": "2.7.0",
|
||||
"resolved": "https://registry.npmjs.org/nan/-/nan-2.7.0.tgz",
|
||||
"integrity": "sha1-2Vv3IeyHfgjbJ27T/G63j5CDrUY=",
|
||||
"dev": true
|
||||
},
|
||||
"natives": {
|
||||
|
@ -2550,8 +2559,8 @@
|
|||
"nopt": "3.0.6",
|
||||
"npmlog": "4.1.2",
|
||||
"osenv": "0.1.4",
|
||||
"request": "2.81.0",
|
||||
"rimraf": "2.6.1",
|
||||
"request": "2.83.0",
|
||||
"rimraf": "2.6.2",
|
||||
"semver": "5.3.0",
|
||||
"tar": "2.2.1",
|
||||
"which": "1.3.0"
|
||||
|
@ -2595,9 +2604,9 @@
|
|||
}
|
||||
},
|
||||
"node-sass": {
|
||||
"version": "4.5.3",
|
||||
"resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.5.3.tgz",
|
||||
"integrity": "sha1-0JydEXlkEjnRuX/8YjH9zsU+FWg=",
|
||||
"version": "4.6.1",
|
||||
"resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.6.1.tgz",
|
||||
"integrity": "sha512-0zQQ7tjEK5W8RfW9LiQrkzfo7uLZ0QtZGV69rdKn5cFzdweHLJ14lR6xLPvI6UimkXMO8m0qDsXwUCNdnqV3sA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"async-foreach": "0.1.3",
|
||||
|
@ -2612,10 +2621,10 @@
|
|||
"lodash.mergewith": "4.6.0",
|
||||
"meow": "3.7.0",
|
||||
"mkdirp": "0.5.1",
|
||||
"nan": "2.6.2",
|
||||
"nan": "2.7.0",
|
||||
"node-gyp": "3.6.2",
|
||||
"npmlog": "4.1.2",
|
||||
"request": "2.81.0",
|
||||
"request": "2.83.0",
|
||||
"sass-graph": "2.2.4",
|
||||
"stdout-stream": "1.4.0"
|
||||
},
|
||||
|
@ -2677,7 +2686,7 @@
|
|||
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"abbrev": "1.1.0"
|
||||
"abbrev": "1.1.1"
|
||||
}
|
||||
},
|
||||
"normalize-package-data": {
|
||||
|
@ -2731,6 +2740,12 @@
|
|||
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
|
||||
"dev": true
|
||||
},
|
||||
"o-stream": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmjs.org/o-stream/-/o-stream-0.2.2.tgz",
|
||||
"integrity": "sha512-V3j76KU3g/Gyl8rpdi2z72rn5zguMvTCQgAXfBe3pxEefKqXmOUOD7mvx/mNjykdxGqDVfpSoo8r+WdrkWg/1Q==",
|
||||
"dev": true
|
||||
},
|
||||
"oauth-sign": {
|
||||
"version": "0.8.2",
|
||||
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
|
||||
|
@ -2956,9 +2971,9 @@
|
|||
}
|
||||
},
|
||||
"performance-now": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
|
||||
"integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=",
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
|
||||
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
|
||||
"dev": true
|
||||
},
|
||||
"pify": {
|
||||
|
@ -3061,9 +3076,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.4.0",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
|
||||
"integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=",
|
||||
"version": "6.5.1",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
|
||||
"integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
|
||||
"dev": true
|
||||
},
|
||||
"randomatic": {
|
||||
|
@ -3203,31 +3218,31 @@
|
|||
"dev": true
|
||||
},
|
||||
"request": {
|
||||
"version": "2.81.0",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
|
||||
"integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=",
|
||||
"version": "2.83.0",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz",
|
||||
"integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"aws-sign2": "0.6.0",
|
||||
"aws-sign2": "0.7.0",
|
||||
"aws4": "1.6.0",
|
||||
"caseless": "0.12.0",
|
||||
"combined-stream": "1.0.5",
|
||||
"extend": "3.0.1",
|
||||
"forever-agent": "0.6.1",
|
||||
"form-data": "2.1.4",
|
||||
"har-validator": "4.2.1",
|
||||
"hawk": "3.1.3",
|
||||
"http-signature": "1.1.1",
|
||||
"form-data": "2.3.1",
|
||||
"har-validator": "5.0.3",
|
||||
"hawk": "6.0.2",
|
||||
"http-signature": "1.2.0",
|
||||
"is-typedarray": "1.0.0",
|
||||
"isstream": "0.1.2",
|
||||
"json-stringify-safe": "5.0.1",
|
||||
"mime-types": "2.1.16",
|
||||
"mime-types": "2.1.17",
|
||||
"oauth-sign": "0.8.2",
|
||||
"performance-now": "0.2.0",
|
||||
"qs": "6.4.0",
|
||||
"performance-now": "2.1.0",
|
||||
"qs": "6.5.1",
|
||||
"safe-buffer": "5.1.1",
|
||||
"stringstream": "0.0.5",
|
||||
"tough-cookie": "2.3.2",
|
||||
"tough-cookie": "2.3.3",
|
||||
"tunnel-agent": "0.6.0",
|
||||
"uuid": "3.1.0"
|
||||
}
|
||||
|
@ -3270,9 +3285,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"rimraf": {
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz",
|
||||
"integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=",
|
||||
"version": "2.6.2",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
|
||||
"integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"glob": "7.1.2"
|
||||
|
@ -3358,7 +3373,7 @@
|
|||
"integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"js-base64": "2.1.9",
|
||||
"js-base64": "2.3.2",
|
||||
"source-map": "0.4.4"
|
||||
},
|
||||
"dependencies": {
|
||||
|
@ -3404,12 +3419,12 @@
|
|||
"dev": true
|
||||
},
|
||||
"sntp": {
|
||||
"version": "1.0.9",
|
||||
"resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
|
||||
"integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz",
|
||||
"integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"hoek": "2.16.3"
|
||||
"hoek": "4.2.0"
|
||||
}
|
||||
},
|
||||
"source-map": {
|
||||
|
@ -3477,14 +3492,6 @@
|
|||
"getpass": "0.1.7",
|
||||
"jsbn": "0.1.1",
|
||||
"tweetnacl": "0.14.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"assert-plus": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"stdout-stream": {
|
||||
|
@ -3540,12 +3547,6 @@
|
|||
"integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
|
||||
"dev": true
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "0.10.31",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
||||
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
|
||||
"dev": true
|
||||
},
|
||||
"string-width": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
|
||||
|
@ -3557,6 +3558,12 @@
|
|||
"strip-ansi": "3.0.1"
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "0.10.31",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
||||
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
|
||||
"dev": true
|
||||
},
|
||||
"stringstream": {
|
||||
"version": "0.0.5",
|
||||
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
|
||||
|
@ -3722,9 +3729,9 @@
|
|||
}
|
||||
},
|
||||
"tough-cookie": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
|
||||
"integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=",
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
|
||||
"integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"punycode": "1.4.1"
|
||||
|
@ -3753,21 +3760,11 @@
|
|||
"optional": true
|
||||
},
|
||||
"typescript": {
|
||||
"version": "2.5.2",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.5.2.tgz",
|
||||
"integrity": "sha1-A4qV99m7tCCxvzW6MdTFwd0//jQ=",
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.6.1.tgz",
|
||||
"integrity": "sha1-7znN6ierrAtQAkLWcmq5DgyEZjE=",
|
||||
"dev": true
|
||||
},
|
||||
"uglify-js": {
|
||||
"version": "3.0.28",
|
||||
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.0.28.tgz",
|
||||
"integrity": "sha512-0h/qGay016GG2lVav3Kz174F3T2Vjlz2v6HCt+WDQpoXfco0hWwF5gHK9yh88mUYvIC+N7Z8NT8WpjSp1yoqGA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"commander": "2.11.0",
|
||||
"source-map": "0.5.7"
|
||||
}
|
||||
},
|
||||
"unc-path-regex": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
|
||||
|
@ -3838,14 +3835,6 @@
|
|||
"assert-plus": "1.0.0",
|
||||
"core-util-is": "1.0.2",
|
||||
"extsprintf": "1.3.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"assert-plus": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"vinyl": {
|
||||
|
|
|
@ -1,15 +1,16 @@
|
|||
{
|
||||
"version": "1.0.0",
|
||||
"name": "buildfeed",
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"gulp": "^3.9.1",
|
||||
"gulp-autoprefixer": "^4.0.0",
|
||||
"gulp-clean-css": "^3.9.0",
|
||||
"gulp-sass": "^3.1.0",
|
||||
"gulp-sourcemaps": "^2.6.1",
|
||||
"gulp-typescript": "^3.2.2",
|
||||
"gulp-uglify": "^3.0.0",
|
||||
"typescript": "^2.5.2"
|
||||
}
|
||||
"version": "1.0.0",
|
||||
"name": "buildfeed",
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"gulp": "^3.9.1",
|
||||
"gulp-autoprefixer": "^4.0.0",
|
||||
"gulp-clean-css": "^3.9.0",
|
||||
"gulp-sass": "^3.1.0",
|
||||
"gulp-sourcemaps": "^2.6.1",
|
||||
"gulp-typescript": "^3.2.3",
|
||||
"gulp-uglify-es": "^0.1.4",
|
||||
"typescript": "^2.6.1",
|
||||
"node-sass": "^4.6.1"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<packages>
|
||||
<package id="AutoMapper" version="6.1.1" targetFramework="net47" />
|
||||
<package id="google.analytics.TypeScript.DefinitelyTyped" version="0.3.8" targetFramework="net47" />
|
||||
<package id="HtmlAgilityPack" version="1.5.5" targetFramework="net47" />
|
||||
<package id="HtmlAgilityPack" version="1.6.3" targetFramework="net47" />
|
||||
<package id="Humanizer" version="2.2.0" targetFramework="net47" />
|
||||
<package id="Humanizer.Core" version="2.2.0" targetFramework="net47" />
|
||||
<package id="Humanizer.Core.af" version="2.2.0" targetFramework="net47" />
|
||||
|
@ -56,17 +56,17 @@
|
|||
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net47" />
|
||||
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net47" />
|
||||
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net47" />
|
||||
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.7" targetFramework="net47" />
|
||||
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.8" targetFramework="net47" />
|
||||
<package id="Microsoft.CSharp" version="4.4.0" targetFramework="net47" />
|
||||
<package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.3" targetFramework="net47" />
|
||||
<package id="Microsoft.Net.Compilers" version="2.3.2" targetFramework="net47" developmentDependency="true" />
|
||||
<package id="Microsoft.Net.Compilers" version="2.4.0" targetFramework="net47" developmentDependency="true" />
|
||||
<package id="Microsoft.NETCore.Platforms" version="2.0.0" targetFramework="net47" />
|
||||
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net47" />
|
||||
<package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="net47" />
|
||||
<package id="MongoDB.Bson" version="2.4.4" targetFramework="net47" />
|
||||
<package id="MongoDB.Driver" version="2.4.4" targetFramework="net47" />
|
||||
<package id="MongoDB.Driver.Core" version="2.4.4" targetFramework="net47" />
|
||||
<package id="NETStandard.Library" version="2.0.0" targetFramework="net47" />
|
||||
<package id="NETStandard.Library" version="2.0.1" targetFramework="net47" />
|
||||
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="net47" />
|
||||
<package id="OneSignal.CSharp.SDK" version="0.10" targetFramework="net47" />
|
||||
<package id="RestSharp" version="105.2.3" targetFramework="net47" />
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
body{background-color:#3b4252;color:#f8fbff}a{color:#fff}#page-footer a,h1>a{color:#f8fbff}table thead th{border-bottom-color:#f8fbff}#page-content{background-color:#2e3440;color:#f8fbff}#page-content h3{border-bottom-color:#d8dee9}#page-navigation{background-color:#434c5e;color:#e5e9f0;border-bottom-color:#2e3440}#page-navigation button{color:#e5e9f0}#page-navigation #page-navigation-links>li a{color:#e5e9f0}#page-navigation #page-navigation-links>li.open>a,#page-navigation #page-navigation-links>li>a:hover{background-color:#4c566a}.dropdown-menu{background-color:#4c566a;border-color:#2e3440;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.15);box-shadow:0 5px 10px rgba(0,0,0,.15)}.dropdown-menu a:active,.dropdown-menu a:focus,.dropdown-menu a:hover{background-color:#434c5e}article{-webkit-box-shadow:0 0 15px rgba(0,0,0,.15) inset;box-shadow:0 0 15px rgba(0,0,0,.15) inset}article h1,article h3{color:#f8fbff}article .build-details-comments a,article .build-group>h3>a,article a.more-link{color:#e5e9f0}article .build-group-listing .build-group{background-color:#4c566a}.latest-flex .latest-flex-item{background:#4c566a}.latest-flex .latest-flex-item .latest-flex-detail{color:#fff}ul.pagination>li.active>a{background:#f8fbff;color:#3b4252!important}ul.pagination>li:active:not(.disabled)>a,ul.pagination>li:focus:not(.disabled)>a,ul.pagination>li:hover:not(.disabled)>a{background:#e5e9f0;color:#2e3440!important}#modal-search-overlay #modal-search{background-color:#3b4252}#modal-search-overlay #modal-search h3{color:#f8fbff}#modal-search-overlay #modal-search>#modal-search-box>#modal-search-button,#modal-search-overlay #modal-search>#modal-search-box>#modal-search-input{background-color:#2e3440;color:#f8fbff;border-color:#e5e9f0}
|
||||
body{background-color:#3b4252;color:#f8fbff}a{color:#fff}#page-footer a,h1>a{color:#f8fbff}table thead th{border-bottom-color:#f8fbff}#page-content{background-color:#2e3440;color:#f8fbff}#page-content h3{border-bottom-color:#d8dee9}#page-navigation{background-color:#434c5e;color:#e5e9f0;border-bottom-color:#2e3440}#page-navigation button{color:#e5e9f0}#page-navigation #page-navigation-links>li a{color:#e5e9f0}#page-navigation #page-navigation-links>li.open>a,#page-navigation #page-navigation-links>li>a:hover{background-color:#4c566a}.dropdown-menu{background-color:#4c566a;border-color:#2e3440;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.15);box-shadow:0 5px 10px rgba(0,0,0,.15)}.dropdown-menu a:active,.dropdown-menu a:focus,.dropdown-menu a:hover{background-color:#434c5e}article{-webkit-box-shadow:0 0 15px rgba(0,0,0,.15) inset;box-shadow:0 0 15px rgba(0,0,0,.15) inset}article h1,article h3{color:#f8fbff}article .build-details-comments a,article .build-group>h3>a,article a.more-link{color:#e5e9f0}article .build-group-listing .build-group{background-color:#4c566a}article .build-group-listing .build-group:hover{-webkit-box-shadow:0 0 10px 0 rgba(0,0,0,.33);box-shadow:0 0 10px 0 rgba(0,0,0,.33)}.latest-flex .latest-flex-item{background:#4c566a}.latest-flex .latest-flex-item .latest-flex-detail{color:#fff}.latest-flex .latest-flex-item:hover{-webkit-box-shadow:0 0 10px 0 rgba(0,0,0,.33);box-shadow:0 0 10px 0 rgba(0,0,0,.33)}ul.pagination>li.active>a{background:#f8fbff;color:#3b4252!important}ul.pagination>li:active:not(.disabled)>a,ul.pagination>li:focus:not(.disabled)>a,ul.pagination>li:hover:not(.disabled)>a{background:#e5e9f0;color:#2e3440!important}#modal-search-overlay #modal-search{background-color:#3b4252}#modal-search-overlay #modal-search h3{color:#f8fbff}#modal-search-overlay #modal-search>#modal-search-box>#modal-search-button,#modal-search-overlay #modal-search>#modal-search-box>#modal-search-input{background-color:#2e3440;color:#f8fbff;border-color:#e5e9f0}
|
||||
/*# sourceMappingURL=dark.css.map */
|
||||
|
|
|
@ -1,147 +1,157 @@
|
|||
@import "inc/variables.scss";
|
||||
@import "inc/_variables.scss";
|
||||
|
||||
body
|
||||
{
|
||||
background-color: $nord1;
|
||||
color: $nord6;
|
||||
background-color: $nord1;
|
||||
color: $nord6;
|
||||
}
|
||||
|
||||
a
|
||||
{
|
||||
color: #fff;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
h1 > a,
|
||||
#page-footer a
|
||||
{
|
||||
color: $nord6;
|
||||
color: $nord6;
|
||||
}
|
||||
|
||||
table thead th
|
||||
{
|
||||
border-bottom-color: $nord6;
|
||||
border-bottom-color: $nord6;
|
||||
}
|
||||
|
||||
#page-content
|
||||
{
|
||||
background-color: $nord0;
|
||||
color: $nord6;
|
||||
background-color: $nord0;
|
||||
color: $nord6;
|
||||
|
||||
h3
|
||||
{
|
||||
border-bottom-color: $nord4;
|
||||
}
|
||||
h3
|
||||
{
|
||||
border-bottom-color: $nord4;
|
||||
}
|
||||
}
|
||||
|
||||
#page-navigation
|
||||
{
|
||||
background-color: $nord2;
|
||||
color: $nord5;
|
||||
border-bottom-color: $nord0;
|
||||
background-color: $nord2;
|
||||
color: $nord5;
|
||||
border-bottom-color: $nord0;
|
||||
|
||||
button
|
||||
{
|
||||
color: $nord5;
|
||||
}
|
||||
button
|
||||
{
|
||||
color: $nord5;
|
||||
}
|
||||
|
||||
#page-navigation-links
|
||||
{
|
||||
> li
|
||||
{
|
||||
a
|
||||
{
|
||||
color: $nord5;
|
||||
}
|
||||
#page-navigation-links
|
||||
{
|
||||
> li
|
||||
{
|
||||
a
|
||||
{
|
||||
color: $nord5;
|
||||
}
|
||||
|
||||
&.open > a,
|
||||
> a:hover
|
||||
{
|
||||
background-color: $nord3;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.open > a,
|
||||
> a:hover
|
||||
{
|
||||
background-color: $nord3;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.dropdown-menu
|
||||
{
|
||||
background-color: $nord3;
|
||||
border-color: $nord0;
|
||||
box-shadow: 0 5px 10px rgba(0,0,0,0.15);
|
||||
background-color: $nord3;
|
||||
border-color: $nord0;
|
||||
box-shadow: 0 5px 10px rgba(0,0,0,0.15);
|
||||
|
||||
a:hover,
|
||||
a:focus,
|
||||
a:active
|
||||
{
|
||||
background-color: $nord2;
|
||||
}
|
||||
a:hover,
|
||||
a:focus,
|
||||
a:active
|
||||
{
|
||||
background-color: $nord2;
|
||||
}
|
||||
}
|
||||
|
||||
article
|
||||
{
|
||||
box-shadow: 0 0 15px rgba(0,0,0,0.15) inset;
|
||||
box-shadow: 0 0 15px rgba(0,0,0,0.15) inset;
|
||||
|
||||
h1, h3
|
||||
{
|
||||
color: $nord6;
|
||||
}
|
||||
h1, h3
|
||||
{
|
||||
color: $nord6;
|
||||
}
|
||||
|
||||
.build-group > h3 > a,
|
||||
a.more-link,
|
||||
.build-details-comments a
|
||||
{
|
||||
color: $nord5;
|
||||
}
|
||||
.build-group > h3 > a,
|
||||
a.more-link,
|
||||
.build-details-comments a
|
||||
{
|
||||
color: $nord5;
|
||||
}
|
||||
|
||||
.build-group-listing .build-group
|
||||
{
|
||||
background-color: $nord3;
|
||||
}
|
||||
.build-group-listing .build-group
|
||||
{
|
||||
background-color: $nord3;
|
||||
|
||||
&:hover
|
||||
{
|
||||
@include standard-box-shadow(black);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.latest-flex
|
||||
{
|
||||
.latest-flex-item
|
||||
{
|
||||
background: $nord3;
|
||||
.latest-flex-item
|
||||
{
|
||||
background: $nord3;
|
||||
|
||||
.latest-flex-detail
|
||||
{
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
.latest-flex-detail
|
||||
{
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
&:hover
|
||||
{
|
||||
@include standard-box-shadow(black);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ul.pagination
|
||||
{
|
||||
> li.active > a
|
||||
{
|
||||
background: $nord6;
|
||||
color: $nord1 !important;
|
||||
}
|
||||
> li.active > a
|
||||
{
|
||||
background: $nord6;
|
||||
color: $nord1 !important;
|
||||
}
|
||||
|
||||
> li:hover:not(.disabled) > a,
|
||||
> li:focus:not(.disabled) > a,
|
||||
> li:active:not(.disabled) > a
|
||||
{
|
||||
background: $nord5;
|
||||
color: $nord0 !important;
|
||||
}
|
||||
> li:hover:not(.disabled) > a,
|
||||
> li:focus:not(.disabled) > a,
|
||||
> li:active:not(.disabled) > a
|
||||
{
|
||||
background: $nord5;
|
||||
color: $nord0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
#modal-search-overlay #modal-search
|
||||
{
|
||||
background-color: $nord1;
|
||||
background-color: $nord1;
|
||||
|
||||
h3
|
||||
{
|
||||
color: $nord6;
|
||||
}
|
||||
h3
|
||||
{
|
||||
color: $nord6;
|
||||
}
|
||||
|
||||
> #modal-search-box > #modal-search-input,
|
||||
> #modal-search-box > #modal-search-button
|
||||
{
|
||||
background-color: $nord0;
|
||||
color: $nord6;
|
||||
border-color: $nord5;
|
||||
}
|
||||
> #modal-search-box > #modal-search-input,
|
||||
> #modal-search-box > #modal-search-button
|
||||
{
|
||||
background-color: $nord0;
|
||||
color: $nord6;
|
||||
border-color: $nord5;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
.snow-container
|
||||
{
|
||||
position: fixed;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 1000;
|
||||
pointer-events: none;
|
||||
|
||||
> div
|
||||
{
|
||||
width: 2px;
|
||||
height: 2px;
|
||||
background-color: #fff;
|
||||
border-radius: 50%;
|
||||
position: absolute;
|
||||
will-change: transform;
|
||||
transition: transform linear 125ms;
|
||||
}
|
||||
}
|
|
@ -150,7 +150,7 @@ $nord5: #E5E9F0;
|
|||
/// @see $nord4
|
||||
/// @since 0.1.0
|
||||
//$nord6: #ECEFF4;
|
||||
$nord6: #f8fbff;
|
||||
$nord6: #F8FBFF;
|
||||
|
||||
/// Bluish core color.
|
||||
///
|
|
@ -0,0 +1,14 @@
|
|||
@import "_nord.scss";
|
||||
|
||||
$container-width: 1340px;
|
||||
$border-size: 2px;
|
||||
|
||||
$strong-red: #A72F3B;
|
||||
$strong-yellow: #F5B83D;
|
||||
$strong-green: #76B540;
|
||||
$strong-blue: #4076B5;
|
||||
|
||||
@mixin standard-box-shadow($color)
|
||||
{
|
||||
box-shadow: 0 0 10px 0 rgba($color, 0.33);
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
@import "nord.scss";
|
||||
|
||||
$container-width: 1340px;
|
||||
$border-size: 2px;
|
||||
|
||||
$strong-red: #A72F3B;
|
||||
$strong-yellow: #F5B83D;
|
||||
$strong-green: #76B540;
|
||||
$strong-blue: #4076b5;
|
|
@ -1,2 +1,2 @@
|
|||
body{background-color:#2e3440;color:#f8fbff}a{color:#2e3440}#page-footer a,h1>a{color:#f8fbff}table thead th{border-bottom-color:#2e3440}#page-content{background-color:#f8fbff;color:#2e3440}#page-content h3{border-bottom-color:#d8dee9}#page-navigation{background-color:#3b4252;color:#e5e9f0;border-bottom-color:#2e3440}#page-navigation button{color:#e5e9f0}#page-navigation #page-navigation-links>li a{color:#e5e9f0}#page-navigation #page-navigation-links>li.open>a,#page-navigation #page-navigation-links>li>a:hover{background-color:#434c5e}.dropdown-menu{background-color:#434c5e;border-color:#2e3440;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.15);box-shadow:0 5px 10px rgba(0,0,0,.15)}.dropdown-menu a:active,.dropdown-menu a:focus,.dropdown-menu a:hover{background-color:#4c566a}article{-webkit-box-shadow:0 0 15px rgba(0,0,0,.15) inset;box-shadow:0 0 15px rgba(0,0,0,.15) inset}article h1,article h3{color:#4c566a}article .build-details-comments a,article .build-group>h3>a,article a.more-link{color:#4c566a}article .build-group-listing .build-group{background-color:#fff}ul.pagination>li.active>a{background:#2e3440;color:#e5e9f0!important}ul.pagination>li:active:not(.disabled)>a,ul.pagination>li:focus:not(.disabled)>a,ul.pagination>li:hover:not(.disabled)>a{background:#4c566a;color:#f8fbff!important}.latest-flex .latest-flex-item{background:#fff}.latest-flex .latest-flex-item .latest-flex-detail{color:#4c566a}#modal-search-overlay #modal-search{background-color:#f8fbff}#modal-search-overlay #modal-search h3{color:#2e3440}#modal-search-overlay #modal-search>#modal-search-box>#modal-search-button,#modal-search-overlay #modal-search>#modal-search-box>#modal-search-input{background-color:#fff;color:#2e3440;border-color:#4c566a}
|
||||
body{background-color:#2e3440;color:#f8fbff}a{color:#2e3440}#page-footer a,h1>a{color:#f8fbff}table thead th{border-bottom-color:#2e3440}#page-content{background-color:#f8fbff;color:#2e3440}#page-content h3{border-bottom-color:#d8dee9}#page-navigation{background-color:#3b4252;color:#e5e9f0;border-bottom-color:#2e3440}#page-navigation button{color:#e5e9f0}#page-navigation #page-navigation-links>li a{color:#e5e9f0}#page-navigation #page-navigation-links>li.open>a,#page-navigation #page-navigation-links>li>a:hover{background-color:#434c5e}.dropdown-menu{background-color:#434c5e;border-color:#2e3440;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.15);box-shadow:0 5px 10px rgba(0,0,0,.15)}.dropdown-menu a:active,.dropdown-menu a:focus,.dropdown-menu a:hover{background-color:#4c566a}article{-webkit-box-shadow:0 0 15px rgba(0,0,0,.15) inset;box-shadow:0 0 15px rgba(0,0,0,.15) inset}article h1,article h3{color:#4c566a}article .build-details-comments a,article .build-group>h3>a,article a.more-link{color:#4c566a}article .build-group-listing .build-group{background-color:#fff}article .build-group-listing .build-group:hover{-webkit-box-shadow:0 0 10px 0 rgba(46,52,64,.33);box-shadow:0 0 10px 0 rgba(46,52,64,.33)}ul.pagination>li.active>a{background:#2e3440;color:#e5e9f0!important}ul.pagination>li:active:not(.disabled)>a,ul.pagination>li:focus:not(.disabled)>a,ul.pagination>li:hover:not(.disabled)>a{background:#4c566a;color:#f8fbff!important}.latest-flex .latest-flex-item{background:#fff}.latest-flex .latest-flex-item .latest-flex-detail{color:#4c566a}.latest-flex .latest-flex-item:hover{-webkit-box-shadow:0 0 10px 0 rgba(46,52,64,.33);box-shadow:0 0 10px 0 rgba(46,52,64,.33)}#modal-search-overlay #modal-search{background-color:#f8fbff}#modal-search-overlay #modal-search h3{color:#2e3440}#modal-search-overlay #modal-search>#modal-search-box>#modal-search-button,#modal-search-overlay #modal-search>#modal-search-box>#modal-search-input{background-color:#fff;color:#2e3440;border-color:#4c566a}
|
||||
/*# sourceMappingURL=light.css.map */
|
||||
|
|
|
@ -1,147 +1,157 @@
|
|||
@import "inc/variables.scss";
|
||||
@import "inc/_variables.scss";
|
||||
|
||||
body
|
||||
{
|
||||
background-color: $nord0;
|
||||
color: $nord6;
|
||||
background-color: $nord0;
|
||||
color: $nord6;
|
||||
}
|
||||
|
||||
a
|
||||
{
|
||||
color: $nord0;
|
||||
color: $nord0;
|
||||
}
|
||||
|
||||
h1 > a,
|
||||
#page-footer a
|
||||
{
|
||||
color: $nord6;
|
||||
color: $nord6;
|
||||
}
|
||||
|
||||
table thead th
|
||||
{
|
||||
border-bottom-color: $nord0;
|
||||
border-bottom-color: $nord0;
|
||||
}
|
||||
|
||||
#page-content
|
||||
{
|
||||
background-color: $nord6;
|
||||
color: $nord0;
|
||||
background-color: $nord6;
|
||||
color: $nord0;
|
||||
|
||||
h3
|
||||
{
|
||||
border-bottom-color: $nord4;
|
||||
}
|
||||
h3
|
||||
{
|
||||
border-bottom-color: $nord4;
|
||||
}
|
||||
}
|
||||
|
||||
#page-navigation
|
||||
{
|
||||
background-color: $nord1;
|
||||
color: $nord5;
|
||||
border-bottom-color: $nord0;
|
||||
background-color: $nord1;
|
||||
color: $nord5;
|
||||
border-bottom-color: $nord0;
|
||||
|
||||
button
|
||||
{
|
||||
color: $nord5;
|
||||
}
|
||||
button
|
||||
{
|
||||
color: $nord5;
|
||||
}
|
||||
|
||||
#page-navigation-links
|
||||
{
|
||||
> li
|
||||
{
|
||||
a
|
||||
{
|
||||
color: $nord5;
|
||||
}
|
||||
#page-navigation-links
|
||||
{
|
||||
> li
|
||||
{
|
||||
a
|
||||
{
|
||||
color: $nord5;
|
||||
}
|
||||
|
||||
&.open > a,
|
||||
> a:hover
|
||||
{
|
||||
background-color: $nord2;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.open > a,
|
||||
> a:hover
|
||||
{
|
||||
background-color: $nord2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.dropdown-menu
|
||||
{
|
||||
background-color: $nord2;
|
||||
border-color: $nord0;
|
||||
box-shadow: 0 5px 10px rgba(0,0,0,0.15);
|
||||
background-color: $nord2;
|
||||
border-color: $nord0;
|
||||
box-shadow: 0 5px 10px rgba(0,0,0,0.15);
|
||||
|
||||
a:hover,
|
||||
a:focus,
|
||||
a:active
|
||||
{
|
||||
background-color: $nord3;
|
||||
}
|
||||
a:hover,
|
||||
a:focus,
|
||||
a:active
|
||||
{
|
||||
background-color: $nord3;
|
||||
}
|
||||
}
|
||||
|
||||
article
|
||||
{
|
||||
box-shadow: 0 0 15px rgba(0,0,0,0.15) inset;
|
||||
box-shadow: 0 0 15px rgba(0,0,0,0.15) inset;
|
||||
|
||||
h1, h3
|
||||
{
|
||||
color: $nord3;
|
||||
}
|
||||
h1, h3
|
||||
{
|
||||
color: $nord3;
|
||||
}
|
||||
|
||||
.build-group > h3 > a,
|
||||
a.more-link,
|
||||
.build-details-comments a
|
||||
{
|
||||
color: $nord3;
|
||||
}
|
||||
.build-group > h3 > a,
|
||||
a.more-link,
|
||||
.build-details-comments a
|
||||
{
|
||||
color: $nord3;
|
||||
}
|
||||
|
||||
.build-group-listing .build-group
|
||||
{
|
||||
background-color: #fff;
|
||||
}
|
||||
.build-group-listing .build-group
|
||||
{
|
||||
background-color: #fff;
|
||||
|
||||
&:hover
|
||||
{
|
||||
@include standard-box-shadow($nord0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ul.pagination
|
||||
{
|
||||
> li.active > a
|
||||
{
|
||||
background: $nord0;
|
||||
color: $nord5 !important;
|
||||
}
|
||||
> li.active > a
|
||||
{
|
||||
background: $nord0;
|
||||
color: $nord5 !important;
|
||||
}
|
||||
|
||||
> li:hover:not(.disabled) > a,
|
||||
> li:focus:not(.disabled) > a,
|
||||
> li:active:not(.disabled) > a
|
||||
{
|
||||
background: $nord3;
|
||||
color: $nord6 !important;
|
||||
}
|
||||
> li:hover:not(.disabled) > a,
|
||||
> li:focus:not(.disabled) > a,
|
||||
> li:active:not(.disabled) > a
|
||||
{
|
||||
background: $nord3;
|
||||
color: $nord6 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.latest-flex
|
||||
{
|
||||
.latest-flex-item
|
||||
{
|
||||
background: #fff;
|
||||
.latest-flex-item
|
||||
{
|
||||
background: #fff;
|
||||
|
||||
.latest-flex-detail
|
||||
{
|
||||
color: $nord3;
|
||||
}
|
||||
}
|
||||
.latest-flex-detail
|
||||
{
|
||||
color: $nord3;
|
||||
}
|
||||
|
||||
&:hover
|
||||
{
|
||||
@include standard-box-shadow($nord0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#modal-search-overlay #modal-search
|
||||
{
|
||||
background-color: $nord6;
|
||||
background-color: $nord6;
|
||||
|
||||
h3
|
||||
{
|
||||
color: $nord0;
|
||||
}
|
||||
h3
|
||||
{
|
||||
color: $nord0;
|
||||
}
|
||||
|
||||
> #modal-search-box > #modal-search-input,
|
||||
> #modal-search-box > #modal-search-button
|
||||
{
|
||||
background-color: #fff;
|
||||
color: $nord0;
|
||||
border-color: $nord3;
|
||||
}
|
||||
> #modal-search-box > #modal-search-input,
|
||||
> #modal-search-box > #modal-search-button
|
||||
{
|
||||
background-color: #fff;
|
||||
color: $nord0;
|
||||
border-color: $nord3;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
body{background-color:#3b4252;color:#f8fbff}a{color:#fff}#page-footer a,h1>a{color:#f8fbff}table thead th{border-bottom-color:#f8fbff}#page-content{background-color:#2e3440;color:#f8fbff}#page-content h3{border-bottom-color:#d8dee9}#page-navigation{background-color:#434c5e;color:#e5e9f0;border-bottom-color:#2e3440}#page-navigation button{color:#e5e9f0}#page-navigation #page-navigation-links>li a{color:#e5e9f0}#page-navigation #page-navigation-links>li.open>a,#page-navigation #page-navigation-links>li>a:hover{background-color:#4c566a}.dropdown-menu{background-color:#4c566a;border-color:#2e3440;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.15);box-shadow:0 5px 10px rgba(0,0,0,.15)}.dropdown-menu a:active,.dropdown-menu a:focus,.dropdown-menu a:hover{background-color:#434c5e}article{-webkit-box-shadow:0 0 15px rgba(0,0,0,.15) inset;box-shadow:0 0 15px rgba(0,0,0,.15) inset}article h1,article h3{color:#f8fbff}article .build-details-comments a,article .build-group>h3>a,article a.more-link{color:#e5e9f0}article .build-group-listing .build-group{background-color:#4c566a}article .build-group-listing .build-group:hover{-webkit-box-shadow:0 0 10px 0 rgba(0,0,0,.33);box-shadow:0 0 10px 0 rgba(0,0,0,.33)}.latest-flex .latest-flex-item{background:#4c566a}.latest-flex .latest-flex-item .latest-flex-detail{color:#fff}.latest-flex .latest-flex-item:hover{-webkit-box-shadow:0 0 10px 0 rgba(0,0,0,.33);box-shadow:0 0 10px 0 rgba(0,0,0,.33)}ul.pagination>li.active>a{background:#f8fbff;color:#3b4252!important}ul.pagination>li:active:not(.disabled)>a,ul.pagination>li:focus:not(.disabled)>a,ul.pagination>li:hover:not(.disabled)>a{background:#e5e9f0;color:#2e3440!important}#modal-search-overlay #modal-search{background-color:#3b4252}#modal-search-overlay #modal-search h3{color:#f8fbff}#modal-search-overlay #modal-search>#modal-search-box>#modal-search-button,#modal-search-overlay #modal-search>#modal-search-box>#modal-search-input{background-color:#2e3440;color:#f8fbff;border-color:#e5e9f0}.snow-container{position:fixed;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:none}.snow-container>div{width:2px;height:2px;background-color:#fff;border-radius:50%;position:absolute;will-change:transform;-webkit-transition:-webkit-transform linear 125ms;transition:-webkit-transform linear 125ms;-o-transition:transform linear 125ms;transition:transform linear 125ms;transition:transform linear 125ms,-webkit-transform linear 125ms}
|
||||
/*# sourceMappingURL=winter.css.map */
|
|
@ -0,0 +1,2 @@
|
|||
@import "dark.scss";
|
||||
@import "inc/_christmas.scss";
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
|
@ -1,2 +1,2 @@
|
|||
"use strict";var BuildFeed;!function(e){function t(e){e.preventDefault(),this.nextElementSibling.classList.toggle("open")}function n(e){e.preventDefault();var t=this,n=t.parentElement.classList.contains("open");a(e),n||(t.parentElement.classList.toggle("open"),document.getElementById("menu-open-overlay").classList.add("open"))}function a(e){e.preventDefault();for(var t=document.getElementsByClassName("dropdown-parent"),n=0;n<t.length;n++)t[n].classList.remove("open");document.getElementById("menu-open-overlay").classList.remove("open")}function o(e){e.preventDefault();var t=this;document.cookie="bf_theme="+t.dataset.theme+"; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/",location.reload(!0)}function l(e){e.preventDefault();var t=this;document.cookie="bf_lang="+t.dataset.lang+"; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/",location.reload(!0)}function d(e){e.preventDefault(),document.getElementById("modal-search-overlay").classList.add("open")}function r(e){e.preventDefault(),document.getElementById("modal-search-overlay").classList.remove("open")}function c(e){e.preventDefault(),e.stopPropagation()}function i(e){document.getElementById("modal-search-result").innerHTML="",void 0!==p&&clearTimeout(p),void 0!==m&&m.readyState!==XMLHttpRequest.DONE&&m.abort(),p=setInterval(s,200)}function s(){void 0!==p&&clearTimeout(p);var e=document.getElementById("modal-search-input");(m=new XMLHttpRequest).onreadystatechange=u,m.open("GET","/api/GetSearchResult/"+e.value+"/",!0),m.setRequestHeader("accept","application/json"),m.send(null)}function u(e){if(m.readyState===XMLHttpRequest.DONE&&200===m.status){var t=document.getElementById("modal-search-result"),n=document.getElementById("result-template"),a=jsrender.templates(n.innerHTML).render(JSON.parse(m.responseText));t.innerHTML=a;for(var o=t.getElementsByTagName("a"),l=0;l<o.length;l++)o[l].addEventListener("click",function(e){e.preventDefault();var t=document.getElementById("modal-search-input");ga("send","pageview","/api/GetSearchResult/"+t.value+"/"),location.assign(e.currentTarget.href)})}}var m,p;e.MobileMenuToggle=t,e.DropdownClick=n,e.CloseDropdowns=a,e.SwitchTheme=o,e.SwitchLanguage=l,e.OpenSearch=d,e.CloseSearch=r,e.StopClick=c,e.InitiateSearch=i,e.SendSearch=s,e.CompleteSearch=u,e.BuildFeedSetup=function(e){for(var s=document.getElementsByClassName("dropdown-parent"),u=0;u<s.length;u++)for(var m=0;m<s[u].childNodes.length;m++){var p=s[u].childNodes[m];"A"===p.nodeName&&p.addEventListener("click",n)}document.getElementById("menu-open-overlay").addEventListener("click",a);for(var g=document.getElementById("settings-theme-menu").getElementsByTagName("a"),u=0;u<g.length;u++)g[u].addEventListener("click",o);for(var v=document.getElementById("settings-lang-menu").getElementsByTagName("a"),u=0;u<v.length;u++)v[u].addEventListener("click",l);document.getElementById("page-navigation-toggle").addEventListener("click",t),document.getElementById("page-navigation-search").addEventListener("click",d),document.getElementById("modal-search-overlay").addEventListener("click",r),document.getElementById("modal-search").addEventListener("click",c),document.getElementById("modal-search-input").addEventListener("keyup",i)}}(BuildFeed||(BuildFeed={})),window.addEventListener("load",BuildFeed.BuildFeedSetup);
|
||||
"use strict";var BuildFeed;!function(e){function t(e){e.preventDefault();this.nextElementSibling.classList.toggle("open")}function n(e){e.preventDefault();const t=this,n=t.parentElement.classList.contains("open");if(a(e),!n){t.parentElement.classList.toggle("open");document.getElementById("menu-open-overlay").classList.add("open")}}function a(e){e.preventDefault();const t=document.getElementsByClassName("dropdown-parent");for(let e=0;e<t.length;e++)t[e].classList.remove("open");document.getElementById("menu-open-overlay").classList.remove("open")}function o(e){e.preventDefault();document.cookie=`bf_theme=${this.dataset.theme}; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/`,location.reload(!0)}function l(e){e.preventDefault();document.cookie=`bf_lang=${this.dataset.lang}; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/`,location.reload(!0)}function d(e){e.preventDefault();document.getElementById("modal-search-overlay").classList.add("open")}function c(e){e.preventDefault();document.getElementById("modal-search-overlay").classList.remove("open")}function s(e){e.preventDefault(),e.stopPropagation()}function i(e){document.getElementById("modal-search-result").innerHTML="",void 0!==p&&clearTimeout(p),void 0!==m&&m.readyState!==XMLHttpRequest.DONE&&m.abort(),p=setInterval(r,200)}function r(){void 0!==p&&clearTimeout(p);const e=document.getElementById("modal-search-input");(m=new XMLHttpRequest).onreadystatechange=u,m.open("GET",`/api/GetSearchResult/${e.value}/`,!0),m.setRequestHeader("accept","application/json"),m.send(null)}function u(e){if(m.readyState!==XMLHttpRequest.DONE||200!==m.status)return;const t=document.getElementById("modal-search-result"),n=document.getElementById("result-template"),a=jsrender.templates(n.innerHTML).render(JSON.parse(m.responseText));t.innerHTML=a;const o=t.getElementsByTagName("a");for(let e=0;e<o.length;e++)o[e].addEventListener("click",e=>{e.preventDefault();const t=document.getElementById("modal-search-input");ga("send","pageview",`/api/GetSearchResult/${t.value}/`),location.assign(e.currentTarget.href)})}let m,p;e.MobileMenuToggle=t,e.DropdownClick=n,e.CloseDropdowns=a,e.SwitchTheme=o,e.SwitchLanguage=l,e.OpenSearch=d,e.CloseSearch=c,e.StopClick=s,e.InitiateSearch=i,e.SendSearch=r,e.CompleteSearch=u,e.BuildFeedSetup=function(e){const r=document.getElementsByClassName("dropdown-parent");for(let e=0;e<r.length;e++)for(let t=0;t<r[e].childNodes.length;t++){const a=r[e].childNodes[t];"A"===a.nodeName&&a.addEventListener("click",n)}document.getElementById("menu-open-overlay").addEventListener("click",a);const u=document.getElementById("settings-theme-menu").getElementsByTagName("a");for(let e=0;e<u.length;e++)u[e].addEventListener("click",o);const m=document.getElementById("settings-lang-menu").getElementsByTagName("a");for(let e=0;e<m.length;e++)m[e].addEventListener("click",l);document.getElementById("page-navigation-toggle").addEventListener("click",t),document.getElementById("page-navigation-search").addEventListener("click",d),document.getElementById("modal-search-overlay").addEventListener("click",c),document.getElementById("modal-search").addEventListener("click",s),document.getElementById("modal-search-input").addEventListener("keyup",i)}}(BuildFeed||(BuildFeed={})),window.addEventListener("load",BuildFeed.BuildFeedSetup);
|
||||
//# sourceMappingURL=bfs.js.map
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
"use script";var BuildFeed;!function(t){!function(t){function e(){window.requestAnimationFrame(n)}function n(){if(s%5==0)for(let t=0;t<2;t++){const t=new d;o.push(t),i.appendChild(t.getElement())}for(const t of o){t.bumpElement(!0)&&o.splice(o.indexOf(t),1)}s++}let i,o=[],s=0;class d{getElement(){return this.element}bumpElement(t){let e=Math.round(5*(Math.random()/2+.5));return this.top=this.top+e,this.top<-10||this.top>window.innerHeight+10?(this.element.remove(),!0):t&&(e=Math.round(5*(Math.random()/2+.5)),this.left=Math.random()>.5?this.left+e:this.left-e,this.left<-10||this.left>window.innerWidth+10)?(this.element.remove(),!0):(this.element.style.transform=`translate(${this.left}px, ${this.top}px)`,!1)}constructor(){this.element=document.createElement("div"),this.top=0,this.left=Math.round(Math.random()*window.innerWidth)}}t.Setup=function(){(i=document.createElement("div")).className="snow-container",document.body.appendChild(i),window.requestAnimationFrame(n),setInterval(e,125)}}(t.Christmas||(t.Christmas={}))}(BuildFeed||(BuildFeed={})),window.addEventListener("load",BuildFeed.Christmas.Setup);
|
||||
//# sourceMappingURL=christmas.js.map
|
|
@ -0,0 +1,100 @@
|
|||
"use script";
|
||||
|
||||
module BuildFeed.Christmas
|
||||
{
|
||||
const movementSpeed = 5;
|
||||
|
||||
let snowContainer: HTMLDivElement;
|
||||
let snow: Array<Snowflake> = [];
|
||||
let counter: number = 0;
|
||||
let tick: number = 0;
|
||||
|
||||
class Snowflake
|
||||
{
|
||||
private readonly element: HTMLDivElement;
|
||||
private top: number;
|
||||
private left: number;
|
||||
|
||||
public getElement()
|
||||
{
|
||||
return this.element;
|
||||
}
|
||||
|
||||
public bumpElement(moveX: boolean)
|
||||
{
|
||||
let localSpeed = Math.round(((Math.random() / 2) + 0.5) * movementSpeed);
|
||||
this.top = this.top + localSpeed;
|
||||
if (this.top < -10 || this.top > (window.innerHeight + 10))
|
||||
{
|
||||
this.element.remove();
|
||||
return true;
|
||||
}
|
||||
|
||||
if (moveX)
|
||||
{
|
||||
localSpeed = Math.round(((Math.random() / 2) + 0.5) * movementSpeed);
|
||||
this.left = Math.random() > 0.5
|
||||
? this.left + localSpeed
|
||||
: this.left - localSpeed;
|
||||
|
||||
if (this.left < -10 || this.left > (window.innerWidth + 10))
|
||||
{
|
||||
this.element.remove();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
this.element.style.transform = `translate(${this.left}px, ${this.top}px)`;
|
||||
return false;
|
||||
}
|
||||
|
||||
constructor()
|
||||
{
|
||||
this.element = document.createElement("div");
|
||||
this.top = 0;
|
||||
this.left = Math.round(Math.random() * window.innerWidth);
|
||||
}
|
||||
}
|
||||
|
||||
function deferAnimate()
|
||||
{
|
||||
window.requestAnimationFrame(animate);
|
||||
}
|
||||
|
||||
function animate()
|
||||
{
|
||||
if (counter % 5 === 0)
|
||||
{
|
||||
for (let i = 0; i < 2; i++)
|
||||
{
|
||||
const newSnow = new Snowflake();
|
||||
snow.push(newSnow);
|
||||
snowContainer.appendChild(newSnow.getElement());
|
||||
}
|
||||
}
|
||||
|
||||
for (const flake of snow)
|
||||
{
|
||||
const result = flake.bumpElement(true);
|
||||
|
||||
if (result)
|
||||
{
|
||||
snow.splice(snow.indexOf(flake), 1);
|
||||
}
|
||||
}
|
||||
|
||||
counter++;
|
||||
}
|
||||
|
||||
export function Setup()
|
||||
{
|
||||
snowContainer = document.createElement("div");
|
||||
snowContainer.className = "snow-container";
|
||||
document.body.appendChild(snowContainer);
|
||||
|
||||
window.requestAnimationFrame(animate);
|
||||
setInterval(deferAnimate, 125);
|
||||
}
|
||||
}
|
||||
|
||||
window.addEventListener("load", BuildFeed.Christmas.Setup);
|