示例#1
0
        public string RenderAdminField(IEditFieldData data)
        {
            long          id = ((ImageEditFieldData)data).SprocketFileID;
            StringBuilder sb = new StringBuilder();

            if (id > 0)
            {
                sb.AppendFormat(
                    "<div class=\"imageeditfield-thumb\"><img src=\"{0}admin/pages/imgthumb/{1}/\" /></div>" +
                    "<input type=\"hidden\" name=\"existingimage_{2}\" value=\"{1}\" />",
                    WebUtility.BasePath, id, fieldName
                    );
            }
            sb.AppendFormat("<div class=\"imageeditfield-browse\"><input type=\"file\" size=\"60\" name=\"{0}\" id=\"imageeditfield-file-{0}\" class=\"file\" /></div>", fieldName);
            if (id > 0)
            {
                sb.AppendFormat(
                    "<div class=\"imageeditfield-delete\"><input type=\"checkbox\" name=\"deleteimage_{0}\" value=\"yes\" " +
                    "onclick=\"$('imageeditfield-file-{0}').disabled = this.checked;\" " +
                    "id=\"imageeditfield-delete-{0}\" class=\"checkbox\" /><label for=\"imageeditfield-delete-{0}\">" +
                    "Delete this image (no image will be selected for this field)</label></div><div style=\"clear:both;overflow:hidden;\"></div>",
                    fieldName
                    );
            }
            return(sb.ToString());
        }
示例#2
0
            public Result SaveData(long dataID, IEditFieldData efdata)
            {
                ImageEditFieldData data = (ImageEditFieldData)efdata;

                try
                {
                    using (TransactionScope scope = new TransactionScope())
                    {
                        DatabaseManager.DatabaseEngine.GetConnection();
                        if (data.SprocketFile != null)
                        {
                            data.SprocketFileID = data.SprocketFile.SprocketFileID = DatabaseManager.DatabaseEngine.GetUniqueID();
                        }
                        Result r = ContentManager.Instance.DataProvider.StoreEditField_Image(dataID, data.SprocketFileID);
                        if (r.Succeeded && data.SprocketFile != null)
                        {
                            r = FileManager.FileManager.DataLayer.Store(data.SprocketFile);
                        }
                        if (r.Succeeded)
                        {
                            scope.Complete();
                        }
                        return(r);
                    }
                }
                catch (Exception e)
                {
                    return(new Result(e.Message));
                }
                finally
                {
                    DatabaseManager.DatabaseEngine.ReleaseConnection();
                }
            }
 public Result ReadAdminField(out IEditFieldData data)
 {
     TextBoxData box = new TextBoxData();
     string text = HttpContext.Current.Request.Form[fieldName];
     box.Text = text ?? "";
     data = box;
     return new Result();
 }
示例#4
0
 public bool IsContentDifferent(IEditFieldData a, IEditFieldData b)
 {
     ImageEditFieldData d1 = (ImageEditFieldData)a;
     ImageEditFieldData d2 = (ImageEditFieldData)b;
     return d1.SprocketFileID != d2.SprocketFileID
         || (d1.SprocketFileID == 0 && d2.SprocketFile != null)
         || (d2.SprocketFileID == 0 && d1.SprocketFile != null);
 }
示例#5
0
        public bool IsContentDifferent(IEditFieldData a, IEditFieldData b)
        {
            ImageEditFieldData d1 = (ImageEditFieldData)a;
            ImageEditFieldData d2 = (ImageEditFieldData)b;

            return(d1.SprocketFileID != d2.SprocketFileID ||
                   (d1.SprocketFileID == 0 && d2.SprocketFile != null) ||
                   (d2.SprocketFileID == 0 && d1.SprocketFile != null));
        }
示例#6
0
        public Result ReadAdminField(out IEditFieldData data)
        {
            TextBoxEditField.TextBoxData box = new TextBoxEditField.TextBoxData();
            string text = HttpContext.Current.Request.Form[fieldName];

            box.Text = text ?? "";
            data     = box;
            return(new Result());
        }
示例#7
0
        public Result ReadAdminField(out IEditFieldData efdata)
        {
            ImageEditFieldData data = new ImageEditFieldData();

            SprocketFile file = null;

            if (HttpContext.Current.Request.Files[fieldName] != null)
            {
                if (HttpContext.Current.Request.Files[fieldName].ContentLength > 0)
                {
                    file = new SprocketFile(SecurityProvider.ClientSpaceID, HttpContext.Current.Request.Files[fieldName], "", "");
                    Image  img;
                    Result r = file.ValidateImageData(out img);
                    if (!r.Succeeded)
                    {
                        efdata = new ImageEditFieldData();
                        return(new Result("The image selected could not be loaded. The system reported back the following error: " + r.Message));
                    }
                    if (maxwidth > 0 || maxheight > 0)
                    {
                        SizingOptions options = new SizingOptions(maxwidth, maxheight, SizingOptions.Display.Constrain, 0);
                        options.Image = img;
                        MemoryStream stream = new MemoryStream();
                        FileManager.FileManager.Instance.ResizeImage(options, stream);
                        file.FileData = stream.ToArray();
                    }
                }
            }

            bool deleted = HttpContext.Current.Request.Form["deleteimage_" + fieldName] != null;
            long existing;

            if (!long.TryParse(HttpContext.Current.Request.Form["existingimage_" + fieldName], out existing))
            {
                existing = 0;
            }

            if (deleted)
            {
                data.SprocketFileID = 0;
            }
            else if (file != null)
            {
                data.SprocketFile = file;
            }
            else
            {
                data.SprocketFileID = existing;
            }
            efdata = data;

            return(new Result());
        }
示例#8
0
        public Result ReadAdminField(out IEditFieldData efdata)
        {
            ImageEditFieldData data = new ImageEditFieldData();

            SprocketFile file = null;
            if (HttpContext.Current.Request.Files[fieldName] != null)
                if (HttpContext.Current.Request.Files[fieldName].ContentLength > 0)
                {
                    file = new SprocketFile(SecurityProvider.ClientSpaceID, HttpContext.Current.Request.Files[fieldName], "", "");
                    Image img;
                    Result r = file.ValidateImageData(out img);
                    if (!r.Succeeded)
                    {
                        efdata = new ImageEditFieldData();
                        return new Result("The image selected could not be loaded. The system reported back the following error: " + r.Message);
                    }
                    if (maxwidth > 0 || maxheight > 0)
                    {
                        SizingOptions options = new SizingOptions(maxwidth, maxheight, SizingOptions.Display.Constrain, 0);
                        options.Image = img;
                        MemoryStream stream = new MemoryStream();
                        FileManager.FileManager.Instance.ResizeImage(options, stream);
                        file.FileData = stream.ToArray();
                    }
                }

            bool deleted = HttpContext.Current.Request.Form["deleteimage_" + fieldName] != null;
            long existing;
            if (!long.TryParse(HttpContext.Current.Request.Form["existingimage_" + fieldName], out existing))
                existing = 0;

            if (deleted)
                data.SprocketFileID = 0;
            else if (file != null)
                data.SprocketFile = file;
            else
                data.SprocketFileID = existing;
            efdata = data;

            return new Result();
        }
示例#9
0
 public string RenderAdminField(IEditFieldData data)
 {
     return(string.Format("<textarea name=\"{0}\" class=\"{1}\" style=\"{2}\" cols=\"{4}\" rows=\"{5}\">{3}</textarea>",
                          fieldName, classname, style, HttpUtility.HtmlEncode(((TextBoxEditField.TextBoxData)data).Text), size, lines));
 }
示例#10
0
 public object GetOutputValue(IEditFieldData data)
 {
     return(data == null ? "" : data.ToString());
 }
示例#11
0
 public void InitialiseData(IEditFieldData data)
 {
     ((TextBoxEditField.TextBoxData)data).Text = String.Empty;
 }
示例#12
0
 public Result SaveData(long dataID, IEditFieldData data)
 {
     return(ContentManager.Instance.DataProvider.StoreEditField_TextBox(dataID, ((TextBoxEditField.TextBoxData)data).Text));
 }
示例#13
0
 public void InitialiseData(IEditFieldData data)
 {
     ((TextBoxData)data).Text = String.Empty;
 }
示例#14
0
 public string RenderAdminField(IEditFieldData data)
 {
     long id = ((ImageEditFieldData)data).SprocketFileID;
     StringBuilder sb = new StringBuilder();
     if (id > 0)
     {
         sb.AppendFormat(
             "<div class=\"imageeditfield-thumb\"><img src=\"{0}admin/pages/imgthumb/{1}/\" /></div>" +
             "<input type=\"hidden\" name=\"existingimage_{2}\" value=\"{1}\" />",
             WebUtility.BasePath, id, fieldName
         );
     }
     sb.AppendFormat("<div class=\"imageeditfield-browse\"><input type=\"file\" size=\"60\" name=\"{0}\" id=\"imageeditfield-file-{0}\" class=\"file\" /></div>", fieldName);
     if (id > 0)
     {
         sb.AppendFormat(
             "<div class=\"imageeditfield-delete\"><input type=\"checkbox\" name=\"deleteimage_{0}\" value=\"yes\" " +
             "onclick=\"$('imageeditfield-file-{0}').disabled = this.checked;\" " +
             "id=\"imageeditfield-delete-{0}\" class=\"checkbox\" /><label for=\"imageeditfield-delete-{0}\">" +
             "Delete this image (no image will be selected for this field)</label></div><div style=\"clear:both;overflow:hidden;\"></div>",
             fieldName
         );
     }
     return sb.ToString();
 }
示例#15
0
 public Result SaveData(long dataID, IEditFieldData efdata)
 {
     ImageEditFieldData data = (ImageEditFieldData)efdata;
     try
     {
         using (TransactionScope scope = new TransactionScope())
         {
             DatabaseManager.DatabaseEngine.GetConnection();
             if (data.SprocketFile != null)
                 data.SprocketFileID = data.SprocketFile.SprocketFileID = DatabaseManager.DatabaseEngine.GetUniqueID();
             Result r = ContentManager.Instance.DataProvider.StoreEditField_Image(dataID, data.SprocketFileID);
             if (r.Succeeded && data.SprocketFile != null)
                 r = FileManager.FileManager.DataLayer.Store(data.SprocketFile);
             if (r.Succeeded)
                 scope.Complete();
             return r;
         }
     }
     catch (Exception e)
     {
         return new Result(e.Message);
     }
     finally
     {
         DatabaseManager.DatabaseEngine.ReleaseConnection();
     }
 }
示例#16
0
 public object GetOutputValue(IEditFieldData data)
 {
     return ((ImageEditFieldData)data).SprocketFileID;
 }
示例#17
0
 public object GetOutputValue(IEditFieldData data)
 {
     return(((ImageEditFieldData)data).SprocketFileID);
 }
示例#18
0
 public void InitialiseData(IEditFieldData data)
 {
     ((ImageEditFieldData)data).SprocketFileID = 0;
 }
 public string RenderAdminField(IEditFieldData data)
 {
     return string.Format("<textarea name=\"{0}\" class=\"{1}\" style=\"{2}\" cols=\"{4}\" rows=\"{5}\">{3}</textarea>",
         fieldName, classname, style, HttpUtility.HtmlEncode(((TextBoxEditField.TextBoxData)data).Text), size, lines);
 }
示例#20
0
 public Result SaveData(long dataID, IEditFieldData data)
 {
     return ContentManager.Instance.DataProvider.StoreEditField_TextBox(dataID, ((TextBoxData)data).Text);
 }
示例#21
0
        internal void BuildAdminSectionList(Dictionary <string, List <EditFieldInfo> > editFieldsBySectionName)
        {
            // sort nodesByFieldName in ascending order, ready to be matched to the template admin fields
            foreach (List <EditFieldInfo> list in editFieldsBySectionName.Values)
            {
                list.Sort();
            }

            adminSectionList = new List <PreparedPageAdminSection>();
            Template t = ContentManager.Templates[TemplateName];

            if (t == null)
            {
                return;
            }

            // combine t.GetPageAdminSections() with nodesByFieldName
            PreparedPageAdminSection pas = new PreparedPageAdminSection();

            foreach (PageAdminSectionDefinition def in t.GetPageAdminSections())
            {
                PreparedPageAdminSection section = new PreparedPageAdminSection();
                List <EditFieldInfo>     list;
                if (!editFieldsBySectionName.TryGetValue(def.SectionName, out list))
                {
                    list = new List <EditFieldInfo>();
                }

                section.SectionDefinition = def;
                section.FieldList         = new List <EditFieldInfo>();

                // now that we've preliminarily prepared the section, fill its field list with what will appear in the admin ui
                foreach (IEditFieldHandler handler in def.EditFieldHandlers)
                {
                    int index = list.FindIndex(delegate(EditFieldInfo obj)
                    {
                        return(handler.FieldName == obj.FieldName && handler.TypeName == obj.Handler.TypeName);
                    });
                    EditFieldInfo info;
                    if (index == -1)                     // create a new field to handle it
                    {
                        IEditFieldHandlerDatabaseInterface dbi = ContentManager.GetEditFieldObjectCreator(handler.TypeName).CreateDatabaseInterface();
                        info = new EditFieldInfo(0, def.SectionName, handler.FieldName, section.FieldList.Count, handler, dbi);
                        IEditFieldObjectCreator creator = ContentManager.GetEditFieldObjectCreator(handler.TypeName);
                        IEditFieldData          data    = creator.CreateDataObject();
                        handler.InitialiseData(data);
                        info.Data = data;
                    }
                    else
                    {
                        info         = list[index];
                        info.Handler = handler;                         // set it to the template's handler as the one created during database retrieval was for type name purposes only
                        list.RemoveAt(index);
                        info.Rank = section.FieldList.Count;
                    }
                    section.FieldList.Add(info);
                }
                section.UpdateFieldsByName();
                adminSectionList.Add(section);
                adminSectionsByName[section.SectionDefinition.SectionName] = section;
            }
        }
示例#22
0
 public object GetOutputValue(IEditFieldData data)
 {
     return data == null ? "" : data.ToString();
 }
示例#23
0
 public bool IsContentDifferent(IEditFieldData a, IEditFieldData b)
 {
     return(!a.Equals(b));
 }
示例#24
0
 public bool IsContentDifferent(IEditFieldData a, IEditFieldData b)
 {
     return !a.Equals(b);
 }
示例#25
0
 public void InitialiseData(IEditFieldData data)
 {
     ((ImageEditFieldData)data).SprocketFileID = 0;
 }
示例#26
0
 public string RenderAdminField(IEditFieldData data)
 {
     return string.Format("<input type=\"text\" name=\"{0}\" class=\"{1}\" style=\"{2}\" value=\"{3}\" size=\"{4}\" maxlength=\"{5}\" />",
         fieldName, classname, style, HttpUtility.HtmlEncode(((TextBoxData)data).Text), size, maxLength);
 }
示例#27
0
 public string RenderAdminField(IEditFieldData data)
 {
     return(string.Format("<input type=\"text\" name=\"{0}\" class=\"{1}\" style=\"{2}\" value=\"{3}\" size=\"{4}\" maxlength=\"{5}\" />",
                          fieldName, classname, style, HttpUtility.HtmlEncode(((TextBoxData)data).Text), size, maxLength));
 }