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 1.420 second using v1.01-cache-2.11-cpan-c333fce770f )