Beispiel #1
0
        public override RevertToRevisionResult RevertToRevision(CmsPage oldPage, CmsPage currentPage, int[] identifiers, CmsLanguage language)
        {
            SingleImageDb imageDb = new SingleImageDb();

            foreach (int identifier in identifiers)
            {
                SingleImageData oldData = imageDb.getSingleImage(oldPage, identifier, language, false);
                bool            b       = imageDb.saveUpdatedSingleImage(currentPage, identifier, language, oldData);
                if (!b)
                {
                    return(RevertToRevisionResult.Failure);
                }
            } // foreach
            return(RevertToRevisionResult.Success);
        }
Beispiel #2
0
        public override void RenderInEditMode(HtmlTextWriter writer, CmsPage page, int identifier, CmsLanguage langToRenderFor, string[] paramList)
        {
            string formName = getEditFormName(page, identifier, langToRenderFor);

            SingleImageDb   db    = (new SingleImageDb());
            SingleImageData image = db.getSingleImage(page, identifier, langToRenderFor, true);

            string[] possibleTags = (new SingleImageDb()).getAllPossibleTags();



            StringBuilder html = new StringBuilder();
            // ------- CHECK THE FORM FOR ACTIONS
            string action = Hatfield.Web.Portal.PageUtils.getFromForm(formName + "_SingleImageAction", "");

            if (action.Trim().ToLower() == "saveimage")
            {
                image.ImagePath = PageUtils.getFromForm(formName + "ImagePath", "");
                // remove the Application path from the file location
                if (image.ImagePath.StartsWith(CmsContext.ApplicationPath))
                {
                    image.ImagePath = image.ImagePath.Substring(CmsContext.ApplicationPath.Length);
                }


                image.Caption = PageUtils.getFromForm(formName + "Caption", "");
                image.Credits = PageUtils.getFromForm(formName + "Credits", "");

                image.Tags = PageUtils.getFromForm(formName + "Tags");

                bool b = db.saveUpdatedSingleImage(page, identifier, langToRenderFor, image);
                if (!b)
                {
                    html.Append("Error: Image not saved - database error");
                }
            }

            string creditsPrefix = CmsConfig.getConfigValue("SingleImage.CreditsPrefix", "Credit:");

            int thumbWidth  = getThumbDisplayWidth(page, paramList);
            int thumbHeight = getThumbDisplayHeight(page, paramList);

            // ------- START RENDERING

            // note: no need to put in the <form></form> tags.

            html.Append("<div class=\"SingleImagePlaceholder Edit\">" + Environment.NewLine);
            string ImageRenderAreaId = formName + "ImageRendered";

            html.Append("<div id=\"" + ImageRenderAreaId + "\"></div>");
            html.Append(PageUtils.getHiddenInputHtml(formName + "ImagePath", formName + "ImagePath", image.ImagePath));

            List <string> editParams = new List <string>();

            editParams.Add("i=" + image.SingleImageId);
            editParams.Add("formName=" + formName);
            editParams.Add("tw=" + thumbWidth.ToString());
            editParams.Add("th=" + thumbHeight.ToString());

            string editUrl                    = CmsContext.ApplicationPath + "_system/tools/SingleImage/SingleImageEditor.aspx?" + string.Join("&", editParams.ToArray());;
            string jsResetFunctionName        = formName + "Reset";
            string jsUpdateRenderFunctionName = formName + "UpdateDisplay";

            html.Append("<table>");
            html.Append("<tr>" + Environment.NewLine);
            html.Append("<td colspan=\"2\">");
            html.Append("<p>");
            html.Append("<a id=\"" + formName + "OpenEditorLink\" href=\"" + editUrl + "\" onclick=\"window.open(this.href, 'SingleImageEdit','width=680,height=540'); return false;\">select image</a>");
            html.Append(" | ");
            html.Append("<a href=\"#\" onclick=\"" + jsResetFunctionName + "(); return false;\">clear</a>");
            if (CmsConfig.Languages.Length > 1)
            {
                html.Append(" | ");
                html.Append("copy from language: ");
                List <string> langCopyLinks = new List <string>();
                foreach (CmsLanguage lang in CmsConfig.Languages)
                {
                    if (lang != langToRenderFor)
                    {
                        string langClick = "document.getElementById('" + formName + "ImagePath').value = document.getElementById('" + getEditFormName(page, identifier, lang) + "ImagePath').value;" + jsUpdateRenderFunctionName + "(); if (document.getElementById('" + formName + "ImagePath').value == '') {alert('No image is selected because the source image is blank.');} return false;";
                        langCopyLinks.Add("<a href=\"#\" onclick=\"" + langClick + "\">" + lang.shortCode + "</a>");
                    }
                } // foreach
                html.Append(string.Join("; ", langCopyLinks.ToArray()));
            }
            html.Append("</p>");
            html.Append("</td>");
            html.Append("</tr>" + Environment.NewLine);


            html.Append("<tr><td>");
            html.Append("Caption:");
            html.Append("</td><td class=\"CaptionInputTD\">");
            html.Append(PageUtils.getInputTextHtml(formName + "Caption", formName + "Caption", image.Caption.ToString(), 40, 250));
            html.Append("</td></tr>");


            html.Append("<tr><td>");
            html.Append(creditsPrefix);
            html.Append("</td><td class=\"CreditInputTD\">");
            html.Append(PageUtils.getInputTextHtml(formName + "Credits", formName + "Credits", image.Credits.ToString(), 40, 250));
            html.Append("</td></tr>" + Environment.NewLine);

            if (possibleTags.Length > 0)
            {
                html.Append("<tr><td>");
                html.Append("Tags:");
                html.Append("</td><td>");
                foreach (string t in possibleTags)
                {
                    if (t != "")
                    {
                        html.Append(PageUtils.getCheckboxHtml(t.Trim(), formName + "Tags", formName + "tag_" + t, t.Trim(), Array.IndexOf(image.Tags, t) > -1));
                        html.Append("<br />");
                    }
                } // foreach
                html.Append("</td></tr>");
            }

            html.Append("</table>");
            html.Append("</div>" + Environment.NewLine);
            // -- hidden field actions
            html.Append("<input type=\"hidden\" name=\"" + formName + "_SingleImageAction\" value=\"saveImage\">");

            // -- javascript

            StringBuilder js = new StringBuilder();

            js.Append("function " + jsResetFunctionName + "() " + Environment.NewLine);
            js.Append("{ " + Environment.NewLine);
            js.Append("document.getElementById('" + formName + "ImagePath').value = '';" + Environment.NewLine);
            js.Append("document.getElementById('" + ImageRenderAreaId + "').innerHTML = '<span style=\"margin: 10px; padding: 10px; background: #edff96; border: 1px solid #C00;\">no image is selected</span>';" + Environment.NewLine);
            js.Append("} " + Environment.NewLine);

            js.Append("function " + jsUpdateRenderFunctionName + "() " + Environment.NewLine);
            js.Append("{ " + Environment.NewLine);
            js.Append(" var ImagePath = document.getElementById('" + formName + "ImagePath').value;" + Environment.NewLine);
            js.Append(" if (ImagePath == '') { " + Environment.NewLine);
            js.Append("   document.getElementById('" + ImageRenderAreaId + "').innerHTML = '<span style=\"margin: 10px; padding: 10px; background: #edff96; border: 1px solid #C00;\">no image is selected</span>';" + Environment.NewLine);
            js.Append(" } // if " + Environment.NewLine);
            js.Append(" else { " + Environment.NewLine);
            js.Append("   document.getElementById('" + ImageRenderAreaId + "').innerHTML = '<img src=\"" + CmsContext.ApplicationPath + "_system/tools/showThumb.aspx?file='+ImagePath+'&w=" + thumbWidth + "&h=" + thumbHeight + "&nocache='+((new Date()).getTime())+'\">';" + Environment.NewLine);
            js.Append(" } // else " + Environment.NewLine);
            js.Append(" document.getElementById('" + formName + "OpenEditorLink').href = '" + editUrl + "&SelImagePath='+ImagePath;" + Environment.NewLine);
            js.Append("} " + Environment.NewLine + Environment.NewLine);

            // add javascript to head section
            page.HeadSection.AddJSStatements(js.ToString());
            page.HeadSection.AddJSOnReady(jsUpdateRenderFunctionName + "();");



            writer.WriteLine(html.ToString());
        }