AmberDB
view release on metacpan or search on metacpan
docs/EN.AmberDB_User-Guide.md view on Meta::CPAN
| `textarea` | Textarea | Multi-line plain text box `<textarea>`. |
| `summernote` | Summernote | Rich WYSIWYG HTML visual editor for articles/descriptions. |
| `select` | Dropdown Select | Single-selection dropdown list `<select>`. |
| `checkbox` | Checkbox | Multi-selection checkboxes `<input type="checkbox">` (Use `type => "num"` for Boolean). |
| `radio` | Radio Buttons | Single-selection radio options `<input type="radio">`. |
| `file` | File Upload | Attachment or image file uploader `<input type="file">`. |
| `hidden` | Hidden Field | Hidden form element `<input type="hidden">` (for primary IDs). |
| `email` | Email Input | HTML5 email input field `<input type="email">`. |
| `ascii` | ASCII Field | User/code input box constrained to ASCII charset. |
| `number` | Number Input | Numeric stepper `<input type="number">`. |
| `date` | Date Picker | Interactive date calendar selector `<input type="date">`. |
| `password` | Password Field | Obscured security input `<input type="password">`. |
| `repeat` / `repeats` | Repeater Table | Dynamic sub-row table input with add/remove row buttons (Order items, invoice lines). |
| `search_block` | Search Box | Search-assisted dynamic filter input. |
| `selectbyfind` | SelectByFind | Foreign relation selector populated via dynamic search. |
| `selectbylist` | SelectByList | Multi-item picker component from list. |
#### 9.7.4 Repeating Child Row Blocks (`repeat_start` and `repeat_ids`)
AmberDB natively supports dynamic repeating child rows (e.g. order line items, invoice product rows) horizontally across the flat parent record without relational child tables or `JOIN` operations:
lib/AmberDB/Date.pm view on Meta::CPAN
[ ( 1 .. 31 ) ],
[ ( 1 .. 30 ) ],
[ ( 1 .. 31 ) ],
[ ( 1 .. 31 ) ],
[ ( 1 .. 30 ) ],
[ ( 1 .. 31 ) ],
[ ( 1 .. 30 ) ],
[ ( 1 .. 31 ) ]
);
# Gregorian calendar leap year check
my $is_leap = ( ( $start_year % 4 == 0 && $start_year % 100 != 0 )
|| ( $start_year % 400 == 0 ) );
if ($is_leap) {
push @{ $months[1] }, 29;
}
for ( my $i = 0 ; $i < @months ; $i++ ) {
my $month = $i + 1;
$month = sprintf "%02d", $month;
( run in 2.939 seconds using v1.01-cache-2.11-cpan-54e63673c56 )