source: llum/trunk/fuentes/llum/DeleteEveryUserWidget.cs @ 376

Last change on this file since 376 was 376, checked in by hectorgh, 4 years ago

adding project files

File size: 3.5 KB
Line 
1
2using System;
3
4namespace llum
5{
6
7
8        [System.ComponentModel.ToolboxItem(true)]
9        public partial class DeleteEveryUserWidget : Gtk.Bin
10        {
11                public Gtk.Image image;
12                public Gtk.Label label;
13                private Gtk.ListStore store;
14                public DeleteEveryUserWidget ()
15                {
16                        this.Build ();
17                        image=new Gtk.Image();
18                        image.SetFromIconName("gtk-delete",Gtk.IconSize.Dnd);
19                        image.Show();
20                        label=new Gtk.Label(Mono.Unix.Catalog.GetString("User Deletion tool"));
21                        label.Show();                   
22                       
23                        store=new Gtk.ListStore(typeof(string),typeof(int));
24                        store.AppendValues(Mono.Unix.Catalog.GetString("Students"),0);
25                        store.AppendValues(Mono.Unix.Catalog.GetString("Teachers"),1);
26                        store.AppendValues(Mono.Unix.Catalog.GetString("Everyone"),2);
27                       
28                        optionCombobox.Model=store;
29                        optionCombobox.Active=0;
30                       
31                        warningHbox.Hide();
32                       
33                }
34               
35                public void OnMenuButtonClicked(object sender, System.EventArgs e)
36                {
37                       
38                        llum.Core.getCore().delete_every_user_wid=new DeleteEveryUserWidget();
39                        llum.Core.getCore().mw.setCurrentWidget(llum.Core.getCore().delete_every_user_wid);
40                       
41                }               
42               
43                protected virtual void OnAcceptButtonClicked (object sender, System.EventArgs e)
44                {
45                        frame2.Sensitive=false;
46                        warningHbox.Show();
47                        string msg="";
48                        switch(optionCombobox.Active)
49                        {
50                                case 0: 
51                                        msg=Mono.Unix.Catalog.GetString("You are about to delete every student. Are you sure?");
52                                break;
53                               
54                                case 1:
55                                        msg=Mono.Unix.Catalog.GetString("You are about to delete every teacher. Are you sure?");
56                                break;
57                               
58                                case 2:
59                                        msg=Mono.Unix.Catalog.GetString("You are about to delete every user. Are you sure?");
60                                break;
61                               
62                        }
63                       
64                        warningLabel.Markup="<b>" + msg +"</b>";
65                       
66                }
67               
68                protected virtual void OnCancelButtonClicked (object sender, System.EventArgs e)
69                {
70                        warningHbox.Hide();
71                        frame2.Sensitive=true;
72                }
73               
74
75               
76                protected virtual void OnDoitButtonClicked (object sender, System.EventArgs e)
77                {
78                       
79                       
80                        System.Threading.Thread thread=null;
81                       
82                       
83                        string msg="";
84                        msg=Mono.Unix.Catalog.GetString("Deleting users...");
85                                               
86                        llum.Core.getCore().progress_window=new ProgressWindow(msg);
87                        llum.Core.getCore().progress_window.ShowAll();
88                        llum.Core.getCore().progress_window.ShowNow();
89                       
90                        bool delete_data=this.delete_checkbutton.Active;
91                       
92                        System.Threading.ThreadStart progressTStart = delegate 
93                        {
94                                //ACTIONS
95                               
96                                llum.Core core=llum.Core.getCore();
97                               
98                                System.Collections.Generic.List<string> ret=new System.Collections.Generic.List<string>();
99                               
100                                switch(optionCombobox.Active)
101                                {
102                                        case 0:
103                                                ret=core.xmlrpc.delete_students(delete_data);
104                                        break;
105                                               
106                                        case 1:
107                                                ret=core.xmlrpc.delete_teachers(delete_data);
108                                        break;
109                                       
110                                        case 2:
111                                                ret=core.xmlrpc.delete_all(delete_data);
112                                        break;
113                                }
114                               
115                               
116                               
117                                Gtk.Application.Invoke(delegate{
118                                       
119                                       
120                                        bool ok=true;
121                                       
122                                        foreach(string str in ret)
123                                        {
124                                                if(!str.Contains(":true"))
125                                                {
126                                                        ok=false;       
127                                                }
128                                        }
129                                       
130                                        string msg2="";
131                                       
132                                        if(ok)
133                                        {
134                                                msg2="<b>" + Mono.Unix.Catalog.GetString("Deletion successful") + "</b>";
135                                        }
136                                        else
137                                        {
138                                                msg2="<span foreground='red'>" + Mono.Unix.Catalog.GetString("There was an error when deleting users") + ":\n"; 
139                                                foreach(string str in ret)
140                                                        msg2+=str + "\n";
141                                                msg2+="</span>";
142                                        }
143                                       
144                                        msgLabel.Markup=msg2;
145                                               
146                                        Core.getCore().progress_window.Hide();
147                                               
148                                        });     
149                                       
150                                                       
151
152                        };
153                       
154                        thread=new System.Threading.Thread(progressTStart);
155                        thread.Start();
156
157                       
158
159                                       
160                }
161               
162               
163               
164               
165               
166        }
167}
Note: See TracBrowser for help on using the repository browser.