def __init__(self, summernote=None, boneName="", *args, **kwargs): if summernote is None: summernote = self super(TextInsertImageAction, self).__init__(translate("Insert Image"), *args, **kwargs) self["class"] = "icon text image viur-insert-image-btn" self["title"] = translate("Insert Image") self["style"]["display"] = "none" self.element.setAttribute("data-bonename", boneName) self.summernote = summernote
def __init__(self, *args, **kwargs): super(Search, self).__init__(*args, **kwargs) self.startSearchEvent = EventDispatcher("startSearch") self.addClass("flr-search") self.searchLbl = html5.H2() self.searchLbl.appendChild(html5.TextNode(translate("Fulltext search"))) self.searchLbl.addClass("flr-search-label") self.appendChild(self.searchLbl) self.searchInput = Input() self.searchInput["type"] = "text" self.appendChild(self.searchInput) self.btn = html5.ext.Button(translate("Search"), callback=self.doSearch) self.appendChild(self.btn) self.sinkEvent("onKeyDown") self.last_search = ""
def __init__(self, preview, *args, **kwargs): super(FileImagePopup, self).__init__(title=preview.currentFile.get("name", translate("Unnamed Image")), className="image-viewer", *args, **kwargs) self.sinkEvent("onClick") self.preview = preview img = html5.Img() img["src"] = getImagePreview(preview.currentFile, size=None) self.popupBody.appendChild(img) btn = html5.ext.Button(translate("Download"), self.onDownloadBtnClick) btn.addClass("btn--download") self.popupFoot.appendChild(btn) btn = html5.ext.Button(translate("Close"), self.onClick) btn.addClass("btn--close") self.popupFoot.appendChild(btn)
def unserialize(self, value=None): if value: serverToClient = [] if self.bone.boneStructure.get("date", True): serverToClient.append( "%d.%m.%Y") # fixme: Again german format?? if self.bone.boneStructure.get("time", True): serverToClient.append("%H:%M:%S") try: try: self.value = datetime.datetime.fromisoformat(value) except: self.value = datetime.datetime.strptime( value or "", " ".join(serverToClient)) value = self.value.strftime( translate("vi.bone.date.at").join( serverToClient)) # fixme: hmm... except: value = "Invalid Datetime Format" self.replaceChild(html5.TextNode(value or conf["emptyValue"]))
def additionalDropAreas(self): ''' Drag and Drop areas ''' self.afterDiv = html5.Div() self.afterDiv["class"] = ["after-element"] self.afterDiv.hide() aftertxt = html5.TextNode(translate(u"Nach dem Element einfügen")) self.afterDiv.appendChild(aftertxt) self.nodeWrapper.appendChild(self.afterDiv) self.beforeDiv = html5.Div() self.beforeDiv["class"] = ["before-element"] self.beforeDiv.hide() beforetxt = html5.TextNode(translate(u"Vor dem Element einfügen")) self.beforeDiv.appendChild(beforetxt) self.nodeWrapper.prependChild(self.beforeDiv)
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 disableDragMarkers(self): if self.leaveElement: self["title"] = translate("vi.data-insert") self.currentStatus = None if self.afterDiv: self.afterDiv.hide() if self.beforeDiv: self.beforeDiv.hide() self.removeClass("insert-here") else: self.leaveElement = True w = html5.window w.setTimeout(self.disableDragMarkers, 5000)
def onDragOver(self, event): """ Test wherever the current drag would mean "make it a child of us", "insert before us" or "insert after us" and apply the correct classes. """ if self.isDragged: return if "afterDiv" in dir(self): self.afterDiv.show() # show dropzones if "beforeDiv" in dir(self): self.beforeDiv.show() self.leaveElement = False # reset leaveMarker self["title"] = translate("vi.data-insert") if "beforeDiv" in dir(self) and event.target == self.beforeDiv.element: self.currentStatus = "top" self.removeClass("insert-here") self.beforeDiv.addClass("is-focused") self.afterDiv.removeClass("is-focused") elif "afterDiv" in dir(self) and event.target == self.afterDiv.element: self.currentStatus = "bottom" self.removeClass("insert-here") self.beforeDiv.removeClass("is-focused") self.afterDiv.addClass("is-focused") elif utils.doesEventHitWidgetOrChildren(event, self): self.currentStatus = "inner" self.addClass("insert-here") if "beforeDiv" in dir(self): self.beforeDiv.removeClass("is-focused") if "afterDiv" in dir(self): self.afterDiv.removeClass("is-focused") self["title"] = translate(u"In das Element einfügen") event.preventDefault() event.stopPropagation()
def __init__(self, shortText="", longText="", *args, **kwargs): super( ToolTipError, self ).__init__( *args, **kwargs ) self["class"] = "vi-tooltip msg msg--error is-active is-open" self.sinkEvent("onClick") self.prependChild( SvgIcon( "icon-arrow-right", title = shortText ) ) #language=HTMl self.fromHTML(""" <div class="msg-content" [name]="tooltipMsg"> <h2 class="msg-headline" [name]="tooltipHeadline"></h2> <div class="msg-descr" [name]="tooltipDescr"></div> </div> """) self.tooltipHeadline.element.innerHTML = translate("vi.tooltip.error") self.tooltipDescr.element.innerHTML = longText.replace( "\n", "<br />" )
def createWidget(self): self.appendChild("""<flare-input [name]="widget" type="password" class="flr-input input-group-item">""") if self.bone.readonly: self.verify = None else: self.appendChild(""" <label class="label" for="{{id}}"> {{txt}} </label> <flare-input id="{{id}}" [name]="verify" type="password"> """, txt = translate("reenter password"), id = "flr-%s-reenter" % self.bone.boneName) self.widget.element.autocomplete = "new-password" return self.widget
def _createWidget(self): self.appendChild( """<flr-input [name]="widget" type="password" class="input-group-item">""" ) user = conf["currentUser"] if self.bone.readonly or (user and "root" in user["access"]): self.verify = None else: self.appendChild(""" <label class="label" for="{{id}}"> {{txt}} </label> <flr-input id="{{id}}" [name]="verify" type="password"> """, vars={ "txt": translate("reenter password"), "id": "flr-%s-reenter" % self.bone.boneName })
def __init__( self, moduleName, boneName, skelStructure, errors=None, errorQueue=None ): super().__init__() self.moduleName = moduleName self.boneName = boneName self.skelStructure = skelStructure self.boneStructure = self.skelStructure[self.boneName] self.errors = errors self.errorQueue = errorQueue self.readonly = bool(self.boneStructure.get("readonly")) self.required = bool(self.boneStructure.get("required")) self.multiple = bool(self.boneStructure.get("multiple")) self.languages = self.boneStructure.get("languages") self.boneErrors = [ translate(e["errorMessage"]) for e in collectBoneErrors(self.errors, self.boneName, self.boneStructure) ]
def toggleArrow(self): self.nodeToggle["title"] = translate("Expand/Collapse") #embedSvg = embedsvg.get("icons-arrow-right") embedSvg = None if embedSvg: self.nodeToggle.element.innerHTML = embedSvg + self.nodeToggle.element.innerHTML
def toggleArrow(self): self.nodeToggle["title"] = translate("Expand/Collapse") self.nodeToggle.prependChild( SvgIcon( "icon-arrow-right", title = translate("Expand/Collapse") ) )
from flare.i18n import translate from flare.event import EventDispatcher conf = { # Global holder to the currently logged-in user "currentUser": None, # A value displayed as "empty value" "emptyValue": translate("-"), # Language settings "currentLanguage": "de", # Vi version number "vi.version": (3, 0, 0), # Appendix to version "vi.version.appendix": "dev", # ViUR core name "vi.viur": "ViUR-core", # ViUR vi name "vi.name": "ViUR-vi", # Title delimiter "vi.title.delimiter": " - ", # Which access rights are required to open the Vi? "vi.access.rights": ["admin", "root"], # Context access variable prefix
def unserialize( self, value = None ): self.value = value self.appendChild( html5.TextNode( translate( str( bool( value ) ) ) ), replace = True )