示例#1
0
    private void UpdateTemplate()
    {
        long template_id = System.Convert.ToInt64(Request.QueryString["id"]);
        SetTitleBarToMessage("lbl update template");
        criteria.AddFilter(Ektron.Cms.Device.CmsDeviceConfigurationProperty.Id, CriteriaFilterOperator.GreaterThanOrEqualTo, "0");
        dList = cDevice.GetList(criteria);

        if (Request.Form["updateTemplate"] == null)
        {
            TemplateData templateData = m_refContentApi.EkContentRef.GetTemplateInfoByID(template_id);
            string templateName = templateData.FileName;
            sitePathValue.Text = "<td class=\"nowrap\">" + m_refContentApi.SitePath + "</td><td class=\"fullWidth\"><input type=\"text\" id=\"updateTemplate\"  maxlength=\"180\" class=\"fullWidth\" name=\"updateTemplate\" value=\"" + templateName + "\"/></td>";
            ltrTemplateDetails.Text = "<tr><td>" + m_refMsg.GetMessage("lbl template name") + ":</td><td></td><td><input id=\"updatetemplateName\" title=\"" + m_refMsg.GetMessage("lbl template name") + "\" maxlength=\"50\" name=\"updatetemplateName\" type=\"text\" value=\"" + templateData.TemplateName + "\"/></td></tr>" +
                "<tr><td>" + m_refMsg.GetMessage("lbl template description") + ":</td><td></td><td><input id=\"updatetemplateDescription\" title=\"" + m_refMsg.GetMessage("lbl template description") + "\" maxlength=\"200\" name=\"updatetemplateDescription\" type=\"text\" value=\"" + templateData.Description + "\"/></td></tr>";
            browsebuttontd.Visible = true;
            cbPageBuilderTemplate.Enabled = true;

            pnlPageBuilder.Visible = true;
            Ektron.Cms.Widget.WidgetTypeModel model = new Ektron.Cms.Widget.WidgetTypeModel();
            Ektron.Cms.Widget.WidgetTypeData[] widgetTypes = model.FindAll();
            repWidgetTypes.DataSource = widgetTypes;
            repWidgetTypes.DataBind();

            Ektron.Cms.PageBuilder.WireframeModel wireframeModel = new Ektron.Cms.PageBuilder.WireframeModel();
            Ektron.Cms.PageBuilder.WireframeData wireframe = wireframeModel.FindByTemplateID(template_id);

            if (wireframe != null)
            {
                Ektron.Cms.Widget.WidgetTypeData[] selectedWidgets = wireframeModel.GetAssociatedWidgetTypes(wireframe.ID);
                //lblThumbnailFileName.Text = wireframe.ThumbnailFile
                List<string> widgetIds = new List<string>();
                foreach (Ektron.Cms.Widget.WidgetTypeData widget in selectedWidgets)
                {
                    widgetIds.Add(widget.ID.ToString());
                }

                ClientScript.RegisterClientScriptBlock(this.GetType(), "pageBuilderSelectedIds", "Ektron.ready(function(){SelectWidgets([" + string.Join(", ", widgetIds.ToArray()) + "]);});", true);

                cbPageBuilderTemplate.Checked = true;
                if (wireframe.Template.SubType == Ektron.Cms.Common.EkEnumeration.TemplateSubType.MasterLayout)
                {
                    browsebuttontd.Visible = false;
                    sitePathValue.Text = "<td class=\"nowrap\">" + templateName + "</td><td class=\"fullWidth\"><input type=\"text\" id=\"updateTemplate\" class=\"masterlayout\" style=\"display:none\" name=\"updateTemplate\" value=\"" + templateName + "\"/></td>";
                    cbPageBuilderTemplate.Enabled = false;
                }
            }

            //Code to show device types
            string valDeviceInputs = "";
            if (m_refContentApi.RequestInformationRef.IsDeviceDetectionEnabled)
            {
                List<DeviceTemplateData> templateDevices = m_refContentApi.EkContentRef.GetTemplateDevicesByID(template_id);
                StringBuilder sb = new StringBuilder();
                if ((dList.Count > 0))
                {
                    Int32 i = 0;
                    sb.Append("<tr>").Append(Environment.NewLine);
                    sb.Append("     <td >").Append(Environment.NewLine);
                    sb.Append("         <br/><label class=\"deviceheader\" for=\"lblDeviceConfiguration\">").Append(m_refMsg.GetMessage("device configuration")).Append("</label>").Append(Environment.NewLine);
                    sb.Append("     </td>").Append(Environment.NewLine);
                    sb.Append("</tr>").Append(Environment.NewLine);
                    foreach (CmsDeviceConfigurationData dItem in dList)
                    {
                        if (dItem.Name != "Generic")
                        {
                            chkID = dItem.Id;
                            DeviceTemplateData deviceMatch = templateDevices.Find(GetDeviceItem);
                            sb.Append("<tr>").Append(Environment.NewLine);
                            sb.Append("     <td class=\"devicelabel\">").Append(Environment.NewLine);
                            if ((deviceMatch != null) && deviceMatch.IsEnabled == true)
                            {
                                sb.Append("     <input type=\"checkbox\" class=\"pageBuilderCheckbox clearfix\" checked=\"checked\" name=\"cbDeviceTemplate_").Append(dItem.Id).Append("\" id=\"cbDeviceTemplate_").Append(dItem.Id).Append("\" />").Append(Environment.NewLine);
                            }
                            else
                            {
                                sb.Append("     <input type=\"checkbox\" class=\"pageBuilderCheckbox clearfix\" name=\"cbDeviceTemplate_").Append(dItem.Id).Append("\" id=\"cbDeviceTemplate_").Append(dItem.Id).Append("\" />").Append(Environment.NewLine);
                            }
                            sb.Append("         <label for=\"addTemplateDevice_").Append(dItem.Id).Append("\">").Append(dItem.Name).Append("</label>").Append(Environment.NewLine);
                            sb.Append("     </td>").Append(Environment.NewLine);
                            sb.Append("     <td class=\"nowrap\">").Append(Environment.NewLine);
                            sb.Append(m_refContentApi.SitePath).Append(Environment.NewLine);
                            sb.Append("     </td>").Append(Environment.NewLine);
                            sb.Append("     <td>").Append(Environment.NewLine);
                            if ((deviceMatch != null))
                            {
                                sb.Append("          <input type=\"text\" id=\"updateDeviceTemplate_").Append(dItem.Id).Append("\"  maxlength=\"180\" class=\"masterlayout\" name=\"updateDeviceTemplate_").Append(dItem.Id).Append("\" value=\"").Append(deviceMatch.FileName).Append("\" />");
                            }
                            else
                            {
                                sb.Append("          <input type=\"text\" id=\"updateDeviceTemplate_").Append(dItem.Id).Append("\"  maxlength=\"180\" class=\"masterlayout\" name=\"updateDeviceTemplate_").Append(dItem.Id).Append("\" value=\"\" />");
                            }
                            sb.Append("     </td>").Append(Environment.NewLine);
                            sb.Append("     <td class=\"value\">").Append(Environment.NewLine);
                            sb.Append("         <input type=\"button\" id=\"btnDeviceTemplate_").Append(dItem.Id).Append("\" value=\"...\" class=\"ektronModal browseButton\" onclick=\"SetBtnClicked(").Append(dItem.Id).Append(");OnBrowseButtonClicked()\" />").Append(Environment.NewLine);
                            sb.Append("     </td>").Append(Environment.NewLine);
                            sb.Append("<tr>").Append(Environment.NewLine);
                            if (i > 0)
                            {
                                valDeviceInputs += "," + dItem.Id;
                            }
                            else
                            {
                                valDeviceInputs += dItem.Id;
                            }
                            i = i + 1;
                        }
                    }
                    ltrDeviceConfigurations.Text = sb.ToString();
                }
            }
            AddBackButton("template_config.aspx?view=list");
            AddButton(m_refContentApi.AppPath + "images/UI/Icons/save.png", "javascript:ConfirmNotEmpty('updateTemplate','" + valDeviceInputs + "');", m_refMsg.GetMessage("lbl update template"), m_refMsg.GetMessage("lbl update template"), "", StyleHelper.SaveButtonCssClass, true);
            AddHelpButton("template_update");
        }
        else
        {
            Ektron.Cms.PageBuilder.WireframeModel wireframeModel = new Ektron.Cms.PageBuilder.WireframeModel();
            Ektron.Cms.PageBuilder.WireframeData wireframe = wireframeModel.FindByTemplateID(template_id);

            if (wireframe != null)
            {
                if (cbPageBuilderTemplate.Checked == true)
                {
                    wireframe.Path = Request.Form["updateTemplate"];
                    wireframe.Template.FileName = wireframe.Path;
                    wireframe.Template.Description = AntiXss.HtmlEncode(Request.Form["updatetemplateDescription"]);
                    wireframe.Template.TemplateName = AntiXss.HtmlEncode(Request.Form["updatetemplateName"]);

                    if (wireframe.Template.SubType == Ektron.Cms.Common.EkEnumeration.TemplateSubType.MasterLayout)
                    {
                        wireframe.Template.Thumbnail = m_templateModel.GenerateThumbnail(wireframe.Template.MasterLayoutID);
                    }
                    else
                    {
                        string tempLocation = string.Empty;
                        if (wireframe.Path.IndexOf("?") != -1)
                        {
                            tempLocation = wireframe.Path.Substring(0, wireframe.Path.IndexOf("?")).ToString();
                        }
                        else
                        {
                            tempLocation = wireframe.Path;
                        }
                        wireframe.Template.Thumbnail = m_templateModel.GenerateThumbnail(tempLocation);
                    }

                    wireframeModel.Update(wireframe);
                    wireframeModel.RemoveAllWidgetTypeAssociations(wireframe.ID);

                    foreach (string Key in Request.Form.AllKeys)
                    {
                        if (Key.StartsWith("widget"))
                        {
                            try
                            {
                                wireframeModel.AddWidgetTypeAssociation(wireframe.ID, long.Parse(Key.Substring(6)));
                            }
                            catch (Exception ex)
                            {
                                EkException.ThrowException(ex);
                            }
                        }
                    }
                }
                else
                {
                    wireframeModel.Remove(wireframe.ID);
                }
            }
            else if (cbPageBuilderTemplate.Checked)
            {
                string strThumbnail = (string)(m_templateModel.GenerateThumbnail(Request.Form["updateTemplate"].ToString()));
                wireframe = wireframeModel.Create(Request.Form["updateTemplate"], template_id, System.IO.Path.GetFileName(strThumbnail), AntiXss.HtmlEncode(Request.Form["updatetemplateDescription"].ToString()), AntiXss.HtmlEncode(Request.Form["updatetemplateName"].ToString()));
                foreach (string Key in Request.Form.AllKeys)
                {
                    if (Key.StartsWith("widget"))
                    {
                        try
                        {
                            wireframeModel.AddWidgetTypeAssociation(wireframe.ID, long.Parse(Key.Substring(6)));
                        }
                        catch (Exception ex)
                        {
                            EkException.ThrowException(ex);
                        }
                    }
                }
            }
            else
            {
                Collection newtemplatedata = new Collection();
                TemplateData updateTemplateData = new TemplateData();
                updateTemplateData.Id = template_id;
                updateTemplateData.FileName = Request.Form["updateTemplate"].ToString();
                updateTemplateData.Description = AntiXss.HtmlEncode(Request.Form["updatetemplateDescription"].ToString());
                updateTemplateData.TemplateName = AntiXss.HtmlEncode(Request.Form["updatetemplateName"].ToString());
                m_refContentApi.EkContentRef.UpdateTemplatev2_0(updateTemplateData);
            }
            if (m_refContentApi.RequestInformationRef.IsDeviceDetectionEnabled)
            {
                SaveDeviceTemplates(dList, template_id, "update");
            }

            Response.Redirect("template_config.aspx?view=list", false);
        }
    }
示例#2
0
    private void DeleteTemplate()
    {
        long template_id = System.Convert.ToInt64(Request.QueryString["id"]);
        Ektron.Cms.PageBuilder.WireframeModel wireframeModel = new Ektron.Cms.PageBuilder.WireframeModel();
        Ektron.Cms.PageBuilder.WireframeData wireframe = wireframeModel.FindByTemplateID(template_id);

        SetTitleBarToMessage("lbl delete template");
        AddBackButton("template_config.aspx?view=list");
        AddHelpButton("template_delete");
        long[] folders = m_refContentApi.EkContentRef.GetTemplateDefaultFolderUsage(template_id);
        Collection contentBlockInfo = m_refContentApi.EkContentRef.GetTemplateContentBlockUsage(template_id);
        StringBuilder str = new StringBuilder();
        str.Append("<div class=\"ektronPageContainer\">");
        if (folders.Length > 0)
        {
            str.Append(m_refMsg.GetMessage("lbl folders with") + " " + "\'<i>" + m_refContentApi.EkContentRef.GetTemplateNameByID(template_id) + "</i>\'" + " " + m_refMsg.GetMessage("lbl as their default template") + ":");
            str.Append("<div class=\"ektronTopSpace\"></div>");
            str.Append("<table width=\"100%\" class=\"ektronGrid ektronBorder\">");
            str.Append("<tbody>");
            str.Append("<tr class=\"title-header\">");
            str.Append("<th>Folder Path</th>");
            str.Append("</tr>");
            int i = 0;
            for (i = 0; i <= folders.Length - 1; i++)
            {
                str.Append("<tr>");
                str.Append("<td>" + m_refContentApi.GetFolderById(folders[i]).NameWithPath + "</td>");
                str.Append("</tr>");
            }
            str.Append("</tbody>");
            str.Append("</table>");
            str.Append("<div class=\"ektronTopSpace\"></div>");
            str.Append(m_refMsg.GetMessage("alert msg set folders") + " " + "\'<i>" + m_refContentApi.EkContentRef.GetTemplateNameByID(template_id) + "</i>\'.");

        }
        else
        {
            if (contentBlockInfo.Count == 0 || !(Request.Form["deleteTemplate"] == null))
            {
                bool messageadded = false;
                if (wireframe != null)
                {
                    if (wireframe.Template.SubType == Ektron.Cms.Common.EkEnumeration.TemplateSubType.MasterLayout)
                    {
                        //delete the layout as well
                        Ektron.Cms.PageBuilder.TemplateModel templmodel = new Ektron.Cms.PageBuilder.TemplateModel();
                        string status = string.Empty;
                        Ektron.Cms.SiteAPI siteApi = new Ektron.Cms.SiteAPI();
                        Ektron.Cms.LanguageData[] langData = siteApi.GetAllActiveLanguages();
                        int j = 0;
                        for (j = 0; j <= langData.Length - 1; j++)
                        {
                            long contType = this.ContentAPIRef.EkContentRef.GetContentType(wireframe.Template.MasterLayoutID, langData[j].Id);
                            if (contType != 0)
                            {
                                int tempLang = System.Convert.ToInt32(ContentAPIRef.ContentLanguage);
                                ContentAPIRef.ContentLanguage = langData[j].Id;
                                status = (string)(this.ContentAPIRef.EkContentRef.GetContentStatev2_0(wireframe.Template.MasterLayoutID)["ContentStatus"]);
                                if (status == "O" || status == "S")
                                {
                                    Collection permissions = ContentAPIRef.EkContentRef.CanIv2_0(wireframe.Template.MasterLayoutID, "content");
                                    if (permissions.Contains("CanIApprove") && System.Convert.ToBoolean(permissions["CanIApprove"]))
                                    {
                                        ContentAPIRef.EkContentRef.TakeOwnership(wireframe.Template.MasterLayoutID);
                                    }
                                }
                                if (status == "S")
                                {
                                    ContentAPIRef.EkContentRef.CheckContentOutv2_0(wireframe.Template.MasterLayoutID);
                                }
                                status = (string)(this.ContentAPIRef.EkContentRef.GetContentStatev2_0(wireframe.Template.MasterLayoutID)["ContentStatus"]);
                                if (status == "O")
                                {
                                    ContentAPIRef.EkContentRef.CheckIn(wireframe.Template.MasterLayoutID, "");
                                }
                                Ektron.Cms.Content.Behaviors.DeleteContentBehavior deletebehavior = new Ektron.Cms.Content.Behaviors.DeleteContentBehavior(ContentAPIRef.RequestInformationRef);
                                deletebehavior.Delete(wireframe.Template.MasterLayoutID, null);
                                ContentAPIRef.ContentLanguage = tempLang;
                                //if content exists and status is now M then show tell user that layout has been marked for delete
                                if (!messageadded)
                                {
                                    Collection cont = ContentAPIRef.EkContentRef.GetContentByIDv2_0(wireframe.Template.MasterLayoutID);
                                    if (cont.Contains("ContentStatus"))
                                    {
                                        if ((string)cont["ContentStatus"] == "M")
                                        {
                                            str.Append("Template <i>" + wireframe.Template.FileName + "</i> is a Master Layout and has been marked for delete. When an approver approves this delete it will be removed from the templates list.");
                                            messageadded = true;
                                        }
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        wireframeModel.Remove(wireframe.ID);
                        Response.Redirect("template_config.aspx", false);
                    }
                }
                try
                {
                    m_refContentApi.EkContentRef.PurgeTemplate(template_id);
                }
                catch (Exception ex)
                {
                    string _error = ex.Message;
                }
                if (!messageadded)
                {
                    Response.Redirect("template_config.aspx", false);
                }
            }
            else
            {
                LocalizationAPI objLocalizationApi = new LocalizationAPI();
                str.Append(m_refMsg.GetMessage("lbl content with") + " " + "\'<i>" + m_refContentApi.EkContentRef.GetTemplateNameByID(template_id) + "</i>\'" + " " + m_refMsg.GetMessage("lbl as a template") + ":");
                str.Append("<div class=\"ektronTopSpace\"></div>");
                str.Append("<table width=\"100%\" class=\"ektronGrid ektronBorder\">");
                str.Append("<tbody>");
                str.Append("<tr class=\"title-header\">");
                str.Append("<th width=\"70%\" align=\"center\">Title</th>");
                str.Append("<th width=\"15%\" align=\"center\">ID</th>");
                str.Append("<th width=\"15%\" align=\"center\">Language</th>");
                str.Append("</tr>");
                int i = 0;

                foreach (Collection col in contentBlockInfo)
                {
                    str.Append("<tr>");
                    m_refContentApi.ContentLanguage = Convert.ToInt32(col["language_id"]);
                    ContentData content_data = m_refContentApi.EkContentRef.GetContentById(Convert.ToInt64(col["content_id"]), Ektron.Cms.Content.EkContent.ContentResultType.Published);
                    str.Append("<td>" + content_data.Title + "</td>");
                    str.Append("<td align=\"center\">" + content_data.Id + "</td>");
                    str.Append("<td align=\"center\"><img src=\"" + objLocalizationApi.GetFlagUrlByLanguageID(content_data.LanguageId) + "\" /></td>");
                    str.Append("</tr>");
                    i++;
                }
                str.Append("</tbody>");
                str.Append("</table>");

                if (wireframe == null || wireframe.Template.SubType != Ektron.Cms.Common.EkEnumeration.TemplateSubType.MasterLayout)
                {
                    str.Append("<div class=\"ektronTopSpace\"></div>");
                    str.Append(m_refMsg.GetMessage("alert msg del template"));
                    str.Append(" <input type=\"submit\" id=\"deleteTemplate\" name=\"deleteTemplate\" value=\"Delete\" />&nbsp;&nbsp;");
                    str.Append("<input type=\"button\" id=\"cancelDelete\" name=\"cancelDelete\" value=\"Cancel\" onclick=\"window.location.replace(\'template_config.aspx\')\" />");
                }
                else
                {
                    str.Append("<div class=\"ektronTopSpace\"></div>");
                    str.Append(m_refMsg.GetMessage("alert msg set layout") + " " + "\'<i>" + wireframe.Template.FileName + "</i>\'.");
                }
            }
        }
        str.Append("</div>");
        MainBody.Text = str.ToString();
    }