def requestClients( self ): self.currentlistHandler = ListHandler(self.modulname,"list",params = self.filter, eventName = "requestList") self.currentlistHandler.requestList.register( self ) self.currentlistHandler.requestData() self.state = StateHandler((), self ) self.state.updateState( "activeSelection", None ) self.state.updateState( "acceptSelection", None )
def __init__(self): super().__init__() self.addClass(["input-group"]) # language=HTML self.appendChild(""" <input [name]="widget" type="text" class="input input--small"> <flare-button class="btn btn--small" :callback="applyFilter">filtern</flare-button> """) self.state = StateHandler((), self) self.state.updateState("applyfilter", None)
def __init__(self, view): super().__init__() self.urlHash, self.urlParams = getUrlHashAsObject() self.view = view self.initWidget() self.state = StateHandler((), self)
class ButtonBarSearch(html5.Div): def __init__(self): super().__init__() self.addClass(["input-group"]) # language=HTML self.appendChild(""" <input [name]="widget" type="text" class="input input--small"> <flare-button class="btn btn--small" :callback="applyFilter">filtern</flare-button> """) self.state = StateHandler((), self) self.state.updateState("applyfilter", None) def applyFilter(self, widget): currentValue = self.widget["value"] self.state.updateState("applyfilter", currentValue) def onApplyfilterChanged(self, event, *args, **kwargs): pass def onActiveButtonChanged(self, event, *args, **kwargs): pass
class ButtonBar(html5.Div): def __init__(self): super().__init__() self.addClass("bar") self.state = StateHandler((), self) self.state.updateState("activeButton", None) def onActiveButtonChanged(self, event, *args, **kwargs): pass def addButton(self, name, btnStr): self.appendChild(btnStr) if name in dir(self): btn = getattr(self, name) btn.name = name btn.callback = self.buttonClicked self.state.register("activeButton", btn) return btn return None def buttonClicked(self, widget): self.state.updateState("activeButton", widget)
def __init__(self): super().__init__() self.addClass("bar") self.state = StateHandler((), self) self.state.updateState("activeButton", None)
class ListSelection(Popup): def __init__(self, modulname, filter=None, title=None, id=None, className=None, icon=None, enableShortcuts=True, closeable=True, footer=True, *args, **kwargs): title = translate("Select %s" % modulname) footer = False self.modulname = modulname self.filter = filter or {} super().__init__(title, id, className, icon, enableShortcuts, closeable, footer, *args, **kwargs) self.addClass("popup--wide") self.buildListSelection() def requestClients(self): self.currentlistHandler = ListHandler(self.modulname, "list", params=self.filter, eventName="requestList") self.currentlistHandler.requestList.register(self) self.currentlistHandler.requestData() self.state = StateHandler((), self) self.state.updateState("activeSelection", None) self.state.updateState("acceptSelection", None) def onRequestList(self, skellist): self.listelements.removeAllChildren() for skel in skellist: skelwidget = SkellistItem(skel) skelwidget.callback = self.activateSelection # real button action self.state.register( "activeSelection", skelwidget ) # register to change State for active State handling self.listelements.appendChild(skelwidget) def onActiveSelectionChanged(self, event, *args, **kwargs): if event: self.selectbtn["disabled"] = False else: self.selectbtn["disabled"] = True def activateSelection(self, widget): self.state.updateState("activeSelection", widget) def reloadList(self): self.state.updateState("activeSelection", None) self.currentlistHandler.reload() def buildListSelection(self): popupwrap = html5.Div() popupwrap.addClass(["box", "main-box"]) # build Buttonbar self.buttonbar = ButtonBar() # language=HTML self.buttonbar.addButton( "reloadbtn", """<flare-buttonbar-button text="neuladen" [name]="reloadbtn"></flare-buttonbar-button>""", ) # language=HTML self.filterbtn = self.buttonbar.addButton( "filterbtn", """<flare-buttonbar-search [name]="filterbtn"></flare-buttonbar-search>""", ) self.filterbtn.state.register("applyfilter", self) # language=HTML self.selectbtn = self.buttonbar.addButton( "selectbtn", """<flare-buttonbar-button text="auswählen" [name]="selectbtn"></flare-buttonbar-button>""", ) self.buttonbar.state.register("activeButton", self) popupwrap.appendChild(self.buttonbar) self.listelements = html5.Div() popupwrap.appendChild(self.listelements) self.requestClients() self.setContent(popupwrap) def onApplyfilterChanged(self, value, *args, **kwargs): self.currentlistHandler.filter({"search": value}) def onAcceptSelectionChanged(self, event, *args, **kwargs): pass def onActiveButtonChanged(self, event, *args, **kwargs): if event.widget.name == "reloadbtn": self.reloadList() elif event.widget.name == "selectbtn": self.acceptSelection() def acceptSelection(self): selection = self.state.getState("activeSelection") if selection: self.state.updateState("acceptSelection", selection) self.close() def setContent(self, widget): self.popupBody.appendChild(widget)