Beispiel #1
0
        public ActionResult Edit(PageManageModel model, string returnUrl, SubmitType submitType = SubmitType.SaveAndContinueEdit, bool confirmedChangeUrl = false)
        {
            if (ModelState.IsValid)
            {
                var response = _pageService.SavePageManageModel(model, confirmedChangeUrl);
                SetResponseMessage(response);
                if (response.Success)
                {
                    //Notify contacts
                    if (model.Notify.NotifyContacts)
                    {
                        return(RedirectToAction("InitializeNotification", "NotificationSetup", new
                        {
                            model.Notify.Id,
                            model.Notify.Parameters,
                            model.Notify.Module,
                        }));
                    }

                    switch (submitType)
                    {
                    case SubmitType.Save:
                        if (!string.IsNullOrEmpty(returnUrl))
                        {
                            return(Redirect(returnUrl));
                        }
                        return(RedirectToAction("Index"));

                    case SubmitType.SaveAndContinueEdit:
                        return(RedirectToAction("Edit", new { id = model.Id, returnUrl }));
                    }
                }
            }
            return(View(model));
        }
Beispiel #2
0
        public ActionResult Create(PageManageModel model, SubmitTypeEnums submit)
        {
            if (ModelState.IsValid)
            {
                var response = _pageServices.SavePageManageModel(model);
                if (response.Success)
                {
                    var pageId = (int)response.Data;
                    SetSuccessMessage(response.Message);
                    switch (submit)
                    {
                    case SubmitTypeEnums.Save:
                        return(RedirectToAction("Index"));

                    default:
                        return(RedirectToAction("Edit", new { id = pageId }));
                    }
                }
                SetErrorMessage(response.Message);
            }
            model.Parents       = _pageTemplateServices.GetPossibleParents();
            model.Positions     = EnumUtilities.GetSelectListFromEnum <PageEnums.PositionEnums>();
            model.RelativePages = _pageServices.GetRelativePages(model.Id, model.ParentId);
            model.StatusList    = _pageServices.GetStatus();
            model.PageTemplates = _pageTemplateServices.GetPageTemplateSelectList(model.PageTemplateId);
            return(View(model));
        }
Beispiel #3
0
        public ActionResult Create(PageManageModel model, SubmitType submitType = SubmitType.SaveAndContinueEdit)
        {
            if (ModelState.IsValid)
            {
                var response = _pageService.SavePageManageModel(model);
                SetResponseMessage(response);
                if (response.Success)
                {
                    //Notify contacts
                    if (model.Notify.NotifyContacts)
                    {
                        return(RedirectToAction("InitializeNotification", "NotificationSetup", new
                        {
                            model.Notify.Id,
                            model.Notify.Parameters,
                            model.Notify.Module,
                        }));
                    }

                    switch (submitType)
                    {
                    case SubmitType.Save:
                        return(RedirectToAction("Index"));

                    case SubmitType.SaveAndContinueEdit:
                        return(RedirectToAction("Edit", new { id = (int)response.Data }));
                    }
                }
            }

            return(View(model));
        }
Beispiel #4
0
        public ActionResult Edit(int id)
        {
            PageManageModel model = _pageServices.GetPageById(id);

            model.HeaderTemplateList = GetHeaderTemplateList();
            model.FooterTemplateList = GetFooterTemplateList();
            return(View(model));
        }
Beispiel #5
0
        public ActionResult Create()
        {
            var model = new PageManageModel();

            model.HeaderTemplateList = GetHeaderTemplateList();
            model.FooterTemplateList = GetFooterTemplateList();
            return(View(model));
        }
Beispiel #6
0
        public bool SavePage(PageManageModel model)
        {
            if (model.ID > 0)
            {
                var dataUpdate = _pageRepository.GetPageById(model.ID);
                dataUpdate.Title       = model.Title;
                dataUpdate.FriendlyUrl = model.FriendlyUrl;
                dataUpdate.Status      = PageStatus.Online;
                dataUpdate.Content     = model.Content;
                dataUpdate.IsHomePage  = model.IsHomePage;

                dataUpdate.TitleEnglish       = model.TitleEnglish;
                dataUpdate.FriendlyUrlEnglish = model.FriendlyUrlEnglish;
                dataUpdate.ContentEnglish     = model.ContentEnglish;

                dataUpdate.FooterTemplateId = _footerTemplateRepository.GetFooterTemplates(model.FooterTemplate).FirstOrDefault().ID;
                dataUpdate.HeaderTemplateId = _headerTemplateRepository.GetHeaderTemplates(model.HeaderTemplate).FirstOrDefault().ID;
                dataUpdate.LastUpdateBy     = "Admin";
                dataUpdate.LastUpdate       = DateTime.Now;
                dataUpdate.RecordOrder      = 1;
                dataUpdate.RecordActive     = true;
                dataUpdate.RecordDeleted    = false;

                return(_pageRepository.UpdatePage(dataUpdate));
            }
            else
            {
                Page data = new Page()
                {
                    Title       = model.Title,
                    FriendlyUrl = model.FriendlyUrl,
                    Status      = PageStatus.Online,
                    Content     = model.Content,
                    IsHomePage  = model.IsHomePage,

                    TitleEnglish       = model.TitleEnglish,
                    FriendlyUrlEnglish = model.FriendlyUrlEnglish,
                    ContentEnglish     = model.ContentEnglish,

                    FooterTemplateId = _footerTemplateRepository.GetFooterTemplates(model.FooterTemplate).FirstOrDefault().ID,
                    HeaderTemplateId = _headerTemplateRepository.GetHeaderTemplates(model.HeaderTemplate).FirstOrDefault().ID,
                    Created          = DateTime.Now,
                    CreatedBy        = "Admin",
                    LastUpdate       = DateTime.Now,
                    RecordOrder      = 1,
                    RecordActive     = true,
                    RecordDeleted    = false,
                };
                return(_pageRepository.AddPage(data));
            }
        }
Beispiel #7
0
        public ActionResult PopupEdit(PageManageModel model, SubmitType submitType = SubmitType.SaveAndContinueEdit, bool confirmedChangeUrl = false)
        {
            //Check if current user has permission to edit any page or not
            if (!_pageService.CanCurrentUserCreateOrEditPage(model.Id))
            {
                throw new EzCMSUnauthorizeException();
            }

            if (ModelState.IsValid)
            {
                var response = _pageService.SavePageManageModel(model, confirmedChangeUrl);
                SetResponseMessage(response);
                if (response.Success)
                {
                    //Notify contacts
                    if (model.Notify.NotifyContacts)
                    {
                        return(RedirectToAction("InitializeNotification", "NotificationSetup", new
                        {
                            model.Notify.Id,
                            model.Notify.Parameters,
                            model.Notify.Module,
                        }));
                    }

                    var page = _pageService.GetById(model.Id);

                    var returnUrl = page.FriendlyUrl.ToPageFriendlyUrl(page.IsHomePage);

                    switch (submitType)
                    {
                    case SubmitType.PopupSave:
                        return(View("CloseFancyBox", new CloseFancyBoxViewModel
                        {
                            IsReload = true,
                            ReturnUrl = returnUrl
                        }));

                    case SubmitType.SaveAndContinueEdit:
                        return(RedirectToAction("PopupEdit", new { id = model.Id }));
                    }
                }
            }
            SetupPopupAction();
            return(View(model));
        }
Beispiel #8
0
        public ActionResult Edit(int?id, int?logId)
        {
            PageManageModel model = null;

            if (id.HasValue)
            {
                model = _pageServices.GetPageManageModel(id.Value);
            }
            else if (logId.HasValue)
            {
                model = _pageServices.GetPageManageModelByLogId(logId.Value);
            }
            if (model == null)
            {
                SetErrorMessage(LocalizedResourceServices.T("AdminModule:::Pages:::Messages:::ObjectNotFounded:::Page is not founded."));
                return(RedirectToAction("Index"));
            }
            return(View(model));
        }
Beispiel #9
0
        public void SavePageManage(int id, PageManageModel model)
        {
            var item = _kTCategoryRepository.GetQuery()
                       .FirstOrDefault(t => t.Id == id);

            if (item != null)
            {
                item.SUBSYSTEMID    = model.SubSystemId;
                item.KTEMPLATEURLID = model.UrlId;
                item.INSTANCECLASS  = model.InstanceClass;
                item.GROUPNAME      = model.GroupName;
                item.ROBJECT        = model.RObject;
            }

            var templates = _kTemplateRepository.GetQuery()
                            .Where(t => t.KTEMPLATECATEGORYID == id);

            foreach (var template in templates)
            {
                template.ISDEFAULT = false;
            }
            var defaultTemplate = _kTemplateRepository.GetQuery()
                                  .FirstOrDefault(t => t.Id == model.DefaultTempId);

            if (defaultTemplate != null)
            {
                defaultTemplate.ISDEFAULT = true;
            }

            _kCategoryParamsRepository.DeleteList(t => t.KTEMPLATECATEGORYID == id);
            foreach (var para in model.Params)
            {
                _kCategoryParamsRepository.Add(new PKS_KTEMPLATE_CATEGORY_PARAMETER
                {
                    KTEMPLATECATEGORYID  = id,
                    KTEMPLATEPARAMETERID = para.id
                });
            }

            _kTCategoryRepository.Submit();
            _kTemplateRepository.Submit();
            _kCategoryParamsRepository.Submit();
        }
Beispiel #10
0
        public ActionResult Edit(int?id, int?logId)
        {
            PageManageModel model = null;

            if (id.HasValue)
            {
                model = _pageService.GetPageManageModel(id.Value);
            }
            else if (logId.HasValue)
            {
                model = _pageService.GetPageManageModelByLogId(logId.Value);
            }
            if (model == null)
            {
                SetErrorMessage(T("Page_Message_ObjectNotFound"));
                return(RedirectToAction("Index"));
            }
            return(View(model));
        }
Beispiel #11
0
 public ActionResult Create(PageManageModel model)
 {
     try
     {
         // TODO: Add insert logic here
         if (ModelState.IsValid)
         {
             var response = _pageServices.SavePage(model);
             if (response)
             {
                 return(RedirectToAction("Index"));
             }
         }
     }
     catch (Exception ex)
     {
         LogError(ex);
     }
     return(View());
 }
Beispiel #12
0
        public ActionResult Edit(PageManageModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var response = _pageServices.SavePage(model);
                    if (response)
                    {
                        return(RedirectToAction("Index"));
                    }
                }
            }
            catch (Exception ex)
            {
                LogError(ex);
            }

            model.HeaderTemplateList = GetHeaderTemplateList();
            model.FooterTemplateList = GetFooterTemplateList();
            return(View(model));
        }
Beispiel #13
0
        public PageManageModel GetPageManageData(int id)
        {
            var result = new PageManageModel();
            var item   = _kTCategoryRepository.GetQuery()
                         .FirstOrDefault(t => t.Id == id);

            if (item != null)
            {
                result.SubSystemId   = item.SUBSYSTEMID;
                result.UrlId         = item.KTEMPLATEURLID;
                result.InstanceClass = item.INSTANCECLASS;
                result.GroupName     = item.GROUPNAME;
                result.RObject       = item.ROBJECT;
            }

            var defaultTemplate = _kTemplateRepository.GetQuery()
                                  .FirstOrDefault(t => t.KTEMPLATECATEGORYID == id && t.ISDEFAULT == true);

            if (defaultTemplate != null)
            {
                result.DefaultTempId = defaultTemplate.Id;
            }

            var categoryParams = from c in _kCategoryParamsRepository.GetQuery()
                                 join p in _kTParameterRepository.GetQuery() on c.KTEMPLATEPARAMETERID equals p.Id
                                 where c.KTEMPLATECATEGORYID == id
                                 select new ComboItem
            {
                id   = p.Id,
                text = p.NAME
            };

            if (categoryParams != null)
            {
                result.Params = categoryParams.ToList();
            }
            return(result);
        }
Beispiel #14
0
        public JsonResult SavePageManage(string id,
                                         string SubSystemId,
                                         string InstanceClass,
                                         string GroupName,
                                         string RObject,
                                         string UrlId,
                                         string DefaultTempId,
                                         string Params)
        {
            PageManageModel pageManageModel = new PageManageModel();

            pageManageModel.SubSystemId   = SubSystemId.ToInt32();
            pageManageModel.InstanceClass = InstanceClass;
            pageManageModel.UrlId         = UrlId.ToInt32();
            pageManageModel.DefaultTempId = DefaultTempId.ToInt32();
            pageManageModel.GroupName     = GroupName;
            pageManageModel.RObject       = RObject;
            if (!string.IsNullOrEmpty(Params))
            {
                pageManageModel.Params = Params.JsonTo <List <ComboItem> >();
            }
            _kManage2Service.SavePageManage(id.ToInt32(), pageManageModel);
            return(Json(new { defaultId = pageManageModel.DefaultTempId }, JsonRequestBehavior.AllowGet));
        }
Beispiel #15
0
        /// <summary>
        /// Save page manage model
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ResponseModel SavePageManageModel(PageManageModel model)
        {
            Page          relativePage;
            ResponseModel response;
            var           page = GetById(model.Id);

            #region Edit Page
            if (page != null)
            {
                var pageLog = new PageLogManageModel(page);
                page.Title = model.Title;

                page.PageTemplateId = model.PageTemplateId;
                page.FileTemplateId = model.FileTemplateId;

                page.Status = model.Status;
                //Set content & caption base on status
                if (model.Status == (int)PageEnums.PageStatusEnums.Draft)
                {
                    page.ContentWorking = model.Content;
                    page.CaptionWorking = model.Caption;
                }
                else
                {
                    page.Content = model.Content;
                    page.Caption = model.Caption;
                }


                var currentTags = page.PageTags.Select(t => t.TagId).ToList();
                foreach (var id in currentTags.Where(id => model.Tags == null || !model.Tags.Contains(id)))
                {
                    _pageTagRepository.Delete(page.Id, id);
                }
                if (model.Tags != null && model.Tags.Any())
                {
                    foreach (var tagId in model.Tags)
                    {
                        if (currentTags.All(n => n != tagId))
                        {
                            var pageTag = new PageTag
                            {
                                PageId = page.Id,
                                TagId  = tagId
                            };
                            _pageTagRepository.Insert(pageTag);
                        }
                    }
                }

                page.StartPublishingDate = model.StartPublishingDate;
                page.EndPublishingDate   = model.EndPublishingDate;

                //Parse friendly url
                page.FriendlyUrl = string.IsNullOrWhiteSpace(model.FriendlyUrl)
                                       ? model.Title.ToUrlString()
                                       : model.FriendlyUrl.ToUrlString();

                //Get page record order
                relativePage = GetById(model.RelativePageId);
                if (relativePage != null)
                {
                    /*
                     * If position is not changed, donot need to update order of relative pages
                     * If position is changed, check if position is before or after and update the record other of all relative pages
                     */
                    var relativePages = Fetch(p => p.Id != page.Id && relativePage.ParentId.HasValue ? p.ParentId == relativePage.ParentId : p.ParentId == null)
                                        .OrderBy(p => p.RecordOrder);
                    if (model.Position == (int)PageEnums.PositionEnums.Before)
                    {
                        if (page.RecordOrder > relativePage.RecordOrder || relativePages.Any(p => p.RecordOrder > page.RecordOrder && p.RecordOrder < relativePage.RecordOrder))
                        {
                            page.RecordOrder = relativePage.RecordOrder;
                            var query =
                                string.Format(
                                    "Update Pages set RecordOrder = RecordOrder + 1 Where {0} And RecordOrder >= {1}",
                                    relativePage.ParentId.HasValue ? string.Format(" ParentId = {0}", relativePage.ParentId) : "ParentId Is NULL", relativePage.RecordOrder);
                            _pageRepository.ExcuteSql(query);
                        }
                    }
                    else
                    {
                        if (page.RecordOrder < relativePage.RecordOrder || relativePages.Any(p => p.RecordOrder < page.RecordOrder && p.RecordOrder > relativePage.RecordOrder))
                        {
                            page.RecordOrder = relativePage.RecordOrder + 1;
                            var query =
                                string.Format(
                                    "Update Pages set RecordOrder = RecordOrder + 1 Where {0} And RecordOrder > {1}",
                                    relativePage.ParentId.HasValue
                                        ? string.Format(" ParentId = {0}", relativePage.ParentId)
                                        : "ParentId Is NULL", relativePage.RecordOrder);
                            _pageRepository.ExcuteSql(query);
                        }
                    }
                }

                page.ParentId = model.ParentId;
                response      = HierarchyUpdate(page);
                if (response.Success)
                {
                    _clientMenuServices.SavePageToClientMenu(page.Id);
                    _pageLogServices.SavePageLog(pageLog);
                }

                return(response.SetMessage(response.Success ?
                                           _localizedResourceServices.T("AdminModule:::Pages:::Messages:::UpdateSuccessfully:::Update page successfully.")
                    : _localizedResourceServices.T("AdminModule:::Pages:::Messages:::UpdateFailure:::Update page failed. Please try again later.")));
            }
            #endregion

            page = new Page
            {
                Title          = model.Title,
                Status         = model.Status,
                Content        = model.Content,
                Caption        = model.Caption,
                ParentId       = model.ParentId,
                RecordOrder    = 0,
                PageTemplateId = model.PageTemplateId,
                FileTemplateId = model.FileTemplateId,
                FriendlyUrl    = string.IsNullOrWhiteSpace(model.FriendlyUrl)
                                  ? model.Title.ToUrlString()
                                  : model.FriendlyUrl.ToUrlString()
            };

            //Set content & caption base on status
            if (model.Status == (int)PageEnums.PageStatusEnums.Draft)
            {
                page.ContentWorking = model.Content;
                page.CaptionWorking = model.Caption;
            }

            //Get page record order
            relativePage = GetById(model.RelativePageId);
            if (relativePage != null)
            {
                if (model.Position == (int)PageEnums.PositionEnums.Before)
                {
                    page.RecordOrder = relativePage.RecordOrder;
                    var query =
                        string.Format(
                            "Update Pages set RecordOrder = RecordOrder + 1 Where {0} And RecordOrder >= {1}",
                            relativePage.ParentId.HasValue ? string.Format(" ParentId = {0}", relativePage.ParentId) : "ParentId Is NULL", relativePage.RecordOrder);
                    _pageRepository.ExcuteSql(query);
                }
                else
                {
                    page.RecordOrder = relativePage.RecordOrder + 1;
                    var query =
                        string.Format(
                            "Update Pages set RecordOrder = RecordOrder + 1 Where {0} And RecordOrder > {1}",
                            relativePage.ParentId.HasValue ? string.Format(" ParentId = {0}", relativePage.ParentId) : "ParentId Is NULL", relativePage.RecordOrder);
                    _pageRepository.ExcuteSql(query);
                }
            }

            response = HierarchyInsert(page);

            if (response.Success)
            {
                _clientMenuServices.SavePageToClientMenu(response.Data.ToInt());
            }
            return(response.SetMessage(response.Success ?
                                       _localizedResourceServices.T("AdminModule:::Pages:::Messages:::CreateSuccessfully:::Create page successfully.")
                : _localizedResourceServices.T("AdminModule:::Pages:::Messages:::CreateFailure:::Create page failed. Please try again later.")));
        }