Skip to content

Commit 91273c6

Browse files
committed
Merge branch '2.x'
2 parents 3386a3a + 3f69b5b commit 91273c6

File tree

271 files changed

+5614
-2882
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

271 files changed

+5614
-2882
lines changed

SmartStoreNET.Tasks.Targets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
<BuildPlatform Condition="$(BuildPlatform) == ''">x86</BuildPlatform>
4545

4646
<xVersion>$(BUILD_NUMBER)</xVersion>
47-
<Version>2.0.0</Version>
47+
<Version>2.0.1</Version>
4848
<ZipDirectory>$(StageFolder)</ZipDirectory>
4949
<ZipVersionFileSuffix Condition="$(Version) != ''">.$(Version)</ZipVersionFileSuffix>
5050
<ZipVersionFileSuffix Condition="$(Version) == ''"></ZipVersionFileSuffix>

changelog.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,24 @@
1-
#Release Notes#
1+
#Release Notes#
2+
3+
##SmartStore.NET 2.0.1#
4+
5+
###New Features###
6+
* #292 Allow specific price for attribute combinations
7+
* Added image upload support to Summernote editor
8+
* (Developer) Added WebApi client test tools to the solution (C# and JavaScript)
9+
10+
###Improvements###
11+
* Content slider slides can be filtered by store
12+
* TinyMCE now shows advanced tab for images
13+
* Updated BundleTransformer to the latest version 1.8.25
14+
* Added JavaScriptEngineSwitcher.Msie (disabled by default). Useful in scenarios where target server has problems calling the V8 native libs.
15+
* Updated some 3rd party libraries to their latest versions
16+
* #320 Unavailable attribute combinations: better UI indication
17+
18+
###Bugfixes###
19+
* UI notifications get displayed repeatedly
20+
* (Developer) Fixed Razor intellisense for plugin projects (NOTE: switch to 'PluginDev' configuration while editing plugin views, switch back when finished)
21+
222

323
##SmartStore.NET 2.0.0#
424

src/AssemblyVersionInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
[assembly: AssemblyVersion("2.0.0.0")]
1313

1414
[assembly: AssemblyFileVersion("2.0.0.0")]
15-
[assembly: AssemblyInformationalVersion("2.0.0.0")]
15+
[assembly: AssemblyInformationalVersion("2.0.1.0")]

src/FixRazorIntellisense.targets

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2+
3+
4+
<PropertyGroup>
5+
<CopyAllDependencies Condition="'$(CopyAllDependencies)'==''">true</CopyAllDependencies>
6+
</PropertyGroup>
7+
8+
9+
<!-- BuildXxx part -->
10+
11+
<Target Name="CopyAllDependencies" Condition="'$(CopyAllDependencies)'=='true'" DependsOnTargets="DetectAllDependencies">
12+
<Copy Condition="'%(IndirectDependency.FullPath)'!=''"
13+
SourceFiles="%(IndirectDependency.FullPath)"
14+
DestinationFolder="$(OutputPath)"
15+
SkipUnchangedFiles="true" >
16+
<Output TaskParameter="CopiedFiles" ItemName="IndirectDependencyCopied" />
17+
</Copy>
18+
<Message Importance="low"
19+
Condition="'%(IndirectDependencyCopied.FullPath)'!=''
20+
and '%(IndirectDependencyCopied.Extension)'!='.pdb'
21+
and '%(IndirectDependencyCopied.Extension)'!='.xml'"
22+
Text="Indirect dependency copied: %(IndirectDependencyCopied.FullPath)" />
23+
</Target>
24+
25+
<Target Name="DetectAllDependencies" DependsOnTargets="ResolveAssemblyReferences">
26+
27+
<Message Importance="low" Text="Direct dependency: %(ReferencePath.Filename)%(ReferencePath.Extension)" />
28+
<Message Importance="low" Text="Direct dependency: %(ReferencePath.FullPath).Contains('.NETFramework')=='True'" />
29+
30+
<!-- Creating dependency list -->
31+
<CreateItem Include="%(ReferencePath.FullPath)" Condition="$([System.Text.RegularExpressions.Regex]::IsMatch('%(ReferencePath.FullPath)', '(?i)(.*?)(mscorlib|System|System\.Web|xxxSystem\.Core|System\.Xml)\.dll')) != 'True'">
32+
<Output TaskParameter="Include" ItemName="_IndirectDependency"/>
33+
</CreateItem>
34+
35+
<!-- Filtering dependency list by existence -->
36+
<CreateItem Include="%(_IndirectDependency.FullPath)" Condition="Exists('%(_IndirectDependency.FullPath)')">
37+
<Output TaskParameter="Include" ItemName="IndirectDependency"/>
38+
</CreateItem>
39+
40+
<!-- Creating copied indirect dependency list -->
41+
<CreateItem Include="@(_IndirectDependency->'$(OutputPath)%(Filename)%(Extension)')">
42+
<Output TaskParameter="Include" ItemName="_ExistingIndirectDependency"/>
43+
</CreateItem>
44+
45+
<!-- Filtering copied indirect dependency list by existence -->
46+
<CreateItem Include="%(_ExistingIndirectDependency.FullPath)" Condition="Exists('%(_ExistingIndirectDependency.FullPath)')">
47+
<Output TaskParameter="Include" ItemName="ExistingIndirectDependency"/>
48+
</CreateItem>
49+
50+
</Target>
51+
52+
53+
<!-- Build sequence modification -->
54+
55+
<PropertyGroup>
56+
<CoreBuildDependsOn>
57+
$(CoreBuildDependsOn);
58+
CopyAllDependencies
59+
</CoreBuildDependsOn>
60+
</PropertyGroup>
61+
62+
</Project>

src/Libraries/SmartStore.Core/Domain/Catalog/Product.cs

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public partial class Product : BaseEntity, ISoftDeletable, ILocalizedEntity, ISl
3333
private string _sku;
3434
private string _gtin;
3535
private string _manufacturerPartNumber;
36+
private decimal _price;
3637
private int? _deliveryTimeId;
3738
private decimal _length;
3839
private decimal _width;
@@ -467,7 +468,17 @@ public int StockQuantity
467468
/// Gets or sets the price
468469
/// </summary>
469470
[DataMember]
470-
public decimal Price { get; set; }
471+
public decimal Price
472+
{
473+
get
474+
{
475+
return this.GetMergedDataValue<decimal>("Price", _price);
476+
}
477+
set
478+
{
479+
_price = value;
480+
}
481+
}
471482

472483
/// <summary>
473484
/// Gets or sets the old price
@@ -526,6 +537,12 @@ public int StockQuantity
526537
/// </summary>
527538
[DataMember]
528539
public bool HasTierPrices { get; set; }
540+
541+
/// <summary>
542+
/// Gets or sets a value for the lowest attribute combination price override
543+
/// </summary>
544+
[DataMember]
545+
public decimal? LowestAttributeCombinationPrice { get; set; }
529546

530547
/// <summary>
531548
/// Gets or sets a value indicating whether this product has discounts applied

src/Libraries/SmartStore.Core/Domain/Catalog/SmartStoreProductVariantAttributeCombination.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ public ProductVariantAttributeCombination()
2424
[DataMember]
2525
public string ManufacturerPartNumber { get; set; }
2626

27+
[DataMember]
28+
public decimal? Price { get; set; }
29+
2730
[DataMember]
2831
public decimal? Length { get; set; }
2932

src/Libraries/SmartStore.Core/SmartStore.Core.csproj

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,23 @@
4848
<ErrorReport>prompt</ErrorReport>
4949
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
5050
</PropertyGroup>
51+
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'PluginDev|AnyCPU'">
52+
<DebugSymbols>true</DebugSymbols>
53+
<OutputPath>bin\PluginDev\</OutputPath>
54+
<DefineConstants>DEBUG;TRACE</DefineConstants>
55+
<DebugType>full</DebugType>
56+
<PlatformTarget>AnyCPU</PlatformTarget>
57+
<ErrorReport>prompt</ErrorReport>
58+
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
59+
</PropertyGroup>
5160
<ItemGroup>
52-
<Reference Include="Autofac, Version=3.0.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
61+
<Reference Include="Autofac, Version=3.3.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
5362
<SpecificVersion>False</SpecificVersion>
54-
<HintPath>..\..\packages\Autofac.3.3.0\lib\net40\Autofac.dll</HintPath>
63+
<HintPath>..\..\packages\Autofac.3.3.1\lib\net40\Autofac.dll</HintPath>
5564
</Reference>
56-
<Reference Include="Autofac.Integration.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
65+
<Reference Include="Autofac.Integration.Mvc, Version=3.2.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
5766
<SpecificVersion>False</SpecificVersion>
58-
<HintPath>..\..\packages\Autofac.Mvc5.3.2.0\lib\net45\Autofac.Integration.Mvc.dll</HintPath>
67+
<HintPath>..\..\packages\Autofac.Mvc5.3.2.1\lib\net45\Autofac.Integration.Mvc.dll</HintPath>
5968
</Reference>
6069
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
6170
<SpecificVersion>False</SpecificVersion>
@@ -98,27 +107,27 @@
98107
<Reference Include="System.Web" />
99108
<Reference Include="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
100109
<SpecificVersion>False</SpecificVersion>
101-
<HintPath>..\..\packages\Microsoft.AspNet.WebPages.3.1.1\lib\net45\System.Web.Helpers.dll</HintPath>
110+
<HintPath>..\..\packages\Microsoft.AspNet.WebPages.3.1.2\lib\net45\System.Web.Helpers.dll</HintPath>
102111
</Reference>
103112
<Reference Include="System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
104113
<SpecificVersion>False</SpecificVersion>
105-
<HintPath>..\..\packages\Microsoft.AspNet.Mvc.5.1.1\lib\net45\System.Web.Mvc.dll</HintPath>
114+
<HintPath>..\..\packages\Microsoft.AspNet.Mvc.5.1.2\lib\net45\System.Web.Mvc.dll</HintPath>
106115
</Reference>
107116
<Reference Include="System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
108117
<SpecificVersion>False</SpecificVersion>
109-
<HintPath>..\..\packages\Microsoft.AspNet.Razor.3.1.1\lib\net45\System.Web.Razor.dll</HintPath>
118+
<HintPath>..\..\packages\Microsoft.AspNet.Razor.3.1.2\lib\net45\System.Web.Razor.dll</HintPath>
110119
</Reference>
111120
<Reference Include="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
112121
<SpecificVersion>False</SpecificVersion>
113-
<HintPath>..\..\packages\Microsoft.AspNet.WebPages.3.1.1\lib\net45\System.Web.WebPages.dll</HintPath>
122+
<HintPath>..\..\packages\Microsoft.AspNet.WebPages.3.1.2\lib\net45\System.Web.WebPages.dll</HintPath>
114123
</Reference>
115124
<Reference Include="System.Web.WebPages.Deployment, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
116125
<SpecificVersion>False</SpecificVersion>
117-
<HintPath>..\..\packages\Microsoft.AspNet.WebPages.3.1.1\lib\net45\System.Web.WebPages.Deployment.dll</HintPath>
126+
<HintPath>..\..\packages\Microsoft.AspNet.WebPages.3.1.2\lib\net45\System.Web.WebPages.Deployment.dll</HintPath>
118127
</Reference>
119128
<Reference Include="System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
120129
<SpecificVersion>False</SpecificVersion>
121-
<HintPath>..\..\packages\Microsoft.AspNet.WebPages.3.1.1\lib\net45\System.Web.WebPages.Razor.dll</HintPath>
130+
<HintPath>..\..\packages\Microsoft.AspNet.WebPages.3.1.2\lib\net45\System.Web.WebPages.Razor.dll</HintPath>
122131
</Reference>
123132
<Reference Include="System.Xml.Linq" />
124133
<Reference Include="System.Data.DataSetExtensions" />

src/Libraries/SmartStore.Core/WebHelper.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ namespace SmartStore.Core
2020
public partial class WebHelper : IWebHelper
2121
{
2222
private static AspNetHostingPermissionLevel? s_trustLevel = null;
23-
private static readonly Regex s_staticExts = new Regex(@"(.*?)\.(css|js|png|jpg|jpeg|gif|bmp|html|htm|xml|pdf|doc|xls|rar|zip|ico|eot|svg|ttf|woff|otf|axd|ashx|less)", RegexOptions.Compiled);
23+
private static readonly Regex s_staticExts = new Regex(@"(.*?)\.(css|js|png|jpg|jpeg|gif|bmp|html|htm|xml|pdf|doc|xls|rar|zip|ico|eot|svg|ttf|woff|otf|axd|ashx|less)", RegexOptions.Compiled | RegexOptions.IgnoreCase);
2424

2525
private readonly HttpContextBase _httpContext;
2626
private bool? _isCurrentConnectionSecured;

src/Libraries/SmartStore.Core/packages.config

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3-
<package id="Autofac" version="3.3.0" targetFramework="net45" />
4-
<package id="Autofac.Mvc5" version="3.2.0" targetFramework="net45" />
3+
<package id="Autofac" version="3.3.1" targetFramework="net45" />
4+
<package id="Autofac.Mvc5" version="3.2.1" targetFramework="net45" />
55
<package id="EntityFramework" version="6.1.0" targetFramework="net45" />
66
<package id="fasterflect" version="2.1.3" targetFramework="net45" />
7-
<package id="Microsoft.AspNet.Mvc" version="5.1.1" targetFramework="net45" />
8-
<package id="Microsoft.AspNet.Razor" version="3.1.1" targetFramework="net45" />
9-
<package id="Microsoft.AspNet.WebPages" version="3.1.1" targetFramework="net45" />
7+
<package id="Microsoft.AspNet.Mvc" version="5.1.2" targetFramework="net45" />
8+
<package id="Microsoft.AspNet.Razor" version="3.1.2" targetFramework="net45" />
9+
<package id="Microsoft.AspNet.WebPages" version="3.1.2" targetFramework="net45" />
1010
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
1111
<package id="Microsoft.Web.Xdt" version="1.0.0" targetFramework="net45" />
1212
<package id="Newtonsoft.Json" version="6.0.1" targetFramework="net45" />

src/Libraries/SmartStore.Data/Mapping/Catalog/ProductMap.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public ProductMap()
2828
this.Property(p => p.Length).HasPrecision(18, 4);
2929
this.Property(p => p.Width).HasPrecision(18, 4);
3030
this.Property(p => p.Height).HasPrecision(18, 4);
31+
this.Property(p => p.LowestAttributeCombinationPrice).HasPrecision(18, 4);
3132
this.Property(p => p.RequiredProductIds).HasMaxLength(1000);
3233
this.Property(p => p.AllowedQuantities).HasMaxLength(1000);
3334

src/Libraries/SmartStore.Data/Mapping/Catalog/ProductVariantAttributeCombinationMap.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public ProductVariantAttributeCombinationMap()
1313
this.Property(pvac => pvac.Sku).HasMaxLength(400);
1414
this.Property(pvac => pvac.ManufacturerPartNumber).HasMaxLength(400);
1515
this.Property(pvac => pvac.Gtin).HasMaxLength(400);
16+
this.Property(pvac => pvac.Price).HasPrecision(18, 4);
1617
this.Property(pvac => pvac.AssignedPictureIds).HasMaxLength(1000);
1718
this.Property(pvac => pvac.Length).HasPrecision(18, 4);
1819
this.Property(pvac => pvac.Width).HasPrecision(18, 4);

src/Libraries/SmartStore.Data/Migrations/201404101903014_AttributeCombinationPrice.Designer.cs

Lines changed: 29 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
namespace SmartStore.Data.Migrations
2+
{
3+
using System;
4+
using System.Data.Entity.Migrations;
5+
using SmartStore.Data.Setup;
6+
7+
public partial class AttributeCombinationPrice : DbMigration, ILocaleResourcesProvider, IDataSeeder<SmartObjectContext>
8+
{
9+
public override void Up()
10+
{
11+
AddColumn("dbo.Product", "LowestAttributeCombinationPrice", c => c.Decimal(precision: 18, scale: 4));
12+
AddColumn("dbo.ProductVariantAttributeCombination", "Price", c => c.Decimal(precision: 18, scale: 4));
13+
}
14+
15+
public override void Down()
16+
{
17+
DropColumn("dbo.ProductVariantAttributeCombination", "Price");
18+
DropColumn("dbo.Product", "LowestAttributeCombinationPrice");
19+
}
20+
21+
public bool RollbackOnFailure
22+
{
23+
get { return false; }
24+
}
25+
26+
public void Seed(SmartObjectContext context)
27+
{
28+
context.MigrateLocaleResources(MigrateLocaleResources);
29+
}
30+
31+
public void MigrateLocaleResources(LocaleResourcesBuilder builder)
32+
{
33+
builder.AddOrUpdate("Admin.Catalog.Products.ProductVariantAttributes.AttributeCombinations.DeleteAllCombinations",
34+
"Delete all combinations",
35+
"Alle Kombinationen löschen");
36+
37+
builder.AddOrUpdate("Admin.Catalog.Products.ProductVariantAttributes.AttributeCombinations.AskToDeleteAll",
38+
"Would you like to delete all attribute combinations for this product?",
39+
"Möchten Sie sämtliche Attribut-Kombinationen für dieses Produkt löschen?");
40+
}
41+
}
42+
}

0 commit comments

Comments
 (0)