CatalystX-CRUD-YUI
view release on metacpan or search on metacpan
Revision history for CatalystX-CRUD-YUI
0.031 2014-05-31
- improve the autocomplete search algorithm to act more like
what most people would expect
- require Template::Plugin::Autoformat 2.75
- added Search::Tools dependency to the Makefile.PL
0.030 21 Jan 2014
- YUI 2.x is deprecated since 2011 and they finally changed the icon urls.
Fix the calendar icon.
0.029 24 Sept 2013
- default View now coerces all output to UTF-8.
- pass object to form.metadata.related_field() in case object affects
the relationship returned.
0.028 12 Sept 2013
- fix autoformat() use in crud/form.tt
0.027 31 Oct 2012
- allow for per-session prefs
- make tab label different than viewable label
- pass tabindex to autocomplete field maker
- bump default yui version and set default var types if not using
tt_config.tt
0.005 16 Sept 2008
- add missing generic crud/count.tt file to flesh out API support
- fix bug in form.tt with generating url for related foreign object.
- fix bug in form.tt to allow related_value map to use non-unique column
- add calendar popup feature to Date and DateTime field types
- add missing POD to TT and Serializer
0.004 11 Sept 2008
- added configure option to hide PK columns in DataTable
- support core API changes to param names
- add fuzzy_search() and hide_pk_columns() config opts in Controller
- flesh out Controller docs
- add end() RenderView method in Controller based on cxc-fmt req param
- switch to Module::Install
- add TabView to set of core YUI components and switch relationships to
lib/CatalystX/CRUD/YUI/TT/crud/tt_config.tt
lib/CatalystX/CRUD/YUI/TT/crud/view.tt
lib/CatalystX/CRUD/YUI/TT/crud/view_related.tt
lib/CatalystX/CRUD/YUI/TT/crud/wrapper.tt
lib/CatalystX/CRUD/YUI/TT/crud/yui_footer.tt
lib/CatalystX/CRUD/YUI/TT/crud/yui_header.tt
lib/CatalystX/CRUD/YUI/TT/crud/yui_logger.tt
lib/CatalystX/CRUD/YUI/TT/crud/yui_menu.tt
lib/CatalystX/CRUD/YUI/TT/static/css/crud.css
lib/CatalystX/CRUD/YUI/TT/static/css/crud/base.css
lib/CatalystX/CRUD/YUI/TT/static/css/crud/calendar.css
lib/CatalystX/CRUD/YUI/TT/static/css/crud/datatable.css
lib/CatalystX/CRUD/YUI/TT/static/css/crud/form.css
lib/CatalystX/CRUD/YUI/TT/static/css/crud/help.css
lib/CatalystX/CRUD/YUI/TT/static/css/crud/livegrid.css
lib/CatalystX/CRUD/YUI/TT/static/css/crud/menu.css
lib/CatalystX/CRUD/YUI/TT/static/css/crud/pager.css
lib/CatalystX/CRUD/YUI/TT/static/css/crud/panel.css
lib/CatalystX/CRUD/YUI/TT/static/css/crud/tabview.css
lib/CatalystX/CRUD/YUI/TT/static/empty.null
lib/CatalystX/CRUD/YUI/TT/static/empty.txt
lib/CatalystX/CRUD/YUI/TT/crud/form.tt view on Meta::CPAN
DEFAULT oid = object_id;
IF (oid);
oid = c.controller.make_primary_key_string(object) || 0;
END;
USE Autoformat( all = 1 ); # for textarea readonly
%]
[% BLOCK datetime_popup %]
[% SET id = field.id %]
<span class="calendar_container" id="[% id %]_calendar_container"><img class='calendar'
src='[% CalendarIconUrl %]'
onclick='YAHOO.crud.datetime_picker("[% id %]")'
alt="calendar icon" />
</span>
[% END %]
[% BLOCK date_popup %]
[% SET id = field.id %]
<span class="calendar_container" id="[% id %]_calendar_container">
<img class='calendar'
src='[% CalendarIconUrl %]'
onclick='YAHOO.crud.date_picker("[% id %]")'
alt="calendar icon" />
</span>
[% END %]
[% IF (error || form.error) %]
<div class="error">[% error || form.error %]</div>
[% END %]
<table class="crud">
[% FOREACH fname = fields.order;
lib/CatalystX/CRUD/YUI/TT/crud/form.tt view on Meta::CPAN
thopen;
t.xhtml_label;
thclose;
tdopen;
t.xhtml;
tdclose;
ELSE;
field.xhtml;
END;
# Dates and DateTimes get a popup calendar
ELSIF field.isa('Rose::HTML::Form::Field::DateTime');
thopen;
field.xhtml_label;
thclose;
tdopen;
field.xhtml;
PROCESS datetime_popup;
tdclose;
ELSIF field.isa('Rose::HTML::Form::Field::Date');
lib/CatalystX/CRUD/YUI/TT/crud/tt_config.tt view on Meta::CPAN
[% # global vars, settings, etc.
DateTimeFormat = '%Y-%m-%d %H:%M:%S';
YUIBaseURL = 'http://yui.yahooapis.com';
YUIVersion = '2.6.0';
ExtBaseURL = 'http://extjs.cachefly.net';
ExtVersion = 'ext-2.2';
LGBaseURL = c.uri_for('/static/js/livegrid');
LGVersion = 'build';
CalendarIconUrl = 'http://yui.github.io/yui2/docs/yui_2.9.0_full/examples/button/assets/calendar_icon.gif';
ThisIsDefTTConfig = 1;
LIVEGRID_FORM_SIZE = 7; # max number of related form fields to trigger livegrid_related_form URL
%]
lib/CatalystX/CRUD/YUI/TT/crud/yui_header.tt view on Meta::CPAN
css => [],
js => [],
};
Y.css.push('build/reset-fonts-grids/reset-fonts-grids');
Y.css.push('build/assets/skins/sam/skin');
Y.css.push('build/autocomplete/assets/skins/sam/autocomplete');
#Y.css.push('build/resize/assets/skins/sam/resize');
#Y.css.push('build/button/assets/skins/sam/button');
#Y.css.push('build/treeview/assets/skins/sam/treeview');
#Y.css.push('build/tabview/assets/skins/sam/tabview');
Y.css.push('build/calendar/assets/skins/sam/calendar');
Y.css.push('build/editor/assets/skins/sam/editor');
Y.js.push('build/utilities/utilities');
Y.js.push('build/datasource/datasource-min');
Y.js.push('build/autocomplete/autocomplete-min');
Y.js.push('build/container/container-min');
Y.js.push('build/menu/menu-min');
#Y.js.push('build/button/button-min');
Y.js.push('build/calendar/calendar-min');
#Y.js.push('build/paginator/paginator-min');
#Y.js.push('build/datatable/datatable-min');
Y.js.push('build/history/history-min');
Y.js.push('build/json/json-min');
#Y.js.push('build/resize/resize-min');
#Y.js.push('build/layout/layout-min');
#Y.js.push('build/tabview/tabview-min');
#Y.js.push('build/treeview/treeview-min');
Y.js.push('build/editor/editor-min');
lib/CatalystX/CRUD/YUI/TT/static/css/crud/calendar.css view on Meta::CPAN
span.calendar_container {
position: absolute;
zoom: normal;
padding: 6px;
width: 200px; /* wider than calendar itself */
/* margin-top: -6px; */
}
.yui-skin-sam .yui-calcontainer {
background-color: #f2f2f2;
}
img.calendar {
vertical-align: top;
}
lib/CatalystX/CRUD/YUI/TT/static/js/crud.js view on Meta::CPAN
}
YAHOO.crud.toggle_link = function(id_to_toggle, link_id) {
YAHOO.crud.toggle_class_hidden(id_to_toggle);
YAHOO.crud.toggle_class_hidden(link_id);
return false; // so the click is not followed on a href
}
YAHOO.crud.datetime_picker = function(id) {
YAHOO.crud.make_calendar_popup(id, true);
}
YAHOO.crud.date_picker = function(id) {
YAHOO.crud.make_calendar_popup(id);
}
YAHOO.crud.make_calendar_popup = function(id, set_time) {
var Dom = YAHOO.util.Dom;
// Create an Overlay instance to house the Calendar instance
var oCalendarMenu = new YAHOO.widget.Overlay("calendar_for_" + id, { zIndex: 99 });
/*
Create an empty body element for the Overlay instance in order
to reserve space to render the Calendar instance into.
*/
oCalendarMenu.setBody(" ");
oCalendarMenu.body.id = "calendarcontainer_" + id;
// Render the Overlay instance into the Button's parent element
oCalendarMenu.render(Dom.get(id + "_calendar_container"));
// Align the Overlay
oCalendarMenu.align();
/*
Create a Calendar instance and render it into the body
element of the Overlay.
*/
var oCalendar = new YAHOO.widget.Calendar(
"buttoncalendar_" + id,
oCalendarMenu.body.id,
{
close: true
});
oCalendar.render();
/*
we have a close button but we want to hide the Overlay,
not the calendar
*/
oCalendar.beforeHideEvent.subscribe(function() {
oCalendarMenu.hide();
return false; // prevent calendar from being hidden
});
/*
Subscribe to the Calendar instance's "changePage" event to
keep the Overlay visible when either the previous or next page
controls are clicked.
*/
oCalendar.changePageEvent.subscribe(function () {
window.setTimeout(function () {
oCalendarMenu.show();
lib/CatalystX/CRUD/YUI/TT/static/js/crud.js view on Meta::CPAN
if (aDate[2] < 10)
aDate[2] = '0' + aDate[2];
Dom.get(id).value = aDate.join('-');
if (set_time) {
Dom.get(id).value += ' 00:00:00';
}
}
// hide calendar once date selected
oCalendarMenu.hide();
});
}
// based on
// http://developer.yahoo.com/yui/examples/editor/switch_editor_clean.html
// similar to CatalystX::CMS
YAHOO.crud.wysiwygify = function( textareaId, textareaTitle ) {
( run in 0.516 second using v1.01-cache-2.11-cpan-39bf76dae61 )