;;; -*- mode: Lisp; Syntax: Common-Lisp; -*-
;;;
;;; Copyright (c) 2009 by the authors.
;;;
;;; See LICENCE for details.
(in-package :hu.dwim.presentation)
;; TODO localize this file!
;;;;;;
;;; context-sensitive-help
(def constant +context-sensitive-help-parameter-name+ "_hlp")
(def (icon e) context-sensitive-help :tooltip nil)
(def (component e) context-sensitive-help/widget (content/mixin frame-unique-id/mixin)
()
(:default-initargs :content (icon/widget context-sensitive-help)))
(def render-xhtml context-sensitive-help/widget
(when *frame*
(bind ((href (register-action/href (make-action (show-context-sensitive-help -self-)) :delayed-content #t)))
)))
(def layered-function show-context-sensitive-help (component)
(:method ((self context-sensitive-help/widget))
(with-request-parameters (((ids +context-sensitive-help-parameter-name+) nil))
(setf ids (ensure-list ids))
(bind ((components nil))
(map-descendant-components (root-component-of *frame*)
(lambda (descendant)
(when (and (typep descendant 'id/mixin)
(member (id-of descendant) ids :test #'string=))
(push descendant components))))
(make-component-rendering-response (or (some (lambda (component)
(make-context-sensitive-help component (component-dispatch-class component) (component-dispatch-prototype component) (component-value-of component)))
components)
#"context-sensitive-help.not-available"))))))
(def layered-method make-context-sensitive-help ((component context-sensitive-help/widget) class prototype value)
#"context-sensitive-help.self-description")
;;;;;;
;;; usage-help/widget
(def (component e) usage-help/widget (component-messages/widget remote-setup/mixin title/mixin)
()
(:default-initargs :title (title/widget () "Segítség")))
(def (macro e) usage-help/widget (&rest args &key &allow-other-keys)
`(make-instance 'usage-help/widget ,@args))
(def render-xhtml usage-help/widget
(when (parameter-value +no-javascript-error-parameter-name+)
(add-component-error-message -self- "Nincs engedélyezve az internet böngészőjében a JavaScript programok futtatása, így az alkalmazás sajnos egyátalán nem használható. Kérjük engedélyezze a JavaScript futtatását a beállításokban!"))
(unless (supported? (identify-http-user-agent *request*))
(add-component-error-message -self- "Ezt az internet böngészőt vagy annak az éppen használt verzióját az alkalmazás nem támogatja. Az alábbi oldalon olvashatja a támogatott böngészők listáját és a letöltésükhöz szükséges információkat. A kellemetlenségért elnézését kérjük!"))
(with-render-style/component (-self-)
(render-title-for -self-)
(render-component-messages-for -self-)
;; TODO: make this a book and localize it
-
- >
-
-
-
-
- >
;; TODO get the timezone from local-time:*default-timezone*
>
>
- >>
>
- >>
>
- >>
>
- >>
>
- >>>))
(def method component-style-class ((self usage-help/widget))
(string+ "content-border " (call-next-method)))