App-AutoCRUD
view release on metacpan or search on metacpan
lib/App/AutoCRUD.pm view on Meta::CPAN
Export to Excel
=item yaml
L<YAML> format
=item json
L<JSON> format
=item xml
C<XML> format
=back
=item *
Flag for total page count (this is optional because it is not always
important, and on many databases it has an additional cost as
it requires an additional call to the database to know the total
number of records).
=back
=head2 List page
The list page displays a list of records resulting from a search.
The generated SQL is shown for information.
For columns that related to other tables, there are hyperlinks
to the related lists.
Each record has a checkbox for marking this record for update or delete.
Hyperlinks to the next/previous page are provided, but navigation through
pages can also be performed with the LEFT/RIGHT arrow keys.
=head2 Single record display
The single record page is very similar to the list page, but only
displays one single record. The only difference is in the hyperlinks
to update/delete/clone operations.
=head2 Update
The update page has two modes : single-record or multiple-records
=head2 Single-record update
The form shows current values on the right, and has input fields
on the left. Only fields with some user input will be sent for update
to the database.
=head2 Multiple-records update
This form is reached from the L</List page>, when several records
were checked, or when updating the whole result set.
Input fields on the left correspond to the SQL "C<SET>" clause,
i.e. they specify values that will be updated within I<several records>
simultaneously.
Input fields on the right, labelled "where/and", specify some criteria
for the SQL "C<WHERE>" clause.
Needless to say, this is quite a powerful operation which if misused
could easily corrupt your data.
=head2 Delete
Like updates, delete forms can be either single-record or
multiple-records.
=head2 Insert
The insert form is very much like the single-record update form, except
that there are no "current values"
=head2 Clone
The clone form is like an insert form, but pre-filled with the data to clone,
except the primary key which is always empty.
=head1 ARCHITECTURE
[to be developed]
=head2 Classes
Modules are organized in a classical Model-View-Controller structure.
=head2 Inheritance and customization
All classes can be subclassed, and the application will automatically
discover and load appropriate modules on demand.
Presentation templates can also be overridden in sub-applications.
=head2 DataModel
This application requires a L<DBIx::DataModel::Schema> subclass
for every datasource. If none is supplied, a subclass will be
generated and loaded on the fly; but this incurs an additional
startup cost, and does not exploit all possibilities of
L<DBIx::DataModel>; so apart from short demos and experiments,
it is better to statically generate a schema and store it in a
file.
An initial schema class can be built, either from a L<DBI> database
handle, or from an existing L<DBIx::Class> schema; see
L<DBIx::DataModel::Schema::Generator>.
=head1 ATTRIBUTES
=head2 config
( run in 1.833 second using v1.01-cache-2.11-cpan-39bf76dae61 )