XSLTUser

Galle Gonzo msged/index.html public/xslt-method public <form><template>code</template></form> huhu user identification page

userid

(root (make element gi: 'p (let ((sn (select-elements (xsl-variable "business-card") 'surname))) (if (node-list-empty? sn) (empty-node-list) (children (node-list-first sn))))))

This is my personal page. It's not much here yet, sorry that's on my plate. At time goes by this will become my virtual bussiness card.

To get started, visit the upcoming Askemos documentation, or the README?, find some fragments available in the in the XSLT? fragment library. For examples see the web mail application (beware: the mail tool will not work upon installation, see docs how to enable it) the address data base example and the nunu a cross between wiki, wrapbit and others. For up to date version please visit askemos.org.

Before proceeding: when filling in forms, you are likely to become a victim of an implementation restriction you better know about.

Edit properties of this place, if you need to change names, secrets or views. (Note: There is a form included to change the protection, but this place does not support the request.)

There's a primitive editor to create and send messages to arbitrary places.

Log out. (How log out works.)


Create New Place
Action Data read from
using
Protection initialize (optional)
and find that document later here

last:

me:

Linkname

===>

Grant user the right meant by document .

I grant that right.
Revoke from the right meant by document .

I that right.
Send the usual "take over" request somewhere:
Defaults
Business Card
Somehow I can't see anything. Dunno why.

Source code:

<!--

This is the page, from which the xslt-user.xml file is constructed
(by resolving the "@"-includes.  The final outcome is distributed
in the app directory.  Due to automatic, not too practicle
formating you don't want to read that file but browse the source.

-->
<xsl:stylesheet xmlns:dsssl="http://www.askemos.org/2000/NameSpaceDSSSL" xmlns:mind="http://www.askemos.org/2000/CoreAPI" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 <xsl:variable name="business-card">
  <email label="E-Mail"></email>
  <phone label="Telefon"></phone>
  <surname label="Name">Galle</surname>
  <firstname label="Vorname">Gonzo</firstname>
 </xsl:variable>
 <xsl:variable name="state">
  <srcplace label="from">msged/index.html</srcplace>
  <method label="Methode">public/xslt-method</method>
  <protection label="Protection">public</protection>
  <message label="Nachricht">&lt;form&gt;&lt;template&gt;code&lt;/template&gt;&lt;/form&gt;</message>
  <initialize label="Initstring"></initialize>
  <lname label="Linkname">huhu</lname>
 </xsl:variable>
 <xsl:template match="request[@type=&quot;read&quot;]">
  <xsl:choose>
   <dsssl:when test="(pair? (msg &apos;destination))">
<!--

  The form "mind:forward" is syntactic sugar.  See CoreAPI.

  -->
    <mind:forward></mind:forward>
   </dsssl:when>
   <dsssl:when test="(is-metainfo-request? msg)">
    <rdf:RDF xmlns:a="http://www.askemos.org/2000/NameSpaceDSSSL" xmlns:dc="http://purl.org/dc/elements/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xml:space="default">
     <a:copy-of select="
(make element gi: &apos;Description
 attributes: `((about ,(oid-&gt;string (me &apos;get &apos;id))))
 (node-list-filter
   (lambda (p)
     (not (eq? (gi p) &apos;links)))
  (children (children (me (me &apos;get &apos;id) &apos;metainfo))))
)
"></a:copy-of>
    </rdf:RDF>
   </dsssl:when>
<!--
Usually it's enough to check for service-level to protect the metaview,
but for theuser page it's better to also deliver it "anyway".
This is not exactly needed, but otherwise the users might lock themself
out accidentally.
-->
   <dsssl:when test="(and (is-meta-form? msg)
                          (or (service-level)
                              (eq? (me &apos;get &apos;id) (msg &apos;dc-creator))))">
<!--
 A meta form is a special view a the place, which is concerned with
 some details the normal use requires anyway, but does not explicitly
 care about.

 To ease and unify the handling of meta data, we've got a special
 view, wich might evolve as time goes by.  To view that default we
 include the next "when" case.
-->
    <dsssl:copy-of select="(message-body (metaview me msg))"></dsssl:copy-of>
   </dsssl:when>
   <dsssl:when test="
   (equal? (data (form-field &quot;template&quot; (current-node))) &quot;GetBusinessCard&quot; )">
    <dsssl:copy-of select="(xsl-variable &quot;business-card&quot;)"></dsssl:copy-of>
   </dsssl:when>
   <dsssl:when test="(service-level (public-oid) (my-oid))">
    <html xmlns="http://www.w3.org/1999/xhtml">
     <head>
      <title>user identification page</title>
      <meta content="text/html" http-equiv="Content-Type"></meta>
     </head>
     <body bgcolor="white">
      <h1>
       <dsssl:copy-of select="(data (select-elements (xsl-variable &quot;business-card&quot;) &apos;firstname))">userid</dsssl:copy-of>
      </h1>
      <dsssl:copy-of select="#CONTENT">
(root (make element gi: 'p
        (let ((sn (select-elements (xsl-variable "business-card") 'surname)))
          (if (node-list-empty? sn)
              (empty-node-list)
              (children (node-list-first sn))))))
</dsssl:copy-of>
      <p>
This is my personal page. It's not much here yet, sorry that's on
my plate.  At time goes by this will become my virtual bussiness card.
</p>
<!--
 The following views are restricted to the users eyes.  Most of this
 sections are personalized input forms the user usually needs.  Not
 that it would harm, if others would submit these forms; access
 control is to be performed upon write requests.  But we a) might want
 to restrict the view, b) others simply have no use for them.
-->
      <dsssl:if test="(service-level)">@UserExpl<hr></hr>@UserForm</dsssl:if>
     </body>
    </html>
   </dsssl:when>
   <xsl:otherwise>
    <html>Somehow I can't see anything.  Dunno why.</html>
   </xsl:otherwise>
  </xsl:choose>
 </xsl:template>
<!--

The lower half applies, when the object is written to.

It will create an element mind:reply, which should as first element
contain the next state of the object.

-->
 <xsl:template match="*[@type=&apos;write&apos;]">
  <xsl:choose>@ForwardCtrl@AcceptAllRightsCtrl@RightsAdministrationCtrl<!-- again we don't want to lock ourself out accidentally.
--><dsssl:when test="(and (eq? (me &apos;get &apos;id)
                          (msg &apos;caller))
 (is-meta-form? msg))"><dsssl:copy-of select="(message-body (metactrl me msg))"></dsssl:copy-of></dsssl:when><xsl:otherwise><!--

Here we should receive email etc.

Instead we just thow an error.

--><dsssl:copy-of select="(error (xml-format (current-node)))"></dsssl:copy-of></xsl:otherwise></xsl:choose>
 </xsl:template>
</xsl:stylesheet>

Diese Seite findet man von: overview, .




Letzte Modifikation: Thu, 04 May 2006 19:16:08 +0200

Autor(en): jfw,

Dokument Nummer A67bb0753e1676f81983e0ecf3a15b391 geliefert an public um Mon, 08 Sep 2008 03:40:48 +0200