public static string Update(SiteSettings ss, int groupId)
        {
            var groupModel = new GroupModel(ss, groupId, setByForm: true);
            var invalid    = GroupValidators.OnUpdating(ss, groupModel);

            switch (invalid)
            {
            case Error.Types.None: break;

            default: return(invalid.MessageJson());
            }
            if (groupModel.AccessStatus != Databases.AccessStatuses.Selected)
            {
                return(Messages.ResponseDeleteConflicts().ToJson());
            }
            var error = groupModel.Update(ss);

            if (error.Has())
            {
                return(error == Error.Types.UpdateConflicts
                    ? Messages.ResponseUpdateConflicts(groupModel.Updator.Name).ToJson()
                    : new ResponseCollection().Message(error.Message()).ToJson());
            }
            else
            {
                var res = new GroupsResponseCollection(groupModel);
                return(ResponseByUpdate(res, ss, groupModel)
                       .PrependComment(
                           ss,
                           ss.GetColumn("Comments"),
                           groupModel.Comments,
                           groupModel.VerType)
                       .ToJson());
            }
        }
        public static string Delete(SiteSettings ss, int groupId)
        {
            var groupModel = new GroupModel(ss, groupId);
            var invalid    = GroupValidators.OnDeleting(ss, groupModel);

            switch (invalid)
            {
            case Error.Types.None: break;

            default: return(invalid.MessageJson());
            }
            var error = groupModel.Delete(ss);

            if (error.Has())
            {
                return(error.MessageJson());
            }
            else
            {
                Sessions.Set("Message", Messages.Deleted(groupModel.Title.Value).Html);
                var res = new GroupsResponseCollection(groupModel);
                res
                .SetMemory("formChanged", false)
                .Href(Locations.Index("Groups"));
                return(res.ToJson());
            }
        }
        public static string Create(SiteSettings ss)
        {
            var groupModel = new GroupModel(ss, 0, setByForm: true);
            var invalid    = GroupValidators.OnCreating(ss, groupModel);

            switch (invalid)
            {
            case Error.Types.None: break;

            default: return(invalid.MessageJson());
            }
            var error = groupModel.Create(ss);

            if (error.Has())
            {
                return(error.MessageJson());
            }
            else
            {
                return(EditorResponse(
                           ss,
                           groupModel,
                           Messages.Created(groupModel.Title.Value),
                           GetSwitchTargets(ss, groupModel.GroupId).Join()).ToJson());
            }
        }
        public static string Editor(SiteSettings ss, GroupModel groupModel)
        {
            var invalid = GroupValidators.OnEditing(ss, groupModel);

            switch (invalid)
            {
            case Error.Types.None: break;

            default: return(HtmlTemplates.Error(invalid));
            }
            var hb = new HtmlBuilder();

            ss.SetColumnAccessControls(groupModel.Mine());
            return(hb.Template(
                       ss: ss,
                       verType: groupModel.VerType,
                       methodType: groupModel.MethodType,
                       referenceType: "Groups",
                       title: groupModel.MethodType == BaseModel.MethodTypes.New
                    ? Displays.Groups() + " - " + Displays.New()
                    : groupModel.Title.Value,
                       action: () =>
            {
                hb
                .Editor(
                    ss: ss,
                    groupModel: groupModel)
                .Hidden(controlId: "TableName", value: "Groups")
                .Hidden(controlId: "Id", value: groupModel.GroupId.ToString());
            }).ToString());
        }
        /// <summary>
        /// Fixed:
        /// </summary>
        public static string Index(SiteSettings ss)
        {
            var invalid = GroupValidators.OnEntry(ss);

            switch (invalid)
            {
            case Error.Types.None: break;

            default: return(HtmlTemplates.Error(invalid));
            }
            var hb       = new HtmlBuilder();
            var view     = Views.GetBySession(ss);
            var gridData = GetGridData(ss, view);
            var viewMode = ViewModes.GetBySession(ss.SiteId);

            return(hb.Template(
                       ss: ss,
                       verType: Versions.VerTypes.Latest,
                       methodType: BaseModel.MethodTypes.Index,
                       referenceType: "Groups",
                       script: Libraries.Scripts.JavaScripts.ViewMode(viewMode),
                       title: Displays.Groups() + " - " + Displays.List(),
                       action: () =>
            {
                hb
                .Form(
                    attributes: new HtmlAttributes()
                    .Id("GroupForm")
                    .Class("main-form")
                    .Action(Locations.Action("Groups")),
                    action: () => hb
                    .ViewFilters(ss: ss, view: view)
                    .Aggregations(
                        ss: ss,
                        aggregations: gridData.Aggregations)
                    .Div(id: "ViewModeContainer", action: () => hb
                         .Grid(
                             ss: ss,
                             gridData: gridData,
                             view: view))
                    .MainCommands(
                        ss: ss,
                        siteId: ss.SiteId,
                        verType: Versions.VerTypes.Latest)
                    .Div(css: "margin-bottom")
                    .Hidden(controlId: "TableName", value: "Groups")
                    .Hidden(controlId: "BaseUrl", value: Locations.BaseUrl())
                    .Hidden(
                        controlId: "GridOffset",
                        value: Parameters.General.GridPageSize.ToString()))
                .Div(attributes: new HtmlAttributes()
                     .Id("ImportSettingsDialog")
                     .Class("dialog")
                     .Title(Displays.Import()))
                .Div(attributes: new HtmlAttributes()
                     .Id("ExportSettingsDialog")
                     .Class("dialog")
                     .Title(Displays.ExportSettings()));
            }).ToString());
        }
Esempio n. 6
0
        public static string Create(SiteSettings ss)
        {
            var groupModel = new GroupModel(ss, 0, setByForm: true);
            var invalid    = GroupValidators.OnCreating(ss, groupModel);

            switch (invalid)
            {
            case Error.Types.None: break;

            default: return(invalid.MessageJson());
            }
            var error = groupModel.Create(ss);

            switch (error)
            {
            case Error.Types.None:
                Sessions.Set("Message", Messages.Created(groupModel.Title.Value));
                return(new ResponseCollection()
                       .SetMemory("formChanged", false)
                       .Href(Locations.Edit(
                                 controller: Routes.Controller(),
                                 id: ss.Columns.Any(o => o.Linking)
                                ? Forms.Long("LinkId")
                                : groupModel.GroupId))
                       .ToJson());

            default:
                return(error.MessageJson());
            }
        }
Esempio n. 7
0
        private static string ViewModeTemplate(
            this HtmlBuilder hb,
            SiteSettings ss,
            GroupCollection groupCollection,
            View view,
            string viewMode,
            Action viewModeBody)
        {
            var invalid = GroupValidators.OnEntry(ss);

            switch (invalid)
            {
            case Error.Types.None: break;

            default: return(HtmlTemplates.Error(invalid));
            }
            ss.SetColumnAccessControls();
            return(hb.Template(
                       ss: ss,
                       verType: Versions.VerTypes.Latest,
                       methodType: BaseModel.MethodTypes.Index,
                       siteId: ss.SiteId,
                       parentId: ss.ParentId,
                       referenceType: "Groups",
                       script: Libraries.Scripts.JavaScripts.ViewMode(viewMode),
                       userScript: ss.GridScript,
                       userStyle: ss.GridStyle,
                       action: () => hb
                       .Form(
                           attributes: new HtmlAttributes()
                           .Id("GroupsForm")
                           .Class("main-form")
                           .Action(Locations.ItemAction(ss.SiteId)),
                           action: () => hb
                           .ViewSelector(ss: ss, view: view)
                           .ViewFilters(ss: ss, view: view)
                           .Aggregations(
                               ss: ss,
                               aggregations: groupCollection.Aggregations)
                           .Div(id: "ViewModeContainer", action: () => viewModeBody())
                           .MainCommands(
                               ss: ss,
                               siteId: ss.SiteId,
                               verType: Versions.VerTypes.Latest,
                               bulkMoveButton: true,
                               bulkDeleteButton: true,
                               importButton: true,
                               exportButton: true)
                           .Div(css: "margin-bottom")
                           .Hidden(controlId: "TableName", value: "Groups")
                           .Hidden(controlId: "BaseUrl", value: Locations.BaseUrl()))
                       .MoveDialog(bulk: true)
                       .Div(attributes: new HtmlAttributes()
                            .Id("ExportSettingsDialog")
                            .Class("dialog")
                            .Title(Displays.ExportSettings())))
                   .ToString());
        }
        public static string Restore(SiteSettings ss, int groupId)
        {
            var groupModel = new GroupModel();
            var invalid    = GroupValidators.OnRestoring();

            switch (invalid)
            {
            case Error.Types.None: break;

            default: return(invalid.MessageJson());
            }
            var error = groupModel.Restore(ss, groupId);

            if (error.Has())
            {
                return(error.MessageJson());
            }
            else
            {
                var res = new GroupsResponseCollection(groupModel);
                return(res.ToJson());
            }
        }