Example #1
0
        protected override string GetPageHtml(HttpProcessor p, Session s)
        {
            ItemTable <PTZProfile> tbl = new ItemTable <PTZProfile>("PTZ Profiles", "ptzprofile", "name", PTZProfile.GetPtzProfiles(), PTZProfile.lockObj, ItemTableMode.Add, new ItemTableColumnDefinition <PTZProfile>[]
            {
                new ItemTableColumnDefinition <PTZProfile>("Name", c => { return("<a href=\"javascript:EditItem('" + HttpUtility.JavaScriptStringEncode(c.spec.name) + "')\">" + HttpUtility.HtmlEncode(c.spec.name) + "</a>"); })
            });

            return(tbl.GetSectionHtml());
        }
Example #2
0
        protected override string GetPageHtml(SimpleHttp.HttpProcessor p, Session s)
        {
            ItemTable <Configuration.User> tbl = new ItemTable <Configuration.User>("Users", "user", "name", MJpegWrapper.cfg.users, MJpegWrapper.cfg, ItemTableMode.Add, new ItemTableColumnDefinition <Configuration.User>[]
            {
                new ItemTableColumnDefinition <Configuration.User>("Name", u => { return("<a href=\"javascript:EditItem('" + u.name + "')\">" + HttpUtility.HtmlEncode(u.name) + "</a>"); }),
                new ItemTableColumnDefinition <Configuration.User>("Permission", u => { return(u.permission.ToString()); }),
                new ItemTableColumnDefinition <Configuration.User>("Session Length (Minutes)", u => { return(u.sessionLengthMinutes.ToString()); })
            });

            return(tbl.GetSectionHtml());
        }
Example #3
0
        protected override string GetPageHtml(SimpleHttp.HttpProcessor p, Session s)
        {
            SortedList <string, int> wwwFileSortedList = new SortedList <string, int>();

            // Add configured files to list
            lock (MJpegWrapper.cfg)
            {
                foreach (var item in MJpegWrapper.cfg.GetWwwFilesList())
                {
                    wwwFileSortedList.Add(item.Key, item.Value);
                }
            }
            // Add filesystem files to list
            HashSet <string> existingFiles = new HashSet <string>();
            DirectoryInfo    diWWW         = new DirectoryInfo(Globals.WWWDirectoryBase);
            string           directoryBase = Globals.WWWDirectoryBase.ToLower().Replace('\\', '/');

            foreach (FileInfo fi in diWWW.GetFiles("*", SearchOption.AllDirectories))
            {
                string fileName = fi.FullName.ToLower().Replace('\\', '/');
                if (!fileName.StartsWith(directoryBase))
                {
                    continue;
                }
                fileName = fileName.Substring(directoryBase.Length);
                existingFiles.Add(fileName);
                if (!wwwFileSortedList.ContainsKey(fileName))
                {
                    wwwFileSortedList.Add(fileName, 100);
                }
            }
            // Create list of WwwFile so we can easily list them in a table.
            List <WwwFile>       wwwFileList       = new List <WwwFile>();
            List <SimpleWwwFile> simpleWwwFileList = new List <SimpleWwwFile>();

            foreach (var item in wwwFileSortedList)
            {
                wwwFileList.Add(new WwwFile(item.Key, item.Value, existingFiles.Contains(item.Key)));
                simpleWwwFileList.Add(new SimpleWwwFile(item.Key, item.Value));
            }

            // Save the current files list
            MJpegWrapper.cfg.SetWwwFilesList(simpleWwwFileList);
            MJpegWrapper.cfg.Save(Globals.ConfigFilePath);

            ItemTable <WwwFile> tbl = new ItemTable <WwwFile>("Web Server Files", "wwwfile", "fileName", wwwFileList, wwwFileList, ItemTableMode.Save, new ItemTableColumnDefinition <WwwFile>[]
            {
                new ItemTableColumnDefinition <WwwFile>("File", c => { return((!c.verifiedExisting ? "<span style=\"color:Red\" title=\"Files in red no longer exist, but they are configured with a stored permission\" >" : "") + HttpUtility.HtmlEncode(c.fileName) + (!c.verifiedExisting ? "</span>" : "")); }),
                new ItemTableColumnDefinition <WwwFile>("Permission Required", c => { return("<input saveitemfield=\"permission\" saveitemkey=\"" + HttpUtility.JavaScriptStringEncode(c.fileName) + "\" type=\"number\" min=\"0\" max=\"100\" value=\"" + (c.permission > 100 ? 100 : (c.permission < 0 ? 0 : c.permission)) + "\" />"); })
            });

            return(tbl.GetSectionHtml() + "<div>* Note: Only files with a red name can be deleted from this list.  Files have a red name when they no longer exist in the www directory.</div>");
        }
Example #4
0
        protected override string GetPageHtml(HttpProcessor p, Session s)
        {
            ItemTable <CameraSpec> tbl = new ItemTable <CameraSpec>("Cameras", "camera", "id", MJpegWrapper.cfg.cameras, MJpegWrapper.cfg, ItemTableMode.Add, new ItemTableColumnDefinition <CameraSpec>[]
            {
                new ItemTableColumnDefinition <CameraSpec>(" ", c => { return("<a href=\"../image/" + c.id + ".cam\"><img src=\"../image/" + c.id + ".jpg?maxwidth=40&maxheight=40&nocache=" + DateTime.Now.ToBinary().ToString() + "\" alt=\"[img]\" /></a>"); }),
                new ItemTableColumnDefinition <CameraSpec>("Name", c => { return("<a href=\"javascript:EditItem('" + c.id + "')\">" + HttpUtility.HtmlEncode(c.name) + "</a>"); }),
                new ItemTableColumnDefinition <CameraSpec>("ID", c => { return(c.id); }),
                new ItemTableColumnDefinition <CameraSpec>("Enabled", c => { return(c.enabled ? ("<span style=\"color:Green;\">Enabled</span>") : "<span style=\"color:Red;\">Disabled</span>"); }),
                new ItemTableColumnDefinition <CameraSpec>("Type", c => { return(c.type.ToString() + (c.type == CameraType.h264_rtsp_proxy ? ":" + c.h264_port : "")); }),
                new ItemTableColumnDefinition <CameraSpec>("Ptz", c => { return(c.ptzType.ToString()); }),
                new ItemTableColumnDefinition <CameraSpec>("TTL", c => { return(c.maxBufferTime.ToString()); }),
                new ItemTableColumnDefinition <CameraSpec>("Permission", c => { return(c.minPermissionLevel.ToString()); }),
                new ItemTableColumnDefinition <CameraSpec>("Url", c => { return(c.imageryUrl); }),
                new ItemTableColumnDefinition <CameraSpec>("Order", c => { return("<a href=\"javascript:void(0)\" onclick=\"$.post('reordercam', { dir: 'up', id: '" + c.id + "' }).done(function(){location.href=location.href;});\">Up</a><br/><a href=\"javascript:void(0)\" onclick=\"$.post('reordercam', { dir: 'down', id: '" + c.id + "' }).done(function(){location.href=location.href;});\">Down</a>"); })
            });

            return(tbl.GetSectionHtml());
        }