Correction d'un bug lors du changement de mot de passe d'une personne non administrateur
[bilio:bilio.git] / src / main.rb
1 # coding: utf-8
2
3 class MainWindow < Gtk::Window
4         
5                 attr_reader :type_doc, :login, :tableau_bord, :document, :article, :tiers       
6                 attr_reader :liste_documents, :liste_users, :liste_articles, :liste_tiers
7                 attr_reader :version, :utilisateur, :liste_lots, :scan 
8                 attr_reader :paiement, :liste_compte, :compte, :configuration, :liste_interventions
9                 attr_reader :intervention, :stat_articles
10                 attr_accessor :config_db
11         
12         def initialize level
13         
14                 super
15                 
16                 signal_connect( "destroy" ) { Gtk.main_quit }
17                 
18                 @version = "0.4.5"
19                 set_title GLib.application_name + " v" + @version
20                 
21                 set_window_position Gtk::Window::POS_CENTER
22                 set_default_size 800, 300
23                 set_icon( "./resources/icons/icon.png" )                
24                 
25                 @config_db = ConfigDb.new self
26                 lancement
27         
28         end
29         
30         def lancement
31                 
32                 @vbox = Gtk::VBox.new false, 2
33                 @login = Login_box.new self
34                 @vbox.pack_start @login, false, false, 2
35                 
36                 self.add @vbox
37                 
38                 show_all
39                 
40                 @login.refresh
41                 
42         end
43         
44         def demarre_appli
45         
46                 @type_doc = TypeDocument.new self
47                 
48                 @toolbargen = ToolBarGen_box.new self
49         
50                 @toolbargen.each { |child|
51                         child.sensitive = true
52                 }
53                 
54                 # If not a admin, config menu is hidden
55                 @toolbargen.children[14].sensitive = false unless @login.user.admin
56                 
57                 @tableau_bord = TableauBord_box.new self
58                 @document = Document_box.new self
59                 @article = Article_box.new self
60                 @tiers = Tiers_box.new self
61                 @liste_articles = ListeArticles_box.new self
62                 @liste_documents = ListeDocuments_box.new self
63                 @liste_users = ListeUsers_box.new self
64                 @liste_tiers = ListeTiers_box.new self
65                 @utilisateur = Utilisateur_box.new self
66                 @liste_lots = ListeLots_box.new self
67                 @scan = Scan.new @config_db
68                 @paiement = ListePaiements_box.new self
69                 @liste_compte = ListeComptes_box.new self
70                 @compte = Compte_box.new self
71                 @configuration = Configuration_box.new self
72                 @liste_interventions = ListeInterventions_box.new self
73                 @intervention = Intervention_box.new self
74                 @stat_articles = Stat_articles_box.new self
75                 
76                 set_title "#{GLib.application_name} v #{@version} - #{@config_db.conf['nom']}"
77                 
78                 @vbox.remove @login
79                 @vbox.pack_start @toolbargen, false, false, 0
80                 @vbox.pack_start @tableau_bord, true
81     self.show_all
82                 @tableau_bord.refresh
83         
84         end
85         
86         def deconnecter
87         
88                 if MessageController.question_oui_non self, "Voulez-vous réellement vous déconnecter ?"
89                         @vbox.children.each do |c|
90                                 @vbox.remove c
91                         end
92         
93                         @vbox.pack_start @login, false, false, 2
94                         @login.refresh
95         
96                         set_title "#{GLib.application_name} v #{@version}"
97         
98                         self.unmaximize
99                 end 
100         
101         end
102         
103         def efface_vbox_actuelle
104         
105                 @vbox.remove @vbox.children[@vbox.children.count-1] if @vbox.children.count.eql?(2)
106         
107         end
108         
109         def affiche vbox
110         
111                 efface_vbox_actuelle
112                 @vbox.pack_start vbox, true
113     self.show_all
114         
115         end     
116         
117         def quit
118                 
119                 if MessageController.question_oui_non self, "Voulez-vous réellement quitter #{GLib.application_name.capitalize} ?"
120                         Gtk.main_quit
121                 end 
122                 
123         end
124         
125         def message_erreur message
126                 MessageController.erreur self, message
127         end
128         
129         def message_attention message
130                 MessageController.attention self, message
131         end
132
133 end