def prompt_delete(self, instance): self.pop_layout = FloatLayout(size=(Window.width, 200)) self.del_popup = Popup(title='Delete Attribute', content=self.pop_layout, size_hint=(None,None), size=(400,200), background=BKGD_DCHRC, pos_hint={"center_x":.5, 'top':.7}, auto_dismiss=False) self.pop_layout.add_widget(Label(text=("Delete Attribute?"), color=(1,1,1,1), pos_hint={'top':1.2, "center_x":.5}, font_size=14)) self.pop_layout.add_widget(HoverButton(text="Delete", button_up=BTN_DCHRC[0], button_down=BTN_DCHRC[1], font_size=14, size_hint=(None,None), size=(100,40), pos_hint={"center_x":.7, 'top':.35}, on_press=self.delete_label)) self.pop_layout.add_widget(HoverButton(text="Cancel", button_up=BTN_DCHRC[0], button_down=BTN_DCHRC[1], font_size=14, size_hint=(None,None), size=(100,40), pos_hint={"center_x":.3, 'top':.35}, on_press=self.del_popup.dismiss)) self.del_popup.open()
def create_user_button(self): self.layout.add_widget( HoverButton(font_size=15, text='Create User', button_up=BTN_DCHRC[0], button_down=BTN_DCHRC[1], on_press=self.commit_create_user, pos_hint={ "center_x": .66, "top": .1 }, size_hint=(None, None), size=(120, 40))) self.layout.add_widget( HoverButton(font_size=15, text='Cancel', button_up=BTN_DCHRC[0], button_down=BTN_DCHRC[1], on_press=self.dismiss, pos_hint={ "center_x": .34, "top": .1 }, size_hint=(None, None), size=(120, 40)))
def draw_layout(self): self.button_x = .5 if manager.CURRENT_GROUP != None: self.button_x = .3 self.dropdown = DropDown(auto_width=False, width=180, max_height=180) self.dropdown.main_button = HoverButton(text="Select User", size=(180,40), size_hint=(None,None), pos_hint={"center_x":.5, 'top':.8}, button_down=DD_DCHRC[1], button_up=DD_DCHRC[0], on_release=self.dropdown.open) self.layout.add_widget(self.dropdown.main_button) self.remove_user_dropdown() self.layout.add_widget(HoverButton(text="Remove", button_down=BTN_DCHRC[1], button_up=BTN_DCHRC[0], font_size=14, size_hint=(None,None), size=(100,40), pos_hint={"center_x":.7, 'top':.35}, on_press=self.remove_from_group)) else: self.layout.add_widget(Label(text="No Group Selected", font_size=14, pos_hint={"center_x":.5, 'top':1.2})) self.layout.add_widget(HoverButton(text="Cancel", button_down=BTN_DCHRC[1], button_up=BTN_DCHRC[0], font_size=14, size_hint=(None,None), size=(100,40), pos_hint={"center_x":self.button_x, 'top':.35}, on_press=self.dismiss))
def draw_layout(self): self.layout.add_widget(Label(text=('Your admin password is currently set to \'admin\'.' + \ '\nThis is insecure. Change admin password?'), halign='center', pos_hint={"center_x":.5, 'top':1.25})) self.layout.add_widget( HoverButton(text="Change", background_normal=BKGD_LCHRC, font_size=14, button_up=BTN_DCHRC[0], button_down=BTN_DCHRC[1], size_hint=(None, None), size=(100, 40), pos_hint={ "center_x": .65, 'top': .35 }, on_press=self.open_new_popup)) self.layout.add_widget( HoverButton(text="Ignore", button_up=BTN_DCHRC[0], button_down=BTN_DCHRC[1], font_size=14, size_hint=(None, None), size=(100, 40), pos_hint={ "center_x": .35, 'top': .35 }, on_press=self.dismiss))
def draw_layout(self): self.layout.add_widget( Label(text="Change Admin Password", pos_hint={ "center_x": .5, 'top': 1.25 })) self.new_passwd = TextInput(size_hint=(.8, None), size=(0, 30), write_tab=False, pos_hint={ 'center_x': .5, 'top': .878 }, password=True, hint_text='new password', multiline=False) self.verify_new_passwd = TextInput(size_hint=(.8, None), size=(0, 30), write_tab=False, pos_hint={ 'center_x': .5, 'top': .62 }, password=True, hint_text='verify new password', multiline=False) self.layout.add_widget(self.new_passwd) self.layout.add_widget(self.verify_new_passwd) self.layout.add_widget( HoverButton(text="Confirm", background_normal=BKGD_LCHRC, font_size=14, button_up=BTN_DCHRC[0], button_down=BTN_DCHRC[1], size_hint=(None, None), size=(100, 40), pos_hint={ "center_x": .65, 'top': .35 }, on_press=self.update_password)) self.layout.add_widget( HoverButton(text="Cancel", button_up=BTN_DCHRC[0], button_down=BTN_DCHRC[1], font_size=14, size_hint=(None, None), size=(100, 40), pos_hint={ "center_x": .35, 'top': .35 }, on_press=self.dismiss))
def modify_priority_dropdown(self): group_members = database.get_group_members(manager.CURRENT_GROUP) for user in group_members: member_button = HoverButton(text=user[0], button_up=DD_DCHRC[0], button_down=DD_DCHRC[1], font_size=12, size=(180, 30), size_hint=(None, None), on_release=self.select_user_to_mod) member_button.priority = user[1] self.dropdown.add_widget(member_button)
def draw_dropdown(self, instance): self.dropdown.clear_widgets() btn = HoverButton(text='None', size_hint_y=None, height=30, button_down=DD_DCHRC[1], button_up=DD_DCHRC[0], shorten=True, text_size=(Window.width * .2, None), halign='center') btn.bind(on_release=lambda btn: self.dropdown.select(btn.text)) self.dropdown.add_widget(btn) for preset in manager.presets: btn = HoverButton(text=preset.name, size_hint_y=None, height=30, button_down=DD_DCHRC[1], button_up=DD_DCHRC[0], shorten=True, text_size=(Window.width * .2, None), halign='center') btn.bind(on_release=lambda btn: self.dropdown.select(btn.text)) self.dropdown.add_widget(btn) self.dropdown.open(self.dropdown.main_button)
def create_search_filter(self): self.search_dropdown = DropDown(auto_width=False, max_height=180, on_dismiss=self.reactivate_buttons) filter_layout = FloatLayout(size=(80, 60)) search_label = Label(text="Search Mode", font_size=12, pos_hint={'center_x':.5, 'top':1.35}) self.search_mode = HoverButton(text="Username", font_size=12, size_hint=(None, None), size=(80,30), pos_hint={'right':1, 'center_y':.4}, button_up=DD_LCHRC[0], button_down=DD_LCHRC[1], on_release=lambda instance: self.open_dropdown(instance, self.search_dropdown)) self.search_mode.name_button = HoverButton(text="Username", font_size=12, button_up=DD_LCHRC[0], pos_hint={"right":1}, button_down=DD_LCHRC[1], size_hint=(None,None), size=(100,30), on_release=self.switch_search_mode) self.search_mode.attr_button = HoverButton(text="Attr Name", font_size=12, button_up=DD_LCHRC[0], button_down=DD_LCHRC[1], size_hint=(None,None), size=(100,30), on_release=self.switch_search_mode) self.search_mode.val_button = HoverButton(text="Attr Value", font_size=12, button_up=DD_LCHRC[0], button_down=DD_LCHRC[1], size_hint=(None,None), size=(100,30), on_release=self.switch_search_mode) self.search_dropdown.add_widget(self.search_mode.name_button) self.search_dropdown.add_widget(self.search_mode.attr_button) self.search_dropdown.add_widget(self.search_mode.val_button) self.button_panel.add_widget(filter_layout) filter_layout.add_widget(self.search_mode) filter_layout.add_widget(search_label)
def __init__(self, **kwargs): super(OptionsPanel, self).__init__(cols=1, size_hint=(None, 1), row_default_height=40, row_force_default=True, padding=[5,10], spacing=[0,5], size=(180, Window.height - 50), **kwargs) with self.canvas.before: self.rect=Image(source=BKGD_DCHRC, allow_stretch=True, keep_ratio=False) self.bind(pos=manager.update_rect, size=manager.update_rect) self.popups = Popups() self.change_pw = HoverButton(text="Change Password", font_size=15, button_up=BTN_DCHRC[0], button_down=BTN_DCHRC[1], group='options', on_press=self.popups.change_password) self.new_user_attr = HoverButton(text='New Attribute', button_up=BTN_DCHRC[0], button_down=BTN_DCHRC[1], group='options', on_press=lambda instance: manager.menu.add_new_label()) self.delete_user = HoverButton(text="Delete User", button_up=BTN_DCHRC[0], button_down=BTN_DCHRC[1], group='options', on_press=self.popups.verify_deletion) self.add_member = HoverButton(text="Add User", button_up=BTN_DCHRC[0], button_down=BTN_DCHRC[1], group='options', on_press=self.popups.add_user_popup) self.change_priority = HoverButton(text="Edit User Priority", button_up=BTN_DCHRC[0], button_down=BTN_DCHRC[1], group='options', on_press=self.popups.modify_priority_popup) self.remove_member = HoverButton(text="Remove User", button_up=BTN_DCHRC[0], button_down=BTN_DCHRC[1], group='options', on_press=self.popups.remove_user_popup) self.new_group_attr = HoverButton(text="New Group Attribute", button_up=BTN_DCHRC[0], button_down=BTN_DCHRC[1], group='options', on_press=lambda instance: manager.menu.add_new_label(True)) self.delete_group = HoverButton(text="Delete Group", button_up=BTN_DCHRC[0], button_down=BTN_DCHRC[1], group='options', on_press=self.popups.delete_group_popup)
def create_add_group_button(self): self.button_panel.add_widget(HoverButton(text="Add New Group", button_up=BTN_LCHRC[0], button_down=BTN_LCHRC[1], font_size=14, size=(125,40), size_hint=(None,None), pos_hint={'center_x':.5, 'center_y':.5}, on_press=self.popups.open_new_group_popup))
def create_admin_pw_button(self): self.settings.add_widget(HoverButton(text="Change Admin Password", button_up=DD_LCHRC[0], button_down=DD_LCHRC[1], font_size=12, size=(180,40), size_hint=(None,None), pos_hint={'right':1, 'right':1}, on_press=self.popups.change_adminpw_popup))
def create_logout_button(self): self.settings.add_widget(HoverButton(text="Logout", button_up=DD_LCHRC[0], button_down=DD_LCHRC[1], font_size=12, size=(180,40), size_hint=(None,None), pos_hint={'right':1, 'right':1}, on_press=lambda instance: manager.logout(self.settings)))
def remove_user_dropdown(self): self.group_members = database.get_group_members(manager.CURRENT_GROUP) for user in self.group_members: self.dropdown.add_widget(HoverButton(text=user[0], button_up=DD_DCHRC[0], button_down=DD_DCHRC[1], font_size=12, size=(180,30), size_hint=(None,None), on_release=self.select_user))
def create_upload_file_button(self): def to_file_chooser(instance): self.settings.dismiss() self.popups.open_file_chooser(instance) self.settings.add_widget(HoverButton(text="Upload User File", button_up=DD_LCHRC[0], button_down=DD_LCHRC[1], font_size=12, size=(180,40), size_hint=(None,None), pos_hint={'right':1, 'right':1}, on_press=to_file_chooser))
def draw_layout(self): self.button_x = .5 self.message = "No user currently selected" if manager.CURRENT_USER != None: self.message = "Are you sure you want to delete user " \ + manager.CURRENT_USER + "?" self.button_x = .35 self.layout.add_widget( Label(text=self.message, pos_hint={ "center_x": .5, 'top': 1.25 })) self.layout.add_widget( HoverButton(text="Cancel", button_down=BTN_DCHRC[1], button_up=BTN_DCHRC[0], font_size=14, size_hint=(None, None), size=(100, 40), pos_hint={ "center_x": self.button_x, 'top': .35 }, on_press=self.dismiss)) if manager.CURRENT_USER: self.layout.add_widget( HoverButton(text="Delete", button_down=BTN_DCHRC[1], button_up=BTN_DCHRC[0], font_size=14, size_hint=(None, None), size=(100, 40), pos_hint={ "center_x": .65, 'top': .35 }, on_press=self.delete_user))
def draw_layout(self): self.file_choose = FileChooserListView(path='~/', pos_hint={'center_x':.5, 'top':1}, filters=['*.txt'], on_submit=self.upload_file) self.layout.add_widget(self.file_choose) self.layout.add_widget(HoverButton(text="X", button_up=DD_DCHRC[0], button_down=DD_DCHRC[1], font_size = 15, size=(25,25), size_hint=(None,None), pos_hint={'right':1, 'top':1.12}, on_press=self.dismiss))
def draw_layout(self): self.dropdown = DropDown(auto_width=False, width=180, max_height=180, on_dismiss=self.display_num_down) self.dropdown.main_button = HoverButton(text="Select Users", size=(180,30), size_hint=(None,None), pos_hint={"center_x":.5, 'top':.65}, button_down=DD_DCHRC[1], button_up=DD_DCHRC[0], on_release=self.display_label) self.group_name = TextInput(size_hint=(None, None), size=(250, 30), pos_hint={'center_x':.5, 'top':.91}, hint_text='Group Name', multiline=False) self.layout.add_widget(self.group_name) self.layout.add_widget(self.dropdown.main_button) self.add_group_dropdown() self.layout.add_widget(HoverButton(text="Add", button_down=BTN_DCHRC[1], button_up=BTN_DCHRC[0], font_size=14, size_hint=(None,None), size=(100,40), pos_hint={"center_x":.7, 'top':.35}, on_press=self.add_group)) self.layout.add_widget(HoverButton(text="Cancel", button_down=BTN_DCHRC[1], button_up=BTN_DCHRC[0], font_size=14, size_hint=(None,None), size=(100,40), pos_hint={"center_x":.3, 'top':.35}, on_press=self.dismiss))
def create_presets_menu_button(self): #Used by presets menu button to transition screens def to_preset_manager(instance): manager.sm.current = "presetMenu" self.settings.dismiss() self.settings.add_widget(HoverButton(text="User Presets Manager", button_up=DD_LCHRC[0], button_down=DD_LCHRC[1], font_size=12, size=(180,40), size_hint=(None,None), pos_hint={'right':1, 'right':1}, on_press=to_preset_manager))
def create_settings_dropdown(self): self.settings = DropDown(auto_width=False, width=180, pos_hint={"right":1}, on_dismiss=self.reactivate_buttons) mainbutton = HoverButton(size=(60,60),size_hint=(None,None), button_down=BTN_OPTS[1], button_up=BTN_OPTS[0], pos_hint={"center_y":.5}, on_release=lambda instance: self.open_dropdown(instance, self.settings)) self.button_panel.add_widget(mainbutton) if manager.ADMIN: self.create_presets_menu_button() self.create_upload_file_button() self.create_admin_pw_button() self.create_logout_button()
def create_dropdown(self): self.dropdown = DropDown() self.dropdown.main_button = HoverButton(text='Load Config Preset', size=(0, 40), size_hint=(.3, None), pos_hint={ 'right': .95, 'top': .8 }, button_down=DD_DCHRC[1], button_up=DD_DCHRC[0], shorten=True, text_size=(Window.width * .2, None), halign='center') self.dropdown.main_button.bind(on_release=self.draw_dropdown) self.dropdown.bind( on_select=lambda instance, x: self.dropdown_select(instance, x)) self.layout.add_widget(self.dropdown.main_button)
def draw_layout(self): self.button_x = .5 if manager.CURRENT_GROUP != None: self.button_x = .3 self.dropdown = DropDown(auto_width=False, width=180, max_height=180) self.dropdown.mainbutton = HoverButton( text="Select User", size=(180, 40), size_hint=(None, None), pos_hint={ "center_x": .4, 'top': .8 }, button_down=DD_DCHRC[1], button_up=DD_DCHRC[0], on_release=self.dropdown.open) self.layout.add_widget(self.dropdown.mainbutton) self.modify_priority_dropdown() self.layout.add_widget( Label(text="Priority", color=(1, 1, 1, 1), pos_hint={ 'top': 1.3, "center_x": .78 }, font_size=11)) self.priority = TextInput(size_hint=(None, None), size=(50, 30), input_filter='int', multiline=False, pos_hint={ 'top': .73, "center_x": .78 }) self.layout.add_widget(self.priority) self.layout.add_widget( HoverButton(text="Change", button_down=BTN_DCHRC[1], button_up=BTN_DCHRC[0], font_size=14, size_hint=(None, None), size=(100, 40), pos_hint={ "center_x": .7, 'top': .35 }, on_press=self.commit_modify_priority)) else: self.layout.add_widget( Label(text="No Group Selected", font_size=14, pos_hint={ "center_x": .5, 'top': 1.2 })) self.layout.add_widget( HoverButton(text="Cancel", button_down=BTN_DCHRC[1], button_up=BTN_DCHRC[0], font_size=14, size_hint=(None, None), size=(100, 40), pos_hint={ "center_x": self.button_x, 'top': .35 }, on_press=self.dismiss))
def __init__(self, editable = True, attr_category = "radreply", group = False, **kwargs): super(EditableLabel, self).__init__(**kwargs) self.editable = editable self.group = group self.error_present = False self.current_attr = None self.attr_category = attr_category if self.text: attr_values = database.split_attributes(self.text) self.current_attr = Attribute(attr_values[0], attr_values[1], attr_values[2], self.attr_category) self.edit_button = HoverButton(button_up=BTN_EDIT[0], button_down=BTN_EDIT[1], size_hint=(None,None), size=(30,30), pos_hint={"center_y":.5}, pos=(self.x + self.width, self.y), on_release=self.toggle_edit) self.confirm_button = HoverButton(button_up=BTN_CONFIRM[0], button_down=BTN_CONFIRM[1], size_hint=(None,None), size=(30,30), pos_hint={"center_y":.5}, pos=(self.x + self.width, self.y), on_release=self.validate_button) self.delete_button = HoverButton(button_up=BTN_DELET[0], button_down=BTN_DELET[1], size_hint=(None,None), size=(30,30), pos_hint={"center_y":.5}, pos=(self.x + self.width + 30, self.y), on_release=self.prompt_delete) self.clear_button = Button(text="x", size=(30, 30), background_normal=BTN_TRANSP[0], background_down=BTN_TRANSP[0], color=(150.0/255, 150.0/255, 150.0/255, 1), font_size=20, pos=(self.x + self.width - 30, self.y), on_press=self.clear_label) self.text_input = TextInput(text=self.text, size=self.size, size_hint=(None, None), font_size=self.font_size, font_name=self.font_name, pos=self.pos, multiline=False) self.dropdown = DropDown(auto_width=False, width=60, pos=(self.x - 60, self.y)) category = "R" if self.attr_category == "radcheck": category = "C" if self.group: self.attr_category = self.determine_category(self.attr_category) self.drop_button = HoverButton(text=category, size=(60,30), size_hint=(None,None), button_up=DD_LCHRC[0], button_down=DD_LCHRC[1], font_size=12, pos=(self.x - 60, self.y), on_release=self.dropdown.open) self.rr_button = HoverButton(text="Reply", button_up=DD_DCHRC[0], button_down=DD_DCHRC[1], font_size=12, size=(60,30), size_hint=(None,None), on_press=self.select_rr) self.rc_button = HoverButton(text="Check", button_up=DD_DCHRC[0], button_down=DD_DCHRC[1], font_size=12, size=(60,30), size_hint=(None,None), on_press=self.select_rc) self.category_display = HoverButton(text=category, button_up=BKGD_CHRC, button_down=BKGD_CHRC, font_size=12, size=(60,30), pos=(self.x - 60, self.y), size_hint=(None,None)) self.dropdown.add_widget(self.rr_button) self.dropdown.add_widget(self.rc_button) self.bind(pos=self.text_input.setter('pos'), size=self.text_input.setter('size')) self.bind(pos=self.move_buttons) self.text_input.bind(on_text_validate=self.on_text_validate) if self.editable: self.add_widget(self.edit_button) self.add_widget(self.delete_button) self.add_widget(self.category_display)