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); }
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()); }