webmcp
annotate framework/env/ui_deprecated/calendar.lua @ 36:5380305a3d51
allow multiple arguments to trace.debug
you can now write trace.debug("bla", 2, ...)
you can now write trace.debug("bla", 2, ...)
author | Daniel Poelzleithner <poelzi@poelzi.org> |
---|---|
date | Sat Oct 09 00:57:26 2010 +0200 (2010-10-09) |
parents | 9fdfb27f8e67 |
children |
rev | line source |
---|---|
jbe/bsw@0 | 1 function ui_deprecated.calendar(args) |
jbe/bsw@0 | 2 local record = assert(slot.get_state_table(), "ui_deprecated.calender was not called within a form.").form_record |
jbe/bsw@0 | 3 local value = param.get(args.field, atom.date) or record[args.field] |
jbe/bsw@0 | 4 local year = param.get('_ui_calendar_year', atom.integer) or args.year or 2008 |
jbe/bsw@0 | 5 local month = param.get('_ui_calendar_month', atom.integer) or args.month or 10 |
jbe/bsw@0 | 6 local empty_days = atom.date{ year = year, month = month, day = 1 }.iso_weekday -1 |
jbe/bsw@0 | 7 local enabled = not args.disabled |
jbe/bsw@0 | 8 |
jbe/bsw@0 | 9 local prev_year = year |
jbe/bsw@0 | 10 local prev_month = month - 1 |
jbe/bsw@0 | 11 if prev_month == 0 then |
jbe/bsw@0 | 12 prev_month = 12 |
jbe/bsw@0 | 13 prev_year = prev_year - 1 |
jbe/bsw@0 | 14 end |
jbe/bsw@0 | 15 |
jbe/bsw@0 | 16 local next_year = year |
jbe/bsw@0 | 17 local next_month = month + 1 |
jbe/bsw@0 | 18 if next_month == 13 then |
jbe/bsw@0 | 19 next_month = 1 |
jbe/bsw@0 | 20 next_year = next_year + 1 |
jbe/bsw@0 | 21 end |
jbe/bsw@0 | 22 |
jbe/bsw@0 | 23 ui_deprecated.tag('div', { |
jbe/bsw@0 | 24 html_options = { |
jbe/bsw@0 | 25 class="ui_field ui_calendar" |
jbe/bsw@0 | 26 }, |
jbe/bsw@0 | 27 content = function() |
jbe/bsw@0 | 28 ui_deprecated.tag('input', { |
jbe/bsw@0 | 29 html_options = { |
jbe/bsw@0 | 30 type = 'hidden', |
jbe/bsw@0 | 31 value = year, |
jbe/bsw@0 | 32 name = '_ui_calendar_year', |
jbe/bsw@0 | 33 id = '_ui_calendar_year', |
jbe/bsw@0 | 34 onchange = 'this.form.submit();' |
jbe/bsw@0 | 35 } |
jbe/bsw@0 | 36 }) |
jbe/bsw@0 | 37 ui_deprecated.tag('input', { |
jbe/bsw@0 | 38 html_options = { |
jbe/bsw@0 | 39 type = 'hidden', |
jbe/bsw@0 | 40 value = month, |
jbe/bsw@0 | 41 name = '_ui_calendar_month', |
jbe/bsw@0 | 42 id = '_ui_calendar_month', |
jbe/bsw@0 | 43 onchange = 'this.form.submit();' |
jbe/bsw@0 | 44 } |
jbe/bsw@0 | 45 }) |
jbe/bsw@0 | 46 ui_deprecated.tag('input', { |
jbe/bsw@0 | 47 html_options = { |
jbe/bsw@0 | 48 type = 'hidden', |
jbe/bsw@0 | 49 value = value and tostring(value) or '', |
jbe/bsw@0 | 50 name = args.field, |
jbe/bsw@0 | 51 id = '_ui_calendar_input', |
jbe/bsw@0 | 52 onchange = 'this.form.submit();' |
jbe/bsw@0 | 53 } |
jbe/bsw@0 | 54 }) |
jbe/bsw@0 | 55 if args.label then |
jbe/bsw@0 | 56 ui_deprecated.tag('div', { |
jbe/bsw@0 | 57 html_options = { |
jbe/bsw@0 | 58 class="label" |
jbe/bsw@0 | 59 }, |
jbe/bsw@0 | 60 content = function() |
jbe/bsw@0 | 61 ui_deprecated.text(args.label) |
jbe/bsw@0 | 62 end |
jbe/bsw@0 | 63 }) |
jbe/bsw@0 | 64 end |
jbe/bsw@0 | 65 ui_deprecated.tag('div', { |
jbe/bsw@0 | 66 html_options = { |
jbe/bsw@0 | 67 class="value" |
jbe/bsw@0 | 68 }, |
jbe/bsw@0 | 69 content = function() |
jbe/bsw@0 | 70 ui_deprecated.tag('div', { |
jbe/bsw@0 | 71 html_options = { |
jbe/bsw@0 | 72 class = 'next', |
jbe/bsw@0 | 73 href = '#', |
jbe/bsw@0 | 74 onclick = enabled and "document.getElementById('_ui_calendar_year').value = '" .. tostring(next_year) .. "'; document.getElementById('_ui_calendar_month').value = '" .. tostring(next_month) .. "'; document.getElementById('_ui_calendar_year').form.submit();" or '', |
jbe/bsw@0 | 75 }, |
jbe/bsw@0 | 76 content = '>>>'; |
jbe/bsw@0 | 77 }) |
jbe/bsw@0 | 78 ui_deprecated.tag('div', { |
jbe/bsw@0 | 79 html_options = { |
jbe/bsw@0 | 80 class = 'prev', |
jbe/bsw@0 | 81 href = '#', |
jbe/bsw@0 | 82 onclick = enabled and "document.getElementById('_ui_calendar_year').value = '" .. tostring(prev_year) .. "'; document.getElementById('_ui_calendar_month').value = '" .. tostring(prev_month) .. "'; document.getElementById('_ui_calendar_year').form.submit();" or '', |
jbe/bsw@0 | 83 }, |
jbe/bsw@0 | 84 content = '<<<'; |
jbe/bsw@0 | 85 }) |
jbe/bsw@0 | 86 ui_deprecated.tag('div', { |
jbe/bsw@0 | 87 html_options = { |
jbe/bsw@0 | 88 class="title" |
jbe/bsw@0 | 89 }, |
jbe/bsw@0 | 90 content = function() |
jbe/bsw@0 | 91 local months = {_'January', _'February', _'March', _'April', _'May', _'June', _'July', _'August', _'September', _'October', _'November', _'December' } |
jbe/bsw@0 | 92 ui_deprecated.text(months[month]) |
jbe/bsw@0 | 93 ui_deprecated.text(' ') |
jbe/bsw@0 | 94 ui_deprecated.text(tostring(year)) |
jbe/bsw@0 | 95 end |
jbe/bsw@0 | 96 }) |
jbe/bsw@0 | 97 ui_deprecated.tag('table', { |
jbe/bsw@0 | 98 content = function() |
jbe/bsw@0 | 99 ui_deprecated.tag('thead', { |
jbe/bsw@0 | 100 content = function() |
jbe/bsw@0 | 101 ui_deprecated.tag('tr', { |
jbe/bsw@0 | 102 content = function() |
jbe/bsw@0 | 103 local dows = { _'Mon', _'Tue', _'Wed', _'Thu', _'Fri', _'Sat', _'Sun' } |
jbe/bsw@0 | 104 for col = 1,7 do |
jbe/bsw@0 | 105 ui_deprecated.tag('th', { content = dows[col] }) |
jbe/bsw@0 | 106 end |
jbe/bsw@0 | 107 end |
jbe/bsw@0 | 108 }) |
jbe/bsw@0 | 109 end |
jbe/bsw@0 | 110 }) |
jbe/bsw@0 | 111 ui_deprecated.tag('tbody', { |
jbe/bsw@0 | 112 content = function() |
jbe/bsw@0 | 113 for row = 1,6 do |
jbe/bsw@0 | 114 ui_deprecated.tag('tr', { |
jbe/bsw@0 | 115 content = function() |
jbe/bsw@0 | 116 for col = 1,7 do |
jbe/bsw@0 | 117 local day = (row -1) * 7 + col - empty_days |
jbe/bsw@0 | 118 local date = atom.date.invalid |
jbe/bsw@0 | 119 if day > 0 then |
jbe/bsw@0 | 120 date = atom.date{ year = year, month = month, day = day } |
jbe/bsw@0 | 121 end |
jbe/bsw@0 | 122 ui_deprecated.tag('td', { |
jbe/bsw@0 | 123 html_options = { |
jbe/bsw@0 | 124 onclick = enabled and 'document.getElementById(\'_ui_calendar_input\').value = \'' .. tostring(date) .. '\'; document.getElementById(\'_ui_calendar_input\').onchange(); ' or '' |
jbe/bsw@0 | 125 }, |
jbe/bsw@0 | 126 content = function() |
jbe/bsw@0 | 127 if date.invalid then |
jbe/bsw@0 | 128 slot.put(' ') |
jbe/bsw@0 | 129 else |
jbe/bsw@0 | 130 local selected = date == value |
jbe/bsw@0 | 131 args.day_func(date, selected) |
jbe/bsw@0 | 132 end |
jbe/bsw@0 | 133 end |
jbe/bsw@0 | 134 }) |
jbe/bsw@0 | 135 end |
jbe/bsw@0 | 136 end |
jbe/bsw@0 | 137 }) |
jbe/bsw@0 | 138 end |
jbe/bsw@0 | 139 end |
jbe/bsw@0 | 140 }) |
jbe/bsw@0 | 141 end |
jbe/bsw@0 | 142 }) |
jbe/bsw@0 | 143 end |
jbe/bsw@0 | 144 }) |
jbe/bsw@0 | 145 end |
jbe/bsw@0 | 146 }) |
jbe/bsw@0 | 147 end |