isis-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stephen Cameron <steve.cameron...@gmail.com>
Subject Re: Customize UI behavior
Date Mon, 27 Nov 2017 06:00:15 GMT
I am not a expert by any means, but I do encourage you to stick with Apache
Isis if *you* think the fit is good!

Others will have more ideas but
have you looked at Estatio? That would have to be the 'gold standard'
project. https://github.com/estatio/estatio

I have an application here:
https://github.com/Stephen-Cameron-Data-Services/isis-chats
I've just moved that to Apache Isis 1.15.1 (and am starting to 'retrofit'
it with more tests this week).

I've started another open-source project here:
https://github.com/Stephen-Cameron-Data-Services/isis-agri
(I'll move that to the 'obatchi' project when I get some spare time, its a
much more complex domain model than isis-chats).

My approach is somewhat based on Domain Driven Design (Eric Evan's), but
starting from a conceptual data-model. I can explain that more if your
interested to follow it.

Maybe do a small learning/demo project in Github, one that you can share
code with easily here on the mailing list? My Chats project is for a
non-profit so easy to share, your project maybe not so easy.








On Mon, Nov 27, 2017 at 4:35 PM, SE Song <sesong11@gmail.com> wrote:

> Hi Stephen Cameron,
>
> Do you have any sample application that use Custom View, which is similar
> to Sandas GRC? I don't know how to start from scratch, I am a noob in Java
> EE world.
>
> Thank!
>
> On Mon, Nov 27, 2017 at 11:53 AM, Stephen Cameron <
> steve.cameron.62@gmail.com> wrote:
>
> > You could develop a custom viewer, it has been done:
> >
> >
> > https://github.com/apache/isis/blob/master/adocs/documentation/src/main/
> > asciidoc/pages/powered-by/_powered-by_gesconsultor-grc.adoc
> >
> > On Mon, Nov 27, 2017 at 2:47 PM, SE Song <sesong11@gmail.com> wrote:
> >
> > > Thank for your advice,
> > >
> > > First, I though that integrating Isis with ZK is an easy task, but I
> > spend
> > > many days without any task done. Now I don't know what should I do
> next,
> > > last option is using restful object, but I hate writing UI (Javascript
> +
> > > HTML + CSS), it's a lot of time consuming.
> > >
> > > I have started develop without any knowledge base even Java EE(JDO,
> CDI,
> > > ORM,...), So I decide to learn Apache Wicket and Java EE, before I
> start
> > > Apache Isis again.
> > >
> > > On Thu, Nov 23, 2017 at 5:14 PM, Stephen Cameron <
> > > steve.cameron.62@gmail.com
> > > > wrote:
> > >
> > > > Regarding ZK 'Presentation Layer' seems this is the ability to use ZK
> > > > components in a template context, eg JSP, Struts. That is doing
> things
> > > at a
> > > > lower level, but interesting to ask if such a lower level exists in
> > > Apache
> > > > Isis.
> > > >
> > > > I see there is a Freemaker templates module in the Incode Platform.
> > I've
> > > no
> > > > experience with it but maybe it's worth checking out?
> > > >
> > > > I've a perceived need that is related, essentially a presentation
> layer
> > > on
> > > > top of my domain model, which is detached forms. This is a common
> > > business
> > > > need that Apache Isis, I feel, shouldn't necessarily cater for, but
> > which
> > > > could perhaps be integrated via the functionality in its meta-model.
> I
> > > say
> > > > this because of a perceived similarity in how the meta-model is used
> to
> > > > bind the Java domain object model to the UI and a similar thing in
> the
> > > W3C
> > > > XForms standard. In the first case via name conventions, in the later
> > > more
> > > > like a spreadsheet.
> > > >
> > > > Some forms can be very complex, but are a process follower idiom
> rather
> > > > than a problem solver one. Ultimately the data collected in a form
> has
> > to
> > > > find a use, maybe this will be simply for analysis via queries on a
> > > > database,      However, to have the two idioms coexisting when
> > necessary,
> > > > seems nice to have.
> > > >
> > > > I had a potential project recently that was more of a content
> > management
> > > > system need, lots safety documents, and of forms for people to fill
> in
> > to
> > > > prove they had read and understood. Apache Isis didn't seem that
> good a
> > > fit
> > > > in total, but for parts it was  very good, the management parts.
> Using
> > > the
> > > > security module, via the meta-model, was very powerful in getting a
> MVP
> > > > done quickly.
> > > >
> > > > Thinking outside the box in regards to a presentation layer, I am a
> fan
> > > of
> > > > XQuery, which though originating to manipulate XML documents, is
> > designed
> > > > around a more general meta-model (of sequences) essentially. So the
> > data
> > > > source can be anything. This flexibility led to a platform called XRX
> > > > (XForms, REST, XQuery) that sadly went nowhere.
> > > >
> > > > On Wed, Nov 22, 2017 at 10:43 PM, SE Song <sesong11@gmail.com
> > > > <javascript:_e(%7B%7D,'cvml','sesong11@gmail.com');>> wrote:
> > > >
> > > > > Moving off isn't my option, because I love Apache Isis anyways.
> Only
> > > one
> > > > > thing that I doesn't like is UI, that's why I try to use ZK as my
> > UI. I
> > > > > know I'm going to throws out one of the framework's key features,
> but
> > > > > Apache
> > > > > Isis isn't just a tool for generate UI, there are a lot more
> > features.
> > > > >
> > > > > ZK isn't just a viewer or Frontend Layer, it also has Presentation
> > > Layer,
> > > > > On my previous project I use ZK & JDBC using Constructor. while
> > Apache
> > > > Isis
> > > > > using Dependency Injection @Inject, But I don't have a lot of
> > > experience
> > > > on
> > > > > this. I also doubt what I'm trying to do the wrong ways. But If
> this
> > > > > possible, I will be able to build a greate development environment.
> > So
> > > I
> > > > > try all options that maybe possible for me and meet my requirement.
> > > > >
> > > > > It also has advantage for a Framework which be able to integrate
> with
> > > > other
> > > > > Framework for multiple options.
> > > > >
> > > > > On Wed, Nov 22, 2017 at 4:21 PM, Stephen Cameron <
> > > > > steve.cameron.62@gmail.com
> > > > > <javascript:_e(%7B%7D,'cvml','steve.cameron.62@gmail.com');>
> > > > > > wrote:
> > > > >
> > > > > > Hi,
> > > > > >
> > > > > > I seriously doubt this can work in the way you imagine.
> > > > > >
> > > > > > You'd have to write a whole new ZK based viewer (like the
> standard
> > > > Wicket
> > > > > > one).  See the org.apache.isis.viewer.wicket.* packages (4 jars)
> > in
> > > > the
> > > > > > Maven dependencies of the webapp.
> > > > > >
> > > > > > Maybe Dan is suggesting to move off Apache Isis once you are
> happy
> > > with
> > > > > > your domain model, so Apache Isis is only used for prototyping?
> > > > > >
> > > > > > Steve
> > > > > >
> > > > > > On Wed, Nov 22, 2017 at 5:57 PM, SE Song <sesong11@gmail.com
> > > > > <javascript:_e(%7B%7D,'cvml','sesong11@gmail.com');>> wrote:
> > > > > >
> > > > > > > I already create a repository here
> https://github.com/sesong11/
> > > > > > > ApacheIsisZK
> > > > > > > and create ZK VM here
> > > > > > > https://github.com/sesong11/ApacheIsisZK/blob/master/
> > > > > > webapp/src/main/java/
> > > > > > > domainapp/webapp/zkvm/SampleVM.java
> > > > > > >
> > > > > > > Now another issue on integrating ZK, I can't Inject my
> repository
> > > on
> > > > ZK
> > > > > > VM,
> > > > > > > Everything ok, excepted Injecting Service, it always null.
> > > > > > >
> > > > > > > The problem is ZK initiate VM using Contructor, @PostConstruct
> on
> > > ZK
> > > > VM
> > > > > > has
> > > > > > > never been called. Can you please help me how to Inject
service
> > > > outside
> > > > > > of
> > > > > > > container, or guide me another possible ways
> > > > > > >
> > > > > > > On Wed, Nov 22, 2017 at 10:48 AM, SE Song <sesong11@gmail.com
> > > > > <javascript:_e(%7B%7D,'cvml','sesong11@gmail.com');>> wrote:
> > > > > > >
> > > > > > > > I'm building an business process application, we manage
staff
> > > > > > information
> > > > > > > > and request form such as Leave Request, OT, IT Form...
> > > > > > > > each form mush has at least employee info, and form
detail...
> > > > > > > >
> > > > > > > > Auto generate UI is very good idea, e.s it's testable
too.
> But
> > > > > > Management
> > > > > > > > are not developer, it's very difficult to convince
them about
> > > > > changing
> > > > > > > > their ideas, they always ask what they want.
> > > > > > > > They always concern about look and feel at first.
> > > > > > > >
> > > > > > > > I will create a repository for integrate  Apache Isis
and ZK
> > > > > framework
> > > > > > > for
> > > > > > > > UI, If everything go well, I will use ZK for Frontend
Layer
> and
> > > > > > > > Presentation Layer,
> > > > > > > > and Apache Isis for Business Logic, Business Model
and Data
> > > Layer.
> > > > I
> > > > > > also
> > > > > > > > concern about integrating ZK VM to Isis Repository
too,
> because
> > > ZK
> > > > > use
> > > > > > > > Constructor out site container,
> > > > > > > > so Inject Service maybe impossible or difficult. But
I will
> try
> > > and
> > > > > > post
> > > > > > > > on Github
> > > > > > > >
> > > > > > > > On Wed, Nov 22, 2017 at 12:00 AM, Dan Haywood <
> > > > > > > > dan@haywood-associates.co.uk
> > > > > <javascript:_e(%7B%7D,'cvml','dan@haywood-associates.co.uk');>>
> > wrote:
> > > > > > > >
> > > > > > > >> If the behaviour of the text field in particular
is
> > problematic,
> > > > > then
> > > > > > > you
> > > > > > > >> can develop and plug in a different implementation
using the
> > > > Wicket
> > > > > > > >> framework.  The Wicket viewer guide has details
on how to do
> > > this
> > > > > > > >> (fullcalendar2, gmap3 use this API).
> > > > > > > >>
> > > > > > > >> That said...
> > > > > > > >>
> > > > > > > >> You said your pages are form heavy, and are all
view
> models. I
> > > > > wonder
> > > > > > > >> therefore whether you are fighting the framework
too much.
> > Why
> > > > are
> > > > > > you
> > > > > > > >> using view models rather than just surface entities?
Why do
> > your
> > > > > users
> > > > > > > >> need
> > > > > > > >> so much  information on a single page - what use
cases are
> you
> > > > > trying
> > > > > > to
> > > > > > > >> support? Where is this app on the "problem solver
Vs process
> > > > > follower"
> > > > > > > >> axis?
> > > > > > > >>
> > > > > > > >> One option for you might be to use Isis as a development
> > > > environment
> > > > > > (to
> > > > > > > >> build a good quality domain model) but then write
a custom
> UI,
> > > eg
> > > > in
> > > > > > ZK
> > > > > > > on
> > > > > > > >> top of it. Obviously this throws out one of the
framework's
> > key
> > > > > > > features,
> > > > > > > >> but you get full flexibility to do whatever. Or,
you could
> use
> > > the
> > > > > > Rest
> > > > > > > >> api
> > > > > > > >> to accomplish the same.
> > > > > > > >>
> > > > > > > >> But, I do suggest you also try to work within
the
> constraints
> > of
> > > > the
> > > > > > > >> framework, and see what that gives you. We know
of plenty of
> > > > > "problem
> > > > > > > >> solver" type apps that are out there that work
well enough
> > > without
> > > > > > lots
> > > > > > > of
> > > > > > > >> customisations.
> > > > > > > >>
> > > > > > > >> Hth,
> > > > > > > >> Dan.
> > > > > > > >>
> > > > > > > >>
> > > > > > > >> On Tue, 21 Nov 2017, 12:11 SE Song, <sesong11@gmail.com
> > > > > <javascript:_e(%7B%7D,'cvml','sesong11@gmail.com');>> wrote:
> > > > > > > >>
> > > > > > > >> > Yes, I am learning about it. And another
option for me is
> > > using
> > > > ZK
> > > > > > > >> > framework for UI
> > > > > > > >> >
> > > > > > > >> > On Tue, Nov 21, 2017 at 6:27 PM, Rade, Joerg
/ Kuehne +
> > Nagel
> > > /
> > > > > Ham
> > > > > > > >> GI-DP <
> > > > > > > >> > Joerg.Rade@kuehne-nagel.com
> > > > > <javascript:_e(%7B%7D,'cvml','Joerg.Rade@kuehne-nagel.com');>>
> > wrote:
> > > > > > > >> >
> > > > > > > >> > > Have you considered using the RestfulObjects
interface
> [1]
> > > > yet?
> > > > > > > >> > >
> > > > > > > >> > > -j
> > > > > > > >> > > [1] https://isis.apache.org/guides/ugvro/ugvro.html
> > > > > > > >> > >
> > > > > > > >> > > -----Ursprüngliche Nachricht-----
> > > > > > > >> > > Von: SE Song [mailto:sesong11@gmail.com
> > > > > <javascript:_e(%7B%7D,'cvml','sesong11@gmail.com');>]
> > > > > > > >> > > Gesendet: Dienstag, 21. November 2017
11:28
> > > > > > > >> > > An: users@isis.apache.org
> > > > > <javascript:_e(%7B%7D,'cvml','users@isis.apache.org');>
> > > > > > > >> > > Betreff: Re: Customize UI behavior
> > > > > > > >> > >
> > > > > > > >> > > My issue isn't just scrolling, but also
behavior of
> > Textbox.
> > > > If
> > > > > > it's
> > > > > > > >> > > possible to change it behavior from
clicking and show OK
> > > > Button
> > > > > &
> > > > > > > >> Cancel
> > > > > > > >> > > Button to use ajax to bind it to VM
without bother user
> to
> > > > click
> > > > > > > >> submit.
> > > > > > > >> > >
> > > > > > > >> > >
> > > > > > > >> > >
> > > > > > > >> > > On Tue, Nov 21, 2017 at 5:18 PM, Stephen
Cameron <
> > > > > > > >> > > steve.cameron.62@gmail.com
> > > > > <javascript:_e(%7B%7D,'cvml','steve.cameron.62@gmail.com');>
> > > > > > > >> > > > wrote:
> > > > > > > >> > >
> > > > > > > >> > > > Ok,  but using tabs via layout.xml
is still an option.
> > > > > > > >> > > >
> > > > > > > >> > > > Maybe using a JAXB VM causes a
full page reload?
> > > > > > > >> > > >
> > > > > > > >> > > > Do you have to use them?
> > > > > > > >> > > >
> > > > > > > >> > > > On Tue, Nov 21, 2017 at 9:13 PM,
SE Song <
> > > > sesong11@gmail.com
> > > > > <javascript:_e(%7B%7D,'cvml','sesong11@gmail.com');>>
> > > > > > > >> wrote:
> > > > > > > >> > > >
> > > > > > > >> > > > > It always scroll like this.
> > > > > > > >> > > > >
> > > > > > > >> > > > > ​
> > > > > > > >> > > > >
> > > > > > > >> > > > > On Tue, Nov 21, 2017 at 5:10
PM, SE Song <
> > > > > sesong11@gmail.com <javascript:_e(%7B%7D,'cvml','
> sesong11@gmail.com
> > > ');>>
> > > > > > > >> wrote:
> > > > > > > >> > > > >
> > > > > > > >> > > > >> Sorry that I did not specified
that I am using JAXB
> > VM.
> > > > It
> > > > > > just
> > > > > > > >> > > > >> submit
> > > > > > > >> > > > to
> > > > > > > >> > > > >> VM
> > > > > > > >> > > > >>
> > > > > > > >> > > > >> On Tue, Nov 21, 2017 at
4:48 PM, Stephen Cameron <
> > > > > > > >> > > > >> steve.cameron.62@gmail.com
> > > > > <javascript:_e(%7B%7D,'cvml','steve.cameron.62@gmail.com');>>
> wrote:
> > > > > > > >> > > > >>
> > > > > > > >> > > > >>> More details here:
https://www.youtube.com/watch?
> > > > > > > v=MxewC5Pve5k
> > > > > > > >> > > > >>>
> > > > > > > >> > > > >>> On Tue, Nov 21, 2017
at 8:46 PM, Stephen Cameron <
> > > > > > > >> > > > >>> steve.cameron.62@gmail.com
> > > > > <javascript:_e(%7B%7D,'cvml','steve.cameron.62@gmail.com');>
> > > > > > > >> > > > >>> > wrote:
> > > > > > > >> > > > >>>
> > > > > > > >> > > > >>> > Have you tried
using tabs via the
> xxx.layout.xml?
> > > > > > > >> > > > >>> >
> > > > > > > >> > > > >>> > My pages aren't
more than one screen height and
> > I've
> > > > not
> > > > > > had
> > > > > > > >> the
> > > > > > > >> > > > other
> > > > > > > >> > > > >>> > problems that
you indicate, Apache Isis doesn't
> > > > submit a
> > > > > > > form
> > > > > > > >> in
> > > > > > > >> > > > >>> > the
> > > > > > > >> > > > >>> sense
> > > > > > > >> > > > >>> > of an HTML <form>
element, each click of OK
> > submits
> > > > the
> > > > > > > >> updated
> > > > > > > >> > > > >>> > value
> > > > > > > >> > > > >>> to
> > > > > > > >> > > > >>> > the database.
> > > > > > > >> > > > >>> >
> > > > > > > >> > > > >>> >
> > > > > > > >> > > > >>> >
> > > > > > > >> > > > >>> >
> > > > > > > >> > > > >>> > On Tue, Nov 21,
2017 at 8:36 PM, SE Song <
> > > > > > > sesong11@gmail.com
> > > > > <javascript:_e(%7B%7D,'cvml','sesong11@gmail.com');>>
> > > > > > > >> > > wrote:
> > > > > > > >> > > > >>> >
> > > > > > > >> > > > >>> >> Dear All,
> > > > > > > >> > > > >>> >>
> > > > > > > >> > > > >>> >> After presentation
Apache Isis to my manager,
> > what
> > > he
> > > > > > > doesn't
> > > > > > > >> > > > >>> >> like
> > > > > > > >> > > > is
> > > > > > > >> > > > >>> UI,
> > > > > > > >> > > > >>> >> Because the
application which I am developing
> is
> > HR
> > > > > > System,
> > > > > > > >> > > > >>> >> which
> > > > > > > >> > > > has
> > > > > > > >> > > > >>> a
> > > > > > > >> > > > >>> >> lot
> > > > > > > >> > > > >>> >> of form,
so UX is very important for us.
> > > > > > > >> > > > >>> >>
> > > > > > > >> > > > >>> >> After Using
Apache Isis for a while I have some
> > > > problem
> > > > > > on
> > > > > > > UI
> > > > > > > >> > > > >>> behavior as
> > > > > > > >> > > > >>> >> bellow:
> > > > > > > >> > > > >>> >> 1. When I
click on the control it always scroll
> > to
> > > > top,
> > > > > > so
> > > > > > > if
> > > > > > > >> > > > >>> >> my
> > > > > > > >> > > > from
> > > > > > > >> > > > >>> has
> > > > > > > >> > > > >>> >> 2x of screen
high, user will very difficult for
> > > input
> > > > > > data.
> > > > > > > >> > > > >>> >> 2. When user
click on a textbox it always show
> > "OK"
> > > > and
> > > > > > > >> "Cancel"
> > > > > > > >> > > > >>> button,
> > > > > > > >> > > > >>> >> OK
> > > > > > > >> > > > >>> >> button use
submit, this make my form refresh
> > every
> > > > > time I
> > > > > > > >> press
> > > > > > > >> > > > Enter
> > > > > > > >> > > > >>> or
> > > > > > > >> > > > >>> >> Click "OK",
so it always scroll back to top and
> > > > destroy
> > > > > > > >> another
> > > > > > > >> > > > field
> > > > > > > >> > > > >>> that
> > > > > > > >> > > > >>> >> I did not
submit.
> > > > > > > >> > > > >>> >> 3. I want
to change behavior of textbox from
> > > Clicking
> > > > > > > Submit
> > > > > > > >> to
> > > > > > > >> > > > >>> >> use
> > > > > > > >> > > > >>> jQuery
> > > > > > > >> > > > >>> >> (ZK like)
to send data to my VM when user Lost
> > > Focus
> > > > on
> > > > > > > >> textbox.
> > > > > > > >> > > > >>> >>
> > > > > > > >> > > > >>> >> Please help
to guide me what should I do/learn
> to
> > > > solve
> > > > > > > this
> > > > > > > >> > > > problem.
> > > > > > > >> > > > >>> >>
> > > > > > > >> > > > >>> >>
> > > > > > > >> > > > >>> >> Another option
for me is to integrate Apache
> Isis
> > > > with
> > > > > ZK
> > > > > > > >> > > Framework.
> > > > > > > >> > > > >>> ZK
> > > > > > > >> > > > >>> >> framework
for implement presentation layer and
> > > > fronted
> > > > > > > layer.
> > > > > > > >> > > > >>> >> Is
> > > > > > > >> > > > this
> > > > > > > >> > > > >>> >> option possible?
> > > > > > > >> > > > >>> >>
> > > > > > > >> > > > >>> >
> > > > > > > >> > > > >>> >
> > > > > > > >> > > > >>>
> > > > > > > >> > > > >>
> > > > > > > >> > > > >>
> > > > > > > >> > > > >
> > > > > > > >> > > >
> > > > > > > >> > >
> > > > > > > >> > > Kühne + Nagel (AG & Co.) KG
> > > > > > > >> > > Rechtsform: Kommanditgesellschaft, Bremen
HRA 21928,
> > > > USt-IdNr.:
> > > > > DE
> > > > > > > >> > > 812773878.
> > > > > > > >> > > Geschäftsleitung Kühne + Nagel (AG
& Co.) KG: Dr.
> Hansjörg
> > > > Rodi
> > > > > > > >> (Vors. ),
> > > > > > > >> > > Martin Brinkmann, Holger Ketz, Jan-Hendrik
Köstergarten,
> > > > > Nicholas
> > > > > > > >> Minde,
> > > > > > > >> > > Michael Nebel, Lars Wedel, Matthias
Weiner.
> > > > > > > >> > > Persönlich haftende Gesellschafterin:
Kühne & Nagel
> A.G.,
> > > > > > > Rechtsform:
> > > > > > > >> > > Aktiengesellschaft nach luxemburgischem
Recht, HR-Nr.: B
> > > > 18745,
> > > > > > > >> > > Geschäftsführendes Verwaltungsratsmitglied:
Karl
> Gernandt.
> > > > > > > >> > > Geschäftsleitung Region Zentral- und
Osteuropa: Dr.
> > Hansjörg
> > > > > Rodi
> > > > > > > >> > (Vors.),
> > > > > > > >> > > Thierry Held, Uwe Hött, Richard Huhn,
Holger Ketz,
> > > Jan-Hendrik
> > > > > > > >> > > Köstergarten, Jan Kunze, Michael Nebel,
Guillaume
> > Sauzedde,
> > > > > > Mustafa
> > > > > > > >> > Sener.
> > > > > > > >> > >
> > > > > > > >> > > Wir arbeiten ausschließlich auf Grundlage
der
> Allgemeinen
> > > > > > Deutschen
> > > > > > > >> > > Spediteurbedingungen 2017 (ADSp 2017).
Hinweis: Die ADSp
> > > 2017
> > > > > > > weichen
> > > > > > > >> in
> > > > > > > >> > > Ziffer 23 hinsichtlich des Haftungshöchstbetrages
für
> > > > > Güterschäden
> > > > > > > (§
> > > > > > > >> 431
> > > > > > > >> > > HGB) vom Gesetz ab, indem sie die Haftung
bei
> multimodalen
> > > > > > > Transporten
> > > > > > > >> > > unter Einschluss einer Seebeförderung
und bei
> unbekanntem
> > > > > > Schadenort
> > > > > > > >> auf
> > > > > > > >> > 2
> > > > > > > >> > > SZR/kg und im Übrigen die Regelhaftung
von 8,33 SZR/kg
> > > > > zusätzlich
> > > > > > > auf
> > > > > > > >> > 1,25
> > > > > > > >> > > Millionen Euro je Schadenfall sowie
2,5 Millionen Euro
> je
> > > > > > > >> > Schadenereignis,
> > > > > > > >> > > mindestens aber 2 SZR/kg, beschränken.
Die ADSp sind auf
> > > > unserer
> > > > > > > >> Webseite
> > > > > > > >> > > als Download erhältlich. Auf Anfrage
senden wir Ihnen
> > diese
> > > > auch
> > > > > > > gerne
> > > > > > > >> > zu.
> > > > > > > >> > >
> > > > > > > >> >
> > > > > > > >>
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message