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

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

adding project files

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