Hi,
Over the weekend in Eindhoven we focused our efforts on building a friendly
admin interface for Pier. The concept was that rather than having the admin
features within site's environment (~template), we wrap a pier site in an
admin interface which would be available from a different url (eg
www.mysite.com/admin or admin.mysite.com). See attached screen grab. This is
very much still a WIP. The reasons for this approach were:
1) Focus the site's environment on the contents of the site and not to be
worried about the administration interface.
2) Simplify the site's environment by removing the administration tools.
3) Remove the concern that editing the site's environment could break the
admin interface.
4) Provide a consistent admin interface across all Pier sites.
5) Ensure that the admin url is secure.
That said it's probably not as black-and-white as I've implied; there are
some admin or editorial tasks which would probably make sense to keep within
the site, for example add a new blog post, edit a page.
The WIP admin interface is available in repository: '
http://source.lukas-renggli.ch/pier2addons', package: 'Pier-Admin'. Until we
update a Metacello configuration there are some class site installation
helpers:
PRAdminFrame class >> #loadDependentPackages
PRAdminFrame class >> #register
Hope this makes sense
Nick
The attendees where:
Adriaan van Os
Louis Andriese
thomas noordzij
Julian Fitzell
Maarten Daalder
Norbert Hartl
Bart Veenstra
Nick Ager
Reza Razavi
Stephan Eggermont
Friso Geerlings
hope I haven't missed anyone
Hi All,
I've been fiddling with Pharo 1.1.1 One-Click which didn't include Seaside
by default (at least not that I could see). I loaded seaside via the
squeaksource repository. Firstly it seemed like Magritte wasn't included in
the Seaside install. Is this so?
So I installed Magritte. Then when I tried to run the Magritte example in
the Seaside book I got MyContactAddress>>doesNotUnderstand #new
So I repeated the above steps with Pharo 1.2.1 One-Click. With the same
result except I got Address>>doesNotUnderstand: #asComponent.
I'm confused. Although this is my normal state I wonder if someone could
elucidate?
Best Regards,
Miguel
The Pier Sprint in Eindhoven, The Netherlands, starts in 5 days. On July 2
and 3 we will be working on enhancing the first-time user experience of
Pier. For that reason we have involved usability experts/interaction
designers to help us developers ;-).
We are very happy with the 10 attendees (developers and designers) we have
so far. This is your last chance to join us.
Registration and more Information:
http://piersprinteindhoven2011.eventbrite.com/
Sprint User Stories: http://pier.andriese.net:8001/pier/blog
Pier Issues List: http://code.google.com/p/pier/issues/list
If for some reason you can't make it to Eindhoven, you're welcome to send
user stories to this list.
See you in Endhoven.
Adriaan.
The ISAAC / Delta Lloyd Pier Sprint team
--
http://www.a3aan.st
Hi,
I've added social sharing widget support to blog entries. To use:
0) update to Pier-Blog-NickAger.147
1) Edit your blog
2) In "Social Sharing class" entry enter: PBSocialWidgetsAddThis
3) Save changes
4) Your blog entries should now contain the social widgets from
http://www.addthis.com/.
Implementation allows pluggable social widget renderers; replace
PBSocialWidgetsAddThis with a renderer for your desired the social widgets.
Examples:
http://www.getitmade.com/public/blog/http://www.nickager.com/blog/
All feedback welcome,
Nick
Hi Esteban,
On 10 June 2011 14:14, Esteban Lorenzano <estebanlm(a)gmail.com> wrote:
> Hi Lukas,
> Sorry I'm disturbing you.
Please direct such mails at the mailing list :-)
> I'm playing with magritte for morphic and I found something odd about the implementation: looks not finished. Maybe because until now, nobody I know is trying to use it in commercial proyects (I have a client for a desktop app :) )
> Right now, my main concern is about MATextMorph>>#buildMorphEditor implementation, it is using #selected accessors and for that (instead #string), so they show 'false' strings... also, they fail at validation time if I'm asking for a number, but I'm assuming there will be other problems.
Magritte-Morphic worked quite well in Squeak 3.9 and was used to
render a complete Morphic interface for Pier. Since then I haven't
spent much time with it though. Doru is using it in Moose and has
recently applied some fixes, so he might have better knowledge. Note
that Moose is using Pharo 1.3, so that might be a reason it doesn't
work?
> I wonder if I can join the "magritte developers" group, and upload my fixes to make it work properly
I've added you.
> pd: btw, it looks like I will be giving a talk "magritte magic" at esug :)
Great, please go ahead :-)
Lukas
--
Lukas Renggli
www.lukas-renggli.ch
Saturday morning I'm still looking for a group to join at StarupWeekend
Toronto. In the lunch lineup, right behind me, is someone from a small
group looking for a developer. So I'm in.
They already have a landing page on a server, but I need to build a
prototype that queries a URL for a JSON response, and display the
result. We'll have to figure out how to tie it together for a demo.
Since I've got a free hand, I used a Pier CMS, and loaded JSON from
SqueakSource. Then a wrote a PRWidget to get the JSON data, parse, and
display. Still some clean up, CSS, and deployment to do.
You can follow along at #swtoronto and somewhere on Facebook and Twitter
is the "GettingGives" stuff -- no links, sorry I'm not a Facebooker or
Twitterer (yet?), and I forgot to ask the business crew earlier.
--
Yanni
Hi,
I am slowly migrating to Pier2 and I stumbled across a slight difference in the way value links work. In particular, I have the following issues:
- +>value:structure+ used to display the title of the current structure, but now it embeds the complete structure. I played with different variations of specifying a title attribute (e.g., +value:structure|title+) but it did not work
- +value:children|link+ used to display a link to all the children, but now it simply embeds all children
I tried to debug these issues, but I did not manage to understand what is wrong. Am I using it in an obsolete way, or is this a bug?
Cheers,
Doru
--
www.tudorgirba.com
"Yesterday is a fact.
Tomorrow is a possibility.
Today is a challenge."
Hi,
I've noticed a problem with cookies enabled and Pier. The problem arises
when you browse to a URL without the continuation key, which causes a new
instance of the application to be created ie PRPierFrame new. You can see
the issue with the following single page WACounter Pier app:
| rootPage |
rootPage := (PRPage named: 'rootPage') contents: '+counter+'; yourself.
rootPage localEnvironment: ((PRComponent named: 'contents') componentClass:
PRContentsWidget; yourself).
rootPage addChild: ((PRComponent named: 'counter') componentClass:
WACounter; yourself).
PRKernel reset.
(PRPierFrame registerAsApplication: 'pier' kernel: (PRKernel named:
'testKernel' root: rootPage)) preferenceAt: #useCookies put: true.
Browse to localhost:xxxx/pier you should see the familiar counter component.
Increment the counter a few times. Now open a new tab, browse
to localhost:xxxx/pier and decrement the counter a couple of times. Return
to the first tab and try incrementing again. The counter will increment from
the value of the second counter.
I tested the same code snippet in Pier 1 on Seaside 2.8 and the component
increments from the value on the page ie it behaves as you'd expect a
Seaside component to behave.
The problem appears to arise in:
WASession>>#handleFiltered: aRequestContext
| key continuation |
key := aRequestContext request fields
at: self actionField
ifAbsent: [ ^ self start ].
continuation := continuations
at: key
ifAbsent: [ ^ self unknownRequest ].
continuation value
if there is no continuation key, #start is called on the session, which
creates a new root component. I have a fix, though it's in such a core part
of Seaside, I'm hesitant to suggest it. If I change WARenderLoopMain>>#start
from:
start
| root |
root := self createRoot.
self session properties at: #presenter put: root.
self prepareRoot: root.
((self application preferenceAt: #renderPhaseContinuationClass) new)
> captureAndInvoke
to:
start
| root |
root := self session presenter.
root ifNil: [
root := self createRoot.
self session properties at: #presenter put: root.
self prepareRoot: root ].
((self application preferenceAt: #renderPhaseContinuationClass) new)
> captureAndInvoke
...the root component is recovered from the session (if present) and no
longer created.
Is this a valid fix?
Thanks
Nick