Ejemplo n.º 1
0
        public ActionResult EditFields(string id, string fieldName)
        {
            if (!Services.Authorizer.Authorize(Permissions.EditContentTypes, T("Not allowed to edit a content type.")))
            {
                return(new HttpUnauthorizedResult());
            }
            var entity = _contentMetadataService.GetEntity(id);

            if (entity == null)
            {
                return(HttpNotFound());
            }
            var field = entity.FieldMetadataRecords.FirstOrDefault(x => x.Name == fieldName);

            if (field == null)
            {
                return(HttpNotFound());
            }
            var settings        = _contentMetadataService.ParseSetting(field.Settings);
            var fieldDefinition = new ContentFieldDefinition(field.ContentFieldDefinitionRecord.Name);
            var viewModel       = new EditPartFieldViewModel {
                Name            = field.Name,
                DisplayName     = settings["DisplayName"],
                Settings        = settings,
                FieldDefinition = new EditFieldViewModel(fieldDefinition),
                Templates       = _contentDefinitionEditorEvents.PartFieldEditor(new ContentPartFieldDefinition(fieldDefinition, field.Name, settings))
            };

            return(View(viewModel));
        }
Ejemplo n.º 2
0
        public ActionResult EditFieldsPost(EditPartFieldViewModel viewModel, string id)
        {
            if (!Services.Authorizer.Authorize(Permissions.EditContentTypes, T("Not allowed to edit a content type.")))
            {
                return(new HttpUnauthorizedResult());
            }

            var entity = _contentMetadataService.GetDraftEntity(id);

            if (viewModel == null || entity == null)
            {
                return(HttpNotFound());
            }
            var field = entity.FieldMetadataRecords.FirstOrDefault(x => x.Name == viewModel.Name);

            if (field == null)
            {
                return(HttpNotFound());
            }

            // prevent null reference exception in validation
            viewModel.DisplayName = viewModel.DisplayName ?? String.Empty;

            // remove extra spaces
            viewModel.DisplayName = viewModel.DisplayName.Trim();

            if (String.IsNullOrWhiteSpace(viewModel.DisplayName))
            {
                ModelState.AddModelError("DisplayName", T("The Display Name name can't be empty.").ToString());
            }

            bool displayNameExist = entity.FieldMetadataRecords.Any(t => {
                string displayName = _contentMetadataService.ParseSetting(t.Settings)["DisplayName"];
                return(t.Name != viewModel.Name && String.Equals(displayName.Trim(), viewModel.DisplayName.Trim(), StringComparison.OrdinalIgnoreCase));
            });

            if (displayNameExist)
            {
                ModelState.AddModelError("DisplayName", T("A field with the same Display Name already exists.").ToString());
            }
            _contentMetadataService.UpdateField(field, viewModel.DisplayName, this);
            if (!ModelState.IsValid)
            {
                Services.TransactionManager.Cancel();
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                var temp = (from values in ModelState
                            from error in values.Value.Errors
                            select error.ErrorMessage).ToArray();
                return(Content(string.Concat(temp)));
            }

            return(new HttpStatusCodeResult(HttpStatusCode.OK));
        }
Ejemplo n.º 3
0
        public void AlterField(string typeName, EditPartFieldViewModel fieldViewModel, IUpdateModel updateModel)
        {
            var updater = new Updater(updateModel);

            updater._prefix = secondHalf => secondHalf;
            _contentDefinitionManager.AlterPartDefinition(typeName, partBuilder => {
                // allow extensions to alter partField configuration
                if (fieldViewModel != null)
                {
                    partBuilder.WithField(fieldViewModel.Name, partFieldBuilder => {
                        fieldViewModel.Templates = _contentDefinitionEditorEvents.PartFieldEditorUpdate(partFieldBuilder, updater);
                    });
                }
            });
        }