spiderfw 0.5.19 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +7 -0
- data/VERSION +1 -1
- data/apps/core/auth/lib/rbac.rb +7 -2
- data/apps/core/auth/models/mixins/rbac_provider.rb +66 -4
- data/apps/core/components/assets.rb +63 -33
- data/apps/core/components/public/js/jquery/{jquery-1.4.3.js → jquery-1.5.2.js} +2617 -1126
- data/apps/core/components/public/js/jquery/jquery-tools-1.2.5/overlay/overlay.apple.js +155 -0
- data/apps/core/components/public/js/jquery/jquery-tools-1.2.5/overlay/overlay.js +293 -0
- data/apps/core/components/public/js/jquery/jquery-tools-1.2.5/scrollable/scrollable.js +335 -0
- data/apps/core/components/public/js/jquery/jquery-tools-1.2.5/tabs/tabs.css +59 -0
- data/apps/core/components/public/js/jquery/jquery-tools-1.2.5/tabs/tabs.js +283 -0
- data/apps/core/components/public/js/jquery/jquery-tools-1.2.5/toolbox/toolbox.expose.js +224 -0
- data/apps/core/components/public/js/jquery/jquery-tools-1.2.5/tooltip/tooltip.dynamic.js +150 -0
- data/apps/core/components/public/js/jquery/jquery-tools-1.2.5/tooltip/tooltip.js +343 -0
- data/apps/core/components/public/js/jquery/jquery-tools-1.2.5/tooltip/tooltip.slide.js +78 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/button_bg.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/datepicker.gif +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/icon_sprite.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/progress_bar.gif +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/slider_h_bg.gif +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/slider_handles.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/slider_v_bg.gif +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/tab_bg.gif +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/the_gradient.gif +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-anim_basic_16x16.gif +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-bg_flat_10_000000_40x100.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-icons_222222_256x240.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-icons_228ef1_256x240.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-icons_ef8c08_256x240.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-icons_ffd27a_256x240.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-icons_ffffff_256x240.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/jquery-ui.custom.css +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-af.js +0 -0
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.11/ui/i18n/jquery.ui.datepicker-ar-DZ.js +23 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-ar.js +7 -8
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-az.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-bg.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-bs.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-ca.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-cs.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-da.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-de.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-el.js +0 -0
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.11/ui/i18n/jquery.ui.datepicker-en-AU.js +23 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-en-GB.js +0 -0
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.11/ui/i18n/jquery.ui.datepicker-en-NZ.js +23 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-eo.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-es.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-et.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-eu.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-fa.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-fi.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-fo.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-fr-CH.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-fr.js +12 -10
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.11/ui/i18n/jquery.ui.datepicker-gl.js +23 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-he.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-hr.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-hu.js +1 -1
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-hy.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-id.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-is.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-it.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-ja.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-ko.js +0 -0
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.11/ui/i18n/jquery.ui.datepicker-kz.js +23 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-lt.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-lv.js +0 -0
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.11/ui/i18n/jquery.ui.datepicker-ml.js +23 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-ms.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-nl.js +0 -0
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.11/ui/i18n/jquery.ui.datepicker-no.js +23 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-pl.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-pt-BR.js +0 -0
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.11/ui/i18n/jquery.ui.datepicker-pt.js +22 -0
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.11/ui/i18n/jquery.ui.datepicker-rm.js +21 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-ro.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-ru.js +1 -1
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-sk.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-sl.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-sq.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-sr-SR.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-sr.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-sv.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-ta.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-th.js +1 -1
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.11/ui/i18n/jquery.ui.datepicker-tj.js +23 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-tr.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-uk.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-vi.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-zh-CN.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-zh-HK.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-zh-TW.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.blind.js +3 -3
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.bounce.js +3 -3
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.clip.js +3 -3
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.core.js +48 -15
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.drop.js +3 -3
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.explode.js +2 -2
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.11/ui/jquery.effects.fade.js +32 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.fold.js +3 -3
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.highlight.js +2 -2
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.pulsate.js +2 -2
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.scale.js +4 -4
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.shake.js +3 -3
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.slide.js +4 -4
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.transfer.js +2 -2
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.accordion.js +33 -20
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.autocomplete.js +104 -42
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.button.js +35 -13
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.core.js +111 -84
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.datepicker.js +87 -46
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.dialog.js +105 -75
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.draggable.js +17 -15
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.droppable.js +5 -5
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.mouse.js +16 -11
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.position.js +51 -32
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.progressbar.js +24 -10
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.resizable.js +7 -7
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.selectable.js +3 -3
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.slider.js +9 -7
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.sortable.js +22 -20
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.tabs.js +15 -14
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.widget.js +50 -25
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → plugins/bsmselect}/GPL-LICENSE.txt +1 -1
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → plugins/bsmselect}/MIT-LICENSE.txt +3 -7
- data/apps/core/components/public/js/jquery/plugins/bsmselect/README.md +185 -0
- data/apps/core/components/public/js/jquery/plugins/bsmselect/css/jquery.bsmselect.css +64 -0
- data/apps/core/components/public/js/jquery/plugins/bsmselect/js/jquery.bsmselect.compatibility.js +60 -0
- data/apps/core/components/public/js/jquery/plugins/bsmselect/js/jquery.bsmselect.js +381 -0
- data/apps/core/components/public/js/jquery/plugins/bsmselect/js/jquery.bsmselect.sortable.js +49 -0
- data/apps/core/components/public/js/plugins/sortable.js +16 -7
- data/apps/core/components/public/js/spider.js +60 -41
- data/apps/core/components/widgets/admin/admin.shtml +1 -1
- data/apps/core/components/widgets/list/list.shtml +2 -2
- data/apps/core/components/widgets/month_calendar/month_calendar.shtml +23 -20
- data/apps/core/components/widgets/switcher/switcher.rb +77 -21
- data/apps/core/components/widgets/switcher/templates/default.shtml +8 -0
- data/apps/core/components/widgets/switcher/templates/table.shtml +15 -0
- data/apps/core/components/widgets/table/table.rb +4 -1
- data/apps/core/components/widgets/table/table.shtml +10 -8
- data/apps/core/forms/public/css/form.css +9 -1
- data/apps/core/forms/public/date_time.js +14 -2
- data/apps/core/forms/public/input.js +1 -1
- data/apps/core/forms/public/select.js +4 -3
- data/apps/core/forms/tags/element_row.erb +11 -2
- data/apps/core/forms/widgets/inputs/date_time/date_time.rb +9 -0
- data/apps/core/forms/widgets/inputs/date_time/date_time.shtml +1 -1
- data/apps/core/forms/widgets/inputs/html_area/html_area.shtml +2 -2
- data/apps/core/forms/widgets/inputs/input/input.rb +0 -3
- data/apps/core/forms/widgets/inputs/select/select.shtml +2 -2
- data/apps/messenger/backends/email/sendmail.rb +20 -0
- data/apps/messenger/backends/email/smtp.rb +12 -14
- data/apps/messenger/backends/email/test.rb +20 -0
- data/apps/messenger/config/options.rb +9 -9
- data/apps/messenger/config/test.config.yml +2 -0
- data/apps/messenger/controllers/mixins/messenger_helper.rb +41 -15
- data/apps/messenger/lib/email_backend.rb +10 -0
- data/apps/messenger/messenger.rb +45 -26
- data/apps/messenger/test/features/attachments.feature +26 -0
- data/apps/messenger/test/features/messenger_helper.feature +31 -0
- data/apps/messenger/test/features/sending_email.feature +10 -0
- data/apps/messenger/test/features/step_definitions/common_steps.rb +11 -0
- data/apps/messenger/test/features/step_definitions/email_steps.rb +98 -0
- data/apps/messenger/test/features/support/env.rb +11 -0
- data/apps/messenger/test/files/test_file1.txt +1 -0
- data/apps/messenger/test/lib/controllers/mail_test_controller.rb +34 -0
- data/apps/messenger/test/templates/email/multipart.html.erb +1 -0
- data/apps/messenger/test/templates/email/multipart.txt.erb +1 -0
- data/apps/messenger/test/templates/email/simple.erb +1 -0
- data/apps/messenger/test/templates/email/vars.erb +1 -0
- data/lib/spiderfw/cmd/cmd.rb +4 -0
- data/lib/spiderfw/cmd/commands/webserver.rb +12 -59
- data/lib/spiderfw/config/configuration.rb +4 -0
- data/lib/spiderfw/config/options/spider.rb +25 -8
- data/lib/spiderfw/controller/controller.rb +10 -4
- data/lib/spiderfw/controller/first_responder.rb +6 -20
- data/lib/spiderfw/controller/http_controller.rb +2 -1
- data/lib/spiderfw/controller/mixins/http_mixin.rb +12 -1
- data/lib/spiderfw/controller/mixins/visual.rb +3 -16
- data/lib/spiderfw/env.rb +1 -1
- data/lib/spiderfw/http/server.rb +178 -2
- data/lib/spiderfw/model/base_model.rb +142 -111
- data/lib/spiderfw/model/data_type.rb +15 -0
- data/lib/spiderfw/model/datatypes/decimal.rb +8 -0
- data/lib/spiderfw/model/datatypes/pk.rb +29 -0
- data/lib/spiderfw/model/datatypes.rb +1 -0
- data/lib/spiderfw/model/element.rb +5 -1
- data/lib/spiderfw/model/extended_models/managed.rb +1 -1
- data/lib/spiderfw/model/junction.rb +23 -0
- data/lib/spiderfw/model/mappers/db_mapper.rb +96 -80
- data/lib/spiderfw/model/mappers/document_mapper.rb +315 -0
- data/lib/spiderfw/model/mappers/mapper.rb +164 -75
- data/lib/spiderfw/model/mixins/list.rb +1 -0
- data/lib/spiderfw/model/mixins/versioned.rb +63 -27
- data/lib/spiderfw/model/model.rb +36 -9
- data/lib/spiderfw/model/query_funcs.rb +3 -0
- data/lib/spiderfw/model/query_set.rb +21 -1
- data/lib/spiderfw/model/storage/base_storage.rb +259 -6
- data/lib/spiderfw/model/storage/{db/db_connection_pool.rb → connection_pool.rb} +25 -21
- data/lib/spiderfw/model/storage/db/adapters/mysql.rb +25 -5
- data/lib/spiderfw/model/storage/db/adapters/oracle.rb +1 -1
- data/lib/spiderfw/model/storage/db/connectors/jdbc_oracle.rb +2 -2
- data/lib/spiderfw/model/storage/db/connectors/oci8.rb +3 -4
- data/lib/spiderfw/model/storage/db/db_storage.rb +18 -219
- data/lib/spiderfw/model/storage/document/adapters/mongodb.rb +307 -0
- data/lib/spiderfw/model/storage/document/document.rb +7 -0
- data/lib/spiderfw/model/storage/document/document_storage.rb +34 -0
- data/lib/spiderfw/model/storage.rb +23 -11
- data/lib/spiderfw/model/unit_of_work.rb +45 -22
- data/lib/spiderfw/spider.rb +660 -0
- data/lib/spiderfw/templates/blocks/html.rb +4 -2
- data/lib/spiderfw/templates/blocks/run.rb +1 -1
- data/lib/spiderfw/templates/blocks/tag_if.rb +1 -1
- data/lib/spiderfw/templates/blocks/widget.rb +1 -1
- data/lib/spiderfw/templates/layout.rb +29 -5
- data/lib/spiderfw/templates/template.rb +72 -7
- data/lib/spiderfw/templates/template_blocks.rb +1 -1
- data/lib/spiderfw/test/capybara.rb +7 -0
- data/lib/spiderfw/test/cucumber.rb +12 -0
- data/lib/spiderfw/test/page_object.rb +29 -0
- data/lib/spiderfw/test/spec.rb +20 -0
- data/lib/spiderfw/test/stubs/mapper_stub.rb +18 -0
- data/lib/spiderfw/test/stubs/storage_stub.rb +23 -0
- data/lib/spiderfw/test/unit.rb +23 -0
- data/lib/spiderfw/test.rb +89 -0
- data/lib/spiderfw/utils/json.rb +6 -0
- data/lib/spiderfw/utils/logger.rb +17 -4
- data/lib/spiderfw/utils/loggers/apache_commons_logger.rb +61 -0
- data/lib/spiderfw/utils/monkey/date_time.rb +2 -2
- data/lib/spiderfw/utils/monkey/module.rb +3 -1
- data/lib/spiderfw/utils/profiling.rb +2 -2
- data/lib/spiderfw/widget/widget.rb +31 -13
- data/lib/spiderfw.rb +1 -597
- data/spider.gemspec +9 -10
- metadata +193 -132
- data/apps/admin/_init.rb +0 -9
- data/apps/admin/controllers/admin_controller.rb +0 -12
- data/apps/admin/widgets/dashboard_widget/dashboard_widget.rb +0 -8
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.4/development-bundle/AUTHORS.txt +0 -30
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.4/development-bundle/ui/i18n/jquery-ui-i18n.js +0 -1176
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.4/development-bundle/ui/i18n/jquery.ui.datepicker-no.js +0 -23
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.4/development-bundle/version.txt +0 -1
- data/apps/core/components/public/js/jquery/plugins/asmselect/jquery.asmselect.css +0 -64
- data/apps/core/components/public/js/jquery/plugins/asmselect/jquery.asmselect.js +0 -407
- data/apps/core/components/widgets/switcher/switcher.shtml +0 -17
- data/apps/master/po/master.pot +0 -400
@@ -1,7 +1,7 @@
|
|
1
1
|
/*
|
2
|
-
* jQuery UI Datepicker
|
2
|
+
* jQuery UI Datepicker @VERSION
|
3
3
|
*
|
4
|
-
* Copyright
|
4
|
+
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
5
5
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
6
6
|
* http://jquery.org/license
|
7
7
|
*
|
@@ -12,7 +12,7 @@
|
|
12
12
|
*/
|
13
13
|
(function( $, undefined ) {
|
14
14
|
|
15
|
-
$.extend($.ui, { datepicker: { version: "
|
15
|
+
$.extend($.ui, { datepicker: { version: "@VERSION" } });
|
16
16
|
|
17
17
|
var PROP_NAME = 'datepicker';
|
18
18
|
var dpuuid = new Date().getTime();
|
@@ -107,7 +107,7 @@ function Datepicker() {
|
|
107
107
|
autoSize: false // True to size the input for the date format, false to leave as is
|
108
108
|
};
|
109
109
|
$.extend(this._defaults, this.regional['']);
|
110
|
-
this.dpDiv = $('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all
|
110
|
+
this.dpDiv = $('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>');
|
111
111
|
}
|
112
112
|
|
113
113
|
$.extend(Datepicker.prototype, {
|
@@ -167,7 +167,7 @@ $.extend(Datepicker.prototype, {
|
|
167
167
|
|
168
168
|
/* Create a new instance object. */
|
169
169
|
_newInst: function(target, inline) {
|
170
|
-
var id = target[0].id.replace(/([^A-Za-z0-9_])/g, '\\\\$1'); // escape jQuery meta chars
|
170
|
+
var id = target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\\\$1'); // escape jQuery meta chars
|
171
171
|
return {id: id, input: target, // associated target
|
172
172
|
selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection
|
173
173
|
drawMonth: 0, drawYear: 0, // month being drawn
|
@@ -272,6 +272,7 @@ $.extend(Datepicker.prototype, {
|
|
272
272
|
this._setDate(inst, this._getDefaultDate(inst), true);
|
273
273
|
this._updateDatepicker(inst);
|
274
274
|
this._updateAlternate(inst);
|
275
|
+
inst.dpDiv.show();
|
275
276
|
},
|
276
277
|
|
277
278
|
/* Pop-up the date picker in a "dialog" box.
|
@@ -443,7 +444,14 @@ $.extend(Datepicker.prototype, {
|
|
443
444
|
this._hideDatepicker();
|
444
445
|
}
|
445
446
|
var date = this._getDateDatepicker(target, true);
|
447
|
+
var minDate = this._getMinMaxDate(inst, 'min');
|
448
|
+
var maxDate = this._getMinMaxDate(inst, 'max');
|
446
449
|
extendRemove(inst.settings, settings);
|
450
|
+
// reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided
|
451
|
+
if (minDate !== null && settings['dateFormat'] !== undefined && settings['minDate'] === undefined)
|
452
|
+
inst.settings.minDate = this._formatDate(inst, minDate);
|
453
|
+
if (maxDate !== null && settings['dateFormat'] !== undefined && settings['maxDate'] === undefined)
|
454
|
+
inst.settings.maxDate = this._formatDate(inst, maxDate);
|
447
455
|
this._attachments($(target), inst);
|
448
456
|
this._autoSize(inst);
|
449
457
|
this._setDateDatepicker(target, date);
|
@@ -499,8 +507,8 @@ $.extend(Datepicker.prototype, {
|
|
499
507
|
case 9: $.datepicker._hideDatepicker();
|
500
508
|
handled = false;
|
501
509
|
break; // hide on tab out
|
502
|
-
case 13: var sel = $('td.' + $.datepicker._dayOverClass
|
503
|
-
|
510
|
+
case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' +
|
511
|
+
$.datepicker._currentClass + ')', inst.dpDiv);
|
504
512
|
if (sel[0])
|
505
513
|
$.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
|
506
514
|
else
|
@@ -564,7 +572,7 @@ $.extend(Datepicker.prototype, {
|
|
564
572
|
if ($.datepicker._get(inst, 'constrainInput')) {
|
565
573
|
var chars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat'));
|
566
574
|
var chr = String.fromCharCode(event.charCode == undefined ? event.keyCode : event.charCode);
|
567
|
-
return event.ctrlKey || (chr < ' ' || !chars || chars.indexOf(chr) > -1);
|
575
|
+
return event.ctrlKey || event.metaKey || (chr < ' ' || !chars || chars.indexOf(chr) > -1);
|
568
576
|
}
|
569
577
|
},
|
570
578
|
|
@@ -624,6 +632,8 @@ $.extend(Datepicker.prototype, {
|
|
624
632
|
}
|
625
633
|
var offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]};
|
626
634
|
$.datepicker._pos = null;
|
635
|
+
//to avoid flashes on Firefox
|
636
|
+
inst.dpDiv.empty();
|
627
637
|
// determine sizing offscreen
|
628
638
|
inst.dpDiv.css({position: 'absolute', display: 'block', top: '-1000px'});
|
629
639
|
$.datepicker._updateDatepicker(inst);
|
@@ -638,10 +648,12 @@ $.extend(Datepicker.prototype, {
|
|
638
648
|
var duration = $.datepicker._get(inst, 'duration');
|
639
649
|
var postProcess = function() {
|
640
650
|
$.datepicker._datepickerShowing = true;
|
641
|
-
var
|
642
|
-
|
643
|
-
|
651
|
+
var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only
|
652
|
+
if( !! cover.length ){
|
653
|
+
var borders = $.datepicker._getBorders(inst.dpDiv);
|
654
|
+
cover.css({left: -borders[0], top: -borders[1],
|
644
655
|
width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()});
|
656
|
+
}
|
645
657
|
};
|
646
658
|
inst.dpDiv.zIndex($(input).zIndex()+1);
|
647
659
|
if ($.effects && $.effects[showAnim])
|
@@ -660,12 +672,12 @@ $.extend(Datepicker.prototype, {
|
|
660
672
|
_updateDatepicker: function(inst) {
|
661
673
|
var self = this;
|
662
674
|
var borders = $.datepicker._getBorders(inst.dpDiv);
|
663
|
-
inst.dpDiv.empty().append(this._generateHTML(inst))
|
664
|
-
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
|
675
|
+
inst.dpDiv.empty().append(this._generateHTML(inst));
|
676
|
+
var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only
|
677
|
+
if( !!cover.length ){ //avoid call to outerXXXX() when not in IE6
|
678
|
+
cover.css({left: -borders[0], top: -borders[1], width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()})
|
679
|
+
}
|
680
|
+
inst.dpDiv.find('button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a')
|
669
681
|
.bind('mouseout', function(){
|
670
682
|
$(this).removeClass('ui-state-hover');
|
671
683
|
if(this.className.indexOf('ui-datepicker-prev') != -1) $(this).removeClass('ui-datepicker-prev-hover');
|
@@ -695,8 +707,21 @@ $.extend(Datepicker.prototype, {
|
|
695
707
|
inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') +
|
696
708
|
'Class']('ui-datepicker-rtl');
|
697
709
|
if (inst == $.datepicker._curInst && $.datepicker._datepickerShowing && inst.input &&
|
698
|
-
|
710
|
+
// #6694 - don't focus the input if it's already focused
|
711
|
+
// this breaks the change event in IE
|
712
|
+
inst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement)
|
699
713
|
inst.input.focus();
|
714
|
+
// deffered render of the years select (to avoid flashes on Firefox)
|
715
|
+
if( inst.yearshtml ){
|
716
|
+
var origyearshtml = inst.yearshtml;
|
717
|
+
setTimeout(function(){
|
718
|
+
//assure that inst.yearshtml didn't change.
|
719
|
+
if( origyearshtml === inst.yearshtml ){
|
720
|
+
inst.dpDiv.find('select.ui-datepicker-year:first').replaceWith(inst.yearshtml);
|
721
|
+
}
|
722
|
+
origyearshtml = inst.yearshtml = null;
|
723
|
+
}, 0);
|
724
|
+
}
|
700
725
|
},
|
701
726
|
|
702
727
|
/* Retrieve the size of left and top borders for an element.
|
@@ -736,7 +761,7 @@ $.extend(Datepicker.prototype, {
|
|
736
761
|
_findPos: function(obj) {
|
737
762
|
var inst = this._getInst(obj);
|
738
763
|
var isRTL = this._get(inst, 'isRTL');
|
739
|
-
while (obj && (obj.type == 'hidden' || obj.nodeType != 1)) {
|
764
|
+
while (obj && (obj.type == 'hidden' || obj.nodeType != 1 || $.expr.filters.hidden(obj))) {
|
740
765
|
obj = obj[isRTL ? 'previousSibling' : 'nextSibling'];
|
741
766
|
}
|
742
767
|
var position = $(obj).offset();
|
@@ -950,6 +975,8 @@ $.extend(Datepicker.prototype, {
|
|
950
975
|
if (value == '')
|
951
976
|
return null;
|
952
977
|
var shortYearCutoff = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff;
|
978
|
+
shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :
|
979
|
+
new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
|
953
980
|
var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;
|
954
981
|
var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;
|
955
982
|
var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;
|
@@ -968,9 +995,9 @@ $.extend(Datepicker.prototype, {
|
|
968
995
|
};
|
969
996
|
// Extract a number from the string value
|
970
997
|
var getNumber = function(match) {
|
971
|
-
lookAhead(match);
|
998
|
+
var isDoubled = lookAhead(match);
|
972
999
|
var size = (match == '@' ? 14 : (match == '!' ? 20 :
|
973
|
-
(match == 'y' ? 4 : (match == 'o' ? 3 : 2))));
|
1000
|
+
(match == 'y' && isDoubled ? 4 : (match == 'o' ? 3 : 2))));
|
974
1001
|
var digits = new RegExp('^\\d{1,' + size + '}');
|
975
1002
|
var num = value.substring(iValue).match(digits);
|
976
1003
|
if (!num)
|
@@ -982,7 +1009,7 @@ $.extend(Datepicker.prototype, {
|
|
982
1009
|
var getName = function(match, shortNames, longNames) {
|
983
1010
|
var names = (lookAhead(match) ? longNames : shortNames);
|
984
1011
|
for (var i = 0; i < names.length; i++) {
|
985
|
-
if (value.substr(iValue, names[i].length) == names[i]) {
|
1012
|
+
if (value.substr(iValue, names[i].length).toLowerCase() == names[i].toLowerCase()) {
|
986
1013
|
iValue += names[i].length;
|
987
1014
|
return i + 1;
|
988
1015
|
}
|
@@ -1300,16 +1327,16 @@ $.extend(Datepicker.prototype, {
|
|
1300
1327
|
}
|
1301
1328
|
return new Date(year, month, day);
|
1302
1329
|
};
|
1303
|
-
|
1304
|
-
(typeof date == 'number' ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : date)));
|
1305
|
-
|
1306
|
-
if (
|
1307
|
-
|
1308
|
-
|
1309
|
-
|
1310
|
-
|
1330
|
+
var newDate = (date == null || date === '' ? defaultDate : (typeof date == 'string' ? offsetString(date) :
|
1331
|
+
(typeof date == 'number' ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime()))));
|
1332
|
+
newDate = (newDate && newDate.toString() == 'Invalid Date' ? defaultDate : newDate);
|
1333
|
+
if (newDate) {
|
1334
|
+
newDate.setHours(0);
|
1335
|
+
newDate.setMinutes(0);
|
1336
|
+
newDate.setSeconds(0);
|
1337
|
+
newDate.setMilliseconds(0);
|
1311
1338
|
}
|
1312
|
-
return this._daylightSavingAdjust(
|
1339
|
+
return this._daylightSavingAdjust(newDate);
|
1313
1340
|
},
|
1314
1341
|
|
1315
1342
|
/* Handle switch to/from daylight saving.
|
@@ -1326,13 +1353,13 @@ $.extend(Datepicker.prototype, {
|
|
1326
1353
|
|
1327
1354
|
/* Set the date(s) directly. */
|
1328
1355
|
_setDate: function(inst, date, noChange) {
|
1329
|
-
var clear = !
|
1356
|
+
var clear = !date;
|
1330
1357
|
var origMonth = inst.selectedMonth;
|
1331
1358
|
var origYear = inst.selectedYear;
|
1332
|
-
|
1333
|
-
inst.selectedDay = inst.currentDay =
|
1334
|
-
inst.drawMonth = inst.selectedMonth = inst.currentMonth =
|
1335
|
-
inst.drawYear = inst.selectedYear = inst.currentYear =
|
1359
|
+
var newDate = this._restrictMinMax(inst, this._determineDate(inst, date, new Date()));
|
1360
|
+
inst.selectedDay = inst.currentDay = newDate.getDate();
|
1361
|
+
inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth();
|
1362
|
+
inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear();
|
1336
1363
|
if ((origMonth != inst.selectedMonth || origYear != inst.selectedYear) && !noChange)
|
1337
1364
|
this._notifyChange(inst);
|
1338
1365
|
this._adjustInstDate(inst);
|
@@ -1493,7 +1520,7 @@ $.extend(Datepicker.prototype, {
|
|
1493
1520
|
(otherMonth && !showOtherMonths ? ' ' : // display for other months
|
1494
1521
|
(unselectable ? '<span class="ui-state-default">' + printDate.getDate() + '</span>' : '<a class="ui-state-default' +
|
1495
1522
|
(printDate.getTime() == today.getTime() ? ' ui-state-highlight' : '') +
|
1496
|
-
(printDate.getTime() ==
|
1523
|
+
(printDate.getTime() == currentDate.getTime() ? ' ui-state-active' : '') + // highlight selected day
|
1497
1524
|
(otherMonth ? ' ui-priority-secondary' : '') + // distinguish dates from other months
|
1498
1525
|
'" href="#">' + printDate.getDate() + '</a>')) + '</td>'; // display selectable date
|
1499
1526
|
printDate.setDate(printDate.getDate() + 1);
|
@@ -1548,6 +1575,7 @@ $.extend(Datepicker.prototype, {
|
|
1548
1575
|
if (!showMonthAfterYear)
|
1549
1576
|
html += monthHtml + (secondary || !(changeMonth && changeYear) ? ' ' : '');
|
1550
1577
|
// year selection
|
1578
|
+
inst.yearshtml = '';
|
1551
1579
|
if (secondary || !changeYear)
|
1552
1580
|
html += '<span class="ui-datepicker-year">' + drawYear + '</span>';
|
1553
1581
|
else {
|
@@ -1564,16 +1592,24 @@ $.extend(Datepicker.prototype, {
|
|
1564
1592
|
var endYear = Math.max(year, determineYear(years[1] || ''));
|
1565
1593
|
year = (minDate ? Math.max(year, minDate.getFullYear()) : year);
|
1566
1594
|
endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);
|
1567
|
-
|
1595
|
+
inst.yearshtml += '<select class="ui-datepicker-year" ' +
|
1568
1596
|
'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'Y\');" ' +
|
1569
1597
|
'onclick="DP_jQuery_' + dpuuid + '.datepicker._clickMonthYear(\'#' + inst.id + '\');"' +
|
1570
1598
|
'>';
|
1571
1599
|
for (; year <= endYear; year++) {
|
1572
|
-
|
1600
|
+
inst.yearshtml += '<option value="' + year + '"' +
|
1573
1601
|
(year == drawYear ? ' selected="selected"' : '') +
|
1574
1602
|
'>' + year + '</option>';
|
1575
1603
|
}
|
1576
|
-
|
1604
|
+
inst.yearshtml += '</select>';
|
1605
|
+
//when showing there is no need for later update
|
1606
|
+
if( ! $.browser.mozilla ){
|
1607
|
+
html += inst.yearshtml;
|
1608
|
+
inst.yearshtml = null;
|
1609
|
+
} else {
|
1610
|
+
// will be replaced later with inst.yearshtml
|
1611
|
+
html += '<select class="ui-datepicker-year"><option value="' + drawYear + '" selected="selected">' + drawYear + '</option></select>';
|
1612
|
+
}
|
1577
1613
|
}
|
1578
1614
|
html += this._get(inst, 'yearSuffix');
|
1579
1615
|
if (showMonthAfterYear)
|
@@ -1601,9 +1637,9 @@ $.extend(Datepicker.prototype, {
|
|
1601
1637
|
_restrictMinMax: function(inst, date) {
|
1602
1638
|
var minDate = this._getMinMaxDate(inst, 'min');
|
1603
1639
|
var maxDate = this._getMinMaxDate(inst, 'max');
|
1604
|
-
|
1605
|
-
|
1606
|
-
return
|
1640
|
+
var newDate = (minDate && date < minDate ? minDate : date);
|
1641
|
+
newDate = (maxDate && newDate > maxDate ? maxDate : newDate);
|
1642
|
+
return newDate;
|
1607
1643
|
},
|
1608
1644
|
|
1609
1645
|
/* Notify change of month/year. */
|
@@ -1627,7 +1663,7 @@ $.extend(Datepicker.prototype, {
|
|
1627
1663
|
|
1628
1664
|
/* Find the number of days in a given month. */
|
1629
1665
|
_getDaysInMonth: function(year, month) {
|
1630
|
-
return 32 - new Date(year, month, 32).getDate();
|
1666
|
+
return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate();
|
1631
1667
|
},
|
1632
1668
|
|
1633
1669
|
/* Find the day of the week of the first of a month. */
|
@@ -1697,7 +1733,12 @@ function isArray(a) {
|
|
1697
1733
|
Object - settings for attaching new datepicker functionality
|
1698
1734
|
@return jQuery object */
|
1699
1735
|
$.fn.datepicker = function(options){
|
1700
|
-
|
1736
|
+
|
1737
|
+
/* Verify an empty collection wasn't passed - Fixes #6976 */
|
1738
|
+
if ( !this.length ) {
|
1739
|
+
return this;
|
1740
|
+
}
|
1741
|
+
|
1701
1742
|
/* Initialise the date picker. */
|
1702
1743
|
if (!$.datepicker.initialized) {
|
1703
1744
|
$(document).mousedown($.datepicker._checkExternalClick).
|
@@ -1723,7 +1764,7 @@ $.fn.datepicker = function(options){
|
|
1723
1764
|
$.datepicker = new Datepicker(); // singleton instance
|
1724
1765
|
$.datepicker.initialized = false;
|
1725
1766
|
$.datepicker.uuid = new Date().getTime();
|
1726
|
-
$.datepicker.version = "
|
1767
|
+
$.datepicker.version = "@VERSION";
|
1727
1768
|
|
1728
1769
|
// Workaround for #4055
|
1729
1770
|
// Add another global to avoid noConflict issues with inline event handlers
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/*
|
2
|
-
* jQuery UI Dialog
|
2
|
+
* jQuery UI Dialog @VERSION
|
3
3
|
*
|
4
|
-
* Copyright
|
4
|
+
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
5
5
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
6
6
|
* http://jquery.org/license
|
7
7
|
*
|
@@ -19,10 +19,25 @@
|
|
19
19
|
(function( $, undefined ) {
|
20
20
|
|
21
21
|
var uiDialogClasses =
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
22
|
+
'ui-dialog ' +
|
23
|
+
'ui-widget ' +
|
24
|
+
'ui-widget-content ' +
|
25
|
+
'ui-corner-all ',
|
26
|
+
sizeRelatedOptions = {
|
27
|
+
buttons: true,
|
28
|
+
height: true,
|
29
|
+
maxHeight: true,
|
30
|
+
maxWidth: true,
|
31
|
+
minHeight: true,
|
32
|
+
minWidth: true,
|
33
|
+
width: true
|
34
|
+
},
|
35
|
+
resizableRelatedOptions = {
|
36
|
+
maxHeight: true,
|
37
|
+
maxWidth: true,
|
38
|
+
minHeight: true,
|
39
|
+
minWidth: true
|
40
|
+
};
|
26
41
|
|
27
42
|
$.widget("ui.dialog", {
|
28
43
|
options: {
|
@@ -42,7 +57,6 @@ $.widget("ui.dialog", {
|
|
42
57
|
position: {
|
43
58
|
my: 'center',
|
44
59
|
at: 'center',
|
45
|
-
of: window,
|
46
60
|
collision: 'fit',
|
47
61
|
// ensure that the titlebar is never outside the document
|
48
62
|
using: function(pos) {
|
@@ -67,10 +81,11 @@ $.widget("ui.dialog", {
|
|
67
81
|
this.originalTitle = "";
|
68
82
|
}
|
69
83
|
|
84
|
+
this.options.title = this.options.title || this.originalTitle;
|
70
85
|
var self = this,
|
71
86
|
options = self.options,
|
72
87
|
|
73
|
-
title = options.title ||
|
88
|
+
title = options.title || ' ',
|
74
89
|
titleId = $.ui.dialog.getTitleId(self.element),
|
75
90
|
|
76
91
|
uiDialog = (self.uiDialog = $('<div></div>'))
|
@@ -212,7 +227,7 @@ $.widget("ui.dialog", {
|
|
212
227
|
|
213
228
|
close: function(event) {
|
214
229
|
var self = this,
|
215
|
-
maxZ;
|
230
|
+
maxZ, thisZ;
|
216
231
|
|
217
232
|
if (false === self._trigger('beforeClose', event)) {
|
218
233
|
return;
|
@@ -241,7 +256,10 @@ $.widget("ui.dialog", {
|
|
241
256
|
maxZ = 0;
|
242
257
|
$('.ui-dialog').each(function() {
|
243
258
|
if (this !== self.uiDialog[0]) {
|
244
|
-
|
259
|
+
thisZ = $(this).css('z-index');
|
260
|
+
if(!isNaN(thisZ)) {
|
261
|
+
maxZ = Math.max(maxZ, thisZ);
|
262
|
+
}
|
245
263
|
}
|
246
264
|
});
|
247
265
|
$.ui.dialog.maxZ = maxZ;
|
@@ -293,9 +311,6 @@ $.widget("ui.dialog", {
|
|
293
311
|
uiDialog = self.uiDialog;
|
294
312
|
|
295
313
|
self.overlay = options.modal ? new $.ui.dialog.overlay(self) : null;
|
296
|
-
if (uiDialog.next().length) {
|
297
|
-
uiDialog.appendTo('body');
|
298
|
-
}
|
299
314
|
self._size();
|
300
315
|
self._position(options.position);
|
301
316
|
uiDialog.show(options.show);
|
@@ -328,8 +343,8 @@ $.widget("ui.dialog", {
|
|
328
343
|
uiDialog.find('.ui-dialog-buttonpane :tabbable').get().concat(
|
329
344
|
uiDialog.get()))).eq(0).focus();
|
330
345
|
|
331
|
-
self._trigger('open');
|
332
346
|
self._isOpen = true;
|
347
|
+
self._trigger('open');
|
333
348
|
|
334
349
|
return self;
|
335
350
|
},
|
@@ -356,10 +371,16 @@ $.widget("ui.dialog", {
|
|
356
371
|
});
|
357
372
|
}
|
358
373
|
if (hasButtons) {
|
359
|
-
$.each(buttons, function(name,
|
374
|
+
$.each(buttons, function(name, props) {
|
375
|
+
props = $.isFunction( props ) ?
|
376
|
+
{ click: props, text: name } :
|
377
|
+
props;
|
360
378
|
var button = $('<button type="button"></button>')
|
361
|
-
.
|
362
|
-
.click
|
379
|
+
.attr( props, true )
|
380
|
+
.unbind('click')
|
381
|
+
.click(function() {
|
382
|
+
props.click.apply(self.element[0], arguments);
|
383
|
+
})
|
363
384
|
.appendTo(uiButtonSet);
|
364
385
|
if ($.fn.button) {
|
365
386
|
button.button();
|
@@ -506,18 +527,40 @@ $.widget("ui.dialog", {
|
|
506
527
|
this.uiDialog
|
507
528
|
// workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781
|
508
529
|
.css({ top: 0, left: 0 })
|
509
|
-
.position(position);
|
530
|
+
.position($.extend({ of: window }, position));
|
510
531
|
if (!isVisible) {
|
511
532
|
this.uiDialog.hide();
|
512
533
|
}
|
513
534
|
},
|
514
535
|
|
515
|
-
|
536
|
+
_setOptions: function( options ) {
|
516
537
|
var self = this,
|
517
|
-
|
518
|
-
isResizable = uiDialog.is(':data(resizable)'),
|
538
|
+
resizableOptions = {},
|
519
539
|
resize = false;
|
520
540
|
|
541
|
+
$.each( options, function( key, value ) {
|
542
|
+
self._setOption( key, value );
|
543
|
+
|
544
|
+
if ( key in sizeRelatedOptions ) {
|
545
|
+
resize = true;
|
546
|
+
}
|
547
|
+
if ( key in resizableRelatedOptions ) {
|
548
|
+
resizableOptions[ key ] = value;
|
549
|
+
}
|
550
|
+
});
|
551
|
+
|
552
|
+
if ( resize ) {
|
553
|
+
this._size();
|
554
|
+
}
|
555
|
+
if ( this.uiDialog.is( ":data(resizable)" ) ) {
|
556
|
+
this.uiDialog.resizable( "option", resizableOptions );
|
557
|
+
}
|
558
|
+
},
|
559
|
+
|
560
|
+
_setOption: function(key, value){
|
561
|
+
var self = this,
|
562
|
+
uiDialog = self.uiDialog;
|
563
|
+
|
521
564
|
switch (key) {
|
522
565
|
//handling of deprecated beforeclose (vs beforeClose) option
|
523
566
|
//Ticket #4669 http://dev.jqueryui.com/ticket/4669
|
@@ -527,10 +570,9 @@ $.widget("ui.dialog", {
|
|
527
570
|
break;
|
528
571
|
case "buttons":
|
529
572
|
self._createButtons(value);
|
530
|
-
resize = true;
|
531
573
|
break;
|
532
574
|
case "closeText":
|
533
|
-
//
|
575
|
+
// ensure that we always pass a string
|
534
576
|
self.uiDialogTitlebarCloseText.text("" + value);
|
535
577
|
break;
|
536
578
|
case "dialogClass":
|
@@ -546,44 +588,21 @@ $.widget("ui.dialog", {
|
|
546
588
|
}
|
547
589
|
break;
|
548
590
|
case "draggable":
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
uiDialog.draggable('destroy');
|
553
|
-
}
|
554
|
-
break;
|
555
|
-
case "height":
|
556
|
-
resize = true;
|
557
|
-
break;
|
558
|
-
case "maxHeight":
|
559
|
-
if (isResizable) {
|
560
|
-
uiDialog.resizable('option', 'maxHeight', value);
|
591
|
+
var isDraggable = uiDialog.is( ":data(draggable)" );
|
592
|
+
if ( isDraggable && !value ) {
|
593
|
+
uiDialog.draggable( "destroy" );
|
561
594
|
}
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
if (isResizable) {
|
566
|
-
uiDialog.resizable('option', 'maxWidth', value);
|
567
|
-
}
|
568
|
-
resize = true;
|
569
|
-
break;
|
570
|
-
case "minHeight":
|
571
|
-
if (isResizable) {
|
572
|
-
uiDialog.resizable('option', 'minHeight', value);
|
573
|
-
}
|
574
|
-
resize = true;
|
575
|
-
break;
|
576
|
-
case "minWidth":
|
577
|
-
if (isResizable) {
|
578
|
-
uiDialog.resizable('option', 'minWidth', value);
|
595
|
+
|
596
|
+
if ( !isDraggable && value ) {
|
597
|
+
self._makeDraggable();
|
579
598
|
}
|
580
|
-
resize = true;
|
581
599
|
break;
|
582
600
|
case "position":
|
583
601
|
self._position(value);
|
584
602
|
break;
|
585
603
|
case "resizable":
|
586
604
|
// currently resizable, becoming non-resizable
|
605
|
+
var isResizable = uiDialog.is( ":data(resizable)" );
|
587
606
|
if (isResizable && !value) {
|
588
607
|
uiDialog.resizable('destroy');
|
589
608
|
}
|
@@ -602,15 +621,9 @@ $.widget("ui.dialog", {
|
|
602
621
|
// convert whatever was passed in o a string, for html() to not throw up
|
603
622
|
$(".ui-dialog-title", self.uiDialogTitlebar).html("" + (value || ' '));
|
604
623
|
break;
|
605
|
-
case "width":
|
606
|
-
resize = true;
|
607
|
-
break;
|
608
624
|
}
|
609
625
|
|
610
626
|
$.Widget.prototype._setOption.apply(self, arguments);
|
611
|
-
if (resize) {
|
612
|
-
self._size();
|
613
|
-
}
|
614
627
|
},
|
615
628
|
|
616
629
|
_size: function() {
|
@@ -618,11 +631,12 @@ $.widget("ui.dialog", {
|
|
618
631
|
* divs will both have width and height set, so we need to reset them
|
619
632
|
*/
|
620
633
|
var options = this.options,
|
621
|
-
nonContentHeight
|
634
|
+
nonContentHeight,
|
635
|
+
minContentHeight,
|
636
|
+
isVisible = this.uiDialog.is( ":visible" );
|
622
637
|
|
623
638
|
// reset content sizing
|
624
|
-
|
625
|
-
this.element.css({
|
639
|
+
this.element.show().css({
|
626
640
|
width: 'auto',
|
627
641
|
minHeight: 0,
|
628
642
|
height: 0
|
@@ -639,16 +653,26 @@ $.widget("ui.dialog", {
|
|
639
653
|
width: options.width
|
640
654
|
})
|
641
655
|
.height();
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
minHeight:
|
649
|
-
height:
|
650
|
-
|
651
|
-
|
656
|
+
minContentHeight = Math.max( 0, options.minHeight - nonContentHeight );
|
657
|
+
|
658
|
+
if ( options.height === "auto" ) {
|
659
|
+
// only needed for IE6 support
|
660
|
+
if ( $.support.minHeight ) {
|
661
|
+
this.element.css({
|
662
|
+
minHeight: minContentHeight,
|
663
|
+
height: "auto"
|
664
|
+
});
|
665
|
+
} else {
|
666
|
+
this.uiDialog.show();
|
667
|
+
var autoHeight = this.element.css( "height", "auto" ).height();
|
668
|
+
if ( !isVisible ) {
|
669
|
+
this.uiDialog.hide();
|
670
|
+
}
|
671
|
+
this.element.height( Math.max( autoHeight, minContentHeight ) );
|
672
|
+
}
|
673
|
+
} else {
|
674
|
+
this.element.height( Math.max( options.height - nonContentHeight, 0 ) );
|
675
|
+
}
|
652
676
|
|
653
677
|
if (this.uiDialog.is(':data(resizable)')) {
|
654
678
|
this.uiDialog.resizable('option', 'minHeight', this._minHeight());
|
@@ -657,7 +681,7 @@ $.widget("ui.dialog", {
|
|
657
681
|
});
|
658
682
|
|
659
683
|
$.extend($.ui.dialog, {
|
660
|
-
version: "
|
684
|
+
version: "@VERSION",
|
661
685
|
|
662
686
|
uuid: 0,
|
663
687
|
maxZ: 0,
|
@@ -693,7 +717,10 @@ $.extend($.ui.dialog.overlay, {
|
|
693
717
|
if ($.ui.dialog.overlay.instances.length) {
|
694
718
|
$(document).bind($.ui.dialog.overlay.events, function(event) {
|
695
719
|
// stop events if the z-index of the target is < the z-index of the overlay
|
696
|
-
return
|
720
|
+
// we cannot return true when we don't want to cancel the event (#3523)
|
721
|
+
if ($(event.target).zIndex() < $.ui.dialog.overlay.maxZ) {
|
722
|
+
return false;
|
723
|
+
}
|
697
724
|
});
|
698
725
|
}
|
699
726
|
}, 1);
|
@@ -728,7 +755,10 @@ $.extend($.ui.dialog.overlay, {
|
|
728
755
|
},
|
729
756
|
|
730
757
|
destroy: function($el) {
|
731
|
-
|
758
|
+
var indexOf = $.inArray($el, this.instances);
|
759
|
+
if (indexOf != -1){
|
760
|
+
this.oldInstances.push(this.instances.splice(indexOf, 1)[0]);
|
761
|
+
}
|
732
762
|
|
733
763
|
if (this.instances.length === 0) {
|
734
764
|
$([document, window]).unbind('.dialog-overlay');
|