Example #1
0
        public Inject RemoveFolder(string folder)
        {
            if (R.isSessionLost() == true)
            {
                return(lostInject());
            }
            Inject response = new Inject();

            //check security
            if (R.User.Website(R.Page.websiteId).getWebsiteSecurityItem("dashboard/photos", 0) == false)
            {
                return(response);
            }

            //setup response
            response.element = ".winPhotos .folder-list";

            //execute SQL
            SqlClasses.Dashboard sqlDash = new SqlClasses.Dashboard(R);
            sqlDash.DeletePhotoFolder(R.Page.websiteId, folder);

            //finally, scaffold Rennder platform HTML
            response.html = GetFolders();
            response.js   = CompileJs();

            return(response);
        }
Example #2
0
        public Inject AddFolder(string name)
        {
            if (R.isSessionLost() == true)
            {
                return(lostInject());
            }
            Inject response = new Inject();

            //check security
            if (R.User.Website(R.Page.websiteId).getWebsiteSecurityItem("dashboard/photos", 0) == false)
            {
                return(response);
            }

            //setup response
            response.element = ".winPhotos .folder-list";

            //execute SQL
            SqlClasses.Dashboard sqlDash = new SqlClasses.Dashboard(R);
            sqlDash.AddPhotoFolder(R.Page.websiteId, name);
            R.Page.RegisterJS("addfolder", "R.editor.photos.folders.hideAdd();");

            //finally, scaffold Rennder platform HTML
            response.html = GetFolders();
            response.js   = CompileJs();

            return(response);
        }
Example #3
0
File: Pages.cs Project: nhtera/Home
        private string LoadPagesList(int parentId = 0, bool layout = true, int orderBy = -1, string viewType = "", string search = "")
        {
            bool secureEdit     = R.User.Website(R.Page.websiteId).getWebsiteSecurityItem("dashboard/pages", 4);
            bool secureSettings = R.User.Website(R.Page.websiteId).getWebsiteSecurityItem("dashboard/pages", 3);
            bool secureDelete   = R.User.Website(R.Page.websiteId).getWebsiteSecurityItem("dashboard/pages", 2);
            bool secureCreate   = R.User.Website(R.Page.websiteId).getWebsiteSecurityItem("dashboard/pages", 1);

            if (R.User.Website(R.Page.websiteId).getWebsiteSecurityItem("dashboard/pages", 0) == false)
            {
                return("");
            }
            int    start       = 1;
            int    length      = 100;
            string parentTitle = "";
            int    rootId      = 0;
            string rootTitle   = "";

            if (parentId > 0)
            {
                SqlReader reader2 = R.Page.SqlPage.GetParentTitle(parentId, R.Page.websiteId);
                if (reader2.Rows.Count > 0)
                {
                    reader2.Read();
                    parentTitle = R.Util.Str.GetPageTitle(reader2.Get("title"));
                    rootId      = reader2.GetInt("parentid");
                    rootTitle   = reader2.Get("parenttitle");
                }
            }

            //get page list from database
            SqlClasses.Dashboard SqlDash = new SqlClasses.Dashboard(R);
            SqlReader            reader  = SqlDash.GetPageList(R.Page.websiteId, R.Page.ownerId, parentId, start, length, orderBy, search);
            string htm = "";

            if (viewType == "treeview")
            {
                htm = LoadLayoutForTreeView(reader, parentId, parentTitle, secureDelete, secureSettings, secureCreate);
            }
            else if (viewType == "list" | string.IsNullOrEmpty(viewType))
            {
                htm = LoadLayoutForList(reader, layout, parentId, parentTitle, rootId, rootTitle, secureDelete, secureSettings, secureCreate);
            }

            return(htm);
        }
Example #4
0
        private string GetFolders(string loadType = "")
        {
            string htm = "";
            int    i   = 2;
            int    e   = 0;

            SqlClasses.Dashboard sqlDash = new SqlClasses.Dashboard(R);
            SqlReader            reader  = sqlDash.GetPhotoFolders(R.Page.websiteId);

            htm += "<div class=\"folder-column\">";
            htm += "<div class=\"row color1\"><div class=\"column-row item\">[All Photos]</div></div>";
            htm += "<div class=\"row color2\"><div class=\"column-row item\">[Unorganized Photos]</div></div>";
            while (reader.Read() == true)
            {
                i  = (i == 2 ? 1 : 2);
                e += 1;
                if (e > 8)
                {
                    e    = 0;
                    i    = 1;
                    htm += "</div><div class=\"folder-column\">";
                }

                htm += "<div class=\"row color" + i + "\"><div class=\"column-row item\">" + reader.Get("name") +
                       "<div class=\"right hover-only icon-close\" style=\"padding-top:3px;\"><a href=\"javascript:\">" +
                       "<svg viewBox=\"0 0 15 15\" style=\"width:12px;\"><use xlink:href=\"#icon-close\" x=\"0\" y=\"0\" width=\"36\" height=\"36\" /></svg>" +
                       "</a></div></div></div>";
            }
            htm += "</div>";
            if (loadType == "move")
            {
                R.Page.RegisterJS("photos", "R.editor.photos.folders.bindForMove();");
            }
            else
            {
                R.Page.RegisterJS("photos", "R.editor.photos.folders.bind();");
            }

            return(htm);
        }
Example #5
0
        public Inject AddFolder(string name)
        {
            if (R.isSessionLost() == true) { return lostInject(); }
            Inject response = new Inject();

            //check security
            if (R.User.Website(R.Page.websiteId).getWebsiteSecurityItem("dashboard/photos", 0) == false) { return response; }

            //setup response
            response.element = ".winPhotos .folder-list";

            //execute SQL
            SqlClasses.Dashboard sqlDash = new SqlClasses.Dashboard(R);
            sqlDash.AddPhotoFolder(R.Page.websiteId, name);
            R.Page.RegisterJS("addfolder", "R.editor.photos.folders.hideAdd();");

            //finally, scaffold Rennder platform HTML
            response.html = GetFolders();
            response.js = CompileJs();

            return response;
        }
Example #6
0
        private string GetPhotos(int start = 1, int length = 100, string folder = "", string search = "", int orderby = 1, List <string> fileTypes = null)
        {
            string        htm = "";
            List <string> lstTypes = new List <string>();
            int           len = 0; int x = 0;
            bool          allowed   = true;
            string        folderurl = "";

            if (fileTypes != null)
            {
                lstTypes = fileTypes;
            }

            SqlClasses.Dashboard sqlDash = new SqlClasses.Dashboard(R);
            SqlReader            reader  = sqlDash.GetPhotos(R.Page.websiteId, start, length, folder, orderby);

            if (reader.Rows.Count > 0)
            {
                while (reader.Read() == true)
                {
                    allowed = true;
                    if (folder != "!")
                    {
                        if (reader.Get("foldername") != folder && folder != "")
                        {
                            allowed = false;
                        }
                    }


                    if (allowed == true)
                    {
                        if (x >= start - 1)
                        {
                            if (x >= start + length - 1)
                            {
                                break;
                            }
                            len      += 1;
                            folderurl = reader.Get("foldername");
                            if (folderurl != "")
                            {
                                folderurl += "/";
                            }
                            htm += "<div class=\"photo\"><div class=\"check hover-only\"><input type=\"checkbox\" id=\"chkPhoto" + x + "\" filename=\"" + reader.Get("filename") + "\" /></div><div class=\"tbl-cell\"><div class=\"img\"><img src=\"/content/websites/" + R.Page.websiteId + "/photos/" + folderurl + "tiny" + reader.Get("filename") + "\"/></div></div></div>" + "\n";
                        }
                        x += 1;
                    }
                }
            }
            else
            {
                htm = "<div class=\"no-photos font-faded\">No photos have been uploaded to this folder yet. Drag & Drop photos from your hard drive to this web page to upload them.</div>";
            }

            string js = "R.editor.photos.bind(); R.editor.photos.info = {start:" + (reader.Rows.Count == 0 ? 0 : start) + ", total:" + reader.Rows.Count + ", len:" + len + "};" + "R.editor.photos.listInfo(" + reader.Rows.Count + ");R.editor.photos.folders.hide();R.editor.photos.folders.change('" + folder + "');";

            R.Page.RegisterJS("photos", js);

            return(htm);
        }
Example #7
0
        public WebRequest Upload()
        {
            WebRequest wr = new WebRequest();

            if (Files.Count > 0)
            {
                string folder = R.Request.Query["folder"];
                if (folder == null)
                {
                    folder = "";
                }
                if (folder != "")
                {
                    folder += "/";
                }
                string path = "/wwwroot/content/websites/" + R.Page.websiteId + "/photos/" + folder;
                folder = folder.Replace("/", "");
                string               ext = ""; string name = ""; string filename = ""; string filenew = ""; bool generated = false;
                Utility.Images       image   = new Utility.Images(R);
                SqlClasses.Dashboard sqlDash = new SqlClasses.Dashboard(R);

                foreach (IFormFile file in Files)
                {
                    filename = R.Util.Str.replaceAll(ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"'), "",
                                                     new string[] { "-", "_", "!", "@", "#", "$", "%", "&", "*", "+", "=", ",", "?" });

                    name      = R.Util.Str.CreateID(7).ToLower();
                    ext       = R.Util.Str.getFileExtension(filename).ToLower();
                    generated = false;

                    switch (ext)
                    {
                    case "jpg":
                    case "jpeg":
                    case "png":
                    case "gif":
                        if (!Directory.Exists(R.Server.MapPath(path)))
                        {
                            //create directory
                            Directory.CreateDirectory(R.Server.MapPath(path));
                        }

                        //save original photo to disk
                        filenew = name + "." + ext;
                        file.SaveAs(R.Server.MapPath(path + filenew));

                        if (ext != "gif")
                        {
                            // create 7 image sizes: [original (max 4096)], xl (1920), lg (800), med (400), sm (200), tiny (100), icon (50)
                            try
                            {
                                image.GeneratePhotos(path, filenew);
                                generated = true;
                            }
                            catch (Exception ex)
                            {
                                R.Page.RegisterJS("err", "alert('Error: " + ex.Message.Replace("'", "\\'") + ");");
                            }
                        }
                        else
                        {
                            generated = true;
                        }

                        if (generated == true)
                        {
                            //get photo dimensions
                            Utility.structImage photo = image.Load(path, filenew);

                            //save photo to database
                            sqlDash.AddPhoto(R.Page.websiteId, folder, filenew, filename, photo.width, photo.height);
                        }
                        break;
                    }
                }
            }
            return(wr);
        }
Example #8
0
        public Inject MoveTo(string folder, string files)
        {
            if (R.isSessionLost() == true)
            {
                return(lostInject());
            }
            Inject response = new Inject();

            //check security
            if (R.User.Website(R.Page.websiteId).getWebsiteSecurityItem("dashboard/photos", 0) == false)
            {
                return(response);
            }

            //setup response
            response.element = ".winPhotos .photo-list";

            //get list of files from database
            string[]             filelist = files.Split(',');
            SqlClasses.Dashboard sqlDash  = new SqlClasses.Dashboard(R);
            SqlReader            reader   = sqlDash.GetPhotos(R.Page.websiteId, filelist);

            //move files on disk into target folder
            if (reader.Rows.Count > 0)
            {
                string   oldfolder = ""; string newfolder = folder; string newname = "";
                string[] sizes = new string[] { "", "xl", "lg", "med", "sm", "tiny", "icon" };
                string   path  = "/wwwroot/content/websites/" + R.Page.websiteId + "/photos/";
                if (newfolder != "")
                {
                    newfolder += "/";
                }
                if (Directory.Exists(R.Server.MapPath(path + newfolder)) == false)
                {
                    //create target folder if it doesn't exist
                    Directory.CreateDirectory(R.Server.MapPath(path + newfolder));
                }
                while (reader.Read() == true)
                {
                    //move each file into the target folder
                    oldfolder = reader.Get("foldername");
                    newname   = reader.Get("filename");
                    if (oldfolder != "")
                    {
                        oldfolder += "/";
                    }
                    for (var x = 0; x < sizes.Length; x++)
                    {
                        if (R.Server.MapPath("/wwwroot/content/websites/" + R.Page.websiteId + "/photos/" + oldfolder + sizes[x] + newname) !=
                            R.Server.MapPath("/wwwroot/content/websites/" + R.Page.websiteId + "/photos/" + newfolder + sizes[x] + newname))
                        {
                            if (File.Exists(R.Server.MapPath("/wwwroot/content/websites/" + R.Page.websiteId + "/photos/" + oldfolder + sizes[x] + newname)) == true)
                            {
                                File.Move(R.Server.MapPath("/wwwroot/content/websites/" + R.Page.websiteId + "/photos/" + oldfolder + sizes[x] + newname),
                                          R.Server.MapPath("/wwwroot/content/websites/" + R.Page.websiteId + "/photos/" + newfolder + sizes[x] + newname));
                            }
                        }
                    }
                }
            }

            //execute SQL
            sqlDash.MovePhotos(R.Page.websiteId, filelist, folder);

            //finally, get a new list of photos
            response.html = GetPhotos(1, 100, folder);
            response.js   = CompileJs();

            return(response);
        }
Example #9
0
File: Pages.cs Project: nhtera/Home
        private string LoadPagesList(int parentId = 0, bool layout = true, int orderBy = -1, string viewType = "", string search = "")
        {
            bool secureEdit = R.User.Website(R.Page.websiteId).getWebsiteSecurityItem("dashboard/pages", 4);
            bool secureSettings = R.User.Website(R.Page.websiteId).getWebsiteSecurityItem("dashboard/pages", 3);
            bool secureDelete = R.User.Website(R.Page.websiteId).getWebsiteSecurityItem("dashboard/pages", 2);
            bool secureCreate = R.User.Website(R.Page.websiteId).getWebsiteSecurityItem("dashboard/pages", 1);
            if (R.User.Website(R.Page.websiteId).getWebsiteSecurityItem("dashboard/pages", 0) == false) { return ""; }
            int start = 1;
            int length = 100;
            string parentTitle = "";
            int rootId = 0;
            string rootTitle = "";
            if (parentId > 0)
            {
                SqlReader reader2 = R.Page.SqlPage.GetParentTitle(parentId, R.Page.websiteId);
                if (reader2.Rows.Count > 0)
                {
                    reader2.Read();
                    parentTitle = R.Util.Str.GetPageTitle(reader2.Get("title"));
                    rootId = reader2.GetInt("parentid");
                    rootTitle = reader2.Get("parenttitle");
                }
            }

            //get page list from database
            SqlClasses.Dashboard SqlDash = new SqlClasses.Dashboard(R);
            SqlReader reader = SqlDash.GetPageList(R.Page.websiteId, R.Page.ownerId, parentId, start, length, orderBy, search);
            string htm = "";
            if (viewType == "treeview")
            {
                htm = LoadLayoutForTreeView(reader, parentId, parentTitle, secureDelete, secureSettings, secureCreate);

            }
            else if (viewType == "list" | string.IsNullOrEmpty(viewType))
            {
                htm = LoadLayoutForList(reader, layout, parentId, parentTitle, rootId, rootTitle, secureDelete, secureSettings, secureCreate);

            }

            return htm;
        }
Example #10
0
        public Inject MoveTo(string folder, string files)
        {
            if (R.isSessionLost() == true) { return lostInject(); }
            Inject response = new Inject();

            //check security
            if (R.User.Website(R.Page.websiteId).getWebsiteSecurityItem("dashboard/photos", 0) == false) { return response; }

            //setup response
            response.element = ".winPhotos .photo-list";

            //get list of files from database
            string[] filelist = files.Split(',');
            SqlClasses.Dashboard sqlDash = new SqlClasses.Dashboard(R);
            SqlReader reader = sqlDash.GetPhotos(R.Page.websiteId, filelist);

            //move files on disk into target folder
            if(reader.Rows.Count > 0)
            {
                string oldfolder = ""; string newfolder = folder; string newname = "";
                string[] sizes = new string[] { "", "xl", "lg", "med", "sm", "tiny", "icon" };
                string path = "/wwwroot/content/websites/" + R.Page.websiteId + "/photos/";
                if (newfolder != "") { newfolder += "/"; }
                if(Directory.Exists(R.Server.MapPath(path + newfolder)) == false)
                {
                    //create target folder if it doesn't exist
                    Directory.CreateDirectory(R.Server.MapPath(path + newfolder));
                }
                while (reader.Read() == true)
                {
                    //move each file into the target folder
                    oldfolder = reader.Get("foldername");
                    newname = reader.Get("filename");
                    if(oldfolder != "") { oldfolder += "/"; }
                    for(var x = 0; x < sizes.Length; x++)
                    {
                        if(R.Server.MapPath("/wwwroot/content/websites/" + R.Page.websiteId + "/photos/" + oldfolder + sizes[x] + newname) !=
                              R.Server.MapPath("/wwwroot/content/websites/" + R.Page.websiteId + "/photos/" + newfolder + sizes[x] + newname))
                        {
                            if (File.Exists(R.Server.MapPath("/wwwroot/content/websites/" + R.Page.websiteId + "/photos/" + oldfolder + sizes[x] + newname)) == true)
                            {
                                File.Move(R.Server.MapPath("/wwwroot/content/websites/" + R.Page.websiteId + "/photos/" + oldfolder + sizes[x] + newname),
                                  R.Server.MapPath("/wwwroot/content/websites/" + R.Page.websiteId + "/photos/" + newfolder + sizes[x] + newname));
                            }
                        }
                    }
                }
            }

            //execute SQL
            sqlDash.MovePhotos(R.Page.websiteId, filelist, folder);

            //finally, get a new list of photos
            response.html = GetPhotos(1, 100, folder);
            response.js = CompileJs();

            return response;
        }
Example #11
0
        private string GetPhotos(int start = 1, int length = 100, string folder = "", string search = "", int orderby = 1, List<string> fileTypes = null)
        {
            string htm = "";
            List<string> lstTypes = new List<string>();
            int len = 0; int x = 0;
            bool allowed = true;
            string folderurl = "";
            if (fileTypes != null)
                lstTypes = fileTypes;

            SqlClasses.Dashboard sqlDash = new SqlClasses.Dashboard(R);
            SqlReader reader = sqlDash.GetPhotos(R.Page.websiteId, start, length, folder, orderby);
            if (reader.Rows.Count > 0)
            {
                while (reader.Read() == true)
                {
                    allowed = true;
                    if (folder != "!")
                    {
                        if (reader.Get("foldername") != folder && folder != "")
                            allowed = false;
                    }

                    if (allowed == true)
                    {
                        if (x >= start - 1)
                        {
                            if (x >= start + length - 1) { break; }
                            len += 1;
                            folderurl = reader.Get("foldername");
                            if (folderurl != "") { folderurl += "/"; }
                            htm += "<div class=\"photo\"><div class=\"check hover-only\"><input type=\"checkbox\" id=\"chkPhoto" + x + "\" filename=\"" + reader.Get("filename") + "\" /></div><div class=\"tbl-cell\"><div class=\"img\"><img src=\"/content/websites/" + R.Page.websiteId + "/photos/" + folderurl + "tiny" + reader.Get("filename") + "\"/></div></div></div>" + "\n";
                        }
                        x += 1;
                    }
                }

            }
            else {
                htm = "<div class=\"no-photos font-faded\">No photos have been uploaded to this folder yet. Drag & Drop photos from your hard drive to this web page to upload them.</div>";
            }

            string js = "R.editor.photos.bind(); R.editor.photos.info = {start:" + (reader.Rows.Count == 0 ? 0 : start) + ", total:" + reader.Rows.Count + ", len:" + len + "};" + "R.editor.photos.listInfo(" + reader.Rows.Count + ");R.editor.photos.folders.hide();R.editor.photos.folders.change('" + folder + "');";
            R.Page.RegisterJS("photos", js);

            return htm;
        }
Example #12
0
        private string GetFolders(string loadType = "")
        {
            string htm = "";
            int i = 2;
            int e = 0;
            SqlClasses.Dashboard sqlDash = new SqlClasses.Dashboard(R);
            SqlReader reader = sqlDash.GetPhotoFolders(R.Page.websiteId);
            htm += "<div class=\"folder-column\">";
            htm += "<div class=\"row color1\"><div class=\"column-row item\">[All Photos]</div></div>";
            htm += "<div class=\"row color2\"><div class=\"column-row item\">[Unorganized Photos]</div></div>";
            while (reader.Read() == true)
            {
                i = (i == 2 ? 1 : 2);
                e += 1;
                if (e > 8)
                {
                    e = 0;
                    i = 1;
                    htm += "</div><div class=\"folder-column\">";
                }

                htm += "<div class=\"row color" + i + "\"><div class=\"column-row item\">" + reader.Get("name") +
                    "<div class=\"right hover-only icon-close\" style=\"padding-top:3px;\"><a href=\"javascript:\">" +
                    "<svg viewBox=\"0 0 15 15\" style=\"width:12px;\"><use xlink:href=\"#icon-close\" x=\"0\" y=\"0\" width=\"36\" height=\"36\" /></svg>" +
                    "</a></div></div></div>";
            }
            htm += "</div>";
            if (loadType == "move")
            {
                R.Page.RegisterJS("photos", "R.editor.photos.folders.bindForMove();");
            }
            else
            {
                R.Page.RegisterJS("photos", "R.editor.photos.folders.bind();");
            }

            return htm;
        }
Example #13
0
        public WebRequest Upload()
        {
            WebRequest wr = new WebRequest();
            if(Files.Count > 0)
            {
                string folder = R.Request.Query["folder"];
                if (folder == null) { folder = ""; }
                if(folder != "") { folder += "/"; }
                string path = "/wwwroot/content/websites/" + R.Page.websiteId + "/photos/" + folder;
                folder = folder.Replace("/", "");
                string ext = ""; string name = ""; string filename = ""; string filenew = ""; bool generated = false;
                Utility.Images image = new Utility.Images(R);
                SqlClasses.Dashboard sqlDash = new SqlClasses.Dashboard(R);

                foreach (IFormFile file in Files)
                {
                    filename = R.Util.Str.replaceAll(ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"'), "",
                        new string[] { "-", "_", "!", "@", "#", "$", "%", "&", "*", "+", "=", ",", "?" });

                    name = R.Util.Str.CreateID(7).ToLower();
                    ext = R.Util.Str.getFileExtension(filename).ToLower();
                    generated = false;

                    switch (ext)
                    {
                        case "jpg": case "jpeg": case "png": case "gif":
                            if (!Directory.Exists(R.Server.MapPath(path))) {
                                //create directory
                                Directory.CreateDirectory(R.Server.MapPath(path));
                            }

                            //save original photo to disk
                            filenew = name + "." + ext;
                            file.SaveAs(R.Server.MapPath(path + filenew));

                            if(ext != "gif") {
                                // create 7 image sizes: [original (max 4096)], xl (1920), lg (800), med (400), sm (200), tiny (100), icon (50)
                                try
                                {
                                    image.GeneratePhotos(path, filenew);
                                    generated = true;
                                }
                                catch (Exception ex)
                                {
                                    R.Page.RegisterJS("err", "alert('Error: " + ex.Message.Replace("'", "\\'") + ");");
                                }

                            }else { generated = true; }

                            if(generated == true)
                            {
                                //get photo dimensions
                                Utility.structImage photo = image.Load(path, filenew);

                                //save photo to database
                                sqlDash.AddPhoto(R.Page.websiteId, folder, filenew, filename, photo.width, photo.height);
                            }
                            break;
                    }

                }
            }
            return wr;
        }
Example #14
0
        public Inject RemoveFolder(string folder)
        {
            if (R.isSessionLost() == true) { return lostInject(); }
            Inject response = new Inject();

            //check security
            if (R.User.Website(R.Page.websiteId).getWebsiteSecurityItem("dashboard/photos", 0) == false) { return response; }

            //setup response
            response.element = ".winPhotos .folder-list";

            //execute SQL
            SqlClasses.Dashboard sqlDash = new SqlClasses.Dashboard(R);
            sqlDash.DeletePhotoFolder(R.Page.websiteId, folder);

            //finally, scaffold Rennder platform HTML
            response.html = GetFolders();
            response.js = CompileJs();

            return response;
        }