Exemplo n.º 1
0
        public async Task <IActionResult> Edit(string name)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageCKEditorConfigurations))
            {
                return(Forbid());
            }

            var document = await _ckEditorConfigurationManager.GetDocumentAsync();

            if (!document.Configurations.ContainsKey(name))
            {
                return(RedirectToAction("Create", new { name }));
            }


            var configuration = document.Configurations[name];

            var model = new CKEditorConfigurationViewModel
            {
                Name          = name,
                Configuration = configuration.Configuration
            };

            return(View(model));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Edit(CKEditorConfigurationViewModel model)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageCKEditorConfigurations))
            {
                return(Forbid());
            }

            if (ModelState.IsValid)
            {
                if (String.IsNullOrWhiteSpace(model.Name))
                {
                    ModelState.AddModelError(nameof(CKEditorConfigurationViewModel.Name), S["The name is mandatory."]);
                }
                if (String.IsNullOrWhiteSpace(model.Configuration) || !model.Configuration.IsJson())
                {
                    ModelState.AddModelError(nameof(CKEditorConfigurationViewModel.Configuration), S["Invalid JSON configuration."]);
                }
            }

            if (ModelState.IsValid)
            {
                var configuration = new CKEditorConfiguration
                {
                    Name          = model.Name,
                    Configuration = FormatJson(model.Configuration)
                };

                await _ckEditorConfigurationManager.UpdateAsync(model.Name, configuration);

                return(RedirectToAction(nameof(Index)));
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Create(string name)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageCKEditorConfigurations))
            {
                return(Forbid());
            }

            var model = new CKEditorConfigurationViewModel
            {
                Name = name
            };

            return(View(model));
        }
Exemplo n.º 4
0
        public async Task <IActionResult> CreatePost(CKEditorConfigurationViewModel model)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageCKEditorConfigurations))
            {
                return(Forbid());
            }

            if (ModelState.IsValid)
            {
                if (String.IsNullOrWhiteSpace(model.Name))
                {
                    ModelState.AddModelError(nameof(CKEditorConfigurationViewModel.Name), S["The name is mandatory."]);
                }
                if (String.IsNullOrWhiteSpace(model.Configuration) || !model.Configuration.IsJson())
                {
                    ModelState.AddModelError(nameof(CKEditorConfigurationViewModel.Configuration), S["Invalid JSON configuration."]);
                }
            }

            if (ModelState.IsValid)
            {
                var document = await _ckEditorConfigurationManager.GetDocumentAsync();

                if (document.Configurations.ContainsKey(model.Name))
                {
                    ModelState.AddModelError(nameof(CKEditorConfigurationViewModel.Name), S["A configuration with the same name already exists."]);
                }
                else
                {
                    var configuration = new CKEditorConfiguration
                    {
                        Name          = model.Name,
                        Configuration = FormatJson(model.Configuration)
                    };

                    await _ckEditorConfigurationManager.UpdateAsync(model.Name, configuration);
                }

                return(RedirectToAction(nameof(Index)));
            }

            return(View(model));
        }