Hi,
is there any photo gallery available for Pier? I mean a widget where I
could upload pictures and they are rendered in a nice way. I started
one 4 years ago but I abandoned it.
Bye
--
Damien Cassou
http://damiencassou.seasidehosting.st
Did I miss an announcement? Does this mean we have a Pier that works
(or nearly works) with Seaside 3?
--
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn(a)stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc.
See http://methodsandmessages.vox.com/ for Smalltalk and Seaside discussion
Hi,
i have a model with some descriptions.
One of it, descriptionMap, is set with beHidden property because i think to use it only for update the relative cache description into descriptionContainer.
The relative code is :
^( super descriptionContainer )
addCondition:[ : memento|
memento cache at: self descriptionOK
ifTrue: [ memento cache at: self descriptionMap put: 'xyz'. true ]
ifFalse:[ false ].
]
labelled: 'Error is not ok;
yourself
The cache is right update.
The problem is to update the model relative to the descriptionMap cache.
When confirm the form other instances model is right update but descriptionMap not.
Any idea?
Thanks,
Dario
I'm still experimenting with Templating and things like that. I tried to create a page with
+comp+
as content. I thought taking that page and adding a child named comp would be sufficient but it isn't. Everything is resolved on save time or better when the document gets parsed. I can achieve what I want by doing.
structure := (PRPathLookup start: self context structure path: '/mytemplate') copy.
structure addChild: ((PRComponent named: 'comp')
componentClass: MyComponent ).
structure document: (PRDocumentParser parse: (PRWikiWriter write: structure document)).
But I think there more elaborate versions of doing this. I'm not sure if update on the internal link will help. Then a visitor could probably do the job.
thanks,
Norbert
Hi,
I'm struggling to understand how to use Pier Security. I have a number of
different types of users (registeredUsers, projectOwners, AdminUsers, ....).
I'd like to enable user specific options on the main pages, and restrict
access to specific pages and commands to groups of users. I've grouped my
users into different PUGroup s . Then without entirely understanding the
intent of the code in PRDistribution>>root :
self rootPage enumerator
with;
all;
do:
[ :each |
each securityDecoration owner: self kernel users anyOne.
each securityDecoration group: self kernel groups anyOne ].
self makePrivate: self systemPage.
I modified my own configuration code to read:
self homePage enumerator
with;
all;
do:
[ :each |
each securityDecoration owner: self kernel users anyOne.
each securityDecoration group: self kernel groups anyOne.
each securityDecoration group: self kernel registeredUserGroup.
each securityDecoration group: self kernel projectUserGroup.
each securityDecoration group: self kernel adminUserGroup.
].
I can see that PUSecurity>>hasPermission:for: and
PRStructure>>isAllowedCommand:in: should reveal the secrets of how security
is designed to work, however the following code assumes all decorations
satisfy the conditions
PRStructure>>isAllowedCommand:in:
^ self decorations allSatisfy: [ :each |
each
isAllowedCommand: aCommandClass
in: aContext ]
In my case this tests fails as not all decorations are allowed. For example
if a user is in the group "projectOwners", isAllowedCommand:in: fails for
the security decorator for "registeredUserGroup" and "adminUserGroup". With
my limited understanding I would have expect the above loop to read
"anySatisfy:" rather than "allSatisfy" .
Clearly I've a misunderstanding about how Pier security is designed to
function. Any pointers gratefully received.
Thanks
Nick
At 10:25 27/02/2010, Lukas Renggli wrote:
>Load the latest Seaside-Pharo-Tools-Web and the latest RBF server. I
>fixed various minor problems, but it basically worked already before.
Hi Lukas,
This is to confirm that it works perfectly. I just tried it
successfully both under OSX by Chicken of the VNC and under Vista by
TightVNC. The issue was basically related to my firewall configuration.
Thank you again, and my apologies for the delayed feedback due to
other obligations.
Regards,
Reza
Hi,
I'm experimenting at the moment with "dynamic pages". I just need to extend the static pages by one level. I did a subclass of PRPage that answers true on hasChildren call so that PRPathLookup does accept the path being requested. If the page is really requested the last path component is taken as query for an object. I then take a "template page" copy its document and set the parent to the right page. Beside having the need for returning a dummy page on a children call this works out pretty good. If you understand that rather cryptic description :) you may have some hints about that.
The second approach is to have something like WATask in pier style. The pages shouldn't be directly accessible via URL. The task should work on editabel pier pages that pass/inject the right objects into page. Let's say there is a three steps task I want to solve. I would start by taking on template page (copying its document) and embedding the first form. On answer it will take the next template page and injects the results from the previous step into the new page. This would lead to a task where the textual decoration and such could be changed by editors and the task by programmers.
I'm sorry but I don't know how I can explain that in a more understandable fashion. But maybe you understand it and have some hints or pointers how to approach that use case.
Norbert
Hi,
i work with Magritte-Model-lr.394 on pharo.
I have a MAAccountModel with descriptionCodice and descriptionIndirizzoMemo.
The last is defined as:
descriptionIndirizzoMemo
^ (MAToOneRelationDescription new)
componentClass: MAInternalEditorComponent ;
classes: (Array with: MAIndirizzoModel);
selectorAccessor: 'indirizzoMemo';
label: 'Indirizzo';
comment: 'Indirizzo di riferimento';
priority: 220;
"beReadonly;"
yourself
Now MAIndirizzoMemoModel is defined with some other description:
descrptionCitta
descriptionNumero
and other description.
( You can load the file mcz. )
Now when open: MAAccountModel new asComponent
i found the error:
MessageNotUnderstood: receiver of "isMultipart" is nil
isMultipart
^ self children anySatisfy: [ :each | each isMultipart ]
The error is erase only with componentClass set to : MAInternalEditorComponent.
Any considerations ?
Thanks,
Dario
Hi, is there a utility to automate the 'Magritte-ising' of an existing
project? I imagine it would scan the classes, and create the class side
descriptors and missing accessors automatically. It would seem useful for
quickly evaluating/prototyping what Magritte could add to the current
project.
I thought I read about this before, but I can't find a reference or any
class that seems to do it.
Thanks, ...Stan