App-AutoCRUD
view release on metacpan or search on metacpan
lib/App/AutoCRUD.pm view on Meta::CPAN
- overridable content-type & headers
- search form, show associations => link to join search
- list foreign keys even if not in DBIDM schema
- change log
- quoting problem (FromQuery: "J&B")
- readonly fields: tabindex -1 (can be done by CSS?)
in fact, current values should NOT be input fields, but plain SPANs
- NULL in updates
- Update form, focus problem (focus in field should deactivate TreeNav)
- add insert link in table descr
- deal with Favicon.ico
- declare in http://www.sqlite.org/cvstrac/wiki?p=ManagementTools
lib/App/AutoCRUD/Controller/Table.pm view on Meta::CPAN
# select from database
my $criteria = $datasource->query_parser->parse(\%where_args) || {};
my $statement = $datasource->schema->db_table($table)->select(
-where => $criteria,
%dashed_args,
-result_as => 'statement',
);
my $rows = $statement->select();
# recuperate SQL for logging / informational purposes
my ($sql, @bind) = $statement->sql;
my $show_sql = join " / ", $sql, @bind;
$self->logger({level => 'debug', message => $show_sql});
# assemble results
my $data = $self->descr($table);
$data->{rows} = $rows;
$data->{message} = $message;
$data->{criteria} = $show_sql;
if ($with_count) {
$data->{row_count} = $statement->row_count;
$data->{page_count} = $statement->page_count;
lib/App/AutoCRUD/share/templates/src/table/search.tt view on Meta::CPAN
check/uncheck all <input type=checkbox class="check_all_groups"
onclick="propagate_checkbox(this, 'TN_tree')">
</div>
<div class="TN_node" id="criteria">
<span class="TN_label param_group">Criteria</span>
<span class="clear_float"></span>
<div class="TN_content">
[% FOREACH group IN data.colgroups;
node_status = group.node or "open"; %]
<input type="checkbox" class="check_column check_col_group"
tabindex="100" title="check/uncheck columns in this group"
onclick="propagate_checkbox(this, 'group_[% group.name %]')">
<div class="TN_node[% " TN_closed" IF node_status == "closed" %]"
id="group_[% group.name %]">
<span class="TN_label groupname">[% group.name %]</span>
<span class="clear_float"></span>
<div class="TN_content">
[% FOREACH col IN group.columns %]
<input name="col.[% col.COLUMN_NAME %]" value="1"
title="display this column"
type="checkbox" class="check_column" tabindex="100" />
<div class="TN_leaf">
<span class="TN_label colname[% ' pk' IF col.is_pk %]">[% col.COLUMN_NAME %]</span>
<span class="after_label">
<input name="[% col.COLUMN_NAME %]" size=60 tabindex="1"
[%~ IF !seen_autofocus;
" autofocus";
seen_autofocus = 1;
END %]>
[%# TODO : autocompleter on col.path (if any) %]
</span>
</div>
[% END; # FOREACH col IN group.columns %]
</div>
</div>
[% END; # FOREACH group IN data.colgroups %]
</div>
</div>
<div class="TN_node">
<span class="TN_label param_group">Parameters</span>
<div class="TN_content">
<div class="TN_leaf">
<span class="TN_label colname">Page index</span>
<input name="-page_index" size=8 tabindex="1">
</div>
<div class="TN_leaf">
<span class="TN_label colname">Page size</span>
<input name="-page_size" size=8 tabindex="1">
</div>
<div class="TN_leaf">
<span class="TN_label colname">Output as</span>
<input type="radio" id="o.html" name="-output" value="" checked
tabindex="1">
<label for="o.html">html</label>
<input type="radio" id="o.xlsx" name="-output" value=".xlsx"
tabindex="1">
<label for="o.xlsx">xlsx</label>
<input type="radio" id="o.tsv" name="-output" value=".tsv"
tabindex="1">
<label for="o.tsv">tsv</label>
<input type="radio" id="o.yaml" name="-output" value=".yaml"
tabindex="1">
<label for="o.yaml">yaml</label>
<input type="radio" id="o.json" name="-output" value=".json"
tabindex="1">
<label for="o.json">json</label>
<input type="radio" id="o.xml" name="-output" value=".xml"
tabindex="1">
<label for="o.xml">xml</label>
</div>
<div class="TN_leaf">
<span class="TN_label colname">With count</span>
<input name="-with_count" type="checkbox" value="1" checked
tabindex="1">
</div>
</div>
</div>
</div>
<input type="submit" tabindex="1">
<input type="reset" tabindex="1">
</form>
lib/App/AutoCRUD/share/templates/src/table/update.tt view on Meta::CPAN
[%~ IF data.noupd.$col_name;
" readonly class='readonly'";
ELSIF !seen_autofocus;
" autofocus";
seen_autofocus = 1;
END %]>
[% IF data.where_pk.defined(col_name) %]
<b>where</b> <input name="where.[% col_name %]" size=10 readonly
class="readonly" tabindex=-1>
[% ELSE %]
[% IF data.where_pk;
# updating one single record, so we show current values.
# TODO : should improve GvaScript.Form so that we can
# replace this <input> by a mere <div>, and yet update
# the content automatically at init() %]
(curr.<input name="curr.[% col_name %]" size=20 readonly
class="readonly" tabindex=-1>)
[% ELSE;
# updating several records, so we show the WHERE criteria %]
<span class="where">[% seen_where ? "and" : "where";
SET seen_where = 1; %]</span>
<input name="where.[% col_name %]" size=10>
[% END; # IF data.where_pk %]
[% END; # IF data.where_pk.defined(col_name) %]
</span>
( run in 2.747 seconds using v1.01-cache-2.11-cpan-2398b32b56e )