mirror of
https://gitlab.com/buildfeed/BuildFeed.git
synced 2024-03-22 21:10:34 +08:00
Bugfixes; Component Update; Refactoring
Commented out qps-ploc to work on Mono.
This commit is contained in:
parent
7583968109
commit
db1c655db0
|
@ -9,7 +9,7 @@
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
<RootNamespace>MongoAuth</RootNamespace>
|
<RootNamespace>MongoAuth</RootNamespace>
|
||||||
<AssemblyName>MongoAuth</AssemblyName>
|
<AssemblyName>MongoAuth</AssemblyName>
|
||||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
<TargetFrameworkProfile />
|
<TargetFrameworkProfile />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
@ -31,16 +31,16 @@
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="MongoDB.Bson, Version=2.2.4.26, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="MongoDB.Bson, Version=2.3.0.157, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\MongoDB.Bson.2.2.4\lib\net45\MongoDB.Bson.dll</HintPath>
|
<HintPath>..\..\packages\MongoDB.Bson.2.3.0\lib\net45\MongoDB.Bson.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="MongoDB.Driver, Version=2.2.4.26, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="MongoDB.Driver, Version=2.3.0.157, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\MongoDB.Driver.2.2.4\lib\net45\MongoDB.Driver.dll</HintPath>
|
<HintPath>..\..\packages\MongoDB.Driver.2.3.0\lib\net45\MongoDB.Driver.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="MongoDB.Driver.Core, Version=2.2.4.26, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="MongoDB.Driver.Core, Version=2.3.0.157, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\MongoDB.Driver.Core.2.2.4\lib\net45\MongoDB.Driver.Core.dll</HintPath>
|
<HintPath>..\..\packages\MongoDB.Driver.Core.2.3.0\lib\net45\MongoDB.Driver.Core.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
|
|
|
@ -18,13 +18,13 @@ public class MongoMembershipProvider : MembershipProvider
|
||||||
|
|
||||||
private bool _enablePasswordReset = true;
|
private bool _enablePasswordReset = true;
|
||||||
private int _maxInvalidPasswordAttempts = 5;
|
private int _maxInvalidPasswordAttempts = 5;
|
||||||
|
|
||||||
|
private IMongoCollection<MongoMember> _memberCollection;
|
||||||
private int _minRequiredNonAlphanumericCharacters = 1;
|
private int _minRequiredNonAlphanumericCharacters = 1;
|
||||||
private int _minRequriedPasswordLength = 12;
|
private int _minRequriedPasswordLength = 12;
|
||||||
private int _passwordAttemptWindow = 60;
|
private int _passwordAttemptWindow = 60;
|
||||||
private bool _requiresUniqueEmail = true;
|
private bool _requiresUniqueEmail = true;
|
||||||
|
|
||||||
private IMongoCollection<MongoMember> _memberCollection;
|
|
||||||
|
|
||||||
public override string ApplicationName { get; set; }
|
public override string ApplicationName { get; set; }
|
||||||
|
|
||||||
public override bool EnablePasswordReset => _enablePasswordReset;
|
public override bool EnablePasswordReset => _enablePasswordReset;
|
||||||
|
@ -97,7 +97,7 @@ public override bool ChangePassword(string username, string oldPassword, string
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
byte[] salt = new byte[24];
|
var salt = new byte[24];
|
||||||
byte[] hash = CalculateHash(newPassword, ref salt);
|
byte[] hash = CalculateHash(newPassword, ref salt);
|
||||||
|
|
||||||
mm.PassSalt = salt;
|
mm.PassSalt = salt;
|
||||||
|
@ -112,7 +112,10 @@ public override bool ChangePassword(string username, string oldPassword, string
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool ChangePasswordQuestionAndAnswer(string username, string password, string newPasswordQuestion, string newPasswordAnswer) { throw new NotImplementedException(); }
|
public override bool ChangePasswordQuestionAndAnswer(string username, string password, string newPasswordQuestion, string newPasswordAnswer)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
|
public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
|
||||||
{
|
{
|
||||||
|
@ -139,7 +142,7 @@ public override MembershipUser CreateUser(string username, string password, stri
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
byte[] salt = new byte[24];
|
var salt = new byte[24];
|
||||||
byte[] hash = CalculateHash(password, ref salt);
|
byte[] hash = CalculateHash(password, ref salt);
|
||||||
|
|
||||||
MongoMember mm = new MongoMember
|
MongoMember mm = new MongoMember
|
||||||
|
@ -179,12 +182,18 @@ public override bool DeleteUser(string username, bool deleteAllRelatedData)
|
||||||
Task<DeleteResult> task = _memberCollection.DeleteOneAsync(m => m.UserName.ToLower() == username.ToLower());
|
Task<DeleteResult> task = _memberCollection.DeleteOneAsync(m => m.UserName.ToLower() == username.ToLower());
|
||||||
task.Wait();
|
task.Wait();
|
||||||
|
|
||||||
return task.Result.IsAcknowledged && task.Result.DeletedCount == 1;
|
return task.Result.IsAcknowledged && (task.Result.DeletedCount == 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override MembershipUserCollection FindUsersByEmail(string emailToMatch, int pageIndex, int pageSize, out int totalRecords) { throw new NotImplementedException(); }
|
public override MembershipUserCollection FindUsersByEmail(string emailToMatch, int pageIndex, int pageSize, out int totalRecords)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
public override MembershipUserCollection FindUsersByName(string usernameToMatch, int pageIndex, int pageSize, out int totalRecords) { throw new NotImplementedException(); }
|
public override MembershipUserCollection FindUsersByName(string usernameToMatch, int pageIndex, int pageSize, out int totalRecords)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords)
|
public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords)
|
||||||
{
|
{
|
||||||
|
@ -208,9 +217,15 @@ public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize
|
||||||
return muc;
|
return muc;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override int GetNumberOfUsersOnline() { throw new NotImplementedException(); }
|
public override int GetNumberOfUsersOnline()
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
public override string GetPassword(string username, string answer) { throw new NotImplementedException(); }
|
public override string GetPassword(string username, string answer)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
public override MembershipUser GetUser(string username, bool userIsOnline)
|
public override MembershipUser GetUser(string username, bool userIsOnline)
|
||||||
{
|
{
|
||||||
|
@ -244,7 +259,10 @@ public override string GetUserNameByEmail(string email)
|
||||||
return task.Result.UserName;
|
return task.Result.UserName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string ResetPassword(string username, string answer) { throw new NotImplementedException(); }
|
public override string ResetPassword(string username, string answer)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
public void ChangeApproval(Guid id, bool newStatus)
|
public void ChangeApproval(Guid id, bool newStatus)
|
||||||
{
|
{
|
||||||
|
@ -254,8 +272,10 @@ public void ChangeApproval(Guid id, bool newStatus)
|
||||||
|
|
||||||
public void ChangeLockStatus(Guid id, bool newStatus)
|
public void ChangeLockStatus(Guid id, bool newStatus)
|
||||||
{
|
{
|
||||||
List<UpdateDefinition<MongoMember>> updateDefinition = new List<UpdateDefinition<MongoMember>>();
|
var updateDefinition = new List<UpdateDefinition<MongoMember>>
|
||||||
updateDefinition.Add(Builders<MongoMember>.Update.Set(u => u.IsLockedOut, newStatus));
|
{
|
||||||
|
Builders<MongoMember>.Update.Set(u => u.IsLockedOut, newStatus)
|
||||||
|
};
|
||||||
|
|
||||||
if (newStatus)
|
if (newStatus)
|
||||||
{
|
{
|
||||||
|
@ -276,10 +296,13 @@ public override bool UnlockUser(string userName)
|
||||||
Task<UpdateResult> task = _memberCollection.UpdateOneAsync(Builders<MongoMember>.Filter.Eq(m => m.UserName.ToLower(), userName.ToLower()), Builders<MongoMember>.Update.Set(m => m.IsLockedOut, false));
|
Task<UpdateResult> task = _memberCollection.UpdateOneAsync(Builders<MongoMember>.Filter.Eq(m => m.UserName.ToLower(), userName.ToLower()), Builders<MongoMember>.Update.Set(m => m.IsLockedOut, false));
|
||||||
task.Wait();
|
task.Wait();
|
||||||
|
|
||||||
return task.Result.IsAcknowledged && task.Result.ModifiedCount == 1;
|
return task.Result.IsAcknowledged && (task.Result.ModifiedCount == 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void UpdateUser(MembershipUser user) { throw new NotImplementedException(); }
|
public override void UpdateUser(MembershipUser user)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
public override bool ValidateUser(string username, string password)
|
public override bool ValidateUser(string username, string password)
|
||||||
{
|
{
|
||||||
|
@ -287,7 +310,7 @@ public override bool ValidateUser(string username, string password)
|
||||||
task.Wait();
|
task.Wait();
|
||||||
MongoMember mm = task.Result;
|
MongoMember mm = task.Result;
|
||||||
|
|
||||||
if (mm == null
|
if ((mm == null)
|
||||||
|| !(mm.IsApproved && !mm.IsLockedOut))
|
|| !(mm.IsApproved && !mm.IsLockedOut))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
|
@ -353,7 +376,7 @@ private static byte[] CalculateHash(string password, ref byte[] salt)
|
||||||
|
|
||||||
byte[] passwordBytes = Encoding.UTF8.GetBytes(password);
|
byte[] passwordBytes = Encoding.UTF8.GetBytes(password);
|
||||||
|
|
||||||
byte[] hashPlaintext = new byte[salt.Length + passwordBytes.Length];
|
var hashPlaintext = new byte[salt.Length + passwordBytes.Length];
|
||||||
|
|
||||||
passwordBytes.CopyTo(hashPlaintext, 0);
|
passwordBytes.CopyTo(hashPlaintext, 0);
|
||||||
salt.CopyTo(hashPlaintext, passwordBytes.Length);
|
salt.CopyTo(hashPlaintext, passwordBytes.Length);
|
||||||
|
|
|
@ -17,8 +17,8 @@ public class MongoRoleProvider : RoleProvider
|
||||||
{
|
{
|
||||||
private const string MEMBER_COLLECTION_NAME = "members";
|
private const string MEMBER_COLLECTION_NAME = "members";
|
||||||
private const string ROLE_COLLECTION_NAME = "roles";
|
private const string ROLE_COLLECTION_NAME = "roles";
|
||||||
private IMongoCollection<MongoRole> _roleCollection;
|
|
||||||
private IMongoCollection<MongoMember> _memberCollection;
|
private IMongoCollection<MongoMember> _memberCollection;
|
||||||
|
private IMongoCollection<MongoRole> _roleCollection;
|
||||||
|
|
||||||
public override string ApplicationName
|
public override string ApplicationName
|
||||||
{
|
{
|
||||||
|
@ -61,7 +61,7 @@ public override void AddUsersToRoles(string[] usernames, string[] roleNames)
|
||||||
|
|
||||||
for (int i = 0; i < roles.Count; i++)
|
for (int i = 0; i < roles.Count; i++)
|
||||||
{
|
{
|
||||||
List<Guid> newUsers = new List<Guid>();
|
var newUsers = new List<Guid>();
|
||||||
|
|
||||||
if (roles[i].Users != null)
|
if (roles[i].Users != null)
|
||||||
{
|
{
|
||||||
|
@ -98,8 +98,8 @@ public override bool DeleteRole(string roleName, bool throwOnPopulatedRole)
|
||||||
Task<MongoRole> role = _roleCollection.Find(r => r.RoleName == roleName).SingleOrDefaultAsync();
|
Task<MongoRole> role = _roleCollection.Find(r => r.RoleName == roleName).SingleOrDefaultAsync();
|
||||||
role.Wait();
|
role.Wait();
|
||||||
|
|
||||||
if (role.Result != null
|
if ((role.Result != null)
|
||||||
&& role.Result.Users.Length > 0
|
&& (role.Result.Users.Length > 0)
|
||||||
&& throwOnPopulatedRole)
|
&& throwOnPopulatedRole)
|
||||||
{
|
{
|
||||||
throw new ProviderException(Resources.RoleNotEmpty);
|
throw new ProviderException(Resources.RoleNotEmpty);
|
||||||
|
@ -145,7 +145,7 @@ public override string[] GetRolesForUser(string username)
|
||||||
return Array.Empty<string>();
|
return Array.Empty<string>();
|
||||||
}
|
}
|
||||||
|
|
||||||
Task<List<MongoRole>> role = _roleCollection.Find(r => r.Users != null && r.Users.Contains(user.Result.Id)).ToListAsync();
|
Task<List<MongoRole>> role = _roleCollection.Find(r => (r.Users != null) && r.Users.Contains(user.Result.Id)).ToListAsync();
|
||||||
role.Wait();
|
role.Wait();
|
||||||
|
|
||||||
return role.Result.Select(r => r.RoleName).ToArray();
|
return role.Result.Select(r => r.RoleName).ToArray();
|
||||||
|
@ -174,8 +174,8 @@ public override bool IsUserInRole(string username, string roleName)
|
||||||
user.Wait();
|
user.Wait();
|
||||||
role.Wait();
|
role.Wait();
|
||||||
|
|
||||||
if (user.Result == null
|
if ((user.Result == null)
|
||||||
|| role.Result?.Users == null)
|
|| (role.Result?.Users == null))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
<package id="MongoDB.Bson" version="2.2.4" targetFramework="net461" />
|
<package id="MongoDB.Bson" version="2.3.0" targetFramework="net462" />
|
||||||
<package id="MongoDB.Driver" version="2.2.4" targetFramework="net461" />
|
<package id="MongoDB.Driver" version="2.3.0" targetFramework="net462" />
|
||||||
<package id="MongoDB.Driver.Core" version="2.2.4" targetFramework="net461" />
|
<package id="MongoDB.Driver.Core" version="2.3.0" targetFramework="net462" />
|
||||||
</packages>
|
</packages>
|
|
@ -39,16 +39,16 @@
|
||||||
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
|
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="MongoDB.Bson, Version=2.2.4.26, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="MongoDB.Bson, Version=2.3.0.157, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\MongoDB.Bson.2.2.4\lib\net45\MongoDB.Bson.dll</HintPath>
|
<HintPath>..\packages\MongoDB.Bson.2.3.0\lib\net45\MongoDB.Bson.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="MongoDB.Driver, Version=2.2.4.26, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="MongoDB.Driver, Version=2.3.0.157, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\MongoDB.Driver.2.2.4\lib\net45\MongoDB.Driver.dll</HintPath>
|
<HintPath>..\packages\MongoDB.Driver.2.3.0\lib\net45\MongoDB.Driver.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="MongoDB.Driver.Core, Version=2.2.4.26, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="MongoDB.Driver.Core, Version=2.3.0.157, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\MongoDB.Driver.Core.2.2.4\lib\net45\MongoDB.Driver.Core.dll</HintPath>
|
<HintPath>..\packages\MongoDB.Driver.Core.2.3.0\lib\net45\MongoDB.Driver.Core.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
namespace BuildFeed.Model
|
namespace BuildFeed.Model
|
||||||
{
|
{
|
||||||
public class BuildGroup
|
public struct BuildGroup
|
||||||
{
|
{
|
||||||
public uint Major { get; set; }
|
public uint Major { get; set; }
|
||||||
public uint Minor { get; set; }
|
public uint Minor { get; set; }
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net462" />
|
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net462" />
|
||||||
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net462" />
|
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net462" />
|
||||||
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net462" />
|
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net462" />
|
||||||
<package id="MongoDB.Bson" version="2.2.4" targetFramework="net462" />
|
<package id="MongoDB.Bson" version="2.3.0" targetFramework="net462" />
|
||||||
<package id="MongoDB.Driver" version="2.2.4" targetFramework="net462" />
|
<package id="MongoDB.Driver" version="2.3.0" targetFramework="net462" />
|
||||||
<package id="MongoDB.Driver.Core" version="2.2.4" targetFramework="net462" />
|
<package id="MongoDB.Driver.Core" version="2.3.0" targetFramework="net462" />
|
||||||
</packages>
|
</packages>
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
|
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.2\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.2\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
|
||||||
<Import Project="..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props')" />
|
<Import Project="..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.3.2\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="$(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')" />
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
@ -97,8 +97,8 @@
|
||||||
<HintPath>..\packages\Microsoft.ApplicationInsights.2.1.0\lib\net46\Microsoft.ApplicationInsights.dll</HintPath>
|
<HintPath>..\packages\Microsoft.ApplicationInsights.2.1.0\lib\net46\Microsoft.ApplicationInsights.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll</HintPath>
|
<HintPath>..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.2\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.CSharp" />
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
@ -106,16 +106,16 @@
|
||||||
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
|
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="MongoDB.Bson, Version=2.2.4.26, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="MongoDB.Bson, Version=2.3.0.157, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\MongoDB.Bson.2.2.4\lib\net45\MongoDB.Bson.dll</HintPath>
|
<HintPath>..\packages\MongoDB.Bson.2.3.0\lib\net45\MongoDB.Bson.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="MongoDB.Driver, Version=2.2.4.26, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="MongoDB.Driver, Version=2.3.0.157, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\MongoDB.Driver.2.2.4\lib\net45\MongoDB.Driver.dll</HintPath>
|
<HintPath>..\packages\MongoDB.Driver.2.3.0\lib\net45\MongoDB.Driver.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="MongoDB.Driver.Core, Version=2.2.4.26, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="MongoDB.Driver.Core, Version=2.3.0.157, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\MongoDB.Driver.Core.2.2.4\lib\net45\MongoDB.Driver.Core.dll</HintPath>
|
<HintPath>..\packages\MongoDB.Driver.Core.2.3.0\lib\net45\MongoDB.Driver.Core.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
<Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||||
|
@ -499,7 +499,7 @@
|
||||||
<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>
|
<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>
|
</PropertyGroup>
|
||||||
<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props'))" />
|
<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props'))" />
|
||||||
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
|
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.2\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.2\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
|
||||||
</Target>
|
</Target>
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- 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.
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
|
|
@ -31,7 +31,7 @@ public class Locale
|
||||||
new Locale("pl"),
|
new Locale("pl"),
|
||||||
new Locale("pt"),
|
new Locale("pt"),
|
||||||
new Locale("pt-br"),
|
new Locale("pt-br"),
|
||||||
new Locale("qps-ploc"),
|
//new Locale("qps-ploc"),
|
||||||
new Locale("ro"),
|
new Locale("ro"),
|
||||||
new Locale("ru"),
|
new Locale("ru"),
|
||||||
new Locale("sk"),
|
new Locale("sk"),
|
||||||
|
|
13
BuildFeed/Scripts/typings/jquery/jquery.d.ts
vendored
13
BuildFeed/Scripts/typings/jquery/jquery.d.ts
vendored
|
@ -344,6 +344,13 @@ interface JQueryPromise<T> extends JQueryGenericPromise<T> {
|
||||||
|
|
||||||
// Deprecated - given no typings
|
// Deprecated - given no typings
|
||||||
pipe(doneFilter?: (x: any) => any, failFilter?: (x: any) => any, progressFilter?: (x: any) => any): JQueryPromise<any>;
|
pipe(doneFilter?: (x: any) => any, failFilter?: (x: any) => any, progressFilter?: (x: any) => any): JQueryPromise<any>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a Deferred's Promise object.
|
||||||
|
*
|
||||||
|
* @param target Object onto which the promise methods have to be attached
|
||||||
|
*/
|
||||||
|
promise(target?: any): JQueryPromise<T>;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2780,8 +2787,9 @@ interface JQuery {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve all the elements contained in the jQuery set, as an array.
|
* Retrieve all the elements contained in the jQuery set, as an array.
|
||||||
|
* @name toArray
|
||||||
*/
|
*/
|
||||||
toArray(): any[];
|
toArray(): HTMLElement[];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove the parents of the set of matched elements from the DOM, leaving the matched elements in their place.
|
* Remove the parents of the set of matched elements from the DOM, leaving the matched elements in their place.
|
||||||
|
@ -2837,8 +2845,9 @@ interface JQuery {
|
||||||
get(index: number): HTMLElement;
|
get(index: number): HTMLElement;
|
||||||
/**
|
/**
|
||||||
* Retrieve the elements matched by the jQuery object.
|
* Retrieve the elements matched by the jQuery object.
|
||||||
|
* @alias toArray
|
||||||
*/
|
*/
|
||||||
get(): any[];
|
get(): HTMLElement[];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Search for a given element from among the matched elements.
|
* Search for a given element from among the matched elements.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
@using BuildFeed.Controllers
|
@using BuildFeed.Controllers
|
||||||
@using BuildFeed.Model.View
|
@using BuildFeed.Model.View
|
||||||
@using Humanizer
|
@using Humanizer
|
||||||
@model IEnumerable<FrontBuildGroup>
|
@model IEnumerable<BuildFeed.Model.View.FrontBuildGroup>
|
||||||
@{
|
@{
|
||||||
ViewBag.Title = $"{string.Format(VariantTerms.Front_HomepageH1, InvariantTerms.ProductName)} {string.Format(VariantTerms.Common_TitlePage, (int)ViewBag.PageNumber)} | {InvariantTerms.SiteName}";
|
ViewBag.Title = $"{string.Format(VariantTerms.Front_HomepageH1, InvariantTerms.ProductName)} {string.Format(VariantTerms.Common_TitlePage, (int)ViewBag.PageNumber)} | {InvariantTerms.SiteName}";
|
||||||
}
|
}
|
||||||
|
@ -52,5 +52,7 @@
|
||||||
<div class="build-group-empty"></div>
|
<div class="build-group-empty"></div>
|
||||||
<div class="build-group-empty"></div>
|
<div class="build-group-empty"></div>
|
||||||
<div class="build-group-empty"></div>
|
<div class="build-group-empty"></div>
|
||||||
|
<div class="build-group-empty"></div>
|
||||||
|
<div class="build-group-empty"></div>
|
||||||
</div>
|
</div>
|
||||||
@PaginationHelpers.PaginationBlock((int)ViewBag.PageNumber, (int)ViewBag.PageCount, nameof(FrontController.Index), ViewContext.RouteData.Values)
|
@PaginationHelpers.PaginationBlock((int)ViewBag.PageNumber, (int)ViewBag.PageCount, nameof(FrontController.Index), ViewContext.RouteData.Values)
|
|
@ -1,5 +1,5 @@
|
||||||
@using BuildFeed.Model
|
@using BuildFeed.Model
|
||||||
@model Build
|
@model BuildFeed.Model.Build
|
||||||
@{
|
@{
|
||||||
ViewBag.Title = (string)ViewContext.RouteData.Values["action"] == "addBuild"
|
ViewBag.Title = (string)ViewContext.RouteData.Values["action"] == "addBuild"
|
||||||
? $"{VariantTerms.Common_AddBuild} | {InvariantTerms.SiteName}"
|
? $"{VariantTerms.Common_AddBuild} | {InvariantTerms.SiteName}"
|
||||||
|
@ -149,8 +149,7 @@ else
|
||||||
? VariantTerms.Common_AddBuild
|
? VariantTerms.Common_AddBuild
|
||||||
: VariantTerms.Front_EditBuild)" class="btn btn-primary" />
|
: VariantTerms.Front_EditBuild)" class="btn btn-primary" />
|
||||||
 
|
 
|
||||||
<a href="/" onclick="window.history
|
<a href="/" onclick="window.history.back();return false;" class="button">
|
||||||
.back(); return false;" class="button">
|
|
||||||
@VariantTerms.Front_ReturnToListing</a>
|
@VariantTerms.Front_ReturnToListing</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -167,9 +166,11 @@ else
|
||||||
<script src="~/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script>
|
<script src="~/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
jQuery(function($) {
|
jQuery(function($)
|
||||||
|
{
|
||||||
$.validator.addMethod('date',
|
$.validator.addMethod('date',
|
||||||
function(value, element) {
|
function(value, element)
|
||||||
|
{
|
||||||
if (this.optional(element))
|
if (this.optional(element))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
|
@ -188,7 +189,8 @@ else
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
$(function() {
|
$(function()
|
||||||
|
{
|
||||||
var btnsGrps = $.trumbowyg.btnsGrps;
|
var btnsGrps = $.trumbowyg.btnsGrps;
|
||||||
|
|
||||||
$("#@Html.IdFor(model => model.SourceDetails)")
|
$("#@Html.IdFor(model => model.SourceDetails)")
|
||||||
|
@ -207,7 +209,8 @@ else
|
||||||
$(".trumbowyg").addClass("trumbowyg-black");
|
$(".trumbowyg").addClass("trumbowyg-black");
|
||||||
|
|
||||||
$("#quickpaste")
|
$("#quickpaste")
|
||||||
.change(function() {
|
.change(function()
|
||||||
|
{
|
||||||
var regex =
|
var regex =
|
||||||
/(([\d]{1,2})\.([\d]{1,2})\.)?([\d]{4,5})(\.([\d]{1,5}))?\.([a-zA-Z0-9._\(\)-]+?)\.(\d\d\d\d\d\d-\d\d\d\d)/;
|
/(([\d]{1,2})\.([\d]{1,2})\.)?([\d]{4,5})(\.([\d]{1,5}))?\.([a-zA-Z0-9._\(\)-]+?)\.(\d\d\d\d\d\d-\d\d\d\d)/;
|
||||||
var result = regex.exec($("#quickpaste").val());
|
var result = regex.exec($("#quickpaste").val());
|
||||||
|
|
|
@ -165,7 +165,8 @@
|
||||||
var disqus_shortname = 'buildfeed';
|
var disqus_shortname = 'buildfeed';
|
||||||
var disqus_url = 'https://buildfeed.net/actions/info/@((object)Model.LegacyId ?? Model.Id)/';
|
var disqus_url = 'https://buildfeed.net/actions/info/@((object)Model.LegacyId ?? Model.Id)/';
|
||||||
|
|
||||||
(function () {
|
(function()
|
||||||
|
{
|
||||||
var dsq = document.createElement('script');
|
var dsq = document.createElement('script');
|
||||||
dsq.type = 'text/javascript';
|
dsq.type = 'text/javascript';
|
||||||
dsq.async = true;
|
dsq.async = true;
|
||||||
|
|
|
@ -64,4 +64,9 @@
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
<div class="build-group-empty"></div>
|
||||||
|
<div class="build-group-empty"></div>
|
||||||
|
<div class="build-group-empty"></div>
|
||||||
|
<div class="build-group-empty"></div>
|
||||||
|
<div class="build-group-empty"></div>
|
||||||
</div>
|
</div>
|
|
@ -1,7 +1,7 @@
|
||||||
@using BuildFeed.Code
|
@using BuildFeed.Code
|
||||||
@using BuildFeed.Model
|
@using BuildFeed.Model
|
||||||
@using Humanizer
|
@using Humanizer
|
||||||
@model IEnumerable<Build>
|
@model IEnumerable<BuildFeed.Model.Build>
|
||||||
@{
|
@{
|
||||||
ViewBag.Title = string.Format("{0}{1} | {2}", string.Format(VariantTerms.Front_BuildsFrom, ViewBag.ItemId), ViewBag.PageNumber == 1
|
ViewBag.Title = string.Format("{0}{1} | {2}", string.Format(VariantTerms.Front_BuildsFrom, ViewBag.ItemId), ViewBag.PageNumber == 1
|
||||||
? ""
|
? ""
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
<h1 class="eager-wrapping">@string.Format(VariantTerms.Front_BuildsFrom, ViewBag.ItemId)</h1>
|
<h1 class="eager-wrapping">@string.Format(VariantTerms.Front_BuildsFrom, ViewBag.ItemId)</h1>
|
||||||
@if (ViewBag.MetaItem != null && !string.IsNullOrWhiteSpace(ViewBag.MetaItem.PageContent))
|
@if ((ViewBag.MetaItem != null) && !string.IsNullOrWhiteSpace(ViewBag.MetaItem.PageContent))
|
||||||
{
|
{
|
||||||
<h3>@VariantTerms.Front_About</h3>
|
<h3>@VariantTerms.Front_About</h3>
|
||||||
@Html.Raw(ViewBag.MetaItem.PageContent)
|
@Html.Raw(ViewBag.MetaItem.PageContent)
|
||||||
|
@ -92,5 +92,7 @@
|
||||||
<div class="build-group-empty"></div>
|
<div class="build-group-empty"></div>
|
||||||
<div class="build-group-empty"></div>
|
<div class="build-group-empty"></div>
|
||||||
<div class="build-group-empty"></div>
|
<div class="build-group-empty"></div>
|
||||||
|
<div class="build-group-empty"></div>
|
||||||
|
<div class="build-group-empty"></div>
|
||||||
</div>
|
</div>
|
||||||
@PaginationHelpers.PaginationBlock((int)ViewBag.PageNumber, (int)ViewBag.PageCount, "viewLab", ViewContext.RouteData.Values)
|
@PaginationHelpers.PaginationBlock((int)ViewBag.PageNumber, (int)ViewBag.PageCount, "viewLab", ViewContext.RouteData.Values)
|
|
@ -1,7 +1,7 @@
|
||||||
@using BuildFeed.Code
|
@using BuildFeed.Code
|
||||||
@using BuildFeed.Model
|
@using BuildFeed.Model
|
||||||
@using Humanizer
|
@using Humanizer
|
||||||
@model IEnumerable<Build>
|
@model IEnumerable<BuildFeed.Model.Build>
|
||||||
@{
|
@{
|
||||||
ViewBag.Title = string.Format("{0}{1} | {2}", ViewBag.ItemId, ViewBag.PageNumber == 1
|
ViewBag.Title = string.Format("{0}{1} | {2}", ViewBag.ItemId, ViewBag.PageNumber == 1
|
||||||
? ""
|
? ""
|
||||||
|
@ -23,7 +23,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
<h1>@ViewBag.ItemId</h1>
|
<h1>@ViewBag.ItemId</h1>
|
||||||
@if (ViewBag.MetaItem != null && !string.IsNullOrWhiteSpace(ViewBag.MetaItem.PageContent))
|
@if ((ViewBag.MetaItem != null) && !string.IsNullOrWhiteSpace(ViewBag.MetaItem.PageContent))
|
||||||
{
|
{
|
||||||
<h3>@VariantTerms.Front_About</h3>
|
<h3>@VariantTerms.Front_About</h3>
|
||||||
@Html.Raw(ViewBag.MetaItem.PageContent)
|
@Html.Raw(ViewBag.MetaItem.PageContent)
|
||||||
|
@ -88,5 +88,10 @@
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
<div class="build-group-empty"></div>
|
||||||
|
<div class="build-group-empty"></div>
|
||||||
|
<div class="build-group-empty"></div>
|
||||||
|
<div class="build-group-empty"></div>
|
||||||
|
<div class="build-group-empty"></div>
|
||||||
</div>
|
</div>
|
||||||
@PaginationHelpers.PaginationBlock((int)ViewBag.PageNumber, (int)ViewBag.PageCount, "viewSource", ViewContext.RouteData.Values)
|
@PaginationHelpers.PaginationBlock((int)ViewBag.PageNumber, (int)ViewBag.PageCount, "viewSource", ViewContext.RouteData.Values)
|
|
@ -1,7 +1,7 @@
|
||||||
@using BuildFeed.Code
|
@using BuildFeed.Code
|
||||||
@using BuildFeed.Model
|
@using BuildFeed.Model
|
||||||
@using Humanizer
|
@using Humanizer
|
||||||
@model IEnumerable<Build>
|
@model IEnumerable<BuildFeed.Model.Build>
|
||||||
@{
|
@{
|
||||||
ViewBag.Title = $"{InvariantTerms.ProductName} {ViewBag.ItemId} {(ViewBag.PageNumber == 1 ? "" : string.Format(VariantTerms.Common_TitlePage, ViewBag.PageNumber))} | {InvariantTerms.SiteName}";
|
ViewBag.Title = $"{InvariantTerms.ProductName} {ViewBag.ItemId} {(ViewBag.PageNumber == 1 ? "" : string.Format(VariantTerms.Common_TitlePage, ViewBag.PageNumber))} | {InvariantTerms.SiteName}";
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
<h1>@string.Format("{0} {1}", InvariantTerms.ProductName, ViewBag.ItemId)</h1>
|
<h1>@string.Format("{0} {1}", InvariantTerms.ProductName, ViewBag.ItemId)</h1>
|
||||||
@if (ViewBag.MetaItem != null
|
@if ((ViewBag.MetaItem != null)
|
||||||
&& !string.IsNullOrWhiteSpace(ViewBag.MetaItem.PageContent))
|
&& !string.IsNullOrWhiteSpace(ViewBag.MetaItem.PageContent))
|
||||||
{
|
{
|
||||||
<h3>@VariantTerms.Front_About</h3>
|
<h3>@VariantTerms.Front_About</h3>
|
||||||
|
@ -89,5 +89,10 @@
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
<div class="build-group-empty"></div>
|
||||||
|
<div class="build-group-empty"></div>
|
||||||
|
<div class="build-group-empty"></div>
|
||||||
|
<div class="build-group-empty"></div>
|
||||||
|
<div class="build-group-empty"></div>
|
||||||
</div>
|
</div>
|
||||||
@PaginationHelpers.PaginationBlock((int)ViewBag.PageNumber, (int)ViewBag.PageCount, "viewVersion", ViewContext.RouteData.Values)
|
@PaginationHelpers.PaginationBlock((int)ViewBag.PageNumber, (int)ViewBag.PageCount, "viewVersion", ViewContext.RouteData.Values)
|
|
@ -1,7 +1,7 @@
|
||||||
@using BuildFeed.Code
|
@using BuildFeed.Code
|
||||||
@using BuildFeed.Model
|
@using BuildFeed.Model
|
||||||
@using Humanizer
|
@using Humanizer
|
||||||
@model IEnumerable<Build>
|
@model IEnumerable<BuildFeed.Model.Build>
|
||||||
@{
|
@{
|
||||||
ViewBag.Title = string.Format("{0}{1} | {2}", string.Format(VariantTerms.Front_BuildsFrom, ViewBag.ItemId), ViewBag.PageNumber == 1
|
ViewBag.Title = string.Format("{0}{1} | {2}", string.Format(VariantTerms.Front_BuildsFrom, ViewBag.ItemId), ViewBag.PageNumber == 1
|
||||||
? ""
|
? ""
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
<h1>@string.Format(VariantTerms.Front_BuildsFrom, ViewBag.ItemId)</h1>
|
<h1>@string.Format(VariantTerms.Front_BuildsFrom, ViewBag.ItemId)</h1>
|
||||||
@if (ViewBag.MetaItem != null && !string.IsNullOrWhiteSpace(ViewBag.MetaItem.PageContent))
|
@if ((ViewBag.MetaItem != null) && !string.IsNullOrWhiteSpace(ViewBag.MetaItem.PageContent))
|
||||||
{
|
{
|
||||||
<h3>@VariantTerms.Front_About</h3>
|
<h3>@VariantTerms.Front_About</h3>
|
||||||
@Html.Raw(ViewBag.MetaItem.PageContent)
|
@Html.Raw(ViewBag.MetaItem.PageContent)
|
||||||
|
@ -97,5 +97,7 @@
|
||||||
<div class="build-group-empty"></div>
|
<div class="build-group-empty"></div>
|
||||||
<div class="build-group-empty"></div>
|
<div class="build-group-empty"></div>
|
||||||
<div class="build-group-empty"></div>
|
<div class="build-group-empty"></div>
|
||||||
|
<div class="build-group-empty"></div>
|
||||||
|
<div class="build-group-empty"></div>
|
||||||
</div>
|
</div>
|
||||||
@PaginationHelpers.PaginationBlock((int)ViewBag.PageNumber, (int)ViewBag.PageCount, "viewYear", ViewContext.RouteData.Values)
|
@PaginationHelpers.PaginationBlock((int)ViewBag.PageNumber, (int)ViewBag.PageCount, "viewYear", ViewContext.RouteData.Values)
|
|
@ -1,6 +1,4 @@
|
||||||
@using System.ComponentModel.DataAnnotations
|
@using BuildFeed.Code
|
||||||
@using BuildFeed.Code
|
|
||||||
|
|
||||||
@model Enum
|
@model Enum
|
||||||
|
|
||||||
@MvcExtensions.GetDisplayTextForEnum(ViewData.Model)
|
@MvcExtensions.GetDisplayTextForEnum(ViewData.Model)
|
|
@ -23,7 +23,7 @@
|
||||||
<meta name="format-detection" content="telephone=no" />
|
<meta name="format-detection" content="telephone=no" />
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,700" rel="stylesheet" type="text/css" />
|
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,700" rel="stylesheet" type="text/css" />
|
||||||
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
|
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous" />
|
||||||
<link rel="shortcut icon" href="~/favicon.ico" />
|
<link rel="shortcut icon" href="~/favicon.ico" />
|
||||||
<link rel="icon" href="~/favicon.ico" />
|
<link rel="icon" href="~/favicon.ico" />
|
||||||
<link rel="canonical" href="@Url.Action()" />
|
<link rel="canonical" href="@Url.Action()" />
|
||||||
|
@ -165,7 +165,10 @@
|
||||||
@foreach (Locale locale in Locale.AvailableLocales)
|
@foreach (Locale locale in Locale.AvailableLocales)
|
||||||
{
|
{
|
||||||
<li>
|
<li>
|
||||||
<a href="#" data-lang="@locale.LocaleId" dir="@(locale.Info.TextInfo.IsRightToLeft ? "rtl" : "ltr")">@locale.DisplayName</a>
|
<a href="#" data-lang="@locale.LocaleId" dir="@(locale.Info.TextInfo.IsRightToLeft
|
||||||
|
? "rtl"
|
||||||
|
: "ltr")">
|
||||||
|
@locale.DisplayName</a>
|
||||||
</li>
|
</li>
|
||||||
}
|
}
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -189,7 +192,8 @@
|
||||||
{
|
{
|
||||||
controller = "Support",
|
controller = "Support",
|
||||||
area = ""
|
area = ""
|
||||||
})">@VariantTerms.Common_Sitemap</a>
|
})">
|
||||||
|
@VariantTerms.Common_Sitemap</a>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<i class="fa fa-language"></i> 
|
<i class="fa fa-language"></i> 
|
||||||
|
@ -223,13 +227,15 @@
|
||||||
<h3>@VariantTerms.Search_BuildFeed</h3>
|
<h3>@VariantTerms.Search_BuildFeed</h3>
|
||||||
<div id="modal-search-box">
|
<div id="modal-search-box">
|
||||||
<input id="modal-search-input" type="text" placeholder="@VariantTerms.Search_TypePlaceholder" />
|
<input id="modal-search-input" type="text" placeholder="@VariantTerms.Search_TypePlaceholder" />
|
||||||
<button id="modal-search-button"><i class="fa fa-search"></i></button>
|
<button id="modal-search-button">
|
||||||
|
<i class="fa fa-search"></i>
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div id="modal-search-result"></div>
|
<div id="modal-search-result"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jsrender/1.0.0-rc.70/jsrender.min.js"></script>
|
<script type="text/javascript" t 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.min.js"></script>
|
<script type="text/javascript" src="/res/ts/bfs.min.js"></script>
|
||||||
@RenderSection("scripts", false)
|
@RenderSection("scripts", false)
|
||||||
<script id="result-template" type="text/x-jsrender">
|
<script id="result-template" type="text/x-jsrender">
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
<meta name="format-detection" content="telephone=no" />
|
<meta name="format-detection" content="telephone=no" />
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,700" rel="stylesheet" type="text/css" />
|
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,700" rel="stylesheet" type="text/css" />
|
||||||
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
|
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous" />
|
||||||
<link rel="shortcut icon" href="~/favicon.ico" />
|
<link rel="shortcut icon" href="~/favicon.ico" />
|
||||||
<link rel="icon" href="~/favicon.ico" />
|
<link rel="icon" href="~/favicon.ico" />
|
||||||
<meta name="application-name" content="@InvariantTerms.SiteName" />
|
<meta name="application-name" content="@InvariantTerms.SiteName" />
|
||||||
|
@ -96,7 +96,10 @@
|
||||||
@foreach (Locale locale in Locale.AvailableLocales)
|
@foreach (Locale locale in Locale.AvailableLocales)
|
||||||
{
|
{
|
||||||
<li>
|
<li>
|
||||||
<a href="#" data-lang="@locale.LocaleId" dir="@(locale.Info.TextInfo.IsRightToLeft ? "rtl" : "ltr")">@locale.DisplayName</a>
|
<a href="#" data-lang="@locale.LocaleId" dir="@(locale.Info.TextInfo.IsRightToLeft
|
||||||
|
? "rtl"
|
||||||
|
: "ltr")">
|
||||||
|
@locale.DisplayName</a>
|
||||||
</li>
|
</li>
|
||||||
}
|
}
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -112,9 +115,15 @@
|
||||||
<p>
|
<p>
|
||||||
@string.Format(VariantTerms.Common_ErrorContent, "<a href=\"https://github.com/hounsell/BuildFeed/issues\">GitHub</a>")
|
@string.Format(VariantTerms.Common_ErrorContent, "<a href=\"https://github.com/hounsell/BuildFeed/issues\">GitHub</a>")
|
||||||
</p>
|
</p>
|
||||||
<p>Controller: <code>@Model.ControllerName</code></p>
|
<p>
|
||||||
<p>Action: <code>@Model.ActionName</code></p>
|
Controller: <code>@Model.ControllerName</code>
|
||||||
<p>Error: <code>@Model.Exception.Message</code></p>
|
</p>
|
||||||
|
<p>
|
||||||
|
Action: <code>@Model.ActionName</code>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Error: <code>@Model.Exception.Message</code>
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
<footer id="page-footer">
|
<footer id="page-footer">
|
||||||
|
@ -140,9 +149,8 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jsrender/1.0.0-rc.70/jsrender.min.js"></script>
|
<script type="text/javascript"t 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.min.js"></script>
|
<script type="text/javascript" src="~/res/ts/bfs.min.js"></script>
|
||||||
@RenderSection("scripts", false)
|
@RenderSection("scripts", false)
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
|
@ -62,8 +62,8 @@
|
||||||
<dd>OBattler</dd>
|
<dd>OBattler</dd>
|
||||||
<dt>Portugese - Brazilian (@System.Globalization.CultureInfo.GetCultureInfo("pt-br").NativeName) Translation</dt>
|
<dt>Portugese - Brazilian (@System.Globalization.CultureInfo.GetCultureInfo("pt-br").NativeName) Translation</dt>
|
||||||
<dd>RichardG</dd>
|
<dd>RichardG</dd>
|
||||||
<dt>Pseudo-localisation (@System.Globalization.CultureInfo.GetCultureInfo("qps-ploc").NativeName) Translation</dt>
|
@*<dt>Pseudo-localisation (@System.Globalization.CultureInfo.GetCultureInfo("qps-ploc").NativeName) Translation</dt>
|
||||||
<dd>Thomas Hounsell, with <a target="_blank" rel="nofollow" href="http://www.pseudolocalize.com/"><i class="fa fa-globe"></i> Pseudolocalize!</a></dd>
|
<dd>Thomas Hounsell, with <a target="_blank" rel="nofollow" href="http://www.pseudolocalize.com/"><i class="fa fa-globe"></i> Pseudolocalize!</a></dd>*@
|
||||||
<dt>Romanian (@System.Globalization.CultureInfo.GetCultureInfo("ro").NativeName) Translation</dt>
|
<dt>Romanian (@System.Globalization.CultureInfo.GetCultureInfo("ro").NativeName) Translation</dt>
|
||||||
<dd>ovctvct <a target="_blank" rel="nofollow" href="https://www.youtube.com/channel/UC9AC01rKiwDhVPvAsT93rjw"><i class="fa fa-youtube"></i></a></dd>
|
<dd>ovctvct <a target="_blank" rel="nofollow" href="https://www.youtube.com/channel/UC9AC01rKiwDhVPvAsT93rjw"><i class="fa fa-youtube"></i></a></dd>
|
||||||
<dt>Russian (@System.Globalization.CultureInfo.GetCultureInfo("ru").NativeName) Translation</dt>
|
<dt>Russian (@System.Globalization.CultureInfo.GetCultureInfo("ru").NativeName) Translation</dt>
|
||||||
|
|
|
@ -150,8 +150,8 @@
|
||||||
</runtime>
|
</runtime>
|
||||||
<system.codedom>
|
<system.codedom>
|
||||||
<compilers>
|
<compilers>
|
||||||
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
|
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /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.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" />
|
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" />
|
||||||
</compilers>
|
</compilers>
|
||||||
</system.codedom>
|
</system.codedom>
|
||||||
</configuration>
|
</configuration>
|
|
@ -1,5 +1,4 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
<packages>
|
<packages>
|
||||||
<package id="google.analytics.TypeScript.DefinitelyTyped" version="0.3.8" targetFramework="net462" />
|
<package id="google.analytics.TypeScript.DefinitelyTyped" version="0.3.8" targetFramework="net462" />
|
||||||
<package id="HtmlAgilityPack" version="1.4.9.5" targetFramework="net462" />
|
<package id="HtmlAgilityPack" version="1.4.9.5" targetFramework="net462" />
|
||||||
|
@ -45,7 +44,7 @@
|
||||||
<package id="Humanizer.Core.zh-Hans" version="2.1.0" targetFramework="net462" />
|
<package id="Humanizer.Core.zh-Hans" version="2.1.0" targetFramework="net462" />
|
||||||
<package id="Humanizer.Core.zh-Hant" version="2.1.0" targetFramework="net462" />
|
<package id="Humanizer.Core.zh-Hant" version="2.1.0" targetFramework="net462" />
|
||||||
<package id="jQuery" version="2.2.4" targetFramework="net462" />
|
<package id="jQuery" version="2.2.4" targetFramework="net462" />
|
||||||
<package id="jquery.TypeScript.DefinitelyTyped" version="3.1.0" targetFramework="net462" />
|
<package id="jquery.TypeScript.DefinitelyTyped" version="3.1.2" targetFramework="net462" />
|
||||||
<package id="jQuery.Validation" version="1.15.1" targetFramework="net462" />
|
<package id="jQuery.Validation" version="1.15.1" targetFramework="net462" />
|
||||||
<package id="jsrender.TypeScript.DefinitelyTyped" version="0.1.8" targetFramework="net461" />
|
<package id="jsrender.TypeScript.DefinitelyTyped" version="0.1.8" targetFramework="net461" />
|
||||||
<package id="Microsoft.ApplicationInsights" version="2.1.0" targetFramework="net461" />
|
<package id="Microsoft.ApplicationInsights" version="2.1.0" targetFramework="net461" />
|
||||||
|
@ -62,14 +61,14 @@
|
||||||
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net462" />
|
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net462" />
|
||||||
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net462" />
|
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net462" />
|
||||||
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net462" />
|
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net462" />
|
||||||
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.1" targetFramework="net462" />
|
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.2" targetFramework="net462" />
|
||||||
<package id="Microsoft.CSharp" version="4.0.1" targetFramework="net462" />
|
<package id="Microsoft.CSharp" version="4.0.1" targetFramework="net462" />
|
||||||
<package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.3" targetFramework="net462" />
|
<package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.3" targetFramework="net462" />
|
||||||
<package id="Microsoft.Net.Compilers" version="1.3.2" targetFramework="net462" developmentDependency="true" />
|
<package id="Microsoft.Net.Compilers" version="1.3.2" targetFramework="net462" developmentDependency="true" />
|
||||||
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net462" />
|
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net462" />
|
||||||
<package id="MongoDB.Bson" version="2.2.4" targetFramework="net462" />
|
<package id="MongoDB.Bson" version="2.3.0" targetFramework="net462" />
|
||||||
<package id="MongoDB.Driver" version="2.2.4" targetFramework="net462" />
|
<package id="MongoDB.Driver" version="2.3.0" targetFramework="net462" />
|
||||||
<package id="MongoDB.Driver.Core" version="2.2.4" targetFramework="net462" />
|
<package id="MongoDB.Driver.Core" version="2.3.0" targetFramework="net462" />
|
||||||
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net462" />
|
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net462" />
|
||||||
<package id="System.Collections" version="4.0.11" targetFramework="net462" />
|
<package id="System.Collections" version="4.0.11" targetFramework="net462" />
|
||||||
<package id="System.Linq" version="4.1.0" targetFramework="net462" />
|
<package id="System.Linq" version="4.1.0" targetFramework="net462" />
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -194,7 +194,7 @@ nav#page-navigation
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: -15px;
|
left: -15px;
|
||||||
right: -15px;
|
right: -15px;
|
||||||
max-width: 1240px;
|
max-width: 1270px;
|
||||||
padding: 15px;
|
padding: 15px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
|
@ -613,6 +613,7 @@ ul.pagination
|
||||||
{
|
{
|
||||||
display: block;
|
display: block;
|
||||||
border-radius: 0.5em;
|
border-radius: 0.5em;
|
||||||
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
> span
|
> span
|
||||||
|
|
Loading…
Reference in New Issue
Block a user