erp_app 3.0.7 → 3.0.8
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +23 -0
- data/app/controllers/erp_app/application_controller.rb +1 -0
- data/app/controllers/erp_app/desktop/file_manager/base_controller.rb +33 -23
- data/app/controllers/erp_app/public_controller.rb +2 -3
- data/app/controllers/erp_app/shared/configuration_controller.rb +1 -0
- data/app/controllers/erp_app/shared/notes_controller.rb +1 -0
- data/app/controllers/erp_app/shared/profile_management_controller.rb +22 -0
- data/app/controllers/erp_app/widget_proxy_controller.rb +2 -1
- data/app/models/configuration.rb +7 -0
- data/app/views/erp_app/desktop/base/index.erb +2 -3
- data/app/views/erp_app/login/index.erb +1 -1
- data/app/views/erp_app/mobile/base/index.erb +1 -0
- data/app/views/erp_app/organizer/base/index.erb +2 -3
- data/config/routes.rb +1 -1
- data/lib/active_ext/ext_helpers/column_builder.rb +118 -118
- data/lib/erp_app/config.rb +8 -4
- data/lib/erp_app/extensions/railties/action_view/base.rb +0 -1
- data/lib/erp_app/extensions/railties/action_view/helpers/include_helper.rb +18 -3
- data/lib/erp_app/version.rb +1 -1
- data/lib/erp_app/widgets/base.rb +5 -4
- data/lib/erp_app/widgets/loader.rb +2 -2
- data/public/images/btn/left_panel/left_panel_16x16.png +0 -0
- data/public/images/btn/left_right_panel/left_right_panel_16x16.png +0 -0
- data/public/images/btn/right_panel/right_panel_16x16.png +0 -0
- data/public/images/btn/save/save_16x16.png +0 -0
- data/public/images/btn/save_all/save_all_16x16.png +0 -0
- data/public/javascripts/erp_app/ckeditor/ckeditor.js +138 -135
- data/public/javascripts/erp_app/ckeditor/config.js +1 -1
- data/public/javascripts/erp_app/ckeditor/contents.css +1 -1
- data/public/javascripts/erp_app/ckeditor/lang/_languages.js +1 -1
- data/public/javascripts/erp_app/ckeditor/lang/_translationstatus.txt +62 -59
- data/public/javascripts/erp_app/ckeditor/lang/af.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/ar.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/bg.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/bn.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/bs.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/ca.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/cs.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/cy.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/da.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/de.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/el.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/en-au.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/en-ca.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/en-gb.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/en.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/eo.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/es.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/et.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/eu.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/fa.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/fi.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/fo.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/fr-ca.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/fr.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/gl.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/gu.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/he.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/hi.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/hr.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/hu.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/id.js +6 -0
- data/public/javascripts/erp_app/ckeditor/lang/is.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/it.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/ja.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/ka.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/km.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/ko.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/lt.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/lv.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/mk.js +6 -0
- data/public/javascripts/erp_app/ckeditor/lang/mn.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/ms.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/nb.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/nl.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/no.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/pl.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/pt-br.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/pt.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/ro.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/ru.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/sk.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/sl.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/sr-latn.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/sr.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/sv.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/th.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/tr.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/ug.js +6 -0
- data/public/javascripts/erp_app/ckeditor/lang/uk.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/vi.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/zh-cn.js +2 -2
- data/public/javascripts/erp_app/ckeditor/lang/zh.js +2 -2
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/_translationstatus.txt +25 -0
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/cs.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/cy.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/da.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/de.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/el.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/en.js +2 -2
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/eo.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/fa.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/fi.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/fr.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/gu.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/he.js +2 -2
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/it.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/mk.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/nb.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/nl.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/no.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/pt-br.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/ro.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/tr.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/ug.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/vi.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/zh-cn.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/about/dialogs/about.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/adobeair/plugin.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/ajax/plugin.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/autogrow/plugin.js +2 -2
- data/public/javascripts/erp_app/ckeditor/plugins/bbcode/plugin.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/clipboard/dialogs/paste.js +2 -2
- data/public/javascripts/erp_app/ckeditor/plugins/colordialog/dialogs/colordialog.js +3 -3
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/_translationstatus.txt +28 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/bg.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/cs.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/cy.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/da.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/de.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/el.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/en.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/eo.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/et.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/fa.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/fi.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/fr.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/gu.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/he.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/hr.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/it.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/nb.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/nl.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/no.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/pl.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/pt-br.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/tr.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/ug.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/uk.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/vi.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/zh-cn.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/devtools/plugin.js +2 -2
- data/public/javascripts/erp_app/ckeditor/plugins/dialog/dialogDefinition.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/div/dialogs/div.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/docprops/dialogs/docprops.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/docprops/plugin.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/find/dialogs/find.js +3 -3
- data/public/javascripts/erp_app/ckeditor/plugins/flash/dialogs/flash.js +4 -4
- data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/button.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/checkbox.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/form.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/hiddenfield.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/radio.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/select.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/textarea.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/textfield.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/iframe/dialogs/iframe.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/iframedialog/plugin.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/image/dialogs/image.js +9 -9
- data/public/javascripts/erp_app/ckeditor/plugins/inlineeditsave/plugin.js +40 -0
- data/public/javascripts/erp_app/ckeditor/plugins/link/dialogs/anchor.js +2 -2
- data/public/javascripts/erp_app/ckeditor/plugins/link/dialogs/link.js +5 -5
- data/public/javascripts/erp_app/ckeditor/plugins/liststyle/dialogs/liststyle.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/pastefromword/filter/default.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/pastetext/dialogs/pastetext.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/dialogs/placeholder.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/_translationstatus.txt +27 -0
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/bg.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/cs.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/cy.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/da.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/de.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/el.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/en.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/eo.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/et.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/fa.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/fi.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/fr.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/he.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/hr.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/it.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/nb.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/nl.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/no.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/pl.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/pt-br.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/tr.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/ug.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/uk.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/vi.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/zh-cn.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/placeholder/plugin.js +2 -2
- data/public/javascripts/erp_app/ckeditor/plugins/preview/preview.html +10 -0
- data/public/javascripts/erp_app/ckeditor/plugins/scayt/dialogs/options.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/scayt/dialogs/toolbar.css +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/smiley/dialogs/smiley.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/specialchar.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/_translationstatus.txt +22 -0
- data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/cs.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/cy.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/de.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/el.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/en.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/eo.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/et.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/fa.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/fi.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/fr.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/he.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/hr.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/it.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/nb.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/nl.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/no.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/pt-br.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/tr.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/ug.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/zh-cn.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/styles/styles/default.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/stylesheetparser/plugin.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/table/dialogs/table.js +5 -5
- data/public/javascripts/erp_app/ckeditor/plugins/tableresize/plugin.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/tabletools/dialogs/tableCell.js +3 -3
- data/public/javascripts/erp_app/ckeditor/plugins/templates/dialogs/templates.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/templates/templates/default.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/dialogs/uicolor.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/_translationstatus.txt +28 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/bg.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/cs.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/cy.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/da.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/de.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/el.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/en.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/eo.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/et.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/fa.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/fi.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/fr.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/he.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/hr.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/it.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/mk.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/nb.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/nl.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/no.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/pl.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/pt-br.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/tr.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/ug.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/uk.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/vi.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/zh-cn.js +6 -0
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/plugin.js +2 -2
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/yui/assets/yui.css +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/uicolor/yui/yui.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/wsc/dialogs/ciframe.html +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/wsc/dialogs/wsc.css +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/wsc/dialogs/wsc.js +1 -1
- data/public/javascripts/erp_app/ckeditor/plugins/xml/plugin.js +1 -1
- data/public/javascripts/erp_app/ckeditor/skins/kama/dialog.css +6 -6
- data/public/javascripts/erp_app/ckeditor/skins/kama/editor.css +1 -1
- data/public/javascripts/erp_app/ckeditor/skins/kama/skin.js +1 -1
- data/public/javascripts/erp_app/ckeditor/skins/kama/templates.css +1 -1
- data/public/javascripts/erp_app/ckeditor/skins/office2003/dialog.css +6 -5
- data/public/javascripts/erp_app/ckeditor/skins/office2003/editor.css +1 -1
- data/public/javascripts/erp_app/ckeditor/skins/office2003/skin.js +1 -1
- data/public/javascripts/erp_app/ckeditor/skins/office2003/templates.css +1 -1
- data/public/javascripts/erp_app/ckeditor/skins/v2/dialog.css +5 -5
- data/public/javascripts/erp_app/ckeditor/skins/v2/editor.css +1 -1
- data/public/javascripts/erp_app/ckeditor/skins/v2/skin.js +1 -1
- data/public/javascripts/erp_app/ckeditor/skins/v2/templates.css +1 -1
- data/public/javascripts/erp_app/ckeditor/themes/default/theme.js +1 -1
- data/public/javascripts/erp_app/ckeditor_example_config_override.js +2 -1
- data/public/javascripts/erp_app/codemirror/LICENSE +5 -1
- data/public/javascripts/erp_app/codemirror/README.md +6 -4
- data/public/javascripts/erp_app/codemirror/{css → doc}/baboon.png +0 -0
- data/public/javascripts/erp_app/codemirror/{css → doc}/baboon_vector.svg +0 -0
- data/public/javascripts/erp_app/codemirror/doc/compress.html +155 -0
- data/public/javascripts/erp_app/codemirror/{css → doc}/docs.css +0 -0
- data/public/javascripts/erp_app/codemirror/doc/internals.html +494 -0
- data/public/javascripts/erp_app/codemirror/{manual.html → doc/manual.html} +465 -167
- data/public/javascripts/erp_app/codemirror/doc/oldrelease.html +267 -0
- data/public/javascripts/erp_app/codemirror/doc/reporting.html +57 -0
- data/public/javascripts/erp_app/codemirror/doc/upgrade_v2.2.html +95 -0
- data/public/javascripts/erp_app/codemirror/keymap/emacs.js +29 -0
- data/public/javascripts/erp_app/codemirror/keymap/vim.js +785 -0
- data/public/javascripts/erp_app/codemirror/lib/codemirror.css +116 -14
- data/public/javascripts/erp_app/codemirror/lib/codemirror.js +2128 -1054
- data/public/javascripts/erp_app/codemirror/lib/util/closetag.js +164 -0
- data/public/javascripts/erp_app/codemirror/lib/util/dialog.css +27 -0
- data/public/javascripts/erp_app/codemirror/lib/util/dialog.js +67 -0
- data/public/javascripts/erp_app/codemirror/lib/util/foldcode.js +196 -0
- data/public/javascripts/erp_app/codemirror/lib/util/formatting.js +299 -0
- data/public/javascripts/erp_app/codemirror/lib/util/javascript-hint.js +134 -0
- data/public/javascripts/erp_app/codemirror/lib/util/loadmode.js +51 -0
- data/public/javascripts/erp_app/codemirror/lib/util/match-highlighter.js +44 -0
- data/public/javascripts/erp_app/codemirror/lib/util/multiplex.js +81 -0
- data/public/javascripts/erp_app/codemirror/lib/{overlay.js → util/overlay.js} +3 -2
- data/public/javascripts/erp_app/codemirror/lib/util/pig-hint.js +123 -0
- data/public/javascripts/erp_app/codemirror/lib/util/runmode.js +49 -0
- data/public/javascripts/erp_app/codemirror/lib/util/search.js +118 -0
- data/public/javascripts/erp_app/codemirror/lib/util/searchcursor.js +117 -0
- data/public/javascripts/erp_app/codemirror/lib/util/simple-hint.css +16 -0
- data/public/javascripts/erp_app/codemirror/lib/util/simple-hint.js +76 -0
- data/public/javascripts/erp_app/codemirror/lib/util/xml-hint.js +137 -0
- data/public/javascripts/erp_app/codemirror/mode/clike/clike.js +50 -17
- data/public/javascripts/erp_app/codemirror/mode/clike/index.html +4 -5
- data/public/javascripts/erp_app/codemirror/mode/clike/scala.html +765 -0
- data/public/javascripts/erp_app/codemirror/mode/clojure/clojure.js +207 -0
- data/public/javascripts/erp_app/codemirror/mode/clojure/index.html +66 -0
- data/public/javascripts/erp_app/codemirror/mode/coffeescript/coffeescript.js +101 -63
- data/public/javascripts/erp_app/codemirror/mode/coffeescript/index.html +9 -4
- data/public/javascripts/erp_app/codemirror/mode/css/css.js +4 -4
- data/public/javascripts/erp_app/codemirror/mode/css/index.html +3 -4
- data/public/javascripts/erp_app/codemirror/mode/diff/diff.js +24 -5
- data/public/javascripts/erp_app/codemirror/mode/diff/index.html +12 -7
- data/public/javascripts/erp_app/codemirror/mode/ecl/ecl.js +203 -0
- data/public/javascripts/erp_app/codemirror/mode/ecl/index.html +42 -0
- data/public/javascripts/erp_app/codemirror/mode/erlang/erlang.js +463 -0
- data/public/javascripts/erp_app/codemirror/mode/erlang/index.html +62 -0
- data/public/javascripts/erp_app/codemirror/mode/gfm/gfm.js +144 -0
- data/public/javascripts/erp_app/codemirror/mode/gfm/index.html +47 -0
- data/public/javascripts/erp_app/codemirror/mode/go/go.js +170 -0
- data/public/javascripts/erp_app/codemirror/mode/go/index.html +72 -0
- data/public/javascripts/erp_app/codemirror/mode/groovy/groovy.js +210 -0
- data/public/javascripts/erp_app/codemirror/mode/groovy/index.html +71 -0
- data/public/javascripts/erp_app/codemirror/mode/haskell/index.html +3 -3
- data/public/javascripts/erp_app/codemirror/mode/haxe/haxe.js +432 -0
- data/public/javascripts/erp_app/codemirror/mode/haxe/index.html +90 -0
- data/public/javascripts/erp_app/codemirror/mode/htmlembedded/htmlembedded.js +68 -0
- data/public/javascripts/erp_app/codemirror/mode/htmlembedded/index.html +49 -0
- data/public/javascripts/erp_app/codemirror/mode/htmlmixed/htmlmixed.js +8 -2
- data/public/javascripts/erp_app/codemirror/mode/htmlmixed/index.html +3 -4
- data/public/javascripts/erp_app/codemirror/mode/javascript/index.html +3 -4
- data/public/javascripts/erp_app/codemirror/mode/javascript/javascript.js +26 -13
- data/public/javascripts/erp_app/codemirror/mode/jinja2/index.html +37 -0
- data/public/javascripts/erp_app/codemirror/mode/jinja2/jinja2.js +42 -0
- data/public/javascripts/erp_app/codemirror/mode/less/index.html +618 -0
- data/public/javascripts/erp_app/codemirror/mode/less/less.js +232 -0
- data/public/javascripts/erp_app/codemirror/mode/lua/index.html +3 -3
- data/public/javascripts/erp_app/codemirror/mode/lua/lua.js +5 -3
- data/public/javascripts/erp_app/codemirror/mode/markdown/index.html +340 -0
- data/public/javascripts/erp_app/codemirror/mode/markdown/markdown.js +268 -0
- data/public/javascripts/erp_app/codemirror/mode/mysql/index.html +41 -0
- data/public/javascripts/erp_app/codemirror/mode/mysql/mysql.js +186 -0
- data/public/javascripts/erp_app/codemirror/mode/ntriples/index.html +32 -0
- data/public/javascripts/erp_app/codemirror/mode/ntriples/ntriples.js +172 -0
- data/public/javascripts/erp_app/codemirror/mode/ocaml/index.html +130 -0
- data/public/javascripts/erp_app/codemirror/mode/ocaml/ocaml.js +114 -0
- data/public/javascripts/erp_app/codemirror/mode/pascal/LICENSE +7 -0
- data/public/javascripts/erp_app/codemirror/mode/pascal/index.html +48 -0
- data/public/javascripts/erp_app/codemirror/mode/pascal/pascal.js +94 -0
- data/public/javascripts/erp_app/codemirror/mode/perl/LICENSE +19 -0
- data/public/javascripts/erp_app/codemirror/mode/perl/index.html +62 -0
- data/public/javascripts/erp_app/codemirror/mode/perl/perl.js +816 -0
- data/public/javascripts/erp_app/codemirror/mode/php/index.html +4 -5
- data/public/javascripts/erp_app/codemirror/mode/php/php.js +62 -27
- data/public/javascripts/erp_app/codemirror/mode/pig/index.html +42 -0
- data/public/javascripts/erp_app/codemirror/mode/pig/pig.js +172 -0
- data/public/javascripts/erp_app/codemirror/mode/plsql/index.html +3 -4
- data/public/javascripts/erp_app/codemirror/mode/plsql/plsql.js +2 -2
- data/public/javascripts/erp_app/codemirror/mode/properties/index.html +40 -0
- data/public/javascripts/erp_app/codemirror/mode/properties/properties.js +63 -0
- data/public/javascripts/erp_app/codemirror/mode/python/index.html +3 -4
- data/public/javascripts/erp_app/codemirror/mode/python/python.js +59 -42
- data/public/javascripts/erp_app/codemirror/mode/r/index.html +5 -5
- data/public/javascripts/erp_app/codemirror/mode/r/r.js +9 -2
- data/public/javascripts/erp_app/codemirror/mode/rpm/changes/changes.js +19 -0
- data/public/javascripts/erp_app/codemirror/mode/rpm/changes/index.html +53 -0
- data/public/javascripts/erp_app/codemirror/mode/rpm/spec/index.html +99 -0
- data/public/javascripts/erp_app/codemirror/mode/rpm/spec/spec.css +5 -0
- data/public/javascripts/erp_app/codemirror/mode/rpm/spec/spec.js +66 -0
- data/public/javascripts/erp_app/codemirror/mode/rst/index.html +4 -5
- data/public/javascripts/erp_app/codemirror/mode/rst/rst.js +15 -22
- data/public/javascripts/erp_app/codemirror/mode/ruby/index.html +3 -4
- data/public/javascripts/erp_app/codemirror/mode/ruby/ruby.js +49 -36
- data/public/javascripts/erp_app/codemirror/mode/rust/index.html +48 -0
- data/public/javascripts/erp_app/codemirror/mode/rust/rust.js +432 -0
- data/public/javascripts/erp_app/codemirror/mode/scheme/index.html +3 -4
- data/public/javascripts/erp_app/codemirror/mode/scheme/scheme.js +71 -23
- data/public/javascripts/erp_app/codemirror/mode/shell/index.html +50 -0
- data/public/javascripts/erp_app/codemirror/mode/shell/shell.js +118 -0
- data/public/javascripts/erp_app/codemirror/mode/smalltalk/index.html +3 -4
- data/public/javascripts/erp_app/codemirror/mode/smalltalk/smalltalk.js +137 -120
- data/public/javascripts/erp_app/codemirror/mode/smarty/index.html +82 -0
- data/public/javascripts/erp_app/codemirror/mode/smarty/smarty.js +148 -0
- data/public/javascripts/erp_app/codemirror/mode/sparql/index.html +3 -4
- data/public/javascripts/erp_app/codemirror/mode/stex/index.html +4 -5
- data/public/javascripts/erp_app/codemirror/mode/stex/stex.js +22 -7
- data/public/javascripts/erp_app/codemirror/mode/stex/test.html +263 -0
- data/public/javascripts/erp_app/codemirror/mode/tiddlywiki/index.html +140 -0
- data/public/javascripts/erp_app/codemirror/mode/tiddlywiki/tiddlywiki.css +14 -0
- data/public/javascripts/erp_app/codemirror/mode/tiddlywiki/tiddlywiki.js +384 -0
- data/public/javascripts/erp_app/codemirror/mode/tiki/index.html +82 -0
- data/public/javascripts/erp_app/codemirror/mode/tiki/tiki.css +26 -0
- data/public/javascripts/erp_app/codemirror/mode/tiki/tiki.js +316 -0
- data/public/javascripts/erp_app/codemirror/mode/vb/LICENSE.txt +21 -0
- data/public/javascripts/erp_app/codemirror/mode/vb/index.html +88 -0
- data/public/javascripts/erp_app/codemirror/mode/vb/vb.js +260 -0
- data/public/javascripts/erp_app/codemirror/mode/vbscript/index.html +42 -0
- data/public/javascripts/erp_app/codemirror/mode/vbscript/vbscript.js +26 -0
- data/public/javascripts/erp_app/codemirror/mode/velocity/index.html +3 -3
- data/public/javascripts/erp_app/codemirror/mode/verilog/index.html +210 -0
- data/public/javascripts/erp_app/codemirror/mode/verilog/verilog.js +194 -0
- data/public/javascripts/erp_app/codemirror/mode/xml/index.html +7 -5
- data/public/javascripts/erp_app/codemirror/mode/xml/xml.js +127 -32
- data/public/javascripts/erp_app/codemirror/mode/xquery/LICENSE +20 -0
- data/public/javascripts/erp_app/codemirror/mode/xquery/index.html +222 -0
- data/public/javascripts/erp_app/codemirror/mode/xquery/test/index.html +27 -0
- data/public/javascripts/erp_app/codemirror/mode/xquery/test/testBase.js +42 -0
- data/public/javascripts/erp_app/codemirror/mode/xquery/test/testEmptySequenceKeyword.js +16 -0
- data/public/javascripts/erp_app/codemirror/mode/xquery/test/testMultiAttr.js +16 -0
- data/public/javascripts/erp_app/codemirror/mode/xquery/test/testNamespaces.js +91 -0
- data/public/javascripts/erp_app/codemirror/mode/xquery/test/testProcessingInstructions.js +16 -0
- data/public/javascripts/erp_app/codemirror/mode/xquery/test/testQuotes.js +19 -0
- data/public/javascripts/erp_app/codemirror/mode/xquery/xquery.js +448 -0
- data/public/javascripts/erp_app/codemirror/mode/yaml/index.html +3 -4
- data/public/javascripts/erp_app/codemirror/package.json +29 -0
- data/public/javascripts/erp_app/codemirror/test/driver.js +42 -0
- data/public/javascripts/erp_app/codemirror/test/index.html +55 -0
- data/public/javascripts/erp_app/codemirror/test/mode_test.css +22 -0
- data/public/javascripts/erp_app/codemirror/test/mode_test.js +164 -0
- data/public/javascripts/erp_app/codemirror/test/test.js +467 -0
- data/public/javascripts/erp_app/codemirror/theme/ambiance.css +81 -0
- data/public/javascripts/erp_app/codemirror/theme/blackboard.css +25 -0
- data/public/javascripts/erp_app/codemirror/theme/cobalt.css +18 -0
- data/public/javascripts/erp_app/codemirror/theme/eclipse.css +25 -0
- data/public/javascripts/erp_app/codemirror/theme/elegant.css +3 -2
- data/public/javascripts/erp_app/codemirror/theme/erlang-dark.css +21 -0
- data/public/javascripts/erp_app/codemirror/theme/lesser-dark.css +44 -0
- data/public/javascripts/erp_app/codemirror/theme/monokai.css +28 -0
- data/public/javascripts/erp_app/codemirror/theme/neat.css +4 -3
- data/public/javascripts/erp_app/codemirror/theme/night.css +2 -1
- data/public/javascripts/erp_app/codemirror/theme/rubyblue.css +21 -0
- data/public/javascripts/erp_app/codemirror/theme/vibrant-ink.css +27 -0
- data/public/javascripts/erp_app/codemirror/theme/xq-dark.css +46 -0
- data/public/javascripts/erp_app/codemirror_highlight.js +17 -0
- data/public/javascripts/erp_app/desktop/applications/audit_log_viewer/module.js +1 -57
- data/public/javascripts/erp_app/desktop/applications/control_panel/application_management_panel.js +1 -2
- data/public/javascripts/erp_app/desktop/applications/control_panel/module.js +1 -1
- data/public/javascripts/erp_app/desktop/applications/file_manager/module.js +12 -1
- data/public/javascripts/erp_app/desktop/ext_ux_desktop_module.js +9 -1
- data/public/javascripts/erp_app/jquery_support.js +6 -1
- data/public/javascripts/erp_app/login/window.js +1 -1
- data/public/javascripts/erp_app/organizer/default_menu_tree_panel.js +3 -1
- data/public/javascripts/erp_app/organizer/layout.js +92 -79
- data/public/javascripts/erp_app/organizer/preference_window.js +1 -1
- data/public/javascripts/erp_app/{desktop/applications/audit_log_viewer → shared/audit_log}/audit_log_grid_panel.js +1 -0
- data/public/javascripts/erp_app/{desktop/applications/audit_log_viewer → shared/audit_log}/audit_log_item_grid_panel.js +0 -0
- data/public/javascripts/erp_app/shared/audit_log/audit_log_tab_panel.js +52 -0
- data/public/javascripts/erp_app/shared/compass_ckeditor.js +51 -1
- data/public/javascripts/erp_app/shared/compass_codemirror.js +2 -8
- data/public/javascripts/erp_app/shared/configuration/configuration_panel.js +24 -22
- data/public/javascripts/erp_app/shared/dynamic_editable_grid.js +1 -0
- data/public/javascripts/erp_app/shared/dynamic_editable_grid_loader_panel.js +5 -1
- data/public/javascripts/erp_app/shared/file_manager_tree.js +358 -270
- data/public/javascripts/erp_app/shared/file_upload/Ext.ux.panel.UploadPanel.js +580 -0
- data/public/javascripts/erp_app/shared/file_upload/plupload.flash.swf +0 -0
- data/public/javascripts/erp_app/shared/file_upload/plupload.full.js +2 -0
- data/public/javascripts/erp_app/shared/file_upload/plupload.silverlight.xap +0 -0
- data/public/javascripts/erp_app/shared/file_upload/upload_window.js +19 -212
- data/public/javascripts/erp_app/{desktop/applications/control_panel → shared}/profile_management_panel.js +14 -23
- data/public/javascripts/erp_app/utility.js +340 -272
- data/public/javascripts/erp_app/widgets.js +2 -2
- data/public/javascripts/extjs/MultiCellSelectionModel.js +490 -0
- data/public/javascripts/jquery_plugins/jquery.address.min.js +21 -24
- data/public/stylesheets/erp_app/desktop/base.css +3 -1
- data/public/stylesheets/erp_app/shared/compass-ext-all.css +29 -0
- data/public/stylesheets/erp_app/shared/hover_finger.css +4 -0
- metadata +267 -71
- data/app/controllers/erp_app/desktop/control_panel/profile_management_controller.rb +0 -23
- data/app/models/extensions/party.rb +0 -39
- data/public/images/icons/add/Thumbs.db +0 -0
- data/public/images/icons/calendar/Thumbs.db +0 -0
- data/public/images/icons/copy/Thumbs.db +0 -0
- data/public/images/icons/cut/Thumbs.db +0 -0
- data/public/images/icons/delete/Thumbs.db +0 -0
- data/public/images/icons/edit/Thumbs.db +0 -0
- data/public/images/icons/folder/Thumbs.db +0 -0
- data/public/images/icons/gear/Thumbs.db +0 -0
- data/public/images/icons/globe/Thumbs.db +0 -0
- data/public/images/icons/grid/Thumbs.db +0 -0
- data/public/images/icons/help/Thumbs.db +0 -0
- data/public/images/icons/information/Thumbs.db +0 -0
- data/public/images/icons/key/Thumbs.db +0 -0
- data/public/images/icons/log_out/Thumbs.db +0 -0
- data/public/images/icons/mail/Thumbs.db +0 -0
- data/public/images/icons/new/Thumbs.db +0 -0
- data/public/images/icons/next/Thumbs.db +0 -0
- data/public/images/icons/open/Thumbs.db +0 -0
- data/public/images/icons/paste/Thumbs.db +0 -0
- data/public/images/icons/picture/Thumbs.db +0 -0
- data/public/images/icons/presentation/Thumbs.db +0 -0
- data/public/images/icons/preview/Thumbs.db +0 -0
- data/public/images/icons/previous/Thumbs.db +0 -0
- data/public/images/icons/print/Thumbs.db +0 -0
- data/public/images/icons/properties/Thumbs.db +0 -0
- data/public/images/icons/redo/Thumbs.db +0 -0
- data/public/images/icons/refresh/Thumbs.db +0 -0
- data/public/images/icons/remove/Thumbs.db +0 -0
- data/public/images/icons/rename/Thumbs.db +0 -0
- data/public/images/icons/save/Thumbs.db +0 -0
- data/public/images/icons/search/Thumbs.db +0 -0
- data/public/images/icons/send/Thumbs.db +0 -0
- data/public/images/icons/settings/Thumbs.db +0 -0
- data/public/images/icons/synchronize/Thumbs.db +0 -0
- data/public/images/icons/undo/Thumbs.db +0 -0
- data/public/images/icons/upload/Thumbs.db +0 -0
- data/public/images/icons/user/Thumbs.db +0 -0
- data/public/images/icons/zoom_in/Thumbs.db +0 -0
- data/public/images/icons/zoom_out/Thumbs.db +0 -0
- data/public/javascripts/erp_app/ckeditor/plugins/jwplayer/jwplayer/Thumbs.db +0 -0
- data/public/javascripts/erp_app/codemirror/lib/runmode.js +0 -27
- data/public/javascripts/erp_app/codemirror/mode/diff/diff.css +0 -3
- data/public/javascripts/erp_app/codemirror/mode/rst/rst.css +0 -75
- data/public/javascripts/erp_app/codemirror/mode/xmlpure/index.html +0 -60
- data/public/javascripts/erp_app/codemirror/mode/xmlpure/xmlpure.js +0 -481
- data/public/javascripts/erp_app/codemirror/theme/default.css +0 -19
- data/public/javascripts/erp_app/shared/file_upload/Ext.ux.AwesomeUploader.js +0 -511
- data/public/javascripts/erp_app/shared/file_upload/Ext.ux.AwesomeUploaderLocalization.js +0 -45
- data/public/javascripts/erp_app/shared/file_upload/Ext.ux.XHRUpload.js +0 -138
- data/public/javascripts/erp_app/tinymce/Ext.ux.TinyMCE.js +0 -689
- data/public/javascripts/erp_app/tinymce/center_region.js +0 -611
@@ -1,511 +0,0 @@
|
|
1
|
-
|
2
|
-
/*
|
3
|
-
Awesome Uploader
|
4
|
-
AwesomeUploader JavaScript Class
|
5
|
-
|
6
|
-
Copyright (c) 2010, Andrew Rymarczyk
|
7
|
-
All rights reserved.
|
8
|
-
|
9
|
-
Redistribution and use in source and minified, compiled or otherwise obfuscated
|
10
|
-
form, with or without modification, are permitted provided that the following
|
11
|
-
conditions are met:
|
12
|
-
|
13
|
-
* Redistributions of source code must retain the above copyright notice,
|
14
|
-
this list of conditions and the following disclaimer.
|
15
|
-
* Redistributions in minified, compiled or otherwise obfuscated form must
|
16
|
-
reproduce the above copyright notice, this list of conditions and the
|
17
|
-
following disclaimer in the documentation and/or other materials
|
18
|
-
provided with the distribution.
|
19
|
-
|
20
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
21
|
-
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
22
|
-
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
23
|
-
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
24
|
-
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
25
|
-
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
26
|
-
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
27
|
-
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
28
|
-
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
29
|
-
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
-
*/
|
31
|
-
|
32
|
-
Ext.define("Ext.ux.AwesomeUploader",{
|
33
|
-
extend:"Ext.Container",
|
34
|
-
alias:'widget.awesomeuploader',
|
35
|
-
initComponent:function(){
|
36
|
-
|
37
|
-
this.addEvents(
|
38
|
-
'fileselected'
|
39
|
-
//fired when a file is selected
|
40
|
-
,'fileselectionerror'
|
41
|
-
// fireEvent('fileselectionerror', String message)
|
42
|
-
//fired by drag and drop and swfuploader if a file that is too large is selected.
|
43
|
-
//Swfupload also fires this even if a 0-byte file is selected or the file type does not match the "flashSwfUploadFileTypes" mask
|
44
|
-
,'uploadstart'
|
45
|
-
//may be called multiple times for drag and drop uploads!
|
46
|
-
,'uploadprogress'
|
47
|
-
//fired when an upload progress event is received
|
48
|
-
,'uploadcomplete'
|
49
|
-
// fireEvent('fileupload', Obj thisUploader, Bool uploadSuccessful, Obj serverResponse);
|
50
|
-
//server response object will at minimum have a property "error" describing the error.
|
51
|
-
,'uploadremoved'
|
52
|
-
,'uploadaborted'
|
53
|
-
,'uploaderror'
|
54
|
-
);
|
55
|
-
|
56
|
-
this.initialConfig = this.initialConfig || {};
|
57
|
-
|
58
|
-
Ext.apply(this, {
|
59
|
-
awesomeUploaderRoot: this.initialConfig.awesomeUploaderRoot || '',
|
60
|
-
i18n: Ext.ux.AwesomeUploaderLocalization,
|
61
|
-
locale:'english'
|
62
|
-
});
|
63
|
-
|
64
|
-
Ext.apply(this, this.initialConfig, {
|
65
|
-
autoStartUpload:false,
|
66
|
-
alwaysShowFullFilePath:false,
|
67
|
-
allowDragAndDropAnywhere:false,
|
68
|
-
xhrUploadUrl:this.awesomeUploaderRoot+'xhrupload.php',
|
69
|
-
xhrFileNameHeader:'X-File-Name',
|
70
|
-
xhrExtraPostDataPrefix:'X-',
|
71
|
-
xhrFilePostName:'file_data',
|
72
|
-
xhrSendMultiPartFormData:false,
|
73
|
-
maxFileSizeBytes: ErpApp.FileUpload.maxSize,
|
74
|
-
standardButtonText: this.i18n[this.locale].browseButtonText,
|
75
|
-
standardUploadFilePostName:'file_data',
|
76
|
-
standardUploadUrl:this.awesomeUploaderRoot+'upload.php',
|
77
|
-
supressPopups:false,
|
78
|
-
extraPostData:{},
|
79
|
-
fileId:0, //counter for unique file ids
|
80
|
-
fileQueue:{},
|
81
|
-
items:{
|
82
|
-
xtype:'box', //upload button container,
|
83
|
-
listeners:{
|
84
|
-
scope:this,
|
85
|
-
render:function(){
|
86
|
-
this.initDragAndDropUploader();
|
87
|
-
this.initStandardUpload();
|
88
|
-
}
|
89
|
-
}
|
90
|
-
}
|
91
|
-
});
|
92
|
-
|
93
|
-
Ext.ux.AwesomeUploader.superclass.initComponent.apply(this, arguments);
|
94
|
-
},
|
95
|
-
startUpload:function(){
|
96
|
-
var fileId;
|
97
|
-
for(fileId in this.fileQueue){
|
98
|
-
if(this.fileQueue[fileId].status == 'started'){
|
99
|
-
continue;
|
100
|
-
}
|
101
|
-
switch(this.fileQueue[fileId].method){
|
102
|
-
case 'standard':
|
103
|
-
this.standardUploadStart(this.fileQueue[fileId]);
|
104
|
-
break;
|
105
|
-
case 'dnd':
|
106
|
-
this.dragAndDropUploadStart(this.fileQueue[fileId]);
|
107
|
-
break;
|
108
|
-
}
|
109
|
-
}
|
110
|
-
},
|
111
|
-
abortAllUploads:function(){
|
112
|
-
var fileId;
|
113
|
-
for(fileId in this.fileQueue){
|
114
|
-
fileId = parseInt(fileId);
|
115
|
-
this.abortUpload(fileId);
|
116
|
-
}
|
117
|
-
},
|
118
|
-
abortUpload:function(fileId){
|
119
|
-
|
120
|
-
if(this.fileQueue[fileId].status == 'started'){
|
121
|
-
|
122
|
-
switch(this.fileQueue[fileId].method){
|
123
|
-
case 'standard':
|
124
|
-
if(this.fileQueue[fileId].frame.contentWindow.stop){// Firefox
|
125
|
-
this.fileQueue[fileId].frame.contentWindow.stop();
|
126
|
-
}
|
127
|
-
if(Ext.isIE){
|
128
|
-
window[this.fileQueue[fileId].frame.id].document.execCommand('Stop');
|
129
|
-
}
|
130
|
-
break;
|
131
|
-
case 'dnd':
|
132
|
-
this.fileQueue[fileId].upload.xhr.abort();
|
133
|
-
break;
|
134
|
-
}
|
135
|
-
this.fileQueue[fileId].status = 'aborted';
|
136
|
-
this.fireEvent('uploadaborted', this, Ext.apply({}, this.fileQueue[fileId]));
|
137
|
-
}
|
138
|
-
},
|
139
|
-
removeAllUploads:function(){
|
140
|
-
var fileId;
|
141
|
-
for( fileId in this.fileQueue){
|
142
|
-
fileId = parseInt(fileId);
|
143
|
-
this.removeUpload(fileId);
|
144
|
-
}
|
145
|
-
},
|
146
|
-
removeUpload:function(fileId){
|
147
|
-
if(this.fileQueue[fileId].status == 'started'){
|
148
|
-
this.abortUpload(fileId);
|
149
|
-
}
|
150
|
-
|
151
|
-
this.fileQueue[fileId].status = 'removed';
|
152
|
-
var fileInfo = {
|
153
|
-
id: fileId,
|
154
|
-
name: this.fileQueue[fileId].name,
|
155
|
-
size: this.fileQueue[fileId].size
|
156
|
-
};
|
157
|
-
delete this.fileQueue[fileId];
|
158
|
-
this.fireEvent('uploadremoved', this, fileInfo);
|
159
|
-
},
|
160
|
-
initDragAndDropUploader:function(){
|
161
|
-
|
162
|
-
this.el.on({
|
163
|
-
dragenter:function(event){
|
164
|
-
event.browserEvent.dataTransfer.dropEffect = 'move';
|
165
|
-
return true;
|
166
|
-
},
|
167
|
-
dragover:function(event){
|
168
|
-
event.browserEvent.dataTransfer.dropEffect = 'move';
|
169
|
-
event.stopEvent();
|
170
|
-
return true;
|
171
|
-
},
|
172
|
-
drop:{
|
173
|
-
scope:this,
|
174
|
-
fn:function(event){
|
175
|
-
event.stopEvent();
|
176
|
-
var files = event.browserEvent.dataTransfer.files;
|
177
|
-
|
178
|
-
if(files === undefined){
|
179
|
-
return true;
|
180
|
-
}
|
181
|
-
var len = files.length;
|
182
|
-
while(--len >= 0){
|
183
|
-
this.processDragAndDropFileUpload(files[len]);
|
184
|
-
}
|
185
|
-
}
|
186
|
-
}
|
187
|
-
});
|
188
|
-
|
189
|
-
var body = Ext.fly(document.body);
|
190
|
-
body.clearListeners();
|
191
|
-
if(this.allowDragAndDropAnywhere){
|
192
|
-
body.on({
|
193
|
-
dragenter:function(event){
|
194
|
-
event.browserEvent.dataTransfer.dropEffect = 'move';
|
195
|
-
return true;
|
196
|
-
},
|
197
|
-
dragover:function(event){
|
198
|
-
event.browserEvent.dataTransfer.dropEffect = 'move';
|
199
|
-
event.stopEvent();
|
200
|
-
return true;
|
201
|
-
},
|
202
|
-
drop:{
|
203
|
-
scope:this,
|
204
|
-
fn:function(event){
|
205
|
-
event.stopEvent();
|
206
|
-
var files = event.browserEvent.dataTransfer.files;
|
207
|
-
|
208
|
-
if(files === undefined){
|
209
|
-
return true;
|
210
|
-
}
|
211
|
-
var len = files.length;
|
212
|
-
while(--len >= 0){
|
213
|
-
this.processDragAndDropFileUpload(files[len]);
|
214
|
-
}
|
215
|
-
}
|
216
|
-
}
|
217
|
-
});
|
218
|
-
|
219
|
-
}else{
|
220
|
-
// Attach drag and drop listeners that do nothing to the document body
|
221
|
-
// this prevents incorrect drops, reloading the page with the dropped item
|
222
|
-
// This may or may not be helpful
|
223
|
-
if(!document.body.BodyDragSinker){
|
224
|
-
document.body.BodyDragSinker = true;
|
225
|
-
|
226
|
-
body.on({
|
227
|
-
dragenter:function(event){
|
228
|
-
return true;
|
229
|
-
},
|
230
|
-
dragleave:function(event){
|
231
|
-
return true;
|
232
|
-
},
|
233
|
-
dragover:function(event){
|
234
|
-
event.stopEvent();
|
235
|
-
return true;
|
236
|
-
},
|
237
|
-
drop:function(event){
|
238
|
-
event.stopEvent();
|
239
|
-
return true;
|
240
|
-
}
|
241
|
-
});
|
242
|
-
}
|
243
|
-
}
|
244
|
-
|
245
|
-
},
|
246
|
-
initStandardUpload:function(param){
|
247
|
-
if(this.uploader){
|
248
|
-
this.uploader.fileInputEl = null; //remove reference to file field. necessary to prevent destroying file field during an active upload.
|
249
|
-
Ext.destroy(this.uploader);
|
250
|
-
}
|
251
|
-
|
252
|
-
this.uploader = Ext.create("Ext.form.field.File",{
|
253
|
-
renderTo:this.items.items[0].el.dom,
|
254
|
-
autoDestroy:true,
|
255
|
-
buttonText:this.standardButtonText,
|
256
|
-
buttonOnly:true,
|
257
|
-
name:this.standardUploadFilePostName,
|
258
|
-
listeners:{
|
259
|
-
scope:this,
|
260
|
-
change:this.standardUploadFileSelected
|
261
|
-
}
|
262
|
-
});
|
263
|
-
},
|
264
|
-
standardUploadFileSelected:function(fileBrowser, fileName){
|
265
|
-
if(!this.alwaysShowFullFilePath){
|
266
|
-
var lastSlash = fileName.lastIndexOf('/'); //check for *nix full file path
|
267
|
-
if( lastSlash < 0 ){
|
268
|
-
lastSlash = fileName.lastIndexOf('\\'); //check for win full file path
|
269
|
-
}
|
270
|
-
if( lastSlash > 0){
|
271
|
-
fileName = fileName.substr(lastSlash+1);
|
272
|
-
}
|
273
|
-
}
|
274
|
-
|
275
|
-
var fileInfo = {
|
276
|
-
id: ++this.fileId,
|
277
|
-
name:fileName,
|
278
|
-
status:'queued',
|
279
|
-
method:'standard',
|
280
|
-
size:'0'
|
281
|
-
};
|
282
|
-
|
283
|
-
if(Ext.isDefined(fileBrowser.fileInputEl.dom.files) ){
|
284
|
-
fileInfo.size = fileBrowser.fileInputEl.dom.files[0].size;
|
285
|
-
}
|
286
|
-
|
287
|
-
if( fileInfo.size > this.maxFileSizeBytes){
|
288
|
-
this.uploaderAlert('<BR>'+ fileInfo.name + this.i18n[this.locale].fileSizeError);
|
289
|
-
this.fireEvent('fileselectionerror', this, Ext.apply({}, fileInfo), this.i18n[this.locale].fileSizeEventText);
|
290
|
-
return true;
|
291
|
-
}
|
292
|
-
//save reference to filebrowser
|
293
|
-
fileInfo.fileBrowser = fileBrowser;
|
294
|
-
var formEl = document.createElement('form'),extraPost;
|
295
|
-
|
296
|
-
formEl = this.items.items[0].el.appendChild(formEl);
|
297
|
-
fileInfo.fileBrowser.fileInputEl.addCls('au-hidden');
|
298
|
-
formEl.appendChild(fileBrowser.fileInputEl); //add reference from current file browser file input to this newly created form el
|
299
|
-
formEl.addCls('au-hidden');
|
300
|
-
fileInfo.form = formEl;
|
301
|
-
|
302
|
-
this.initStandardUpload(); //re-init uploader for multiple simultaneous uploads
|
303
|
-
|
304
|
-
if(false !== this.fireEvent('fileselected', this, Ext.apply({},fileInfo) ) ){
|
305
|
-
|
306
|
-
if(this.autoStartUpload){
|
307
|
-
this.standardUploadStart(fileInfo);
|
308
|
-
}
|
309
|
-
this.fileQueue[fileInfo.id] = fileInfo;
|
310
|
-
}
|
311
|
-
|
312
|
-
return true;
|
313
|
-
},
|
314
|
-
uploaderAlert:function(text){
|
315
|
-
if(this.supressPopups){
|
316
|
-
return true;
|
317
|
-
}
|
318
|
-
if(this.uploaderAlertMsg === undefined || !this.uploaderAlertMsg.isVisible()){
|
319
|
-
this.uploaderAlertMsgText = this.i18n[this.locale].uploaderAlertErrorPrefix +'<BR>'+ text;
|
320
|
-
this.uploaderAlertMsg = Ext.MessageBox.show({
|
321
|
-
title: this.i18n[this.locale].uploaderAlertErrorPrefix,
|
322
|
-
msg: this.uploaderAlertMsgText,
|
323
|
-
buttons: Ext.Msg.OK,
|
324
|
-
modal: false,
|
325
|
-
icon: Ext.MessageBox.ERROR
|
326
|
-
});
|
327
|
-
}else{
|
328
|
-
this.uploaderAlertMsgText += text;
|
329
|
-
this.uploaderAlertMsg.updateText(this.uploaderAlertMsgText);
|
330
|
-
this.uploaderAlertMsg.getDialog().focus();
|
331
|
-
}
|
332
|
-
|
333
|
-
},
|
334
|
-
dragAndDropUploadStart:function(fileInfo){
|
335
|
-
var upload = new Ext.ux.XHRUpload({
|
336
|
-
url:this.xhrUploadUrl,
|
337
|
-
filePostName:this.xhrFilePostName,
|
338
|
-
fileNameHeader:this.xhrFileNameHeader,
|
339
|
-
extraPostData:this.extraPostData,
|
340
|
-
sendMultiPartFormData:this.xhrSendMultiPartFormData,
|
341
|
-
file:fileInfo.file,
|
342
|
-
listeners:{
|
343
|
-
scope:this,
|
344
|
-
uploadloadstart:function(event){
|
345
|
-
this.fireEvent('uploadstart', this, Ext.apply({}, fileInfo) );
|
346
|
-
},
|
347
|
-
uploadprogress:function(event){
|
348
|
-
this.fireEvent('uploadprogress', this, fileInfo.id, event.loaded, event.total);
|
349
|
-
},
|
350
|
-
// XHR Browser Events
|
351
|
-
loadstart:function(event){
|
352
|
-
fileInfo.status = 'started';
|
353
|
-
this.fireEvent('start', this, Ext.apply({}, fileInfo) );
|
354
|
-
},
|
355
|
-
progress:function(event){
|
356
|
-
this.fireEvent('progress', this, Ext.apply({}, fileInfo), event.loaded, event.total);
|
357
|
-
},
|
358
|
-
abort:function(event){
|
359
|
-
fileInfo.status = 'aborted';
|
360
|
-
this.fireEvent('abort', this, Ext.apply({}, fileInfo), 'XHR upload aborted');
|
361
|
-
},
|
362
|
-
error:function(event){
|
363
|
-
fileInfo.status = 'error';
|
364
|
-
this.fireEvent('error', this, Ext.apply({}, fileInfo), 'XHR upload error');
|
365
|
-
},
|
366
|
-
load:function(event){
|
367
|
-
this.processUploadResult(fileInfo, upload.xhr.responseText);
|
368
|
-
}
|
369
|
-
}
|
370
|
-
});
|
371
|
-
fileInfo.upload = upload;
|
372
|
-
upload.send();
|
373
|
-
},
|
374
|
-
processDragAndDropFileUpload:function(file){
|
375
|
-
var fileInfo = {
|
376
|
-
id: ++this.fileId,
|
377
|
-
name: file.name,
|
378
|
-
size: file.size,
|
379
|
-
status:'queued',
|
380
|
-
method: 'dnd',
|
381
|
-
file: file
|
382
|
-
};
|
383
|
-
|
384
|
-
if(fileInfo.size > this.maxFileSizeBytes){
|
385
|
-
this.uploaderAlert('<BR>'+ file.name + this.i18n[this.locale].fileSizeError);
|
386
|
-
this.fireEvent('fileselectionerror', this, Ext.apply({}, fileInfo), this.i18n[this.locale].fileSizeEventText);
|
387
|
-
return true;
|
388
|
-
}
|
389
|
-
if(false !== this.fireEvent('fileselected', this, Ext.apply({},fileInfo) ) ){
|
390
|
-
this.fileQueue[fileInfo.id] = fileInfo;
|
391
|
-
if(this.autoStartUpload){
|
392
|
-
this.dragAndDropUploadStart(fileInfo);
|
393
|
-
}
|
394
|
-
}
|
395
|
-
},
|
396
|
-
doFormUpload : function(fileInfo){ //o, extraPostData, url){ //based off of Ext.Ajax.doFormUpload
|
397
|
-
var id = Ext.id(),
|
398
|
-
doc = document,
|
399
|
-
frame = doc.createElement('iframe'),
|
400
|
-
form = Ext.getDom(fileInfo.form),
|
401
|
-
hiddens = [],
|
402
|
-
hd,
|
403
|
-
encoding = 'multipart/form-data',
|
404
|
-
buf = {
|
405
|
-
target: form.target,
|
406
|
-
method: form.method,
|
407
|
-
encoding: form.encoding,
|
408
|
-
enctype: form.enctype,
|
409
|
-
action: form.action
|
410
|
-
};
|
411
|
-
|
412
|
-
Ext.fly(frame).set({
|
413
|
-
id: id,
|
414
|
-
name: id,
|
415
|
-
cls: 'x-hidden',
|
416
|
-
src: Ext.SSL_SECURE_URL
|
417
|
-
});
|
418
|
-
|
419
|
-
doc.body.appendChild(frame);
|
420
|
-
|
421
|
-
// This is required so that IE doesn't pop the response up in a new window.
|
422
|
-
if(Ext.isIE){
|
423
|
-
document.frames[id].name = id;
|
424
|
-
}
|
425
|
-
Ext.fly(form).set({
|
426
|
-
target: id,
|
427
|
-
method: 'post',
|
428
|
-
enctype: encoding,
|
429
|
-
encoding: encoding,
|
430
|
-
action: this.standardUploadUrl || buf.action
|
431
|
-
});
|
432
|
-
|
433
|
-
Ext.iterate(this.extraPostData, function(k, v){
|
434
|
-
hd = doc.createElement('input');
|
435
|
-
Ext.fly(hd).set({
|
436
|
-
type: 'hidden',
|
437
|
-
value: v,
|
438
|
-
name: k
|
439
|
-
});
|
440
|
-
form.appendChild(hd);
|
441
|
-
hiddens.push(hd);
|
442
|
-
});
|
443
|
-
|
444
|
-
function cb(){
|
445
|
-
var responseText = '',
|
446
|
-
doc;
|
447
|
-
|
448
|
-
try{
|
449
|
-
doc = frame.contentWindow.document || frame.contentDocument || window.frames[id].document;
|
450
|
-
if(doc){
|
451
|
-
if(doc.body){
|
452
|
-
responseText = doc.body.innerHTML;
|
453
|
-
}
|
454
|
-
}
|
455
|
-
}
|
456
|
-
catch(e) {}
|
457
|
-
|
458
|
-
Ext.EventManager.removeListener(frame, 'load', cb, this);
|
459
|
-
Ext.EventManager.removeListener(frame, 'abort', uploadAborted, this);
|
460
|
-
|
461
|
-
this.processUploadResult(fileInfo, responseText);
|
462
|
-
|
463
|
-
setTimeout(function(){
|
464
|
-
Ext.removeNode(frame);
|
465
|
-
}, 100);
|
466
|
-
}
|
467
|
-
|
468
|
-
Ext.EventManager.on(frame, 'load', cb, this);
|
469
|
-
var uploadAborted = function(){
|
470
|
-
this.standardUploadFailAbort(fileInfo);
|
471
|
-
}
|
472
|
-
Ext.EventManager.on(frame, 'abort', uploadAborted, this);
|
473
|
-
|
474
|
-
fileInfo.frame = frame;
|
475
|
-
|
476
|
-
form.submit();
|
477
|
-
|
478
|
-
Ext.fly(form).set(buf);
|
479
|
-
Ext.each(hiddens, function(h){
|
480
|
-
Ext.removeNode(h);
|
481
|
-
});
|
482
|
-
},
|
483
|
-
standardUploadStart:function(fileInfo){
|
484
|
-
this.doFormUpload(fileInfo);
|
485
|
-
fileInfo.status = 'started';
|
486
|
-
this.fireEvent('uploadstart', this, Ext.apply({}, fileInfo));
|
487
|
-
},
|
488
|
-
standardUploadFail:function(form, action){
|
489
|
-
this.uploaderAlert('<BR>'+form.fileInfo.name+'<BR><b>'+action.result+'</b><BR>');
|
490
|
-
form.fileInfo.status = 'error';
|
491
|
-
this.fireEvent('uploaderror', this, Ext.apply({}, form.fileInfo), action.result, action.response.responseText);
|
492
|
-
},
|
493
|
-
standardUploadFailAbort:function(fileInfo){
|
494
|
-
this.uploaderAlert('<BR>'+ fileInfo.name + this.i18n[this.locale].uploadAbortedMessage);
|
495
|
-
form.fileInfo.status = 'error';
|
496
|
-
this.fireEvent('uploaderror', this, Ext.apply({}, fileInfo), 'aborted');
|
497
|
-
},
|
498
|
-
processUploadResult:function(fileInfo, serverData){
|
499
|
-
|
500
|
-
var uploadCompleteData = {};
|
501
|
-
if(false !== this.fireEvent('uploadcomplete', this, Ext.apply({},fileInfo), serverData, uploadCompleteData ) ){
|
502
|
-
fileInfo.status = 'completed';
|
503
|
-
}else{
|
504
|
-
var obj = Ext.decode(serverData);
|
505
|
-
this.uploaderAlert('<BR>'+obj.error+'<BR>');
|
506
|
-
fileInfo.status = 'error';
|
507
|
-
this.fireEvent('uploaderror', this, Ext.apply({}, fileInfo), serverData, uploadCompleteData);
|
508
|
-
}
|
509
|
-
|
510
|
-
}
|
511
|
-
});
|
@@ -1,45 +0,0 @@
|
|
1
|
-
|
2
|
-
/*
|
3
|
-
Awesome Uploader
|
4
|
-
AwesomeUploader JavaScript Class
|
5
|
-
|
6
|
-
Copyright (c) 2010, Andrew Rymarczyk
|
7
|
-
All rights reserved.
|
8
|
-
|
9
|
-
Redistribution and use in source and minified, compiled or otherwise obfuscated
|
10
|
-
form, with or without modification, are permitted provided that the following
|
11
|
-
conditions are met:
|
12
|
-
|
13
|
-
* Redistributions of source code must retain the above copyright notice,
|
14
|
-
this list of conditions and the following disclaimer.
|
15
|
-
* Redistributions in minified, compiled or otherwise obfuscated form must
|
16
|
-
reproduce the above copyright notice, this list of conditions and the
|
17
|
-
following disclaimer in the documentation and/or other materials
|
18
|
-
provided with the distribution.
|
19
|
-
|
20
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
21
|
-
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
22
|
-
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
23
|
-
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
24
|
-
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
25
|
-
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
26
|
-
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
27
|
-
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
28
|
-
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
29
|
-
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
-
*/
|
31
|
-
|
32
|
-
Ext.ns('Ext.ux');
|
33
|
-
|
34
|
-
Ext.ux.AwesomeUploaderLocalization = {
|
35
|
-
english:{
|
36
|
-
browseButtonText: 'Browse...' //Note this is only for the "standard" upload button. The flash multi-select uploader uses an image sprite
|
37
|
-
,browseWindowFileDescription: 'All Files'
|
38
|
-
,uploaderAlertErrorTitle: 'Error uploading:'
|
39
|
-
,uploaderAlertErrorPrefix: 'Upload Error'
|
40
|
-
,fileSizeError: '<BR><b>File size exceeds allowed limit.</b><BR>'
|
41
|
-
,fileSizeEventText: 'File size exceeds allowed limit.'
|
42
|
-
,uploadAbortedMessage: '<BR><b>Upload Aborted</b><BR>'
|
43
|
-
,uploadErrorMessage: 'Error uploading file:'
|
44
|
-
}
|
45
|
-
};
|
@@ -1,138 +0,0 @@
|
|
1
|
-
|
2
|
-
/*
|
3
|
-
Awesome Uploader
|
4
|
-
Ext.ux.XHRUpload JavaScript Class
|
5
|
-
|
6
|
-
Copyright (c) 2010, Andrew Rymarczyk
|
7
|
-
All rights reserved.
|
8
|
-
|
9
|
-
Redistribution and use in source and minified, compiled or otherwise obfuscated
|
10
|
-
form, with or without modification, are permitted provided that the following
|
11
|
-
conditions are met:
|
12
|
-
|
13
|
-
* Redistributions of source code must retain the above copyright notice,
|
14
|
-
this list of conditions and the following disclaimer.
|
15
|
-
* Redistributions in minified, compiled or otherwise obfuscated form must
|
16
|
-
reproduce the above copyright notice, this list of conditions and the
|
17
|
-
following disclaimer in the documentation and/or other materials
|
18
|
-
provided with the distribution.
|
19
|
-
|
20
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
21
|
-
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
22
|
-
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
23
|
-
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
24
|
-
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
25
|
-
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
26
|
-
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
27
|
-
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
28
|
-
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
29
|
-
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
-
*/
|
31
|
-
|
32
|
-
// API Specs:
|
33
|
-
// http://www.w3.org/TR/XMLHttpRequest/
|
34
|
-
// http://www.w3.org/TR/XMLHttpRequest2/
|
35
|
-
// http://www.w3.org/TR/progress-events/
|
36
|
-
|
37
|
-
// Browser Implementation Details:
|
38
|
-
// FROM: https://developer.mozilla.org/en/DOM/File
|
39
|
-
// https://developer.mozilla.org/en/Using_files_from_web_applications
|
40
|
-
// https://developer.mozilla.org/En/DragDrop/DataTransfer
|
41
|
-
// https://developer.mozilla.org/en/DOM/FileList
|
42
|
-
// "NOTE: The File object as implemented by Gecko offers several non-standard methods for reading the contents of the file. These should not be used, as they will prevent your web application from being used in other browsers, as well as in future versions of Gecko, which will likely remove these methods."
|
43
|
-
// NOTE: fileObj.getAsBinary() is deprecated according to the mozilla docs!
|
44
|
-
|
45
|
-
// Can optionally follow RFC2388
|
46
|
-
// RFC2388 - Returning Values from Forms: multipart/form-data
|
47
|
-
// http://www.faqs.org/rfcs/rfc2388.html
|
48
|
-
// This allows additional POST params to be sent with file upload, and also simplifies the backend upload handler becuase a single script can be used for drag and drop, flash, and standard uploads
|
49
|
-
// NOTE: This is currently only supported by Firefox 1.6, Chrome 6 should be released soon and will also be supported.
|
50
|
-
|
51
|
-
Ext.define("Ext.ux.XHRUpload",{
|
52
|
-
extend:'Ext.util.Observable',
|
53
|
-
constructor:function(config){
|
54
|
-
window.awsomeUploaderXhr = this;
|
55
|
-
Ext.apply(this, config, {
|
56
|
-
method: 'POST',
|
57
|
-
fileNameHeader: 'X-File-Name',
|
58
|
-
filePostName:'fileName',
|
59
|
-
contentTypeHeader: 'text/plain; charset=x-user-defined-binary',
|
60
|
-
extraPostData:{},
|
61
|
-
xhrExtraPostDataPrefix:'X-',
|
62
|
-
sendMultiPartFormData:false
|
63
|
-
});
|
64
|
-
this.addEvents({ //extend the xhr's progress events to here
|
65
|
-
'loadstart':true,
|
66
|
-
'progress':true,
|
67
|
-
'abort':true,
|
68
|
-
'error':true,
|
69
|
-
'load':true,
|
70
|
-
'loadend':true
|
71
|
-
});
|
72
|
-
this.listeners = config.listeners;
|
73
|
-
Ext.ux.XHRUpload.superclass.constructor.call(this, config);
|
74
|
-
},
|
75
|
-
send:function(config){
|
76
|
-
Ext.apply(this, config);
|
77
|
-
|
78
|
-
this.xhr = new XMLHttpRequest();
|
79
|
-
this.xhr.addEventListener('loadstart', this.relayXHREvent, false);
|
80
|
-
this.xhr.addEventListener('progress', this.relayXHREvent, false);
|
81
|
-
this.xhr.addEventListener('progressabort', this.relayXHREvent, false);
|
82
|
-
this.xhr.addEventListener('error', this.relayXHREvent, false);
|
83
|
-
this.xhr.addEventListener('load', this.relayXHREvent, false);
|
84
|
-
this.xhr.addEventListener('loadend', this.relayXHREvent, false);
|
85
|
-
|
86
|
-
this.xhr.upload.addEventListener('loadstart', this.relayUploadEvent, false);
|
87
|
-
this.xhr.upload.addEventListener('progress', this.relayUploadEvent, false);
|
88
|
-
this.xhr.upload.addEventListener('progressabort', this.relayUploadEvent, false);
|
89
|
-
this.xhr.upload.addEventListener('error', this.relayUploadEvent, false);
|
90
|
-
this.xhr.upload.addEventListener('load', this.relayUploadEvent, false);
|
91
|
-
this.xhr.upload.addEventListener('loadend', this.relayUploadEvent, false);
|
92
|
-
|
93
|
-
this.xhr.open(this.method, this.url, true);
|
94
|
-
|
95
|
-
if(typeof(FileReader) !== 'undefined' && this.sendMultiPartFormData ){
|
96
|
-
//currently this is firefox only, chrome 6 will support this in the future
|
97
|
-
this.reader = new FileReader();
|
98
|
-
this.reader.addEventListener('load', this.sendFileUpload, false);
|
99
|
-
this.reader.readAsBinaryString(this.file);
|
100
|
-
return true;
|
101
|
-
}
|
102
|
-
//This will work in both Firefox 1.6 and Chrome 5
|
103
|
-
this.xhr.overrideMimeType(this.contentTypeHeader);
|
104
|
-
this.xhr.setRequestHeader(this.fileNameHeader, this.file.name);
|
105
|
-
for(attr in this.extraPostData){
|
106
|
-
this.xhr.setRequestHeader(this.xhrExtraPostDataPrefix + attr, this.extraPostData[attr]);
|
107
|
-
}
|
108
|
-
//xhr.setRequestHeader('X-File-Size', files.size); //this may be useful
|
109
|
-
this.xhr.send(this.file);
|
110
|
-
return true;
|
111
|
-
|
112
|
-
},
|
113
|
-
sendFileUpload:function(){
|
114
|
-
|
115
|
-
var boundary = (1000000000000+Math.floor(Math.random()*8999999999998)).toString(),
|
116
|
-
data = '';
|
117
|
-
|
118
|
-
for(attr in this.extraPostData){
|
119
|
-
data += '--'+boundary + '\r\nContent-Disposition: form-data; name="' + attr + '"\r\ncontent-type: text/plain;\r\n\r\n'+this.extraPostData[attr]+'\r\n';
|
120
|
-
}
|
121
|
-
|
122
|
-
//window.btoa(binaryData)
|
123
|
-
//Creates a base-64 encoded ASCII string from a string of binary data.
|
124
|
-
//https://developer.mozilla.org/en/DOM/window.btoa
|
125
|
-
//Firefox and Chrome only!!
|
126
|
-
|
127
|
-
data += '--'+boundary + '\r\nContent-Disposition: form-data; name="' + this.filePostName + '"; filename="' + this.file.name + '"\r\nContent-Type: '+this.file.type+'\r\nContent-Transfer-Encoding: base64\r\n\r\n' + window.btoa(this.reader.result) + '\r\n'+'--'+boundary+'--\r\n\r\n';
|
128
|
-
|
129
|
-
this.xhr.setRequestHeader('Content-Type', 'multipart/form-data; boundary='+boundary);
|
130
|
-
this.xhr.send(data);
|
131
|
-
},
|
132
|
-
relayUploadEvent:function(event){
|
133
|
-
window.awsomeUploaderXhr.fireEvent('upload'+event.type, event);
|
134
|
-
},
|
135
|
-
relayXHREvent:function(event){
|
136
|
-
window.awsomeUploaderXhr.fireEvent(event.type, event);
|
137
|
-
}
|
138
|
-
});
|