--HG--
branch : dev
This commit is contained in:
Dave Reed
2011-03-09 17:11:25 -08:00
5 changed files with 17 additions and 8 deletions

View File

@@ -249,8 +249,7 @@ namespace Orchard.Packaging.Controllers {
ExtensionDescriptor extensionDescriptor = _packageManager.GetExtensionDescriptor(package);
List<PackagingInstallFeatureViewModel> features = extensionDescriptor.Features
.Where(featureDescriptor => !DefaultExtensionTypes.IsTheme(featureDescriptor.Extension.ExtensionType) &&
!featureDescriptor.Id.Equals(featureDescriptor.Extension.Id))
.Where(featureDescriptor => !DefaultExtensionTypes.IsTheme(featureDescriptor.Extension.ExtensionType))
.Select(featureDescriptor => new PackagingInstallFeatureViewModel {
Enable = true, // by default all features are enabled
FeatureDescriptor = featureDescriptor
@@ -278,9 +277,12 @@ namespace Orchard.Packaging.Controllers {
}
InstallPackage(packageId, version, source);
// Enable selected features
_featureManager.EnableFeatures(packagingInstallViewModel.Features
.Select(feature => feature.FeatureDescriptor.Id));
if (packagingInstallViewModel.Features.Count > 0) {
_featureManager.EnableFeatures(packagingInstallViewModel.Features
.Select(feature => feature.FeatureDescriptor.Id));
}
return RedirectToAction(redirectTo == "Themes" ? "Themes" : "Modules");
}

View File

@@ -76,8 +76,9 @@ namespace Orchard.Packaging.Services {
public ExtensionDescriptor GetExtensionDescriptor(IPackage package) {
IPackageFile packageFile = package.GetFiles().FirstOrDefault(file => Path.GetFileName(file.Path).Equals("module.txt", StringComparison.OrdinalIgnoreCase));
if (packageFile != null) {
string extensionId = Path.GetFileName(Path.GetDirectoryName(packageFile.Path).TrimEnd('/', '\\'));
using (StreamReader streamReader = new StreamReader(packageFile.GetStream())) {
return ExtensionFolders.GetDescriptorForExtension("", package.Id, DefaultExtensionTypes.Module, streamReader.ReadToEnd());
return ExtensionFolders.GetDescriptorForExtension("", extensionId, DefaultExtensionTypes.Module, streamReader.ReadToEnd());
}
}

View File

@@ -21,7 +21,13 @@
@Html.EditorFor(m => m.Features[index].Enable)
<label class="forcheckbox" for="@Html.FieldIdFor(m => m.Features[index].Enable)">@feature.FeatureDescriptor.Name</label>
<label class="forcheckbox" for="@Html.FieldIdFor(m => m.Features[index].Enable)">
@if (!string.IsNullOrEmpty(@feature.FeatureDescriptor.Name)) {
@feature.FeatureDescriptor.Name
} else {
@feature.FeatureDescriptor.Id
}
</label>
@{ index++; }
</div>
}

View File

@@ -187,7 +187,7 @@ namespace Orchard.Data.Migration {
return dataMigration
.GetType()
.GetMethods(BindingFlags.Public | BindingFlags.Instance)
.Select(mi => GetUpdateMethod(mi))
.Select(GetUpdateMethod)
.Where(tuple => tuple != null)
.ToDictionary(tuple => tuple.Item1, tuple => tuple.Item2);
}

View File

@@ -43,7 +43,7 @@ namespace Orchard.Environment.Features {
var updatedFeatures = currentShellDescriptor.Features
.Union(featureNames
.Where(name => !currentShellDescriptor.Features.Any(sf => sf.Name == name))
.Select(name => new ShellFeature {Name = name}));
.Select(name => new ShellFeature {Name = name}));
_shellDescriptorManager.UpdateShellDescriptor(
currentShellDescriptor.SerialNumber,