/Settings/RedditButtonPartSettings.cs
https://bitbucket.org/kobowi/kobowi.redditbutton · C# · 76 lines · 56 code · 14 blank · 6 comment · 4 complexity · c1794e4ed8d134d4374e4904d97d8499 MD5 · raw file
- using System.Collections.Generic;
- using Orchard.ContentManagement;
- using Orchard.ContentManagement.MetaData;
- using Orchard.ContentManagement.MetaData.Builders;
- using Orchard.ContentManagement.MetaData.Models;
- using Orchard.ContentManagement.ViewModels;
- using Kobowi.RedditButton.Services;
-
- namespace Kobowi.RedditButton.Settings
- {
-
- /// <summary>
- /// Per-Content Type settings for a RedditButton part.
- /// </summary>
- public class RedditButtonPartTypeSettings
- {
- private string templateName;
- private bool? openLinksInNewWindow;
- private bool? styled;
-
- public RedditButtonPartTypeSettings()
- {
- templateName = ButtonService.DefaultTemplateName;
- }
-
- public string TemplateName
- {
- get { return templateName; }
- set { templateName = value; }
- }
-
- public bool OpenLinksInNewWindow
- {
- get { return openLinksInNewWindow ?? true; }
- set { openLinksInNewWindow = value; }
- }
-
- public bool Styled
- {
- get { return styled ?? false; }
- set { styled = value; }
- }
- }
-
- public class RedditButtonPartSettings : ContentDefinitionEditorEventsBase
- {
-
- // Part settings on content type editor
- public override IEnumerable<TemplateViewModel> TypePartEditor(ContentTypePartDefinition definition)
- {
- if (definition.PartDefinition.Name != "RedditButtonPart")
- yield break;
-
- // Get the settings for this type definition
- var model = definition.Settings.GetModel<RedditButtonPartTypeSettings>();
-
- yield return DefinitionTemplate(model);
- }
-
- // The update invoked by changes made on the part settings in the content type editor
- public override IEnumerable<TemplateViewModel> TypePartEditorUpdate(ContentTypePartDefinitionBuilder builder, IUpdateModel updateModel)
- {
- if (builder.Name != "RedditButtonPart")
- yield break;
-
- var model = new RedditButtonPartTypeSettings();
- updateModel.TryUpdateModel(model, "RedditButtonPartTypeSettings", null, null);
-
- builder.WithSetting("RedditButtonPartTypeSettings.TemplateName", model.TemplateName);
- builder.WithSetting("RedditButtonPartTypeSettings.Styled", model.Styled.ToString());
- builder.WithSetting("RedditButtonPartTypeSettings.OpenLinksInNewWindow", model.OpenLinksInNewWindow.ToString());
-
- yield return DefinitionTemplate(model);
- }
- }
- }