Changeset 8481


Ignore:
Timestamp:
Mar 7, 2019, 1:59:38 PM (2 months ago)
Author:
daduve
Message:

Adding new functions

Location:
first-aid-kit/trunk/fuentes/first-aid-kit.install/usr/share/first-aid-kit
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • first-aid-kit/trunk/fuentes/first-aid-kit.install/usr/share/first-aid-kit/Core.py

    r8474 r8481  
    1616        DEBUG=True
    1717        os.chdir(sys.path[0])
     18
    1819       
    1920        @classmethod
     
    3132                self.dprint("Init...")
    3233                self.var=None
     34                self.acl_time_path="/tmp/.fak_acl_timepath"
    3335
    3436                self.get_current_user()
    3537                self.get_other_info()
     38                self.get_n4d_key()
    3639
    3740                print self.current_user
     
    3942
    4043        #def __init__
     44
     45
     46        def get_n4d_key(self):
     47
     48                try:
     49                        f=open("/etc/n4d/key")
     50                        self.n4d_key=f.readline().strip("\n")
     51                        f.close()
     52                        #print ("validacion: %s"%self.n4d_key)
     53                except Exception as e:
     54                        print(str(e))
     55                        sys.exit(1)
     56
     57        #def get_n4d_key
    4158
    4259
     
    99116               
    100117                self.lri.load_gui()
     118
     119                self.netfiles_box.check_thread_on_startup()
     120
    101121                self.lri.start_gui()
    102122               
  • first-aid-kit/trunk/fuentes/first-aid-kit.install/usr/share/first-aid-kit/EpoptesBox.py

    r8474 r8481  
    157157                self.renew_button.set_sensitive(True)
    158158                self.info_box_stack.set_visible_child_name("infobox")
    159                 self.txt_check_epoptes.set_text("The Epoptes certificate has been renewed")
     159                self.txt_check_epoptes.set_text(_("The Epoptes certificate has been renewed"))
    160160               
    161161        #check_gparted_thread
  • first-aid-kit/trunk/fuentes/first-aid-kit.install/usr/share/first-aid-kit/FirstAidKit.py

    r8474 r8481  
    1212import time
    1313import threading
     14import os
    1415
    1516signal.signal(signal.SIGINT, signal.SIG_DFL)
     
    103104                self.hd_box=self.core.hd_box
    104105                self.main_stack.add_titled(self.hd_box,"hdbox","HdBox")
    105                 self.netfiles_box=self.core.netfiles_box
    106                 self.main_stack.add_titled(self.netfiles_box,"netfilesbox","NetfilesBox")
    107106                self.epoptes_box=self.core.epoptes_box
    108107                self.main_stack.add_titled(self.epoptes_box,"epoptesbox","EpoptesBox")
    109108                self.start_bar_box=self.core.start_bar_box
    110109                self.main_stack.add_titled(self.start_bar_box,"startbarbox","StartBarBox")
     110                try:
     111                        os.system('lliurex-version -f > /tmp/.FK')
     112                        if 'server' in open('/tmp/.FK').read():
     113                                self.netfiles_box=self.core.netfiles_box
     114                                self.main_stack.add_titled(self.netfiles_box,"netfilesbox","NetfilesBox")
     115                                os.remove('/tmp/.FK')
     116                except Exception as e:
     117                        print self.core.dprint("Exception testing server: %s"%e)
     118
     119
    111120
    112121               
     
    122131               
    123132                self.validate_spinner.hide()
    124                 self.bar_button.hide()
    125                 self.netfiles_button.hide()
    126133               
    127134                self.core.net_box.restart_txt.hide()
  • first-aid-kit/trunk/fuentes/first-aid-kit.install/usr/share/first-aid-kit/HdBox.py

    r8474 r8481  
    8585                        self.fsck_button.set_label(_("Disable"))
    8686                        self.hdbox_check_stack.set_visible_child_name("hdboxcheck")
    87                         self.txt_check_netfiles.set_text("Programmed a fscky in principal HD on the reboot")
     87                        self.txt_check_netfiles.set_text(_("Programmed a fscky in principal HD on the reboot"))
    8888               
    8989
     
    196196                        self.fsck = True
    197197                        self.hdbox_check_stack.set_visible_child_name("hdboxcheck")
    198                         self.txt_check_netfiles.set_text("Programmed a fscky in principal HD on the reboot")
     198                        self.txt_check_netfiles.set_text(_("Programmed a fscky in principal HD on the reboot"))
    199199                        #self.txt_check_netfiles.show()
    200200                else:
  • first-aid-kit/trunk/fuentes/first-aid-kit.install/usr/share/first-aid-kit/NetBox.py

    r8474 r8481  
    6161                self.restart_txt=builder.get_object("restart_txt")
    6262                self.configure_network_txt=builder.get_object("configure_network_txt")
    63                 self.txt_check=builder.get_object("txt_check")
    64                 self.spinner=builder.get_object("spinner")
     63               
     64               
    6565                self.separator5=builder.get_object("separator5")
    6666               
    6767                self.box1=builder.get_object("box1")
    6868                self.box9=builder.get_object("box9")
    69                
     69
     70                self.info_box=builder.get_object("info_nettest")
     71                self.info_box_into=builder.get_object("box14")
     72                self.txt_check_nettest=builder.get_object("txt_check_nettest")
     73                self.spinner_nettest=builder.get_object("spinner_nettest")
     74
     75
     76                self.info_box_stack=Gtk.Stack()
     77                self.info_box_stack.set_transition_type(Gtk.StackTransitionType.CROSSFADE)
     78                self.info_box_stack.set_transition_duration(500)
     79                hbox_nettest=Gtk.HBox()
     80                hbox_nettest.show()
     81                self.info_box_stack.add_titled(hbox_nettest,"empty_box_start_bar","Empty Box Start Bar")
     82                self.info_box_stack.add_titled(self.info_box,"infobox","InfoBox")
     83
     84                self.wawabox3=Gtk.HBox()
     85                self.wawabox3.pack_start(self.info_box_stack,True,True,0)
     86
     87                self.net_box.pack_start(self.wawabox3,False,False,5)
     88
     89
     90                self.info_box.set_margin_bottom(20)
     91                self.info_box.set_margin_left(5)
     92                self.info_box.set_margin_right(5)
     93
    7094                self.load_eth_cards()
    7195                self.pack_start(self.net_box,True,True,5)
    7296                self.connect_signals()
    7397                self.set_css_info()
     98
     99                self.info_box_stack.set_visible_child_name("empty_box_start_bar")
     100                #self.info_box_stack.set_visible_child_name("infobox")
     101                #self.txt_check_nettest.set_text(_("Your internet server is down, please review the proxy or the router."))
    74102               
    75103        #def __init__
     
    105133                self.link_label.set_name("OPTION_LABEL")
    106134                self.separator5.set_name("SEPARATOR_MAIN")
     135                self.txt_check_nettest.set_name("INFO_LABEL")
     136                self.info_box.set_name("PKG_BOX")
    107137                       
    108138        #def set-css_info
     
    166196                self.thread=threading.Thread(target=self.test_button_thread)
    167197                self.test_button.set_sensitive(False)
     198                self.info_box_stack.set_visible_child_name("empty_box_start_bar")
    168199                self.thread.daemon=True
    169200                self.thread.start()
     
    192223                                self.core.dprint("Server connection is avaiable.")
    193224                                self.check1_image.set_from_stock("gtk-yes",Gtk.IconSize.BUTTON)
     225                                self.server_connection=True
    194226                        else:
    195227                                self.core.dprint("Server connection is UNAVAIABLE....")
    196228                                self.check1_image.set_from_stock("gtk-no",Gtk.IconSize.BUTTON)
     229                                self.server_connection=False
    197230
    198231                        self.core.dprint("Test Network....")
     
    200233                                self.core.dprint("Ping to google is ok....")
    201234                                self.check2_image.set_from_stock("gtk-yes",Gtk.IconSize.BUTTON)
     235                                self.internet_connection=True
    202236                        else:
    203237                                self.core.dprint("Internet is unavaiable")
    204238                                self.check2_image.set_from_stock("gtk-no",Gtk.IconSize.BUTTON)
     239                                self.internet_connection=False
    205240
    206241                        self.thread_ret={"status":True,"msg":"BROKEN"}
     
    218253                        return True
    219254               
    220 
     255               
    221256                self.test_spinner.hide()
    222257                self.test_button.show()
    223258                self.test_combobox.show()
    224259                self.test_button.set_sensitive(True)
    225                 #self.info_box_network_stack.set_visible_child_name("infobox")
    226                 #self.txt_check_network.set_text("The network card has been reset")
     260                self.info_user_test()
     261               
    227262               
    228263        #check_test_thread
     
    256291        def device_info(self):
    257292                try:
    258                         self.core.dprint ("Device info...............")
     293                       
    259294                        self.name_device=self.devices[self.eth_po]['name']
    260                         print self.name_device
     295                        self.core.dprint ("Device info: %s"%self.name_device)
    261296                        self.speed_device=self.devices[self.eth_po]['Speed']
    262297                        self.link_device=self.devices[self.eth_po]['Link detected']
     
    264299                        self.core.dprint("Name:%s - Speed:%s - Link:%s - Ip:%s"%(self.name_device,self.speed_device,self.link_device,self.ip_device))
    265300                       
    266                         self.speed_net.set_text(self.speed_device[0])
    267                         self.ip_address.set_text(self.ip_device)
     301
     302                        if self.speed_device[0] == "":
     303                                self.speed_net.set_text(_("Unknow"))
     304                        else:
     305                                self.speed_net.set_text(self.speed_device[0])
     306
     307
     308                        if self.ip_device == "":
     309                                self.ip_address.set_text(_("Unknow"))
     310                        else:
     311                                self.ip_address.set_text(self.ip_device)
     312
     313
    268314                        if self.link_device[0] == 'yes':
    269315                                self.check4_image.set_from_stock("gtk-yes",Gtk.IconSize.BUTTON)
     316                                self.link_connection=True
    270317                        else:
    271318                                self.check4_image.set_from_stock("gtk-no",Gtk.IconSize.BUTTON)
    272                         return True
     319                                self.link_connection=False
     320
     321                        print ("link_connection: %s"%self.link_connection)
    273322
    274323                except Exception as e:
    275                         print(e)
    276                         self.core.dprint("Problems detecting netcard info")
     324                        #print(e)
     325                        self.core.dprint("Exception - Problems detecting netcard info: %s"%e)
     326                        self.link_connection=False
     327                        self.check4_image.set_from_stock("gtk-no",Gtk.IconSize.BUTTON)
     328                        self.speed_net.set_text(_("Unknow"))
     329                        self.ip_address.set_text(_("Unknow"))
    277330                        return False
    278331
     
    414467               
    415468        #check_configure_network_thread
    416        
     469
     470
     471        def info_user_test(self):
     472
     473                try:
     474                        if self.link_connection==False:
     475
     476                                self.info_box_stack.set_visible_child_name("infobox")
     477                                self.txt_check_nettest.set_text(_("You have hardware problems, please review your data\n cable and your connections, because your netcard doesn't have link."))
     478
     479                        else:
     480
     481                                if self.server_connection==False:
     482
     483                                        self.info_box_stack.set_visible_child_name("infobox")
     484                                        self.txt_check_nettest.set_text(_("You can't connect with server, are you sure that\n the server is started? Please review it and reboot your sistem."))
     485
     486                                else:
     487
     488                                        if self.internet_connection==False:
     489
     490                                                self.info_box_stack.set_visible_child_name("infobox")
     491                                                self.txt_check_nettest.set_text(_("Your internet server is down,\n please review the internet server connection, the proxy or the router."))
     492
     493                        return True
     494               
     495                except Exception as e:
     496
     497                        self.core.dprint(e)
     498                        return False
     499
     500        #def info_user_test
     501       
  • first-aid-kit/trunk/fuentes/first-aid-kit.install/usr/share/first-aid-kit/NetfilesBox.py

    r8451 r8481  
    1212import sys
    1313import os
     14import xmlrpclib
     15import datetime
     16from dateutil import parser
    1417
    1518gettext.textdomain('first-aid-kit-gui')
     
    3336                ui_path=RSRC + "first-aid-kit.ui"
    3437                builder.add_from_file(ui_path)
    35                
    36                
    37                 self.net_box=builder.get_object("netfiles_box")
     38                self.acl_time_path="/tmp/.fak_acl_timepath"
     39               
     40               
     41                self.netfiles_box=builder.get_object("netfiles_box")
     42                self.acl_box=builder.get_object("acl_box")
    3843                self.acl_button=builder.get_object("acl_button")
     44                self.acl_spinner=builder.get_object("acl_spinner")
    3945                self.regenerate_button=builder.get_object("regenerate_button")
     46                self.regenerate_spinner=builder.get_object("regenerate_spinner")
    4047                self.txt_check_netfiles=builder.get_object("txt_check_netfiles")
    4148                self.spinner_netfiles=builder.get_object("spinner_netfiles")
     
    4451                self.section_label_1=builder.get_object("section_label_1")
    4552                self.box11=builder.get_object("box11")
    46                
    47 
    48                 self.add(self.net_box)
    49                
    50                 #self.connect_signals()
     53
     54                self.info_netfiles=builder.get_object("info_netfiles")
     55                self.info_netfiles_into=builder.get_object("info_netfiles_into")
     56                self.info_netfiles_txt=builder.get_object("info_netfiles_txt")
     57                self.info_netfiles_spinner=builder.get_object("info_netfiles_spinner")
     58               
     59
     60                self.add(self.netfiles_box)
     61               
     62                self.info_netfiles_stack=Gtk.Stack()
     63                self.info_netfiles_stack.set_transition_type(Gtk.StackTransitionType.CROSSFADE)
     64                self.info_netfiles_stack.set_transition_duration(500)
     65                hbox=Gtk.HBox()
     66                hbox.show()
     67                self.info_netfiles_stack.add_titled(hbox,"empty_box_netfiles","Empty Box")
     68                self.info_netfiles_stack.add_titled(self.info_netfiles,"info_netfiles","InfoNetfiles")
     69
     70                self.wawabox=Gtk.HBox()
     71                self.wawabox.pack_start(self.info_netfiles_stack,True,True,0)
     72
     73                self.netfiles_box.pack_start(self.wawabox,False,False,5)
     74
     75
     76                self.info_netfiles.set_margin_bottom(20)
     77                self.info_netfiles.set_margin_left(5)
     78                self.info_netfiles.set_margin_right(5)
     79
     80                self.info_netfiles_stack.set_visible_child_name("empty_box_netfiles")
     81                self.acl_executed=False
     82                self.regenerate_executed=False
     83
     84                proxy="https://localhost:9779"
     85                self.client=xmlrpclib.ServerProxy(proxy)
     86
     87                self.acl_error=[False,"True"]
     88                self.regenerate_error=[False,"True"]
     89               
     90                self.connect_signals()
    5191                self.set_css_info()
    52                
    53                 #self.core.current_var=None
    54                 #self.current_id=None
    55                
    56                 #self.thread=threading.Thread()
    57                 #self.thread_ret=None
    58                
    59                
    60                
     92
     93
    6194        #def __init__
    6295       
     96
     97        def check_thread_on_startup(self):
     98
     99                try:
     100                        #thread is alive, because was started before.....
     101                        if self.client.is_acl_thread_alive(self.core.n4d_key,"NetFoldersManager"):
     102                                self.regenerate_button.set_sensitive(False)
     103                                self.acl_button.set_sensitive(False)
     104                               
     105                                if os.path.isfile(self.acl_time_path):
     106                                        f=open(self.acl_time_path)
     107                                        line=f.readline()
     108                                        f.close()
     109                                        self.acl_time_start=parser.parse(line)
     110
     111                                else:
     112                                        self.acl_time_start=datetime.datetime.now()
     113
     114                                allocation=self.acl_button.get_allocation()
     115                                w=allocation.width
     116                                h=allocation.height
     117
     118                                self.acl_button.hide()
     119                                self.acl_spinner.start()
     120                                self.acl_spinner.set_size_request(w,h)
     121                                self.acl_spinner.show()
     122                                self.info_netfiles_stack.set_visible_child_name("info_netfiles")
     123                                self.acl_elapsed=datetime.datetime.now() - self.acl_time_start
     124                                self.acl_elapsed=self.time_formated(self.acl_elapsed)
     125                                self.info_netfiles_txt.set_text(_("ACLs are still regenerating, time elapsed: %s "%self.acl_elapsed))
     126                                self.core.dprint("ACLs are still regenerating, time elapsed: %s "%self.acl_elapsed)
     127                                GLib.timeout_add(10000,self.check_acl_thread)
     128                except Exception as e:
     129                        print(e)
     130
     131        #def check_thread
     132
     133
    63134        def set_css_info(self):
    64135               
     
    68139                Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(),self.style_provider,Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
    69140               
    70                 #self.net_box.set_name("MENU_WINDOW")
    71141                self.box11.set_name("PKG_BOX")
    72142                self.acl_button.set_name("EXECUTE_BUTTON")
    73143                self.regenerate_button.set_name("EXECUTE_BUTTON")
    74                 #self.execute_button.set_name("DELETE_ITEM_BUTTON")
    75                 #self.net_box.set_name("PKG_BOX")
    76144                self.label10.set_name("OPTION_LABEL")
    77145                self.label7.set_name("OPTION_LABEL")
    78146                self.section_label_1.set_name("SECTION_LABEL")
     147
     148                self.info_netfiles_txt.set_name("INFO_LABEL")
     149                self.info_netfiles.set_name("PKG_BOX")
    79150                       
    80151        #def set-css_info
     152
     153
     154
     155
     156
     157
     158        def connect_signals(self):
     159               
     160                self.acl_button.connect("clicked",self.acl_button_clicked)
     161                self.regenerate_button.connect("clicked",self.regenerate_button_clicked)
     162               
     163        #def connect_signals
     164
     165
     166
     167
     168
     169        def acl_button_clicked(self,widget):
     170
     171                self.thread=threading.Thread(target=self.acl_button_thread)
     172                self.regenerate_button.set_sensitive(False)
     173                self.acl_button.set_sensitive(False)
     174                self.info_netfiles_stack.set_visible_child_name("empty_box_netfiles")
     175                self.thread.daemon=True
     176                self.thread.start()
     177               
     178                allocation=self.acl_button.get_allocation()
     179                w=allocation.width
     180                h=allocation.height
     181
     182                self.acl_button.hide()
     183                self.acl_spinner.start()
     184                self.acl_spinner.set_size_request(w,h)
     185                self.acl_spinner.show()
     186                self.info_netfiles_stack.set_visible_child_name("info_netfiles")
     187
     188                self.acl_time_start=datetime.datetime.now()
     189
     190                if os.path.isfile(self.acl_time_path):
     191                        os.remove(self.acl_time_path)
     192                f=open(self.acl_time_path,'w')
     193                f.write(self.acl_time_start.ctime())
     194                f.close()
     195
     196                self.info_netfiles_txt.set_text(_("ACLs are still regenerating...... please, wait."))
     197
     198                GLib.timeout_add(10000,self.check_acl_thread)
     199       
     200        #def acl_button_clicked
     201
     202
     203
     204
     205
     206
     207        def acl_button_thread(self):
     208       
     209                try:
     210                        self.core.dprint("ACL regenerating in /net....")
     211
     212                        self.client.restore_acls_via_thread(self.core.n4d_key,"NetFoldersManager")
     213
     214                        self.thread_ret={"status":True,"msg":"BROKEN"}
     215                       
     216                except Exception as e:
     217                        self.core.dprint("ACL thread execution Exception: %s"%e)
     218                        return False
     219                       
     220        #def acl_button_thread
     221
     222
     223
     224
     225
     226
     227        def check_acl_thread(self):
     228               
     229                try:
     230                       
     231                        if self.client.is_acl_thread_alive(self.core.n4d_key,"NetFoldersManager"):
     232                                self.acl_elapsed=datetime.datetime.now() - self.acl_time_start
     233                                self.acl_elapsed=self.time_formated(self.acl_elapsed)
     234                                self.info_netfiles_txt.set_text(_("ACLs are still regenerating, time elapsed: %s "%self.acl_elapsed))
     235                                self.core.dprint("ACLs are still regenerating, time elapsed %s "%self.acl_elapsed)
     236
     237                                return True
     238
     239                        self.core.dprint("ACLs have been regenerated.")
     240                       
     241                        self.acl_elapsed=datetime.datetime.now() - self.acl_time_start
     242                        self.acl_elapsed=self.time_formated(self.acl_elapsed)
     243                        self.acl_spinner.hide()
     244                        self.acl_button.show()
     245                        self.regenerate_button.set_sensitive(True)
     246                        self.acl_button.set_sensitive(True)
     247                        self.acl_error=[False,"Perfect"]
     248
     249                        self.acl_executed=True
     250                        self.show_info()
     251
     252                except Exception as e:
     253                        self.core.dprint("ACL check thread execution Exception: %s"%e)
     254                        self.acl_spinner.hide()
     255                        self.acl_button.show()
     256                        self.regenerate_button.set_sensitive(True)
     257                        self.acl_button.set_sensitive(True)
     258                        self.acl_error=[True,e]
     259                        return False
     260               
     261        #check_acl_thread
     262
     263
     264
     265
     266
     267
     268
     269        def regenerate_button_clicked(self,widget):
     270               
     271                self.thread=threading.Thread(target=self.regenerate_button_thread)
     272                self.regenerate_button.set_sensitive(False)
     273                self.acl_button.set_sensitive(False)
     274                self.info_netfiles_stack.set_visible_child_name("empty_box_netfiles")
     275                self.thread.daemon=True
     276                self.thread.start()
     277               
     278                allocation=self.regenerate_button.get_allocation()
     279                w=allocation.width
     280                h=allocation.height
     281
     282                self.regenerate_button.hide()
     283                self.regenerate_spinner.start()
     284                self.regenerate_spinner.set_size_request(w,h)
     285                self.regenerate_spinner.show()
     286                self.info_netfiles_stack.set_visible_child_name("info_netfiles")
     287                self.regenerate_time_start=datetime.datetime.now()
     288                self.info_netfiles_txt.set_text(_("User folders are still regenerating...... please, wait."))
     289
     290                GLib.timeout_add(500,self.check_regenerate_thread)
     291       
     292        #def_regenerate_button_clicked
     293
     294
     295
     296
     297
     298
     299        def regenerate_button_thread(self):
     300       
     301                try:
     302                        self.core.dprint("Regenerating folders /net....")
     303
     304                        users=self.client.light_get_user_list(self.core.n4d_key,"Golem")
     305                        for user in users:
     306                                user_properties={}
     307                                user_properties["profile"]=user[5]
     308                                user_properties["uid"]=user[1]
     309                                user_properties["uidNumber"]=user[2]
     310                                self.core.dprint("User: %s"%user)
     311                                self.core.dprint("user_properties: %s"%user_properties)
     312                                self.core.dprint("Testing folders in /net, N4D service.....")
     313                                self.client.exist_home_or_create(self.core.n4d_key,"Golem",user_properties)
     314
     315                        self.core.dprint("Restore GROUP folders /net, N4D service.....")
     316                        self.client.restore_groups_folders(self.core.n4d_key,"Golem")
     317                        self.core.dprint("End of all process")
     318
     319                        self.thread_ret={"status":True,"msg":"BROKEN"}
     320                       
     321                except Exception as e:
     322                        self.core.dprint("Regenerate thread execution Exception: %s"%e)
     323                        return False
     324                       
     325        #def regenerate_button_thread
     326
     327
     328
     329
     330
     331
     332
     333        def check_regenerate_thread(self):
     334               
     335                try:
     336                        if self.thread.is_alive():
     337                                self.regenerate_elapsed=datetime.datetime.now() - self.regenerate_time_start
     338                                self.regenerate_elapsed=self.time_formated(self.regenerate_elapsed)
     339                                self.info_netfiles_txt.set_text(_("User folders are still regenerating, time elapsed: %s "%self.regenerate_elapsed))
     340                                self.core.dprint("User folders are still regenerating, time elapsed: %s "%self.regenerate_elapsed)
     341                                return True
     342                       
     343                        self.regenerate_elapsed=datetime.datetime.now() - self.regenerate_time_start
     344                        self.regenerate_elapsed=self.time_formated(self.regenerate_elapsed)
     345                        self.regenerate_spinner.hide()
     346                        self.regenerate_button.show()
     347                        self.regenerate_button.set_sensitive(True)
     348                        self.acl_button.set_sensitive(True)
     349
     350                        self.regenerate_executed=True
     351                        self.show_info()
     352
     353                except Exception as e:
     354                        self.core.dprint("Regenerate check thread execution Exception: %s"%e)
     355                        self.regenerate_spinner.hide()
     356                        self.regenerate_button.show()
     357                        self.regenerate_button.set_sensitive(True)
     358                        self.acl_button.set_sensitive(True)
     359                        self.regenerate_error=[True,e]
     360                        return False
     361               
     362        #check_regenerate_thread
     363
     364
     365
     366
     367
     368
     369
     370        def show_info(self):
     371
     372                if self.acl_error[0]== True:
     373                        self.info_netfiles_stack.set_visible_child_name("info_netfiles")
     374                        self.info_netfiles_txt.set_text(_("ACLs error: %s")%self.acl_error[1])
     375                        if self.regenerate_error[0]==True:
     376                                self.info_netfiles_stack.set_visible_child_name("info_netfiles")
     377                                self.info_netfiles_txt.set_text(_("ACLs error: %s\nRegenerate error:%s")%(self.acl_error[1],self.regenerate_error[1]))
     378                        return True
     379                if self.regenerate_error[0]==True:
     380                        self.info_netfiles_stack.set_visible_child_name("info_netfiles")
     381                        self.info_netfiles_txt.set_text(_("Regenerate error:%s")%self.regenerate_error[1])
     382                        return True
     383
     384                if self.acl_executed == True:
     385                        if self.regenerate_executed == False:
     386                                self.info_netfiles_stack.set_visible_child_name("info_netfiles")
     387                                self.info_netfiles_txt.set_text(_("Finished!!!\nACLs of the files have been reviewed. Time elapsed to do %s"%self.acl_elapsed))
     388                        else:
     389                                self.info_netfiles_stack.set_visible_child_name("info_netfiles")
     390                                self.info_netfiles_txt.set_text(_("Finished!!!\nACLs of the files have been reviewed, in %s.\nAll user folders have been regenerated if it's necessary in %s"%(self.acl_elapsed,self.regenerate_elapsed)))
     391                else:
     392                        if self.regenerate_executed == True:
     393                                self.info_netfiles_stack.set_visible_child_name("info_netfiles")
     394                                self.info_netfiles_txt.set_text(_("Finished!!!\nAll user folders have been regenerated if it's necessary. Time elapsed to do %s")%self.regenerate_elapsed)
     395
     396        #def show_info
     397
     398
     399
     400
     401
     402
     403        def time_formated(self,time_timedelta):
     404                try:
     405
     406                        hours=time_timedelta.seconds//3600
     407                        minutes=time_timedelta.seconds//60
     408                        seconds=time_timedelta.seconds-(minutes*60)
     409
     410                        if hours == 0:
     411                                if minutes == 0:
     412                                        return("%s seconds"%seconds)
     413                                else:
     414                                        if seconds == 0:
     415                                                return("%s min"%minutes)
     416                                        else:
     417                                                if seconds<10:
     418                                                        return("%s:%02d min"%(minutes,seconds))
     419                                                else:
     420                                                        return("%s:%s min"%(minutes,seconds))
     421                        else:
     422                                if minutes<10:
     423                                        if seconds<10:
     424                                                return("%s hours and %02d:%02d minutes"%(hours,minutes,seconds))
     425                                        else:
     426                                                return("%s hours and %02d:%s minutes"%(hours,minutes,seconds))
     427                                else:
     428                                        if seconds<10:
     429                                                return("%s hours and %0s:%02d minutes"%(hours,minutes,seconds))
     430                                        else:
     431                                                return("%s hours and %0s:%s minutes"%(hours,minutes,seconds))
     432
     433                except Exception as e:
     434                        self.core.dprint("Error in time_formated: %s"%e)
     435
     436        #def time_formated
  • first-aid-kit/trunk/fuentes/first-aid-kit.install/usr/share/first-aid-kit/StartBarBox.py

    r8474 r8481  
    7171
    7272                self.info_box_stack.set_visible_child_name("empty_box_start_bar")
    73                        
     73
     74                self.grub_file='/etc/default/grub.d/06-lliurex-cmdline.cfg'
     75                self.word = 'splash '
     76                f = open(self.grub_file,'r')
     77                for line in f:
     78                        if self.word in line:
     79                                self.splash_delete=False
     80                                self.start_bar_button.set_label(_("Delete Startup Bar"))
     81                                self.info_box_stack.set_visible_child_name("empty_box_start_bar")
     82                        else:
     83                                self.splash_delete=True
     84                                self.start_bar_button.set_label(_("Add Startup Bar"))
     85                                self.info_box_stack.set_visible_child_name("empty_box_start_bar")
     86                f.close()       
    7487               
    7588        #def __init__
     
    133146       
    134147                try:
    135                         self.core.dprint("The start bar has been removed from your system.")
    136                         #os.system('epoptes-client -c')
     148                       
     149                       
     150                        if self.splash_delete == False:
     151                                self.core.dprint("The startup bar has been removed from your system.")
     152                                f = open(self.grub_file,'r')
     153                                lst = []
     154                                for line in f:
     155                                        if self.word in line:
     156                                                line = line.replace(self.word,'')
     157                                        lst.append(line)
     158                                f.close()
     159                                f = open(self.grub_file,'w')
     160                                for line in lst:
     161                                        f.write(line)
     162                                f.close()
     163                                self.splash_delete = True
     164                                self.start_bar_button.set_label(_("Add Startup Bar"))
     165                                self.info_box_stack.set_visible_child_name("info_start_bar")
     166                                self.txt_check_start_bar.set_text(_("The startup bar is removing from your system, applying changes....."))
     167                        else:
     168                                self.core.dprint("The startup bar has been added at your system.")
     169                                f = open(self.grub_file,'r')
     170                                lst = []
     171                                match='quiet'
     172                                replace='quiet splash'
     173                                for line in f:
     174                                        if match in line:
     175                                                line = line.replace(match,replace)
     176                                        lst.append(line)
     177                                f.close()
     178                                f = open(self.grub_file,'w')
     179                                for line in lst:
     180                                        f.write(line)
     181                                f.close()
     182                                self.splash_delete = False
     183                                self.start_bar_button.set_label(_("Delete Startup Bar"))
     184                                self.info_box_stack.set_visible_child_name("info_start_bar")
     185                                self.txt_check_start_bar.set_text(_("The startup bar is adding at your system, applying changes....."))
     186
     187                        os.system('update-grub')
    137188                        time.sleep(1)
    138189                        self.thread_ret={"status":True,"msg":"BROKEN"}
     
    154205                self.start_bar_button.show()
    155206                self.start_bar_button.set_sensitive(True)
    156                 self.info_box_stack.set_visible_child_name("info_start_bar")
    157                 self.txt_check_start_bar.set_text("The start bar has been removed from your system.")
     207                self.info_box_stack.set_visible_child_name("empty_box_start_bar")
    158208               
    159209        #check_gparted_thread
  • first-aid-kit/trunk/fuentes/first-aid-kit.install/usr/share/first-aid-kit/first-aid-kit.css

    r8474 r8481  
    105105        #OPTION_BUTTON:hover {
    106106                border: 0px;
     107                border-color: #209ddd;
    107108                background-color: #209ddd;
    108                 /*box-shadow: -0.5px 4px 4px #cecece;*/
     109                /*box-shadow: -0.3px 2px 2px #cecece;*/
    109110        }
    110111
  • first-aid-kit/trunk/fuentes/first-aid-kit.install/usr/share/first-aid-kit/rsrc/first-aid-kit.ui

    r8474 r8481  
    481481    </child>
    482482  </object>
     483  <object class="GtkBox" id="info_netfiles">
     484    <property name="visible">True</property>
     485    <property name="can_focus">False</property>
     486    <property name="orientation">vertical</property>
     487    <child>
     488      <object class="GtkBox" id="info_netfiles_into">
     489        <property name="visible">True</property>
     490        <property name="can_focus">False</property>
     491        <property name="margin_top">5</property>
     492        <property name="margin_bottom">5</property>
     493        <child>
     494          <object class="GtkSpinner" id="info_netfiles_spinner">
     495            <property name="visible">True</property>
     496            <property name="can_focus">False</property>
     497          </object>
     498          <packing>
     499            <property name="expand">False</property>
     500            <property name="fill">True</property>
     501            <property name="position">0</property>
     502          </packing>
     503        </child>
     504        <child>
     505          <object class="GtkLabel" id="info_netfiles_txt">
     506            <property name="visible">True</property>
     507            <property name="can_focus">False</property>
     508            <property name="halign">start</property>
     509            <property name="hexpand">True</property>
     510            <property name="xpad">10</property>
     511          </object>
     512          <packing>
     513            <property name="expand">True</property>
     514            <property name="fill">True</property>
     515            <property name="position">1</property>
     516          </packing>
     517        </child>
     518      </object>
     519      <packing>
     520        <property name="expand">False</property>
     521        <property name="fill">True</property>
     522        <property name="position">0</property>
     523      </packing>
     524    </child>
     525  </object>
     526  <object class="GtkBox" id="info_nettest">
     527    <property name="visible">True</property>
     528    <property name="can_focus">False</property>
     529    <property name="orientation">vertical</property>
     530    <child>
     531      <object class="GtkBox" id="box14">
     532        <property name="visible">True</property>
     533        <property name="can_focus">False</property>
     534        <property name="margin_top">10</property>
     535        <property name="margin_bottom">10</property>
     536        <child>
     537          <object class="GtkLabel" id="txt_check_nettest">
     538            <property name="visible">True</property>
     539            <property name="can_focus">False</property>
     540            <property name="xpad">10</property>
     541          </object>
     542          <packing>
     543            <property name="expand">False</property>
     544            <property name="fill">True</property>
     545            <property name="position">0</property>
     546          </packing>
     547        </child>
     548        <child>
     549          <object class="GtkSpinner" id="spinner_nettest">
     550            <property name="visible">True</property>
     551            <property name="can_focus">False</property>
     552          </object>
     553          <packing>
     554            <property name="expand">False</property>
     555            <property name="fill">True</property>
     556            <property name="position">1</property>
     557          </packing>
     558        </child>
     559      </object>
     560      <packing>
     561        <property name="expand">False</property>
     562        <property name="fill">True</property>
     563        <property name="pack_type">end</property>
     564        <property name="position">0</property>
     565      </packing>
     566    </child>
     567  </object>
    483568  <object class="GtkBox" id="info_start_bar">
    484569    <property name="visible">True</property>
     
    812897                <property name="halign">end</property>
    813898                <property name="margin_right">30</property>
    814                 <property name="label" translatable="yes">Speed</property>
    815899                <property name="xalign">0</property>
    816900              </object>
     
    10821166    </child>
    10831167    <child>
    1084       <object class="GtkBox" id="box5_">
    1085         <property name="visible">True</property>
    1086         <property name="can_focus">False</property>
    1087         <property name="margin_top">10</property>
    1088         <property name="margin_bottom">10</property>
    1089         <child>
    1090           <object class="GtkLabel" id="txt_check">
    1091             <property name="visible">True</property>
    1092             <property name="can_focus">False</property>
    1093             <property name="xpad">10</property>
    1094           </object>
    1095           <packing>
    1096             <property name="expand">False</property>
    1097             <property name="fill">True</property>
    1098             <property name="position">0</property>
    1099           </packing>
    1100         </child>
    1101         <child>
    1102           <object class="GtkSpinner" id="spinner">
    1103             <property name="visible">True</property>
    1104             <property name="can_focus">False</property>
    1105           </object>
    1106           <packing>
    1107             <property name="expand">False</property>
    1108             <property name="fill">True</property>
    1109             <property name="position">1</property>
    1110           </packing>
    1111         </child>
    1112       </object>
    1113       <packing>
    1114         <property name="expand">False</property>
    1115         <property name="fill">True</property>
    1116         <property name="pack_type">end</property>
    1117         <property name="position">4</property>
    1118       </packing>
     1168      <placeholder/>
    11191169    </child>
    11201170  </object>
     
    11971247            </child>
    11981248            <child>
    1199               <object class="GtkButton" id="acl_button">
    1200                 <property name="label" translatable="yes">Execute</property>
    1201                 <property name="use_action_appearance">True</property>
    1202                 <property name="visible">True</property>
    1203                 <property name="can_focus">True</property>
    1204                 <property name="receives_default">True</property>
     1249              <object class="GtkBox" id="acl_box">
     1250                <property name="visible">True</property>
     1251                <property name="can_focus">False</property>
    12051252                <property name="halign">end</property>
    1206                 <property name="valign">center</property>
     1253                <property name="spacing">5</property>
     1254                <child>
     1255                  <object class="GtkSpinner" id="acl_spinner">
     1256                    <property name="can_focus">False</property>
     1257                  </object>
     1258                  <packing>
     1259                    <property name="expand">True</property>
     1260                    <property name="fill">True</property>
     1261                    <property name="position">0</property>
     1262                  </packing>
     1263                </child>
     1264                <child>
     1265                  <object class="GtkButton" id="acl_button">
     1266                    <property name="label" translatable="yes">Execute</property>
     1267                    <property name="visible">True</property>
     1268                    <property name="can_focus">True</property>
     1269                    <property name="receives_default">True</property>
     1270                    <property name="halign">end</property>
     1271                    <property name="valign">center</property>
     1272                  </object>
     1273                  <packing>
     1274                    <property name="expand">False</property>
     1275                    <property name="fill">True</property>
     1276                    <property name="position">1</property>
     1277                  </packing>
     1278                </child>
    12071279              </object>
    12081280              <packing>
     
    12121284            </child>
    12131285            <child>
    1214               <object class="GtkButton" id="regenerate_button">
    1215                 <property name="label" translatable="yes">Execute</property>
    1216                 <property name="visible">True</property>
    1217                 <property name="can_focus">True</property>
    1218                 <property name="receives_default">True</property>
     1286              <object class="GtkBox" id="regenerate_box">
     1287                <property name="visible">True</property>
     1288                <property name="can_focus">False</property>
    12191289                <property name="halign">end</property>
    1220                 <property name="valign">center</property>
     1290                <property name="spacing">5</property>
     1291                <child>
     1292                  <object class="GtkSpinner" id="regenerate_spinner">
     1293                    <property name="can_focus">False</property>
     1294                  </object>
     1295                  <packing>
     1296                    <property name="expand">True</property>
     1297                    <property name="fill">True</property>
     1298                    <property name="position">0</property>
     1299                  </packing>
     1300                </child>
     1301                <child>
     1302                  <object class="GtkButton" id="regenerate_button">
     1303                    <property name="label" translatable="yes">Execute</property>
     1304                    <property name="visible">True</property>
     1305                    <property name="can_focus">True</property>
     1306                    <property name="receives_default">True</property>
     1307                    <property name="halign">end</property>
     1308                    <property name="valign">center</property>
     1309                  </object>
     1310                  <packing>
     1311                    <property name="expand">False</property>
     1312                    <property name="fill">True</property>
     1313                    <property name="position">1</property>
     1314                  </packing>
     1315                </child>
    12211316              </object>
    12221317              <packing>
     
    12401335    </child>
    12411336    <child>
    1242       <object class="GtkBox" id="box21">
    1243         <property name="visible">True</property>
    1244         <property name="can_focus">False</property>
    1245         <property name="margin_top">10</property>
    1246         <property name="margin_bottom">10</property>
    1247         <child>
    1248           <object class="GtkLabel" id="txt_check_netfiles">
    1249             <property name="visible">True</property>
    1250             <property name="can_focus">False</property>
    1251             <property name="xpad">10</property>
    1252           </object>
    1253           <packing>
    1254             <property name="expand">False</property>
    1255             <property name="fill">True</property>
    1256             <property name="position">0</property>
    1257           </packing>
    1258         </child>
    1259         <child>
    1260           <object class="GtkSpinner" id="spinner_netfiles">
    1261             <property name="visible">True</property>
    1262             <property name="can_focus">False</property>
    1263           </object>
    1264           <packing>
    1265             <property name="expand">False</property>
    1266             <property name="fill">True</property>
    1267             <property name="position">1</property>
    1268           </packing>
    1269         </child>
    1270       </object>
    1271       <packing>
    1272         <property name="expand">False</property>
    1273         <property name="fill">True</property>
    1274         <property name="pack_type">end</property>
    1275         <property name="position">5</property>
    1276       </packing>
     1337      <placeholder/>
    12771338    </child>
    12781339  </object>
     
    14231484        <property name="margin_top">2</property>
    14241485        <property name="ypad">8</property>
    1425         <property name="label" translatable="yes">Start Bar</property>
     1486        <property name="label" translatable="yes">Startup Bar Operations</property>
    14261487        <property name="xalign">0</property>
    14271488      </object>
     
    14621523                <property name="can_focus">False</property>
    14631524                <property name="xpad">10</property>
    1464                 <property name="label" translatable="yes">Start Bar remove</property>
     1525                <property name="label" translatable="yes">Startup Bar</property>
    14651526                <property name="xalign">0</property>
    14661527              </object>
Note: See TracChangeset for help on using the changeset viewer.