Example #1
0
 public void reloadCharts(UUID client, int level, string[] additionalArgs,
                          Destinations source,
                          UUID agentKey, string agentName)
 {
     ChartMemory.Reload();
     MHE(source, client, "Reload completed");
 }
Example #2
0
        public void remChartCols(UUID client, int level, string[] additionalArgs,
                                 Destinations source,
                                 UUID agentKey, string agentName)
        {
            if (ChartMemory.HasChart(additionalArgs[0]))
            {
                Chart v     = ChartMemory.GetNamedChart(additionalArgs[0]);
                int   index = ChartMemory.Instance.Charts.IndexOf(v);
                if (v.ColumnData.Fields.Where(x => x.Label == additionalArgs[1]).Count() > 0)
                {
                    ChartColumnField theChartField = v.ColumnData.Fields.Where(x => x.Label == additionalArgs[1]).First();
                    v.ColumnData.Fields.Remove(theChartField);

                    ChartMemory.Instance.Charts[index] = v;
                    ChartMemory.SaveToFile();

                    MHE(source, client, "Column removed");
                }
                else
                {
                    MHE(source, client, "Column does not exist, nothing to remove");
                }
            }
            else
            {
                MHE(source, client, "No such chart");
            }
        }
Example #3
0
 public static void Reload()
 {
     lock (lck)
     {
         a = LoadFromFile();
     }
 }
Example #4
0
        public WebhookRegistry.HTTPResponseData renderChart(List <string> arguments, string body, string method, NameValueCollection headers)
        {
            WebhookRegistry.HTTPResponseData hrd = new WebhookRegistry.HTTPResponseData();
            if (ChartMemory.HasChartID(arguments[0]))
            {
                hrd.Status            = 200;
                hrd.ReturnContentType = "text/html";
                Chart  C    = ChartMemory.GetChartByID(arguments[0]);
                string page = "<html><head><title>Chart - " + C.ChartName + "</title></head><body bgcolor='black'>";
                // Don't prepend the Table CSS since we need to set colors custom
                page += "<center><a style='color:white'><h2>" + C.ChartDescription + "</h2></a>";
                page += "<table style=\"border:1px inset #00FFFF;border-collapse:separate;border-spacing:0px;padding:6px;\">";
                ChartColumn col = C.ColumnData;
                page += "<thead><th style=\"background:#F0F0F0;border:1px inset #00FFFF;padding:6px\">" + C.ChartName + "</th>";
                foreach (ChartColumnField field in col.Fields)
                {
                    page += "<th style=\"background:" + field.ColorCode + "\";border:1px inset #00FFFF;padding:6px\">" + field.Label + "</th>";
                }
                page += "</thead><tbody>";
                int Pos = 0;
                foreach (ChartRow row in C.RowData)
                {
                    Pos   = 0;
                    page += "<tr><td style=\"border:1px inset #00FFFF;padding:6px;background:#F0F0F0;color:black\">" + row.Label + "</td>";
                    foreach (ChartColumnField field in col.Fields)
                    {
                        // Begin processing row. Keep index of what position we are at
                        int    MaskForPos = col.Pos2Bit(Pos);
                        string ColorCode  = "#000000";
                        if ((row.Mask & MaskForPos) == MaskForPos)
                        {
                            // set the color code to the col code
                            ColorCode = col.Fields[Pos].ColorCode;
                        }
                        page += "<td style=\"border:1px inset #00FFFF;padding:6px;background:" + ColorCode + ";color:white\"> </td>";



                        Pos++;
                    }
                    page += "</tr>";
                }

                page           += "</tbody></table></body>";
                page           += "<script type='text/javascript'>";
                page           += "setInterval(function(){window.location.reload(true);}, 30000);";
                page           += "</script>";
                hrd.ReplyString = page;
            }
            else
            {
                hrd.ReplyString       = "Not found";
                hrd.Status            = 404;
                hrd.ReturnContentType = "text/plain";
            }


            return(hrd);
        }
Example #5
0
        public void setChartCols(UUID client, int level, string[] additionalArgs,
                                 Destinations source,
                                 UUID agentKey, string agentName)
        {
            if (ChartMemory.HasChart(additionalArgs[0]))
            {
                Chart       v     = ChartMemory.GetNamedChart(additionalArgs[0]);
                int         index = ChartMemory.Instance.Charts.IndexOf(v);
                ChartColumn col   = v.ColumnData;
                if (col == null)
                {
                    col = new ChartColumn();
                }
                if (col.Fields == null)
                {
                    col.Fields = new List <ChartColumnField>();
                }


                if (col.Fields.Where(x => x.Label == additionalArgs[1]).Count() > 0)
                {
                    // already has this column
                    MHE(source, client, "That column already exists");
                    return;
                }
                else
                {
                    ChartColumnField field = new ChartColumnField();
                    field.ColorCode = additionalArgs[2];
                    field.Label     = additionalArgs[1];


                    if (additionalArgs.Length == 4)
                    {
                        // insert at index
                        col.Fields.Insert(Convert.ToInt32(additionalArgs[3]), field);
                    }
                    else
                    {
                        col.Fields.Add(field);
                    }
                }

                v.ColumnData = col;
                ChartMemory.Instance.Charts[index] = v;
                ChartMemory.SaveToFile();

                MHE(source, client, "Column data has been updated");
            }
            else
            {
                MHE(source, client, "No such chart");
            }
        }
Example #6
0
 public void makeNewChart(UUID client, int level, string[] additionalArgs,
                          Destinations source,
                          UUID agentKey, string agentName)
 {
     if (ChartMemory.HasChart(additionalArgs[0]))
     {
         MHE(source, client, "A chart by that name already exists");
         return;
     }
     ChartMemory.Instance.Charts.Add(new Chart(additionalArgs[0]));
     ChartMemory.SaveToFile();
     MHE(source, client, "New chart created successfully");
 }
Example #7
0
        public void deleteChart(UUID client, int level, string[] additionalArgs,
                                Destinations source,
                                UUID agentKey, string agentName)
        {
            if (ChartMemory.HasChart(additionalArgs[0]))
            {
                Chart v = ChartMemory.GetNamedChart(additionalArgs[0]);

                ChartMemory.Instance.Charts.Remove(v);
                ChartMemory.SaveToFile();
                MHE(source, client, "Chart deleted");
                return;
            }
        }
Example #8
0
        public void renameChart(UUID client, int level, string[] additionalArgs,
                                Destinations source,
                                UUID agentKey, string agentName)
        {
            if (ChartMemory.HasChart(additionalArgs[0]))
            {
                Chart v     = ChartMemory.GetNamedChart(additionalArgs[0]);
                int   index = ChartMemory.Instance.Charts.IndexOf(v);
                v.ChartName = additionalArgs[1];

                ChartMemory.Instance.Charts[index] = v;
                ChartMemory.SaveToFile();
                MHE(source, client, "Chart renamed");
                return;
            }
        }
Example #9
0
        public void removeChartRow(UUID client, int level, string[] additionalArgs,
                                   Destinations source,
                                   UUID agentKey, string agentName)
        {
            if (ChartMemory.HasChart(additionalArgs[0]))
            {
                Chart    v     = ChartMemory.GetNamedChart(additionalArgs[0]);
                int      index = ChartMemory.Instance.Charts.IndexOf(v);
                ChartRow row   = new ChartRow();
                row.Label = "";
                void getRowLabel()
                {
                    row.Label = "";
                    for (int i = 1; i < additionalArgs.Length; i++)
                    {
                        row.Label += additionalArgs[i] + " ";
                    }

                    if (row.Label.EndsWith(" "))
                    {
                        row.Label = row.Label.TrimEnd(' ');
                    }
                }

                getRowLabel();
                if (v.RowData.Where(x => x.Label == row.Label).Count() > 0)
                {
                    row = v.RowData.Where(x => x.Label == row.Label).First();
                    v.RowData.Remove(row);
                    ChartMemory.Instance.Charts[index] = v;
                    ChartMemory.SaveToFile();
                }
                else
                {
                    MHE(source, client, "No such row in that chart");
                    return;
                }


                MHE(source, client, "Chart row deleted");
                return;
            }
        }
Example #10
0
        public void setchartdesc(UUID client, int level, string[] additionalArgs,
                                 Destinations source,
                                 UUID agentKey, string agentName)
        {
            string finalStr = "";
            int    pos      = 0;

            foreach (string s in additionalArgs)
            {
                if (pos == 0)
                {
                    continue;
                }
                else
                {
                    finalStr += s + " ";
                }
                pos++;
            }

            if (finalStr.EndsWith(" "))
            {
                finalStr = finalStr.TrimEnd(' ');
            }
            if (ChartMemory.HasChart(additionalArgs[0]))
            {
                Chart v = ChartMemory.GetNamedChart(additionalArgs[0]);
                pos = ChartMemory.Instance.Charts.IndexOf(v);
                v.ChartDescription = finalStr;
                ChartMemory.Instance.Charts[pos] = v;
                ChartMemory.SaveToFile();
                MHE(source, client, "Chart description has been set");
            }
            else
            {
                MHE(source, client, "No such chart");
            }
        }
Example #11
0
        public void addChartRow(UUID client, int level, string[] additionalArgs,
                                Destinations source,
                                UUID agentKey, string agentName)
        {
            if (ChartMemory.HasChart(additionalArgs[0]))
            {
                Chart    v     = ChartMemory.GetNamedChart(additionalArgs[0]);
                int      index = ChartMemory.Instance.Charts.IndexOf(v);
                ChartRow row   = new ChartRow();
                row.Label = "";
                row.Mask  = Convert.ToInt32(additionalArgs[1]);
                int  masterIndex;
                bool hasIndex = int.TryParse(additionalArgs[2], out masterIndex);
                void getRowLabel()
                {
                    row.Label = "";
                    if (hasIndex)
                    {
                        // the label is at 3 and above
                        for (int i = 3; i < additionalArgs.Length; i++)
                        {
                            row.Label += additionalArgs[i] + " ";
                        }

                        if (row.Label.EndsWith(" "))
                        {
                            row.Label = row.Label.TrimEnd(' ');
                        }
                    }
                    else
                    {
                        // the label is at 2 and above
                        for (int i = 2; i < additionalArgs.Length; i++)
                        {
                            row.Label += additionalArgs[i] + " ";
                        }

                        if (row.Label.EndsWith(" "))
                        {
                            row.Label = row.Label.TrimEnd(' ');
                        }
                    }
                }

                getRowLabel();
                if (v.RowData.Where(x => x.Label == row.Label).Count() > 0)
                {
                    MHE(source, client, "A chart row with that label already exists.");
                    return;
                }
                else
                {
                    // index optional
                    if (hasIndex)
                    {
                        v.RowData.Insert(masterIndex, row);
                        ChartMemory.Instance.Charts[index] = v;
                        ChartMemory.SaveToFile();
                    }
                    else
                    {
                        // row label might start at 2 instead, but we only add anyway
                        getRowLabel();

                        v.RowData.Add(row);
                        ChartMemory.Instance.Charts[index] = v;
                        ChartMemory.SaveToFile();
                    }
                }


                MHE(source, client, "Chart row added");
                return;
            }
        }