Example #1
0
        public static string Delete(SiteSettings ss, long wikiId)
        {
            var wikiModel = new WikiModel(ss, wikiId);
            var invalid   = WikiValidators.OnDeleting(ss, wikiModel);

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

            default: return(invalid.MessageJson());
            }
            var error = wikiModel.Delete(ss, notice: true);

            if (error.Has())
            {
                return(error.MessageJson());
            }
            else
            {
                Sessions.Set("Message", Messages.Deleted(wikiModel.Title.Value).Html);
                var res = new WikisResponseCollection(wikiModel);
                res
                .SetMemory("formChanged", false)
                .Href(Locations.ItemIndex(Rds.ExecuteScalar_long(statements:
                                                                 Rds.SelectSites(
                                                                     tableType: Sqls.TableTypes.Deleted,
                                                                     column: Rds.SitesColumn().ParentId(),
                                                                     where : Rds.SitesWhere()
                                                                     .TenantId(Sessions.TenantId())
                                                                     .SiteId(wikiModel.SiteId)))));
                return(res.ToJson());
            }
        }
        public static string Editor(SiteSettings ss, WikiModel wikiModel)
        {
            var invalid = WikiValidators.OnEditing(ss, wikiModel);

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

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

            ss.SetColumnAccessControls(wikiModel.Mine());
            return(hb.Template(
                       ss: ss,
                       verType: wikiModel.VerType,
                       methodType: wikiModel.MethodType,
                       siteId: wikiModel.SiteId,
                       parentId: ss.ParentId,
                       referenceType: "Wikis",
                       title: wikiModel.MethodType == BaseModel.MethodTypes.New
                    ? Displays.New()
                    : wikiModel.Title.DisplayValue,
                       useTitle: ss.TitleColumns?.Any(o => ss.EditorColumns.Contains(o)) == true,
                       userScript: ss.EditorScripts(wikiModel.MethodType),
                       userStyle: ss.EditorStyles(wikiModel.MethodType),
                       action: () => hb
                       .Editor(
                           ss: ss,
                           wikiModel: wikiModel)
                       .Hidden(controlId: "TableName", value: "Wikis")
                       .Hidden(controlId: "Id", value: wikiModel.WikiId.ToString()))
                   .ToString());
        }
Example #3
0
        public static string RestoreFromHistory(
            Context context, SiteSettings ss, long wikiId)
        {
            if (!Parameters.History.Restore)
            {
                return(Error.Types.InvalidRequest.MessageJson());
            }
            var wikiModel = new WikiModel(context, ss, wikiId);
            var invalid   = WikiValidators.OnUpdating(
                context: context, ss: ss, wikiModel: wikiModel);

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

            default: return(invalid.MessageJson());
            }
            var ver = Forms.Data("GridCheckedItems")
                      .Split(',')
                      .Where(o => !o.IsNullOrEmpty())
                      .ToList();

            if (ver.Count() != 1)
            {
                return(Error.Types.SelectOne.MessageJson());
            }
            wikiModel.SetByModel(new WikiModel().Get(
                                     context: context,
                                     ss: ss,
                                     tableType: Sqls.TableTypes.History,
                                     where : Rds.WikisWhere()
                                     .SiteId(ss.SiteId)
                                     .WikiId(wikiId)
                                     .Ver(ver.First())));
            wikiModel.VerUp = true;
            var error = wikiModel.Update(
                context: context,
                ss: ss,
                otherInitValue: true);

            switch (error)
            {
            case Error.Types.None:
                Sessions.Set("Message", Messages.RestoredFromHistory(ver.First().ToString()));
                return(new ResponseCollection()
                       .SetMemory("formChanged", false)
                       .Href(Locations.ItemEdit(wikiId))
                       .ToJson());

            default:
                return(error.MessageJson());
            }
        }
Example #4
0
        public static string Update(IContext context, SiteSettings ss, long wikiId)
        {
            var wikiModel = new WikiModel(
                context: context, ss: ss, wikiId: wikiId, setByForm: true);
            var invalid = WikiValidators.OnUpdating(
                context: context,
                ss: ss,
                wikiModel: wikiModel);

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

            default: return(invalid.MessageJson(context: context));
            }
            if (wikiModel.AccessStatus != Databases.AccessStatuses.Selected)
            {
                return(Messages.ResponseDeleteConflicts(context: context).ToJson());
            }
            var error = wikiModel.Update(
                context: context,
                ss: ss,
                notice: true,
                permissions: context.Forms.List("CurrentPermissionsAll"),
                permissionChanged: context.Forms.Exists("CurrentPermissionsAll"));

            switch (error)
            {
            case Error.Types.None:
                var res = new WikisResponseCollection(wikiModel);
                res.ReplaceAll("#Breadcrumb", new HtmlBuilder()
                               .Breadcrumb(context: context, ss: ss));
                return(ResponseByUpdate(res, context, ss, wikiModel)
                       .PrependComment(
                           context: context,
                           ss: ss,
                           column: ss.GetColumn(context: context, columnName: "Comments"),
                           comments: wikiModel.Comments,
                           verType: wikiModel.VerType)
                       .ToJson());

            case Error.Types.UpdateConflicts:
                return(Messages.ResponseUpdateConflicts(
                           context: context,
                           data: wikiModel.Updator.Name)
                       .ToJson());

            default:
                return(error.MessageJson(context: context));
            }
        }
Example #5
0
        public static string Delete(IContext context, SiteSettings ss, long wikiId)
        {
            var wikiModel = new WikiModel(context, ss, wikiId);
            var invalid   = WikiValidators.OnDeleting(
                context: context,
                ss: ss,
                wikiModel: wikiModel);

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

            default: return(invalid.MessageJson(context: context));
            }
            var error = wikiModel.Delete(context: context, ss: ss, notice: true);

            switch (error)
            {
            case Error.Types.None:
                SessionUtilities.Set(
                    context: context,
                    message: Messages.Deleted(
                        context: context,
                        data: wikiModel.Title.Value));
                var res = new WikisResponseCollection(wikiModel);
                res
                .SetMemory("formChanged", false)
                .Href(Locations.ItemIndex(
                          context: context,
                          id: Rds.ExecuteScalar_long(
                              context: context,
                              statements: Rds.SelectSites(
                                  tableType: Sqls.TableTypes.Deleted,
                                  column: Rds.SitesColumn().ParentId(),
                                  where : Rds.SitesWhere()
                                  .TenantId(context.TenantId)
                                  .SiteId(wikiModel.SiteId)))));
                return(res.ToJson());

            default:
                return(error.MessageJson(context: context));
            }
        }
        public static string Update(SiteSettings ss, long wikiId)
        {
            var wikiModel = new WikiModel(ss, wikiId, setByForm: true);
            var invalid   = WikiValidators.OnUpdating(ss, wikiModel);

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

            default: return(invalid.MessageJson());
            }
            if (wikiModel.AccessStatus != Databases.AccessStatuses.Selected)
            {
                return(Messages.ResponseDeleteConflicts().ToJson());
            }
            var error = wikiModel.Update(
                ss: ss,
                notice: true,
                permissions: Forms.List("CurrentPermissionsAll"),
                permissionChanged: Forms.Exists("CurrentPermissionsAll"));

            if (error.Has())
            {
                return(error == Error.Types.UpdateConflicts
                    ? Messages.ResponseUpdateConflicts(wikiModel.Updator.Name).ToJson()
                    : new ResponseCollection().Message(error.Message()).ToJson());
            }
            else
            {
                var res = new WikisResponseCollection(wikiModel);
                res.ReplaceAll("#Breadcrumb", new HtmlBuilder().Breadcrumb(ss.SiteId));
                return(ResponseByUpdate(res, ss, wikiModel)
                       .PrependComment(
                           ss,
                           ss.GetColumn("Comments"),
                           wikiModel.Comments,
                           wikiModel.VerType)
                       .ToJson());
            }
        }
Example #7
0
        public static string Restore(SiteSettings ss, long wikiId)
        {
            var wikiModel = new WikiModel();
            var invalid   = WikiValidators.OnRestoring();

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

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

            if (error.Has())
            {
                return(error.MessageJson());
            }
            else
            {
                var res = new WikisResponseCollection(wikiModel);
                return(res.ToJson());
            }
        }
Example #8
0
        public static string Editor(
            IContext context,
            SiteSettings ss,
            WikiModel wikiModel,
            bool editInDialog = false)
        {
            var invalid = WikiValidators.OnEditing(
                context: context,
                ss: ss,
                wikiModel: wikiModel);

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

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

            ss.SetColumnAccessControls(
                context: context,
                mine: wikiModel.Mine(context: context));
            return(editInDialog
                ? hb.DialogEditorForm(
                       context: context,
                       siteId: wikiModel.SiteId,
                       referenceId: wikiModel.WikiId,
                       action: () => hb
                       .FieldSetGeneral(
                           context: context,
                           ss: ss,
                           wikiModel: wikiModel,
                           editInDialog: editInDialog))
                   .ToString()
                : hb.Template(
                       context: context,
                       ss: ss,
                       view: null,
                       verType: wikiModel.VerType,
                       methodType: wikiModel.MethodType,
                       siteId: wikiModel.SiteId,
                       parentId: ss.ParentId,
                       referenceType: "Wikis",
                       title: wikiModel.MethodType == BaseModel.MethodTypes.New
                        ? Displays.New(context: context)
                        : wikiModel.Title.DisplayValue,
                       useTitle: ss.TitleColumns?.Any(o => ss.EditorColumns.Contains(o)) == true,
                       userScript: ss.EditorScripts(
                           context: context, methodType: wikiModel.MethodType),
                       userStyle: ss.EditorStyles(
                           context: context, methodType: wikiModel.MethodType),
                       action: () => hb
                       .Editor(
                           context: context,
                           ss: ss,
                           wikiModel: wikiModel)
                       .Hidden(controlId: "TableName", value: "Wikis")
                       .Hidden(controlId: "Id", value: wikiModel.WikiId.ToString())
                       .Hidden(controlId: "TriggerRelatingColumns", value: Jsons.ToJson(ss.RelatingColumns))
                       .Hidden(controlId: "DropDownSearchPageSize", value: Parameters.General.DropDownSearchPageSize.ToString()))
                   .ToString());
        }