From ef8b3fd973fa34b303370d5acc21744e57bca507 Mon Sep 17 00:00:00 2001 From: M.Gergo Date: Mon, 17 May 2021 17:50:05 +0200 Subject: Rev: 4787 --- mayor-orig/mayor-base/bin/install-composer.sh | 17 + mayor-orig/mayor-base/bin/update.sh | 24 +- .../mayor-base/install/base/mysql/mayor-auth.sql | 2 +- mayor-orig/mayor-base/log/mayor-base.rev | 2 +- mayor-orig/mayor-base/update/pre004746-1-auth.sql | 1 + mayor-orig/mayor-base/update/pre004749-1.sh | 18 + mayor-orig/mayor-base/www/composer.json | 17 + mayor-orig/mayor-base/www/composer.lock | 287 ++ .../backend/ldap/password/changePassword.php | 4 +- .../include/backend/ldap/session/createAccount.php | 2 - mayor-orig/mayor-base/www/include/base/base.php | 2 + mayor-orig/mayor-base/www/include/base/config.php | 1 + mayor-orig/mayor-base/www/include/base/error.php | 40 +- mayor-orig/mayor-base/www/include/base/log.php | 5 +- mayor-orig/mayor-base/www/include/base/mysql.php | 10 +- mayor-orig/mayor-base/www/include/base/rights.php | 3 +- mayor-orig/mayor-base/www/include/base/var.php | 3 + .../mayor-base/www/include/share/auth/base.php | 3 +- .../mayor-base/www/include/share/net/googleapi.php | 74 +- .../mayor-base/www/include/share/session/base.php | 4 +- mayor-orig/mayor-base/www/index.php | 7 +- mayor-orig/mayor-base/www/lang/hu_HU/base/base.php | 2 +- .../www/policy/private/session/googleapi-pre.php | 2 +- .../mayor-base/www/policy/public/auth/login.php | 2 +- .../mayor-base/www/skin/classic/base/css/base.css | 6 +- .../www/skin/classic/base/html/base.phtml | 7 +- .../www/skin/classic/module-auth/html/login.phtml | 2 +- .../classic/share/javascript/ckeditor/CHANGES.md | 1955 ++++++++++ .../classic/share/javascript/ckeditor/LICENSE.md | 1421 +++++++ .../classic/share/javascript/ckeditor/README.md | 39 + .../share/javascript/ckeditor/adapters/jquery.js | 10 + .../share/javascript/ckeditor/build-config.js | 128 + .../classic/share/javascript/ckeditor/ckeditor.js | 1405 +++++++ .../classic/share/javascript/ckeditor/config.js | 10 + .../classic/share/javascript/ckeditor/contents.css | 208 + .../classic/share/javascript/ckeditor/lang/en.js | 5 + .../classic/share/javascript/ckeditor/lang/hu.js | 5 + .../ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js | 10 + .../a11yhelp/dialogs/lang/_translationstatus.txt | 25 + .../ckeditor/plugins/a11yhelp/dialogs/lang/af.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/ar.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/az.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/bg.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/ca.js | 13 + .../ckeditor/plugins/a11yhelp/dialogs/lang/cs.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/cy.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/da.js | 11 + .../plugins/a11yhelp/dialogs/lang/de-ch.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/de.js | 13 + .../ckeditor/plugins/a11yhelp/dialogs/lang/el.js | 13 + .../plugins/a11yhelp/dialogs/lang/en-au.js | 11 + .../plugins/a11yhelp/dialogs/lang/en-gb.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/en.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/eo.js | 13 + .../plugins/a11yhelp/dialogs/lang/es-mx.js | 13 + .../ckeditor/plugins/a11yhelp/dialogs/lang/es.js | 13 + .../ckeditor/plugins/a11yhelp/dialogs/lang/et.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/eu.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/fa.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/fi.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/fo.js | 11 + .../plugins/a11yhelp/dialogs/lang/fr-ca.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/fr.js | 13 + .../ckeditor/plugins/a11yhelp/dialogs/lang/gl.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/gu.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/he.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/hi.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/hr.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/hu.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/id.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/it.js | 13 + .../ckeditor/plugins/a11yhelp/dialogs/lang/ja.js | 9 + .../ckeditor/plugins/a11yhelp/dialogs/lang/km.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/ko.js | 10 + .../ckeditor/plugins/a11yhelp/dialogs/lang/ku.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/lt.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/lv.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/mk.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/mn.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/nb.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/nl.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/no.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/oc.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/pl.js | 13 + .../plugins/a11yhelp/dialogs/lang/pt-br.js | 13 + .../ckeditor/plugins/a11yhelp/dialogs/lang/pt.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/ro.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/ru.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/si.js | 10 + .../ckeditor/plugins/a11yhelp/dialogs/lang/sk.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/sl.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/sq.js | 12 + .../plugins/a11yhelp/dialogs/lang/sr-latn.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/sr.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/sv.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/th.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/tr.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/tt.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/ug.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/uk.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/vi.js | 11 + .../plugins/a11yhelp/dialogs/lang/zh-cn.js | 9 + .../ckeditor/plugins/a11yhelp/dialogs/lang/zh.js | 9 + .../ckeditor/plugins/about/dialogs/about.js | 8 + .../plugins/about/dialogs/hidpi/logo_ckeditor.png | Bin 0 -> 12236 bytes .../plugins/about/dialogs/logo_ckeditor.png | Bin 0 -> 5650 bytes .../ckeditor/plugins/clipboard/dialogs/paste.js | 11 + .../plugins/colordialog/dialogs/colordialog.css | 20 + .../plugins/colordialog/dialogs/colordialog.js | 14 + .../copyformatting/cursors/cursor-disabled.svg | 25 + .../plugins/copyformatting/cursors/cursor.svg | 14 + .../copyformatting/styles/copyformatting.css | 45 + .../ckeditor/plugins/dialog/dialogDefinition.js | 4 + .../ckeditor/plugins/dialog/styles/dialog.css | 18 + .../javascript/ckeditor/plugins/div/dialogs/div.js | 10 + .../ckeditor/plugins/exportpdf/CHANGELOG.md | 42 + .../ckeditor/plugins/exportpdf/LICENSE.md | 18 + .../ckeditor/plugins/exportpdf/README.md | 102 + .../ckeditor/plugins/exportpdf/plugindefinition.js | 1 + .../plugins/exportpdf/tests/_helpers/tools.js | 5 + .../plugins/exportpdf/tests/authentication.js | 6 + .../ckeditor/plugins/exportpdf/tests/exportpdf.js | 9 + .../exportpdf/tests/manual/configfilename.html | 27 + .../exportpdf/tests/manual/configfilename.md | 46 + .../exportpdf/tests/manual/emptyeditor.html | 18 + .../plugins/exportpdf/tests/manual/emptyeditor.md | 34 + .../exportpdf/tests/manual/integration.html | 148 + .../plugins/exportpdf/tests/manual/integration.md | 12 + .../tests/manual/integrations/easyimage.html | 27 + .../tests/manual/integrations/easyimage.md | 26 + .../exportpdf/tests/manual/notifications.html | 19 + .../exportpdf/tests/manual/notifications.md | 36 + .../exportpdf/tests/manual/notificationsasync.html | 45 + .../exportpdf/tests/manual/notificationsasync.md | 27 + .../exportpdf/tests/manual/paperformat.html | 29 + .../plugins/exportpdf/tests/manual/paperformat.md | 18 + .../plugins/exportpdf/tests/manual/readonly.html | 18 + .../plugins/exportpdf/tests/manual/readonly.md | 28 + .../exportpdf/tests/manual/stylesheets.html | 36 + .../plugins/exportpdf/tests/manual/stylesheets.md | 19 + .../exportpdf/tests/manual/tokenfetching.html | 23 + .../exportpdf/tests/manual/tokenfetching.md | 19 + .../tests/manual/tokentwoeditorscorrect.html | 38 + .../tests/manual/tokentwoeditorscorrect.md | 14 + .../tests/manual/tokentwoeditorswrong.html | 38 + .../exportpdf/tests/manual/tokentwoeditorswrong.md | 14 + .../exportpdf/tests/manual/tokenwithouturl.html | 19 + .../exportpdf/tests/manual/tokenwithouturl.md | 31 + .../exportpdf/tests/manual/wrongendpoint.html | 21 + .../exportpdf/tests/manual/wrongendpoint.md | 34 + .../plugins/exportpdf/tests/notification.js | 4 + .../plugins/exportpdf/tests/resourcespaths.js | 9 + .../ckeditor/plugins/exportpdf/tests/statistics.js | 3 + .../plugins/exportpdf/tests/stylesheets.js | 18 + .../ckeditor/plugins/find/dialogs/find.js | 25 + .../ckeditor/plugins/flash/dialogs/flash.js | 24 + .../ckeditor/plugins/flash/images/placeholder.png | Bin 0 -> 256 bytes .../ckeditor/plugins/forms/dialogs/button.js | 8 + .../ckeditor/plugins/forms/dialogs/checkbox.js | 9 + .../ckeditor/plugins/forms/dialogs/form.js | 8 + .../ckeditor/plugins/forms/dialogs/hiddenfield.js | 7 + .../ckeditor/plugins/forms/dialogs/radio.js | 9 + .../ckeditor/plugins/forms/dialogs/select.js | 21 + .../ckeditor/plugins/forms/dialogs/textarea.js | 9 + .../ckeditor/plugins/forms/dialogs/textfield.js | 11 + .../ckeditor/plugins/forms/images/hiddenfield.gif | Bin 0 -> 178 bytes .../share/javascript/ckeditor/plugins/icons.png | Bin 0 -> 12745 bytes .../javascript/ckeditor/plugins/icons_hidpi.png | Bin 0 -> 41000 bytes .../ckeditor/plugins/iframe/dialogs/iframe.js | 11 + .../ckeditor/plugins/iframe/images/placeholder.png | Bin 0 -> 265 bytes .../ckeditor/plugins/image/dialogs/image.js | 44 + .../ckeditor/plugins/image/images/noimage.png | Bin 0 -> 1610 bytes .../ckeditor/plugins/link/dialogs/anchor.js | 8 + .../ckeditor/plugins/link/dialogs/link.js | 30 + .../ckeditor/plugins/link/images/anchor.png | Bin 0 -> 752 bytes .../ckeditor/plugins/link/images/hidpi/anchor.png | Bin 0 -> 1109 bytes .../plugins/liststyle/dialogs/liststyle.js | 10 + .../plugins/magicline/images/hidpi/icon-rtl.png | Bin 0 -> 176 bytes .../plugins/magicline/images/hidpi/icon.png | Bin 0 -> 199 bytes .../ckeditor/plugins/magicline/images/icon-rtl.png | Bin 0 -> 138 bytes .../ckeditor/plugins/magicline/images/icon.png | Bin 0 -> 133 bytes .../plugins/pagebreak/images/pagebreak.gif | Bin 0 -> 99 bytes .../plugins/pastefromgdocs/filter/default.js | 8 + .../plugins/pastefromword/filter/default.js | 43 + .../ckeditor/plugins/pastetools/filter/common.js | 22 + .../ckeditor/plugins/pastetools/filter/image.js | 6 + .../ckeditor/plugins/preview/images/pagebreak.gif | Bin 0 -> 99 bytes .../ckeditor/plugins/preview/preview.html | 13 + .../ckeditor/plugins/preview/styles/screen.css | 10 + .../javascript/ckeditor/plugins/scayt/CHANGELOG.md | 4 + .../javascript/ckeditor/plugins/scayt/LICENSE.md | 28 + .../javascript/ckeditor/plugins/scayt/README.md | 81 + .../ckeditor/plugins/scayt/dialogs/dialog.css | 23 + .../ckeditor/plugins/scayt/dialogs/options.js | 32 + .../ckeditor/plugins/scayt/dialogs/toolbar.css | 71 + .../plugins/scayt/skins/moono-lisa/scayt.css | 25 + .../plugins/showblocks/images/block_address.png | Bin 0 -> 152 bytes .../plugins/showblocks/images/block_blockquote.png | Bin 0 -> 154 bytes .../plugins/showblocks/images/block_div.png | Bin 0 -> 127 bytes .../plugins/showblocks/images/block_h1.png | Bin 0 -> 120 bytes .../plugins/showblocks/images/block_h2.png | Bin 0 -> 127 bytes .../plugins/showblocks/images/block_h3.png | Bin 0 -> 123 bytes .../plugins/showblocks/images/block_h4.png | Bin 0 -> 123 bytes .../plugins/showblocks/images/block_h5.png | Bin 0 -> 126 bytes .../plugins/showblocks/images/block_h6.png | Bin 0 -> 123 bytes .../ckeditor/plugins/showblocks/images/block_p.png | Bin 0 -> 115 bytes .../plugins/showblocks/images/block_pre.png | Bin 0 -> 128 bytes .../ckeditor/plugins/smiley/dialogs/smiley.js | 11 + .../ckeditor/plugins/smiley/images/angel_smile.gif | Bin 0 -> 1245 bytes .../ckeditor/plugins/smiley/images/angel_smile.png | Bin 0 -> 1172 bytes .../ckeditor/plugins/smiley/images/angry_smile.gif | Bin 0 -> 1219 bytes .../ckeditor/plugins/smiley/images/angry_smile.png | Bin 0 -> 1220 bytes .../plugins/smiley/images/broken_heart.gif | Bin 0 -> 732 bytes .../plugins/smiley/images/broken_heart.png | Bin 0 -> 1139 bytes .../plugins/smiley/images/confused_smile.gif | Bin 0 -> 1202 bytes .../plugins/smiley/images/confused_smile.png | Bin 0 -> 1101 bytes .../ckeditor/plugins/smiley/images/cry_smile.gif | Bin 0 -> 795 bytes .../ckeditor/plugins/smiley/images/cry_smile.png | Bin 0 -> 1214 bytes .../ckeditor/plugins/smiley/images/devil_smile.gif | Bin 0 -> 1239 bytes .../ckeditor/plugins/smiley/images/devil_smile.png | Bin 0 -> 1220 bytes .../plugins/smiley/images/embaressed_smile.gif | Bin 0 -> 786 bytes .../plugins/smiley/images/embarrassed_smile.gif | Bin 0 -> 786 bytes .../plugins/smiley/images/embarrassed_smile.png | Bin 0 -> 1145 bytes .../ckeditor/plugins/smiley/images/envelope.gif | Bin 0 -> 506 bytes .../ckeditor/plugins/smiley/images/envelope.png | Bin 0 -> 760 bytes .../ckeditor/plugins/smiley/images/heart.gif | Bin 0 -> 692 bytes .../ckeditor/plugins/smiley/images/heart.png | Bin 0 -> 999 bytes .../ckeditor/plugins/smiley/images/kiss.gif | Bin 0 -> 683 bytes .../ckeditor/plugins/smiley/images/kiss.png | Bin 0 -> 1003 bytes .../ckeditor/plugins/smiley/images/lightbulb.gif | Bin 0 -> 660 bytes .../ckeditor/plugins/smiley/images/lightbulb.png | Bin 0 -> 919 bytes .../ckeditor/plugins/smiley/images/omg_smile.gif | Bin 0 -> 820 bytes .../ckeditor/plugins/smiley/images/omg_smile.png | Bin 0 -> 1122 bytes .../plugins/smiley/images/regular_smile.gif | Bin 0 -> 1209 bytes .../plugins/smiley/images/regular_smile.png | Bin 0 -> 1084 bytes .../ckeditor/plugins/smiley/images/sad_smile.gif | Bin 0 -> 782 bytes .../ckeditor/plugins/smiley/images/sad_smile.png | Bin 0 -> 1115 bytes .../plugins/smiley/images/shades_smile.gif | Bin 0 -> 1231 bytes .../plugins/smiley/images/shades_smile.png | Bin 0 -> 1204 bytes .../ckeditor/plugins/smiley/images/teeth_smile.gif | Bin 0 -> 1201 bytes .../ckeditor/plugins/smiley/images/teeth_smile.png | Bin 0 -> 1183 bytes .../ckeditor/plugins/smiley/images/thumbs_down.gif | Bin 0 -> 715 bytes .../ckeditor/plugins/smiley/images/thumbs_down.png | Bin 0 -> 985 bytes .../ckeditor/plugins/smiley/images/thumbs_up.gif | Bin 0 -> 714 bytes .../ckeditor/plugins/smiley/images/thumbs_up.png | Bin 0 -> 959 bytes .../plugins/smiley/images/tongue_smile.gif | Bin 0 -> 1210 bytes .../plugins/smiley/images/tongue_smile.png | Bin 0 -> 1132 bytes .../plugins/smiley/images/tounge_smile.gif | Bin 0 -> 1210 bytes .../smiley/images/whatchutalkingabout_smile.gif | Bin 0 -> 775 bytes .../smiley/images/whatchutalkingabout_smile.png | Bin 0 -> 1039 bytes .../ckeditor/plugins/smiley/images/wink_smile.gif | Bin 0 -> 1202 bytes .../ckeditor/plugins/smiley/images/wink_smile.png | Bin 0 -> 1114 bytes .../dialogs/lang/_translationstatus.txt | 20 + .../plugins/specialchar/dialogs/lang/af.js | 13 + .../plugins/specialchar/dialogs/lang/ar.js | 13 + .../plugins/specialchar/dialogs/lang/az.js | 10 + .../plugins/specialchar/dialogs/lang/bg.js | 13 + .../plugins/specialchar/dialogs/lang/ca.js | 14 + .../plugins/specialchar/dialogs/lang/cs.js | 13 + .../plugins/specialchar/dialogs/lang/cy.js | 14 + .../plugins/specialchar/dialogs/lang/da.js | 11 + .../plugins/specialchar/dialogs/lang/de-ch.js | 13 + .../plugins/specialchar/dialogs/lang/de.js | 13 + .../plugins/specialchar/dialogs/lang/el.js | 13 + .../plugins/specialchar/dialogs/lang/en-au.js | 13 + .../plugins/specialchar/dialogs/lang/en-ca.js | 13 + .../plugins/specialchar/dialogs/lang/en-gb.js | 13 + .../plugins/specialchar/dialogs/lang/en.js | 13 + .../plugins/specialchar/dialogs/lang/eo.js | 12 + .../plugins/specialchar/dialogs/lang/es-mx.js | 13 + .../plugins/specialchar/dialogs/lang/es.js | 13 + .../plugins/specialchar/dialogs/lang/et.js | 11 + .../plugins/specialchar/dialogs/lang/eu.js | 13 + .../plugins/specialchar/dialogs/lang/fa.js | 12 + .../plugins/specialchar/dialogs/lang/fi.js | 13 + .../plugins/specialchar/dialogs/lang/fr-ca.js | 10 + .../plugins/specialchar/dialogs/lang/fr.js | 12 + .../plugins/specialchar/dialogs/lang/gl.js | 13 + .../plugins/specialchar/dialogs/lang/he.js | 12 + .../plugins/specialchar/dialogs/lang/hr.js | 13 + .../plugins/specialchar/dialogs/lang/hu.js | 12 + .../plugins/specialchar/dialogs/lang/id.js | 13 + .../plugins/specialchar/dialogs/lang/it.js | 14 + .../plugins/specialchar/dialogs/lang/ja.js | 9 + .../plugins/specialchar/dialogs/lang/km.js | 13 + .../plugins/specialchar/dialogs/lang/ko.js | 10 + .../plugins/specialchar/dialogs/lang/ku.js | 13 + .../plugins/specialchar/dialogs/lang/lt.js | 13 + .../plugins/specialchar/dialogs/lang/lv.js | 13 + .../plugins/specialchar/dialogs/lang/nb.js | 11 + .../plugins/specialchar/dialogs/lang/nl.js | 13 + .../plugins/specialchar/dialogs/lang/no.js | 11 + .../plugins/specialchar/dialogs/lang/oc.js | 12 + .../plugins/specialchar/dialogs/lang/pl.js | 12 + .../plugins/specialchar/dialogs/lang/pt-br.js | 11 + .../plugins/specialchar/dialogs/lang/pt.js | 13 + .../plugins/specialchar/dialogs/lang/ro.js | 13 + .../plugins/specialchar/dialogs/lang/ru.js | 13 + .../plugins/specialchar/dialogs/lang/si.js | 13 + .../plugins/specialchar/dialogs/lang/sk.js | 13 + .../plugins/specialchar/dialogs/lang/sl.js | 12 + .../plugins/specialchar/dialogs/lang/sq.js | 13 + .../plugins/specialchar/dialogs/lang/sr-latn.js | 13 + .../plugins/specialchar/dialogs/lang/sr.js | 13 + .../plugins/specialchar/dialogs/lang/sv.js | 11 + .../plugins/specialchar/dialogs/lang/th.js | 13 + .../plugins/specialchar/dialogs/lang/tr.js | 12 + .../plugins/specialchar/dialogs/lang/tt.js | 13 + .../plugins/specialchar/dialogs/lang/ug.js | 13 + .../plugins/specialchar/dialogs/lang/uk.js | 12 + .../plugins/specialchar/dialogs/lang/vi.js | 14 + .../plugins/specialchar/dialogs/lang/zh-cn.js | 9 + .../plugins/specialchar/dialogs/lang/zh.js | 9 + .../plugins/specialchar/dialogs/specialchar.js | 14 + .../ckeditor/plugins/table/dialogs/table.js | 22 + .../tableselection/styles/tableselection.css | 36 + .../plugins/tabletools/dialogs/tableCell.js | 18 + .../plugins/templates/dialogs/templates.css | 84 + .../plugins/templates/dialogs/templates.js | 10 + .../plugins/templates/templates/default.js | 7 + .../templates/templates/images/template1.gif | Bin 0 -> 539 bytes .../templates/templates/images/template2.gif | Bin 0 -> 497 bytes .../templates/templates/images/template3.gif | Bin 0 -> 557 bytes .../ckeditor/plugins/widget/images/handle.png | Bin 0 -> 220 bytes .../javascript/ckeditor/plugins/wsc/LICENSE.md | 28 + .../javascript/ckeditor/plugins/wsc/README.md | 80 + .../ckeditor/plugins/wsc/dialogs/ciframe.html | 66 + .../ckeditor/plugins/wsc/dialogs/tmpFrameset.html | 52 + .../ckeditor/plugins/wsc/dialogs/wsc.css | 82 + .../javascript/ckeditor/plugins/wsc/dialogs/wsc.js | 91 + .../ckeditor/plugins/wsc/dialogs/wsc_ie.js | 11 + .../ckeditor/plugins/wsc/skins/moono-lisa/wsc.css | 43 + .../javascript/ckeditor/samples/css/samples.css | 1637 ++++++++ .../javascript/ckeditor/samples/img/github-top.png | Bin 0 -> 383 bytes .../javascript/ckeditor/samples/img/header-bg.png | Bin 0 -> 13086 bytes .../ckeditor/samples/img/header-separator.png | Bin 0 -> 123 bytes .../share/javascript/ckeditor/samples/img/logo.png | Bin 0 -> 5634 bytes .../share/javascript/ckeditor/samples/img/logo.svg | 13 + .../ckeditor/samples/img/navigation-tip.png | Bin 0 -> 12029 bytes .../share/javascript/ckeditor/samples/index.html | 130 + .../share/javascript/ckeditor/samples/js/sample.js | 53 + .../share/javascript/ckeditor/samples/js/sf.js | 17 + .../javascript/ckeditor/samples/old/ajax.html | 86 + .../share/javascript/ckeditor/samples/old/api.html | 211 + .../javascript/ckeditor/samples/old/appendto.html | 60 + .../ckeditor/samples/old/assets/inlineall/logo.png | Bin 0 -> 4283 bytes .../samples/old/assets/outputxhtml/outputxhtml.css | 204 + .../ckeditor/samples/old/assets/posteddata.php | 60 + .../ckeditor/samples/old/assets/sample.jpg | Bin 0 -> 14449 bytes .../samples/old/assets/uilanguages/languages.js | 7 + .../ckeditor/samples/old/datafiltering.html | 509 +++ .../samples/old/dialog/assets/my_dialog.js | 48 + .../ckeditor/samples/old/dialog/dialog.html | 191 + .../ckeditor/samples/old/divreplace.html | 145 + .../ckeditor/samples/old/enterkey/enterkey.html | 107 + .../assets/outputforflash/outputforflash.fla | Bin 0 -> 85504 bytes .../assets/outputforflash/outputforflash.swf | Bin 0 -> 15571 bytes .../htmlwriter/assets/outputforflash/swfobject.js | 19 + .../samples/old/htmlwriter/outputforflash.html | 284 ++ .../samples/old/htmlwriter/outputhtml.html | 225 ++ .../javascript/ckeditor/samples/old/index.html | 132 + .../javascript/ckeditor/samples/old/inlineall.html | 315 ++ .../ckeditor/samples/old/inlinebycode.html | 125 + .../ckeditor/samples/old/inlinetextarea.html | 114 + .../javascript/ckeditor/samples/old/jquery.html | 104 + .../ckeditor/samples/old/magicline/magicline.html | 210 + .../javascript/ckeditor/samples/old/readonly.html | 77 + .../ckeditor/samples/old/replacebyclass.html | 61 + .../ckeditor/samples/old/replacebycode.html | 60 + .../javascript/ckeditor/samples/old/sample.css | 357 ++ .../javascript/ckeditor/samples/old/sample.js | 50 + .../ckeditor/samples/old/sample_posteddata.php | 16 + .../javascript/ckeditor/samples/old/tabindex.html | 79 + .../ckeditor/samples/old/toolbar/toolbar.html | 236 ++ .../javascript/ckeditor/samples/old/uicolor.html | 73 + .../ckeditor/samples/old/uilanguages.html | 123 + .../ckeditor/samples/old/wysiwygarea/fullpage.html | 81 + .../ckeditor/samples/old/xhtmlstyle.html | 235 ++ .../samples/toolbarconfigurator/css/fontello.css | 55 + .../samples/toolbarconfigurator/font/LICENSE.txt | 10 + .../samples/toolbarconfigurator/font/config.json | 28 + .../samples/toolbarconfigurator/font/fontello.eot | Bin 0 -> 4988 bytes .../samples/toolbarconfigurator/font/fontello.svg | 14 + .../samples/toolbarconfigurator/font/fontello.ttf | Bin 0 -> 4820 bytes .../samples/toolbarconfigurator/font/fontello.woff | Bin 0 -> 2904 bytes .../samples/toolbarconfigurator/index.html | 447 +++ .../js/abstracttoolbarmodifier.js | 13 + .../toolbarconfigurator/js/fulltoolbareditor.js | 9 + .../toolbarconfigurator/js/toolbarmodifier.js | 33 + .../toolbarconfigurator/js/toolbartextmodifier.js | 14 + .../toolbarconfigurator/lib/codemirror/LICENSE | 19 + .../lib/codemirror/codemirror.css | 325 ++ .../lib/codemirror/codemirror.js | 288 ++ .../lib/codemirror/javascript.js | 25 + .../toolbarconfigurator/lib/codemirror/neo.css | 36 + .../lib/codemirror/show-hint.css | 38 + .../lib/codemirror/show-hint.js | 16 + .../ckeditor/skins/moono-lisa/dialog.css | 5 + .../ckeditor/skins/moono-lisa/dialog_ie.css | 5 + .../ckeditor/skins/moono-lisa/dialog_ie8.css | 5 + .../ckeditor/skins/moono-lisa/dialog_iequirks.css | 5 + .../ckeditor/skins/moono-lisa/editor.css | 5 + .../ckeditor/skins/moono-lisa/editor_gecko.css | 5 + .../ckeditor/skins/moono-lisa/editor_ie.css | 5 + .../ckeditor/skins/moono-lisa/editor_ie8.css | 5 + .../ckeditor/skins/moono-lisa/editor_iequirks.css | 5 + .../javascript/ckeditor/skins/moono-lisa/icons.png | Bin 0 -> 12745 bytes .../ckeditor/skins/moono-lisa/icons_hidpi.png | Bin 0 -> 41000 bytes .../ckeditor/skins/moono-lisa/images/arrow.png | Bin 0 -> 191 bytes .../ckeditor/skins/moono-lisa/images/close.png | Bin 0 -> 615 bytes .../skins/moono-lisa/images/hidpi/close.png | Bin 0 -> 1238 bytes .../skins/moono-lisa/images/hidpi/lock-open.png | Bin 0 -> 1071 bytes .../skins/moono-lisa/images/hidpi/lock.png | Bin 0 -> 1062 bytes .../skins/moono-lisa/images/hidpi/refresh.png | Bin 0 -> 1623 bytes .../ckeditor/skins/moono-lisa/images/lock-open.png | Bin 0 -> 511 bytes .../ckeditor/skins/moono-lisa/images/lock.png | Bin 0 -> 506 bytes .../ckeditor/skins/moono-lisa/images/refresh.png | Bin 0 -> 757 bytes .../ckeditor/skins/moono-lisa/images/spinner.gif | Bin 0 -> 2984 bytes .../javascript/ckeditor/skins/moono-lisa/readme.md | 46 + .../classic/share/javascript/ckeditor/styles.js | 137 + .../share/javascript/ckeditor/vendor/promise.js | 13 + .../share/javascript/filemanager/LICENSE.TXT | 1 + .../classic/share/javascript/filemanager/README.md | 80 + .../share/javascript/filemanager/changelog.txt | 516 +++ .../filemanager/filemanager/UploadHandler.php | 1595 ++++++++ .../filemanager/filemanager/ajax_calls.php | 653 ++++ .../filemanager/filemanager/config/.htaccess | 1 + .../filemanager/filemanager/config/config.php | 619 +++ .../filemanager/css/jquery.fileupload-noscript.css | 22 + .../css/jquery.fileupload-ui-noscript.css | 17 + .../filemanager/css/jquery.fileupload-ui.css | 53 + .../filemanager/css/jquery.fileupload.css | 37 + .../filemanager/filemanager/css/rtl-style.css | Bin 0 -> 6224 bytes .../filemanager/filemanager/css/style.css | 35 + .../javascript/filemanager/filemanager/dialog.php | 1369 +++++++ .../javascript/filemanager/filemanager/execute.php | 505 +++ .../filemanager/filemanager/force_download.php | 127 + .../filemanager/img/clipboard_apply.png | Bin 0 -> 189 bytes .../filemanager/img/clipboard_clear.png | Bin 0 -> 195 bytes .../filemanager/filemanager/img/copy.png | Bin 0 -> 238 bytes .../javascript/filemanager/filemanager/img/cut.png | Bin 0 -> 173 bytes .../filemanager/filemanager/img/date.png | Bin 0 -> 611 bytes .../filemanager/filemanager/img/dimension.png | Bin 0 -> 489 bytes .../filemanager/filemanager/img/down.png | Bin 0 -> 163 bytes .../filemanager/filemanager/img/download.png | Bin 0 -> 674 bytes .../filemanager/filemanager/img/duplicate.png | Bin 0 -> 245 bytes .../filemanager/filemanager/img/edit_img.png | Bin 0 -> 673 bytes .../filemanager/filemanager/img/file_edit.png | Bin 0 -> 764 bytes .../filemanager/img/glyphicons-halflings-white.png | Bin 0 -> 8583 bytes .../filemanager/img/glyphicons-halflings.png | Bin 0 -> 15602 bytes .../filemanager/filemanager/img/ico/ac3.jpg | Bin 0 -> 1692 bytes .../filemanager/filemanager/img/ico/accdb.jpg | Bin 0 -> 2613 bytes .../filemanager/filemanager/img/ico/ade.jpg | Bin 0 -> 2290 bytes .../filemanager/filemanager/img/ico/adp.jpg | Bin 0 -> 2290 bytes .../filemanager/filemanager/img/ico/ai.jpg | Bin 0 -> 1776 bytes .../filemanager/filemanager/img/ico/aiff.jpg | Bin 0 -> 1717 bytes .../filemanager/filemanager/img/ico/avi.jpg | Bin 0 -> 1548 bytes .../filemanager/filemanager/img/ico/bmp.jpg | Bin 0 -> 1979 bytes .../filemanager/filemanager/img/ico/c4d.jpg | Bin 0 -> 6241 bytes .../filemanager/filemanager/img/ico/css.jpg | Bin 0 -> 1722 bytes .../filemanager/filemanager/img/ico/csv.jpg | Bin 0 -> 2558 bytes .../filemanager/filemanager/img/ico/default.jpg | Bin 0 -> 1723 bytes .../filemanager/filemanager/img/ico/dmg.jpg | Bin 0 -> 1579 bytes .../filemanager/filemanager/img/ico/doc.jpg | Bin 0 -> 2511 bytes .../filemanager/filemanager/img/ico/docx.jpg | Bin 0 -> 2511 bytes .../filemanager/filemanager/img/ico/dwg.jpg | Bin 0 -> 5457 bytes .../filemanager/filemanager/img/ico/dxf.jpg | Bin 0 -> 5419 bytes .../filemanager/filemanager/img/ico/favicon.ico | Bin 0 -> 1150 bytes .../filemanager/filemanager/img/ico/fla.jpg | Bin 0 -> 1859 bytes .../filemanager/filemanager/img/ico/flv.jpg | Bin 0 -> 1806 bytes .../filemanager/filemanager/img/ico/folder.png | Bin 0 -> 737 bytes .../filemanager/img/ico/folder_back.png | Bin 0 -> 1128 bytes .../filemanager/filemanager/img/ico/gif.jpg | Bin 0 -> 1979 bytes .../filemanager/filemanager/img/ico/gz.jpg | Bin 0 -> 1718 bytes .../filemanager/filemanager/img/ico/html.jpg | Bin 0 -> 2152 bytes .../filemanager/filemanager/img/ico/iso.jpg | Bin 0 -> 1496 bytes .../filemanager/filemanager/img/ico/jpeg.jpg | Bin 0 -> 1960 bytes .../filemanager/filemanager/img/ico/jpg.jpg | Bin 0 -> 1979 bytes .../filemanager/filemanager/img/ico/log.jpg | Bin 0 -> 1765 bytes .../filemanager/filemanager/img/ico/m4a.jpg | Bin 0 -> 1529 bytes .../filemanager/filemanager/img/ico/mdb.jpg | Bin 0 -> 2613 bytes .../filemanager/filemanager/img/ico/mid.jpg | Bin 0 -> 1630 bytes .../filemanager/filemanager/img/ico/mov.jpg | Bin 0 -> 1574 bytes .../filemanager/filemanager/img/ico/mp3.jpg | Bin 0 -> 1555 bytes .../filemanager/filemanager/img/ico/mp4.jpg | Bin 0 -> 1529 bytes .../filemanager/filemanager/img/ico/mpeg.jpg | Bin 0 -> 1589 bytes .../filemanager/filemanager/img/ico/mpg.jpg | Bin 0 -> 1532 bytes .../filemanager/filemanager/img/ico/odb.jpg | Bin 0 -> 1748 bytes .../filemanager/filemanager/img/ico/odf.jpg | Bin 0 -> 1760 bytes .../filemanager/filemanager/img/ico/odg.jpg | Bin 0 -> 1748 bytes .../filemanager/filemanager/img/ico/odp.jpg | Bin 0 -> 1760 bytes .../filemanager/filemanager/img/ico/ods.jpg | Bin 0 -> 1748 bytes .../filemanager/filemanager/img/ico/odt.jpg | Bin 0 -> 1748 bytes .../filemanager/filemanager/img/ico/ogg.jpg | Bin 0 -> 1557 bytes .../filemanager/filemanager/img/ico/otg.jpg | Bin 0 -> 1759 bytes .../filemanager/filemanager/img/ico/otp.jpg | Bin 0 -> 1870 bytes .../filemanager/filemanager/img/ico/ots.jpg | Bin 0 -> 1748 bytes .../filemanager/filemanager/img/ico/ott.jpg | Bin 0 -> 1748 bytes .../filemanager/filemanager/img/ico/pdf.jpg | Bin 0 -> 2050 bytes .../filemanager/filemanager/img/ico/png.jpg | Bin 0 -> 1979 bytes .../filemanager/filemanager/img/ico/ppt.jpg | Bin 0 -> 2386 bytes .../filemanager/filemanager/img/ico/pptx.jpg | Bin 0 -> 2479 bytes .../filemanager/filemanager/img/ico/psd.jpg | Bin 0 -> 2110 bytes .../filemanager/filemanager/img/ico/rar.jpg | Bin 0 -> 1718 bytes .../filemanager/filemanager/img/ico/rtf.jpg | Bin 0 -> 2511 bytes .../filemanager/filemanager/img/ico/skp.jpg | Bin 0 -> 6347 bytes .../filemanager/filemanager/img/ico/sql.jpg | Bin 0 -> 1695 bytes .../filemanager/filemanager/img/ico/stp.jpg | Bin 0 -> 5539 bytes .../filemanager/filemanager/img/ico/svg.jpg | Bin 0 -> 1979 bytes .../filemanager/filemanager/img/ico/tar.jpg | Bin 0 -> 1747 bytes .../filemanager/filemanager/img/ico/tiff.jpg | Bin 0 -> 1953 bytes .../filemanager/filemanager/img/ico/txt.jpg | Bin 0 -> 1765 bytes .../filemanager/filemanager/img/ico/vwx.jpg | Bin 0 -> 5463 bytes .../filemanager/filemanager/img/ico/wav.jpg | Bin 0 -> 1557 bytes .../filemanager/filemanager/img/ico/webm.jpg | Bin 0 -> 1548 bytes .../filemanager/filemanager/img/ico/wma.jpg | Bin 0 -> 1548 bytes .../filemanager/filemanager/img/ico/xhtml.jpg | Bin 0 -> 1920 bytes .../filemanager/filemanager/img/ico/xls.jpg | Bin 0 -> 2691 bytes .../filemanager/filemanager/img/ico/xlsx.jpg | Bin 0 -> 2539 bytes .../filemanager/filemanager/img/ico/xml.jpg | Bin 0 -> 1714 bytes .../filemanager/filemanager/img/ico/zip.jpg | Bin 0 -> 1718 bytes .../filemanager/filemanager/img/ico_dark/ac3.jpg | Bin 0 -> 3462 bytes .../filemanager/filemanager/img/ico_dark/accdb.jpg | Bin 0 -> 4130 bytes .../filemanager/filemanager/img/ico_dark/ade.jpg | Bin 0 -> 4126 bytes .../filemanager/filemanager/img/ico_dark/adp.jpg | Bin 0 -> 4126 bytes .../filemanager/filemanager/img/ico_dark/ai.jpg | Bin 0 -> 3416 bytes .../filemanager/filemanager/img/ico_dark/aiff.jpg | Bin 0 -> 3454 bytes .../filemanager/filemanager/img/ico_dark/avi.jpg | Bin 0 -> 3461 bytes .../filemanager/filemanager/img/ico_dark/bmp.jpg | Bin 0 -> 3754 bytes .../filemanager/filemanager/img/ico_dark/css.jpg | Bin 0 -> 3444 bytes .../filemanager/filemanager/img/ico_dark/csv.jpg | Bin 0 -> 4189 bytes .../filemanager/img/ico_dark/default.jpg | Bin 0 -> 3783 bytes .../filemanager/filemanager/img/ico_dark/dmg.jpg | Bin 0 -> 3619 bytes .../filemanager/filemanager/img/ico_dark/doc.jpg | Bin 0 -> 4081 bytes .../filemanager/filemanager/img/ico_dark/docx.jpg | Bin 0 -> 4075 bytes .../filemanager/img/ico_dark/favicon.ico | Bin 0 -> 1150 bytes .../filemanager/filemanager/img/ico_dark/fla.jpg | Bin 0 -> 3608 bytes .../filemanager/filemanager/img/ico_dark/flv.jpg | Bin 0 -> 3572 bytes .../filemanager/img/ico_dark/folder.png | Bin 0 -> 535 bytes .../filemanager/img/ico_dark/folder_back.png | Bin 0 -> 1128 bytes .../filemanager/filemanager/img/ico_dark/gif.jpg | Bin 0 -> 3754 bytes .../filemanager/filemanager/img/ico_dark/gz.jpg | Bin 0 -> 3372 bytes .../filemanager/filemanager/img/ico_dark/html.jpg | Bin 0 -> 3719 bytes .../filemanager/filemanager/img/ico_dark/iso.jpg | Bin 0 -> 3576 bytes .../filemanager/filemanager/img/ico_dark/jpeg.jpg | Bin 0 -> 3700 bytes .../filemanager/filemanager/img/ico_dark/jpg.jpg | Bin 0 -> 3754 bytes .../filemanager/filemanager/img/ico_dark/log.jpg | Bin 0 -> 3804 bytes .../filemanager/filemanager/img/ico_dark/m4a.jpg | Bin 0 -> 3379 bytes .../filemanager/filemanager/img/ico_dark/mdb.jpg | Bin 0 -> 4130 bytes .../filemanager/filemanager/img/ico_dark/mid.jpg | Bin 0 -> 3383 bytes .../filemanager/filemanager/img/ico_dark/mov.jpg | Bin 0 -> 3439 bytes .../filemanager/filemanager/img/ico_dark/mp3.jpg | Bin 0 -> 3335 bytes .../filemanager/filemanager/img/ico_dark/mp4.jpg | Bin 0 -> 3415 bytes .../filemanager/filemanager/img/ico_dark/mpeg.jpg | Bin 0 -> 3470 bytes .../filemanager/filemanager/img/ico_dark/mpg.jpg | Bin 0 -> 3459 bytes .../filemanager/filemanager/img/ico_dark/odb.jpg | Bin 0 -> 3581 bytes .../filemanager/filemanager/img/ico_dark/odf.jpg | Bin 0 -> 3590 bytes .../filemanager/filemanager/img/ico_dark/odg.jpg | Bin 0 -> 3581 bytes .../filemanager/filemanager/img/ico_dark/odp.jpg | Bin 0 -> 3590 bytes .../filemanager/filemanager/img/ico_dark/ods.jpg | Bin 0 -> 3581 bytes .../filemanager/filemanager/img/ico_dark/odt.jpg | Bin 0 -> 3581 bytes .../filemanager/filemanager/img/ico_dark/ogg.jpg | Bin 0 -> 3440 bytes .../filemanager/filemanager/img/ico_dark/otg.jpg | Bin 0 -> 3561 bytes .../filemanager/filemanager/img/ico_dark/otp.jpg | Bin 0 -> 3559 bytes .../filemanager/filemanager/img/ico_dark/ots.jpg | Bin 0 -> 3581 bytes .../filemanager/filemanager/img/ico_dark/ott.jpg | Bin 0 -> 3581 bytes .../filemanager/filemanager/img/ico_dark/pdf.jpg | Bin 0 -> 3705 bytes .../filemanager/filemanager/img/ico_dark/png.jpg | Bin 0 -> 3754 bytes .../filemanager/filemanager/img/ico_dark/ppt.jpg | Bin 0 -> 4035 bytes .../filemanager/filemanager/img/ico_dark/pptx.jpg | Bin 0 -> 4089 bytes .../filemanager/filemanager/img/ico_dark/psd.jpg | Bin 0 -> 3859 bytes .../filemanager/filemanager/img/ico_dark/rar.jpg | Bin 0 -> 3387 bytes .../filemanager/filemanager/img/ico_dark/rtf.jpg | Bin 0 -> 4081 bytes .../filemanager/filemanager/img/ico_dark/sql.jpg | Bin 0 -> 3766 bytes .../filemanager/filemanager/img/ico_dark/svg.jpg | Bin 0 -> 3754 bytes .../filemanager/filemanager/img/ico_dark/tar.jpg | Bin 0 -> 3346 bytes .../filemanager/filemanager/img/ico_dark/tiff.jpg | Bin 0 -> 3798 bytes .../filemanager/filemanager/img/ico_dark/txt.jpg | Bin 0 -> 3804 bytes .../filemanager/filemanager/img/ico_dark/wav.jpg | Bin 0 -> 3440 bytes .../filemanager/filemanager/img/ico_dark/webm.jpg | Bin 0 -> 3476 bytes .../filemanager/filemanager/img/ico_dark/wma.jpg | Bin 0 -> 3461 bytes .../filemanager/filemanager/img/ico_dark/xhtml.jpg | Bin 0 -> 3653 bytes .../filemanager/filemanager/img/ico_dark/xls.jpg | Bin 0 -> 4183 bytes .../filemanager/filemanager/img/ico_dark/xlsx.jpg | Bin 0 -> 4250 bytes .../filemanager/filemanager/img/ico_dark/xml.jpg | Bin 0 -> 3774 bytes .../filemanager/filemanager/img/ico_dark/zip.jpg | Bin 0 -> 3372 bytes .../filemanager/filemanager/img/info.png | Bin 0 -> 345 bytes .../javascript/filemanager/filemanager/img/key.png | Bin 0 -> 185 bytes .../filemanager/filemanager/img/label.png | Bin 0 -> 479 bytes .../filemanager/filemanager/img/loading.gif | Bin 0 -> 1688 bytes .../filemanager/filemanager/img/logo.png | Bin 0 -> 24774 bytes .../filemanager/filemanager/img/preview.png | Bin 0 -> 376 bytes .../filemanager/filemanager/img/processing.gif | Bin 0 -> 3209 bytes .../filemanager/filemanager/img/rename.png | Bin 0 -> 262 bytes .../filemanager/filemanager/img/size.png | Bin 0 -> 660 bytes .../filemanager/filemanager/img/sort.png | Bin 0 -> 584 bytes .../filemanager/img/storing_animation.gif | Bin 0 -> 3887 bytes .../filemanager/filemanager/img/trans.jpg | Bin 0 -> 4024 bytes .../javascript/filemanager/filemanager/img/up.png | Bin 0 -> 163 bytes .../filemanager/filemanager/img/upload.png | Bin 0 -> 324 bytes .../javascript/filemanager/filemanager/img/url.png | Bin 0 -> 593 bytes .../javascript/filemanager/filemanager/img/zip.png | Bin 0 -> 819 bytes .../filemanager/filemanager/include/FtpClient.php | 884 +++++ .../filemanager/include/FtpException.php | 20 + .../filemanager/filemanager/include/FtpWrapper.php | 115 + .../filemanager/filemanager/include/Response.php | 365 ++ .../filemanager/filemanager/include/ftp_class.php | 82 + .../filemanager/include/mime_type_lib.php | 267 ++ .../filemanager/include/php_image_magician.php | 3785 ++++++++++++++++++ .../filemanager/filemanager/include/utils.php | 1345 +++++++ .../javascript/filemanager/filemanager/index.php | 10 + .../filemanager/filemanager/js/include.js | 1 + .../filemanager/js/jquery.fileupload-angular.js | 438 +++ .../filemanager/js/jquery.fileupload-audio.js | 113 + .../filemanager/js/jquery.fileupload-image.js | 326 ++ .../filemanager/js/jquery.fileupload-jquery-ui.js | 161 + .../filemanager/js/jquery.fileupload-process.js | 178 + .../filemanager/js/jquery.fileupload-ui.js | 714 ++++ .../filemanager/js/jquery.fileupload-validate.js | 125 + .../filemanager/js/jquery.fileupload-video.js | 113 + .../filemanager/js/jquery.fileupload.js | 1502 ++++++++ .../filemanager/js/jquery.iframe-transport.js | 224 ++ .../filemanager/filemanager/js/modernizr.custom.js | 4 + .../filemanager/filemanager/js/plugins.js | 3 + .../filemanager/js/vendor/jquery.ui.widget.js | 572 +++ .../filemanager/filemanager/lang/az_AZ.php | 147 + .../filemanager/filemanager/lang/bg_BG.php | 147 + .../javascript/filemanager/filemanager/lang/ca.php | 126 + .../javascript/filemanager/filemanager/lang/cs.php | 147 + .../javascript/filemanager/filemanager/lang/da.php | 147 + .../javascript/filemanager/filemanager/lang/de.php | 147 + .../filemanager/filemanager/lang/el_GR.php | 147 + .../filemanager/filemanager/lang/en_EN.php | 146 + .../javascript/filemanager/filemanager/lang/es.php | 147 + .../javascript/filemanager/filemanager/lang/fa.php | 147 + .../filemanager/filemanager/lang/fr_FR.php | 147 + .../filemanager/filemanager/lang/he_IL.php | 147 + .../javascript/filemanager/filemanager/lang/hr.php | 147 + .../filemanager/filemanager/lang/hu_HU.php | 147 + .../javascript/filemanager/filemanager/lang/id.php | 147 + .../javascript/filemanager/filemanager/lang/it.php | 147 + .../javascript/filemanager/filemanager/lang/ja.php | 147 + .../filemanager/filemanager/lang/languages.php | 42 + .../javascript/filemanager/filemanager/lang/lt.php | 147 + .../filemanager/filemanager/lang/mn_MN.php | 147 + .../filemanager/filemanager/lang/nb_NO.php | 147 + .../javascript/filemanager/filemanager/lang/nl.php | 147 + .../filemanager/filemanager/lang/nn_NO.php | 147 + .../javascript/filemanager/filemanager/lang/pl.php | 147 + .../filemanager/filemanager/lang/pt_BR.php | 147 + .../filemanager/filemanager/lang/pt_PT.php | 147 + .../javascript/filemanager/filemanager/lang/ro.php | 147 + .../javascript/filemanager/filemanager/lang/ru.php | 146 + .../javascript/filemanager/filemanager/lang/sk.php | 147 + .../javascript/filemanager/filemanager/lang/sl.php | 147 + .../filemanager/filemanager/lang/sv_SE.php | 147 + .../filemanager/filemanager/lang/th_TH.php | 154 + .../filemanager/filemanager/lang/tr_TR.php | 147 + .../filemanager/filemanager/lang/uk_UA.php | 147 + .../javascript/filemanager/filemanager/lang/vi.php | 147 + .../filemanager/filemanager/lang/zh_CN.php | 147 + .../filemanager/filemanager/plugin.min.js | 111 + .../filemanager/filemanager/svg/icon-a.svg | 235 ++ .../filemanager/filemanager/svg/icon-b.svg | 224 ++ .../filemanager/filemanager/svg/icon-c.svg | 224 ++ .../filemanager/filemanager/svg/icon-d.svg | 224 ++ .../javascript/filemanager/filemanager/svg/svg.svg | 1 + .../javascript/filemanager/filemanager/upload.php | 198 + .../share/javascript/filemanager/source/source.txt | 1 + .../share/javascript/filemanager/thumbs/thumbs.txt | 1 + .../responsivefilemanager/img/insertfile.gif | Bin 0 -> 3325 bytes .../plugins/responsivefilemanager/plugin.min.js | 131 + .../www/skin/default/base/html/base.phtml | 2 +- mayor-orig/mayor-felveteli/log/mayor-felveteli.rev | 2 +- .../include/menu/public/hu_HU/module-felveteli.php | 4 +- .../www/include/modules/felveteli/base/rights.php | 4 +- .../www/static/hu_HU/felveteli/felveteli.html | 29 + mayor-orig/mayor-fenntarto/log/mayor-fenntarto.rev | 2 +- .../mayor-installer-orig/log/mayor-installer.rev | 2 +- .../log/mayor-installer-sulix.rev | 2 +- mayor-orig/mayor-jatek/log/mayor-jatek.rev | 2 +- .../www/include/alert/hu_HU/module-jatek.php | 3 + .../log/mayor-locales-de_DE.rev | 2 +- .../log/mayor-locales-en_US.rev | 2 +- .../log/mayor-locales-jp_JP.rev | 2 +- .../install/module-naplo/mysql/intezmeny.sql | 17 +- .../install/module-naplo/mysql/tanev.sql | 98 + mayor-orig/mayor-naplo/log/mayor-naplo.rev | 2 +- .../mayor-naplo/update/pre004721-1-intezmeny.sql | 13 + .../mayor-naplo/update/pre004722-1-naplo.sql | 98 + .../mayor-naplo/update/pre004722-2-intezmeny.sql | 12 + .../mayor-naplo/update/pre004725-1-naplo.sql | 16 + .../mayor-naplo/update/pre004734-1-naplo.sql | 16 + .../mayor-naplo/update/pre004735-1-intezmeny.sql | 24 + .../mayor-naplo/update/pre004736-1-intezmeny.sql | 18 + .../mayor-naplo/update/pre004737-1-naplo.sql | 18 + .../mayor-naplo/update/pre004742-1-intezmeny.sql | 12 + .../mayor-naplo/update/pre004772-1-naplo.sql | 29 + mayor-orig/mayor-naplo/update/pre004772-2.sh | 13 + .../mayor-naplo/update/pre004775-1-naplo.sql | 27 + .../include/menu/private/hu_HU/module-naplo.php | 9 + .../www/include/menu/public/hu_HU/module-naplo.php | 16 +- .../www/include/modules/naplo/base/rights.php | 2 +- .../www/include/modules/naplo/base/tool.php | 3 +- .../www/include/modules/naplo/base/zcheck.php | 12 +- .../modules/naplo/dokumentum/dokumentum.php | 56 + .../www/include/modules/naplo/felveteli/level.php | 201 + .../modules/naplo/felveteli/levelIgazgato.php | 177 + .../www/include/modules/naplo/nyomtatas/tex.php | 2 +- .../www/include/modules/naplo/share/felveteli.php | 112 + .../include/modules/naplo/share/tanarModifier.php | 2 +- .../www/include/modules/naplo/share/tanmenet.php | 2 +- .../hu_HU/module-naplo/dokumentum/dokumentum.php | 5 + .../lang/hu_HU/module-naplo/felveteli/szobeli.php | 38 + .../lang/hu_HU/module-naplo/intezmeny/tanar.php | 3 +- .../lang/hu_HU/module-naplo/intezmeny/tanarok.php | 4 + .../private/naplo/dokumentum/dokumentum-pre.php | 41 + .../policy/private/naplo/dokumentum/dokumentum.php | 21 + .../private/naplo/dokumentum/tinyfilemanager.php | 4021 ++++++++++++++++++++ .../policy/private/naplo/felveteli/level-pre.php | 61 + .../www/policy/private/naplo/felveteli/level.php | 0 .../private/naplo/felveteli/levelIgazgato-pre.php | 61 + .../private/naplo/felveteli/levelIgazgato.php | 30 + .../policy/private/naplo/felveteli/szobeli-pre.php | 153 + .../www/policy/private/naplo/felveteli/szobeli.php | 38 + .../private/naplo/hibabejelento/admin-pre.php | 2 +- .../policy/private/naplo/hirnok/cronFutar-pre.php | 16 +- .../www/policy/private/naplo/hirnok/hirnok-pre.php | 4 +- .../private/naplo/intezmeny/kepzesOraterv-pre.php | 22 +- .../private/naplo/intezmeny/kepzesOraterv.php | 6 +- .../private/naplo/orarend/helyettesites-pre.php | 2 +- .../policy/private/naplo/orarend/orarend-pre.php | 2 +- .../policy/private/naplo/osztalyozo/stat-pre.php | 6 +- .../policy/private/naplo/osztalyozo/tankor-pre.php | 11 +- .../public/naplo/dokumentum/dokumentum-pre.php | 5 + .../policy/public/naplo/dokumentum/dokumentum.php | 4 + .../policy/public/naplo/felveteli/level-pre.php | 48 + .../www/policy/public/naplo/felveteli/level.php | 3 + .../policy/public/naplo/felveteli/szobeli-pre.php | 46 + .../www/policy/public/naplo/felveteli/szobeli.php | 33 + .../policy/public/naplo/intezmeny/tanarok-pre.php | 55 + .../www/policy/public/naplo/intezmeny/tanarok.php | 7 + .../module-naplo/css/dokumentum/dokumentum.css | 16 + .../classic/module-naplo/css/felveteli/szobeli.css | 163 + .../module-naplo/css/intezmeny/kepzesOraterv.css | 8 +- .../classic/module-naplo/css/intezmeny/tanar.css | 2 +- .../classic/module-naplo/css/intezmeny/tanarok.css | 10 + .../www/skin/classic/module-naplo/html/base.phtml | 2 +- .../module-naplo/html/dokumentum/dokumentum.phtml | 149 + .../module-naplo/html/felveteli/szobeli.phtml | 521 +++ .../html/intezmeny/kepzesOraterv.phtml | 11 +- .../module-naplo/html/intezmeny/tanar.phtml | 8 + .../module-naplo/html/intezmeny/tanarok.phtml | 123 + .../module-naplo/html/orarend/orarend.phtml | 13 +- .../classic/module-naplo/html/share/face.phtml | 2 +- .../javascript/dokumentum/dokumentum.jquery.min.js | 3 + .../intezmeny/kepzesOraterv.jquery.min.js | 28 +- mayor-orig/mayor-portal/log/mayor-portal.rev | 2 +- mayor-orig/mayor-portal/update/rev004716-1.sh | 10 + .../www/include/modules/portal/base/rights.php | 6 +- .../www/include/modules/portal/share/hirek.php | 6 +- .../www/policy/private/portal/hirek/egyhir-pre.php | 4 + .../www/policy/private/portal/portal/hir-pre.php | 1 + .../www/policy/private/portal/portal/hir.php | 1 + .../policy/private/portal/portal/portal-pre.php | 1 + .../www/policy/public/portal/portal/hir-pre.php | 2 +- .../www/skin/classic/module-portal/css/portal.css | 11 +- .../classic/module-portal/html/hirek/egyhir.phtml | 35 +- .../classic/module-portal/html/share/hirek.phtml | 6 +- mayor-orig/mayor-wiki/log/mayor-wiki.rev | 2 +- mayor-orig/md5sum | 26 +- mayor-orig/rev.txt | 2 +- rev.txt | 2 +- 773 files changed, 48167 insertions(+), 152 deletions(-) create mode 100755 mayor-orig/mayor-base/bin/install-composer.sh create mode 100644 mayor-orig/mayor-base/update/pre004746-1-auth.sql create mode 100644 mayor-orig/mayor-base/update/pre004749-1.sh create mode 100644 mayor-orig/mayor-base/www/composer.json create mode 100644 mayor-orig/mayor-base/www/composer.lock create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/CHANGES.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/LICENSE.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/README.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/adapters/jquery.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/build-config.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/ckeditor.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/config.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/contents.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/lang/en.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/lang/hu.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/af.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/az.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/da.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/de-ch.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/de.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/el.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/en-au.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/en-gb.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/en.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/es-mx.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/es.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/et.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/eu.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/fo.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/fr-ca.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/gl.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/he.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/id.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/it.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/km.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/ko.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/no.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/oc.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/si.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/sq.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/sr-latn.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/sr.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/th.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/tt.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/a11yhelp/dialogs/lang/zh.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/about/dialogs/about.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/about/dialogs/logo_ckeditor.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/clipboard/dialogs/paste.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/colordialog/dialogs/colordialog.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/colordialog/dialogs/colordialog.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/copyformatting/cursors/cursor-disabled.svg create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/copyformatting/cursors/cursor.svg create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/copyformatting/styles/copyformatting.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/dialog/dialogDefinition.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/dialog/styles/dialog.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/div/dialogs/div.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/CHANGELOG.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/LICENSE.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/README.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/plugindefinition.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/_helpers/tools.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/authentication.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/exportpdf.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/configfilename.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/configfilename.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/emptyeditor.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/emptyeditor.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/integration.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/integration.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/integrations/easyimage.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/integrations/easyimage.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/notifications.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/notifications.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/notificationsasync.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/notificationsasync.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/paperformat.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/paperformat.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/readonly.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/readonly.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/stylesheets.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/stylesheets.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/tokenfetching.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/tokenfetching.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/tokentwoeditorscorrect.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/tokentwoeditorscorrect.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/tokentwoeditorswrong.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/tokentwoeditorswrong.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/tokenwithouturl.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/tokenwithouturl.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/wrongendpoint.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/manual/wrongendpoint.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/notification.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/resourcespaths.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/statistics.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/exportpdf/tests/stylesheets.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/find/dialogs/find.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/flash/dialogs/flash.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/flash/images/placeholder.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/forms/dialogs/button.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/forms/dialogs/checkbox.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/forms/dialogs/form.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/forms/dialogs/hiddenfield.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/forms/dialogs/radio.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/forms/dialogs/select.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/forms/dialogs/textarea.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/forms/dialogs/textfield.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/forms/images/hiddenfield.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/icons.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/icons_hidpi.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/iframe/dialogs/iframe.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/iframe/images/placeholder.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/image/dialogs/image.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/image/images/noimage.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/link/dialogs/anchor.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/link/dialogs/link.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/link/images/anchor.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/link/images/hidpi/anchor.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/liststyle/dialogs/liststyle.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/magicline/images/hidpi/icon.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/magicline/images/icon-rtl.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/magicline/images/icon.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/pagebreak/images/pagebreak.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/pastefromgdocs/filter/default.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/pastefromword/filter/default.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/pastetools/filter/common.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/pastetools/filter/image.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/preview/images/pagebreak.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/preview/preview.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/preview/styles/screen.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/scayt/CHANGELOG.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/scayt/LICENSE.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/scayt/README.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/scayt/dialogs/dialog.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/scayt/dialogs/options.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/scayt/dialogs/toolbar.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/scayt/skins/moono-lisa/scayt.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/showblocks/images/block_address.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/showblocks/images/block_blockquote.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/showblocks/images/block_div.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/showblocks/images/block_h1.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/showblocks/images/block_h2.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/showblocks/images/block_h3.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/showblocks/images/block_h4.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/showblocks/images/block_h5.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/showblocks/images/block_h6.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/showblocks/images/block_p.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/showblocks/images/block_pre.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/dialogs/smiley.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/angel_smile.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/angel_smile.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/angry_smile.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/angry_smile.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/broken_heart.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/broken_heart.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/confused_smile.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/confused_smile.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/cry_smile.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/cry_smile.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/devil_smile.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/devil_smile.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/embaressed_smile.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/embarrassed_smile.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/embarrassed_smile.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/envelope.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/envelope.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/heart.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/heart.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/kiss.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/kiss.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/lightbulb.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/lightbulb.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/omg_smile.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/omg_smile.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/regular_smile.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/regular_smile.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/sad_smile.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/sad_smile.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/shades_smile.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/shades_smile.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/teeth_smile.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/teeth_smile.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/thumbs_down.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/thumbs_down.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/thumbs_up.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/thumbs_up.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/tongue_smile.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/tongue_smile.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/tounge_smile.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/wink_smile.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/smiley/images/wink_smile.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/af.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/ar.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/az.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/bg.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/ca.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/cs.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/cy.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/da.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/de-ch.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/de.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/el.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/en-au.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/en-ca.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/en.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/eo.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/es-mx.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/es.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/et.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/eu.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/fa.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/fi.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/fr.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/gl.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/he.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/hr.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/hu.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/id.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/it.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/ja.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/km.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/ko.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/ku.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/lt.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/lv.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/nb.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/nl.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/no.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/oc.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/pl.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/pt.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/ro.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/ru.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/si.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/sk.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/sl.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/sq.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/sr-latn.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/sr.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/sv.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/th.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/tr.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/tt.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/ug.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/uk.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/vi.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/lang/zh.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/specialchar/dialogs/specialchar.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/table/dialogs/table.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/tableselection/styles/tableselection.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/tabletools/dialogs/tableCell.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/templates/dialogs/templates.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/templates/dialogs/templates.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/templates/templates/default.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/templates/templates/images/template1.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/templates/templates/images/template2.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/templates/templates/images/template3.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/widget/images/handle.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/wsc/LICENSE.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/wsc/README.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/wsc/dialogs/ciframe.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/wsc/dialogs/tmpFrameset.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/wsc/dialogs/wsc.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/wsc/dialogs/wsc.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/wsc/dialogs/wsc_ie.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/plugins/wsc/skins/moono-lisa/wsc.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/css/samples.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/img/github-top.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/img/header-bg.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/img/header-separator.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/img/logo.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/img/logo.svg create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/img/navigation-tip.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/index.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/js/sample.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/js/sf.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/ajax.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/api.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/appendto.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/assets/inlineall/logo.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/assets/outputxhtml/outputxhtml.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/assets/posteddata.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/assets/sample.jpg create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/assets/uilanguages/languages.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/datafiltering.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/dialog/assets/my_dialog.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/dialog/dialog.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/divreplace.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/enterkey/enterkey.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/htmlwriter/assets/outputforflash/outputforflash.fla create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/htmlwriter/assets/outputforflash/outputforflash.swf create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/htmlwriter/assets/outputforflash/swfobject.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/htmlwriter/outputforflash.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/htmlwriter/outputhtml.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/index.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/inlineall.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/inlinebycode.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/inlinetextarea.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/jquery.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/magicline/magicline.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/readonly.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/replacebyclass.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/replacebycode.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/sample.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/sample.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/sample_posteddata.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/tabindex.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/toolbar/toolbar.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/uicolor.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/uilanguages.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/wysiwygarea/fullpage.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/old/xhtmlstyle.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/toolbarconfigurator/css/fontello.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/toolbarconfigurator/font/LICENSE.txt create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/toolbarconfigurator/font/config.json create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/toolbarconfigurator/font/fontello.eot create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/toolbarconfigurator/font/fontello.svg create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/toolbarconfigurator/font/fontello.ttf create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/toolbarconfigurator/font/fontello.woff create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/toolbarconfigurator/index.html create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/toolbarconfigurator/js/abstracttoolbarmodifier.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/toolbarconfigurator/js/fulltoolbareditor.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/toolbarconfigurator/js/toolbarmodifier.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/toolbarconfigurator/js/toolbartextmodifier.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/toolbarconfigurator/lib/codemirror/LICENSE create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/toolbarconfigurator/lib/codemirror/codemirror.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/toolbarconfigurator/lib/codemirror/codemirror.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/toolbarconfigurator/lib/codemirror/javascript.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/toolbarconfigurator/lib/codemirror/neo.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/toolbarconfigurator/lib/codemirror/show-hint.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/samples/toolbarconfigurator/lib/codemirror/show-hint.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/skins/moono-lisa/dialog.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/skins/moono-lisa/dialog_ie.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/skins/moono-lisa/dialog_ie8.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/skins/moono-lisa/dialog_iequirks.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/skins/moono-lisa/editor.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/skins/moono-lisa/editor_gecko.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/skins/moono-lisa/editor_ie.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/skins/moono-lisa/editor_ie8.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/skins/moono-lisa/editor_iequirks.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/skins/moono-lisa/icons.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/skins/moono-lisa/icons_hidpi.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/skins/moono-lisa/images/arrow.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/skins/moono-lisa/images/close.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/skins/moono-lisa/images/hidpi/close.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/skins/moono-lisa/images/hidpi/lock-open.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/skins/moono-lisa/images/hidpi/lock.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/skins/moono-lisa/images/hidpi/refresh.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/skins/moono-lisa/images/lock-open.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/skins/moono-lisa/images/lock.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/skins/moono-lisa/images/refresh.png create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/skins/moono-lisa/images/spinner.gif create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/skins/moono-lisa/readme.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/styles.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/ckeditor/vendor/promise.js create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/LICENSE.TXT create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/README.md create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/changelog.txt create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/UploadHandler.php create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/ajax_calls.php create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/config/.htaccess create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/config/config.php create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/css/jquery.fileupload-noscript.css create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/css/jquery.fileupload-ui-noscript.css create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/css/jquery.fileupload-ui.css create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/css/jquery.fileupload.css create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/css/rtl-style.css create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/css/style.css create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/dialog.php create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/execute.php create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/force_download.php create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/clipboard_apply.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/clipboard_clear.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/copy.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/cut.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/date.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/dimension.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/down.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/download.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/duplicate.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/edit_img.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/file_edit.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/glyphicons-halflings-white.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/glyphicons-halflings.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/ac3.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/accdb.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/ade.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/adp.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/ai.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/aiff.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/avi.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/bmp.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/c4d.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/css.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/csv.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/default.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/dmg.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/doc.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/docx.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/dwg.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/dxf.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/favicon.ico create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/fla.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/flv.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/folder.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/folder_back.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/gif.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/gz.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/html.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/iso.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/jpeg.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/jpg.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/log.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/m4a.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/mdb.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/mid.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/mov.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/mp3.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/mp4.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/mpeg.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/mpg.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/odb.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/odf.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/odg.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/odp.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/ods.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/odt.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/ogg.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/otg.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/otp.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/ots.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/ott.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/pdf.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/png.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/ppt.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/pptx.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/psd.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/rar.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/rtf.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/skp.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/sql.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/stp.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/svg.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/tar.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/tiff.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/txt.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/vwx.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/wav.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/webm.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/wma.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/xhtml.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/xls.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/xlsx.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/xml.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico/zip.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/ac3.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/accdb.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/ade.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/adp.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/ai.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/aiff.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/avi.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/bmp.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/css.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/csv.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/default.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/dmg.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/doc.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/docx.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/favicon.ico create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/fla.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/flv.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/folder.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/folder_back.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/gif.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/gz.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/html.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/iso.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/jpeg.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/jpg.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/log.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/m4a.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/mdb.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/mid.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/mov.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/mp3.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/mp4.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/mpeg.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/mpg.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/odb.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/odf.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/odg.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/odp.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/ods.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/odt.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/ogg.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/otg.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/otp.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/ots.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/ott.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/pdf.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/png.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/ppt.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/pptx.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/psd.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/rar.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/rtf.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/sql.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/svg.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/tar.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/tiff.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/txt.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/wav.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/webm.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/wma.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/xhtml.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/xls.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/xlsx.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/xml.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/ico_dark/zip.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/info.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/key.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/label.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/loading.gif create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/logo.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/preview.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/processing.gif create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/rename.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/size.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/sort.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/storing_animation.gif create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/trans.jpg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/up.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/upload.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/url.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/img/zip.png create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/include/FtpClient.php create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/include/FtpException.php create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/include/FtpWrapper.php create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/include/Response.php create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/include/ftp_class.php create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/include/mime_type_lib.php create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/include/php_image_magician.php create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/include/utils.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/index.php create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/include.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-angular.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-audio.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-image.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-jquery-ui.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-process.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-ui.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-validate.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-video.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.iframe-transport.js create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/modernizr.custom.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/plugins.js create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/vendor/jquery.ui.widget.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/az_AZ.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/bg_BG.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/ca.php create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/cs.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/da.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/de.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/el_GR.php create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/en_EN.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/es.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/fa.php create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/fr_FR.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/he_IL.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/hr.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/hu_HU.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/id.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/it.php create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/ja.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/languages.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/lt.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/mn_MN.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/nb_NO.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/nl.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/nn_NO.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/pl.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/pt_BR.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/pt_PT.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/ro.php create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/ru.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/sk.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/sl.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/sv_SE.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/th_TH.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/tr_TR.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/uk_UA.php create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/vi.php create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/lang/zh_CN.php create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/plugin.min.js create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/svg/icon-a.svg create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/svg/icon-b.svg create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/svg/icon-c.svg create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/svg/icon-d.svg create mode 100644 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/svg/svg.svg create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/upload.php create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/source/source.txt create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/thumbs/thumbs.txt create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/tinymce/plugins/responsivefilemanager/img/insertfile.gif create mode 100755 mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/tinymce/plugins/responsivefilemanager/plugin.min.js create mode 100644 mayor-orig/mayor-naplo/update/pre004721-1-intezmeny.sql create mode 100644 mayor-orig/mayor-naplo/update/pre004722-1-naplo.sql create mode 100644 mayor-orig/mayor-naplo/update/pre004722-2-intezmeny.sql create mode 100644 mayor-orig/mayor-naplo/update/pre004725-1-naplo.sql create mode 100644 mayor-orig/mayor-naplo/update/pre004734-1-naplo.sql create mode 100644 mayor-orig/mayor-naplo/update/pre004735-1-intezmeny.sql create mode 100644 mayor-orig/mayor-naplo/update/pre004736-1-intezmeny.sql create mode 100644 mayor-orig/mayor-naplo/update/pre004737-1-naplo.sql create mode 100644 mayor-orig/mayor-naplo/update/pre004742-1-intezmeny.sql create mode 100644 mayor-orig/mayor-naplo/update/pre004772-1-naplo.sql create mode 100644 mayor-orig/mayor-naplo/update/pre004772-2.sh create mode 100644 mayor-orig/mayor-naplo/update/pre004775-1-naplo.sql create mode 100644 mayor-orig/mayor-naplo/www/include/modules/naplo/dokumentum/dokumentum.php create mode 100644 mayor-orig/mayor-naplo/www/include/modules/naplo/felveteli/level.php create mode 100644 mayor-orig/mayor-naplo/www/include/modules/naplo/felveteli/levelIgazgato.php create mode 100644 mayor-orig/mayor-naplo/www/include/modules/naplo/share/felveteli.php create mode 100644 mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/dokumentum/dokumentum.php create mode 100644 mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/felveteli/szobeli.php create mode 100644 mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/tanarok.php create mode 100644 mayor-orig/mayor-naplo/www/policy/private/naplo/dokumentum/dokumentum-pre.php create mode 100644 mayor-orig/mayor-naplo/www/policy/private/naplo/dokumentum/dokumentum.php create mode 100644 mayor-orig/mayor-naplo/www/policy/private/naplo/dokumentum/tinyfilemanager.php create mode 100644 mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/level-pre.php create mode 100644 mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/level.php create mode 100644 mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/levelIgazgato-pre.php create mode 100644 mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/levelIgazgato.php create mode 100644 mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/szobeli-pre.php create mode 100644 mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/szobeli.php create mode 100644 mayor-orig/mayor-naplo/www/policy/public/naplo/dokumentum/dokumentum-pre.php create mode 100644 mayor-orig/mayor-naplo/www/policy/public/naplo/dokumentum/dokumentum.php create mode 100644 mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/level-pre.php create mode 100644 mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/level.php create mode 100644 mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/szobeli-pre.php create mode 100644 mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/szobeli.php create mode 100644 mayor-orig/mayor-naplo/www/policy/public/naplo/intezmeny/tanarok-pre.php create mode 100644 mayor-orig/mayor-naplo/www/policy/public/naplo/intezmeny/tanarok.php create mode 100644 mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/dokumentum/dokumentum.css create mode 100644 mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/felveteli/szobeli.css create mode 100644 mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/tanarok.css create mode 100644 mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/dokumentum/dokumentum.phtml create mode 100644 mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/felveteli/szobeli.phtml create mode 100644 mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/tanarok.phtml create mode 100644 mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/dokumentum/dokumentum.jquery.min.js create mode 100644 mayor-orig/mayor-portal/update/rev004716-1.sh create mode 120000 mayor-orig/mayor-portal/www/policy/private/portal/portal/hir-pre.php create mode 120000 mayor-orig/mayor-portal/www/policy/private/portal/portal/hir.php diff --git a/mayor-orig/mayor-base/bin/install-composer.sh b/mayor-orig/mayor-base/bin/install-composer.sh new file mode 100755 index 00000000..a61aff80 --- /dev/null +++ b/mayor-orig/mayor-base/bin/install-composer.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')" +php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" +ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")" + +if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ] +then + >&2 echo 'ERROR: Invalid installer checksum' + rm composer-setup.php + exit 1 +fi + +php composer-setup.php --quiet +RESULT=$? +rm composer-setup.php +exit $RESULT diff --git a/mayor-orig/mayor-base/bin/update.sh b/mayor-orig/mayor-base/bin/update.sh index 39338119..507347d4 100644 --- a/mayor-orig/mayor-base/bin/update.sh +++ b/mayor-orig/mayor-base/bin/update.sh @@ -160,11 +160,12 @@ if [ "$EXECONLY" != "1" ]; then rm -rf $TMPDIR/* fi cd $TMPDIR - # Az md5sum állomány leszedáse + # Az md5sum állomány + PHP_VERSION=`php -r "echo phpversion();"` if [ -z $VERSION ]; then - wget "http://www.mayor.hu/download/md5sum" + wget --output-file=md5sum "http://www.mayor.hu/download/md5sum?php_version=${PHP_VERSION}" else - wget "http://www.mayor.hu/download/$VERSION/md5sum" + wget --output-file=md5sum "http://www.mayor.hu/download/$VERSION/md5sum?php_version=${PHP_VERSION}" if [[ ! $HTTP_SERVER =~ .*$VERSION.* ]]; then HTTP_SERVER="$HTTP_SERVER/$VERSION"; fi fi if [ $? != 0 ]; then exit 5; fi @@ -220,6 +221,23 @@ echo -e "\nMaYoR TeX formátum állomány újragenerálása... " cd $BASEDIR/print/module-naplo/tex/ && fmtutil-sys --cnffile $BASEDIR/print/module-naplo/tex/mayor.cnf --fmtdir $BASEDIR/print/module-naplo/ --byfmt mayor > /dev/null 2>&1 echo -e "\nMaYoR XeTeX formátum állomány újragenerálása... " cd $BASEDIR/print/module-naplo/xetex/ && fmtutil-sys --cnffile $BASEDIR/print/module-naplo/xetex/mayor-xetex.cnf --fmtdir $BASEDIR/print/module-naplo/ --byfmt mayor-xetex > /dev/null 2>&1 + +if [ -f "$BASEDIR/bin/composer.phar" ]; then + echo "Composer ok." +else + echo "Composer install..." + cd $BASEDIR/bin/ && bash install-composer.sh +fi +if [ -f "$BASEDIR/bin/composer.phar" ]; then + echo "Composer ok." + echo "Composer installed." + echo "Composer optimize: " + cd $BASEDIR/www/; php ../bin/composer.phar --no-ansi --no-dev --no-interaction --no-plugins --no-progress --no-scripts --optimize-autoloader install + echo "Composer deploy done." +else + echo "ERROR: Composer install FAILED! Contact support support@mayor.hu" +fi + cd $PWDTEX echo 'kész.' diff --git a/mayor-orig/mayor-base/install/base/mysql/mayor-auth.sql b/mayor-orig/mayor-base/install/base/mysql/mayor-auth.sql index 7e0b1731..b790f531 100644 --- a/mayor-orig/mayor-base/install/base/mysql/mayor-auth.sql +++ b/mayor-orig/mayor-base/install/base/mysql/mayor-auth.sql @@ -20,7 +20,7 @@ CREATE TABLE accounts ( userPassword VARBINARY(40) DEFAULT NULL, studyId VARCHAR(12), mail VARCHAR(64), - telephoneNumber VARCHAR(16), + telephoneNumber VARCHAR(32), shadowLastChange INT UNSIGNED, shadowMin TINYINT UNSIGNED, shadowMax TINYINT UNSIGNED, diff --git a/mayor-orig/mayor-base/log/mayor-base.rev b/mayor-orig/mayor-base/log/mayor-base.rev index 7e1fd933..1a48a10f 100644 --- a/mayor-orig/mayor-base/log/mayor-base.rev +++ b/mayor-orig/mayor-base/log/mayor-base.rev @@ -1 +1 @@ -4716 +4787 diff --git a/mayor-orig/mayor-base/update/pre004746-1-auth.sql b/mayor-orig/mayor-base/update/pre004746-1-auth.sql new file mode 100644 index 00000000..6cead200 --- /dev/null +++ b/mayor-orig/mayor-base/update/pre004746-1-auth.sql @@ -0,0 +1 @@ +ALTER TABLE `accounts` MODIFY `telephoneNumber` varchar(32) COLLATE utf8_hungarian_ci DEFAULT NULL; diff --git a/mayor-orig/mayor-base/update/pre004749-1.sh b/mayor-orig/mayor-base/update/pre004749-1.sh new file mode 100644 index 00000000..01c6438e --- /dev/null +++ b/mayor-orig/mayor-base/update/pre004749-1.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +#if [ "$BASEDIR" == "" ] +#then +# echo "Composer telepítés meghiúsult. (Üres BASEDIR változó)" +#else +# echo 'Composer telepítés' +# if [ -f "$BASEDIR/bin/composer.phar" ]; then +# echo "Composer ok." +# else +# echo "Composer install..." +# if [ -f "$BASEDIR/bin/install-composer.sh" ]; then +# cd $BASEDIR/bin/ && bash install-composer.sh +# else +# echo "Composer install bash script: not exists... waiting for next MaYoR upgrade!" +# fi +# fi +#fi diff --git a/mayor-orig/mayor-base/www/composer.json b/mayor-orig/mayor-base/www/composer.json new file mode 100644 index 00000000..c31bbb16 --- /dev/null +++ b/mayor-orig/mayor-base/www/composer.json @@ -0,0 +1,17 @@ +{ + "name": "mayor/mayor", + "description": "MaYoR elektronikus napló", + "type": "project", + "license": "GPL-2.0-or-later", + "authors": [ + { + "name": "MaYoR Support", + "email": "support@mayor.hu" + } + ], + "require": { + "monolog/monolog": "^1.25", + "rollbar/rollbar": "^1", + "sentry/sentry": "^1.0" + } +} diff --git a/mayor-orig/mayor-base/www/composer.lock b/mayor-orig/mayor-base/www/composer.lock new file mode 100644 index 00000000..81b5800b --- /dev/null +++ b/mayor-orig/mayor-base/www/composer.lock @@ -0,0 +1,287 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "dd03b56db171647787fea71805be6b6d", + "packages": [ + { + "name": "monolog/monolog", + "version": "1.26.0", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "2209ddd84e7ef1256b7af205d0717fb62cfc9c33" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/2209ddd84e7ef1256b7af205d0717fb62cfc9c33", + "reference": "2209ddd84e7ef1256b7af205d0717fb62cfc9c33", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "psr/log": "~1.0" + }, + "provide": { + "psr/log-implementation": "1.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^2.4.9 || ^3.0", + "doctrine/couchdb": "~1.0@dev", + "graylog2/gelf-php": "~1.0", + "php-amqplib/php-amqplib": "~2.4", + "php-console/php-console": "^3.1.3", + "phpstan/phpstan": "^0.12.59", + "phpunit/phpunit": "~4.5", + "ruflin/elastica": ">=0.90 <3.0", + "sentry/sentry": "^0.13", + "swiftmailer/swiftmailer": "^5.3|^6.0" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-mongo": "Allow sending log messages to a MongoDB server", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "php-console/php-console": "Allow sending log messages to Google Chrome", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server", + "sentry/sentry": "Allow sending log messages to a Sentry server" + }, + "type": "library", + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "http://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/1.26.0" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2020-12-14T12:56:38+00:00" + }, + { + "name": "psr/log", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.4" + }, + "time": "2021-05-03T11:20:27+00:00" + }, + { + "name": "rollbar/rollbar", + "version": "v1.8.1", + "source": { + "type": "git", + "url": "https://github.com/rollbar/rollbar-php.git", + "reference": "8a57ad9574d85bd818eaedfc8049fdcb16795f31" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/rollbar/rollbar-php/zipball/8a57ad9574d85bd818eaedfc8049fdcb16795f31", + "reference": "8a57ad9574d85bd818eaedfc8049fdcb16795f31", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "monolog/monolog": "^1", + "psr/log": "^1" + }, + "require-dev": { + "codeclimate/php-test-reporter": "dev-master", + "mockery/mockery": "0.9.*", + "packfire/php5.3-compat": "*", + "phpmd/phpmd": "@stable", + "phpunit/phpunit": "4.8.*", + "squizlabs/php_codesniffer": "2.*" + }, + "suggest": { + "fluent/logger": "Needed to use the 'fluent' handler for fluentd support", + "packfire/php5.3-compat": "for backward compatibility with PHP 5.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Rollbar\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Rollbar, Inc.", + "email": "support@rollbar.com", + "role": "Developer" + } + ], + "description": "Monitors errors and exceptions and reports them to Rollbar", + "homepage": "http://github.com/rollbar/rollbar-php", + "keywords": [ + "debugging", + "errors", + "exceptions", + "logging", + "monitoring" + ], + "support": { + "email": "support@rollbar.com", + "issues": "https://github.com/rollbar/rollbar-php/issues", + "source": "https://github.com/rollbar/rollbar-php/tree/v1.8.1" + }, + "time": "2019-05-06T11:31:11+00:00" + }, + { + "name": "sentry/sentry", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/getsentry/sentry-php.git", + "reference": "159eeaa02bb2ef8a8ec669f3c88e4bff7e6a7ffe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/159eeaa02bb2ef8a8ec669f3c88e4bff7e6a7ffe", + "reference": "159eeaa02bb2ef8a8ec669f3c88e4bff7e6a7ffe", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": "^5.3|^7.0" + }, + "conflict": { + "raven/raven": "*" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^1.8.0", + "monolog/monolog": "^1.0", + "phpunit/phpunit": "^4.8.35 || ^5.7" + }, + "suggest": { + "ext-hash": "*", + "ext-json": "*", + "ext-mbstring": "*", + "monolog/monolog": "Automatically capture Monolog events as breadcrumbs" + }, + "bin": [ + "bin/sentry" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.11.x-dev" + } + }, + "autoload": { + "psr-0": { + "Raven_": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "David Cramer", + "email": "dcramer@gmail.com" + } + ], + "description": "A PHP client for Sentry (http://getsentry.com)", + "homepage": "http://getsentry.com", + "keywords": [ + "log", + "logging" + ], + "support": { + "issues": "https://github.com/getsentry/sentry-php/issues", + "source": "https://github.com/getsentry/sentry-php/tree/1.11.0" + }, + "time": "2020-02-12T18:38:11+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [], + "plugin-api-version": "2.0.0" +} diff --git a/mayor-orig/mayor-base/www/include/backend/ldap/password/changePassword.php b/mayor-orig/mayor-base/www/include/backend/ldap/password/changePassword.php index 22ace5ca..3821c06c 100644 --- a/mayor-orig/mayor-base/www/include/backend/ldap/password/changePassword.php +++ b/mayor-orig/mayor-base/www/include/backend/ldap/password/changePassword.php @@ -23,7 +23,7 @@ function changeMyPassword($userAccount, $userPassword, $newPassword, $toPolicy = if ($ds) { $b_ok = ldap_bind($ds,$userDn,$userPassword); if ($b_ok) { - $info['userPassword'][0] = '{crypt}' . crypt($newPassword); + $info['userPassword'][0] = '{crypt}' . crypt($newPassword, __SALTVALUE); // Ezekre nincs jogosultsága a felhasználónak, nem változnak: // _SHADOWMIN, _SHADOWMAX, _SHADOWWARNING, _SHADOWINACTIVE $info['shadowlastchange'][0] = $shadowLastChange; @@ -69,7 +69,7 @@ function changePassword($userAccount, $newPassword, $toPolicy = '') { if ($ds) { $b_ok = ldap_bind($ds,_USERDN,_USERPASSWORD); if ($b_ok) { - $info['userPassword'][0] = '{crypt}' . crypt($newPassword); + $info['userPassword'][0] = '{crypt}' . crypt($newPassword, __SALTVALUE); // Ezekre nincs jogosultsága a felhasználónak, nem változnak: // _SHADOWMIN, _SHADOWMAX, _SHADOWWARNING, _SHADOWINACTIVE $info['shadowlastchange'][0] = $shadowLastChange; diff --git a/mayor-orig/mayor-base/www/include/backend/ldap/session/createAccount.php b/mayor-orig/mayor-base/www/include/backend/ldap/session/createAccount.php index 79f40530..3089929f 100644 --- a/mayor-orig/mayor-base/www/include/backend/ldap/session/createAccount.php +++ b/mayor-orig/mayor-base/www/include/backend/ldap/session/createAccount.php @@ -1,8 +1,6 @@ release = _MAYORREV; + $sentryClient->environment = _ENVIRONMENT; + $error_handler = new Raven_ErrorHandler($sentryClient); + $error_handler->registerExceptionHandler(); + $error_handler->registerErrorHandler(); + $error_handler->registerShutdownFunction(); + } + + if (defined('_MAYOR_REMOTE_LOGGER_ROLLBAR_ACCESSTOKEN')) { + $rollbarconfig = array( + 'access_token' => _MAYOR_REMOTE_LOGGER_ROLLBAR_ACCESSTOKEN, + 'environment' => _ENVIRONMENT, + 'root' => _BASEDIR, + 'use_error_reporting' => true + ); + + Rollbar::init($rollbarconfig); + if (is_array($_SESSION['alert']) && count($_SESSION['alert'])>0) { + Rollbar::log(Level::INFO, 'mayor alert msg', array('revision'=>_MAYORREV)); + } + } +} ?> diff --git a/mayor-orig/mayor-base/www/include/base/log.php b/mayor-orig/mayor-base/www/include/base/log.php index 4ea4f4f7..0e949ac1 100644 --- a/mayor-orig/mayor-base/www/include/base/log.php +++ b/mayor-orig/mayor-base/www/include/base/log.php @@ -28,9 +28,10 @@ fputs($fp,$msg); fclose($fp); } else { - echo 'fatal error 004'; - die(); + // echo 'fatal error 004'; + // die(); } } } + ?> diff --git a/mayor-orig/mayor-base/www/include/base/mysql.php b/mayor-orig/mayor-base/www/include/base/mysql.php index e4322dc8..8e692a44 100644 --- a/mayor-orig/mayor-base/www/include/base/mysql.php +++ b/mayor-orig/mayor-base/www/include/base/mysql.php @@ -1,6 +1,6 @@ 'Write', 'fv' => $SET['fv'])); } if ($lr === false) { - if ($SET['detailed'] === true || __DETAILED) $_SESSION['alert'][] = 'message:sql_connect_failure:db_query/'.$SET['fv'].':'.$SET['modul'].':'.$q; + if ($SET['detailed'] === true || (defined('__DETAILED') && __DETAILED)) $_SESSION['alert'][] = 'message:sql_connect_failure:db_query/'.$SET['fv'].':'.$SET['modul'].':'.$q; else $_SESSION['alert'][] = 'message:sql_connect_failure:db_query/'.$SET['fv']; return false; } @@ -189,7 +189,7 @@ } } if ( - ($SET['detailed'] === true || __DETAILED) + ($SET['detailed'] === true || (defined('__DETAILED') && __DETAILED)) && strpos($q_pattern, '%s') !== false && (strpos($q_pattern, '`%s`') === false && strpos($q_pattern, "'%s'") === false) ) $_SESSION['alert'][] = 'message:lehet hiba?:db_query/'.$SET['fv'].':'.$SET['modul'].':'.$q_pattern; @@ -204,7 +204,7 @@ $_insert_id = mysql_insert_id($lr); $_affected_rows = mysql_affected_rows($lr); } - define(MYSQL_LOGGER,false); + define('MYSQL_LOGGER',false); if (MYSQL_LOGGER === true) { $filename = '/tmp/mysql.log'; $fp = fopen($filename, "a+"); @@ -241,7 +241,7 @@ /* WARNING HANDLER */ if (!$r) { // if ($SET['detailed'] === true || __DETAILED) $_SESSION['alert'][] = 'message:sql_query_failure:'.$SET['fv'].':'.':'.$q; - if ($SET['detailed'] === true || __DETAILED) { + if ($SET['detailed'] === true || (defined('__DETAILED') && __DETAILED)) { if (MYSQLI_ENABLED===true) { $_SESSION['alert'][] = 'message:sql_query_failure:mysqli:'.$SET['fv'].':'.mysqli_error($lr).':'.$q; } else { diff --git a/mayor-orig/mayor-base/www/include/base/rights.php b/mayor-orig/mayor-base/www/include/base/rights.php index c30a927d..1fe87148 100644 --- a/mayor-orig/mayor-base/www/include/base/rights.php +++ b/mayor-orig/mayor-base/www/include/base/rights.php @@ -383,7 +383,7 @@ function validUser($sessionID,$policy,$skin='',$lang='') { } // --------- //Breadcrumb - if (count($_SESSION['breadcrumb'])>10) array_shift($_SESSION['breadcrumb']); + if (is_array($_SESSION['breadcrumb']) && count($_SESSION['breadcrumb'])>10) array_shift($_SESSION['breadcrumb']); $_SESSION['breadcrumb'][] = array('page'=>"$page",'sub'=>"$sub",'f'=>"$f"); // --------- if (file_exists($includeFile)) require($includeFile); @@ -396,5 +396,4 @@ function validUser($sessionID,$policy,$skin='',$lang='') { $_DEBUG = ob_get_contents(); ob_end_clean(); - ?> \ No newline at end of file diff --git a/mayor-orig/mayor-base/www/include/base/var.php b/mayor-orig/mayor-base/www/include/base/var.php index fda47dd2..98d4908a 100644 --- a/mayor-orig/mayor-base/www/include/base/var.php +++ b/mayor-orig/mayor-base/www/include/base/var.php @@ -75,6 +75,9 @@ case 'email': $return = filter_var($IN, FILTER_VALIDATE_EMAIL); break; + case 'url': + $return = filter_var($IN, FILTER_VALIDATE_URL); + break; case 'userAccount': $return = (preg_match("#([a-z]|[A-Z]|[0-9]| |\.|,|_|[űáäéúőóüöíŰÁÄÉÚŐÓÜÖÍäÄ]|-|@)*$#", $IN) != false) ? $IN : $default; break; diff --git a/mayor-orig/mayor-base/www/include/share/auth/base.php b/mayor-orig/mayor-base/www/include/share/auth/base.php index 8ff27f5e..b5143af5 100644 --- a/mayor-orig/mayor-base/www/include/share/auth/base.php +++ b/mayor-orig/mayor-base/www/include/share/auth/base.php @@ -47,8 +47,7 @@ $ret = db_query($query, array('fv' => 'newSession', 'modul' => 'login', 'result' => 'idonly', 'values' => array($sessionID)), $lr); if (is_array($ret) && count($ret) > 0) { reset($ret); - while ((list($key, $_policy) = each($ret)) && $toRegister) { - //while ((list($_policy) = m_ysql_fetch_row($r)) && $toRegister) { + while ((list($key, $_policy) = each($ret)) && $toRegister) { // --TODO if ($_policy == $policy) $toRegister = false; // mégsem kell bejegyezni, már van; és ez az. $sessionID=$sessionID // else be kell jegyezni, de ezt a $sessionID-t, nem generálunk diff --git a/mayor-orig/mayor-base/www/include/share/net/googleapi.php b/mayor-orig/mayor-base/www/include/share/net/googleapi.php index bfe3642d..5d8e09fe 100644 --- a/mayor-orig/mayor-base/www/include/share/net/googleapi.php +++ b/mayor-orig/mayor-base/www/include/share/net/googleapi.php @@ -21,18 +21,35 @@ function mayorGoogleApiAuth() { $client->setRedirectUri($redirect_uri); $client->setScopes('email'); + + try { $payload = $client->verifyIdToken($_GET['id_token']); } catch(Exception $e) { $_SESSION['alert'][] = 'info::googleapi SDK hiba: ' . $e->getMessage(); } + if (isset($payload['sub'])) { // subject $_SESSION['googleapi_object'] = $payload; // mayor auth start $accountInformation=array(); $toPolicy = 'public'; $data = getUserByGoogleSub($payload['sub']); // subject=google user id - if ($data === false) { + if ($data === false || is_null($data)) { + // allow automatic authentication through these domains: + if (in_array($payload['hd'], array('kanizsay.sulinet.hu','kanizsay.edu.hu','vmg.sulinet.hu','vmg.edu.hu'))) { + $_REGISTER['googleSub'] = $payload['sub']; + $_REGISTER['googleUserCn'] = $payload['name']; + $_REGISTER['googleUserEmail'] = $payload['email']; + $registered = googleapiGrant_light($_REGISTER); + if ($registered===true) { + $data = getUserByGoogleSub($payload['sub']); // subject=google user id + if (is_array($data)) { + setGoogleToken($payload['sub'],$_GET['id_token']); // a verifyIdToken igazolja + return array('userAccount'=>$data['userAccount'],'toPolicy'=>$data['policy'],'googleUserEmail'=>$data['googleUserEmail'],'studyId'=>$data['studyId'],'googleUserCn'=>$data['googleUserCn'],'accessToken'=>$accessToken); + } + } + } $_SESSION['alert'][] = 'info:Nincs ilyen user (még) a MaYoR-ral összekötve, kérjük jelentkezz be jelszóval!'; } elseif (is_array($data)) { // Ha van, akkor ki az? Mert ő bemehet. @@ -62,4 +79,57 @@ function setGoogleToken($googleSub, $id_token) { $_SESSION['googleapi_id_token'] = $id_token; } -?> +function googleapiGrant_light($ADAT) { + + require_once('include/modules/session/search/searchAccount.php'); + + if ($ADAT['googleSub']=='') return false; + if ($ADAT['googleUserEmail']=='') return false; + + $searchAttrList = array('userCn', 'userAccount', 'studyId'); + + $attr = 'mail'; + $pattern = $ADAT['googleUserEmail']; + $searchResult = searchAccount($attr, $pattern, $searchAttrList, 'private'); + + if ($searchResult['count']!==1) { + // több ugyanolyan oktatási azonosítóval bíró user van, így nem autholjuk be + return false; + } + + $userAccount = $searchResult[0]['userAccount'][0]; + $studyId = $searchResult[0]['studyId'][0]; + $policy = 'private'; + +// version b, using naplo +/* + $q = "SELECT oId FROM tanar WHERE email='%s'"; + $v = array($ADAT['googleUserEmail']); + $studyId = $oktId = db_query($q,array('debug'=>false,'fv'=>'googleapiGrant_light','modul'=>'naplo_intezmeny','result'=>'value','values'=>$v)); + + if ($studyId=='') return false; + + if ($AUTH[_POLICY]['backend'] == 'ad') $searchAttrList = array('userCn', 'userAccount', 'uidNumber', 'studyId'); + else $searchAttrList = array('userCn', 'userAccount', 'studyId'); + + $attr = 'studyId'; + $pattern = $studyId; + $searchResult = searchAccount($attr, $pattern, $searchAttrList, 'private'); + + if ($searchResult['count']!==1) { + // több ugyanolyan oktatási azonosítóval bíró user van, így nem autholjuk be + return false; + } + + $userAccount = $searchResult[0]['userAccount'][0]; + $policy = 'private'; +*/ + $q = "INSERT IGNORE INTO googleConnect (userAccount,policy,googleSub,googleUserCn,googleUserEmail,studyId) VALUES ('%s','%s','%s','%s','%s','%s')"; + $v = array('userAccount'=>$userAccount,'policy'=>$policy,'googleSub'=>$ADAT['googleSub'],$ADAT['googleUserCn'],$ADAT['googleUserEmail'],$studyId); + $r = db_query($q,array('debug'=>false,'fv'=>'googleapiGrant','modul'=>'login','result'=>'insert','values'=>$v)); + + return ($r!==false) ? true : false; + +} + +?> \ No newline at end of file diff --git a/mayor-orig/mayor-base/www/include/share/session/base.php b/mayor-orig/mayor-base/www/include/share/session/base.php index 337c72df..1e952518 100644 --- a/mayor-orig/mayor-base/www/include/share/session/base.php +++ b/mayor-orig/mayor-base/www/include/share/session/base.php @@ -86,7 +86,7 @@ else $return[] = $_eArr; } } else $cacheable = false; - if (count($r)>0) return $return; + if (is_array($r) && count($r)>0) return $return; else { $return = array(); if (is_array($AUTH[$toPolicy]['categories'])) @@ -144,7 +144,7 @@ $backendAttrDef[$attr]['rights'] = $rights; } else $rights = $def['rights']; - if ($rights[_ACCESS_AS] != '-') $attrList[] = $attr; + if (defined('_ACCESS_AS') && $rights[_ACCESS_AS] != '-') $attrList[] = $attr; } return array($attrList,$backendAttrDef); diff --git a/mayor-orig/mayor-base/www/index.php b/mayor-orig/mayor-base/www/index.php index 6db3d23e..1f50a99c 100644 --- a/mayor-orig/mayor-base/www/index.php +++ b/mayor-orig/mayor-base/www/index.php @@ -12,7 +12,12 @@ require('include/base/str.php'); require('include/base/log.php'); require('include/alert/base.php'); - if ( defined('__TESTERRORREPORTER') && __TESTERRORREPORTER===true) require('include/base/error.php'); + if (version_compare(PHP_VERSION, '5.3.0', '>')) { + if (file_exists('vendor/autoload.php')) { + require_once('vendor/autoload.php'); + require_once('include/base/error.php'); + } + } require('include/base/rights.php'); require('include/base/login.php'); require('include/menu/base.php') ; diff --git a/mayor-orig/mayor-base/www/lang/hu_HU/base/base.php b/mayor-orig/mayor-base/www/lang/hu_HU/base/base.php index c95d417b..06d99596 100644 --- a/mayor-orig/mayor-base/www/lang/hu_HU/base/base.php +++ b/mayor-orig/mayor-base/www/lang/hu_HU/base/base.php @@ -8,7 +8,7 @@ */ define('_MAIN_TITLE','MaYoR'); -define('_MAIN_FOOTER','MaYoR - 2002-2020 © GPL'); +define('_MAIN_FOOTER','MaYoR - 2002-2021 © GPL'); define('_TANAR','tanár'); define('_DIAK','diák'); diff --git a/mayor-orig/mayor-base/www/policy/private/session/googleapi-pre.php b/mayor-orig/mayor-base/www/policy/private/session/googleapi-pre.php index 49438dcc..62350992 100644 --- a/mayor-orig/mayor-base/www/policy/private/session/googleapi-pre.php +++ b/mayor-orig/mayor-base/www/policy/private/session/googleapi-pre.php @@ -94,7 +94,7 @@ if ($ADAT['googleSub']=='') return 0; $q = "INSERT IGNORE INTO googleConnect (userAccount,policy,googleSub,googleUserCn,googleUserEmail,studyId) VALUES ('%s','%s','%s','%s','%s','%s')"; $v = array('userAccount'=>_USERACCOUNT,'policy'=>_POLICY,'googleSub'=>$ADAT['googleSub'],_USERACCOUNT.' ('.$ADAT['googleUserCn'].')',$ADAT['googleUserEmail'],_STUDYID); - return db_query($q,array('debug'=>true,'fv'=>'googleapiGrant','modul'=>'login','result'=>'insert','values'=>$v)); + return db_query($q,array('debug'=>false,'fv'=>'googleapiGrant','modul'=>'login','result'=>'insert','values'=>$v)); } ?> \ No newline at end of file diff --git a/mayor-orig/mayor-base/www/policy/public/auth/login.php b/mayor-orig/mayor-base/www/policy/public/auth/login.php index c86bf24b..c80a0288 100644 --- a/mayor-orig/mayor-base/www/policy/public/auth/login.php +++ b/mayor-orig/mayor-base/www/policy/public/auth/login.php @@ -10,7 +10,7 @@ else putAlreadyLoggedIn(); - if ($_SESSION['authStatus'] == _AUTH_FAILURE) { + if (defined('_AUTH_FAILURE') && $_SESSION['authStatus'] == _AUTH_FAILURE) { putElfelejtettJelszoForm($ADAT); } diff --git a/mayor-orig/mayor-base/www/skin/classic/base/css/base.css b/mayor-orig/mayor-base/www/skin/classic/base/css/base.css index 4ee80f46..6bea2762 100644 --- a/mayor-orig/mayor-base/www/skin/classic/base/css/base.css +++ b/mayor-orig/mayor-base/www/skin/classic/base/css/base.css @@ -353,8 +353,8 @@ #mayorGlobalLogin span.failed { color: rgb(255,215,0);; text-shadow: 0px 0px 2px #ff0000;} #mayorGlobalLogin:hover span.failed { color: rgb(255,235,0); } - #mayorGlobalLogin form.fb button:hover span { color: #3B5998; } - #mayorGlobalLogin form.googleapi button:hover span { color: red; } + #mayorGlobalLogin form.fb button:hover span { color: #3B5998; cursor: pointer;} + #mayorGlobalLogin form.googleapi button:hover span { color: red; cursor: pointer; } #mayorGlobalLogin div.large { font-size:40px; padding:10px; color: #eeeeee;} #mayorGlobalLogin div.large:hover { font-size:40px; padding:10px; color: white; } @@ -373,7 +373,7 @@ height:13px; font-size:13px; } - #mayorGlobalLogin form button.dologin:hover span { color: lightgreen; } + #mayorGlobalLogin form button.dologin:hover span { color: lightgreen; cursor: pointer;} #mayorGlobalLogin form button.dologin.hint span { color: orange; -webkit-animation:colorchange 1s infinite alternate; } diff --git a/mayor-orig/mayor-base/www/skin/classic/base/html/base.phtml b/mayor-orig/mayor-base/www/skin/classic/base/html/base.phtml index 8d5a81a9..bd5ee4d7 100644 --- a/mayor-orig/mayor-base/www/skin/classic/base/html/base.phtml +++ b/mayor-orig/mayor-base/www/skin/classic/base/html/base.phtml @@ -124,7 +124,7 @@ function mayor_menu($MENU,$sessionID,$lang = _DEFAULT_LANG,$skin = _DEFAULT_SKIN echo '
  • '; $active_page=true; } else { - if ($page=='n4p1o' || count($NAV[1])>0) + if ($page=='n4p1o' || (is_array($NAV[1]) && count($NAV[1])>0)) echo '
  • '; //--none @@ -253,7 +253,8 @@ function html_mayor_head($sessionID,$page,$sub,$f,$lang,$MENU,$skin = _DEFAULT_S echo ''; echo "\n"; - echo '
  • ");var r=t.next();apply_file_rename(r.find("figure"),a);var i=r.find(".download-form"),n="form"+(new Date).getTime();i.attr("id",n),i.find(".tip-right").first().attr("onclick","jQuery('#"+n+"').submit();")},apply_file_rename=function(e,a){var t;e.attr("data-name",a),e.parent().attr("data-name",a),e.find("h4").text(a);var r=e.find("a.link"),i=(t=r.attr("data-file")).substring(t.lastIndexOf("/")+1),n=t.substring(t.lastIndexOf(".")+1);n=n?"."+n:"",r.each(function(){jQuery(this).attr("data-file",encodeURIComponent(a+n))}),e.find("img").each(function(){if(e=jQuery(this).attr("src"))jQuery(this).attr("src",e.replace(i,a+n)+"?time="+(new Date).getTime());else{var e=jQuery(this).attr("data-src");jQuery(this).attr("data-src",e.replace(i,a+n)+"?time="+(new Date).getTime())}jQuery(this).attr("alt",a+" thumbnails")});var l=e.find("a.preview");void 0!==(t=l.attr("data-url"))&&t&&l.attr("data-url",t.replace(encodeURIComponent(i),encodeURIComponent(a+n))),e.parent().attr("data-name",a+n),e.attr("data-name",a+n),e.find(".name_download").val(a+n);var o=e.attr("data-path").replace(i,a+n);e.attr("data-path",o)},apply_folder_rename=function(e,a){e.attr("data-name",a),e.find("figure").attr("data-name",a);var t=e.find("h4").find("a").text();e.find("h4 > a").text(a);var r=e.find(".folder-link"),i=r.attr("href"),n=jQuery("#fldr_value").val(),l=i.replace("fldr="+n+encodeURIComponent(t),"fldr="+n+encodeURIComponent(a));r.each(function(){jQuery(this).attr("href",l)});var o=e.attr("data-path"),u=o.lastIndexOf("/"),c=o.substr(0,u+1)+a;e.attr("data-path",c)},show_animation=function(){jQuery("#loading_container").css("display","block"),jQuery("#loading").css("opacity",".7")},hide_animation=function(){jQuery("#loading_container").fadeOut()}}(jQuery,Modernizr,image_editor),function(){if("function"==typeof window.CustomEvent)return;function e(e,a){a=a||{bubbles:!1,cancelable:!1,detail:void 0};var t=document.createEvent("CustomEvent");return t.initCustomEvent(e,a.bubbles,a.cancelable,a.detail),t}e.prototype=window.Event.prototype,window.CustomEvent=e}(); \ No newline at end of file diff --git a/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-angular.js b/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-angular.js new file mode 100644 index 00000000..185907d3 --- /dev/null +++ b/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-angular.js @@ -0,0 +1,438 @@ +/* + * jQuery File Upload AngularJS Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * https://opensource.org/licenses/MIT + */ + +/* jshint nomen:false */ +/* global define, angular, require */ + +;(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + 'angular', + './jquery.fileupload-image', + './jquery.fileupload-audio', + './jquery.fileupload-video', + './jquery.fileupload-validate' + ], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS: + factory( + require('jquery'), + require('angular'), + require('./jquery.fileupload-image'), + require('./jquery.fileupload-audio'), + require('./jquery.fileupload-video'), + require('./jquery.fileupload-validate') + ); + } else { + factory(); + } +}(function () { + 'use strict'; + + angular.module('blueimp.fileupload', []) + + // The fileUpload service provides configuration options + // for the fileUpload directive and default handlers for + // File Upload events: + .provider('fileUpload', function () { + var scopeEvalAsync = function (expression) { + var scope = angular.element(this) + .fileupload('option', 'scope'); + // Schedule a new $digest cycle if not already inside of one + // and evaluate the given expression: + scope.$evalAsync(expression); + }, + addFileMethods = function (scope, data) { + var files = data.files, + file = files[0]; + angular.forEach(files, function (file, index) { + file._index = index; + file.$state = function () { + return data.state(); + }; + file.$processing = function () { + return data.processing(); + }; + file.$progress = function () { + return data.progress(); + }; + file.$response = function () { + return data.response(); + }; + }); + file.$submit = function () { + if (!file.error) { + return data.submit(); + } + }; + file.$cancel = function () { + return data.abort(); + }; + }, + $config; + $config = this.defaults = { + handleResponse: function (e, data) { + var files = data.result && data.result.files; + if (files) { + data.scope.replace(data.files, files); + } else if (data.errorThrown || + data.textStatus === 'error') { + data.files[0].error = data.errorThrown || + data.textStatus; + } + }, + add: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var scope = data.scope, + filesCopy = []; + angular.forEach(data.files, function (file) { + filesCopy.push(file); + }); + scope.$parent.$applyAsync(function () { + addFileMethods(scope, data); + var method = scope.option('prependFiles') ? + 'unshift' : 'push'; + Array.prototype[method].apply(scope.queue, data.files); + }); + data.process(function () { + return scope.process(data); + }).always(function () { + scope.$parent.$applyAsync(function () { + addFileMethods(scope, data); + scope.replace(filesCopy, data.files); + }); + }).then(function () { + if ((scope.option('autoUpload') || + data.autoUpload) && + data.autoUpload !== false) { + data.submit(); + } + }); + }, + done: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var that = this; + data.scope.$apply(function () { + data.handleResponse.call(that, e, data); + }); + }, + fail: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var that = this, + scope = data.scope; + if (data.errorThrown === 'abort') { + scope.clear(data.files); + return; + } + scope.$apply(function () { + data.handleResponse.call(that, e, data); + }); + }, + stop: scopeEvalAsync, + processstart: scopeEvalAsync, + processstop: scopeEvalAsync, + getNumberOfFiles: function () { + var scope = this.scope; + return scope.queue.length - scope.processing(); + }, + dataType: 'json', + autoUpload: false + }; + this.$get = [ + function () { + return { + defaults: $config + }; + } + ]; + }) + + // Format byte numbers to readable presentations: + .provider('formatFileSizeFilter', function () { + var $config = { + // Byte units following the IEC format + // http://en.wikipedia.org/wiki/Kilobyte + units: [ + {size: 1000000000, suffix: ' GB'}, + {size: 1000000, suffix: ' MB'}, + {size: 1000, suffix: ' KB'} + ] + }; + this.defaults = $config; + this.$get = function () { + return function (bytes) { + if (!angular.isNumber(bytes)) { + return ''; + } + var unit = true, + i = 0, + prefix, + suffix; + while (unit) { + unit = $config.units[i]; + prefix = unit.prefix || ''; + suffix = unit.suffix || ''; + if (i === $config.units.length - 1 || bytes >= unit.size) { + return prefix + (bytes / unit.size).toFixed(2) + suffix; + } + i += 1; + } + }; + }; + }) + + // The FileUploadController initializes the fileupload widget and + // provides scope methods to control the File Upload functionality: + .controller('FileUploadController', [ + '$scope', '$element', '$attrs', '$window', 'fileUpload','$q', + function ($scope, $element, $attrs, $window, fileUpload, $q) { + var uploadMethods = { + progress: function () { + return $element.fileupload('progress'); + }, + active: function () { + return $element.fileupload('active'); + }, + option: function (option, data) { + if (arguments.length === 1) { + return $element.fileupload('option', option); + } + $element.fileupload('option', option, data); + }, + add: function (data) { + return $element.fileupload('add', data); + }, + send: function (data) { + return $element.fileupload('send', data); + }, + process: function (data) { + return $element.fileupload('process', data); + }, + processing: function (data) { + return $element.fileupload('processing', data); + } + }; + $scope.disabled = !$window.jQuery.support.fileInput; + $scope.queue = $scope.queue || []; + $scope.clear = function (files) { + var queue = this.queue, + i = queue.length, + file = files, + length = 1; + if (angular.isArray(files)) { + file = files[0]; + length = files.length; + } + while (i) { + i -= 1; + if (queue[i] === file) { + return queue.splice(i, length); + } + } + }; + $scope.replace = function (oldFiles, newFiles) { + var queue = this.queue, + file = oldFiles[0], + i, + j; + for (i = 0; i < queue.length; i += 1) { + if (queue[i] === file) { + for (j = 0; j < newFiles.length; j += 1) { + queue[i + j] = newFiles[j]; + } + return; + } + } + }; + $scope.applyOnQueue = function (method) { + var list = this.queue.slice(0), + i, + file, + promises = []; + for (i = 0; i < list.length; i += 1) { + file = list[i]; + if (file[method]) { + promises.push(file[method]()); + } + } + return $q.all(promises); + }; + $scope.submit = function () { + return this.applyOnQueue('$submit'); + }; + $scope.cancel = function () { + return this.applyOnQueue('$cancel'); + }; + // Add upload methods to the scope: + angular.extend($scope, uploadMethods); + // The fileupload widget will initialize with + // the options provided via "data-"-parameters, + // as well as those given via options object: + $element.fileupload(angular.extend( + {scope: $scope}, + fileUpload.defaults + )).on('fileuploadadd', function (e, data) { + data.scope = $scope; + }).on('fileuploadfail', function (e, data) { + if (data.errorThrown === 'abort') { + return; + } + if (data.dataType && + data.dataType.indexOf('json') === data.dataType.length - 4) { + try { + data.result = angular.fromJson(data.jqXHR.responseText); + } catch (ignore) {} + } + }).on([ + 'fileuploadadd', + 'fileuploadsubmit', + 'fileuploadsend', + 'fileuploaddone', + 'fileuploadfail', + 'fileuploadalways', + 'fileuploadprogress', + 'fileuploadprogressall', + 'fileuploadstart', + 'fileuploadstop', + 'fileuploadchange', + 'fileuploadpaste', + 'fileuploaddrop', + 'fileuploaddragover', + 'fileuploadchunkbeforesend', + 'fileuploadchunksend', + 'fileuploadchunkdone', + 'fileuploadchunkfail', + 'fileuploadchunkalways', + 'fileuploadprocessstart', + 'fileuploadprocess', + 'fileuploadprocessdone', + 'fileuploadprocessfail', + 'fileuploadprocessalways', + 'fileuploadprocessstop' + ].join(' '), function (e, data) { + $scope.$parent.$applyAsync(function () { + if ($scope.$emit(e.type, data).defaultPrevented) { + e.preventDefault(); + } + }); + }).on('remove', function () { + // Remove upload methods from the scope, + // when the widget is removed: + var method; + for (method in uploadMethods) { + if (uploadMethods.hasOwnProperty(method)) { + delete $scope[method]; + } + } + }); + // Observe option changes: + $scope.$watch( + $attrs.fileUpload, + function (newOptions) { + if (newOptions) { + $element.fileupload('option', newOptions); + } + } + ); + } + ]) + + // Provide File Upload progress feedback: + .controller('FileUploadProgressController', [ + '$scope', '$attrs', '$parse', + function ($scope, $attrs, $parse) { + var fn = $parse($attrs.fileUploadProgress), + update = function () { + var progress = fn($scope); + if (!progress || !progress.total) { + return; + } + $scope.num = Math.floor( + progress.loaded / progress.total * 100 + ); + }; + update(); + $scope.$watch( + $attrs.fileUploadProgress + '.loaded', + function (newValue, oldValue) { + if (newValue !== oldValue) { + update(); + } + } + ); + } + ]) + + // Display File Upload previews: + .controller('FileUploadPreviewController', [ + '$scope', '$element', '$attrs', + function ($scope, $element, $attrs) { + $scope.$watch( + $attrs.fileUploadPreview + '.preview', + function (preview) { + $element.empty(); + if (preview) { + $element.append(preview); + } + } + ); + } + ]) + + .directive('fileUpload', function () { + return { + controller: 'FileUploadController', + scope: true + }; + }) + + .directive('fileUploadProgress', function () { + return { + controller: 'FileUploadProgressController', + scope: true + }; + }) + + .directive('fileUploadPreview', function () { + return { + controller: 'FileUploadPreviewController' + }; + }) + + // Enhance the HTML5 download attribute to + // allow drag&drop of files to the desktop: + .directive('download', function () { + return function (scope, elm) { + elm.on('dragstart', function (e) { + try { + e.originalEvent.dataTransfer.setData( + 'DownloadURL', + [ + 'application/octet-stream', + elm.prop('download'), + elm.prop('href') + ].join(':') + ); + } catch (ignore) {} + }); + }; + }); + +})); diff --git a/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-audio.js b/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-audio.js new file mode 100644 index 00000000..a2537761 --- /dev/null +++ b/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-audio.js @@ -0,0 +1,113 @@ +/* + * jQuery File Upload Audio Preview Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * https://opensource.org/licenses/MIT + */ + +/* jshint nomen:false */ +/* global define, require, window, document */ + +;(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + 'load-image', + './jquery.fileupload-process' + ], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS: + factory( + require('jquery'), + require('blueimp-load-image/js/load-image'), + require('./jquery.fileupload-process') + ); + } else { + // Browser globals: + factory( + window.jQuery, + window.loadImage + ); + } +}(function ($, loadImage) { + 'use strict'; + + // Prepend to the default processQueue: + $.blueimp.fileupload.prototype.options.processQueue.unshift( + { + action: 'loadAudio', + // Use the action as prefix for the "@" options: + prefix: true, + fileTypes: '@', + maxFileSize: '@', + disabled: '@disableAudioPreview' + }, + { + action: 'setAudio', + name: '@audioPreviewName', + disabled: '@disableAudioPreview' + } + ); + + // The File Upload Audio Preview plugin extends the fileupload widget + // with audio preview functionality: + $.widget('blueimp.fileupload', $.blueimp.fileupload, { + + options: { + // The regular expression for the types of audio files to load, + // matched against the file type: + loadAudioFileTypes: /^audio\/.*$/ + }, + + _audioElement: document.createElement('audio'), + + processActions: { + + // Loads the audio file given via data.files and data.index + // as audio element if the browser supports playing it. + // Accepts the options fileTypes (regular expression) + // and maxFileSize (integer) to limit the files to load: + loadAudio: function (data, options) { + if (options.disabled) { + return data; + } + var file = data.files[data.index], + url, + audio; + if (this._audioElement.canPlayType && + this._audioElement.canPlayType(file.type) && + ($.type(options.maxFileSize) !== 'number' || + file.size <= options.maxFileSize) && + (!options.fileTypes || + options.fileTypes.test(file.type))) { + url = loadImage.createObjectURL(file); + if (url) { + audio = this._audioElement.cloneNode(false); + audio.src = url; + audio.controls = true; + data.audio = audio; + return data; + } + } + return data; + }, + + // Sets the audio element as a property of the file object: + setAudio: function (data, options) { + if (data.audio && !options.disabled) { + data.files[data.index][options.name || 'preview'] = data.audio; + } + return data; + } + + } + + }); + +})); diff --git a/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-image.js b/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-image.js new file mode 100644 index 00000000..65fc6d7b --- /dev/null +++ b/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-image.js @@ -0,0 +1,326 @@ +/* + * jQuery File Upload Image Preview & Resize Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * https://opensource.org/licenses/MIT + */ + +/* jshint nomen:false */ +/* global define, require, window, Blob */ + +;(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + 'load-image', + 'load-image-meta', + 'load-image-scale', + 'load-image-exif', + 'canvas-to-blob', + './jquery.fileupload-process' + ], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS: + factory( + require('jquery'), + require('blueimp-load-image/js/load-image'), + require('blueimp-load-image/js/load-image-meta'), + require('blueimp-load-image/js/load-image-scale'), + require('blueimp-load-image/js/load-image-exif'), + require('blueimp-canvas-to-blob'), + require('./jquery.fileupload-process') + ); + } else { + // Browser globals: + factory( + window.jQuery, + window.loadImage + ); + } +}(function ($, loadImage) { + 'use strict'; + + // Prepend to the default processQueue: + $.blueimp.fileupload.prototype.options.processQueue.unshift( + { + action: 'loadImageMetaData', + disableImageHead: '@', + disableExif: '@', + disableExifThumbnail: '@', + disableExifSub: '@', + disableExifGps: '@', + disabled: '@disableImageMetaDataLoad' + }, + { + action: 'loadImage', + // Use the action as prefix for the "@" options: + prefix: true, + fileTypes: '@', + maxFileSize: '@', + noRevoke: '@', + disabled: '@disableImageLoad' + }, + { + action: 'resizeImage', + // Use "image" as prefix for the "@" options: + prefix: 'image', + maxWidth: '@', + maxHeight: '@', + minWidth: '@', + minHeight: '@', + crop: '@', + orientation: '@', + forceResize: '@', + disabled: '@disableImageResize' + }, + { + action: 'saveImage', + quality: '@imageQuality', + type: '@imageType', + disabled: '@disableImageResize' + }, + { + action: 'saveImageMetaData', + disabled: '@disableImageMetaDataSave' + }, + { + action: 'resizeImage', + // Use "preview" as prefix for the "@" options: + prefix: 'preview', + maxWidth: '@', + maxHeight: '@', + minWidth: '@', + minHeight: '@', + crop: '@', + orientation: '@', + thumbnail: '@', + canvas: '@', + disabled: '@disableImagePreview' + }, + { + action: 'setImage', + name: '@imagePreviewName', + disabled: '@disableImagePreview' + }, + { + action: 'deleteImageReferences', + disabled: '@disableImageReferencesDeletion' + } + ); + + // The File Upload Resize plugin extends the fileupload widget + // with image resize functionality: + $.widget('blueimp.fileupload', $.blueimp.fileupload, { + + options: { + // The regular expression for the types of images to load: + // matched against the file type: + loadImageFileTypes: /^image\/(gif|jpeg|png|svg\+xml)$/, + // The maximum file size of images to load: + loadImageMaxFileSize: 10000000, // 10MB + // The maximum width of resized images: + imageMaxWidth: 1920, + // The maximum height of resized images: + imageMaxHeight: 1080, + // Defines the image orientation (1-8) or takes the orientation + // value from Exif data if set to true: + imageOrientation: false, + // Define if resized images should be cropped or only scaled: + imageCrop: false, + // Disable the resize image functionality by default: + disableImageResize: true, + // The maximum width of the preview images: + previewMaxWidth: 80, + // The maximum height of the preview images: + previewMaxHeight: 80, + // Defines the preview orientation (1-8) or takes the orientation + // value from Exif data if set to true: + previewOrientation: true, + // Create the preview using the Exif data thumbnail: + previewThumbnail: true, + // Define if preview images should be cropped or only scaled: + previewCrop: false, + // Define if preview images should be resized as canvas elements: + previewCanvas: true + }, + + processActions: { + + // Loads the image given via data.files and data.index + // as img element, if the browser supports the File API. + // Accepts the options fileTypes (regular expression) + // and maxFileSize (integer) to limit the files to load: + loadImage: function (data, options) { + if (options.disabled) { + return data; + } + var that = this, + file = data.files[data.index], + dfd = $.Deferred(); + if (($.type(options.maxFileSize) === 'number' && + file.size > options.maxFileSize) || + (options.fileTypes && + !options.fileTypes.test(file.type)) || + !loadImage( + file, + function (img) { + if (img.src) { + data.img = img; + } + dfd.resolveWith(that, [data]); + }, + options + )) { + return data; + } + return dfd.promise(); + }, + + // Resizes the image given as data.canvas or data.img + // and updates data.canvas or data.img with the resized image. + // Also stores the resized image as preview property. + // Accepts the options maxWidth, maxHeight, minWidth, + // minHeight, canvas and crop: + resizeImage: function (data, options) { + if (options.disabled || !(data.canvas || data.img)) { + return data; + } + options = $.extend({canvas: true}, options); + var that = this, + dfd = $.Deferred(), + img = (options.canvas && data.canvas) || data.img, + resolve = function (newImg) { + if (newImg && (newImg.width !== img.width || + newImg.height !== img.height || + options.forceResize)) { + data[newImg.getContext ? 'canvas' : 'img'] = newImg; + } + data.preview = newImg; + dfd.resolveWith(that, [data]); + }, + thumbnail; + if (data.exif) { + if (options.orientation === true) { + options.orientation = data.exif.get('Orientation'); + } + if (options.thumbnail) { + thumbnail = data.exif.get('Thumbnail'); + if (thumbnail) { + loadImage(thumbnail, resolve, options); + return dfd.promise(); + } + } + // Prevent orienting the same image twice: + if (data.orientation) { + delete options.orientation; + } else { + data.orientation = options.orientation; + } + } + if (img) { + resolve(loadImage.scale(img, options)); + return dfd.promise(); + } + return data; + }, + + // Saves the processed image given as data.canvas + // inplace at data.index of data.files: + saveImage: function (data, options) { + if (!data.canvas || options.disabled) { + return data; + } + var that = this, + file = data.files[data.index], + dfd = $.Deferred(); + if (data.canvas.toBlob) { + data.canvas.toBlob( + function (blob) { + if (!blob.name) { + if (file.type === blob.type) { + blob.name = file.name; + } else if (file.name) { + blob.name = file.name.replace( + /\.\w+$/, + '.' + blob.type.substr(6) + ); + } + } + // Don't restore invalid meta data: + if (file.type !== blob.type) { + delete data.imageHead; + } + // Store the created blob at the position + // of the original file in the files list: + data.files[data.index] = blob; + dfd.resolveWith(that, [data]); + }, + options.type || file.type, + options.quality + ); + } else { + return data; + } + return dfd.promise(); + }, + + loadImageMetaData: function (data, options) { + if (options.disabled) { + return data; + } + var that = this, + dfd = $.Deferred(); + loadImage.parseMetaData(data.files[data.index], function (result) { + $.extend(data, result); + dfd.resolveWith(that, [data]); + }, options); + return dfd.promise(); + }, + + saveImageMetaData: function (data, options) { + if (!(data.imageHead && data.canvas && + data.canvas.toBlob && !options.disabled)) { + return data; + } + var file = data.files[data.index], + blob = new Blob([ + data.imageHead, + // Resized images always have a head size of 20 bytes, + // including the JPEG marker and a minimal JFIF header: + this._blobSlice.call(file, 20) + ], {type: file.type}); + blob.name = file.name; + data.files[data.index] = blob; + return data; + }, + + // Sets the resized version of the image as a property of the + // file object, must be called after "saveImage": + setImage: function (data, options) { + if (data.preview && !options.disabled) { + data.files[data.index][options.name || 'preview'] = data.preview; + } + return data; + }, + + deleteImageReferences: function (data, options) { + if (!options.disabled) { + delete data.img; + delete data.canvas; + delete data.preview; + delete data.imageHead; + } + return data; + } + + } + + }); + +})); diff --git a/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-jquery-ui.js b/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-jquery-ui.js new file mode 100644 index 00000000..7b136b37 --- /dev/null +++ b/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-jquery-ui.js @@ -0,0 +1,161 @@ +/* + * jQuery File Upload jQuery UI Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * https://opensource.org/licenses/MIT + */ + +/* jshint nomen:false */ +/* global define, require, window */ + +;(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + './jquery.fileupload-ui' + ], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS: + factory( + require('jquery'), + require('./jquery.fileupload-ui') + ); + } else { + // Browser globals: + factory(window.jQuery); + } +}(function ($) { + 'use strict'; + + $.widget('blueimp.fileupload', $.blueimp.fileupload, { + + options: { + processdone: function (e, data) { + data.context.find('.start').button('enable'); + }, + progress: function (e, data) { + if (data.context) { + data.context.find('.progress').progressbar( + 'option', + 'value', + parseInt(data.loaded / data.total * 100, 10) + ); + } + }, + progressall: function (e, data) { + var $this = $(this); + $this.find('.fileupload-progress') + .find('.progress').progressbar( + 'option', + 'value', + parseInt(data.loaded / data.total * 100, 10) + ).end() + .find('.progress-extended').each(function () { + $(this).html( + ($this.data('blueimp-fileupload') || + $this.data('fileupload')) + ._renderExtendedProgress(data) + ); + }); + } + }, + + _renderUpload: function (func, files) { + var node = this._super(func, files), + showIconText = $(window).width() > 480; + node.find('.progress').empty().progressbar(); + node.find('.start').button({ + icons: {primary: 'ui-icon-circle-arrow-e'}, + text: showIconText + }); + node.find('.cancel').button({ + icons: {primary: 'ui-icon-cancel'}, + text: showIconText + }); + if (node.hasClass('fade')) { + node.hide(); + } + return node; + }, + + _renderDownload: function (func, files) { + var node = this._super(func, files), + showIconText = $(window).width() > 480; + node.find('.delete').button({ + icons: {primary: 'ui-icon-trash'}, + text: showIconText + }); + if (node.hasClass('fade')) { + node.hide(); + } + return node; + }, + + _startHandler: function (e) { + $(e.currentTarget).button('disable'); + this._super(e); + }, + + _transition: function (node) { + var deferred = $.Deferred(); + if (node.hasClass('fade')) { + node.fadeToggle( + this.options.transitionDuration, + this.options.transitionEasing, + function () { + deferred.resolveWith(node); + } + ); + } else { + deferred.resolveWith(node); + } + return deferred; + }, + + _create: function () { + this._super(); + this.element + .find('.fileupload-buttonbar') + .find('.fileinput-button').each(function () { + var input = $(this).find('input:file').detach(); + $(this) + .button({icons: {primary: 'ui-icon-plusthick'}}) + .append(input); + }) + .end().find('.start') + .button({icons: {primary: 'ui-icon-circle-arrow-e'}}) + .end().find('.cancel') + .button({icons: {primary: 'ui-icon-cancel'}}) + .end().find('.delete') + .button({icons: {primary: 'ui-icon-trash'}}) + .end().find('.progress').progressbar(); + }, + + _destroy: function () { + this.element + .find('.fileupload-buttonbar') + .find('.fileinput-button').each(function () { + var input = $(this).find('input:file').detach(); + $(this) + .button('destroy') + .append(input); + }) + .end().find('.start') + .button('destroy') + .end().find('.cancel') + .button('destroy') + .end().find('.delete') + .button('destroy') + .end().find('.progress').progressbar('destroy'); + this._super(); + } + + }); + +})); diff --git a/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-process.js b/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-process.js new file mode 100644 index 00000000..638f0d26 --- /dev/null +++ b/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-process.js @@ -0,0 +1,178 @@ +/* + * jQuery File Upload Processing Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2012, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * https://opensource.org/licenses/MIT + */ + +/* jshint nomen:false */ +/* global define, require, window */ + +;(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + './jquery.fileupload' + ], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS: + factory( + require('jquery'), + require('./jquery.fileupload') + ); + } else { + // Browser globals: + factory( + window.jQuery + ); + } +}(function ($) { + 'use strict'; + + var originalAdd = $.blueimp.fileupload.prototype.options.add; + + // The File Upload Processing plugin extends the fileupload widget + // with file processing functionality: + $.widget('blueimp.fileupload', $.blueimp.fileupload, { + + options: { + // The list of processing actions: + processQueue: [ + /* + { + action: 'log', + type: 'debug' + } + */ + ], + add: function (e, data) { + var $this = $(this); + data.process(function () { + return $this.fileupload('process', data); + }); + originalAdd.call(this, e, data); + } + }, + + processActions: { + /* + log: function (data, options) { + console[options.type]( + 'Processing "' + data.files[data.index].name + '"' + ); + } + */ + }, + + _processFile: function (data, originalData) { + var that = this, + dfd = $.Deferred().resolveWith(that, [data]), + chain = dfd.promise(); + this._trigger('process', null, data); + $.each(data.processQueue, function (i, settings) { + var func = function (data) { + if (originalData.errorThrown) { + return $.Deferred() + .rejectWith(that, [originalData]).promise(); + } + return that.processActions[settings.action].call( + that, + data, + settings + ); + }; + chain = chain.then(func, settings.always && func); + }); + chain + .done(function () { + that._trigger('processdone', null, data); + that._trigger('processalways', null, data); + }) + .fail(function () { + that._trigger('processfail', null, data); + that._trigger('processalways', null, data); + }); + return chain; + }, + + // Replaces the settings of each processQueue item that + // are strings starting with an "@", using the remaining + // substring as key for the option map, + // e.g. "@autoUpload" is replaced with options.autoUpload: + _transformProcessQueue: function (options) { + var processQueue = []; + $.each(options.processQueue, function () { + var settings = {}, + action = this.action, + prefix = this.prefix === true ? action : this.prefix; + $.each(this, function (key, value) { + if ($.type(value) === 'string' && + value.charAt(0) === '@') { + settings[key] = options[ + value.slice(1) || (prefix ? prefix + + key.charAt(0).toUpperCase() + key.slice(1) : key) + ]; + } else { + settings[key] = value; + } + + }); + processQueue.push(settings); + }); + options.processQueue = processQueue; + }, + + // Returns the number of files currently in the processsing queue: + processing: function () { + return this._processing; + }, + + // Processes the files given as files property of the data parameter, + // returns a Promise object that allows to bind callbacks: + process: function (data) { + var that = this, + options = $.extend({}, this.options, data); + if (options.processQueue && options.processQueue.length) { + this._transformProcessQueue(options); + if (this._processing === 0) { + this._trigger('processstart'); + } + $.each(data.files, function (index) { + var opts = index ? $.extend({}, options) : options, + func = function () { + if (data.errorThrown) { + return $.Deferred() + .rejectWith(that, [data]).promise(); + } + return that._processFile(opts, data); + }; + opts.index = index; + that._processing += 1; + that._processingQueue = that._processingQueue.then(func, func) + .always(function () { + that._processing -= 1; + if (that._processing === 0) { + that._trigger('processstop'); + } + }); + }); + } + return this._processingQueue; + }, + + _create: function () { + this._super(); + this._processing = 0; + this._processingQueue = $.Deferred().resolveWith(this) + .promise(); + } + + }); + +})); diff --git a/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-ui.js b/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-ui.js new file mode 100644 index 00000000..5058084b --- /dev/null +++ b/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-ui.js @@ -0,0 +1,714 @@ +/* + * jQuery File Upload User Interface Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2010, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * https://opensource.org/licenses/MIT + */ + +/* jshint nomen:false */ +/* global define, require, window */ + +;(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + 'blueimp-tmpl', + './jquery.fileupload-image', + './jquery.fileupload-audio', + './jquery.fileupload-video', + './jquery.fileupload-validate' + ], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS: + factory( + require('jquery'), + require('blueimp-tmpl'), + require('./jquery.fileupload-image'), + require('./jquery.fileupload-audio'), + require('./jquery.fileupload-video'), + require('./jquery.fileupload-validate') + ); + } else { + // Browser globals: + factory( + window.jQuery, + window.tmpl + ); + } +}(function ($, tmpl) { + 'use strict'; + + $.blueimp.fileupload.prototype._specialOptions.push( + 'filesContainer', + 'uploadTemplateId', + 'downloadTemplateId' + ); + + // The UI version extends the file upload widget + // and adds complete user interface interaction: + $.widget('blueimp.fileupload', $.blueimp.fileupload, { + + options: { + // By default, files added to the widget are uploaded as soon + // as the user clicks on the start buttons. To enable automatic + // uploads, set the following option to true: + autoUpload: false, + // The ID of the upload template: + uploadTemplateId: 'template-upload', + // The ID of the download template: + downloadTemplateId: 'template-download', + // The container for the list of files. If undefined, it is set to + // an element with class "files" inside of the widget element: + filesContainer: undefined, + // By default, files are appended to the files container. + // Set the following option to true, to prepend files instead: + prependFiles: false, + // The expected data type of the upload response, sets the dataType + // option of the $.ajax upload requests: + dataType: 'json', + + // Error and info messages: + messages: { + unknownError: 'Unknown error' + }, + + // Function returning the current number of files, + // used by the maxNumberOfFiles validation: + getNumberOfFiles: function () { + return this.filesContainer.children() + .not('.processing').length; + }, + + // Callback to retrieve the list of files from the server response: + getFilesFromResponse: function (data) { + if (data.result && $.isArray(data.result.files)) { + return data.result.files; + } + return []; + }, + + // The add callback is invoked as soon as files are added to the fileupload + // widget (via file input selection, drag & drop or add API call). + // See the basic file upload widget for more information: + add: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var $this = $(this), + that = $this.data('blueimp-fileupload') || + $this.data('fileupload'), + options = that.options; + data.context = that._renderUpload(data.files) + .data('data', data) + .addClass('processing'); + options.filesContainer[ + options.prependFiles ? 'prepend' : 'append' + ](data.context); + that._forceReflow(data.context); + that._transition(data.context); + data.process(function () { + return $this.fileupload('process', data); + }).always(function () { + data.context.each(function (index) { + $(this).find('.size').text( + that._formatFileSize(data.files[index].size) + ); + }).removeClass('processing'); + that._renderPreviews(data); + }).done(function () { + data.context.find('.start').prop('disabled', false); + if ((that._trigger('added', e, data) !== false) && + (options.autoUpload || data.autoUpload) && + data.autoUpload !== false) { + data.submit(); + } + }).fail(function () { + if (data.files.error) { + data.context.each(function (index) { + var error = data.files[index].error; + if (error) { + $(this).find('.error').text(error); + } + }); + } + }); + }, + // Callback for the start of each file upload request: + send: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var that = $(this).data('blueimp-fileupload') || + $(this).data('fileupload'); + if (data.context && data.dataType && + data.dataType.substr(0, 6) === 'iframe') { + // Iframe Transport does not support progress events. + // In lack of an indeterminate progress bar, we set + // the progress to 100%, showing the full animated bar: + data.context + .find('.progress').addClass( + !$.support.transition && 'progress-animated' + ) + .attr('aria-valuenow', 100) + .children().first().css( + 'width', + '100%' + ); + } + return that._trigger('sent', e, data); + }, + // Callback for successful uploads: + done: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var that = $(this).data('blueimp-fileupload') || + $(this).data('fileupload'), + getFilesFromResponse = data.getFilesFromResponse || + that.options.getFilesFromResponse, + files = getFilesFromResponse(data), + template, + deferred; + if (data.context) { + data.context.each(function (index) { + var file = files[index] || + {error: 'Empty file upload result'}; + deferred = that._addFinishedDeferreds(); + that._transition($(this)).done( + function () { + var node = $(this); + template = that._renderDownload([file]) + .replaceAll(node); + that._forceReflow(template); + that._transition(template).done( + function () { + data.context = $(this); + that._trigger('completed', e, data); + that._trigger('finished', e, data); + deferred.resolve(); + } + ); + } + ); + }); + } else { + template = that._renderDownload(files)[ + that.options.prependFiles ? 'prependTo' : 'appendTo' + ](that.options.filesContainer); + that._forceReflow(template); + deferred = that._addFinishedDeferreds(); + that._transition(template).done( + function () { + data.context = $(this); + that._trigger('completed', e, data); + that._trigger('finished', e, data); + deferred.resolve(); + } + ); + } + }, + // Callback for failed (abort or error) uploads: + fail: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var that = $(this).data('blueimp-fileupload') || + $(this).data('fileupload'), + template, + deferred; + if (data.context) { + data.context.each(function (index) { + if (data.errorThrown !== 'abort') { + var file = data.files[index]; + file.error = file.error || data.errorThrown || + data.i18n('unknownError'); + deferred = that._addFinishedDeferreds(); + that._transition($(this)).done( + function () { + var node = $(this); + template = that._renderDownload([file]) + .replaceAll(node); + that._forceReflow(template); + that._transition(template).done( + function () { + data.context = $(this); + that._trigger('failed', e, data); + that._trigger('finished', e, data); + deferred.resolve(); + } + ); + } + ); + } else { + deferred = that._addFinishedDeferreds(); + that._transition($(this)).done( + function () { + $(this).remove(); + that._trigger('failed', e, data); + that._trigger('finished', e, data); + deferred.resolve(); + } + ); + } + }); + } else if (data.errorThrown !== 'abort') { + data.context = that._renderUpload(data.files)[ + that.options.prependFiles ? 'prependTo' : 'appendTo' + ](that.options.filesContainer) + .data('data', data); + that._forceReflow(data.context); + deferred = that._addFinishedDeferreds(); + that._transition(data.context).done( + function () { + data.context = $(this); + that._trigger('failed', e, data); + that._trigger('finished', e, data); + deferred.resolve(); + } + ); + } else { + that._trigger('failed', e, data); + that._trigger('finished', e, data); + that._addFinishedDeferreds().resolve(); + } + }, + // Callback for upload progress events: + progress: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var progress = Math.floor(data.loaded / data.total * 100); + if (data.context) { + data.context.each(function () { + $(this).find('.progress') + .attr('aria-valuenow', progress) + .children().first().css( + 'width', + progress + '%' + ); + }); + } + }, + // Callback for global upload progress events: + progressall: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var $this = $(this), + progress = Math.floor(data.loaded / data.total * 100), + globalProgressNode = $this.find('.fileupload-progress'), + extendedProgressNode = globalProgressNode + .find('.progress-extended'); + if (extendedProgressNode.length) { + extendedProgressNode.html( + ($this.data('blueimp-fileupload') || $this.data('fileupload')) + ._renderExtendedProgress(data) + ); + } + globalProgressNode + .find('.progress') + .attr('aria-valuenow', progress) + .children().first().css( + 'width', + progress + '%' + ); + }, + // Callback for uploads start, equivalent to the global ajaxStart event: + start: function (e) { + if (e.isDefaultPrevented()) { + return false; + } + var that = $(this).data('blueimp-fileupload') || + $(this).data('fileupload'); + that._resetFinishedDeferreds(); + that._transition($(this).find('.fileupload-progress')).done( + function () { + that._trigger('started', e); + } + ); + }, + // Callback for uploads stop, equivalent to the global ajaxStop event: + stop: function (e) { + if (e.isDefaultPrevented()) { + return false; + } + var that = $(this).data('blueimp-fileupload') || + $(this).data('fileupload'), + deferred = that._addFinishedDeferreds(); + $.when.apply($, that._getFinishedDeferreds()) + .done(function () { + that._trigger('stopped', e); + }); + that._transition($(this).find('.fileupload-progress')).done( + function () { + $(this).find('.progress') + .attr('aria-valuenow', '0') + .children().first().css('width', '0%'); + $(this).find('.progress-extended').html(' '); + deferred.resolve(); + } + ); + }, + processstart: function (e) { + if (e.isDefaultPrevented()) { + return false; + } + $(this).addClass('fileupload-processing'); + }, + processstop: function (e) { + if (e.isDefaultPrevented()) { + return false; + } + $(this).removeClass('fileupload-processing'); + }, + // Callback for file deletion: + destroy: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var that = $(this).data('blueimp-fileupload') || + $(this).data('fileupload'), + removeNode = function () { + that._transition(data.context).done( + function () { + $(this).remove(); + that._trigger('destroyed', e, data); + } + ); + }; + if (data.url) { + data.dataType = data.dataType || that.options.dataType; + $.ajax(data).done(removeNode).fail(function () { + that._trigger('destroyfailed', e, data); + }); + } else { + removeNode(); + } + } + }, + + _resetFinishedDeferreds: function () { + this._finishedUploads = []; + }, + + _addFinishedDeferreds: function (deferred) { + if (!deferred) { + deferred = $.Deferred(); + } + this._finishedUploads.push(deferred); + return deferred; + }, + + _getFinishedDeferreds: function () { + return this._finishedUploads; + }, + + // Link handler, that allows to download files + // by drag & drop of the links to the desktop: + _enableDragToDesktop: function () { + var link = $(this), + url = link.prop('href'), + name = link.prop('download'), + type = 'application/octet-stream'; + link.bind('dragstart', function (e) { + try { + e.originalEvent.dataTransfer.setData( + 'DownloadURL', + [type, name, url].join(':') + ); + } catch (ignore) {} + }); + }, + + _formatFileSize: function (bytes) { + if (typeof bytes !== 'number') { + return ''; + } + if (bytes >= 1000000000) { + return (bytes / 1000000000).toFixed(2) + ' GB'; + } + if (bytes >= 1000000) { + return (bytes / 1000000).toFixed(2) + ' MB'; + } + return (bytes / 1000).toFixed(2) + ' KB'; + }, + + _formatBitrate: function (bits) { + if (typeof bits !== 'number') { + return ''; + } + if (bits >= 1000000000) { + return (bits / 1000000000).toFixed(2) + ' Gbit/s'; + } + if (bits >= 1000000) { + return (bits / 1000000).toFixed(2) + ' Mbit/s'; + } + if (bits >= 1000) { + return (bits / 1000).toFixed(2) + ' kbit/s'; + } + return bits.toFixed(2) + ' bit/s'; + }, + + _formatTime: function (seconds) { + var date = new Date(seconds * 1000), + days = Math.floor(seconds / 86400); + days = days ? days + 'd ' : ''; + return days + + ('0' + date.getUTCHours()).slice(-2) + ':' + + ('0' + date.getUTCMinutes()).slice(-2) + ':' + + ('0' + date.getUTCSeconds()).slice(-2); + }, + + _formatPercentage: function (floatValue) { + return (floatValue * 100).toFixed(2) + ' %'; + }, + + _renderExtendedProgress: function (data) { + return this._formatBitrate(data.bitrate) + ' | ' + + this._formatTime( + (data.total - data.loaded) * 8 / data.bitrate + ) + ' | ' + + this._formatPercentage( + data.loaded / data.total + ) + ' | ' + + this._formatFileSize(data.loaded) + ' / ' + + this._formatFileSize(data.total); + }, + + _renderTemplate: function (func, files) { + if (!func) { + return $(); + } + var result = func({ + files: files, + formatFileSize: this._formatFileSize, + options: this.options + }); + if (result instanceof $) { + return result; + } + return $(this.options.templatesContainer).html(result).children(); + }, + + _renderPreviews: function (data) { + data.context.find('.preview').each(function (index, elm) { + $(elm).append(data.files[index].preview); + }); + }, + + _renderUpload: function (files) { + return this._renderTemplate( + this.options.uploadTemplate, + files + ); + }, + + _renderDownload: function (files) { + return this._renderTemplate( + this.options.downloadTemplate, + files + ).find('a[download]').each(this._enableDragToDesktop).end(); + }, + + _startHandler: function (e) { + e.preventDefault(); + var button = $(e.currentTarget), + template = button.closest('.template-upload'), + data = template.data('data'); + button.prop('disabled', true); + if (data && data.submit) { + data.submit(); + } + }, + + _cancelHandler: function (e) { + e.preventDefault(); + var template = $(e.currentTarget) + .closest('.template-upload,.template-download'), + data = template.data('data') || {}; + data.context = data.context || template; + if (data.abort) { + data.abort(); + } else { + data.errorThrown = 'abort'; + this._trigger('fail', e, data); + } + }, + + _deleteHandler: function (e) { + e.preventDefault(); + var button = $(e.currentTarget); + this._trigger('destroy', e, $.extend({ + context: button.closest('.template-download'), + type: 'DELETE' + }, button.data())); + }, + + _forceReflow: function (node) { + return $.support.transition && node.length && + node[0].offsetWidth; + }, + + _transition: function (node) { + var dfd = $.Deferred(); + if ($.support.transition && node.hasClass('fade') && node.is(':visible')) { + node.bind( + $.support.transition.end, + function (e) { + // Make sure we don't respond to other transitions events + // in the container element, e.g. from button elements: + if (e.target === node[0]) { + node.unbind($.support.transition.end); + dfd.resolveWith(node); + } + } + ).toggleClass('in'); + } else { + node.toggleClass('in'); + dfd.resolveWith(node); + } + return dfd; + }, + + _initButtonBarEventHandlers: function () { + var fileUploadButtonBar = this.element.find('.fileupload-buttonbar'), + filesList = this.options.filesContainer; + this._on(fileUploadButtonBar.find('.start'), { + click: function (e) { + e.preventDefault(); + filesList.find('.start').click(); + } + }); + this._on(fileUploadButtonBar.find('.cancel'), { + click: function (e) { + e.preventDefault(); + filesList.find('.cancel').click(); + } + }); + this._on(fileUploadButtonBar.find('.delete'), { + click: function (e) { + e.preventDefault(); + filesList.find('.toggle:checked') + .closest('.template-download') + .find('.delete').click(); + fileUploadButtonBar.find('.toggle') + .prop('checked', false); + } + }); + this._on(fileUploadButtonBar.find('.toggle'), { + change: function (e) { + filesList.find('.toggle').prop( + 'checked', + $(e.currentTarget).is(':checked') + ); + } + }); + }, + + _destroyButtonBarEventHandlers: function () { + this._off( + this.element.find('.fileupload-buttonbar') + .find('.start, .cancel, .delete'), + 'click' + ); + this._off( + this.element.find('.fileupload-buttonbar .toggle'), + 'change.' + ); + }, + + _initEventHandlers: function () { + this._super(); + this._on(this.options.filesContainer, { + 'click .start': this._startHandler, + 'click .cancel': this._cancelHandler, + 'click .delete': this._deleteHandler + }); + this._initButtonBarEventHandlers(); + }, + + _destroyEventHandlers: function () { + this._destroyButtonBarEventHandlers(); + this._off(this.options.filesContainer, 'click'); + this._super(); + }, + + _enableFileInputButton: function () { + this.element.find('.fileinput-button input') + .prop('disabled', false) + .parent().removeClass('disabled'); + }, + + _disableFileInputButton: function () { + this.element.find('.fileinput-button input') + .prop('disabled', true) + .parent().addClass('disabled'); + }, + + _initTemplates: function () { + var options = this.options; + options.templatesContainer = this.document[0].createElement( + options.filesContainer.prop('nodeName') + ); + if (tmpl) { + if (options.uploadTemplateId) { + options.uploadTemplate = tmpl(options.uploadTemplateId); + } + if (options.downloadTemplateId) { + options.downloadTemplate = tmpl(options.downloadTemplateId); + } + } + }, + + _initFilesContainer: function () { + var options = this.options; + if (options.filesContainer === undefined) { + options.filesContainer = this.element.find('.files'); + } else if (!(options.filesContainer instanceof $)) { + options.filesContainer = $(options.filesContainer); + } + }, + + _initSpecialOptions: function () { + this._super(); + this._initFilesContainer(); + this._initTemplates(); + }, + + _create: function () { + this._super(); + this._resetFinishedDeferreds(); + if (!$.support.fileInput) { + this._disableFileInputButton(); + } + }, + + enable: function () { + var wasDisabled = false; + if (this.options.disabled) { + wasDisabled = true; + } + this._super(); + if (wasDisabled) { + this.element.find('input, button').prop('disabled', false); + this._enableFileInputButton(); + } + }, + + disable: function () { + if (!this.options.disabled) { + this.element.find('input, button').prop('disabled', true); + this._disableFileInputButton(); + } + this._super(); + } + + }); + +})); diff --git a/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-validate.js b/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-validate.js new file mode 100644 index 00000000..eebeb373 --- /dev/null +++ b/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-validate.js @@ -0,0 +1,125 @@ +/* + * jQuery File Upload Validation Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * https://opensource.org/licenses/MIT + */ + +/* global define, require, window */ + +;(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + './jquery.fileupload-process' + ], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS: + factory( + require('jquery'), + require('./jquery.fileupload-process') + ); + } else { + // Browser globals: + factory( + window.jQuery + ); + } +}(function ($) { + 'use strict'; + + // Append to the default processQueue: + $.blueimp.fileupload.prototype.options.processQueue.push( + { + action: 'validate', + // Always trigger this action, + // even if the previous action was rejected: + always: true, + // Options taken from the global options map: + acceptFileTypes: '@', + maxFileSize: '@', + minFileSize: '@', + maxNumberOfFiles: '@', + disabled: '@disableValidation' + } + ); + + // The File Upload Validation plugin extends the fileupload widget + // with file validation functionality: + $.widget('blueimp.fileupload', $.blueimp.fileupload, { + + options: { + /* + // The regular expression for allowed file types, matches + // against either file type or file name: + acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i, + // The maximum allowed file size in bytes: + maxFileSize: 10000000, // 10 MB + // The minimum allowed file size in bytes: + minFileSize: undefined, // No minimal file size + // The limit of files to be uploaded: + maxNumberOfFiles: 10, + */ + + // Function returning the current number of files, + // has to be overriden for maxNumberOfFiles validation: + getNumberOfFiles: $.noop, + + // Error and info messages: + messages: { + maxNumberOfFiles: 'Maximum number of files exceeded', + acceptFileTypes: 'File type not allowed', + maxFileSize: 'File is too large', + minFileSize: 'File is too small' + } + }, + + processActions: { + + validate: function (data, options) { + if (options.disabled) { + return data; + } + var dfd = $.Deferred(), + settings = this.options, + file = data.files[data.index], + fileSize; + if (options.minFileSize || options.maxFileSize) { + fileSize = file.size; + } + if ($.type(options.maxNumberOfFiles) === 'number' && + (settings.getNumberOfFiles() || 0) + data.files.length > + options.maxNumberOfFiles) { + file.error = settings.i18n('maxNumberOfFiles'); + } else if (options.acceptFileTypes && + !(options.acceptFileTypes.test(file.type) || + options.acceptFileTypes.test(file.name))) { + file.error = settings.i18n('acceptFileTypes'); + } else if (fileSize > options.maxFileSize) { + file.error = settings.i18n('maxFileSize'); + } else if ($.type(fileSize) === 'number' && + fileSize < options.minFileSize) { + file.error = settings.i18n('minFileSize'); + } else { + delete file.error; + } + if (file.error || data.files.error) { + data.files.error = true; + dfd.rejectWith(this, [data]); + } else { + dfd.resolveWith(this, [data]); + } + return dfd.promise(); + } + + } + + }); + +})); diff --git a/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-video.js b/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-video.js new file mode 100644 index 00000000..aedcec2b --- /dev/null +++ b/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload-video.js @@ -0,0 +1,113 @@ +/* + * jQuery File Upload Video Preview Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * https://opensource.org/licenses/MIT + */ + +/* jshint nomen:false */ +/* global define, require, window, document */ + +;(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + 'load-image', + './jquery.fileupload-process' + ], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS: + factory( + require('jquery'), + require('blueimp-load-image/js/load-image'), + require('./jquery.fileupload-process') + ); + } else { + // Browser globals: + factory( + window.jQuery, + window.loadImage + ); + } +}(function ($, loadImage) { + 'use strict'; + + // Prepend to the default processQueue: + $.blueimp.fileupload.prototype.options.processQueue.unshift( + { + action: 'loadVideo', + // Use the action as prefix for the "@" options: + prefix: true, + fileTypes: '@', + maxFileSize: '@', + disabled: '@disableVideoPreview' + }, + { + action: 'setVideo', + name: '@videoPreviewName', + disabled: '@disableVideoPreview' + } + ); + + // The File Upload Video Preview plugin extends the fileupload widget + // with video preview functionality: + $.widget('blueimp.fileupload', $.blueimp.fileupload, { + + options: { + // The regular expression for the types of video files to load, + // matched against the file type: + loadVideoFileTypes: /^video\/.*$/ + }, + + _videoElement: document.createElement('video'), + + processActions: { + + // Loads the video file given via data.files and data.index + // as video element if the browser supports playing it. + // Accepts the options fileTypes (regular expression) + // and maxFileSize (integer) to limit the files to load: + loadVideo: function (data, options) { + if (options.disabled) { + return data; + } + var file = data.files[data.index], + url, + video; + if (this._videoElement.canPlayType && + this._videoElement.canPlayType(file.type) && + ($.type(options.maxFileSize) !== 'number' || + file.size <= options.maxFileSize) && + (!options.fileTypes || + options.fileTypes.test(file.type))) { + url = loadImage.createObjectURL(file); + if (url) { + video = this._videoElement.cloneNode(false); + video.src = url; + video.controls = true; + data.video = video; + return data; + } + } + return data; + }, + + // Sets the video element as a property of the file object: + setVideo: function (data, options) { + if (data.video && !options.disabled) { + data.files[data.index][options.name || 'preview'] = data.video; + } + return data; + } + + } + + }); + +})); diff --git a/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload.js b/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload.js new file mode 100644 index 00000000..700f9013 --- /dev/null +++ b/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.fileupload.js @@ -0,0 +1,1502 @@ +/* + * jQuery File Upload Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2010, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * https://opensource.org/licenses/MIT + */ + +/* jshint nomen:false */ +/* global define, require, window, document, location, Blob, FormData */ + +;(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + 'jquery-ui/ui/widget' + ], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS: + factory( + require('jquery'), + require('./vendor/jquery.ui.widget') + ); + } else { + // Browser globals: + factory(window.jQuery); + } +}(function ($) { + 'use strict'; + + // Detect file input support, based on + // http://viljamis.com/blog/2012/file-upload-support-on-mobile/ + $.support.fileInput = !(new RegExp( + // Handle devices which give false positives for the feature detection: + '(Android (1\\.[0156]|2\\.[01]))' + + '|(Windows Phone (OS 7|8\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)' + + '|(w(eb)?OSBrowser)|(webOS)' + + '|(Kindle/(1\\.0|2\\.[05]|3\\.0))' + ).test(window.navigator.userAgent) || + // Feature detection for all other devices: + $('').prop('disabled')); + + // The FileReader API is not actually used, but works as feature detection, + // as some Safari versions (5?) support XHR file uploads via the FormData API, + // but not non-multipart XHR file uploads. + // window.XMLHttpRequestUpload is not available on IE10, so we check for + // window.ProgressEvent instead to detect XHR2 file upload capability: + $.support.xhrFileUpload = !!(window.ProgressEvent && window.FileReader); + $.support.xhrFormDataFileUpload = !!window.FormData; + + // Detect support for Blob slicing (required for chunked uploads): + $.support.blobSlice = window.Blob && (Blob.prototype.slice || + Blob.prototype.webkitSlice || Blob.prototype.mozSlice); + + // Helper function to create drag handlers for dragover/dragenter/dragleave: + function getDragHandler(type) { + var isDragOver = type === 'dragover'; + return function (e) { + e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer; + var dataTransfer = e.dataTransfer; + if (dataTransfer && $.inArray('Files', dataTransfer.types) !== -1 && + this._trigger( + type, + $.Event(type, {delegatedEvent: e}) + ) !== false) { + e.preventDefault(); + if (isDragOver) { + dataTransfer.dropEffect = 'copy'; + } + } + }; + } + + // The fileupload widget listens for change events on file input fields defined + // via fileInput setting and paste or drop events of the given dropZone. + // In addition to the default jQuery Widget methods, the fileupload widget + // exposes the "add" and "send" methods, to add or directly send files using + // the fileupload API. + // By default, files added via file input selection, paste, drag & drop or + // "add" method are uploaded immediately, but it is possible to override + // the "add" callback option to queue file uploads. + $.widget('blueimp.fileupload', { + + options: { + // The drop target element(s), by the default the complete document. + // Set to null to disable drag & drop support: + dropZone: $(document), + // The paste target element(s), by the default undefined. + // Set to a DOM node or jQuery object to enable file pasting: + pasteZone: undefined, + // The file input field(s), that are listened to for change events. + // If undefined, it is set to the file input fields inside + // of the widget element on plugin initialization. + // Set to null to disable the change listener. + fileInput: undefined, + // By default, the file input field is replaced with a clone after + // each input field change event. This is required for iframe transport + // queues and allows change events to be fired for the same file + // selection, but can be disabled by setting the following option to false: + replaceFileInput: true, + // The parameter name for the file form data (the request argument name). + // If undefined or empty, the name property of the file input field is + // used, or "files[]" if the file input name property is also empty, + // can be a string or an array of strings: + paramName: undefined, + // By default, each file of a selection is uploaded using an individual + // request for XHR type uploads. Set to false to upload file + // selections in one request each: + singleFileUploads: true, + // To limit the number of files uploaded with one XHR request, + // set the following option to an integer greater than 0: + limitMultiFileUploads: undefined, + // The following option limits the number of files uploaded with one + // XHR request to keep the request size under or equal to the defined + // limit in bytes: + limitMultiFileUploadSize: undefined, + // Multipart file uploads add a number of bytes to each uploaded file, + // therefore the following option adds an overhead for each file used + // in the limitMultiFileUploadSize configuration: + limitMultiFileUploadSizeOverhead: 512, + // Set the following option to true to issue all file upload requests + // in a sequential order: + sequentialUploads: false, + // To limit the number of concurrent uploads, + // set the following option to an integer greater than 0: + limitConcurrentUploads: undefined, + // Set the following option to true to force iframe transport uploads: + forceIframeTransport: false, + // Set the following option to the location of a redirect url on the + // origin server, for cross-domain iframe transport uploads: + redirect: undefined, + // The parameter name for the redirect url, sent as part of the form + // data and set to 'redirect' if this option is empty: + redirectParamName: undefined, + // Set the following option to the location of a postMessage window, + // to enable postMessage transport uploads: + postMessage: undefined, + // By default, XHR file uploads are sent as multipart/form-data. + // The iframe transport is always using multipart/form-data. + // Set to false to enable non-multipart XHR uploads: + multipart: true, + // To upload large files in smaller chunks, set the following option + // to a preferred maximum chunk size. If set to 0, null or undefined, + // or the browser does not support the required Blob API, files will + // be uploaded as a whole. + maxChunkSize: undefined, + // When a non-multipart upload or a chunked multipart upload has been + // aborted, this option can be used to resume the upload by setting + // it to the size of the already uploaded bytes. This option is most + // useful when modifying the options object inside of the "add" or + // "send" callbacks, as the options are cloned for each file upload. + uploadedBytes: undefined, + // By default, failed (abort or error) file uploads are removed from the + // global progress calculation. Set the following option to false to + // prevent recalculating the global progress data: + recalculateProgress: true, + // Interval in milliseconds to calculate and trigger progress events: + progressInterval: 100, + // Interval in milliseconds to calculate progress bitrate: + bitrateInterval: 500, + // By default, uploads are started automatically when adding files: + autoUpload: true, + + // Error and info messages: + messages: { + uploadedBytes: 'Uploaded bytes exceed file size' + }, + + // Translation function, gets the message key to be translated + // and an object with context specific data as arguments: + i18n: function (message, context) { + message = this.messages[message] || message.toString(); + if (context) { + $.each(context, function (key, value) { + message = message.replace('{' + key + '}', value); + }); + } + return message; + }, + + // Additional form data to be sent along with the file uploads can be set + // using this option, which accepts an array of objects with name and + // value properties, a function returning such an array, a FormData + // object (for XHR file uploads), or a simple object. + // The form of the first fileInput is given as parameter to the function: + formData: function (form) { + return form.serializeArray(); + }, + + // The add callback is invoked as soon as files are added to the fileupload + // widget (via file input selection, drag & drop, paste or add API call). + // If the singleFileUploads option is enabled, this callback will be + // called once for each file in the selection for XHR file uploads, else + // once for each file selection. + // + // The upload starts when the submit method is invoked on the data parameter. + // The data object contains a files property holding the added files + // and allows you to override plugin options as well as define ajax settings. + // + // Listeners for this callback can also be bound the following way: + // .bind('fileuploadadd', func); + // + // data.submit() returns a Promise object and allows to attach additional + // handlers using jQuery's Deferred callbacks: + // data.submit().done(func).fail(func).always(func); + add: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + if (data.autoUpload || (data.autoUpload !== false && + $(this).fileupload('option', 'autoUpload'))) { + data.process().done(function () { + data.submit(); + }); + } + }, + + // Other callbacks: + + // Callback for the submit event of each file upload: + // submit: function (e, data) {}, // .bind('fileuploadsubmit', func); + + // Callback for the start of each file upload request: + // send: function (e, data) {}, // .bind('fileuploadsend', func); + + // Callback for successful uploads: + // done: function (e, data) {}, // .bind('fileuploaddone', func); + + // Callback for failed (abort or error) uploads: + // fail: function (e, data) {}, // .bind('fileuploadfail', func); + + // Callback for completed (success, abort or error) requests: + // always: function (e, data) {}, // .bind('fileuploadalways', func); + + // Callback for upload progress events: + // progress: function (e, data) {}, // .bind('fileuploadprogress', func); + + // Callback for global upload progress events: + // progressall: function (e, data) {}, // .bind('fileuploadprogressall', func); + + // Callback for uploads start, equivalent to the global ajaxStart event: + // start: function (e) {}, // .bind('fileuploadstart', func); + + // Callback for uploads stop, equivalent to the global ajaxStop event: + // stop: function (e) {}, // .bind('fileuploadstop', func); + + // Callback for change events of the fileInput(s): + // change: function (e, data) {}, // .bind('fileuploadchange', func); + + // Callback for paste events to the pasteZone(s): + // paste: function (e, data) {}, // .bind('fileuploadpaste', func); + + // Callback for drop events of the dropZone(s): + // drop: function (e, data) {}, // .bind('fileuploaddrop', func); + + // Callback for dragover events of the dropZone(s): + // dragover: function (e) {}, // .bind('fileuploaddragover', func); + + // Callback before the start of each chunk upload request (before form data initialization): + // chunkbeforesend: function (e, data) {}, // .bind('fileuploadchunkbeforesend', func); + + // Callback for the start of each chunk upload request: + // chunksend: function (e, data) {}, // .bind('fileuploadchunksend', func); + + // Callback for successful chunk uploads: + // chunkdone: function (e, data) {}, // .bind('fileuploadchunkdone', func); + + // Callback for failed (abort or error) chunk uploads: + // chunkfail: function (e, data) {}, // .bind('fileuploadchunkfail', func); + + // Callback for completed (success, abort or error) chunk upload requests: + // chunkalways: function (e, data) {}, // .bind('fileuploadchunkalways', func); + + // The plugin options are used as settings object for the ajax calls. + // The following are jQuery ajax settings required for the file uploads: + processData: false, + contentType: false, + cache: false, + timeout: 0 + }, + + // A list of options that require reinitializing event listeners and/or + // special initialization code: + _specialOptions: [ + 'fileInput', + 'dropZone', + 'pasteZone', + 'multipart', + 'forceIframeTransport' + ], + + _blobSlice: $.support.blobSlice && function () { + var slice = this.slice || this.webkitSlice || this.mozSlice; + return slice.apply(this, arguments); + }, + + _BitrateTimer: function () { + this.timestamp = ((Date.now) ? Date.now() : (new Date()).getTime()); + this.loaded = 0; + this.bitrate = 0; + this.getBitrate = function (now, loaded, interval) { + var timeDiff = now - this.timestamp; + if (!this.bitrate || !interval || timeDiff > interval) { + this.bitrate = (loaded - this.loaded) * (1000 / timeDiff) * 8; + this.loaded = loaded; + this.timestamp = now; + } + return this.bitrate; + }; + }, + + _isXHRUpload: function (options) { + return !options.forceIframeTransport && + ((!options.multipart && $.support.xhrFileUpload) || + $.support.xhrFormDataFileUpload); + }, + + _getFormData: function (options) { + var formData; + if ($.type(options.formData) === 'function') { + return options.formData(options.form); + } + if ($.isArray(options.formData)) { + return options.formData; + } + if ($.type(options.formData) === 'object') { + formData = []; + $.each(options.formData, function (name, value) { + formData.push({name: name, value: value}); + }); + return formData; + } + return []; + }, + + _getTotal: function (files) { + var total = 0; + $.each(files, function (index, file) { + total += file.size || 1; + }); + return total; + }, + + _initProgressObject: function (obj) { + var progress = { + loaded: 0, + total: 0, + bitrate: 0 + }; + if (obj._progress) { + $.extend(obj._progress, progress); + } else { + obj._progress = progress; + } + }, + + _initResponseObject: function (obj) { + var prop; + if (obj._response) { + for (prop in obj._response) { + if (obj._response.hasOwnProperty(prop)) { + delete obj._response[prop]; + } + } + } else { + obj._response = {}; + } + }, + + _onProgress: function (e, data) { + if (e.lengthComputable) { + var now = ((Date.now) ? Date.now() : (new Date()).getTime()), + loaded; + if (data._time && data.progressInterval && + (now - data._time < data.progressInterval) && + e.loaded !== e.total) { + return; + } + data._time = now; + loaded = Math.floor( + e.loaded / e.total * (data.chunkSize || data._progress.total) + ) + (data.uploadedBytes || 0); + // Add the difference from the previously loaded state + // to the global loaded counter: + this._progress.loaded += (loaded - data._progress.loaded); + this._progress.bitrate = this._bitrateTimer.getBitrate( + now, + this._progress.loaded, + data.bitrateInterval + ); + data._progress.loaded = data.loaded = loaded; + data._progress.bitrate = data.bitrate = data._bitrateTimer.getBitrate( + now, + loaded, + data.bitrateInterval + ); + // Trigger a custom progress event with a total data property set + // to the file size(s) of the current upload and a loaded data + // property calculated accordingly: + this._trigger( + 'progress', + $.Event('progress', {delegatedEvent: e}), + data + ); + // Trigger a global progress event for all current file uploads, + // including ajax calls queued for sequential file uploads: + this._trigger( + 'progressall', + $.Event('progressall', {delegatedEvent: e}), + this._progress + ); + } + }, + + _initProgressListener: function (options) { + var that = this, + xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr(); + // Accesss to the native XHR object is required to add event listeners + // for the upload progress event: + if (xhr.upload) { + $(xhr.upload).bind('progress', function (e) { + var oe = e.originalEvent; + // Make sure the progress event properties get copied over: + e.lengthComputable = oe.lengthComputable; + e.loaded = oe.loaded; + e.total = oe.total; + that._onProgress(e, options); + }); + options.xhr = function () { + return xhr; + }; + } + }, + + _deinitProgressListener: function (options) { + var xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr(); + if (xhr.upload) { + $(xhr.upload).unbind('progress'); + } + }, + + _isInstanceOf: function (type, obj) { + // Cross-frame instanceof check + return Object.prototype.toString.call(obj) === '[object ' + type + ']'; + }, + + _initXHRData: function (options) { + var that = this, + formData, + file = options.files[0], + // Ignore non-multipart setting if not supported: + multipart = options.multipart || !$.support.xhrFileUpload, + paramName = $.type(options.paramName) === 'array' ? + options.paramName[0] : options.paramName; + options.headers = $.extend({}, options.headers); + if (options.contentRange) { + options.headers['Content-Range'] = options.contentRange; + } + if (!multipart || options.blob || !this._isInstanceOf('File', file)) { + options.headers['Content-Disposition'] = 'attachment; filename="' + + encodeURI(file.uploadName || file.name) + '"'; + } + if (!multipart) { + options.contentType = file.type || 'application/octet-stream'; + options.data = options.blob || file; + } else if ($.support.xhrFormDataFileUpload) { + if (options.postMessage) { + // window.postMessage does not allow sending FormData + // objects, so we just add the File/Blob objects to + // the formData array and let the postMessage window + // create the FormData object out of this array: + formData = this._getFormData(options); + if (options.blob) { + formData.push({ + name: paramName, + value: options.blob + }); + } else { + $.each(options.files, function (index, file) { + formData.push({ + name: ($.type(options.paramName) === 'array' && + options.paramName[index]) || paramName, + value: file + }); + }); + } + } else { + if (that._isInstanceOf('FormData', options.formData)) { + formData = options.formData; + } else { + formData = new FormData(); + $.each(this._getFormData(options), function (index, field) { + formData.append(field.name, field.value); + }); + } + if (options.blob) { + formData.append( + paramName, + options.blob, + file.uploadName || file.name + ); + } else { + $.each(options.files, function (index, file) { + // This check allows the tests to run with + // dummy objects: + if (that._isInstanceOf('File', file) || + that._isInstanceOf('Blob', file)) { + formData.append( + ($.type(options.paramName) === 'array' && + options.paramName[index]) || paramName, + file, + file.uploadName || file.name + ); + } + }); + } + } + options.data = formData; + } + // Blob reference is not needed anymore, free memory: + options.blob = null; + }, + + _initIframeSettings: function (options) { + var targetHost = $('').prop('href', options.url).prop('host'); + // Setting the dataType to iframe enables the iframe transport: + options.dataType = 'iframe ' + (options.dataType || ''); + // The iframe transport accepts a serialized array as form data: + options.formData = this._getFormData(options); + // Add redirect url to form data on cross-domain uploads: + if (options.redirect && targetHost && targetHost !== location.host) { + options.formData.push({ + name: options.redirectParamName || 'redirect', + value: options.redirect + }); + } + }, + + _initDataSettings: function (options) { + if (this._isXHRUpload(options)) { + if (!this._chunkedUpload(options, true)) { + if (!options.data) { + this._initXHRData(options); + } + this._initProgressListener(options); + } + if (options.postMessage) { + // Setting the dataType to postmessage enables the + // postMessage transport: + options.dataType = 'postmessage ' + (options.dataType || ''); + } + } else { + this._initIframeSettings(options); + } + }, + + _getParamName: function (options) { + var fileInput = $(options.fileInput), + paramName = options.paramName; + if (!paramName) { + paramName = []; + fileInput.each(function () { + var input = $(this), + name = input.prop('name') || 'files[]', + i = (input.prop('files') || [1]).length; + while (i) { + paramName.push(name); + i -= 1; + } + }); + if (!paramName.length) { + paramName = [fileInput.prop('name') || 'files[]']; + } + } else if (!$.isArray(paramName)) { + paramName = [paramName]; + } + return paramName; + }, + + _initFormSettings: function (options) { + // Retrieve missing options from the input field and the + // associated form, if available: + if (!options.form || !options.form.length) { + options.form = $(options.fileInput.prop('form')); + // If the given file input doesn't have an associated form, + // use the default widget file input's form: + if (!options.form.length) { + options.form = $(this.options.fileInput.prop('form')); + } + } + options.paramName = this._getParamName(options); + if (!options.url) { + options.url = options.form.prop('action') || location.href; + } + // The HTTP request method must be "POST" or "PUT": + options.type = (options.type || + ($.type(options.form.prop('method')) === 'string' && + options.form.prop('method')) || '' + ).toUpperCase(); + if (options.type !== 'POST' && options.type !== 'PUT' && + options.type !== 'PATCH') { + options.type = 'POST'; + } + if (!options.formAcceptCharset) { + options.formAcceptCharset = options.form.attr('accept-charset'); + } + }, + + _getAJAXSettings: function (data) { + var options = $.extend({}, this.options, data); + this._initFormSettings(options); + this._initDataSettings(options); + return options; + }, + + // jQuery 1.6 doesn't provide .state(), + // while jQuery 1.8+ removed .isRejected() and .isResolved(): + _getDeferredState: function (deferred) { + if (deferred.state) { + return deferred.state(); + } + if (deferred.isResolved()) { + return 'resolved'; + } + if (deferred.isRejected()) { + return 'rejected'; + } + return 'pending'; + }, + + // Maps jqXHR callbacks to the equivalent + // methods of the given Promise object: + _enhancePromise: function (promise) { + promise.success = promise.done; + promise.error = promise.fail; + promise.complete = promise.always; + return promise; + }, + + // Creates and returns a Promise object enhanced with + // the jqXHR methods abort, success, error and complete: + _getXHRPromise: function (resolveOrReject, context, args) { + var dfd = $.Deferred(), + promise = dfd.promise(); + context = context || this.options.context || promise; + if (resolveOrReject === true) { + dfd.resolveWith(context, args); + } else if (resolveOrReject === false) { + dfd.rejectWith(context, args); + } + promise.abort = dfd.promise; + return this._enhancePromise(promise); + }, + + // Adds convenience methods to the data callback argument: + _addConvenienceMethods: function (e, data) { + var that = this, + getPromise = function (args) { + return $.Deferred().resolveWith(that, args).promise(); + }; + data.process = function (resolveFunc, rejectFunc) { + if (resolveFunc || rejectFunc) { + data._processQueue = this._processQueue = + (this._processQueue || getPromise([this])).then( + function () { + if (data.errorThrown) { + return $.Deferred() + .rejectWith(that, [data]).promise(); + } + return getPromise(arguments); + } + ).then(resolveFunc, rejectFunc); + } + return this._processQueue || getPromise([this]); + }; + data.submit = function () { + if (this.state() !== 'pending') { + data.jqXHR = this.jqXHR = + (that._trigger( + 'submit', + $.Event('submit', {delegatedEvent: e}), + this + ) !== false) && that._onSend(e, this); + } + return this.jqXHR || that._getXHRPromise(); + }; + data.abort = function () { + if (this.jqXHR) { + return this.jqXHR.abort(); + } + this.errorThrown = 'abort'; + that._trigger('fail', null, this); + return that._getXHRPromise(false); + }; + data.state = function () { + if (this.jqXHR) { + return that._getDeferredState(this.jqXHR); + } + if (this._processQueue) { + return that._getDeferredState(this._processQueue); + } + }; + data.processing = function () { + return !this.jqXHR && this._processQueue && that + ._getDeferredState(this._processQueue) === 'pending'; + }; + data.progress = function () { + return this._progress; + }; + data.response = function () { + return this._response; + }; + }, + + // Parses the Range header from the server response + // and returns the uploaded bytes: + _getUploadedBytes: function (jqXHR) { + var range = jqXHR.getResponseHeader('Range'), + parts = range && range.split('-'), + upperBytesPos = parts && parts.length > 1 && + parseInt(parts[1], 10); + return upperBytesPos && upperBytesPos + 1; + }, + + // Uploads a file in multiple, sequential requests + // by splitting the file up in multiple blob chunks. + // If the second parameter is true, only tests if the file + // should be uploaded in chunks, but does not invoke any + // upload requests: + _chunkedUpload: function (options, testOnly) { + options.uploadedBytes = options.uploadedBytes || 0; + var that = this, + file = options.files[0], + fs = file.size, + ub = options.uploadedBytes, + mcs = options.maxChunkSize || fs, + slice = this._blobSlice, + dfd = $.Deferred(), + promise = dfd.promise(), + jqXHR, + upload; + if (!(this._isXHRUpload(options) && slice && (ub || ($.type(mcs) === 'function' ? mcs(options) : mcs) < fs)) || + options.data) { + return false; + } + if (testOnly) { + return true; + } + if (ub >= fs) { + file.error = options.i18n('uploadedBytes'); + return this._getXHRPromise( + false, + options.context, + [null, 'error', file.error] + ); + } + // The chunk upload method: + upload = function () { + // Clone the options object for each chunk upload: + var o = $.extend({}, options), + currentLoaded = o._progress.loaded; + o.blob = slice.call( + file, + ub, + ub + ($.type(mcs) === 'function' ? mcs(o) : mcs), + file.type + ); + // Store the current chunk size, as the blob itself + // will be dereferenced after data processing: + o.chunkSize = o.blob.size; + // Expose the chunk bytes position range: + o.contentRange = 'bytes ' + ub + '-' + + (ub + o.chunkSize - 1) + '/' + fs; + // Trigger chunkbeforesend to allow form data to be updated for this chunk + that._trigger('chunkbeforesend', null, o); + // Process the upload data (the blob and potential form data): + that._initXHRData(o); + // Add progress listeners for this chunk upload: + that._initProgressListener(o); + jqXHR = ((that._trigger('chunksend', null, o) !== false && $.ajax(o)) || + that._getXHRPromise(false, o.context)) + .done(function (result, textStatus, jqXHR) { + ub = that._getUploadedBytes(jqXHR) || + (ub + o.chunkSize); + // Create a progress event if no final progress event + // with loaded equaling total has been triggered + // for this chunk: + if (currentLoaded + o.chunkSize - o._progress.loaded) { + that._onProgress($.Event('progress', { + lengthComputable: true, + loaded: ub - o.uploadedBytes, + total: ub - o.uploadedBytes + }), o); + } + options.uploadedBytes = o.uploadedBytes = ub; + o.result = result; + o.textStatus = textStatus; + o.jqXHR = jqXHR; + that._trigger('chunkdone', null, o); + that._trigger('chunkalways', null, o); + if (ub < fs) { + // File upload not yet complete, + // continue with the next chunk: + upload(); + } else { + dfd.resolveWith( + o.context, + [result, textStatus, jqXHR] + ); + } + }) + .fail(function (jqXHR, textStatus, errorThrown) { + o.jqXHR = jqXHR; + o.textStatus = textStatus; + o.errorThrown = errorThrown; + that._trigger('chunkfail', null, o); + that._trigger('chunkalways', null, o); + dfd.rejectWith( + o.context, + [jqXHR, textStatus, errorThrown] + ); + }) + .always(function () { + that._deinitProgressListener(o); + }); + }; + this._enhancePromise(promise); + promise.abort = function () { + return jqXHR.abort(); + }; + upload(); + return promise; + }, + + _beforeSend: function (e, data) { + if (this._active === 0) { + // the start callback is triggered when an upload starts + // and no other uploads are currently running, + // equivalent to the global ajaxStart event: + this._trigger('start'); + // Set timer for global bitrate progress calculation: + this._bitrateTimer = new this._BitrateTimer(); + // Reset the global progress values: + this._progress.loaded = this._progress.total = 0; + this._progress.bitrate = 0; + } + // Make sure the container objects for the .response() and + // .progress() methods on the data object are available + // and reset to their initial state: + this._initResponseObject(data); + this._initProgressObject(data); + data._progress.loaded = data.loaded = data.uploadedBytes || 0; + data._progress.total = data.total = this._getTotal(data.files) || 1; + data._progress.bitrate = data.bitrate = 0; + this._active += 1; + // Initialize the global progress values: + this._progress.loaded += data.loaded; + this._progress.total += data.total; + }, + + _onDone: function (result, textStatus, jqXHR, options) { + var total = options._progress.total, + response = options._response; + if (options._progress.loaded < total) { + // Create a progress event if no final progress event + // with loaded equaling total has been triggered: + this._onProgress($.Event('progress', { + lengthComputable: true, + loaded: total, + total: total + }), options); + } + response.result = options.result = result; + response.textStatus = options.textStatus = textStatus; + response.jqXHR = options.jqXHR = jqXHR; + this._trigger('done', null, options); + }, + + _onFail: function (jqXHR, textStatus, errorThrown, options) { + var response = options._response; + if (options.recalculateProgress) { + // Remove the failed (error or abort) file upload from + // the global progress calculation: + this._progress.loaded -= options._progress.loaded; + this._progress.total -= options._progress.total; + } + response.jqXHR = options.jqXHR = jqXHR; + response.textStatus = options.textStatus = textStatus; + response.errorThrown = options.errorThrown = errorThrown; + this._trigger('fail', null, options); + }, + + _onAlways: function (jqXHRorResult, textStatus, jqXHRorError, options) { + // jqXHRorResult, textStatus and jqXHRorError are added to the + // options object via done and fail callbacks + this._trigger('always', null, options); + }, + + _onSend: function (e, data) { + if (!data.submit) { + this._addConvenienceMethods(e, data); + } + var that = this, + jqXHR, + aborted, + slot, + pipe, + options = that._getAJAXSettings(data), + send = function () { + that._sending += 1; + // Set timer for bitrate progress calculation: + options._bitrateTimer = new that._BitrateTimer(); + jqXHR = jqXHR || ( + ((aborted || that._trigger( + 'send', + $.Event('send', {delegatedEvent: e}), + options + ) === false) && + that._getXHRPromise(false, options.context, aborted)) || + that._chunkedUpload(options) || $.ajax(options) + ).done(function (result, textStatus, jqXHR) { + that._onDone(result, textStatus, jqXHR, options); + }).fail(function (jqXHR, textStatus, errorThrown) { + that._onFail(jqXHR, textStatus, errorThrown, options); + }).always(function (jqXHRorResult, textStatus, jqXHRorError) { + that._deinitProgressListener(options); + that._onAlways( + jqXHRorResult, + textStatus, + jqXHRorError, + options + ); + that._sending -= 1; + that._active -= 1; + if (options.limitConcurrentUploads && + options.limitConcurrentUploads > that._sending) { + // Start the next queued upload, + // that has not been aborted: + var nextSlot = that._slots.shift(); + while (nextSlot) { + if (that._getDeferredState(nextSlot) === 'pending') { + nextSlot.resolve(); + break; + } + nextSlot = that._slots.shift(); + } + } + if (that._active === 0) { + // The stop callback is triggered when all uploads have + // been completed, equivalent to the global ajaxStop event: + that._trigger('stop'); + } + }); + return jqXHR; + }; + this._beforeSend(e, options); + if (this.options.sequentialUploads || + (this.options.limitConcurrentUploads && + this.options.limitConcurrentUploads <= this._sending)) { + if (this.options.limitConcurrentUploads > 1) { + slot = $.Deferred(); + this._slots.push(slot); + pipe = slot.then(send); + } else { + this._sequence = this._sequence.then(send, send); + pipe = this._sequence; + } + // Return the piped Promise object, enhanced with an abort method, + // which is delegated to the jqXHR object of the current upload, + // and jqXHR callbacks mapped to the equivalent Promise methods: + pipe.abort = function () { + aborted = [undefined, 'abort', 'abort']; + if (!jqXHR) { + if (slot) { + slot.rejectWith(options.context, aborted); + } + return send(); + } + return jqXHR.abort(); + }; + return this._enhancePromise(pipe); + } + return send(); + }, + + _onAdd: function (e, data) { + var that = this, + result = true, + options = $.extend({}, this.options, data), + files = data.files, + filesLength = files.length, + limit = options.limitMultiFileUploads, + limitSize = options.limitMultiFileUploadSize, + overhead = options.limitMultiFileUploadSizeOverhead, + batchSize = 0, + paramName = this._getParamName(options), + paramNameSet, + paramNameSlice, + fileSet, + i, + j = 0; + if (!filesLength) { + return false; + } + if (limitSize && files[0].size === undefined) { + limitSize = undefined; + } + if (!(options.singleFileUploads || limit || limitSize) || + !this._isXHRUpload(options)) { + fileSet = [files]; + paramNameSet = [paramName]; + } else if (!(options.singleFileUploads || limitSize) && limit) { + fileSet = []; + paramNameSet = []; + for (i = 0; i < filesLength; i += limit) { + fileSet.push(files.slice(i, i + limit)); + paramNameSlice = paramName.slice(i, i + limit); + if (!paramNameSlice.length) { + paramNameSlice = paramName; + } + paramNameSet.push(paramNameSlice); + } + } else if (!options.singleFileUploads && limitSize) { + fileSet = []; + paramNameSet = []; + for (i = 0; i < filesLength; i = i + 1) { + batchSize += files[i].size + overhead; + if (i + 1 === filesLength || + ((batchSize + files[i + 1].size + overhead) > limitSize) || + (limit && i + 1 - j >= limit)) { + fileSet.push(files.slice(j, i + 1)); + paramNameSlice = paramName.slice(j, i + 1); + if (!paramNameSlice.length) { + paramNameSlice = paramName; + } + paramNameSet.push(paramNameSlice); + j = i + 1; + batchSize = 0; + } + } + } else { + paramNameSet = paramName; + } + data.originalFiles = files; + $.each(fileSet || files, function (index, element) { + var newData = $.extend({}, data); + newData.files = fileSet ? element : [element]; + newData.paramName = paramNameSet[index]; + that._initResponseObject(newData); + that._initProgressObject(newData); + that._addConvenienceMethods(e, newData); + result = that._trigger( + 'add', + $.Event('add', {delegatedEvent: e}), + newData + ); + return result; + }); + return result; + }, + + _replaceFileInput: function (data) { + var input = data.fileInput, + inputClone = input.clone(true), + restoreFocus = input.is(document.activeElement); + // Add a reference for the new cloned file input to the data argument: + data.fileInputClone = inputClone; + $('
    ').append(inputClone)[0].reset(); + // Detaching allows to insert the fileInput on another form + // without loosing the file input value: + input.after(inputClone).detach(); + // If the fileInput had focus before it was detached, + // restore focus to the inputClone. + if (restoreFocus) { + inputClone.focus(); + } + // Avoid memory leaks with the detached file input: + $.cleanData(input.unbind('remove')); + // Replace the original file input element in the fileInput + // elements set with the clone, which has been copied including + // event handlers: + this.options.fileInput = this.options.fileInput.map(function (i, el) { + if (el === input[0]) { + return inputClone[0]; + } + return el; + }); + // If the widget has been initialized on the file input itself, + // override this.element with the file input clone: + if (input[0] === this.element[0]) { + this.element = inputClone; + } + }, + + _handleFileTreeEntry: function (entry, path) { + var that = this, + dfd = $.Deferred(), + entries = [], + dirReader, + errorHandler = function (e) { + if (e && !e.entry) { + e.entry = entry; + } + // Since $.when returns immediately if one + // Deferred is rejected, we use resolve instead. + // This allows valid files and invalid items + // to be returned together in one set: + dfd.resolve([e]); + }, + successHandler = function (entries) { + that._handleFileTreeEntries( + entries, + path + entry.name + '/' + ).done(function (files) { + dfd.resolve(files); + }).fail(errorHandler); + }, + readEntries = function () { + dirReader.readEntries(function (results) { + if (!results.length) { + successHandler(entries); + } else { + entries = entries.concat(results); + readEntries(); + } + }, errorHandler); + }; + path = path || ''; + if (entry.isFile) { + if (entry._file) { + // Workaround for Chrome bug #149735 + entry._file.relativePath = path; + dfd.resolve(entry._file); + } else { + entry.file(function (file) { + file.relativePath = path; + dfd.resolve(file); + }, errorHandler); + } + } else if (entry.isDirectory) { + dirReader = entry.createReader(); + readEntries(); + } else { + // Return an empty list for file system items + // other than files or directories: + dfd.resolve([]); + } + return dfd.promise(); + }, + + _handleFileTreeEntries: function (entries, path) { + var that = this; + return $.when.apply( + $, + $.map(entries, function (entry) { + return that._handleFileTreeEntry(entry, path); + }) + ).then(function () { + return Array.prototype.concat.apply( + [], + arguments + ); + }); + }, + + _getDroppedFiles: function (dataTransfer) { + dataTransfer = dataTransfer || {}; + var items = dataTransfer.items; + if (items && items.length && (items[0].webkitGetAsEntry || + items[0].getAsEntry)) { + return this._handleFileTreeEntries( + $.map(items, function (item) { + var entry; + if (item.webkitGetAsEntry) { + entry = item.webkitGetAsEntry(); + if (entry) { + // Workaround for Chrome bug #149735: + entry._file = item.getAsFile(); + } + return entry; + } + return item.getAsEntry(); + }) + ); + } + return $.Deferred().resolve( + $.makeArray(dataTransfer.files) + ).promise(); + }, + + _getSingleFileInputFiles: function (fileInput) { + fileInput = $(fileInput); + var entries = fileInput.prop('webkitEntries') || + fileInput.prop('entries'), + files, + value; + if (entries && entries.length) { + return this._handleFileTreeEntries(entries); + } + files = $.makeArray(fileInput.prop('files')); + if (!files.length) { + value = fileInput.prop('value'); + if (!value) { + return $.Deferred().resolve([]).promise(); + } + // If the files property is not available, the browser does not + // support the File API and we add a pseudo File object with + // the input value as name with path information removed: + files = [{name: value.replace(/^.*\\/, '')}]; + } else if (files[0].name === undefined && files[0].fileName) { + // File normalization for Safari 4 and Firefox 3: + $.each(files, function (index, file) { + file.name = file.fileName; + file.size = file.fileSize; + }); + } + return $.Deferred().resolve(files).promise(); + }, + + _getFileInputFiles: function (fileInput) { + if (!(fileInput instanceof $) || fileInput.length === 1) { + return this._getSingleFileInputFiles(fileInput); + } + return $.when.apply( + $, + $.map(fileInput, this._getSingleFileInputFiles) + ).then(function () { + return Array.prototype.concat.apply( + [], + arguments + ); + }); + }, + + _onChange: function (e) { + var that = this, + data = { + fileInput: $(e.target), + form: $(e.target.form) + }; + this._getFileInputFiles(data.fileInput).always(function (files) { + data.files = files; + if (that.options.replaceFileInput) { + that._replaceFileInput(data); + } + if (that._trigger( + 'change', + $.Event('change', {delegatedEvent: e}), + data + ) !== false) { + that._onAdd(e, data); + } + }); + }, + + _onPaste: function (e) { + var items = e.originalEvent && e.originalEvent.clipboardData && + e.originalEvent.clipboardData.items, + data = {files: []}; + if (items && items.length) { + $.each(items, function (index, item) { + var file = item.getAsFile && item.getAsFile(); + if (file) { + data.files.push(file); + } + }); + if (this._trigger( + 'paste', + $.Event('paste', {delegatedEvent: e}), + data + ) !== false) { + this._onAdd(e, data); + } + } + }, + + _onDrop: function (e) { + e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer; + var that = this, + dataTransfer = e.dataTransfer, + data = {}; + if (dataTransfer && dataTransfer.files && dataTransfer.files.length) { + e.preventDefault(); + this._getDroppedFiles(dataTransfer).always(function (files) { + data.files = files; + if (that._trigger( + 'drop', + $.Event('drop', {delegatedEvent: e}), + data + ) !== false) { + that._onAdd(e, data); + } + }); + } + }, + + _onDragOver: getDragHandler('dragover'), + + _onDragEnter: getDragHandler('dragenter'), + + _onDragLeave: getDragHandler('dragleave'), + + _initEventHandlers: function () { + if (this._isXHRUpload(this.options)) { + this._on(this.options.dropZone, { + dragover: this._onDragOver, + drop: this._onDrop, + // event.preventDefault() on dragenter is required for IE10+: + dragenter: this._onDragEnter, + // dragleave is not required, but added for completeness: + dragleave: this._onDragLeave + }); + this._on(this.options.pasteZone, { + paste: this._onPaste + }); + } + if ($.support.fileInput) { + this._on(this.options.fileInput, { + change: this._onChange + }); + } + }, + + _destroyEventHandlers: function () { + this._off(this.options.dropZone, 'dragenter dragleave dragover drop'); + this._off(this.options.pasteZone, 'paste'); + this._off(this.options.fileInput, 'change'); + }, + + _destroy: function () { + this._destroyEventHandlers(); + }, + + _setOption: function (key, value) { + var reinit = $.inArray(key, this._specialOptions) !== -1; + if (reinit) { + this._destroyEventHandlers(); + } + this._super(key, value); + if (reinit) { + this._initSpecialOptions(); + this._initEventHandlers(); + } + }, + + _initSpecialOptions: function () { + var options = this.options; + if (options.fileInput === undefined) { + options.fileInput = this.element.is('input[type="file"]') ? + this.element : this.element.find('input[type="file"]'); + } else if (!(options.fileInput instanceof $)) { + options.fileInput = $(options.fileInput); + } + if (!(options.dropZone instanceof $)) { + options.dropZone = $(options.dropZone); + } + if (!(options.pasteZone instanceof $)) { + options.pasteZone = $(options.pasteZone); + } + }, + + _getRegExp: function (str) { + var parts = str.split('/'), + modifiers = parts.pop(); + parts.shift(); + return new RegExp(parts.join('/'), modifiers); + }, + + _isRegExpOption: function (key, value) { + return key !== 'url' && $.type(value) === 'string' && + /^\/.*\/[igm]{0,3}$/.test(value); + }, + + _initDataAttributes: function () { + var that = this, + options = this.options, + data = this.element.data(); + // Initialize options set via HTML5 data-attributes: + $.each( + this.element[0].attributes, + function (index, attr) { + var key = attr.name.toLowerCase(), + value; + if (/^data-/.test(key)) { + // Convert hyphen-ated key to camelCase: + key = key.slice(5).replace(/-[a-z]/g, function (str) { + return str.charAt(1).toUpperCase(); + }); + value = data[key]; + if (that._isRegExpOption(key, value)) { + value = that._getRegExp(value); + } + options[key] = value; + } + } + ); + }, + + _create: function () { + this._initDataAttributes(); + this._initSpecialOptions(); + this._slots = []; + this._sequence = this._getXHRPromise(true); + this._sending = this._active = 0; + this._initProgressObject(this); + this._initEventHandlers(); + }, + + // This method is exposed to the widget API and allows to query + // the number of active uploads: + active: function () { + return this._active; + }, + + // This method is exposed to the widget API and allows to query + // the widget upload progress. + // It returns an object with loaded, total and bitrate properties + // for the running uploads: + progress: function () { + return this._progress; + }, + + // This method is exposed to the widget API and allows adding files + // using the fileupload API. The data parameter accepts an object which + // must have a files property and can contain additional options: + // .fileupload('add', {files: filesList}); + add: function (data) { + var that = this; + if (!data || this.options.disabled) { + return; + } + if (data.fileInput && !data.files) { + this._getFileInputFiles(data.fileInput).always(function (files) { + data.files = files; + that._onAdd(null, data); + }); + } else { + data.files = $.makeArray(data.files); + this._onAdd(null, data); + } + }, + + // This method is exposed to the widget API and allows sending files + // using the fileupload API. The data parameter accepts an object which + // must have a files or fileInput property and can contain additional options: + // .fileupload('send', {files: filesList}); + // The method returns a Promise object for the file upload call. + send: function (data) { + if (data && !this.options.disabled) { + if (data.fileInput && !data.files) { + var that = this, + dfd = $.Deferred(), + promise = dfd.promise(), + jqXHR, + aborted; + promise.abort = function () { + aborted = true; + if (jqXHR) { + return jqXHR.abort(); + } + dfd.reject(null, 'abort', 'abort'); + return promise; + }; + this._getFileInputFiles(data.fileInput).always( + function (files) { + if (aborted) { + return; + } + if (!files.length) { + dfd.reject(); + return; + } + data.files = files; + jqXHR = that._onSend(null, data); + jqXHR.then( + function (result, textStatus, jqXHR) { + dfd.resolve(result, textStatus, jqXHR); + }, + function (jqXHR, textStatus, errorThrown) { + dfd.reject(jqXHR, textStatus, errorThrown); + } + ); + } + ); + return this._enhancePromise(promise); + } + data.files = $.makeArray(data.files); + if (data.files.length) { + return this._onSend(null, data); + } + } + return this._getXHRPromise(false, data && data.context); + } + + }); + +})); diff --git a/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.iframe-transport.js b/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.iframe-transport.js new file mode 100644 index 00000000..8d25c464 --- /dev/null +++ b/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/jquery.iframe-transport.js @@ -0,0 +1,224 @@ +/* + * jQuery Iframe Transport Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2011, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * https://opensource.org/licenses/MIT + */ + +/* global define, require, window, document, JSON */ + +;(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define(['jquery'], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS: + factory(require('jquery')); + } else { + // Browser globals: + factory(window.jQuery); + } +}(function ($) { + 'use strict'; + + // Helper variable to create unique names for the transport iframes: + var counter = 0, + jsonAPI = $, + jsonParse = 'parseJSON'; + + if ('JSON' in window && 'parse' in JSON) { + jsonAPI = JSON; + jsonParse = 'parse'; + } + + // The iframe transport accepts four additional options: + // options.fileInput: a jQuery collection of file input fields + // options.paramName: the parameter name for the file form data, + // overrides the name property of the file input field(s), + // can be a string or an array of strings. + // options.formData: an array of objects with name and value properties, + // equivalent to the return data of .serializeArray(), e.g.: + // [{name: 'a', value: 1}, {name: 'b', value: 2}] + // options.initialIframeSrc: the URL of the initial iframe src, + // by default set to "javascript:false;" + $.ajaxTransport('iframe', function (options) { + if (options.async) { + // javascript:false as initial iframe src + // prevents warning popups on HTTPS in IE6: + /*jshint scripturl: true */ + var initialIframeSrc = options.initialIframeSrc || 'javascript:false;', + /*jshint scripturl: false */ + form, + iframe, + addParamChar; + return { + send: function (_, completeCallback) { + form = $('
    '); + form.attr('accept-charset', options.formAcceptCharset); + addParamChar = /\?/.test(options.url) ? '&' : '?'; + // XDomainRequest only supports GET and POST: + if (options.type === 'DELETE') { + options.url = options.url + addParamChar + '_method=DELETE'; + options.type = 'POST'; + } else if (options.type === 'PUT') { + options.url = options.url + addParamChar + '_method=PUT'; + options.type = 'POST'; + } else if (options.type === 'PATCH') { + options.url = options.url + addParamChar + '_method=PATCH'; + options.type = 'POST'; + } + // IE versions below IE8 cannot set the name property of + // elements that have already been added to the DOM, + // so we set the name along with the iframe HTML markup: + counter += 1; + iframe = $( + '' + ).bind('load', function () { + var fileInputClones, + paramNames = $.isArray(options.paramName) ? + options.paramName : [options.paramName]; + iframe + .unbind('load') + .bind('load', function () { + var response; + // Wrap in a try/catch block to catch exceptions thrown + // when trying to access cross-domain iframe contents: + try { + response = iframe.contents(); + // Google Chrome and Firefox do not throw an + // exception when calling iframe.contents() on + // cross-domain requests, so we unify the response: + if (!response.length || !response[0].firstChild) { + throw new Error(); + } + } catch (e) { + response = undefined; + } + // The complete callback returns the + // iframe content document as response object: + completeCallback( + 200, + 'success', + {'iframe': response} + ); + // Fix for IE endless progress bar activity bug + // (happens on form submits to iframe targets): + $('') + .appendTo(form); + window.setTimeout(function () { + // Removing the form in a setTimeout call + // allows Chrome's developer tools to display + // the response result + form.remove(); + }, 0); + }); + form + .prop('target', iframe.prop('name')) + .prop('action', options.url) + .prop('method', options.type); + if (options.formData) { + $.each(options.formData, function (index, field) { + $('') + .prop('name', field.name) + .val(field.value) + .appendTo(form); + }); + } + if (options.fileInput && options.fileInput.length && + options.type === 'POST') { + fileInputClones = options.fileInput.clone(); + // Insert a clone for each file input field: + options.fileInput.after(function (index) { + return fileInputClones[index]; + }); + if (options.paramName) { + options.fileInput.each(function (index) { + $(this).prop( + 'name', + paramNames[index] || options.paramName + ); + }); + } + // Appending the file input fields to the hidden form + // removes them from their original location: + form + .append(options.fileInput) + .prop('enctype', 'multipart/form-data') + // enctype must be set as encoding for IE: + .prop('encoding', 'multipart/form-data'); + // Remove the HTML5 form attribute from the input(s): + options.fileInput.removeAttr('form'); + } + form.submit(); + // Insert the file input fields at their original location + // by replacing the clones with the originals: + if (fileInputClones && fileInputClones.length) { + options.fileInput.each(function (index, input) { + var clone = $(fileInputClones[index]); + // Restore the original name and form properties: + $(input) + .prop('name', clone.prop('name')) + .attr('form', clone.attr('form')); + clone.replaceWith(input); + }); + } + }); + form.append(iframe).appendTo(document.body); + }, + abort: function () { + if (iframe) { + // javascript:false as iframe src aborts the request + // and prevents warning popups on HTTPS in IE6. + // concat is used to avoid the "Script URL" JSLint error: + iframe + .unbind('load') + .prop('src', initialIframeSrc); + } + if (form) { + form.remove(); + } + } + }; + } + }); + + // The iframe transport returns the iframe content document as response. + // The following adds converters from iframe to text, json, html, xml + // and script. + // Please note that the Content-Type for JSON responses has to be text/plain + // or text/html, if the browser doesn't include application/json in the + // Accept header, else IE will show a download dialog. + // The Content-Type for XML responses on the other hand has to be always + // application/xml or text/xml, so IE properly parses the XML response. + // See also + // https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation + $.ajaxSetup({ + converters: { + 'iframe text': function (iframe) { + return iframe && $(iframe[0].body).text(); + }, + 'iframe json': function (iframe) { + return iframe && jsonAPI[jsonParse]($(iframe[0].body).text()); + }, + 'iframe html': function (iframe) { + return iframe && $(iframe[0].body).html(); + }, + 'iframe xml': function (iframe) { + var xmlDoc = iframe && iframe[0]; + return xmlDoc && $.isXMLDoc(xmlDoc) ? xmlDoc : + $.parseXML((xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) || + $(xmlDoc.body).html()); + }, + 'iframe script': function (iframe) { + return iframe && $.globalEval($(iframe[0].body).text()); + } + } + }); + +})); diff --git a/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/modernizr.custom.js b/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/modernizr.custom.js new file mode 100755 index 00000000..2ec5cd39 --- /dev/null +++ b/mayor-orig/mayor-base/www/skin/classic/share/javascript/filemanager/filemanager/js/modernizr.custom.js @@ -0,0 +1,4 @@ +/* Modernizr 2.7.1 (Custom Build) | MIT & BSD + * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-flexboxlegacy-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-shiv-cssclasses-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load + */ +;window.Modernizr=function(a,b,c){function B(a){j.cssText=a}function C(a,b){return B(n.join(a+";")+(b||""))}function D(a,b){return typeof a===b}function E(a,b){return!!~(""+a).indexOf(b)}function F(a,b){for(var d in a){var e=a[d];if(!E(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function G(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:D(f,"function")?f.bind(d||b):f}return!1}function H(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return D(b,"string")||D(b,"undefined")?F(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),G(e,b,c))}function I(){e.input=function(c){for(var d=0,e=c.length;d',a,""].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},y=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=D(e[d],"function"),D(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),z={}.hasOwnProperty,A;!D(z,"undefined")&&!D(z.call,"undefined")?A=function(a,b){return z.call(a,b)}:A=function(a,b){return b in a&&D(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=v.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(v.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(v.call(arguments)))};return e}),r.flexbox=function(){return H("flexWrap")},r.flexboxlegacy=function(){return H("boxDirection")},r.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},r.canvastext=function(){return!!e.canvas&&!!D(b.createElement("canvas").getContext("2d").fillText,"function")},r.postmessage=function(){return!!a.postMessage},r.websqldatabase=function(){return!!a.openDatabase},r.indexedDB=function(){return!!H("indexedDB",a)},r.hashchange=function(){return y("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},r.history=function(){return!!a.history&&!!history.pushState},r.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},r.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},r.rgba=function(){return B("background-color:rgba(150,255,150,.5)"),E(j.backgroundColor,"rgba")},r.hsla=function(){return B("background-color:hsla(120,40%,100%,.5)"),E(j.backgroundColor,"rgba")||E(j.backgroundColor,"hsla")},r.multiplebgs=function(){return B("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},r.backgroundsize=function(){return H("backgroundSize")},r.borderimage=function(){return H("borderImage")},r.borderradius=function(){return H("borderRadius")},r.boxshadow=function(){return H("boxShadow")},r.textshadow=function(){return b.createElement("div").style.textShadow===""},r.opacity=function(){return C("opacity:.55"),/^0.55$/.test(j.opacity)},r.cssanimations=function(){return H("animationName")},r.csscolumns=function(){return H("columnCount")},r.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return B((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),E(j.backgroundImage,"gradient")},r.cssreflections=function(){return H("boxReflect")},r.csstransforms=function(){return!!H("transform")},r.csstransforms3d=function(){var a=!!H("perspective");return a&&"webkitPerspective"in g.style&&x("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},r.csstransitions=function(){return H("transition")},r.fontface=function(){var a;return x('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},r.generatedcontent=function(){var a;return x(["#",h,"{font:0/0 a}#",h,':after{content:"',l,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},r.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},r.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},r.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},r.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},r.webworkers=function(){return!!a.Worker},r.applicationcache=function(){return!!a.applicationCache};for(var J in r)A(r,J)&&(w=J.toLowerCase(),e[w]=r[J](),u.push((e[w]?"":"no-")+w));return e.input||I(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)A(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},B(""),i=k=null,function(a,b){function l(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function m(){var a=s.elements;return typeof a=="string"?a.split(" "):a}function n(a){var b=j[a[h]];return b||(b={},i++,a[h]=i,j[i]=b),b}function o(a,c,d){c||(c=b);if(k)return c.createElement(a);d||(d=n(c));var g;return d.cache[a]?g=d.cache[a].cloneNode():f.test(a)?g=(d.cache[a]=d.createElem(a)).cloneNode():g=d.createElem(a),g.canHaveChildren&&!e.test(a)&&!g.tagUrn?d.frag.appendChild(g):g}function p(a,c){a||(a=b);if(k)return a.createDocumentFragment();c=c||n(a);var d=c.frag.cloneNode(),e=0,f=m(),g=f.length;for(;e",g="hidden"in a,k=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){g=!0,k=!0}})();var s={elements:d.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:c,shivCSS:d.shivCSS!==!1,supportsUnknownElements:k,shivMethods:d.shivMethods!==!1,type:"default",shivDocument:r,createElement:o,createDocumentFragment:p};a.html5=s,r(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.hasEvent=y,e.testProp=function(a){return F([a])},e.testAllProps=H,e.testStyles=x,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+u.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f=n-r?"bottom":null!=s&&o<=s&&"top"),this.affixed!==t&&(this.affixed=t,this.unpin="bottom"==t?i.top-o:null,this.$element.removeClass(c).addClass("affix"+(t?"-"+t:"")))}};var n=e.fn.affix;e.fn.affix=function(n){return this.each(function(){var o=e(this),i=o.data("affix"),a="object"==typeof n&&n;i||o.data("affix",i=new t(this,a)),"string"==typeof n&&i[n]()})},e.fn.affix.Constructor=t,e.fn.affix.defaults={offset:0},e.fn.affix.noConflict=function(){return e.fn.affix=n,this},e(window).on("load",function(){e('[data-spy="affix"]').each(function(){var t=e(this),n=t.data();n.offset=n.offset||{},n.offsetBottom&&(n.offset.bottom=n.offsetBottom),n.offsetTop&&(n.offset.top=n.offsetTop),t.affix(n)})})}(window.jQuery),!function(e){"use strict";function t(){e(".dropdown-backdrop").remove(),e(o).each(function(){n(e(this)).removeClass("open")})}function n(t){var n,o=t.attr("data-target");return o||(o=t.attr("href"),o=o&&/#/.test(o)&&o.replace(/.*(?=#[^\s]*$)/,"")),n=o&&e(o),n&&n.length||(n=t.parent()),n}var o="[data-toggle=dropdown]",i=function(t){var n=e(t).on("click.dropdown.data-api",this.toggle);e("html").on("click.dropdown.data-api",function(){n.parent().removeClass("open")})};i.prototype={constructor:i,toggle:function(o){var i,a,r=e(this);if(!r.is(".disabled, :disabled"))return i=n(r),a=i.hasClass("open"),t(),a||("ontouchstart"in document.documentElement&&e(' diff --git a/mayor-orig/mayor-fenntarto/log/mayor-fenntarto.rev b/mayor-orig/mayor-fenntarto/log/mayor-fenntarto.rev index 7e1fd933..1a48a10f 100644 --- a/mayor-orig/mayor-fenntarto/log/mayor-fenntarto.rev +++ b/mayor-orig/mayor-fenntarto/log/mayor-fenntarto.rev @@ -1 +1 @@ -4716 +4787 diff --git a/mayor-orig/mayor-installer-orig/log/mayor-installer.rev b/mayor-orig/mayor-installer-orig/log/mayor-installer.rev index 7e1fd933..1a48a10f 100644 --- a/mayor-orig/mayor-installer-orig/log/mayor-installer.rev +++ b/mayor-orig/mayor-installer-orig/log/mayor-installer.rev @@ -1 +1 @@ -4716 +4787 diff --git a/mayor-orig/mayor-installer-sulix/log/mayor-installer-sulix.rev b/mayor-orig/mayor-installer-sulix/log/mayor-installer-sulix.rev index 7e1fd933..1a48a10f 100644 --- a/mayor-orig/mayor-installer-sulix/log/mayor-installer-sulix.rev +++ b/mayor-orig/mayor-installer-sulix/log/mayor-installer-sulix.rev @@ -1 +1 @@ -4716 +4787 diff --git a/mayor-orig/mayor-jatek/log/mayor-jatek.rev b/mayor-orig/mayor-jatek/log/mayor-jatek.rev index 7e1fd933..1a48a10f 100644 --- a/mayor-orig/mayor-jatek/log/mayor-jatek.rev +++ b/mayor-orig/mayor-jatek/log/mayor-jatek.rev @@ -1 +1 @@ -4716 +4787 diff --git a/mayor-orig/mayor-jatek/www/include/alert/hu_HU/module-jatek.php b/mayor-orig/mayor-jatek/www/include/alert/hu_HU/module-jatek.php index e69de29b..15c5adc7 100644 --- a/mayor-orig/mayor-jatek/www/include/alert/hu_HU/module-jatek.php +++ b/mayor-orig/mayor-jatek/www/include/alert/hu_HU/module-jatek.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/mayor-orig/mayor-locales-de_DE/log/mayor-locales-de_DE.rev b/mayor-orig/mayor-locales-de_DE/log/mayor-locales-de_DE.rev index 7e1fd933..1a48a10f 100644 --- a/mayor-orig/mayor-locales-de_DE/log/mayor-locales-de_DE.rev +++ b/mayor-orig/mayor-locales-de_DE/log/mayor-locales-de_DE.rev @@ -1 +1 @@ -4716 +4787 diff --git a/mayor-orig/mayor-locales-en_US/log/mayor-locales-en_US.rev b/mayor-orig/mayor-locales-en_US/log/mayor-locales-en_US.rev index 7e1fd933..1a48a10f 100644 --- a/mayor-orig/mayor-locales-en_US/log/mayor-locales-en_US.rev +++ b/mayor-orig/mayor-locales-en_US/log/mayor-locales-en_US.rev @@ -1 +1 @@ -4716 +4787 diff --git a/mayor-orig/mayor-locales-jp_JP/log/mayor-locales-jp_JP.rev b/mayor-orig/mayor-locales-jp_JP/log/mayor-locales-jp_JP.rev index 7e1fd933..1a48a10f 100644 --- a/mayor-orig/mayor-locales-jp_JP/log/mayor-locales-jp_JP.rev +++ b/mayor-orig/mayor-locales-jp_JP/log/mayor-locales-jp_JP.rev @@ -1 +1 @@ -4716 +4787 diff --git a/mayor-orig/mayor-naplo/install/module-naplo/mysql/intezmeny.sql b/mayor-orig/mayor-naplo/install/module-naplo/mysql/intezmeny.sql index 8254eb20..2ae43535 100644 --- a/mayor-orig/mayor-naplo/install/module-naplo/mysql/intezmeny.sql +++ b/mayor-orig/mayor-naplo/install/module-naplo/mysql/intezmeny.sql @@ -215,7 +215,7 @@ CREATE TABLE `idoszak` ( `idoszakId` smallint(5) unsigned NOT NULL AUTO_INCREMENT, `tanev` smallint(5) unsigned NOT NULL, `szemeszter` tinyint(3) unsigned NOT NULL, - `tipus` enum('zárás','bizonyítvány írás','vizsga','előzetes tárgyválasztás','tárgyválasztás','tankörnévsor módosítás','fogadóóra jelentkezés','tanmenet leadás') COLLATE utf8_hungarian_ci DEFAULT NULL, + `tipus` enum('zárás','bizonyítvány írás','vizsga','előzetes tárgyválasztás','tárgyválasztás','tankörnévsor módosítás','fogadóóra jelentkezés','tanmenet leadás','felvételi szóbeli lekérdezés','felvételi ideiglenes rangsor lekérdezés','felvételi végeredmény lekérdezés') COLLATE utf8_hungarian_ci DEFAULT NULL, `tolDt` datetime NOT NULL, `igDt` datetime NOT NULL, PRIMARY KEY (`idoszakId`), @@ -286,6 +286,7 @@ CREATE TABLE `tanar` ( `titulusRovid` varchar(10) COLLATE utf8_hungarian_ci DEFAULT '', `email` varchar(64) COLLATE utf8_hungarian_ci DEFAULT '', `kretaNev` varchar(64) COLLATE utf8_hungarian_ci DEFAULT NULL, + `elerhetoseg` varchar(64) COLLATE utf8_hungarian_ci DEFAULT NULL, PRIMARY KEY (`tanarId`), UNIQUE KEY `tanarOid` (`oId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; @@ -958,6 +959,20 @@ CREATE TABLE `cimke` ( PRIMARY KEY (`cimkeId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; +CREATE TABLE `dokumentum` ( + `dokumentumId` int(10) unsigned NOT NULL AUTO_INCREMENT, + `dokumentumLeiras` varchar(511) COLLATE utf8_hungarian_ci NOT NULL, + `dokumentumRovidLeiras` varchar(255) COLLATE utf8_hungarian_ci NOT NULL, + `dokumentumUrl` varchar(1023) COLLATE utf8_hungarian_ci DEFAULT NULL, + `dokumentumMegjegyzes` varchar(63) COLLATE utf8_hungarian_ci NOT NULL, + `dokumentumSorrend` smallint(6) DEFAULT '1', + `dokumentumDt` datetime DEFAULT NULL, + `dokumentumPolicy` enum('public','parent','private') COLLATE utf8_hungarian_ci DEFAULT NULL, + `dokumentumTipus` enum('general','tanev') COLLATE utf8_hungarian_ci DEFAULT NULL, + PRIMARY KEY (`dokumentumId`), + KEY `dokumentumSorrend` (`dokumentumSorrend`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; + DELIMITER // DROP FUNCTION IF EXISTS diakNaploSorszam // CREATE function diakNaploSorszam ( thisDiakId INT, thisTanev INT, thisOsztalyId INT ) returns INT diff --git a/mayor-orig/mayor-naplo/install/module-naplo/mysql/tanev.sql b/mayor-orig/mayor-naplo/install/module-naplo/mysql/tanev.sql index 3ba37839..853375b0 100644 --- a/mayor-orig/mayor-naplo/install/module-naplo/mysql/tanev.sql +++ b/mayor-orig/mayor-naplo/install/module-naplo/mysql/tanev.sql @@ -765,6 +765,104 @@ CREATE TABLE `jegyzetTankor` ( CONSTRAINT `oraCimke_ibfk_2` FOREIGN KEY (`cimkeId`) REFERENCES `%DB%`.`cimke` (`cimkeId`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; +CREATE TABLE `felveteli` ( + `oId` bigint(20) NOT NULL, + `nev` varchar(50) COLLATE utf8_hungarian_ci DEFAULT NULL, + `jelige` varchar(30) COLLATE utf8_hungarian_ci DEFAULT NULL, + `omkod` varchar(7) CHARACTER SET utf8 DEFAULT NULL, + `szuldt` date DEFAULT NULL, + `fl` enum('fiú','lány') CHARACTER SET utf8 DEFAULT NULL, + `an` varchar(50) CHARACTER SET utf8 DEFAULT NULL, + `lakcim_irsz` varchar(5) CHARACTER SET utf8 DEFAULT NULL, + `lakcim_telepules` varchar(40) CHARACTER SET utf8 DEFAULT NULL, + `lakcim_utcahazszam` varchar(50) CHARACTER SET utf8 DEFAULT NULL, + `tartozkodasi_irsz` varchar(5) CHARACTER SET utf8 DEFAULT NULL, + `tartozkodasi_telepules` varchar(40) CHARACTER SET utf8 DEFAULT NULL, + `tartozkodasi_utcahazszam` varchar(50) CHARACTER SET utf8 DEFAULT NULL, + `atlag` decimal(4,2) DEFAULT NULL, + `jel_tagozat1` smallint(5) unsigned DEFAULT NULL, + `jel_tagozat2` smallint(5) unsigned DEFAULT NULL, + `jel_tagozat3` smallint(5) unsigned DEFAULT NULL, + `jel_tagozat4` smallint(5) unsigned DEFAULT NULL, + `jel_tagozat5` smallint(5) unsigned DEFAULT NULL, + `jel_tagozat6` smallint(5) unsigned DEFAULT NULL, + `magyar` smallint(5) unsigned NOT NULL DEFAULT '0', + `matek` smallint(5) unsigned NOT NULL DEFAULT '0', + `pont` decimal(5,2) DEFAULT NULL, + `evfolyam` enum('4','5','6','8','') COLLATE utf8_hungarian_ci DEFAULT NULL, + `rangsor` smallint(5) unsigned DEFAULT NULL, + `jelenleg` varchar(50) CHARACTER SET utf8 DEFAULT NULL, + `joslat` varchar(250) CHARACTER SET utf8 DEFAULT NULL, + `vegeredmeny` varchar(60) COLLATE utf8_hungarian_ci DEFAULT NULL, + `level1` enum('nincs értesítve','értesítve') CHARACTER SET utf8 DEFAULT NULL, + `level2` enum('nincs értesítve','nem kell értesíteni','értesítve') CHARACTER SET utf8 DEFAULT NULL, + `extra` varchar(100) COLLATE utf8_hungarian_ci DEFAULT NULL, + `felveteliId` int(10) unsigned NOT NULL AUTO_INCREMENT, + PRIMARY KEY (`felveteliId`), + UNIQUE KEY `indx_fa_oId2` (`oId`), + KEY `indx_fa_oId` (`oId`), + KEY `indx_fa_nev` (`nev`,`oId`), + KEY `indx_fa_jelige` (`jelige`,`oId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; + +CREATE TABLE `felveteli_levelLog` ( + `oId` bigint(20) NOT NULL, + `generalasDt` datetime DEFAULT NULL, + `ip` varchar(32) COLLATE utf8_hungarian_ci DEFAULT NULL, + `token` varchar(64) COLLATE utf8_hungarian_ci DEFAULT NULL, + `letoltesDt` datetime DEFAULT NULL, + KEY `IDX_levelLog_oId` (`oId`), + CONSTRAINT `felveteli_levelLog_ibfk_1` FOREIGN KEY (`oId`) REFERENCES `felveteli` (`oId`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; + +CREATE TABLE `felveteli_tagozat` ( + `tagozat` int(11) unsigned NOT NULL, + `tagozatNev` varchar(64) COLLATE utf8_hungarian_ci NOT NULL, + `szobeliMegjegyzes` varchar(255) COLLATE utf8_hungarian_ci DEFAULT NULL, + `szobeliNelkulAjanlat` varchar(255) COLLATE utf8_hungarian_ci DEFAULT NULL, + `szobeliElutasito` varchar(255) COLLATE utf8_hungarian_ci DEFAULT NULL, + PRIMARY KEY (`tagozat`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; + +CREATE TABLE `felveteli_szobeli` ( + `felveteliSzobeliId` int(10) unsigned NOT NULL AUTO_INCREMENT, + `oId` bigint(20) NOT NULL, + `szoveg` varchar(128) CHARACTER SET utf8 DEFAULT NULL, + `bizottsag` varchar(10) COLLATE utf8_hungarian_ci DEFAULT NULL, + `nap` varchar(10) CHARACTER SET utf8 DEFAULT NULL, + `napdt` date DEFAULT NULL, + `ido` time DEFAULT NULL, + `tagozat` int(11) unsigned DEFAULT NULL, + `szobeliTipus` enum('szóbeli','szóbeli nélküli ajánlat','elutasítás') COLLATE utf8_hungarian_ci DEFAULT 'szóbeli', + `szobelipont` tinyint(3) unsigned DEFAULT NULL, + PRIMARY KEY (`felveteliSzobeliId`), + KEY `oId` (`oId`), + KEY `felveteli_szobeli_ibfk_2` (`tagozat`), + CONSTRAINT `felveteli_szobeli_ibfk_1` FOREIGN KEY (`oId`) REFERENCES `felveteli` (`oId`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `felveteli_szobeli_ibfk_2` FOREIGN KEY (`tagozat`) REFERENCES `felveteli_tagozat` (`tagozat`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; + + CREATE TABLE `felveteli_jelentkezes` ( + `oId` bigint(20) NOT NULL, + `tagozat` int(11) unsigned NOT NULL DEFAULT '0', + `ideiglenesRangsor` mediumint(8) unsigned NOT NULL, + PRIMARY KEY (`oId`,`tagozat`), + KEY `felveteli_jelentkezes_ibfk_2` (`tagozat`), + CONSTRAINT `felveteli_jelentkezes_ibfk_1` FOREIGN KEY (`oId`) REFERENCES `felveteli` (`oId`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `felveteli_jelentkezes_ibfk_2` FOREIGN KEY (`tagozat`) REFERENCES `felveteli_tagozat` (`tagozat`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; + +CREATE TABLE `felveteli_iskolak` ( + `omkod` varchar(7) CHARACTER SET utf8 DEFAULT NULL, + `iskolaNev` varchar(128) COLLATE utf8_hungarian_ci DEFAULT NULL, + `iskolaIrsz` varchar(10) COLLATE utf8_hungarian_ci DEFAULT NULL, + `iskolaCim` varchar(128) COLLATE utf8_hungarian_ci DEFAULT NULL, + `iskolaTelepules` varchar(64) COLLATE utf8_hungarian_ci DEFAULT NULL, + `iskolaTelefon` varchar(32) COLLATE utf8_hungarian_ci DEFAULT NULL, + `iskolaEmail` varchar(64) COLLATE utf8_hungarian_ci DEFAULT NULL, + KEY `ID_felveteli_iskolak_omkod` (`omkod`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; + DROP FUNCTION IF EXISTS getNev; DROP FUNCTION IF EXISTS getOraIgTime; DROP FUNCTION IF EXISTS getOraTolTime; diff --git a/mayor-orig/mayor-naplo/log/mayor-naplo.rev b/mayor-orig/mayor-naplo/log/mayor-naplo.rev index 7e1fd933..1a48a10f 100644 --- a/mayor-orig/mayor-naplo/log/mayor-naplo.rev +++ b/mayor-orig/mayor-naplo/log/mayor-naplo.rev @@ -1 +1 @@ -4716 +4787 diff --git a/mayor-orig/mayor-naplo/update/pre004721-1-intezmeny.sql b/mayor-orig/mayor-naplo/update/pre004721-1-intezmeny.sql new file mode 100644 index 00000000..581c58de --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004721-1-intezmeny.sql @@ -0,0 +1,13 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4721 $$ + +CREATE PROCEDURE upgrade_database_4721() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='tanar' and COLUMN_NAME='elerhetoseg') THEN + ALTER TABLE `tanar` ADD `elerhetoseg` varchar(64) COLLATE utf8_hungarian_ci DEFAULT NULL; +END IF; +END $$ +DELIMITER ; +CALL upgrade_database_4721(); diff --git a/mayor-orig/mayor-naplo/update/pre004722-1-naplo.sql b/mayor-orig/mayor-naplo/update/pre004722-1-naplo.sql new file mode 100644 index 00000000..f09f8f4f --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004722-1-naplo.sql @@ -0,0 +1,98 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4722 $$ + +CREATE PROCEDURE upgrade_database_4722() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +IF NOT EXISTS ( + SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='felveteli' +) THEN +CREATE TABLE `felveteli` ( + `oId` bigint(20) NOT NULL, + `nev` varchar(50) COLLATE utf8_hungarian_ci DEFAULT NULL, + `jelige` varchar(30) COLLATE utf8_hungarian_ci DEFAULT NULL, + `omkod` varchar(7) CHARACTER SET utf8 DEFAULT NULL, + `szuldt` date DEFAULT NULL, + `fl` enum('fiú','lány') CHARACTER SET utf8 DEFAULT NULL, + `an` varchar(50) CHARACTER SET utf8 DEFAULT NULL, + `lakcim_irsz` varchar(5) CHARACTER SET utf8 DEFAULT NULL, + `lakcim_telepules` varchar(40) CHARACTER SET utf8 DEFAULT NULL, + `lakcim_utcahazszam` varchar(50) CHARACTER SET utf8 DEFAULT NULL, + `tartozkodasi_irsz` varchar(5) CHARACTER SET utf8 DEFAULT NULL, + `tartozkodasi_telepules` varchar(40) CHARACTER SET utf8 DEFAULT NULL, + `tartozkodasi_utcahazszam` varchar(50) CHARACTER SET utf8 DEFAULT NULL, + `atlag` decimal(4,2) DEFAULT NULL, + `jel_tagozat1` smallint(5) unsigned DEFAULT NULL, + `jel_tagozat2` smallint(5) unsigned DEFAULT NULL, + `jel_tagozat3` smallint(5) unsigned DEFAULT NULL, + `jel_tagozat4` smallint(5) unsigned DEFAULT NULL, + `jel_tagozat5` smallint(5) unsigned DEFAULT NULL, + `jel_tagozat6` smallint(5) unsigned DEFAULT NULL, + `magyar` smallint(5) unsigned NOT NULL DEFAULT '0', + `matek` smallint(5) unsigned NOT NULL DEFAULT '0', + `pont` decimal(5,2) DEFAULT NULL, + `evfolyam` ENUM('4','5','6','8','') DEFAULT NULL, + `rangsor` smallint(5) unsigned DEFAULT NULL, + `jelenleg` varchar(50) CHARACTER SET utf8 DEFAULT NULL, + `joslat` varchar(50) CHARACTER SET utf8 DEFAULT NULL, + `vegeredmeny` varchar(40) COLLATE utf8_hungarian_ci DEFAULT NULL, + `level1` enum('nincs értesítve','értesítve') CHARACTER SET utf8 DEFAULT NULL, + `level2` enum('nincs értesítve','nem kell értesíteni','értesítve') CHARACTER SET utf8 DEFAULT NULL, + `extra` varchar(100) COLLATE utf8_hungarian_ci DEFAULT NULL, + `felveteliId` int(10) unsigned NOT NULL AUTO_INCREMENT, + PRIMARY KEY (`felveteliId`), + KEY `indx_fa_oId` (`oId`), + KEY `indx_fa_nev` (`nev`,`oId`), + KEY `indx_fa_jelige` (`jelige`,`oId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; +END IF; +IF NOT EXISTS ( + SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='felveteli_tagozat' +) THEN +CREATE TABLE `felveteli_tagozat` ( + `tagozat` int(11) unsigned NOT NULL, + `tagozatNev` varchar(64) NOT NULL, + `szobeliMegjegyzes` varchar(255) DEFAULT NULL, + `szobeliNelkulAjanlat` varchar(255) DEFAULT NULL, + `szobeliElutasito` varchar(255) DEFAULT NULL, + PRIMARY KEY (`tagozat`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; +END IF; + +IF NOT EXISTS ( + SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='felveteli_szobeli' +) THEN +CREATE TABLE `felveteli_szobeli` ( + `felveteliSzobeliId` int(10) unsigned NOT NULL AUTO_INCREMENT, + `oId` bigint(20) NOT NULL, + `szoveg` varchar(128) CHARACTER SET utf8 DEFAULT NULL, + `bizottsag` varchar(10) COLLATE utf8_hungarian_ci DEFAULT NULL, + `nap` varchar(10) CHARACTER SET utf8 DEFAULT NULL, + `napdt` date DEFAULT NULL, + `ido` time DEFAULT NULL, + `tagozat` int(11) unsigned DEFAULT NULL, + `szobeliTipus` enum ('szóbeli','szóbeli nélküli ajánlat','elutasítás') DEFAULT 'szóbeli', + PRIMARY KEY (`felveteliSzobeliId`), + KEY `oId` (`oId`), + CONSTRAINT `felveteli_szobeli_ibfk_1` FOREIGN KEY (`oId`) REFERENCES `felveteli` (`oId`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `felveteli_szobeli_ibfk_2` FOREIGN KEY (`tagozat`) REFERENCES `felveteli_tagozat` (`tagozat`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; +END IF; + +IF NOT EXISTS ( + SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='felveteli_jelentkezes' +) THEN +CREATE TABLE `felveteli_jelentkezes` ( + `oId` bigint(20) NOT NULL, + `tagozat` int(11) unsigned DEFAULT NULL, + PRIMARY KEY (`oId`,`tagozat`), + CONSTRAINT `felveteli_jelentkezes_ibfk_1` FOREIGN KEY (`oId`) REFERENCES `felveteli` (`oId`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `felveteli_jelentkezes_ibfk_2` FOREIGN KEY (`tagozat`) REFERENCES `felveteli_tagozat` (`tagozat`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; +END IF; + + +END $$ +DELIMITER ; +CALL upgrade_database_4722(); diff --git a/mayor-orig/mayor-naplo/update/pre004722-2-intezmeny.sql b/mayor-orig/mayor-naplo/update/pre004722-2-intezmeny.sql new file mode 100644 index 00000000..795c266c --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004722-2-intezmeny.sql @@ -0,0 +1,12 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4722b $$ + +CREATE PROCEDURE upgrade_database_4722b() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +ALTER TABLE `idoszak` MODIFY `tipus` enum('zárás','bizonyítvány írás','vizsga','előzetes tárgyválasztás','tárgyválasztás','tankörnévsor módosítás','fogadóóra jelentkezés','tanmenet leadás','felvételi szóbeli lekérdezés','felvételi ideiglenes rangsor lekérdezés','felvételi végeredmény lekérdezés') COLLATE utf8_hungarian_ci DEFAULT NULL; + +END $$ +DELIMITER ; +CALL upgrade_database_4722b(); diff --git a/mayor-orig/mayor-naplo/update/pre004725-1-naplo.sql b/mayor-orig/mayor-naplo/update/pre004725-1-naplo.sql new file mode 100644 index 00000000..c9124f12 --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004725-1-naplo.sql @@ -0,0 +1,16 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4725 $$ + +CREATE PROCEDURE upgrade_database_4725() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +IF NOT EXISTS ( + SELECT * FROM information_schema.statistics WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='felveteli' and INDEX_NAME = 'indx_fa_oId2' +) THEN + ALTER TABLE felveteli ADD UNIQUE KEY indx_fa_oId2 (oId); +END IF; + +END $$ +DELIMITER ; +CALL upgrade_database_4725(); diff --git a/mayor-orig/mayor-naplo/update/pre004734-1-naplo.sql b/mayor-orig/mayor-naplo/update/pre004734-1-naplo.sql new file mode 100644 index 00000000..a0bc8010 --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004734-1-naplo.sql @@ -0,0 +1,16 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4734 $$ + +CREATE PROCEDURE upgrade_database_4734() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +IF NOT EXISTS ( + SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='felveteli_szobeli' and COLUMN_NAME='szobelipont' +) THEN + ALTER TABLE felveteli_szobeli ADD szobelipont tinyint UNSIGNED DEFAULT NULL; +END IF; + +END $$ +DELIMITER ; +CALL upgrade_database_4734(); diff --git a/mayor-orig/mayor-naplo/update/pre004735-1-intezmeny.sql b/mayor-orig/mayor-naplo/update/pre004735-1-intezmeny.sql new file mode 100644 index 00000000..02fb5bf5 --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004735-1-intezmeny.sql @@ -0,0 +1,24 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4735 $$ + +CREATE PROCEDURE upgrade_database_4735() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +IF NOT EXISTS (SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='dokumentum') THEN +CREATE TABLE `dokumentum` ( + `dokumentumId` int(10) unsigned NOT NULL AUTO_INCREMENT, + `dokumentumLeiras` varchar(511) NOT NULL, + `dokumentumRovidLeiras` varchar(255) NOT NULL, + `dokumentumUrl` varchar(1023) COLLATE utf8_hungarian_ci DEFAULT NULL, + `dokumentumMegjegyzes` varchar(63) NOT NULL, + `dokumentumSorrend` SMALLINT DEFAULT 1, + `dokumentumDt` datetime DEFAULT NULL, + PRIMARY KEY (`dokumentumId`), + INDEX (`dokumentumSorrend`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; +END IF; + +END $$ +DELIMITER ; +CALL upgrade_database_4735(); diff --git a/mayor-orig/mayor-naplo/update/pre004736-1-intezmeny.sql b/mayor-orig/mayor-naplo/update/pre004736-1-intezmeny.sql new file mode 100644 index 00000000..4614cfc8 --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004736-1-intezmeny.sql @@ -0,0 +1,18 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4736 $$ + +CREATE PROCEDURE upgrade_database_4736() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='dokumentum' AND COLUMN_NAME='dokumentumPolicy') THEN +ALTER TABLE `dokumentum` ADD dokumentumPolicy ENUM('public','parent','private'); +END IF; + +IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='dokumentum' AND COLUMN_NAME='dokumentumTipus') THEN +ALTER TABLE `dokumentum` ADD dokumentumTipus ENUM('general','tanev'); +END IF; + +END $$ +DELIMITER ; +CALL upgrade_database_4736(); diff --git a/mayor-orig/mayor-naplo/update/pre004737-1-naplo.sql b/mayor-orig/mayor-naplo/update/pre004737-1-naplo.sql new file mode 100644 index 00000000..dbcf23c2 --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004737-1-naplo.sql @@ -0,0 +1,18 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4737 $$ + +CREATE PROCEDURE upgrade_database_4737() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +IF NOT EXISTS ( + SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='felveteli_jelentkezes' and COLUMN_NAME='ideiglenesRangsor' +) THEN + ALTER TABLE felveteli_jelentkezes ADD ideiglenesRangsor mediumint unsigned not null; +END IF; +ALTER TABLE felveteli MODIFY joslat varchar(250); + + +END $$ +DELIMITER ; +CALL upgrade_database_4737(); diff --git a/mayor-orig/mayor-naplo/update/pre004742-1-intezmeny.sql b/mayor-orig/mayor-naplo/update/pre004742-1-intezmeny.sql new file mode 100644 index 00000000..4ef93a68 --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004742-1-intezmeny.sql @@ -0,0 +1,12 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4742 $$ + +CREATE PROCEDURE upgrade_database_4742() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +ALTER TABLE `dokumentum` MODIFY `dokumentumDt` datetime DEFAULT NULL; + +END $$ +DELIMITER ; +CALL upgrade_database_4742(); diff --git a/mayor-orig/mayor-naplo/update/pre004772-1-naplo.sql b/mayor-orig/mayor-naplo/update/pre004772-1-naplo.sql new file mode 100644 index 00000000..c0160e45 --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004772-1-naplo.sql @@ -0,0 +1,29 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4772 $$ + +CREATE PROCEDURE upgrade_database_4772() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +IF NOT EXISTS ( + SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='felveteli_levelLog' +) THEN + +CREATE TABLE `felveteli_levelLog` ( + `oId` bigint(20) NOT NULL, + `generalasDt` datetime DEFAULT NULL, + `ip` varchar(32) COLLATE utf8_hungarian_ci DEFAULT NULL, + `token` varchar(64) COLLATE utf8_hungarian_ci DEFAULT NULL, + `letoltesDt` datetime DEFAULT NULL, + KEY `IDX_levelLog_oId` (`oId`), + CONSTRAINT `felveteli_levelLog_ibfk_1` FOREIGN KEY (`oId`) REFERENCES `felveteli` (`oId`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; + +END IF; + +alter table felveteli modify `vegeredmeny` varchar(60) COLLATE utf8_hungarian_ci DEFAULT NULL; + + +END $$ +DELIMITER ; +CALL upgrade_database_4772(); diff --git a/mayor-orig/mayor-naplo/update/pre004772-2.sh b/mayor-orig/mayor-naplo/update/pre004772-2.sh new file mode 100644 index 00000000..cc03ecba --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004772-2.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +#BASEDIR="/var/mayor" + +DIR="$BASEDIR/download/private/naplo/felveteli/level/" +mkdir -p $DIR +chown -R www-data $DIR +echo "$DIR Kész." + +DIR="$BASEDIR/download/public/naplo/felveteli/level/" +mkdir -p $DIR +chown -R www-data $DIR +echo "$DIR Kész." diff --git a/mayor-orig/mayor-naplo/update/pre004775-1-naplo.sql b/mayor-orig/mayor-naplo/update/pre004775-1-naplo.sql new file mode 100644 index 00000000..b6bb34f9 --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004775-1-naplo.sql @@ -0,0 +1,27 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4775 $$ + +CREATE PROCEDURE upgrade_database_4775() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +IF NOT EXISTS ( + SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='felveteli_iskolak' +) THEN + +CREATE TABLE `felveteli_iskolak` ( + `omkod` varchar(7) CHARACTER SET utf8 DEFAULT NULL, + `iskolaNev` varchar(128) COLLATE utf8_hungarian_ci DEFAULT NULL, + `iskolaIrsz` varchar(10) COLLATE utf8_hungarian_ci DEFAULT NULL, + `iskolaCim` varchar(128) COLLATE utf8_hungarian_ci DEFAULT NULL, + `iskolaTelepules` varchar(64) COLLATE utf8_hungarian_ci DEFAULT NULL, + `iskolaTelefon` varchar(32) COLLATE utf8_hungarian_ci DEFAULT NULL, + `iskolaEmail` varchar(64) COLLATE utf8_hungarian_ci DEFAULT NULL, + KEY `ID_felveteli_iskolak_omkod` (`omkod`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; + +END IF; + +END $$ +DELIMITER ; +CALL upgrade_database_4775(); diff --git a/mayor-orig/mayor-naplo/www/include/menu/private/hu_HU/module-naplo.php b/mayor-orig/mayor-naplo/www/include/menu/private/hu_HU/module-naplo.php index fa205518..7b6c55ae 100644 --- a/mayor-orig/mayor-naplo/www/include/menu/private/hu_HU/module-naplo.php +++ b/mayor-orig/mayor-naplo/www/include/menu/private/hu_HU/module-naplo.php @@ -111,6 +111,7 @@ 'diakFelmentes' => array(array('txt' => 'Felmentés', 'url' => 'index.php?page=naplo&sub=intezmeny&f=diakFelmentes')), 'valtas'=> array(array('txt' => 'Tanévváltás', 'url' => 'index.php?page=naplo&sub=intezmeny&f=valtas')), 'tovabbkepzes' => array(array('txt' => 'Továbbképzés')), + 'kepzesOraterv' => array(array('txt' => 'Képzés óraterv')), ); $MENU['modules']['naplo']['sub']['orarend'] = array( 'helyettesites' => array(array('txt'=> 'Helyettesítések')), @@ -583,6 +584,14 @@ if (__UZENO_INSTALLED===true && __UZENOADMIN===true) $MENU['modules']['naplo']['uzeno'] = array(array('txt' => 'Üzenő', 'url' => 'index.php?page=naplo&sub=uzeno&f=uzeno')); + $MENU['modules']['naplo']['dokumentum'] = array(array('txt' => 'Dokumentumok', 'url' => 'index.php?page=naplo&sub=dokumentum')); + + // Felvételi + $MENU['modules']['naplo']['felveteli'] = array(array('txt' => 'Felvételi', 'url' => 'index.php?page=naplo&sub=felveteli&f=szobeli')); + $MENU['modules']['naplo']['sub']['felveteli'] = array( + 'szobeli' => array(array('txt' => 'Szóbeli lekérdezés','icon'=>'icon-search')) + ); + // SNI if (__NAPLOADMIN || __VEZETOSEG || __TANAR) { $MENU['modules']['naplo']['sni'] = array(array('txt' => 'Egyéni fejlesztés', 'url' => 'index.php?page=naplo&sub=sni')); diff --git a/mayor-orig/mayor-naplo/www/include/menu/public/hu_HU/module-naplo.php b/mayor-orig/mayor-naplo/www/include/menu/public/hu_HU/module-naplo.php index 090c7db2..56cb4d36 100644 --- a/mayor-orig/mayor-naplo/www/include/menu/public/hu_HU/module-naplo.php +++ b/mayor-orig/mayor-naplo/www/include/menu/public/hu_HU/module-naplo.php @@ -3,11 +3,25 @@ module: naplo */ - $MENU['naplo'] = array(array('txt' => 'Órarend', 'url' => 'index.php?page=naplo&sub=orarend&f=orarend')); + $MENU['naplo'] = array(array('txt' => 'Napló', 'url' => 'index.php?page=naplo&sub=orarend&f=orarend')); $MENU['modules']['naplo']['orarend'] = array( array('txt' => 'Órarend', 'url' => 'index.php?page=naplo&sub=orarend&f=orarend'), array('txt' => 'Helyettesítés', 'url'=>'index.php?page=naplo&sub=orarend&f=helyettesites', 'refresh'=>60), array('txt' => 'Szabad termek', 'url' => 'index.php?page=naplo&sub=orarend&f=szabadTerem'), ); +if (__PORTAL_CODE=='kanizsay') { +// $MENU['tanari_kar'] = array(array('txt' => 'Tanári kar', 'url' => 'index.php?page=naplo&sub=intezmeny&f=tanarok')); + $MENU['modules']['naplo']['intezmeny'] = array( + array('txt' => 'Tanári Kar', 'url' => 'index.php?page=naplo&sub=intezmeny&f=tanarok'), + ); + $MENU['modules']['naplo']['dokumentum'] = array( + array('txt' => 'Dokumentumok', 'url' => 'index.php?page=naplo&sub=dokumentum'), + ); + $MENU['modules']['naplo']['felveteli'] = array( + array('txt' => 'Felvételi, szóbeli, végeredmény lekérdezés', 'url' => 'index.php?page=naplo&sub=felveteli&f=szobeli'), + ); +// require_once('include/menu/public/hu_HU/module-portal-kanizsay.php') or die(); +} + ?> diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/base/rights.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/base/rights.php index a0377a17..53eb1ed5 100644 --- a/mayor-orig/mayor-naplo/www/include/modules/naplo/base/rights.php +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/base/rights.php @@ -347,7 +347,7 @@ } if (defined('__TANEV') && __TANEV!='') $tanev = __TANEV; - if (defined('_SESSIONID') && _SESSIONID!='' && !$vanSession) { + if (defined('_SESSIONID') && _SESSIONID!='' && !$vanSession && _RUNLEVEL!='cron') { $q = "REPLACE INTO session (sessionID, policy, intezmeny, telephelyId, tanev) VALUES ('"._SESSIONID."','"._POLICY."' , '".$intezmeny."',".$telephelyId.", ".$tanev.")"; db_query($q, array('fv' => 'naploBeallitasok/session', 'modul' => 'naplo_base'), $lr); diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/base/tool.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/base/tool.php index d5ba4c6c..a871e5ed 100644 --- a/mayor-orig/mayor-naplo/www/include/modules/naplo/base/tool.php +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/base/tool.php @@ -42,8 +42,7 @@ function getToolParameters() { ); - foreach ( $TOOL as $tool => $params ) if (is_array($params)) { - + foreach ( $TOOL as $tool => $params ) if (is_array($params) && is_array($params['post'])) { for ($i = 0; $i < count($params['post']); $i++) { $_var = $params['post'][$i]; //if ($TOOLVARS[$_var]=='') $_SESSION['alert'][] = '::toolvars:'.$_var; // nem üzenünk hibát diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/base/zcheck.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/base/zcheck.php index 12b7dea5..2b2d1478 100644 --- a/mayor-orig/mayor-naplo/www/include/modules/naplo/base/zcheck.php +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/base/zcheck.php @@ -80,7 +80,7 @@ } if (!defined('__TANITASINAP_HETENTE')) define('__TANITASINAP_HETENTE',5); - if (!define('__ORACIMKE_ENABLED')) define('__ORACIMKE_ENABLED',true) ; + if (!defined('__ORACIMKE_ENABLED')) define('__ORACIMKE_ENABLED',true) ; /* üzenő szerepkor beallitasa */ if (__UZENOADMIN===true) { @@ -97,8 +97,16 @@ elseif (__UZENOADMIN===true) define('__UZENOSZEREP','admin'); else define('__UZENOSZEREP',''); - if (count($KERELEM_TAG) ==0) $KERELEM_TAG = array('névsor','jogviszony','órarend, haladási','hiányzás, igazolás','jegy, zárójegy'); + if (!is_array($KERELEM_TAG) || count($KERELEM_TAG) ==0) $KERELEM_TAG = array('névsor','jogviszony','órarend, haladási','hiányzás, igazolás','jegy, zárójegy'); if (!defined('__HABEL_GYURI_DEBUG')) define('__HABEL_GYURI_DEBUG',false); + if (!defined('MAYOR_SOCIAL')) define('MAYOR_SOCIAL',false); + + if (_USERACCOUNT=='mayoradmin' || (_POLICY=='private' && memberOf(_USERACCOUNT, 'felveteliadmin'))) { + $AUTH['my']['categories'][] = 'felveteliadmin'; + define('__FELVETELIADMIN',true); + } else { + define('__FELVETELIADMIN',false); + } ?> diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/dokumentum/dokumentum.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/dokumentum/dokumentum.php new file mode 100644 index 00000000..9e454063 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/dokumentum/dokumentum.php @@ -0,0 +1,56 @@ +'naplo_intezmeny','fv'=>'dokumentum','values'=>$v, 'result'=>'indexed')); + return $r; + + } + + function getDokumentumokAssoc() { + + $q = "select dokumentum.*,IFNULL(tanev,YEAR(dokumentumDt)) AS dokumentumTanev from dokumentum left join szemeszter ON (dokumentumDt>kezdesDt && dokumentumDt<=szemeszter.ZarasDt)"; + $v = array(); + $r = db_query($q, array('modul'=>'naplo_intezmeny','fv'=>'dokumentum','values'=>$v, 'result'=>'indexed')); + + return reindex($r,array('dokumentumTipus','dokumentumTanev')); + return $r; + + } + + function updateDokumentum($ADAT) { + + + } + + function addDokumentum($ADAT) { + + if ($ADAT['dokumentumLeiras']!='' && readVariable($ADAT['dokumentumUrl'],'url')!='') { + $q = "INSERT INTO dokumentum (dokumentumLeiras, dokumentumRovidLeiras, dokumentumUrl, dokumentumMegjegyzes, dokumentumSorrend, dokumentumTipus, dokumentumPolicy, dokumentumDt) + VALUES ('%s','%s','%s','%s',%u,'%s','%s',NOW())"; + $v = array($ADAT['dokumentumLeiras'],$ADAT['dokumentumRovidLeiras'],$ADAT['dokumentumUrl'],$ADAT['dokumentumMegjegyzes'],intval($ADAT['dokumentumSorrend']),$ADAT['dokumentumTipus'],$ADAT['dokumentumPolicy']); + $r = db_query($q, array('modul'=>'naplo_intezmeny','fv'=>'dokumentum','values'=>$v, 'result'=>'insert')); + } + return $r; + + } + + function delDokumentum($dokumentumId) { + + if (!is_array($dokumentumId) && intval($dokumentumId)>0) { + $q = "DELETE FROM dokumentum WHERE dokumentumId=%u"; + $v = array($dokumentumId); + $r = db_query($q, array('modul'=>'naplo_intezmeny','fv'=>'dokumentum','values'=>$v, 'result'=>'')); + } elseif (is_array($dokumentumId)) { + $q = 'DELETE FROM dokumentum WHERE dokumentumId IN ('.implode(',',$dokumentumId).')'; + $v = array(); + $r = db_query($q, array('modul'=>'naplo_intezmeny','fv'=>'dokumentum','values'=>$v, 'result'=>'')); + } + return $r; + + } + + +?> \ No newline at end of file diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/felveteli/level.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/felveteli/level.php new file mode 100644 index 00000000..d8dfa8ff --- /dev/null +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/felveteli/level.php @@ -0,0 +1,201 @@ +'9.B', 'tagozatNev'=>'Technikumi képzés egészségügyi ágazatban'); +$A['eü. 9.C']=array('osztalyJel'=>'9.C', 'tagozatNev'=>'Technikumi képzés egészségügyi ágazatban'); +$A['gimi 9.G']=array('osztalyJel'=>'9.G', 'tagozatNev'=>'Gimnáziumi képzés'); +$A['nyek 9/Ny.N']=array('osztalyJel'=>'9/Ny.N', 'tagozatNev'=>'Gimnáziumi képzés nyelvi előkészítő évfolyammal'); +$A['ped 9.C']=array('osztalyJel'=>'9.C', 'tagozatNev'=>'Szakgimnáziumi képzés pedagógiai ágazatban'); +$A['szoc 9.C']=array('osztalyJel'=>'9.C', 'tagozatNev'=>'Technikumi képzés szociális ágazatban'); + + + $nev = $D['nev']; + $kernev = $nev; + $tagozatId = $eredmeny; + $D['iktsz'] = $IKTSZ[$eredmeny].' ['.$D['vegeredmeny'].']'; + + $TeX .= '\begin{flushleft}'."\n"; + + $TeX .= putTeXLevelFejlec($D); + + $TeX .= '\end{flushleft}'."\n"; + +# $TeX .= '\parskip'."\n"; + $TeX .= '\vspace{40pt}'."\n"; + $TeX .= '\vspace{20pt}'."\n"; + + $TeX .= '\noindent '.'Kedves Felvételiző! Tisztelt Szülő!'."\n\n"; + + $TeX .= '\vspace{20pt}'."\n"; + + $TeX .= '{\baselineskip16pt'."\n"; + + if ($eredmeny>2) { + + $TeX .= 'Nagy Örömmel értesítem, hogy '.$nev.' tanuló az általános iskolai eredménye és a felvételi vizsgán mutatott teljesítménye alapján (a Felvételi Központ által megküldött végleges listák sze\-rint)'."\n\n"; + $TeX .= '\begin{center}'."\n"; + $TeX .= '\textbf{ felvételt nyert }'."\n\n"; + $TeX .= '\end{center}'."\n"; + $TeX .= '\begin{center}'."\n"; + $TeX .= ' a Kanizsay Dorottya Katolikus Középiskola '.$A[$D['extra']]['osztalyJel']." osztályába.\n\n"; + $TeX .= '('.$A[$D['extra']]['tagozatNev'].")\n\n"; + $TeX .= '\end{center}'."\n\n"; + //if (defined('_SZULOI_ERTEKEZLET_IDOPONTBAN')) { + $TeX .= 'Tájékoztatom, hogy az első szülői értekezlet 2021. május 17-én (hétfőn) 17:30-kor lesz, amelyre ezúton hívom meg a Szülőket. A további teendőkkel (pl. beiratkozás, nyelvi szintfelmérő stb.) kapcsolatos teendőkért kérjük ne felejtsék el rendszeresen felkeresni honlapunkat.'."\n"; + //} + + $TeX .= 'Figyelembe véve a jelenlegi vírushelyzetet, a nyár folyamán két (egymástól különböző) gólya-napot fogunk tartani. Ezekről bővebb tájékoztatást a szülői értekezleten kapnak majd.'."\n"; + $TeX .= "\n\n"; + $TeX .= '\vspace{14pt}'."\n"; + $TeX .= 'Remélem, az iskolánkban eltöltött évek hasznosak és eredményesek lesznek.'."\n\n"; + + } elseif ($eredmeny==2) { + +// $TeX .= 'Sajnálattal vettük tudomásul, hogy '.$kernev.' másik iskolát választott, ezért nem vehettük fel a Városmajori Gimnáziumba.'."\n\n"; +// $TeX .= '\vspace{14pt}'."\n"; +// $TeX .= 'Remélem, hogy a választása jó döntésnek fog bizonyulni. Sikeres tanulmányi éveket és minden jót kívánok!'."\n\n"; + + } elseif ($eredmeny==1) { + +// $TeX .= 'Sajnálattal értesítem, hogy '.$nev.' tanuló a felvételi vizsgán megfelelt, de helyhiány miatt nem nyert felvételt gimnáziumunkba.'."\n\n"; +// $TeX .= '\vspace{14pt}'."\n"; +// $TeX .= 'A Szülő e döntés ellen jogorvoslati lehetőséggel (a kézhezvételtől számított 15 napon belül) akkor élhet, ha az utolsó helyen megjelölt iskola elutasító értesítése megérkezett. Jogorvoslati kérelmét az általános iskola igazgatójának kell benyújtani. ' +// .'Felhívom figyelmét arra, hogy gyermeke tankötelezettségének teljesítésére vonatkozó kérelemmel a lakóhely szerinti önkormányzat jegyzőjéhez fordulhat.'."\n\n"; + + } elseif ($eredmeny==0) { + + $TeX .= 'Sajnálattal értesítem, hogy '.$nev.' tanuló - a Felvételi Központ által megküldött végleges listák szerint - nem nyert felvételt a Kanizsay Dorottya Katolikus Középiskolába.'."\n\n"; + $TeX .= '\vspace{14pt}'."\n\n"; + $TeX .= 'A Szülő e döntés ellen jogorvoslati lehetőséggel (a kézhezvételtől számított 15 napon belül) jogorvoslati lehetőséggel élhet, ha az utolsó megjelölt iskola elutasító értesítése is megérkezett. Jogorvoslati kérelmét az általános iskola igazgatójának kell benyújtania. Felhívom a figyelmét arra, hogy gyermeke tankötelezettségének teljesítésére vonatkozó kérelemmel a lakóhely szerinti önkormányzat jegyzőjéhez fordulhat.'."\n\n"; + + } else { + + } + $TeX .= '}'."\n"; + $TeX .= '\vspace{20pt}'."\n"; + $TeX .= '\noindent Budapest, 2021. április 26.'.' \par%'."\n"; + + + $TeX .= '\vspace{14pt}'."\n\n"; + if ($eredmeny > 2 ) $TeX .= '\vspace{14pt}'."\n\n"; + + $TeX .= '\begin{flushright}'."\n"; + + + +$TeX .= '\begin{tabular}{ccc}'."\n"; + +//if ($eredmeny <= 2 ) { +// $TeX .= '&&\includegraphics[width=30mm]{/var/mayor/www/skin/classic/module-felveteli/img/bp.png}\\\\ '."\n"; +//} +$TeX .= '&&\rule{4cm}{0.1pt}\\\\ '."\n"; +$TeX .= '&&Bärnkopf Péter\\\\ '."\n"; +$TeX .= '&&igazgató\\\\ '."\n"; +$TeX .= '\end{tabular}'."\n"; + + + $TeX .= '\end{flushright}'."\n"; + + + + $TeX .= '\newpage'."\n\n"; + $TeX .= '\setcounter{footnote}{0}'."\n\n"; + + } + + // dokumentum lezárása + $TeX .= '\end{document}'."\n"; + return pdfLaTeX($TeX, $file); + + } + + function putTeXLevelFejlec($ADAT) { + + + if ($ADAT['lakcim_telepules']!='') $TeX.= "Cím: ".$ADAT['lakcim_telepules'].', '.$ADAT['lakcim_irsz'].' '.$ADAT['lakcim_utcahazszam']."\n\n"; + if ($ADAT['tartozkodasi_telepules']!='') $TeX.= "Levelezési cím: ".$ADAT['tartozkodasi_telepules'].', '.$ADAT['tartozkodasi_irsz'].' '.$ADAT['tartozkodasi_utcahazszam']."\n\n"; + $TeX.= "Oktatási azonosító: ".$ADAT['oId']."\n\n"; + $TeX.= "MaYoR azonosító: ".$ADAT['felveteliId'].'/'.$ADAT['omkod']."\n\n"; + $TeX.= "Iktatószám: C8-62/2021"."\n\n"; + $TeX.= "Tárgy: Értesítés ".$ADAT['nev']." (".str_replace('_','',$ADAT['an'])." ".str_replace('-','.',$ADAT['szuldt']).".) felvételi eredményéről\n\n"; + +# $TeX.= '\hrule%'."\n"; + +# $TeX.= '%'."\n"; + +# $TeX.= '\vskip2cm\alap'; + +# $TeX.= '\item{}C.mzett: '.$nev.' .s Sz.lei'; +# $TeX.= '\item{}Postai c.m: '.$cim; +# $TeX.= '\item{}Iktat.sz.m: '.$IKTSZ[$eredmeny].' ('.$id.')%'."\n"; +# $TeX.= '\vskip0.8cm'; +# $TeX.= '{{Tárgy}: {Értesítés '.$nev.' ('; +# if ($an!="") $TeX.= 'a.n.: '.$an.', '; +# $TeX.= 'sz.l.: '.str_replace('-','.',$szul_dt).'.) felv.teli eredm.ny.r.l}}'; + +# $TeX.= '%'."\n"; + + return $TeX; + + } + + + +?> diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/felveteli/levelIgazgato.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/felveteli/levelIgazgato.php new file mode 100644 index 00000000..e06e9dca --- /dev/null +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/felveteli/levelIgazgato.php @@ -0,0 +1,177 @@ +2) $DATA[$omkod]['ok'][] = $ADAT['diak'][$i]; + else $DATA[$omkod]['nemok'][] = $ADAT['diak'][$i]; + } + + $TeX = '\documentclass[8pt]{article}'."\n\n"; + $TeX .= '\usepackage[a4paper]{geometry} % A4-os méret'."\n"; + $TeX .= '\usepackage{graphicx}'."\n"; +// $TeX .= '\usepackage[utf8]{inputenc} % UTF-8 kódolású forrás'."\n"; + $TeX .= '\usepackage[utf8x]{inputenc} % UTF-8 kódolású forrás (ucs)'."\n"; + $TeX .= '\usepackage{ucs} % Jobb UTF-8 támogatás'."\n"; + $TeX .= '\usepackage{t1enc}'."\n"; + $TeX .= '\usepackage[magyar]{babel} % magyar elválasztási szabályok'."\n"; + $TeX .= '\frenchspacing % a magyar tipográfiai szabályoknak megfelelő szóközök írásjelek után'."\n"; + $TeX .= '\usepackage{booktabs} % táblázatok magasabb szintű formázása'."\n"; +// $TeX .= '\usepackage{soul} % Ritkítás'."\n"; + $TeX .= '\usepackage{fancyhdr} % Ritkítás'."\n"; +// $TeX .= '\pagestyle{empty}'."\n"; + $TeX .= '\pagestyle{fancy}'."\n"; + + $TeX .= '\def\mayor{%'."\n"; +// $TeX .= '\font\mayorfnt=cmsl6%'."\n"; +// $TeX .= '\font\Mayorfnt=cmsl9'."\n"; + $TeX .= '\font\mayorfnt=cmsl4%'."\n"; + $TeX .= '\font\Mayorfnt=cmsl6'."\n"; + $TeX .= '{\mayorfnt\lower0.5ex\hbox{\lower-0.5ex\hbox{Ma}\kern-0.3em\lower0.25ex\hbox{\Mayorfnt Y}\kern-0.2em\hbox{o}\lower0ex\hbox{R}}}}'."\n"; + + $TeX .= '\renewcommand{\footnotesize}{\fontsize{6pt}{8pt}\selectfont}'."\n"; + $TeX .= '\addtolength{\skip\footins}{2mm}'."\n"; +# $TeX .= '\addtolength{\textheight}{10mm}'."\n"; + $TeX .= '\parindent 0mm'."\n"; +# $TeX .= '\linespread{1.3}'."\n"; + $TeX .= '\setlength{\footskip}{16pt}'."\n"; + $TeX .= '\setlength{\headsep}{0pt}'."\n"; // 14pt helyett + + $TeX .= '\cfoot{\tiny \copyright\mayor\ elektronikus adminisztráció - Nyomtatva: '.date('Y.m.d').'}'; + $TeX .= '\setlength{\voffset}{0mm}'."\n"; + $TeX .= '\setlength{\headheight}{40mm}'."\n"; + $TeX .= '\renewcommand{\headrulewidth}{0pt}'."\n"; + $TeX .= '\chead{\includegraphics[width=160mm]{/var/mayor/www/skin/classic/module-portal/img/fejlec.png}}'."\n"; +# $TeX .= '\lhead{\includegraphics[width=160mm]{/var/mayor/www/skin/classic/module-felveteli/img/iskola.png}}'."\n"; +# $TeX .= '\rhead{\tiny Felvételi értesítő}'; + + + $TeX .= '\begin{document}'."\n\n"; + + foreach ($DATA as $omkod => $DA) { + + $TeX .= '\begin{flushleft}'."\n"; + + $TeX .= putTeXIgLevelFejlec($ADAT['iskola'][$omkod],'C8-62/2021'); + + $TeX .= '\end{flushleft}'."\n"; + +# $TeX .= '\parskip'."\n"; + $TeX .= '\vspace{40pt}'."\n"; + + $TeX .= '{'."\n"; + $TeX .= 'Kedves Igazgató Kolléga!'."\n\n"; + + $TeX .= '\vspace{20pt}'."\n\n"; + + if (count($DA['ok'])==1) { $vanfelvett=true; + $TeX .= 'Értesítem, hogy az Önök iskolájából az alábbi tanuló nyert felvételt iskolánkba:'."\n\n"; + } elseif (count($DA['ok'])>1) { $vanfelvett=true; + $TeX .= 'Értesítem, hogy az Önök iskolájából az alábbi tanulók nyertek felvételt iskolánkba:'."\n\n"; + } else { + $vanfelvett=false; + } + + if ($vanfelvett) { + $TeX .= '\begin{itemize}'."\n"; + for ($i=0; $i0) { + if ($vanfelvett) { $TeX .= 'Egyúttal s'; $kieg=' iskolánkba'; } + else { $TeX .= 'S'; $kieg = ' iskolánkba';} + if (count($DA['nemok'])==1) + $TeX .= 'ajnálattal tájékoztatom, hogy a következő tanuló nem nyert felvételt'.$kieg.':'."\n\n"; + else + $TeX .= 'ajnálattal tájékoztatom, hogy a következő tanulók nem nyertek felvételt'.$kieg.':'."\n\n"; + + $TeX .= '\vspace{14pt}'."\n\n"; + + $TeX .= '\begin{itemize}'."\n"; + for ($i=0; $i 2 ) $TeX .= '\vspace{14pt}'."\n\n"; + + $TeX .= '\begin{flushright}'."\n"; + + +#$TeX .= '\begin{tabular}{ccc}'."\n"; +#$TeX .= '&&\includegraphics[width=30mm]{/var/mayor/www/skin/classic/module-felveteli/img/tasai.png}\\\\ '."\n"; +#$TeX .= '&&\rule{4cm}{0.1pt}\\\\ '."\n"; +#$TeX .= '&&Dr. Szebedy Tas\\\\ '."\n"; +#$TeX .= '&&igazgató\\\\ '."\n"; +#$TeX .= '\end{tabular}'."\n"; + +$TeX .= '\begin{tabular}{ccc}'."\n"; +$TeX .= '&&\rule{4cm}{0.1pt}\\\\ '."\n"; +$TeX .= '&&Bärnkopf Péter\\\\ '."\n"; +$TeX .= '&&igazgató\\\\ '."\n"; +$TeX .= '\end{tabular}'."\n"; + + $TeX .= '\end{flushright}'."\n"; + + + + $TeX .= '\newpage %%%%%%%%%%%%%%%%% új oldal %%%%%%%%%%%%%%%%%%%%'."\n\n"; + + } + + // dokumentum lezárása + $TeX .= '\end{document}'."\n"; + return pdfLaTeX($TeX, $file); + + } + + function putTeXIgLevelFejlec($ADAT,$iktsz) { + + + $TeX.= "Intézmény: ".$ADAT['nev']."\n\n"; + $TeX.= "Cím: ".$ADAT['telepules'].', '.$ADAT['irsz'].' '.$ADAT['cim']."\n\n"; + $TeX.= "OM kód: ".$ADAT['omkod']."\n\n"; + $TeX.= "Iktatószám: ".$iktsz."\n\n"; + $TeX.= "Tárgy: Értesítés felvételi eredményről\n\n"; + +# $TeX.= '\hrule%'."\n"; + +# $TeX.= '%'."\n"; + +# $TeX.= '\vskip2cm\alap'; + +# $TeX.= '\item{}C.mzett: '.$nev.' .s Sz.lei'; +# $TeX.= '\item{}Postai c.m: '.$cim; +# $TeX.= '\item{}Iktat.sz.m: '.$IKTSZ[$eredmeny].' ('.$id.')%'."\n"; +# $TeX.= '\vskip0.8cm'; +# $TeX.= '{{Tárgy}: {Értesítés '.$nev.' ('; +# if ($an!="") $TeX.= 'a.n.: '.$an.', '; +# $TeX.= 'sz.l.: '.str_replace('-','.',$szul_dt).'.) felv.teli eredm.ny.r.l}}'; + +# $TeX.= '%'."\n"; + + return $TeX; + + } + + + +?> diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/nyomtatas/tex.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/nyomtatas/tex.php index ab2ca3c0..d2bf5100 100644 --- a/mayor-orig/mayor-naplo/www/include/modules/naplo/nyomtatas/tex.php +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/nyomtatas/tex.php @@ -640,7 +640,7 @@ $return .= '% ------------------------------------------------------------- % $pluszHIANYZASOK[ $H['ora'][$k] ] .= $k.'.'; } } - while (list($key,$val) = each($pluszHIANYZASOK)) { + foreach($pluszHIANYZASOK as $key=>$val) { $return .= ' '.$key.':'.$val; } } else { // nem hiányzott, csak késett diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/felveteli.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/felveteli.php new file mode 100644 index 00000000..e8568332 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/felveteli.php @@ -0,0 +1,112 @@ +'naplo','values'=>$v,'debug'=>false),$lr); + return $token; + } + + function checkLevelToken($token) { + + } + + function getIrasbeliEredmeny($nev,$oId) { + $lr = @db_connect('felveteli'); + $q = "SELECT * FROM irasbeli_eredmenyek_"._EV." WHERE nev='%s' AND oId='%s'"; + $RET = db_query($q,array('modul'=>'felveteli', 'result'=>'indexed','values'=>array($nev,$oId),'debug'=>false),$lr); + db_close($lr); + return $RET; + } + + function getFelvetelizoAdatok($nev,$oId) { + $lr = db_connect('naplo'); + if (__FELVETELIADMIN===TRUE && $oId=='') { + $q = "SELECT count(*) AS db FROM felveteli WHERE (nev LIKE '$nev%' or jelige='$nev')"; + } else { + $q = "SELECT count(*) AS db FROM felveteli WHERE (nev='$nev' or jelige='$nev') AND oId='$oId'"; + } + $c = db_query($q,array('result'=>'value','modul'=>'naplo'),$lr); + if ($c==1) { + if (__FELVETELIADMIN===TRUE && $oId=='') + $q = "SELECT * FROM felveteli WHERE (nev LIKE '$nev%' or jelige='$nev')"; + else + $q = "SELECT * FROM felveteli WHERE (nev='$nev' or jelige='$nev') AND oId='$oId'"; + $R = db_query($q,array('result'=>'record','modul'=>'naplo'),$lr); +// if ($R['OM'] != '') { +// $q = "SELECT * FROM iskolak WHERE omkod like '%".$R['OM']."' LIMIT 1"; +// $Rtmp = db_query($q,array('result'=>'indexed'),$lr); +// $R['iskolaAdat'] = $Rtmp[0]; +// } else { + $R['iskolaAdat'] = array(); +// } + } else { + // $_SESSION['alert'][] = 'info:Nincs találat!:'.$c; + if (__FELVETELIADMIN===true && $nev!='') { //chatty error + $q = "SELECT nev,oId FROM felveteli WHERE (nev LIKE '$nev%' or jelige='$nev')"; + $ER = db_query($q,array('result'=>'indexed','modul'=>'naplo'),$lr); + if (count($ER)>0) $_SESSION['alert'][] = 'info:'.json_encode($ER); + } + } + if ($lr) db_close($lr); + return $R; + } +/* + function getSzobeli($jid, $olr = '') { + if (!is_numeric($jid)) return false; + if ($olr=='') $lr = db_connect('naplo'); else $lr=$olr; + //$q = "SELECT * FROM szobeli_"._EV." WHERE jid=$jid ORDER BY napdt,ido,tagozat"; + $q = "SELECT * FROM szobeli_"._EV." WHERE id=$jid ORDER BY napdt,ido,tagozat"; + // 2012 +// $q = "SELECT * FROM szobeli_"._EV." AS sz LEFT JOIN jelentkezok_tagozatok"._EV." AS jel ON sz.id=jel.id AND sz.tagozat=jel.tid +// WHERE sz.id=$jid ORDER BY napdt,ido,tagozat"; + $R = db_query($q,array('result'=>'indexed'),$lr); + if ($olr=='') db_close($lr); + return $R; + } +*/ + + function getSzobeliByoId($oId, $olr = '') { + if (!is_numeric($oId)) return false; + if ($olr=='') $lr = db_connect('naplo'); else $lr=$olr; + $q = "SELECT * FROM felveteli_szobeli + LEFT JOIN felveteli_tagozat USING (tagozat) + WHERE `oId`='$oId' ORDER BY napdt,ido,felveteli_szobeli.tagozat"; + $R = db_query($q,array('result'=>'indexed'),$lr); + if ($olr=='') db_close($lr); + return $R; + } + + function getJelentkezes($oId, $olr = '') { + if (!is_numeric($oId)) return false; + if ($olr=='') $lr = db_connect('naplo'); else $lr=$olr; + $q = "SELECT * FROM felveteli_jelentkezes LEFT JOIN felveteli_tagozat USING (tagozat) WHERE oId='%s'"; + $v = array($oId); + $R = db_query($q,array('result'=>'indexed', 'values'=>$v),$lr); + if ($olr=='') db_close($lr); + return $R; + } + + function getIdeiglenesRangsor($oId) { + + if (!is_numeric($oId)) return false; + if ($olr=='') $lr = db_connect('felveteli'); else $lr=$olr; + $q = "SELECT tagozat,rangsor,pont,szobeli,joslat FROM eredmenyek_tagozatonkent_"._EV." WHERE oId='$oId'"; + $R = db_query($q,array('result'=>'indexed'),$lr); + if ($olr=='') db_close($lr); + return $R; + + } + + function getFelveteliTagozat() { + if ($olr=='') $lr = db_connect('naplo'); else $lr=$olr; + $q = "SELECT * FROM felveteli_tagozat"; + $R = db_query($q,array('result'=>'indexed'),$lr); + if ($olr=='') db_close($lr); + return $R; + } + +?> diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tanarModifier.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tanarModifier.php index 05174959..d76607dd 100644 --- a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tanarModifier.php +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tanarModifier.php @@ -5,7 +5,7 @@ foreach($SET as $k => $v) { $kv[] = "$k='%s'"; } - $q = "UPDATE tanar SET ".implode($kv,',')." WHERE tanarId=%u"; + $q = "UPDATE tanar SET ".implode(',',$kv)." WHERE tanarId=%u"; } $v = array_merge(array_values($SET),array($tanarId)); return db_query($q, array('fv' => 'updateTanarAdat', 'modul' => 'naplo_intezmeny', 'result' => 'update', 'values' => $v), $olr); diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tanmenet.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tanmenet.php index fe26de8f..ed26f4ac 100644 --- a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tanmenet.php +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tanmenet.php @@ -165,7 +165,7 @@ $W = array(); if ($SET['jovahagyva']===true) $W[] = " AND statusz='publikus'"; - $q = "SELECT tankorId, tanmenetId FROM tanmenetTankor LEFT JOIN tanmenet USING (tanmenetId) WHERE tankorId IN (".implode(',', array_fill(0, count($tankorIds), '%u')).") AND tanev=%u".implode($W,' '); + $q = "SELECT tankorId, tanmenetId FROM tanmenetTankor LEFT JOIN tanmenet USING (tanmenetId) WHERE tankorId IN (".implode(',', array_fill(0, count($tankorIds), '%u')).") AND tanev=%u".implode(' ',$W); $tankorIds[] = $tanev; return db_query($q, array('fv' => 'getTanmenetByTankorIds', 'modul' => 'naplo_intezmeny', 'result' => 'keyvaluepair', 'values' => $tankorIds)); diff --git a/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/dokumentum/dokumentum.php b/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/dokumentum/dokumentum.php new file mode 100644 index 00000000..cf39dcfb --- /dev/null +++ b/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/dokumentum/dokumentum.php @@ -0,0 +1,5 @@ + diff --git a/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/felveteli/szobeli.php b/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/felveteli/szobeli.php new file mode 100644 index 00000000..bc0786eb --- /dev/null +++ b/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/felveteli/szobeli.php @@ -0,0 +1,38 @@ + A szóbeli beosztás és adategyeztetés folyamatban van, kérjük látogasson vissza egy későbbi időpontban...

    Türelmét és megértését köszönjük!'); + + define('_BIZOTTSAG','Bizottság'); + define('_PLEASE_WAIT','Kérem várjon...'); + define('_BEHIVOTTAK','Behívottak'); + + define('_HIBAS','Hibás!'); + define('_NINCS_BEHIVVA','Nincs behívva'); + + define('_EREDMENY','Eredmények'); + define('_EVFOLYAM','évfolyam'); + + define('_MAGYAR','Magyar'); + define('_MATEK','Matematika'); + + define('_ATLAG','Bizonyítvány átlag'); + define('_IRASBELI','Írásbeli'); + + define('_PONT','pont'); + + define('_LEKERDEZES_DT','Lekérdezés ideje:'); +?> diff --git a/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/tanar.php b/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/tanar.php index 149051c8..e3110414 100644 --- a/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/tanar.php +++ b/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/tanar.php @@ -4,7 +4,6 @@ define('_FILESELECTTITLE','A tanárok adatainak frissítése'); - define('_TANAR_ALAPADATAI','Tanár adatai (alap)'); define('_TANAR_SZULETESI_ADATAI','Születési adatok'); define('_UJ_TANAR','Új tanár felvétele'); @@ -47,6 +46,8 @@ define('_TITULUS','Titulus'); define('_TITULUSROVID','Titulus röviden'); define('_EMAIL','Email'); + define('_ELERHETOSEG','Eléthetőség (publikus)'); + define('_KRETANEV','Kréta név'); define('_TOVABBKEPZES_FORDULO_DT','A továbbképzési ciklus vége'); define('_TOVABBKEPZES_FORDULO_DT_HELP','A továbbképzési ciklus végét jelző dátum. A dátum éve a hétéves ciklus mindenkori utolsó évét jelzi. Lásd még: továbbképzések'); diff --git a/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/tanarok.php b/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/tanarok.php new file mode 100644 index 00000000..869a8484 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/tanarok.php @@ -0,0 +1,4 @@ + diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/dokumentum/dokumentum-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/dokumentum/dokumentum-pre.php new file mode 100644 index 00000000..c41e820c --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/dokumentum/dokumentum-pre.php @@ -0,0 +1,41 @@ +'Éves Munkaterv','dokumentumUrl'=> +'http://szerver4.kanizsay.sulinet.hu/KDESZIG/munkaterv_20_21.pdf', +'dokumentumSorrend'=>2))); +*/ + + if (_RIGHTS_OK!==true) die(); + + if (__NAPLOADMIN===true) { + $_SESSION['MAYOR_RIGHTS_OK'] = true; + + if ($action=='addDokumentum') { + $_leiras = readVariable($_POST['dokumentumLeiras'],'string'); + $_rovidLeiras = readVariable($_POST['dokumentumRovidLeiras'],'string'); + $_url = readVariable($_POST['dokumentumUrl'],'url'); + $_megjegyzes = readVariable($_POST['dokumentumMegjegyzes'],'string'); + $_sorrend = readVariable($_POST['dokumentumSorrend'],'id'); + $_tipus = readVariable($_POST['dokumentumTipus'],'enum','tanev',array('general','tanev')); + $_policy = readVariable($_POST['dokumentumPolicy'],'enum','private',array('public','parent','private')); + $dokumentumId = addDokumentum( + array( + 'dokumentumLeiras' => $_leiras, + 'dokumentumRovidLeiras' => $_rovidLeiras, + 'dokumentumUrl' => $_url, + 'dokumentumMegjegyzes' => $_megjegyzes, + 'dokumentumSorrend'=> $_sorrend, + 'dokumentumTipus' => $_tipus, + 'dokumentumPolicy' => $_policy + ) + ); + } elseif ($action=='delDokumentum') { + $_ids = readVariable($_POST['dokumentumId'],'id'); + delDokumentum($_ids); + } + } + $ADAT = getDokumentumok(); + $ADATASSOC = getDokumentumokAssoc(); + +?> \ No newline at end of file diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/dokumentum/dokumentum.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/dokumentum/dokumentum.php new file mode 100644 index 00000000..04259088 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/dokumentum/dokumentum.php @@ -0,0 +1,21 @@ +'; +} else { + + putDokumentumLista($ADATASSOC); + +} +?> diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/dokumentum/tinyfilemanager.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/dokumentum/tinyfilemanager.php new file mode 100644 index 00000000..3e5a1772 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/dokumentum/tinyfilemanager.php @@ -0,0 +1,4021 @@ + 'Password', 'Username2' => 'Password2', ...) +// Generate secure password hash - https://tinyfilemanager.github.io/docs/pwd.html +$auth_users = array( +); + +//set application theme +//options - 'light' and 'dark' +$theme = 'light'; + +// Readonly users +// e.g. array('users', 'guest', ...) +$readonly_users = array(); + +// Enable highlight.js (https://highlightjs.org/) on view's page +$use_highlightjs = true; + +// highlight.js style +// for dark theme use 'ir-black' +$highlightjs_style = 'vs'; + +// Enable ace.js (https://ace.c9.io/) on view's page +$edit_files = true; + +// Default timezone for date() and time() +// Doc - http://php.net/manual/en/timezones.php +$default_timezone = 'Europe/Budapest'; + +// Root path for file manager +// use absolute path of directory i.e: '/var/www/folder' or $_SERVER['DOCUMENT_ROOT'].'/folder' +$root_path = $_SERVER['DOCUMENT_ROOT']; +$root_path = "/var/mayor/download/public/portal/upload/"; + +// Root url for links in file manager.Relative to $http_host. Variants: '', 'path/to/subfolder' +// Will not working if $root_path will be outside of server document root +$root_url = ''; +$root_url = '/upload/'; + +// Server hostname. Can set manually if wrong +$http_host = $_SERVER['HTTP_HOST']; + +// user specific directories +// array('Username' => 'Directory path', 'Username2' => 'Directory path', ...) +$directories_users = array(); + +// input encoding for iconv +$iconv_input_encoding = 'UTF-8'; + +// date() format for file modification date +// Doc - https://www.php.net/manual/en/function.date.php +$datetime_format = 'Y-m-d H:i:s'; + +// Allowed file extensions for create and rename files +// e.g. 'txt,html,css,js' +$allowed_file_extensions = 'jpg,jpeg,png,gif,pdf,doc,docx,xls,xlsx'; + +// Allowed file extensions for upload files +// e.g. 'gif,png,jpg,html,txt' +$allowed_upload_extensions = $allowed_file_extensions; + +// Favicon path. This can be either a full url to an .PNG image, or a path based on the document root. +// full path, e.g http://example.com/favicon.png +// local path, e.g images/icons/favicon.png +$favicon_path = ''; + +// Files and folders to excluded from listing +// e.g. array('myfile.html', 'personal-folder', '*.php', ...) +$exclude_items = array(); +$exclude_items = array( + '*.phtml', + '*.php', + '*.css', + '*.js' +); + +// Online office Docs Viewer +// Availabe rules are 'google', 'microsoft' or false +// google => View documents using Google Docs Viewer +// microsoft => View documents using Microsoft Web Apps Viewer +// false => disable online doc viewer +$online_viewer = 'google'; + +// Sticky Nav bar +// true => enable sticky header +// false => disable sticky header +$sticky_navbar = true; + +// Maximum file upload size +// Increase the following values in php.ini to work properly +// memory_limit, upload_max_filesize, post_max_size +$max_upload_size_bytes = 20000; + +// Possible rules are 'OFF', 'AND' or 'OR' +// OFF => Don't check connection IP, defaults to OFF +// AND => Connection must be on the whitelist, and not on the blacklist +// OR => Connection must be on the whitelist, or not on the blacklist +$ip_ruleset = 'OFF'; + +// Should users be notified of their block? +$ip_silent = true; + +// IP-addresses, both ipv4 and ipv6 +$ip_whitelist = array( + '127.0.0.1', // local ipv4 + '::1' // local ipv6 +); + +// IP-addresses, both ipv4 and ipv6 +$ip_blacklist = array( + '0.0.0.0', // non-routable meta ipv4 + '::' // non-routable meta ipv6 +); + +// if User has the customized config file, try to use it to override the default config above +#$config_file = __DIR__.'/config.php'; +#if (is_readable($config_file)) { +# @include($config_file); +#} + +// --- EDIT BELOW CAREFULLY OR DO NOT EDIT AT ALL --- + +// max upload file size +define('MAX_UPLOAD_SIZE', $max_upload_size_bytes); + +define('FM_THEME', $theme); + +// private key and session name to store to the session +if ( !defined( 'FM_SESSION_ID')) { + define('FM_SESSION_ID', 'filemanager'); +} + +// Configuration +$cfg = new FM_Config(); + +// Default language +$lang = isset($cfg->data['lang']) ? $cfg->data['lang'] : 'en'; + +// Show or hide files and folders that starts with a dot +$show_hidden_files = isset($cfg->data['show_hidden']) ? $cfg->data['show_hidden'] : true; + +// PHP error reporting - false = Turns off Errors, true = Turns on Errors +$report_errors = isset($cfg->data['error_reporting']) ? $cfg->data['error_reporting'] : true; + +// Hide Permissions and Owner cols in file-listing +$hide_Cols = isset($cfg->data['hide_Cols']) ? $cfg->data['hide_Cols'] : true; + +// Show directory size: true or speedup output: false +$calc_folder = isset($cfg->data['calc_folder']) ? $cfg->data['calc_folder'] : true; + +//available languages +$lang_list = array( + 'en' => 'English' +); + + +if ($report_errors == true) { + @ini_set('error_reporting', E_ALL); + @ini_set('display_errors', 1); +} else { + @ini_set('error_reporting', E_ALL); + @ini_set('display_errors', 0); +} + +// if fm included +if (defined('FM_EMBED')) { + $use_auth = false; + $sticky_navbar = false; + session_start(); if ($_SESSION['MAYOR_RIGHTS_OK']!==true) die(); // MaYoR +} else { + @set_time_limit(600); + + date_default_timezone_set($default_timezone); + + ini_set('default_charset', 'UTF-8'); + if (version_compare(PHP_VERSION, '5.6.0', '<') && function_exists('mb_internal_encoding')) { + mb_internal_encoding('UTF-8'); + } + if (function_exists('mb_regex_encoding')) { + mb_regex_encoding('UTF-8'); + } + + session_cache_limiter(''); + session_name(FM_SESSION_ID ); + function session_error_handling_function($code, $msg, $file, $line) { + // Permission denied for default session, try to create a new one + if ($code == 2) { + session_abort(); + session_id(session_create_id()); + @session_start(); + } + } + set_error_handler('session_error_handling_function'); + session_start(); + restore_error_handler(); +} + +if (empty($auth_users)) { + $use_auth = false; +} + +$is_https = isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) + || isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'; + +// update $root_url based on user specific directories +if (isset($_SESSION[FM_SESSION_ID]['logged']) && !empty($directories_users[$_SESSION[FM_SESSION_ID]['logged']])) { + $wd = fm_clean_path(dirname($_SERVER['PHP_SELF'])); + $root_url = $root_url.$wd.DIRECTORY_SEPARATOR.$directories_users[$_SESSION[FM_SESSION_ID]['logged']]; +} +// clean $root_url +$root_url = fm_clean_path($root_url); + +// abs path for site +defined('FM_ROOT_URL') || define('FM_ROOT_URL', ($is_https ? 'https' : 'http') . '://' . $http_host . (!empty($root_url) ? '/' . $root_url : '')); +defined('FM_SELF_URL') || define('FM_SELF_URL', ($is_https ? 'https' : 'http') . '://' . $http_host . $_SERVER['PHP_SELF']); + +// logout +if (isset($_GET['logout'])) { + unset($_SESSION[FM_SESSION_ID]['logged']); + fm_redirect(FM_SELF_URL); +} + +// Validate connection IP +if($ip_ruleset != 'OFF'){ + $clientIp = $_SERVER['REMOTE_ADDR']; + + $proceed = false; + + $whitelisted = in_array($clientIp, $ip_whitelist); + $blacklisted = in_array($clientIp, $ip_blacklist); + + if($ip_ruleset == 'AND'){ + if($whitelisted == true && $blacklisted == false){ + $proceed = true; + } + } else + if($ip_ruleset == 'OR'){ + if($whitelisted == true || $blacklisted == false){ + $proceed = true; + } + } + + if($proceed == false){ + trigger_error('User connection denied from: ' . $clientIp, E_USER_WARNING); + + if($ip_silent == false){ + fm_set_msg('Access denied. IP restriction applicable', 'error'); + fm_show_header_login(); + fm_show_message(); + } + + exit(); + } +} + +// Auth +if ($use_auth) { + if (isset($_SESSION[FM_SESSION_ID]['logged'], $auth_users[$_SESSION[FM_SESSION_ID]['logged']])) { + // Logged + } elseif (isset($_POST['fm_usr'], $_POST['fm_pwd'])) { + // Logging In + sleep(1); + if(function_exists('password_verify')) { + if (isset($auth_users[$_POST['fm_usr']]) && isset($_POST['fm_pwd']) && password_verify($_POST['fm_pwd'], $auth_users[$_POST['fm_usr']])) { + $_SESSION[FM_SESSION_ID]['logged'] = $_POST['fm_usr']; + fm_set_msg(lng('You are logged in')); + fm_redirect(FM_SELF_URL . '?p='); + } else { + unset($_SESSION[FM_SESSION_ID]['logged']); + fm_set_msg(lng('Login failed. Invalid username or password'), 'error'); + fm_redirect(FM_SELF_URL); + } + } else { + fm_set_msg(lng('password_hash not supported, Upgrade PHP version'), 'error');; + } + } else { + // Form + unset($_SESSION[FM_SESSION_ID]['logged']); + fm_show_header_login(); + ?> +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    + + Root path \"{$root_path}\" not found!"; + exit; +} + +defined('FM_SHOW_HIDDEN') || define('FM_SHOW_HIDDEN', $show_hidden_files); +defined('FM_ROOT_PATH') || define('FM_ROOT_PATH', $root_path); +defined('FM_LANG') || define('FM_LANG', $lang); +defined('FM_FILE_EXTENSION') || define('FM_FILE_EXTENSION', $allowed_file_extensions); +defined('FM_UPLOAD_EXTENSION') || define('FM_UPLOAD_EXTENSION', $allowed_upload_extensions); +defined('FM_EXCLUDE_ITEMS') || define('FM_EXCLUDE_ITEMS', $exclude_items); +defined('FM_DOC_VIEWER') || define('FM_DOC_VIEWER', $online_viewer); +define('FM_READONLY', $use_auth && !empty($readonly_users) && isset($_SESSION[FM_SESSION_ID]['logged']) && in_array($_SESSION[FM_SESSION_ID]['logged'], $readonly_users)); +define('FM_IS_WIN', DIRECTORY_SEPARATOR == '\\'); + +// always use ?p= +if (!isset($_GET['p']) && empty($_FILES)) { + fm_redirect(FM_SELF_URL . '?p='); +} + +// get path +$p = isset($_GET['p']) ? $_GET['p'] : (isset($_POST['p']) ? $_POST['p'] : ''); + +// clean path +$p = fm_clean_path($p); + +// for ajax request - save +$input = file_get_contents('php://input'); +$_POST = (strpos($input, 'ajax') != FALSE && strpos($input, 'save') != FALSE) ? json_decode($input, true) : $_POST; + +// instead globals vars +define('FM_PATH', $p); +define('FM_USE_AUTH', $use_auth); +define('FM_EDIT_FILE', $edit_files); +defined('FM_ICONV_INPUT_ENC') || define('FM_ICONV_INPUT_ENC', $iconv_input_encoding); +defined('FM_USE_HIGHLIGHTJS') || define('FM_USE_HIGHLIGHTJS', $use_highlightjs); +defined('FM_HIGHLIGHTJS_STYLE') || define('FM_HIGHLIGHTJS_STYLE', $highlightjs_style); +defined('FM_DATETIME_FORMAT') || define('FM_DATETIME_FORMAT', $datetime_format); + +unset($p, $use_auth, $iconv_input_encoding, $use_highlightjs, $highlightjs_style); + +/*************************** ACTIONS ***************************/ + +// AJAX Request +if (isset($_POST['ajax']) && !FM_READONLY) { + + // save + if (isset($_POST['type']) && $_POST['type'] == "save") { + // get current path + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + // check path + if (!is_dir($path)) { + fm_redirect(FM_SELF_URL . '?p='); + } + $file = $_GET['edit']; + $file = fm_clean_path($file); + $file = str_replace('/', '', $file); + if ($file == '' || !is_file($path . '/' . $file)) { + fm_set_msg('File not found', 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + header('X-XSS-Protection:0'); + $file_path = $path . '/' . $file; + + $writedata = $_POST['content']; + $fd = fopen($file_path, "w"); + $write_results = @fwrite($fd, $writedata); + fclose($fd); + if ($write_results === false){ + header("HTTP/1.1 500 Internal Server Error"); + die("Could Not Write File! - Check Permissions / Ownership"); + } + die(true); + } + + //search : get list of files from the current folder + if(isset($_POST['type']) && $_POST['type']=="search") { + $dir = FM_ROOT_PATH; + $response = scan(fm_clean_path($_POST['path']), $_POST['content']); + echo json_encode($response); + exit(); + } + + // backup files + if (isset($_POST['type']) && $_POST['type'] == "backup" && !empty($_POST['file'])) { + $fileName = $_POST['file']; + $fullPath = FM_ROOT_PATH . '/'; + if (!empty($_POST['path'])) { + $relativeDirPath = fm_clean_path($_POST['path']); + $fullPath .= "{$relativeDirPath}/"; + } + $date = date("dMy-His"); + $newFileName = "{$fileName}-{$date}.bak"; + $fullyQualifiedFileName = $fullPath . $fileName; + try { + if (!file_exists($fullyQualifiedFileName)) { + throw new Exception("File {$fileName} not found"); + } + if (copy($fullyQualifiedFileName, $fullPath . $newFileName)) { + echo "Backup {$newFileName} created"; + } else { + throw new Exception("Could not copy file {$fileName}"); + } + } catch (Exception $e) { + echo $e->getMessage(); + } + } + + // Save Config + if (isset($_POST['type']) && $_POST['type'] == "settings") { + global $cfg, $lang, $report_errors, $show_hidden_files, $lang_list, $hide_Cols, $calc_folder; + $newLng = $_POST['js-language']; + fm_get_translations([]); + if (!array_key_exists($newLng, $lang_list)) { + $newLng = 'en'; + } + + $erp = isset($_POST['js-error-report']) && $_POST['js-error-report'] == "true" ? true : false; + $shf = isset($_POST['js-show-hidden']) && $_POST['js-show-hidden'] == "true" ? true : false; + $hco = isset($_POST['js-hide-cols']) && $_POST['js-hide-cols'] == "true" ? true : false; + $caf = isset($_POST['js-calc-folder']) && $_POST['js-calc-folder'] == "true" ? true : false; + + if ($cfg->data['lang'] != $newLng) { + $cfg->data['lang'] = $newLng; + $lang = $newLng; + } + if ($cfg->data['error_reporting'] != $erp) { + $cfg->data['error_reporting'] = $erp; + $report_errors = $erp; + } + if ($cfg->data['show_hidden'] != $shf) { + $cfg->data['show_hidden'] = $shf; + $show_hidden_files = $shf; + } + if ($cfg->data['show_hidden'] != $shf) { + $cfg->data['show_hidden'] = $shf; + $show_hidden_files = $shf; + } + if ($cfg->data['hide_Cols'] != $hco) { + $cfg->data['hide_Cols'] = $hco; + $hide_Cols = $hco; + } + if ($cfg->data['calc_folder'] != $caf) { + $cfg->data['calc_folder'] = $caf; + $calc_folder = $caf; + } + $cfg->save(); + echo true; + } + + // new password hash + if (isset($_POST['type']) && $_POST['type'] == "pwdhash") { + $res = isset($_POST['inputPassword2']) && !empty($_POST['inputPassword2']) ? password_hash($_POST['inputPassword2'], PASSWORD_DEFAULT) : ''; + echo $res; + } + + //upload using url + if(isset($_POST['type']) && $_POST['type'] == "upload" && !empty($_REQUEST["uploadurl"])) { + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + + $url = !empty($_REQUEST["uploadurl"]) && preg_match("|^http(s)?://.+$|", stripslashes($_REQUEST["uploadurl"])) ? stripslashes($_REQUEST["uploadurl"]) : null; + $use_curl = false; + $temp_file = tempnam(sys_get_temp_dir(), "upload-"); + $fileinfo = new stdClass(); + $fileinfo->name = trim(basename($url), ".\x00..\x20"); + + $allowed = (FM_UPLOAD_EXTENSION) ? explode(',', FM_UPLOAD_EXTENSION) : false; + $ext = strtolower(pathinfo($fileinfo->name, PATHINFO_EXTENSION)); + $isFileAllowed = ($allowed) ? in_array($ext, $allowed) : true; + + function event_callback ($message) { + global $callback; + echo json_encode($message); + } + + function get_file_path () { + global $path, $fileinfo, $temp_file; + return $path."/".basename($fileinfo->name); + } + + $err = false; + + if(!$isFileAllowed) { + $err = array("message" => "File extension is not allowed"); + event_callback(array("fail" => $err)); + exit(); + } + + if (!$url) { + $success = false; + } else if ($use_curl) { + @$fp = fopen($temp_file, "w"); + @$ch = curl_init($url); + curl_setopt($ch, CURLOPT_NOPROGRESS, false ); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); + curl_setopt($ch, CURLOPT_FILE, $fp); + @$success = curl_exec($ch); + $curl_info = curl_getinfo($ch); + if (!$success) { + $err = array("message" => curl_error($ch)); + } + @curl_close($ch); + fclose($fp); + $fileinfo->size = $curl_info["size_download"]; + $fileinfo->type = $curl_info["content_type"]; + } else { + $ctx = stream_context_create(); + @$success = copy($url, $temp_file, $ctx); + if (!$success) { + $err = error_get_last(); + } + } + + if ($success) { + $success = rename($temp_file, get_file_path()); + } + + if ($success) { + event_callback(array("done" => $fileinfo)); + } else { + unlink($temp_file); + if (!$err) { + $err = array("message" => "Invalid url parameter"); + } + event_callback(array("fail" => $err)); + } + } + + exit(); +} + +// Delete file / folder +if (isset($_GET['del']) && !FM_READONLY) { + $del = str_replace( '/', '', fm_clean_path( $_GET['del'] ) ); + if ($del != '' && $del != '..' && $del != '.') { + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + $is_dir = is_dir($path . '/' . $del); + if (fm_rdelete($path . '/' . $del)) { + $msg = $is_dir ? 'Folder %s deleted' : 'File %s deleted'; + fm_set_msg(sprintf($msg, fm_enc($del))); + } else { + $msg = $is_dir ? 'Folder %s not deleted' : 'File %s not deleted'; + fm_set_msg(sprintf($msg, fm_enc($del)), 'error'); + } + } else { + fm_set_msg('Invalid file or folder name', 'error'); + } + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +// Create folder +if (isset($_GET['new']) && isset($_GET['type']) && !FM_READONLY) { + $type = $_GET['type']; + $new = str_replace( '/', '', fm_clean_path( strip_tags( $_GET['new'] ) ) ); + if (fm_isvalid_filename($new) && $new != '' && $new != '..' && $new != '.') { + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + if ($_GET['type'] == "file") { + if (!file_exists($path . '/' . $new)) { + if(fm_is_valid_ext($new)) { + @fopen($path . '/' . $new, 'w') or die('Cannot open file: ' . $new); + fm_set_msg(sprintf(lng('File').' %s '.lng('Created'), fm_enc($new))); + } else { + fm_set_msg('File extension is not allowed', 'error'); + } + } else { + fm_set_msg(sprintf('File %s already exists', fm_enc($new)), 'alert'); + } + } else { + if (fm_mkdir($path . '/' . $new, false) === true) { + fm_set_msg(sprintf(lng('Folder').' %s '.lng('Created'), $new)); + } elseif (fm_mkdir($path . '/' . $new, false) === $path . '/' . $new) { + fm_set_msg(sprintf('Folder %s already exists', fm_enc($new)), 'alert'); + } else { + fm_set_msg(sprintf('Folder %s not created', fm_enc($new)), 'error'); + } + } + } else { + fm_set_msg('Invalid characters in file or folder name', 'error'); + } + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +// Copy folder / file +if (isset($_GET['copy'], $_GET['finish']) && !FM_READONLY) { + // from + $copy = $_GET['copy']; + $copy = fm_clean_path($copy); + // empty path + if ($copy == '') { + fm_set_msg('Source path not defined', 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + // abs path from + $from = FM_ROOT_PATH . '/' . $copy; + // abs path to + $dest = FM_ROOT_PATH; + if (FM_PATH != '') { + $dest .= '/' . FM_PATH; + } + $dest .= '/' . basename($from); + // move? + $move = isset($_GET['move']); + // copy/move/duplicate + if ($from != $dest) { + $msg_from = trim(FM_PATH . '/' . basename($from), '/'); + if ($move) { // Move and to != from so just perform move + $rename = fm_rename($from, $dest); + if ($rename) { + fm_set_msg(sprintf('Moved from %s to %s', fm_enc($copy), fm_enc($msg_from))); + } elseif ($rename === null) { + fm_set_msg('File or folder with this path already exists', 'alert'); + + } else { + fm_set_msg(sprintf('Error while moving from %s to %s', fm_enc($copy), fm_enc($msg_from)), 'error'); + } + } else { // Not move and to != from so copy with original name + if (fm_rcopy($from, $dest)) { + fm_set_msg(sprintf('Copied from %s to %s', fm_enc($copy), fm_enc($msg_from))); + } else { + fm_set_msg(sprintf('Error while copying from %s to %s', fm_enc($copy), fm_enc($msg_from)), 'error'); + } + } + } else { + if (!$move){ //Not move and to = from so duplicate + $msg_from = trim(FM_PATH . '/' . basename($from), '/'); + $fn_parts = pathinfo($from); + $extension_suffix = ''; + if(!is_dir($from)){ + $extension_suffix = '.'.$fn_parts['extension']; + } + //Create new name for duplicate + $fn_duplicate = $fn_parts['dirname'].'/'.$fn_parts['filename'].'-'.date('YmdHis').$extension_suffix; + $loop_count = 0; + $max_loop = 1000; + // Check if a file with the duplicate name already exists, if so, make new name (edge case...) + while(file_exists($fn_duplicate) & $loop_count < $max_loop){ + $fn_parts = pathinfo($fn_duplicate); + $fn_duplicate = $fn_parts['dirname'].'/'.$fn_parts['filename'].'-copy'.$extension_suffix; + $loop_count++; + } + if (fm_rcopy($from, $fn_duplicate, False)) { + fm_set_msg(sprintf('Copyied from %s to %s', fm_enc($copy), fm_enc($fn_duplicate))); + } else { + fm_set_msg(sprintf('Error while copying from %s to %s', fm_enc($copy), fm_enc($fn_duplicate)), 'error'); + } + } + else{ + fm_set_msg('Paths must be not equal', 'alert'); + } + } + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +// Mass copy files/ folders +if (isset($_POST['file'], $_POST['copy_to'], $_POST['finish']) && !FM_READONLY) { + // from + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + // to + $copy_to_path = FM_ROOT_PATH; + $copy_to = fm_clean_path($_POST['copy_to']); + if ($copy_to != '') { + $copy_to_path .= '/' . $copy_to; + } + if ($path == $copy_to_path) { + fm_set_msg('Paths must be not equal', 'alert'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + if (!is_dir($copy_to_path)) { + if (!fm_mkdir($copy_to_path, true)) { + fm_set_msg('Unable to create destination folder', 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + } + // move? + $move = isset($_POST['move']); + // copy/move + $errors = 0; + $files = $_POST['file']; + if (is_array($files) && count($files)) { + foreach ($files as $f) { + if ($f != '') { + // abs path from + $from = $path . '/' . $f; + // abs path to + $dest = $copy_to_path . '/' . $f; + // do + if ($move) { + $rename = fm_rename($from, $dest); + if ($rename === false) { + $errors++; + } + } else { + if (!fm_rcopy($from, $dest)) { + $errors++; + } + } + } + } + if ($errors == 0) { + $msg = $move ? 'Selected files and folders moved' : 'Selected files and folders copied'; + fm_set_msg($msg); + } else { + $msg = $move ? 'Error while moving items' : 'Error while copying items'; + fm_set_msg($msg, 'error'); + } + } else { + fm_set_msg('Nothing selected', 'alert'); + } + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +// Rename +if (isset($_GET['ren'], $_GET['to']) && !FM_READONLY) { + // old name + $old = $_GET['ren']; + $old = fm_clean_path($old); + $old = str_replace('/', '', $old); + // new name + $new = $_GET['to']; + $new = fm_clean_path(strip_tags($new)); + $new = str_replace('/', '', $new); + // path + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + // rename + if (fm_isvalid_filename($new) && $old != '' && $new != '') { + if (fm_rename($path . '/' . $old, $path . '/' . $new)) { + fm_set_msg(sprintf('Renamed from %s to %s', fm_enc($old), fm_enc($new))); + } else { + fm_set_msg(sprintf('Error while renaming from %s to %s', fm_enc($old), fm_enc($new)), 'error'); + } + } else { + fm_set_msg('Invalid characters in file name', 'error'); + } + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +// Download +if (isset($_GET['dl'])) { + $dl = $_GET['dl']; + $dl = fm_clean_path($dl); + $dl = str_replace('/', '', $dl); + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + if ($dl != '' && is_file($path . '/' . $dl)) { + fm_download_file($path . '/' . $dl, $dl, 1024); + exit; + } else { + fm_set_msg('File not found', 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } +} + +// Upload +if (!empty($_FILES) && !FM_READONLY) { + $override_file_name = false; + $f = $_FILES; + $path = FM_ROOT_PATH; + $ds = DIRECTORY_SEPARATOR; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + + $errors = 0; + $uploads = 0; + $allowed = (FM_UPLOAD_EXTENSION) ? explode(',', FM_UPLOAD_EXTENSION) : false; + $response = array ( + 'status' => 'error', + 'info' => 'Oops! Try again' + ); + + $filename = $f['file']['name']; + $tmp_name = $f['file']['tmp_name']; + $ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION)); + $isFileAllowed = ($allowed) ? in_array($ext, $allowed) : true; + + $targetPath = $path . $ds; + if ( is_writable($targetPath) ) { + $fullPath = $path . '/' . $_REQUEST['fullpath']; + $folder = substr($fullPath, 0, strrpos($fullPath, "/")); + + if(file_exists ($fullPath) && !$override_file_name) { + $ext_1 = $ext ? '.'.$ext : ''; + $fullPath = str_replace($ext_1, '', $fullPath) .'_'. date('ymdHis'). $ext_1; + } + + if (!is_dir($folder)) { + $old = umask(0); + mkdir($folder, 0777, true); + umask($old); + } + + if (empty($f['file']['error']) && !empty($tmp_name) && $tmp_name != 'none' && $isFileAllowed) { + if (move_uploaded_file($tmp_name, $fullPath)) { + // Be sure that the file has been uploaded + if ( file_exists($fullPath) ) { + $response = array ( + 'status' => 'success', + 'info' => "file upload successful" + ); + } else { + $response = array ( + 'status' => 'error', + 'info' => 'Couldn\'t upload the requested file.' + ); + } + } else { + $response = array ( + 'status' => 'error', + 'info' => "Error while uploading files. Uploaded files $uploads", + ); + } + } + } else { + $response = array ( + 'status' => 'error', + 'info' => 'The specified folder for upload isn\'t writeable.' + ); + } + // Return the response + echo json_encode($response); + exit(); +} + +// Mass deleting +if (isset($_POST['group'], $_POST['delete']) && !FM_READONLY) { + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + + $errors = 0; + $files = $_POST['file']; + if (is_array($files) && count($files)) { + foreach ($files as $f) { + if ($f != '') { + $new_path = $path . '/' . $f; + if (!fm_rdelete($new_path)) { + $errors++; + } + } + } + if ($errors == 0) { + fm_set_msg('Selected files and folder deleted'); + } else { + fm_set_msg('Error while deleting items', 'error'); + } + } else { + fm_set_msg('Nothing selected', 'alert'); + } + + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +// Pack files +if (isset($_POST['group']) && (isset($_POST['zip']) || isset($_POST['tar'])) && !FM_READONLY) { + $path = FM_ROOT_PATH; + $ext = 'zip'; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + + //set pack type + $ext = isset($_POST['tar']) ? 'tar' : 'zip'; + + + if (($ext == "zip" && !class_exists('ZipArchive')) || ($ext == "tar" && !class_exists('PharData'))) { + fm_set_msg('Operations with archives are not available', 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + + $files = $_POST['file']; + if (!empty($files)) { + chdir($path); + + if (count($files) == 1) { + $one_file = reset($files); + $one_file = basename($one_file); + $zipname = $one_file . '_' . date('ymd_His') . '.'.$ext; + } else { + $zipname = 'archive_' . date('ymd_His') . '.'.$ext; + } + + if($ext == 'zip') { + $zipper = new FM_Zipper(); + $res = $zipper->create($zipname, $files); + } elseif ($ext == 'tar') { + $tar = new FM_Zipper_Tar(); + $res = $tar->create($zipname, $files); + } + + if ($res) { + fm_set_msg(sprintf('Archive %s created', fm_enc($zipname))); + } else { + fm_set_msg('Archive not created', 'error'); + } + } else { + fm_set_msg('Nothing selected', 'alert'); + } + + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +// Unpack +if (isset($_GET['unzip']) && !FM_READONLY) { + $unzip = $_GET['unzip']; + $unzip = fm_clean_path($unzip); + $unzip = str_replace('/', '', $unzip); + $isValid = false; + + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + + if ($unzip != '' && is_file($path . '/' . $unzip)) { + $zip_path = $path . '/' . $unzip; + $ext = pathinfo($zip_path, PATHINFO_EXTENSION); + $isValid = true; + } else { + fm_set_msg('File not found', 'error'); + } + + + if (($ext == "zip" && !class_exists('ZipArchive')) || ($ext == "tar" && !class_exists('PharData'))) { + fm_set_msg('Operations with archives are not available', 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + + if ($isValid) { + //to folder + $tofolder = ''; + if (isset($_GET['tofolder'])) { + $tofolder = pathinfo($zip_path, PATHINFO_FILENAME); + if (fm_mkdir($path . '/' . $tofolder, true)) { + $path .= '/' . $tofolder; + } + } + + if($ext == "zip") { + $zipper = new FM_Zipper(); + $res = $zipper->unzip($zip_path, $path); + } elseif ($ext == "tar") { + try { + $gzipper = new PharData($zip_path); + if (@$gzipper->extractTo($path,null, true)) { + $res = true; + } else { + $res = false; + } + } catch (Exception $e) { + //TODO:: need to handle the error + $res = true; + } + } + + if ($res) { + fm_set_msg('Archive unpacked'); + } else { + fm_set_msg('Archive not unpacked', 'error'); + } + + } else { + fm_set_msg('File not found', 'error'); + } + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +// Change Perms (not for Windows) +if (isset($_POST['chmod']) && !FM_READONLY && !FM_IS_WIN) { + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + + $file = $_POST['chmod']; + $file = fm_clean_path($file); + $file = str_replace('/', '', $file); + if ($file == '' || (!is_file($path . '/' . $file) && !is_dir($path . '/' . $file))) { + fm_set_msg('File not found', 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + + $mode = 0; + if (!empty($_POST['ur'])) { + $mode |= 0400; + } + if (!empty($_POST['uw'])) { + $mode |= 0200; + } + if (!empty($_POST['ux'])) { + $mode |= 0100; + } + if (!empty($_POST['gr'])) { + $mode |= 0040; + } + if (!empty($_POST['gw'])) { + $mode |= 0020; + } + if (!empty($_POST['gx'])) { + $mode |= 0010; + } + if (!empty($_POST['or'])) { + $mode |= 0004; + } + if (!empty($_POST['ow'])) { + $mode |= 0002; + } + if (!empty($_POST['ox'])) { + $mode |= 0001; + } + + if (@chmod($path . '/' . $file, $mode)) { + fm_set_msg('Permissions changed'); + } else { + fm_set_msg('Permissions not changed', 'error'); + } + + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +/*************************** /ACTIONS ***************************/ + +// get current path +$path = FM_ROOT_PATH; +if (FM_PATH != '') { + $path .= '/' . FM_PATH; +} + +// check path +if (!is_dir($path)) { + fm_redirect(FM_SELF_URL . '?p='); +} + +// get parent folder +$parent = fm_get_parent_path(FM_PATH); + +$objects = is_readable($path) ? scandir($path) : array(); +$folders = array(); +$files = array(); +$current_path = array_slice(explode("/",$path), -1)[0]; +if (is_array($objects) && fm_is_exclude_items($current_path)) { + foreach ($objects as $file) { + if ($file == '.' || $file == '..') { + continue; + } + if (!FM_SHOW_HIDDEN && substr($file, 0, 1) === '.') { + continue; + } + $new_path = $path . '/' . $file; + if (@is_file($new_path) && fm_is_exclude_items($file)) { + $files[] = $file; + } elseif (@is_dir($new_path) && $file != '.' && $file != '..' && fm_is_exclude_items($file)) { + $folders[] = $file; + } + } +} + +if (!empty($files)) { + natcasesort($files); +} +if (!empty($folders)) { + natcasesort($folders); +} + +// upload form +if (isset($_GET['upload']) && !FM_READONLY) { + fm_show_header(); // HEADER + fm_show_nav_path(FM_PATH); // current path + //get the allowed file extensions + function getUploadExt() { + $extArr = explode(',', FM_UPLOAD_EXTENSION); + if(FM_UPLOAD_EXTENSION && $extArr) { + array_walk($extArr, function(&$x) {$x = ".$x";}); + return implode(',', $extArr); + } + return ''; + } + ?> + + +
    + +
    +
    + +
    +
    +

    + + : +

    + +
    + + +
    + +
    +
    + + +
    +
    +
    + + + +
    +
    +
    +
    +
    +
    +
    + + + ' . PHP_EOL; + } + ?> +

    : , ', $copy_files) ?>

    +

    :
    + + / +

    +

    +

    +   + +

    + +
    +
    +
    + +
    +

    Copying

    +

    + Source path:
    + Destination folder: +

    +

    + Copy   + Move   + Cancel +

    +

    Select folder

    + +
    + + +
    +
    +
    + + +
    +
    +
    + +
    + +
    + +
    +
    + +
    + +
    +
    + + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    + + +
    +
    +
    + + +
    +
    +
    +
    +

    Tiny File Manager

    +

    Author: Prasath Mani

    +

    Mail Us: ccpprogrammers[at]gmail.com

    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    + +

    ""

    +

    + Full path:
    + File size:
    + MIME-type:
    + + Files in archive:
    + Total size:
    + Size in archive:
    + Compression: %
    + '; + } + // Text info + if ($is_text) { + $is_utf8 = fm_is_utf8($content); + if (function_exists('iconv')) { + if (!$is_utf8) { + $content = iconv(FM_ICONV_INPUT_ENC, 'UTF-8//IGNORE', $content); + } + } + echo 'Charset: ' . ($is_utf8 ? 'utf-8' : '8 bit') . '
    '; + } + ?> +

    +

    +   + +   + +   + +   + + +   + +   + + +

    + '; + } else if($online_viewer == 'microsoft') { + echo ''; + } + } elseif ($is_zip) { + // ZIP content + if ($filenames !== false) { + echo ''; + foreach ($filenames as $fn) { + if ($fn['folder']) { + echo '' . fm_enc($fn['name']) . '
    '; + } else { + echo $fn['name'] . ' (' . fm_get_filesize($fn['filesize']) . ')
    '; + } + } + echo '
    '; + } else { + echo '

    Error while fetching archive info

    '; + } + } elseif ($is_image) { + // Image content + if (in_array($ext, array('gif', 'jpg', 'jpeg', 'png', 'bmp', 'ico', 'svg'))) { + echo '

    '; + } + } elseif ($is_audio) { + // Audio content + echo '

    '; + } elseif ($is_video) { + // Video content + echo '
    '; + } elseif ($is_text) { + if (FM_USE_HIGHLIGHTJS) { + // highlight + $hljs_classes = array( + 'shtml' => 'xml', + 'htaccess' => 'apache', + 'phtml' => 'php', + 'lock' => 'json', + 'svg' => 'xml', + ); + $hljs_class = isset($hljs_classes[$ext]) ? 'lang-' . $hljs_classes[$ext] : 'lang-' . $ext; + if (empty($ext) || in_array(strtolower($file), fm_get_text_names()) || preg_match('#\.min\.(css|js)$#i', $file)) { + $hljs_class = 'nohighlight'; + } + $content = '
    ' . fm_enc($content) . '
    '; + } elseif (in_array($ext, array('php', 'php4', 'php5', 'phtml', 'phps'))) { + // php highlight + $content = highlight_string($content, true); + } else { + $content = '
    ' . fm_enc($content) . '
    '; + } + echo $content; + } + ?> +
    +
    + +
    +
    +
    + +
    +
    + + + + + + + + + + + +
    +
    + ' . htmlspecialchars($content) . ''; + } elseif ($is_text) { + echo '
    ' . htmlspecialchars($content) . '
    '; + } else { + fm_set_msg('FILE EXTENSION HAS NOT SUPPORTED', 'error'); + } + ?> +
    + +
    +
    +
    + +
    +
    +

    + Full path:
    +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +

    +   + +

    +
    +
    +
    +
    + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + '?'); + $group = array('name' => '?'); + } + ?> + + + + + + + + + + + + + '?'); + $group = array('name' => '?'); + } + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + +
    +
    ..
    +
    + + +
    +
    +
    + ' . readlink($path . '/' . $f) . '' : '') ?>
    +
    "> + + + + + + + + +
    +
    + + +
    +
    +
    + + + + + + + + + ' . readlink($path . '/' . $f) . '' : '') ?> +
    +
    "> + + + + + + + + + + + +
    + '.fm_get_filesize($all_files_size).'' ?> + '.$num_files.'' ?> + '.$num_folders.'' ?> + '.fm_get_filesize(@disk_free_space($path)) .' '.lng('FreeOf').' '.fm_get_filesize(@disk_total_space($path)).''; ?> +
    +
    + +
    + +
    + +
    + + + + +
    + +
    + += $time1 && $upd) { + return false; + } + } + $ok = copy($f1, $f2); + if ($ok) { + touch($f2, $time1); + } + return $ok; +} + +/** + * Get mime type + * @param string $file_path + * @return mixed|string + */ +function fm_get_mime_type($file_path) +{ + if (function_exists('finfo_open')) { + $finfo = finfo_open(FILEINFO_MIME_TYPE); + $mime = finfo_file($finfo, $file_path); + finfo_close($finfo); + return $mime; + } elseif (function_exists('mime_content_type')) { + return mime_content_type($file_path); + } elseif (!stristr(ini_get('disable_functions'), 'shell_exec')) { + $file = escapeshellarg($file_path); + $mime = shell_exec('file -bi ' . $file); + return $mime; + } else { + return '--'; + } +} + +/** + * HTTP Redirect + * @param string $url + * @param int $code + */ +function fm_redirect($url, $code = 302) +{ + header('Location: ' . $url, true, $code); + exit; +} + +/** + * Path traversal prevention and clean the url + * It replaces (consecutive) occurrences of / and \\ with whatever is in DIRECTORY_SEPARATOR, and processes /. and /.. fine. + * @param $path + * @return string + */ +function get_absolute_path($path) { + $path = str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, $path); + $parts = array_filter(explode(DIRECTORY_SEPARATOR, $path), 'strlen'); + $absolutes = array(); + foreach ($parts as $part) { + if ('.' == $part) continue; + if ('..' == $part) { + array_pop($absolutes); + } else { + $absolutes[] = $part; + } + } + return implode(DIRECTORY_SEPARATOR, $absolutes); +} + +/** + * Clean path + * @param string $path + * @return string + */ +function fm_clean_path($path, $trim = true) +{ + $path = $trim ? trim($path) : $path; + $path = trim($path, '\\/'); + $path = str_replace(array('../', '..\\'), '', $path); + $path = get_absolute_path($path); + if ($path == '..') { + $path = ''; + } + return str_replace('\\', '/', $path); +} + +/** + * Get parent path + * @param string $path + * @return bool|string + */ +function fm_get_parent_path($path) +{ + $path = fm_clean_path($path); + if ($path != '') { + $array = explode('/', $path); + if (count($array) > 1) { + $array = array_slice($array, 0, -1); + return implode('/', $array); + } + return ''; + } + return false; +} + +/** + * Check file is in exclude list + * @param string $file + * @return bool + */ +function fm_is_exclude_items($file) { + $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION)); + if(!in_array($file, FM_EXCLUDE_ITEMS) && !in_array("*.$ext", FM_EXCLUDE_ITEMS)) { + return true; + } + return false; +} + +/** + * get language translations from json file + * @param int $tr + * @return array + */ +function fm_get_translations($tr) { + try { + $content = @file_get_contents('translation.json'); + if($content !== FALSE) { + $lng = json_decode($content, TRUE); + global $lang_list; + foreach ($lng["language"] as $key => $value) + { + $code = $value["code"]; + $lang_list[$code] = $value["name"]; + if ($tr) + $tr[$code] = $value["translation"]; + } + return $tr; + } + + } + catch (Exception $e) { + echo $e; + } +} + +/** + * @param $file + * Recover all file sizes larger than > 2GB. + * Works on php 32bits and 64bits and supports linux + * @return int|string + */ +function fm_get_size($file) +{ + static $iswin; + static $isdarwin; + if (!isset($iswin)) { + $iswin = (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN'); + } + if (!isset($isdarwin)) { + $isdarwin = (strtoupper(substr(PHP_OS, 0)) == "DARWIN"); + } + + static $exec_works; + if (!isset($exec_works)) { + $exec_works = (function_exists('exec') && !ini_get('safe_mode') && @exec('echo EXEC') == 'EXEC'); + } + + // try a shell command + if ($exec_works) { + $arg = escapeshellarg($file); + $cmd = ($iswin) ? "for %F in (\"$file\") do @echo %~zF" : ($isdarwin ? "stat -f%z $arg" : "stat -c%s $arg"); + @exec($cmd, $output); + if (is_array($output) && ctype_digit($size = trim(implode("\n", $output)))) { + return $size; + } + } + + // try the Windows COM interface + if ($iswin && class_exists("COM")) { + try { + $fsobj = new COM('Scripting.FileSystemObject'); + $f = $fsobj->GetFile( realpath($file) ); + $size = $f->Size; + } catch (Exception $e) { + $size = null; + } + if (ctype_digit($size)) { + return $size; + } + } + + // if all else fails + return filesize($file); +} + +/** + * Get nice filesize + * @param int $size + * @return string + */ +function fm_get_filesize($size) +{ + $size = (float) $size; + $units = array('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'); + $power = $size > 0 ? floor(log($size, 1024)) : 0; + return sprintf('%s %s', round($size / pow(1024, $power), 2), $units[$power]); +} + +/** + * Get director total size + * @param string $directory + * @return int + */ +function fm_get_directorysize($directory) { + global $calc_folder; + if ($calc_folder==true) { // Slower output + $size = 0; $count= 0; $dirCount= 0; + foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory)) as $file) + if ($file->isFile()) + { $size+=$file->getSize(); + $count++; + } + else if ($file->isDir()) { $dirCount++; } + // return [$size, $count, $dirCount]; + return $size; + } + else return 'Folder'; // Quick output +} + +/** + * Get info about zip archive + * @param string $path + * @return array|bool + */ +function fm_get_zif_info($path, $ext) { + if ($ext == 'zip' && function_exists('zip_open')) { + $arch = zip_open($path); + if ($arch) { + $filenames = array(); + while ($zip_entry = zip_read($arch)) { + $zip_name = zip_entry_name($zip_entry); + $zip_folder = substr($zip_name, -1) == '/'; + $filenames[] = array( + 'name' => $zip_name, + 'filesize' => zip_entry_filesize($zip_entry), + 'compressed_size' => zip_entry_compressedsize($zip_entry), + 'folder' => $zip_folder + //'compression_method' => zip_entry_compressionmethod($zip_entry), + ); + } + zip_close($arch); + return $filenames; + } + } elseif($ext == 'tar' && class_exists('PharData')) { + $archive = new PharData($path); + $filenames = array(); + foreach(new RecursiveIteratorIterator($archive) as $file) { + $parent_info = $file->getPathInfo(); + $zip_name = str_replace("phar://".$path, '', $file->getPathName()); + $zip_name = substr($zip_name, ($pos = strpos($zip_name, '/')) !== false ? $pos + 1 : 0); + $zip_folder = $parent_info->getFileName(); + $zip_info = new SplFileInfo($file); + $filenames[] = array( + 'name' => $zip_name, + 'filesize' => $zip_info->getSize(), + 'compressed_size' => $file->getCompressedSize(), + 'folder' => $zip_folder + ); + } + return $filenames; + } + return false; +} + +/** + * Encode html entities + * @param string $text + * @return string + */ +function fm_enc($text) +{ + return htmlspecialchars($text, ENT_QUOTES, 'UTF-8'); +} + +/** + * Prevent XSS attacks + * @param string $text + * @return string + */ +function fm_isvalid_filename($text) { + return (strpbrk($text, '/?%*:|"<>') === FALSE) ? true : false; +} + +/** + * Save message in session + * @param string $msg + * @param string $status + */ +function fm_set_msg($msg, $status = 'ok') +{ + $_SESSION[FM_SESSION_ID]['message'] = $msg; + $_SESSION[FM_SESSION_ID]['status'] = $status; +} + +/** + * Check if string is in UTF-8 + * @param string $string + * @return int + */ +function fm_is_utf8($string) +{ + return preg_match('//u', $string); +} + +/** + * Convert file name to UTF-8 in Windows + * @param string $filename + * @return string + */ +function fm_convert_win($filename) +{ + if (FM_IS_WIN && function_exists('iconv')) { + $filename = iconv(FM_ICONV_INPUT_ENC, 'UTF-8//IGNORE', $filename); + } + return $filename; +} + +/** + * @param $obj + * @return array + */ +function fm_object_to_array($obj) +{ + if (!is_object($obj) && !is_array($obj)) { + return $obj; + } + if (is_object($obj)) { + $obj = get_object_vars($obj); + } + return array_map('fm_object_to_array', $obj); +} + +/** + * Get CSS classname for file + * @param string $path + * @return string + */ +function fm_get_file_icon_class($path) +{ + // get extension + $ext = strtolower(pathinfo($path, PATHINFO_EXTENSION)); + + switch ($ext) { + case 'ico': + case 'gif': + case 'jpg': + case 'jpeg': + case 'jpc': + case 'jp2': + case 'jpx': + case 'xbm': + case 'wbmp': + case 'png': + case 'bmp': + case 'tif': + case 'tiff': + case 'svg': + $img = 'fa fa-picture-o'; + break; + case 'passwd': + case 'ftpquota': + case 'sql': + case 'js': + case 'json': + case 'sh': + case 'config': + case 'twig': + case 'tpl': + case 'md': + case 'gitignore': + case 'c': + case 'cpp': + case 'cs': + case 'py': + case 'map': + case 'lock': + case 'dtd': + $img = 'fa fa-file-code-o'; + break; + case 'txt': + case 'ini': + case 'conf': + case 'log': + case 'htaccess': + $img = 'fa fa-file-text-o'; + break; + case 'css': + case 'less': + case 'sass': + case 'scss': + $img = 'fa fa-css3'; + break; + case 'zip': + case 'rar': + case 'gz': + case 'tar': + case '7z': + $img = 'fa fa-file-archive-o'; + break; + case 'php': + case 'php4': + case 'php5': + case 'phps': + case 'phtml': + $img = 'fa fa-code'; + break; + case 'htm': + case 'html': + case 'shtml': + case 'xhtml': + $img = 'fa fa-html5'; + break; + case 'xml': + case 'xsl': + $img = 'fa fa-file-excel-o'; + break; + case 'wav': + case 'mp3': + case 'mp2': + case 'm4a': + case 'aac': + case 'ogg': + case 'oga': + case 'wma': + case 'mka': + case 'flac': + case 'ac3': + case 'tds': + $img = 'fa fa-music'; + break; + case 'm3u': + case 'm3u8': + case 'pls': + case 'cue': + $img = 'fa fa-headphones'; + break; + case 'avi': + case 'mpg': + case 'mpeg': + case 'mp4': + case 'm4v': + case 'flv': + case 'f4v': + case 'ogm': + case 'ogv': + case 'mov': + case 'mkv': + case '3gp': + case 'asf': + case 'wmv': + $img = 'fa fa-file-video-o'; + break; + case 'eml': + case 'msg': + $img = 'fa fa-envelope-o'; + break; + case 'xls': + case 'xlsx': + case 'ods': + $img = 'fa fa-file-excel-o'; + break; + case 'csv': + $img = 'fa fa-file-text-o'; + break; + case 'bak': + $img = 'fa fa-clipboard'; + break; + case 'doc': + case 'docx': + case 'odt': + $img = 'fa fa-file-word-o'; + break; + case 'ppt': + case 'pptx': + $img = 'fa fa-file-powerpoint-o'; + break; + case 'ttf': + case 'ttc': + case 'otf': + case 'woff': + case 'woff2': + case 'eot': + case 'fon': + $img = 'fa fa-font'; + break; + case 'pdf': + $img = 'fa fa-file-pdf-o'; + break; + case 'psd': + case 'ai': + case 'eps': + case 'fla': + case 'swf': + $img = 'fa fa-file-image-o'; + break; + case 'exe': + case 'msi': + $img = 'fa fa-file-o'; + break; + case 'bat': + $img = 'fa fa-terminal'; + break; + default: + $img = 'fa fa-info-circle'; + } + + return $img; +} + +/** + * Get image files extensions + * @return array + */ +function fm_get_image_exts() +{ + return array('ico', 'gif', 'jpg', 'jpeg', 'jpc', 'jp2', 'jpx', 'xbm', 'wbmp', 'png', 'bmp', 'tif', 'tiff', 'psd', 'svg'); +} + +/** + * Get video files extensions + * @return array + */ +function fm_get_video_exts() +{ + return array('avi', 'webm', 'wmv', 'mp4', 'm4v', 'ogm', 'ogv', 'mov', 'mkv'); +} + +/** + * Get audio files extensions + * @return array + */ +function fm_get_audio_exts() +{ + return array('wav', 'mp3', 'ogg', 'm4a'); +} + +/** + * Get text file extensions + * @return array + */ +function fm_get_text_exts() +{ + return array( + 'txt', 'css', 'ini', 'conf', 'log', 'htaccess', 'passwd', 'ftpquota', 'sql', 'js', 'json', 'sh', 'config', + 'php', 'php4', 'php5', 'phps', 'phtml', 'htm', 'html', 'shtml', 'xhtml', 'xml', 'xsl', 'm3u', 'm3u8', 'pls', 'cue', + 'eml', 'msg', 'csv', 'bat', 'twig', 'tpl', 'md', 'gitignore', 'less', 'sass', 'scss', 'c', 'cpp', 'cs', 'py', + 'map', 'lock', 'dtd', 'svg', 'scss', 'asp', 'aspx', 'asx', 'asmx', 'ashx', 'jsx', 'jsp', 'jspx', 'cfm', 'cgi' + ); +} + +/** + * Get mime types of text files + * @return array + */ +function fm_get_text_mimes() +{ + return array( + 'application/xml', + 'application/javascript', + 'application/x-javascript', + 'image/svg+xml', + 'message/rfc822', + ); +} + +/** + * Get file names of text files w/o extensions + * @return array + */ +function fm_get_text_names() +{ + return array( + 'license', + 'readme', + 'authors', + 'contributors', + 'changelog', + ); +} + +/** + * Get online docs viewer supported files extensions + * @return array + */ +function fm_get_onlineViewer_exts() +{ + return array('doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'ai', 'psd', 'dxf', 'xps', 'rar', 'odt', 'ods'); +} + +function fm_get_file_mimes($extension) +{ + $fileTypes['swf'] = 'application/x-shockwave-flash'; + $fileTypes['pdf'] = 'application/pdf'; + $fileTypes['exe'] = 'application/octet-stream'; + $fileTypes['zip'] = 'application/zip'; + $fileTypes['doc'] = 'application/msword'; + $fileTypes['xls'] = 'application/vnd.ms-excel'; + $fileTypes['ppt'] = 'application/vnd.ms-powerpoint'; + $fileTypes['gif'] = 'image/gif'; + $fileTypes['png'] = 'image/png'; + $fileTypes['jpeg'] = 'image/jpg'; + $fileTypes['jpg'] = 'image/jpg'; + $fileTypes['rar'] = 'application/rar'; + + $fileTypes['ra'] = 'audio/x-pn-realaudio'; + $fileTypes['ram'] = 'audio/x-pn-realaudio'; + $fileTypes['ogg'] = 'audio/x-pn-realaudio'; + + $fileTypes['wav'] = 'video/x-msvideo'; + $fileTypes['wmv'] = 'video/x-msvideo'; + $fileTypes['avi'] = 'video/x-msvideo'; + $fileTypes['asf'] = 'video/x-msvideo'; + $fileTypes['divx'] = 'video/x-msvideo'; + + $fileTypes['mp3'] = 'audio/mpeg'; + $fileTypes['mp4'] = 'audio/mpeg'; + $fileTypes['mpeg'] = 'video/mpeg'; + $fileTypes['mpg'] = 'video/mpeg'; + $fileTypes['mpe'] = 'video/mpeg'; + $fileTypes['mov'] = 'video/quicktime'; + $fileTypes['swf'] = 'video/quicktime'; + $fileTypes['3gp'] = 'video/quicktime'; + $fileTypes['m4a'] = 'video/quicktime'; + $fileTypes['aac'] = 'video/quicktime'; + $fileTypes['m3u'] = 'video/quicktime'; + + $fileTypes['php'] = ['application/x-php']; + $fileTypes['html'] = ['text/html']; + $fileTypes['txt'] = ['text/plain']; + return $fileTypes[$extension]; +} + +/** + * This function scans the files and folder recursively, and return matching files + * @param string $dir + * @param string $filter + * @return json + */ + function scan($dir, $filter = '') { + $path = FM_ROOT_PATH.'/'.$dir; + if($dir) { + $ite = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)); + $rii = new RegexIterator($ite, "/(" . $filter . ")/i"); + + $files = array(); + foreach ($rii as $file) { + if (!$file->isDir()) { + $fileName = $file->getFilename(); + $location = str_replace(FM_ROOT_PATH, '', $file->getPath()); + $files[] = array( + "name" => $fileName, + "type" => "file", + "path" => $location, + ); + } + } + return $files; + } +} + +/* +Parameters: downloadFile(File Location, File Name, +max speed, is streaming +If streaming - videos will show as videos, images as images +instead of download prompt +https://stackoverflow.com/a/13821992/1164642 +*/ + +function fm_download_file($fileLocation, $fileName, $chunkSize = 1024) +{ + if (connection_status() != 0) + return (false); + $extension = pathinfo($fileName, PATHINFO_EXTENSION); + + $contentType = fm_get_file_mimes($extension); + header("Cache-Control: public"); + header("Content-Transfer-Encoding: binary\n"); + header('Content-Type: $contentType'); + + $contentDisposition = 'attachment'; + + + if (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE")) { + $fileName = preg_replace('/\./', '%2e', $fileName, substr_count($fileName, '.') - 1); + header("Content-Disposition: $contentDisposition;filename=\"$fileName\""); + } else { + header("Content-Disposition: $contentDisposition;filename=\"$fileName\""); + } + + header("Accept-Ranges: bytes"); + $range = 0; + $size = filesize($fileLocation); + + if (isset($_SERVER['HTTP_RANGE'])) { + list($a, $range) = explode("=", $_SERVER['HTTP_RANGE']); + str_replace($range, "-", $range); + $size2 = $size - 1; + $new_length = $size - $range; + header("HTTP/1.1 206 Partial Content"); + header("Content-Length: $new_length"); + header("Content-Range: bytes $range$size2/$size"); + } else { + $size2 = $size - 1; + header("Content-Range: bytes 0-$size2/$size"); + header("Content-Length: " . $size); + } + + if ($size == 0) { + die('Zero byte file! Aborting download'); + } + @ini_set('magic_quotes_runtime', 0); + $fp = fopen("$fileLocation", "rb"); + + fseek($fp, $range); + + while (!feof($fp) and (connection_status() == 0)) { + set_time_limit(0); + print(@fread($fp, 1024*$chunkSize)); + flush(); + ob_flush(); + // sleep(1); + } + fclose($fp); + + return ((connection_status() == 0) and !connection_aborted()); +} + +function fm_get_theme() { + $result = ''; + if(FM_THEME == "dark") { + $result = "text-white bg-dark"; + } + return $result; +} + +/** + * Class to work with zip files (using ZipArchive) + */ +class FM_Zipper +{ + private $zip; + + public function __construct() + { + $this->zip = new ZipArchive(); + } + + /** + * Create archive with name $filename and files $files (RELATIVE PATHS!) + * @param string $filename + * @param array|string $files + * @return bool + */ + public function create($filename, $files) + { + $res = $this->zip->open($filename, ZipArchive::CREATE); + if ($res !== true) { + return false; + } + if (is_array($files)) { + foreach ($files as $f) { + if (!$this->addFileOrDir($f)) { + $this->zip->close(); + return false; + } + } + $this->zip->close(); + return true; + } else { + if ($this->addFileOrDir($files)) { + $this->zip->close(); + return true; + } + return false; + } + } + + /** + * Extract archive $filename to folder $path (RELATIVE OR ABSOLUTE PATHS) + * @param string $filename + * @param string $path + * @return bool + */ + public function unzip($filename, $path) + { + $res = $this->zip->open($filename); + if ($res !== true) { + return false; + } + if ($this->zip->extractTo($path)) { + $this->zip->close(); + return true; + } + return false; + } + + /** + * Add file/folder to archive + * @param string $filename + * @return bool + */ + private function addFileOrDir($filename) + { + if (is_file($filename)) { + return $this->zip->addFile($filename); + } elseif (is_dir($filename)) { + return $this->addDir($filename); + } + return false; + } + + /** + * Add folder recursively + * @param string $path + * @return bool + */ + private function addDir($path) + { + if (!$this->zip->addEmptyDir($path)) { + return false; + } + $objects = scandir($path); + if (is_array($objects)) { + foreach ($objects as $file) { + if ($file != '.' && $file != '..') { + if (is_dir($path . '/' . $file)) { + if (!$this->addDir($path . '/' . $file)) { + return false; + } + } elseif (is_file($path . '/' . $file)) { + if (!$this->zip->addFile($path . '/' . $file)) { + return false; + } + } + } + } + return true; + } + return false; + } +} + +/** + * Class to work with Tar files (using PharData) + */ +class FM_Zipper_Tar +{ + private $tar; + + public function __construct() + { + $this->tar = null; + } + + /** + * Create archive with name $filename and files $files (RELATIVE PATHS!) + * @param string $filename + * @param array|string $files + * @return bool + */ + public function create($filename, $files) + { + $this->tar = new PharData($filename); + if (is_array($files)) { + foreach ($files as $f) { + if (!$this->addFileOrDir($f)) { + return false; + } + } + return true; + } else { + if ($this->addFileOrDir($files)) { + return true; + } + return false; + } + } + + /** + * Extract archive $filename to folder $path (RELATIVE OR ABSOLUTE PATHS) + * @param string $filename + * @param string $path + * @return bool + */ + public function unzip($filename, $path) + { + $res = $this->tar->open($filename); + if ($res !== true) { + return false; + } + if ($this->tar->extractTo($path)) { + return true; + } + return false; + } + + /** + * Add file/folder to archive + * @param string $filename + * @return bool + */ + private function addFileOrDir($filename) + { + if (is_file($filename)) { + try { + $this->tar->addFile($filename); + return true; + } catch (Exception $e) { + return false; + } + } elseif (is_dir($filename)) { + return $this->addDir($filename); + } + return false; + } + + /** + * Add folder recursively + * @param string $path + * @return bool + */ + private function addDir($path) + { + $objects = scandir($path); + if (is_array($objects)) { + foreach ($objects as $file) { + if ($file != '.' && $file != '..') { + if (is_dir($path . '/' . $file)) { + if (!$this->addDir($path . '/' . $file)) { + return false; + } + } elseif (is_file($path . '/' . $file)) { + try { + $this->tar->addFile($path . '/' . $file); + } catch (Exception $e) { + return false; + } + } + } + } + return true; + } + return false; + } +} + + + +/** + * Save Configuration + */ + class FM_Config +{ + var $data; + + function __construct() + { + + global $root_path, $root_url, $CONFIG; + $fm_url = $root_url.$_SERVER["PHP_SELF"]; + $this->data = array( + 'lang' => 'en', + 'error_reporting' => true, + 'show_hidden' => true + ); + $data = false; + if (strlen($CONFIG)) { + $data = fm_object_to_array(json_decode($CONFIG)); + } else { + $msg = 'Tiny File Manager
    Error: Cannot load configuration'; + if (substr($fm_url, -1) == '/') { + $fm_url = rtrim($fm_url, '/'); + $msg .= '
    '; + $msg .= '
    Seems like you have a trailing slash on the URL.'; + $msg .= '
    Try this link: ' . $fm_url . ''; + } + die($msg); + } + if (is_array($data) && count($data)) $this->data = $data; + else $this->save(); + } + + function save() + { + $fm_file = __FILE__; + $var_name = '$CONFIG'; + $var_value = var_export(json_encode($this->data), true); + $config_string = " + + ' . $_SESSION[FM_SESSION_ID]['message'] . '

    '; + unset($_SESSION[FM_SESSION_ID]['message']); + unset($_SESSION[FM_SESSION_ID]['status']); + } +} + +/** + * Show page header in Login Form + */ +function fm_show_header_login() +{ +$sprites_ver = '20160315'; +header("Content-Type: text/html; charset=utf-8"); +header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); +header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); +header("Pragma: no-cache"); + +global $lang, $root_url, $favicon_path; +?> + + + + + + + + + + '; } ?> + <?php echo fm_enc(APP_TITLE) ?> + + + +"> +
    + + +
    + + + + + + + + + + + + + + + '; } ?> + <?php echo fm_enc(APP_TITLE) ?> + + + + + + + + + + + + "> +
    + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/level-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/level-pre.php new file mode 100644 index 00000000..aefe1946 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/level-pre.php @@ -0,0 +1,61 @@ +'naplo','result'=>'indexed')); + $ADAT['level'] = $r; + $file = __INTEZMENY.'_'.date('Y').'_teljes'; + if (pdfLevel($file, $ADAT)) { + header('Location: '.location('index.php?page=session&f=download&download=true&dir=naplo/felveteli/level&file='.$file.'.pdf')); + } else { + $_SESSION['alert'][] = 'info::Hiba a file-generáláskor!'; + } + + } else { + + if (strlen($token)==40) { + + $q = "SELECT oId FROM felveteli_levelLog WHERE token='%s' AND generalasDt>= NOW() - interval 10 MINUTE"; + $v = array($token); + $oId = db_query($q, array('modul'=>'naplo','result'=>'value','values'=>$v,'debug'=>false)); + + if ($oId=='') { + $_SESSION['alert'][] = 'info::Ez a token már nem érvényes!'; + } else { + //$q = "SELECT * FROM adatok_"._EV." ORDER BY evfolyam,nev"; + $q = "SELECT * FROM felveteli WHERE oId='%s'"; + $v = array($oId); + $r = db_query($q, array('modul'=>'naplo','result'=>'indexed','values'=>$v)); + $ADAT['level'] = $r; + $ADAT['iktsz'] = 'C8-62/2021'; + $file = __INTEZMENY.'_'.date('Y').'_'.$oktid.$token; + if (pdfLevel($file, $ADAT)) { + $q = "UPDATE felveteli_levelLog SET letoltesDt=NOW() WHERE token='%s'"; + $v = array($token); + db_query($q, array('modul'=>'naplo','values'=>$v,'debug'=>false)); + header('Location: '.location('index.php?page=session&f=download&download=true&dir=naplo/felveteli/level&file='.$file.'.pdf')); + exit; + } else { + $_SESSION['alert'][] = 'info::Hiba a file-generáláskor!'; + } + } + } else { + $_SESSION['alert'][] = 'info::Nem adtál meg érvényes kulcsot a letöltéshez!'; + } + } + // ha eljutottunk idáig, visszairányíthatnánk a lekérdező oldalra + //header('Location: '.location('index.php?page=felveteli&f=kozponti')); + +?> diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/level.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/level.php new file mode 100644 index 00000000..e69de29b diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/levelIgazgato-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/levelIgazgato-pre.php new file mode 100644 index 00000000..e02435b2 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/levelIgazgato-pre.php @@ -0,0 +1,61 @@ +'naplo','result'=>'assoc','keyfield'=>'omkod')); + + $q = "SELECT distinct omkod FROM felveteli WHERE level2 != 'nem kell értesíteni' AND omkod != '' ORDER BY omkod"; + $ADAT['OM'] = $R = db_query($q, array('modul'=>'naplo','result'=>'idonly')); + + for ($i=0; $i'naplo','result'=>'indexed','values'=>array($_om))); + $file = _EV.'_'.$_om; + if ($ADAT['generatePDF']==true) pdfLevel($file, $ADAT); + if (is_array($ADAT['sendMAIL']) && in_array($_om,$ADAT['sendMAIL'])) { + //echo $ADAT['iskola'][$_om]['email']; + $mail = new PHPMailer; +// $mail->isSMTP(); +// $mail->Host = 'smtp.gmail.com'; +// $mail->Port = 587; +// $mail->SMTPSecure = 'tls'; +// $mail->SMTPAuth = true; +// $mail->Username = _FELVETELI_SMTP_USERNAME; +// $mail->Password = _FELVETELI_SMTP_PASSWORD; + $mail->setFrom('ig@kanizsay.sulinet.hu', 'Kanizsay Dorottya Katolikus Gimnázium, Egészségügyi Technikum és Szakképző Iskola'); + $mail->addReplyTo('titkarsag@kanizsay.sulinet.hu', 'Kanizsay Dorottya'); +// $mail->addAddress($ADAT['iskola'][$_om]['email'], 'Igazgató'); + $mail->addAddress('konczy@gmail.com', 'Igazgató'); //echo $ADAT['iskola'][$_om]['email']; + $mail->Subject = 'Értesítés felvételi eredményekről - 2021/2022-es beiskolázás'; + $mail->msgHTML("A levelet a MaYoR elektronikus napló generálta PDF csatolmány tartalmazza."); + $mail->AltBody="A levelet a MaYoR elektronikus napló generálta PDF csatolmány tartalmazza."; + $mail->addAttachment(_DOWNLOADDIR."/private/naplo/felveteli/levelIgazgato/".$file.'.pdf'); + if (!$mail->send()) { + echo "Mailer Error: " . $mail->ErrorInfo; + } else { + echo "Message sent! " . $ADAT['iskola'][$_om]['email']; + $qr = "UPDATE felveteli SET level2='értesítve' WHERE omkod='%s'"; + db_query($qr, array('modul'=>'naplo','values'=>array($_om))); + } + } + // header('Location: '.location('index.php?page=session&f=download&download=true&dir=felveteli/levelIgazgato&file='.$file.'.pdf')); + } + } +?> diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/levelIgazgato.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/levelIgazgato.php new file mode 100644 index 00000000..d1a05da0 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/levelIgazgato.php @@ -0,0 +1,30 @@ +PDF generálás?Generáljunk pdf-eket? (Lassan fut!)
    '; + echo ''; + + echo '

    Email küldés

    '; + echo ''; + for ($i=0; $i'; + echo $i.". "; + echo 'SENDEMAIL'; + echo $_om; + var_dump($ADAT['iskola'][$_om]['email']); + $file= $file = _EV.'_'.$_om; + echo 'PDF'; + echo '
    '; + if ($i%5==0) echo '
    '; + } + echo ''; + formEnd(); + } + +?> \ No newline at end of file diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/szobeli-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/szobeli-pre.php new file mode 100644 index 00000000..9287e894 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/szobeli-pre.php @@ -0,0 +1,153 @@ + __TANEV, 'szemeszter' => 2, 'tipus' => array('felvételi szóbeli lekérdezés'), 'tolDt'=>date('Y-m-d H:i:s'),'return' => '', 'arraymap'=>null)); + $now = mktime(); + for ($i=0; $i$v),$lr); + for ($i=0; $i$v),$lr); + } + + } + // Alapadatok + $modosithatoMezok = array('nev','oId','szuldt','an','lakcim_irsz','lakcim_telepules','lakcim_utcahazszam', + 'tartozkodasi_irsz','tartozkodasi_telepules','tartozkodasi_utcahazszam','omkod','atlag','magyar','matek','pont'); + foreach( $modosithatoMezok as $_key) { + $q = "UPDATE felveteli SET `%s`='%s' WHERE oId='%s'"; + $v = array($_key,readVariable($_POST[$_key],'sql'),$_oId); + db_query($q,array('values'=>$v),$lr); + } + + $diakTorol = readVariable($_POST['diakTorol'],'id'); + if ($diakTorol==1) { + $q = "DELETE FROM felveteli WHERE oId='%s'"; + $v = array($_oId); + db_query($q,array('debug'=>true,'values'=>$v),$lr); + unset($oId); + unset($nev); + } + db_close($lr); + + } elseif ($action=='ujFelveteli' && __FELVETELIADMIN===true) { + + $_nev = readVariable($_POST['_nev'],'sql'); + $_oId = readVariable($_POST['_oId'],'strictstring'); + if ($_nev!='' && $_oId!='') { + $lr = db_connect('naplo'); + // SELECT -> nev, oid + // else + $q = "INSERT INTO felveteli (oId,nev) VALUES('%s','%s')"; + $v = array($_oId,$_nev); + $r = db_query($q,array('debug'=>true,'values'=>$v,'result'=>'insert'),$lr); + if ($r!==false) { + $nev = $_nev; + $oId = $_oId; + } + db_close($lr); + } + + } elseif ($action=='ujSzobeli' && __FELVETELIADMIN===true) { + + $oId = readVariable($_POST['oId'],'strictstring'); + $lr = db_connect('naplo'); + $q = "INSERT INTO felveteli_szobeli (oId) VALUES('%s')"; + $v = array($oId); + $felveteliSzobeliId = db_query($q,array('values'=>$v,'result'=>'insert'),$lr); + $modosithatoMezok = array('szoveg','bizottsag','nap','napdt','ido','tagozat','szobeliTipus'); + foreach( $modosithatoMezok as $_key) { + $_val = readVariable($_POST[$_key],'sql'); + if ($_val!='') { + $q = "UPDATE felveteli_szobeli SET `%s`='%s' WHERE felveteliSzobeliId=%u"; + $v = array($_key,$_val,$felveteliSzobeliId); + db_query($q,array('values'=>$v),$lr); + } + } + db_close($lr); + + } elseif ($action=='szobeliModositas' && __FELVETELIADMIN===true) { + + $oId = readVariable($_POST['oId'],'strictstring'); + $felveteliSzobeliId = readVariable($_POST['felveteliSzobeliId'],'id'); + $lr = db_connect('naplo'); + if ($felveteliSzobeliId>0) { + $q = "DELETE FROM felveteli_szobeli WHERE felveteliSzobeliId=%u AND oId = '%s'"; + $v = array($felveteliSzobeliId,$oId); + db_query($q,array('values'=>$v),$lr); + } + foreach($_POST as $_pk => $_pv) { + if (substr($_pk,0,11) == 'szobelipont') { + list($_tmp, $_felveteliSzobeliId ) = explode('_',$_pk); + $felveteliSzobeliId = readVariable($_felveteliSzobeliId,'id'); + $szobelipont = readVariable($_pv,'id'); + $q = "UPDATE felveteli_szobeli SET szobelipont=%u WHERE felveteliSzobeliId=%u"; + $v = array($szobelipont,$felveteliSzobeliId); + db_query($q,array('values'=>$v),$lr); + } + } + db_close($lr); + } else { + $nev = readVariable($_POST['nev'],'sql'); + $oId = readVariable($_POST['oId'],'strictstring'); + } + + if (in_array($action,array('szobeliLekerdezes','modositas','ujSzobeli','szobeliModositas','ujFelveteli')) && _SZOBELI_LEKERDEZHETO === true) { + + if ($nev=='') $nev = readVariable($_POST['nev'],'sql'); + if ($oId=='') $oId = readVariable($_POST['oId'],'strictstring'); + + if (__FELVETELIADMIN===true || $oId !='') { + $ADAT = getFelvetelizoAdatok($nev,$oId); + if (is_array($ADAT)) { + $ADAT['szobeli'] = getSzobeliByoId(intval($ADAT['oId'])); + // $EREDMENY = getIdeiglenesRangsor(intval($ADAT['oId'])); + //$EREDMENY = getSzobeliEredmeny($ADAT['id']); + $ADAT['jelentkezes'] = getJelentkezes(intval($ADAT['oId'])); + } + //$EREDMENY = getIrasbeliEredmeny($nev,$oId); + $ADAT['tagozat'] = getFelveteliTagozat(); + } + } + +// TODO: + if ($ADAT['oId']!='') { //++ vegeredmeny + $ADAT['token'] = updateLevelToken($ADAT['oId']);// token generálás + } + +?> diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/szobeli.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/szobeli.php new file mode 100644 index 00000000..8337aa56 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/szobeli.php @@ -0,0 +1,38 @@ +$stamp) +// ) { + putVegeredmeny($ADAT); +// } + } elseif ($nev!='') { + //if (count($EREDMENY)==1 && $nev!='' && (_CATEGORY=='admin' || $oktid!='') ) { + //putIrasbeliEredmeny($EREDMENY[0]); + //putFelvetelizoAdatok($ADAT); + //putSzobeliEredmeny($EREDMENY,$ADAT); + //} elseif ($nev!='') { + putFelveteliError($nev,$oId); + //} + } +} else { + // echo 'nem lekérdezhető'; +} +?> diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/hibabejelento/admin-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/hibabejelento/admin-pre.php index 60de869a..d8a89eb4 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/hibabejelento/admin-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/hibabejelento/admin-pre.php @@ -5,7 +5,7 @@ require_once('include/modules/naplo/share/intezmenyek.php'); require_once('include/modules/naplo/share/kerelem.php'); - $_telephelyIdDefault = (isset($_POST['telephelyId'])?null:__TELEPHELYID); + $_telephelyIdDefault = (isset($_POST['telephelyId'])?null:(defined('__TELEPHELYID') ? __TELEPHELYID:null)); $telephelyId = readVariable($_POST['telephelyId'],'id', $_telephelyIdDefault); $kerelemId = readVariable($_POST['kerelemId'],'id',readVariable($_GET['kerelemId'],'id')); $tolDt = readVariable($_POST['tolDt'],'date',date('Y-m-d')); diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/hirnok/cronFutar-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/hirnok/cronFutar-pre.php index c183ba30..227d1216 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/hirnok/cronFutar-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/hirnok/cronFutar-pre.php @@ -17,13 +17,15 @@ $d = $r[$i]; if (defined('_DEVEL') && _DEVEL===true) $d['email'] = 'konczy+test@gmail.com'; // over $TOLDTBYUSER[$d['naploTipus']][$d['naploId']] = ($d['utolsoEmailDt']=='') ? $_TANEV['kezdesDt'] : $d['utolsoEmailDt']; // setDt - if (!in_array($d['naploId'],$USER[$d['naploTipus']])) $USER[$d['naploTipus']][] = $d['naploId']; - $ADAT['feliratkozas'][$d['naploTipus']][$d['naploId']][] = array( - 'userAccount'=>$d['userAccount'], - 'policy'=>$d['policy'], - 'email'=>$d['email'], - 'setDt'=> $refDt - ); + if (is_array($USER[$d['naploTipus']])) { + if (!in_array($d['naploId'],$USER[$d['naploTipus']])) $USER[$d['naploTipus']][] = $d['naploId']; + $ADAT['feliratkozas'][$d['naploTipus']][$d['naploId']][] = array( + 'userAccount'=>$d['userAccount'], + 'policy'=>$d['policy'], + 'email'=>$d['email'], + 'setDt'=> $refDt + ); + } } // Megszorítás: egy naplóbeli entitás utolsoEmailDt-je együtt kell, hogy mozogjon ebben a feldolgozási rendszerben. diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/hirnok/hirnok-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/hirnok/hirnok-pre.php index 6e2902ae..ba6af028 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/hirnok/hirnok-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/hirnok/hirnok-pre.php @@ -17,8 +17,8 @@ $diakId = readVariable($_POST['diakId'], 'id', readVariable($_GET['diakId'], 'id')); $tanarId = readVariable($_POST['tanarId'], 'id', readVariable($_GET['tanarId'], 'id')); $feliratkozott = getHirnokFeliratkozasok(); - if ($diakId==0 && count($feliratkozott['diak'])>0) $diakId = $feliratkozott['diak']; - if ($tanarId==0 && count($feliratkozott['tanar'])>0) $tanarId = $feliratkozott['tanar']; + if ($diakId==0 && is_array($feliratkozott['diak']) && count($feliratkozott['diak'])>0) $diakId = $feliratkozott['diak']; + if ($tanarId==0 && is_array($feliratkozott['tanar']) && count($feliratkozott['tanar'])>0) $tanarId = $feliratkozott['tanar']; if ($tanarId==0 && defined('__USERTANARID')) $tanarId = __USERTANARID; define('_ALLOW_SUBSCRIBE',false); } else { diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/kepzesOraterv-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/kepzesOraterv-pre.php index f82ea1cf..648d6026 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/kepzesOraterv-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/kepzesOraterv-pre.php @@ -1,10 +1,9 @@ $value) { @@ -81,8 +81,8 @@ } modifyKepzesOraterv($DDATA,$kepzesId); } - - } + } // action + } // NAPLOADMIN if (isset($kepzesId)) { $ADAT['kepzesAdat'] = getKepzesAdatById($kepzesId); @@ -104,11 +104,13 @@ - $TOOL['kepzesSelect'] = array('tipus'=>'cella', 'post' => array()); - $TOOL['oldalFlipper'] = array('tipus' => 'cella', 'url' => array('index.php?page=naplo&sub=intezmeny&f=osztaly','index.php?page=naplo&sub=intezmeny&f=kepzes'), + $TOOL['kepzesSelect'] = array('tipus'=>'cella', 'post' => array()); + if (__NAPLOADMIN===true) { + $TOOL['oldalFlipper'] = array('tipus' => 'cella', 'url' => array('index.php?page=naplo&sub=intezmeny&f=osztaly','index.php?page=naplo&sub=intezmeny&f=kepzes'), 'titleConst' => array('_OSZTALYHOZ','_KEPZESHEZ'), 'post' => array('kepzesId'), 'paramName'=>'kepzesId'); // paramName ? - getToolParameters(); + } + getToolParameters(); } ?> diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/kepzesOraterv.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/kepzesOraterv.php index d56f4019..4d84ef9b 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/kepzesOraterv.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/kepzesOraterv.php @@ -5,8 +5,8 @@ global $ADAT; -// putKepzesInfo($ADAT); - if ($ADAT['oraterv']==array() && count($ADAT['hasonloKepzesek']) > 1) putOratervMasolas($ADAT); - putKepzesOraterv($ADAT); + // putKepzesInfo($ADAT); + if (__NAPLOADMIN ===true && $ADAT['oraterv']==array() && count($ADAT['hasonloKepzesek']) > 1) putOratervMasolas($ADAT); + if ($ADAT['kepzesId']>0) putKepzesOraterv($ADAT); ?> diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/helyettesites-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/helyettesites-pre.php index c4ed7cb9..fa022019 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/helyettesites-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/helyettesites-pre.php @@ -21,7 +21,7 @@ if (isset($_POST['targyId']) && intval($_POST['targyId']) != 0) $targyId = intval($_POST['targyId']); if (isset($_POST['tankorId']) && intval($_POST['tankorId']) != 0) $tankorId = intval($_POST['tankorId']); if (isset($_POST['tankorId']) && intval($_POST['tankorId']) != 0) $tankorId = intval($_POST['tankorId']); - $telephelyId = readVariable($_POST['telephelyId'], id, null); + $telephelyId = readVariable($_POST['telephelyId'], 'id', null); //$tanev = $_POST['tanev']; //$action = $_POST['action']; diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/orarend-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/orarend-pre.php index 262ff572..90e30c8f 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/orarend-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/orarend-pre.php @@ -210,7 +210,7 @@ } else { $TANKOROK = $ADAT['orarend']['tankorok']; } - if (count($TANKOROK)>0) $ADAT['tankorok'] = getTankorAdatByIds($TANKOROK); + if (is_array($TANKOROK) && count($TANKOROK)>0) $ADAT['tankorok'] = getTankorAdatByIds($TANKOROK); /* tankörlétszámok */ if (is_array($ADAT['tankorok'])) foreach ($ADAT['tankorok'] as $_tankorId =>$_T) { diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/osztalyozo/stat-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/osztalyozo/stat-pre.php index 1ede4ff2..57ee210b 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/osztalyozo/stat-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/osztalyozo/stat-pre.php @@ -229,10 +229,12 @@ } elseif ($atlag >= _JELES_ATLAG) { reset($jegyek); $found = false; - while (list($key, $jegyAdatok) = each($jegyek)) { - for ($i=0; $i $jegyAdatok) { + for ($i=0; $i $szemeszterAdat) - if (strtotime($szemeszterAdat['kezdesDt']) <= $time && $time <= strtotime($szemeszterAdat['zarasDt'])) break; + foreach ($_TANEV['szemeszter'] as $szemeszter => $szemeszterAdat) { + if (strtotime($szemeszterAdat['kezdesDt']) <= $time && $time <= strtotime($szemeszterAdat['zarasDt'])) { + break; + } + } if ($szemeszter !== false) { define('__FOLYO_SZEMESZTER', $szemeszter); $szemeszterKezdesDt = $szemeszeterAdat['kezdesDt']; @@ -212,7 +215,7 @@ if (!__NAPLOADMIN && !__VEZETOSEG && !__TANAR && !__DIAK && !__TITKARSAG) { && in_array(__USERTANARID, $Jegyek['tankörök'][$tankorId]['tanarIds']) && count($tanevIdoszak['zárás']) > 0 ) { - list($_szemeszter,$_idoszakok) = (each($tanevIdoszak['zárás'])); + list($_szemeszter,$_idoszakok) = (each($tanevIdoszak['zárás'])); // --TODO 8.0 define('__IDOSZAK_TOLDT',$_idoszakok[0]['tolDt']); // Nem lehet két szemeszterhez tartozó ugyanolyan típusú (pl. zárás) időszak egyidőben!!! define('__IDOSZAK_IGDT',$_idoszakok[0]['igDt']); define('__IDOSZAK_SZEMESZTER',$_szemeszter); @@ -221,7 +224,7 @@ if (!__NAPLOADMIN && !__VEZETOSEG && !__TANAR && !__DIAK && !__TITKARSAG) { && !is_null($tanevIdoszak['bizonyítvány írás']) && is_null($tanevIdoszak['zárás']) ) { - list($_szemeszter,$_idoszakok) = (each($tanevIdoszak['bizonyítvány írás'])); + list($_szemeszter,$_idoszakok) = (each($tanevIdoszak['bizonyítvány írás'])); // --TODO 8.0 define('__IDOSZAK_TOLDT',$_idoszakok[0]['tolDt']); define('__IDOSZAK_IGDT',$_idoszakok[0]['igDt']); define('__IDOSZAK_SZEMESZTER',$_szemeszter); diff --git a/mayor-orig/mayor-naplo/www/policy/public/naplo/dokumentum/dokumentum-pre.php b/mayor-orig/mayor-naplo/www/policy/public/naplo/dokumentum/dokumentum-pre.php new file mode 100644 index 00000000..785e119a --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/public/naplo/dokumentum/dokumentum-pre.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/mayor-orig/mayor-naplo/www/policy/public/naplo/dokumentum/dokumentum.php b/mayor-orig/mayor-naplo/www/policy/public/naplo/dokumentum/dokumentum.php new file mode 100644 index 00000000..031863f6 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/public/naplo/dokumentum/dokumentum.php @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/level-pre.php b/mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/level-pre.php new file mode 100644 index 00000000..f4fda5a4 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/level-pre.php @@ -0,0 +1,48 @@ += NOW() - interval 10 MINUTE"; + $v = array($token); + $oId = db_query($q, array('modul'=>'naplo','result'=>'value','values'=>$v,'debug'=>false)); + + if ($oId=='') { + $_SESSION['alert'][] = 'info::Ez a token már nem érvényes!'; + } else { + //$q = "SELECT * FROM adatok_"._EV." ORDER BY evfolyam,nev"; + $q = "SELECT * FROM felveteli WHERE oId='%s'"; + $v = array($oId); + $r = db_query($q, array('modul'=>'naplo','result'=>'indexed','values'=>$v)); + $ADAT['level'] = $r; + $ADAT['iktsz'] = 'C8-62/2021'; + $file = __INTEZMENY.'_'.date('Y').'_'.$oktid.$token; + if (pdfLevel($file, $ADAT)) { + $q = "UPDATE felveteli_levelLog SET letoltesDt=NOW() WHERE token='%s'"; + $v = array($token); + db_query($q, array('modul'=>'naplo','values'=>$v,'debug'=>false)); + header('Location: '.location('index.php?page=session&f=download&download=true&dir=naplo/felveteli/level&file='.$file.'.pdf')); + exit; + } else { + $_SESSION['alert'][] = 'info::Hiba a file-generáláskor!'; + } + } + } else { + $_SESSION['alert'][] = 'info::Nem adtál meg érvényes kulcsot a letöltéshez!'; + } + } + // ha eljutottunk idáig, visszairányíthatnánk a lekérdező oldalra + //header('Location: '.location('index.php?page=felveteli&f=kozponti')); + +?> diff --git a/mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/level.php b/mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/level.php new file mode 100644 index 00000000..15c5adc7 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/level.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/szobeli-pre.php b/mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/szobeli-pre.php new file mode 100644 index 00000000..ad1ae31c --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/szobeli-pre.php @@ -0,0 +1,46 @@ + __TANEV, 'szemeszter' => 2, 'tipus' => array('felvételi szóbeli lekérdezés','felvételi ideiglenes rangsor lekérdezés','felvételi végeredmény lekérdezés'), 'tolDt'=>date('Y-m-d H:i:s'),'return' => '', 'arraymap'=>null)); + $now = mktime(); + for ($i=0; $i diff --git a/mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/szobeli.php b/mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/szobeli.php new file mode 100644 index 00000000..2106af02 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/szobeli.php @@ -0,0 +1,33 @@ +$stamp) +// ) { + putVegeredmeny($ADAT); +// } + } elseif ($nev!='') { + //if (count($EREDMENY)==1 && $nev!='' && (_CATEGORY=='admin' || $oktid!='') ) { + //putIrasbeliEredmeny($EREDMENY[0]); + //putFelvetelizoAdatok($ADAT); + //putSzobeliEredmeny($EREDMENY,$ADAT); + //} elseif ($nev!='') { + putFelveteliError(); + //} + } +} +?> diff --git a/mayor-orig/mayor-naplo/www/policy/public/naplo/intezmeny/tanarok-pre.php b/mayor-orig/mayor-naplo/www/policy/public/naplo/intezmeny/tanarok-pre.php new file mode 100644 index 00000000..010a7189 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/public/naplo/intezmeny/tanarok-pre.php @@ -0,0 +1,55 @@ + $tAdat) $telephelyIds[] = $tAdat['telephelyId']; + $tanev = readVariable($_POST['tanev'], 'id', defined('__TANEV') ? __TANEV : null, $Tanevek); + $telephelyId = readVariable($_POST['telephelyId'], 'id', defined('__TELEPHELYID') ? __TELEPHELYID : null, $telephelyIds); +/* + if ($action == 'tanevValasztas') { + if (isset($tanev) && $tanev !== __TANEV) { + if (updateSessionTanev($tanev)) { + header('Location: '.location('index.php?page=naplo&sub=intezmeny&f=valtas')); + } + } + } elseif ($action == 'telephelyValasztas') { + if (isset($telephelyId) && $telephelyId != __TELEPHELYID) { + if (updateSessionTelephelyId($telephelyId)) { + header('Location: '.location('index.php?page=naplo&sub=intezmeny&f=valtas')); + } + } + } +*/ + } + $ADAT['tanarok'] = getTanarok(array('extraAttrs'=>'titulus,statusz,besorolas,email,YEAR(beDt) AS belepesEve,IFNULL("",YEAR(kiDt)) AS kilepesEve, elerhetoseg')); + $ADAT['targyak'] = getTargyak(array('arraymap'=>array('targyId'))); + $lr = db_connect('naplo_intezmeny'); + for($i=0; $i__TANEV,'csakId'=>true),$lr); + $ADAT[$_tanarId]['mkVez'] = getVezetettMunkakozossegByTanarId($_tanarId,array('result'=>'assoc'),$lr); + $ADAT[$_tanarId]['munkakozosseg'] = getMunkakozossegByTanarId($_tanarId,array('result'=>'assoc'),$lr); + $ADAT[$_tanarId]['kepesites'] = getTanarKepesites($_tanarId); + } + $ADAT['osztalyok'] = getOsztalyok(__TANEV,array('result'=>'assoc'),$lr); + db_close($lr); + +// $TOOL['intezmenySelect'] = array('tipus'=>'cella', 'action' => 'intezmenyValasztas', 'post' => array()); +// $TOOL['telephelySelect'] = array('tipus'=>'cella', 'action' => 'telephelyValasztas', 'post' => array()); +// $TOOL['tanevSelect'] = array('tipus'=>'cella', 'action' => 'tanevValasztas', 'post' => array()); + + getToolParameters(); + +?> diff --git a/mayor-orig/mayor-naplo/www/policy/public/naplo/intezmeny/tanarok.php b/mayor-orig/mayor-naplo/www/policy/public/naplo/intezmeny/tanarok.php new file mode 100644 index 00000000..3d15f4de --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/public/naplo/intezmeny/tanarok.php @@ -0,0 +1,7 @@ + diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/dokumentum/dokumentum.css b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/dokumentum/dokumentum.css new file mode 100644 index 00000000..01db5fb2 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/dokumentum/dokumentum.css @@ -0,0 +1,16 @@ + h1.dokumentumLista { text-align:center; } + span.dokumentumMegjegyzes { padding-left: 0.5em; font-size: x-small; } + table.dokumentumLista {margin-top: 2em; margin-bottom:4em; } + table.dokumentumLista thead tr th { background-color: #eee; padding: 10px 10px;} + table.dokumentumLista tbody tr th { background-color: #eee; padding: 10px 10px;} + table.dokumentumLista div.inline-block {display: inline-block; padding:4px 10px;} + table.dokumentumLista tr td a { color: #444; padding-left: 1em;} + table.dokumentumLista tr td:hover a { color: #111; } + table.dokumentumLista tr td a:hover { text-decoration: underline; color: cornflowerblue;} + + table.dokumentumLista tbody tr.private th { background-color: cornflowerblue; color:white; } + table.dokumentumLista tbody tr.private td span.icon-lock { color: cornflowerblue; margin-left: 1em; } + + + table.dokumentumLista tbody tr td span.material-icons { display: inline-block; font-size:12px;padding-right:2px; color: white; } + table.dokumentumLista tbody tr td:hover span.material-icons { display: inline-block; font-size:12px;padding-right:2px; color: #444; } diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/felveteli/szobeli.css b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/felveteli/szobeli.css new file mode 100644 index 00000000..aedb3e68 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/felveteli/szobeli.css @@ -0,0 +1,163 @@ +@media screen { + + table.lekerdezes { + width:320px; + margin-top:20px; + margin-bottom:20px; + background-color: #eeeee0; + color:; + font-size:13px; + } + table.lekerdezes tfoot input { } + table.lekerdezes thead th { + background-color: rgb(245, 223, 77); +#eeeee0; + padding-top:5px; + padding-bottom: 4px; + border-style: none none solid none; + border-width: 1px; + border-color: #aaaaa0; + } + table.lekerdezes tbody th { + padding-left: 10px; + padding-right: 10px; + text-align: right; + font-weight:normal; + } + table.lekerdezes tfoot th { + color: #888880; + } + + #felvierr { margin-left: auto; margin-right:auto; + margin-top:20px; margin-bottom: 50px; + width:300px; + background-color: #770000; + border: solid 1px red; + color: white; + padding:5px; + text-align: center; + } + + #felviinfo { margin-left: auto; margin-right:auto; + margin-top:20px; margin-bottom: 50px; + width:300px; + background-color: cornflowerblue; + border: solid 1px black; + color: white; + padding:5px; + text-align: center; + box-shadow: 2px 2px .1em #ddd; + } + + table.szobeli { + margin-top:10px; margin-bottom: 50px; + width:; + } + table.szobeli thead th { background-color: #eeeee0; + padding-top:5px; + padding-bottom: 4px; + border-style: none none solid none; + border-width: 2px; + border-color: #aaaaa0; + background-color: #9e0059; color:white; + } + table.szobeli tbody th { + padding-left: 10px; + padding-right: 10px; + text-align: left; + border-style: none none solid none; + border-width: 1px; + border-color: #aaaaa0; + + } + table.szobeli tbody td { + text-align: right; + margin-right:10px; + border-style: none none solid none; + border-width: 1px; + border-color: #aaaaa0; + } + table.szobeli tbody th.nincsbehivva { + border-style: none none none solid; + border-width:3px; + border-color:red; + } + table.szobeli tbody th.behivva { + border-style: none none none solid; + border-width:3px; + border-color: #33ff00; + } + + table.felveteliAdatok { + margin-top:10px; margin-bottom: 20px; + min-width:320px; + background-color: #f1faee; + font-size: 13px; +/* background-color:#556670;*/ + background-color: #eeeee0; + + } + table.felveteliAdatok thead th { background-color: #eeeee0; + padding-top:5px; + padding-bottom: 4px; + border-style: none none solid none; + border-width: 1px; + border-color: #aaa; + background-color: #a8dadc; + background-color: #ff0054; + color:white; + background-color: darkcyan; + } + table.felveteliAdatok tfoot th { + background-color: #457b9d; + font-size:10px; + color:white; + text-align:right; + font-weight:normal; + } + table.felveteliAdatok tbody th { + padding-left: 10px; + padding-right: 10px; + text-align: left; + font-weight: normal; + } + table.felveteliAdatok tbody td { + text-align: left; + margin-right:10px; + } + + table.vegeredmeny tr td { + height: 3em; + background-color: #223344; + text-align: center; + } + + + div#felviWait { + padding-top: 5px; + padding-bottom: 5px; + margin:10px auto; + width:300px; + border: solid 2px #667780; + display: none; + } + div#felviWait img { + vertical-align: baseline; + } + + div#tajekoztato { + border: solid 2px #ddd; + background: #eee; + color: black; + width: 600px; + margin: auto; + padding: 20px; + } + + + +} +@media print { + table.szobeli { /*display: none;*/ } + table.lekerdezes { display: none; } +} \ No newline at end of file diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/kepzesOraterv.css b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/kepzesOraterv.css index 21fb65e4..cbb0f593 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/kepzesOraterv.css +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/kepzesOraterv.css @@ -60,10 +60,12 @@ width:70px; } +/* form.kepzesOraterv table td input:focus, form.kepzesOraterv table td select:focus { - background-color: rgb(140,160,180); color:white; } - + background-color: rgb(140,160,180); color:white; + } +*/ form.kepzesOraterv table td select option { font-size:smaller;} form.kepzesOraterv table td.lezart input { background-color: black } @@ -97,4 +99,4 @@ */ form#oratervMasolas { background-color: darkorange; width: 98%; margin: auto; text-align: center; padding-bottom: 5px; } - form#oratervMasolas h1 { border-bottom: 2px yellow solid; font-size: 14px; font-weight: bold; background-color: #a40; color: white; padding: 4px; } \ No newline at end of file + form#oratervMasolas h1 { border-bottom: 2px yellow solid; font-size: 14px; font-weight: bold; background-color: #a40; color: white; padding: 4px; } diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/tanar.css b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/tanar.css index 2f80f013..037dd2ee 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/tanar.css +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/tanar.css @@ -57,4 +57,4 @@ form.tanar input.ajaxRequestDone { color: white; background-color: rgb(0,130,0); } form.tanar select.ajaxRequestDone { color: white; background-color: rgb(0,130,0); } form.tanar input.ajaxRequestError { color: white; background-color: rgb(130,0,0); } - form.tanar select.ajaxRequestError { color: white; background-color: rgb(130,0,0); } \ No newline at end of file + form.tanar select.ajaxRequestError { color: white; background-color: rgb(130,0,0); } diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/tanarok.css b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/tanarok.css new file mode 100644 index 00000000..2d55e18a --- /dev/null +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/tanarok.css @@ -0,0 +1,10 @@ +table.tanarLista {max-width:90%} +table.tanarLista td { vertical-align:top; padding-bottom: 1.1em;} +table.tanarLista span.tanarNev { font-weight: 600; line-height:1.4em; font-size: 14px; color: black;} +table.tanarLista div.titulus { font-size: smaller; color:; /*font-style: italic;*/ font-weight:100;} +table.tanarLista div.besorolas { font-size: smaller; color:#ccc;} +table.tanarLista div.munkakozossegVezeto, +table.tanarLista div.kepesites, +table.tanarLista div.osztalyfonok {color:#aaa; font-size: smaller;} +table.tanarLista div.email, +table.tanarLista div.elerhetoseg { color: #888; font-size:smaller; padding-top:4px;} diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/base.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/base.phtml index 0c5f7937..5f57ef58 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/base.phtml +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/base.phtml @@ -94,7 +94,7 @@ } elseif (isset($params['tipus']) && $params['tipus'] == 'sor') { $sorDb++; } } - if (__PAGE_PRESET===true) { + if (defined('__PAGE_RESET') && __PAGE_PRESET===true) { echo ''; putToolFormStart('preSetSave', ''); diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/dokumentum/dokumentum.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/dokumentum/dokumentum.phtml new file mode 100644 index 00000000..5284321d --- /dev/null +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/dokumentum/dokumentum.phtml @@ -0,0 +1,149 @@ +'; + + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo '
    '; + echo 'Új dokumentum
    Sorrend:
    Leírás:
    Link szöveg:
    Url:
    Megjegyzés a link mögött:
    Láthatóság:'; + echo '
    '; + echo ''; + echo ''; + echo '
    '; + echo '
    '; + echo ''; + echo ''; + echo '
    '; + echo '
    '; + echo ''; + echo '
    '; + + formEnd(); + } + + + function putDokumentumListaAdmin($ADAT, $admin=false) { + + if ($admin===true) { + formBegin(); + echo ''; + } + echo '

    Adminisztráció

    '; + echo ''; + // echo ''; + if ($admin===true) { + echo ''; + } + echo ''; + for ($i=0; $i'; + echo ''; + echo ''; + echo ''; + echo ''; + if ($admin===true) { + echo ''; + echo ''; + echo ''; + echo ''; + } + echo ''; + } + echo ''; + echo '
    '.'
    '; + echo ''; + echo '
    '; + echo $D['dokumentumId']; + echo ''; + echo $D['dokumentumDt']; + echo ''; + echo $D['dokumentumLeiras']; + echo ''; + echo ''; + echo ''; + if (stristr($D['dokumentumUrl'],'.pdf')!==false) echo 'picture_as_pdf'; + elseif (stristr($D['dokumentumUrl'],'.htm')!==false) echo 'integration_instructions'; + else echo 'open_in_new'; + echo ''; + + echo htmlspecialchars($D['dokumentumRovidLeiras']); + echo ''; + if ($D['dokumentumMegjegyzes']!='') echo '('.$D['dokumentumMegjegyzes'].')'; + + + echo ''.$D['dokumentumTipus'].''.$D['dokumentumPolicy'].''.$D['dokumentumSorrend'].'
    '; + if ($admin===true) { + formEnd(); + } + + } + + + function putDokumentumLista($ADAT, $admin=false) { + global $policy; + echo '

    Dokumentumok

    '; + echo ''; + echo ''; + if (is_array($ADAT)) foreach($ADAT as $tipus=>$DAT) + if (is_array($DAT)) foreach($DAT as $tanev=>$AT) { + echo ''; + echo ''; + echo ''; + for ($i=0; $i'; + echo ''; + echo ''; + echo ''; + } + + } + echo ''; + echo '
    '; + if ($tipus=='general') echo 'Általános dokumentumok'; + else echo $tanev.'/'.($tanev+1); + echo '
    '; + echo $D['dokumentumLeiras']; + echo ''; + echo ''; + echo htmlspecialchars($D['dokumentumRovidLeiras']); + // echo ' '; + echo ''; + if ($D['dokumentumMegjegyzes']!='') echo '('.$D['dokumentumMegjegyzes'].')'; + if ($D['dokumentumPolicy']=='private') echo ''; + echo '
    '; + + } + + +?> \ No newline at end of file diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/felveteli/szobeli.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/felveteli/szobeli.phtml new file mode 100644 index 00000000..38b00a89 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/felveteli/szobeli.phtml @@ -0,0 +1,521 @@ + + + A lekérdezés ebben az időszakban nem aktív, kérjük látogasson vissza '; + if ($ADAT['szobeliPublikalasDt']!='') { + echo date('Y. M. d. H:i:s',strtotime($ADAT['szobeliPublikalasDt']));echo '-kor!'; + } else { + echo 'később!'; + } + echo ''; + } + + if (_SZOBELI_LEKERDEZHETO===false) { + return; + $_DIS = 'disabled="disabled" readonly="readonly"'; + } + //echo '
    '."\n"; + echo formBegin(array('id'=>'fform', 'name'=>'fform')); + echo ''; + echo ''; + echo ''."\n"; + echo ''; + echo ''; + echo ''; + echo ''."\n"; + echo ''; + echo ''; + echo ''."\n"; + echo ''."\n"; + echo ''; + echo ''."\n"; + echo ''."\n"; + echo ''; + echo ''; + echo '
    '; + echo _LEKERDEZES; + if (__FELVETELIADMIN===true) { + echo ' - ADMIN'; + } + echo '
    '; + echo ''; + echo '
    '; + //echo _BEHIVOTTAK.': '.date('Y. M. d. H:i:s',strtotime(_BEHIVOTTAK_PUBLIKALAS_DT)); + echo '
    '; + echo ''; + echo '
    '; + echo ''; + echo '
    '; + formEnd(); + } + + function putFelvetelizoAdatok($DATA) { + + if (__FELVETELIADMIN===true) { + formBegin(); + echo ''; + } + if (__FELVETELIADMIN===true) { + echo ''; + echo ''; + } + + echo ''; + echo ''."\n"; + echo ''."\n"; + echo ''; + + if (__FELVETELIADMIN===true) { + echo ''; + } + + + echo ''; + echo ''."\n"; + echo ''."\n"; + echo ''; + + if (__FELVETELIADMIN===true) { + echo ''; + echo ''."\n"; + echo ''."\n"; + echo ''; + } + echo ''; + echo ''."\n"; + echo ''."\n"; + echo ''; + + echo ''; + echo ''."\n"; + echo ''."\n"; + echo ''; + // if ($DATA['lakcim_telepules']!='') { + echo ''; + echo ''."\n"; + echo ''."\n"; + echo ''; + // } + // if ($DATA['tartozkodasi_telepules']!='') { + echo ''; + echo ''."\n"; + echo ''."\n"; + echo ''; + // } + echo ''; + echo ''."\n"; + echo ''."\n"; + + echo ''; + if (is_array($DATA['iskolaAdat']) && $DATA['iskolaAdat']['nev'] != '') { + echo ''; + echo ''."\n"; + echo ''."\n"; + echo ''; + } + + + echo ''; + echo ''."\n"; + echo ''."\n"; + + echo ''; + echo ''; + echo ''."\n"; + echo ''."\n"; + echo ''; + echo ''; + echo ''."\n"; + echo ''."\n"; + echo ''; + echo ''; + echo ''."\n"; + echo ''."\n"; + echo ''; + + if ($DATA['pontsum']!='' && $DATA['pontsum']!=0) { + echo ''; + echo ''."\n"; + echo ''."\n"; + echo ''; + } + if (is_array($DATA['jelentkezes']) && count($DATA['jelentkezes'])>=0) { + echo ''; + echo ''."\n"; + echo ''; + echo ''; + if ($JEL_IDEIG[$_tagozat]>0) { + echo ''; + } + echo ''; + } + echo '
    '._ADATOK.' – '.$DATA['oId'].'
    '; + if (__FELVETELIADMIN===true) { + echo ' '; + } + echo _LEKERDEZES_DT.' '.date('Y.m.d. H:i:s'); + echo '
    '; + echo '
    '; + echo ''; + echo 'Felvételiző diák és minden adatának törlése '; + echo ''; + echo '
    '; + echo '
    '._NEV.''; + if (__FELVETELIADMIN===true) { + echo ''; + } else { + echo $DATA['nev']; + } + echo '
    Oktatási Azonosító:'; + echo ''; + echo '
    '._SZULETETT.''; + if (__FELVETELIADMIN===true) { + echo ''; + } else { + echo $DATA['szuldt']; + } + echo '
    '._AN.''; + if (__FELVETELIADMIN===true) { + echo ''; + } else { + echo $DATA['an']; + } + echo '
    '._CIM.''; + if (__FELVETELIADMIN===true) { + echo ''; + echo ''; + echo ''; + } else { + echo $DATA['lakcim_irsz'].' '.$DATA['lakcim_telepules'].', '.$DATA['lakcim_utcahazszam']; + // echo $DATA['lakcim_utcahazszam']; + } + echo '
    '._ERTESITESI_CIM.''; + if (__FELVETELIADMIN===true) { + echo ''; + echo ''; + echo ''; + } else { + echo $DATA['tartozkodasi_irsz'].' '.$DATA['tartozkodasi_telepules'].', '.$DATA['tartozkodasi_utcahazszam']; + //echo $DATA['tartozkodasi_utcahazszam']; + } + echo '
    Iskola OM kódja:'; + if (__FELVETELIADMIN===true) { + echo ''; + } else { + echo $DATA['omkod']; + } + echo '
    Iskola adatai:'.$DATA['iskolaAdat']['nev'].', '.$DATA['iskolaAdat']['telepules'].'
    '._ATLAG.''; + if (__FELVETELIADMIN===true) { + echo ''; + } else { + if ($DATA['atlag']>0) echo $DATA['atlag']; else echo '-'; + } + echo '
    '._IRASBELI.' eredmény (magyar):'; + if (__FELVETELIADMIN===true) { + echo ''; + } else { + if ($DATA['magyar']>0) { + echo $DATA['magyar']; + } + } + echo ' pont'; + echo '
    '._IRASBELI.' eredmény (matematika):'; + if (__FELVETELIADMIN===true) { + echo ''; + } else { + if ($DATA['matek']>0) { + echo $DATA['matek']; + } + } + echo ' pont'; + echo '
    Hozott pont:'; + if (__FELVETELIADMIN===true) { + echo ''; + } else { + if ($DATA['pont']==floor($DATA['pont'])) { + list($a,$b) = explode('.',$DATA['pont']); + echo $a; + } else { + echo $DATA['pont']; + } + } + echo ' pont'; + echo '
    Eddig elért pontszám:'.($DATA['pontsum']).'
    Jelentkezett:'; + if (__FELVETELIADMIN!==true) { + echo ''; + for ($t=0; $t'; + echo ''; + if ($DATA['jelentkezes'][$t]['ideiglenesRangsor']>0) { + echo ''; + } + echo ''; + } + echo '
    '; + echo $DATA['jelentkezes'][$t]['tagozatNev']; + echo ' ('.$DATA['jelentkezes'][$t]['tagozat'].')'; + echo ''; + echo $DATA['jelentkezes'][$t]['ideiglenesRangsor'].'. hely'; + echo '
    '; + } else { + for ($t=0; $t'; + for ($t=0; $t'; + echo '
    '; + echo ''; + echo ''; + echo ''; + echo ''; + echo $JEL_IDEIG[$_tagozat].'. hely'; + echo '
    '; + + } + echo ''."\n"; + echo ''; + } + + if ($DATA['jelenleg']!='') { + echo ''; + echo 'Jelenleg:'."\n"; + echo ''.$DATA['jelenleg'].''."\n"; + echo ''; + } + if ($DATA['joslat']!='' && $DATA['vegeredmeny']=='') { + echo ''; + echo 'Jóslat:'."\n"; + echo ''.$DATA['joslat'].''."\n"; + echo ''; + } + + if ($DATA['vegeredmeny']!='') { + echo ''; + echo 'Végeredmény:'."\n"; + echo ''.$DATA['vegeredmeny'].''."\n"; + echo ''; + } + + echo ''; + echo ''; + + if (__FELVETELIADMIN===true) { + formEnd(); + } + + + } + + function putSzobeli($ADAT) { + + $DATA = $ADAT['szobeli']; + if ($DATA==false) { + echo '
    '; + echo _HIANYOS_SZOBELI_ADAT; + echo '
    '; + } elseif ($DATA == 'multi') { + echo '
    '; + echo _MULTI_USER; + echo '
    '; + } elseif (is_array($DATA)) { + + if (__FELVETELIADMIN===true) { + formBegin(); + echo ''; + echo ''; + echo ''; + } + + echo ''; + echo ''."\n"; + echo ''."\n"; + echo ''; + + if (!is_array($DATA) || count($DATA)==0) { + echo ''; + echo ''; + } + + for($i=0; $i'; + echo ''."\n"; + echo ''; + echo ''."\n"; + if (__FELVETELIADMIN===true) { + echo ''; + echo ''; + } else { + echo ''; + } + echo ''; + } + echo ''; + echo '
    Szóbeli időpontok
    '; + +/* + if (defined('SZOBELI_EREDMENY_PLACEHOLDER')===true) { + // echo SZOBELI_EREDMENY_PLACEHOLDER; + } +*/ + echo '
    '; + echo '
    '.$D['tagozatNev'].''; + //echo $D['pont'].' pont'; + //echo '
    '.$D['rangsor'].'. hely'; + echo '
    '; + if ($D['szobeliTipus'] == 'szóbeli nélküli ajánlat') { + echo '

    '; + echo $D['szobeliNelkulAjanlat']; + echo '

    '; + } elseif ($D['szobeliTipus'] == 'elutasítás') { + echo '

    '; + if ($D['szobeliElutasito']!='') echo $D['szobeliElutasito']; + else echo 'Sajnos nem hívjuk szóbelire.'; + echo '

    '; + } else { + + echo $D['bizottsag'].'. bizottság '; + if ($D['szoveg']!='') echo ' ('.$D['szoveg'].')'; + echo '
    '; + echo $D['napdt'].' ('.$D['nap'].') '; + echo substr($D['ido'],0,-3); + + if ($D['szobeliMegjegyzes']!='') { + echo '

    '.$D['szobeliMegjegyzes'].'

    '; + } + + } + echo '
    '; + echo ''; + echo ''; + echo '
    Törlés!:
    '; + echo ''; + echo '
    '; + if ($D['szobelipont']>0) { + echo $D['szobelipont'].' pont'; + } + echo '
    '; + + if (__FELVETELIADMIN===true) { + formEnd(); + } + } else {} + + putUjSzobeli($ADAT); + + + } + + function putFelveteliError($nev, $oId) { + if (__FELVETELIADMIN===true) { + echo '
    '; + formBegin(); + echo 'Új felvételiző felvétele: '; + echo ''; + echo ''; + echo ''; + echo ''; + formEnd(); + echo '
    '."\n"; + } + echo '
    '; + echo _HIBAS_HIANYOS_ADAT; + echo '
    '; + } + + function putUjSzobeli($ADAT) { + + if (__FELVETELIADMIN!==true) return; + + if (count($ADAT['jelentkezes'])==0) { + echo '
    Szóbeli nem vehető fel, mert nincs jelentkezés rögzítve a felvételiző diákhoz!
    '; + return true; + } + + formBegin(); + echo ''; + echo ''; + echo ''; + echo ''; + echo '
    Új szóbeli időpont felvétele
    '; + echo ''; + + echo ''; + echo ''; + echo ''; + echo '
    '; + echo '
    '; + echo '
    '; + echo '
    '; + + echo '
    '; + $szobeliTipus = array('szóbeli','szóbeli nélküli ajánlat','elutasítás'); + echo ''; + echo ''; + echo '
    '; + formEnd(); + } + + + function putVegeredmeny($DATA) { + + echo ''; + + echo ''; + echo ''."\n"; + echo ''."\n"; + echo ''; + echo ''; + echo ''."\n"; + echo ''; + echo ''; + echo '
    '._EREDMENY.'
    '.date('Y.m.d. H:i:s').'
    '.$DATA['vegeredmeny'].'
    '; + echo ' '; + echo 'Hivatalos értesítő letöltése (.pdf)'; + echo '
    '; + } + +?> diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/kepzesOraterv.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/kepzesOraterv.phtml index fb10c6c4..485438a3 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/kepzesOraterv.phtml +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/kepzesOraterv.phtml @@ -68,6 +68,7 @@ formBegin(array('name'=>'kepzesOraterv','class'=>'kepzesOraterv')); echo ''; echo ''; + echo ''; echo ''; echo ''; @@ -117,6 +118,8 @@ } echo ''; echo ''; + + if (__NAPLOADMIN===true) { // EGY UJ: echo ''; echo ''; echo ''; // -- idáig EGY UJ + } echo ''."\n"; @@ -211,9 +215,10 @@ echo ''; } echo ''; echo ''."\n"; // -- idáig TOMEG diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/tanar.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/tanar.phtml index 563f2bd6..3018e222 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/tanar.phtml +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/tanar.phtml @@ -113,6 +113,14 @@ echo ''; echo ''."\n"; echo ''; + echo ''; + echo ''."\n"; + echo ''."\n"; + echo ''; echo ''; echo ''; + for($i=0; $i'; + putFace($T['tanarId'],'tanar',0); + echo ''; + if (($i+1) % $cols == 0 && $i!=count($ADAT['tanarok'])-1) echo ''; + } + echo ''; + echo '
     
    '; @@ -141,6 +144,7 @@ echo '
    '; - echo ''; - echo ''; - + if (__NAPLOADMIN===true) { + echo ''; + echo ''; + } echo '
    '."\n"; + echo ''."\n"; + echo ''."\n"; + echo ''; + echo '
    '."\n"; echo ''."\n"; diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/tanarok.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/tanarok.phtml new file mode 100644 index 00000000..40ee0453 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/tanarok.phtml @@ -0,0 +1,123 @@ +'; + echo '
    '; + echo ''.$T['tanarNev'].''; + if ($T['titulus']!='') echo '
    '.$T['titulus'].'
    '; + if ($T['statusz']=='külső óraadó') echo '
    '.$T['statusz'].'
    '; + if ($T['besorolas']=='Gyakornok') echo '
    '.lcfirst($T['besorolas']).'
    '; + elseif ($T['besorolas']=='Mesterpedagógus') echo '
    '.lcfirst($T['besorolas']).'
    '; + elseif ($T['besorolas']=='Pedagógus I.') echo '
    '.lcfirst($T['besorolas']).'
    '; + elseif ($T['besorolas']=='Pedagógus II.') echo '
    '.lcfirst($T['besorolas']).'
    '; +// else echo '
    '.lcfirst($T['besorolas']).'
    '."\n"; + + $osztalyai = ($ADAT[$T['tanarId']]['osztalyfonok']); + for ($j=0; $josztályfőnök '.$ADAT['osztalyok'][$_osztalyId]['osztalyJel']; + echo ' ('.$ADAT['osztalyok'][$_osztalyId]['leiras'].')'; + echo ''; + } + } + $munkakozossegei = ($ADAT[$T['tanarId']]['mkVez']); // vezetett + for ($j=0; $j'; + echo $munkakozossegei[$j]['munkakozossegNev']. ' munkaközösség-vezető'; + echo ''; + } + + $kepesitesei = $ADAT[$T['tanarId']]['kepesites']; + if (count($kepesitesei)>0) { + echo '
    '; + for ($j=0; $j'; + } + echo '
    '; + } + + $munkakozossegei = ($ADAT[$T['tanarId']]['munkakozosseg']); + echo '
    '; + $_MKNEV = array(); + for ($j=0; $j'; + + if ($T['elerhetoseg']!='') echo '
    '.$T['elerhetoseg'].'
    '; + if ($T['email']!='') echo ''; + + echo '
    '; +} + +/* +function putIntezmenyValaszto($Intezmenyek) { + + formBegin(); + + echo ''."\n"; + + echo ''."\n"; + + echo ''."\n"; + + formEnd(); + +} + +function putTanevValaszto($Tanevek) { + + formBegin(); + + echo ''."\n"; + + echo ''."\n"; + + echo ''."\n"; + + formEnd(); +} +*/ +?> diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/orarend/orarend.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/orarend/orarend.phtml index 4f38a41c..9ccfc600 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/orarend/orarend.phtml +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/orarend/orarend.phtml @@ -99,7 +99,7 @@ if (!in_array($ADAT['orarend']['napok'][$nap]['csengetesiRendTipus'],array('normál',''))) $aznapErintettNap['megjegyzes'][] = $ADAT['orarend']['napok'][$nap]['csengetesiRendTipus'].' csengetés'; echo ''; - echo (count($aznapErintettNap['megjegyzes'])==0) ? $aHetNapjai[($nap-1)] : implode('; ',array_unique($aznapErintettNap['megjegyzes'])); + echo (!is_array($aznapErintettNap['megjegyzes']) || count($aznapErintettNap['megjegyzes'])==0) ? $aHetNapjai[($nap-1)] : implode('; ',array_unique($aznapErintettNap['megjegyzes'])); echo ''; if ($ADAT['orarend']['napok'][$nap]['dt']!='') { @@ -129,7 +129,7 @@ echo ''; echo ''."\n"; - if (__ALLOWSET===true) { + if (defined('__ALLOWSET') && __ALLOWSET===true) { $_footclass = ($ADAT['publikusOrarend']) ? 'publikus' : 'nempublikus'; echo ''; echo ''; @@ -158,7 +158,8 @@ $_ma_class = ($nap==date('w') && $ADAT['orarend']['napok'][$nap]['dt']==date('Y-m-d')) ? 'ma': ''; echo ''; //dump($ADAT['dolgozat']['tervezett'][$dt]); - for ($d=0; $d'; for ($t=0; $t'.$ADAT['dolgozat'][$_dolgozatId]['dolgozatNev']; echo ''; // if (count($ADAT['dolgozat']['tervezett'][$dt])>$d+1) echo '
    '; + } } - for ($d=0; $d'; } + } } //for ($d=0; $d'; $het = 0; $ORARENDI = array(); + if (!is_array($T[$nap][$ora]['orak'])) $T[$nap][$ora]['orak'] = array(); for($i=0; $i'.$Id.''; if ($return===true) { diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/dokumentum/dokumentum.jquery.min.js b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/dokumentum/dokumentum.jquery.min.js new file mode 100644 index 00000000..c55e8bbb --- /dev/null +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/dokumentum/dokumentum.jquery.min.js @@ -0,0 +1,3 @@ + +$(function() { +} ); diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/intezmeny/kepzesOraterv.jquery.min.js b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/intezmeny/kepzesOraterv.jquery.min.js index 6abc9f50..3632972e 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/intezmeny/kepzesOraterv.jquery.min.js +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/intezmeny/kepzesOraterv.jquery.min.js @@ -1,14 +1,21 @@ $(function() { - - $('#targySel').change(function(event) { - - element = $(event.target); - kovetelmeny = element.find('option:selected').data('kovetelmeny'); - element.closest('th').nextAll('td').find('select option[value="'+kovetelmeny+'"]').prop('selected',true); - - }); + if ($('#isAdmin').data('isadmin') == 0) { + $('form.kepzesOraterv table tr.rogzitett .felev2').show(); + $('form.kepzesOraterv table thead .felev2').show(); + $('form.kepzesOraterv table tr.rogzitett span.oraszam').show(); + $('form.kepzesOraterv table tr.rogzitett span.kovetelmeny').slideDown('slow'); + $('form.kepzesOraterv table thead span.oraszam').show(); + $('form.kepzesOraterv table thead span.kovetelmeny').slideDown('slow'); + $('form.kepzesOraterv input').attr('readonly', true).prop('readonly', true); + } else { + $('#targySel').change(function(event) { + element = $(event.target); + kovetelmeny = element.find('option:selected').data('kovetelmeny'); + element.closest('th').nextAll('td').find('select option[value="'+kovetelmeny+'"]').prop('selected',true); + }); + } $('body').click(function(event) { element = $(event.target); if (element.closest('span#felevValtas').length == 1) { @@ -35,14 +42,15 @@ $(function() { $('form.kepzesOraterv table thead span.kovetelmeny').hide(); $('form.kepzesOraterv table thead span.oraszam').slideDown('slow'); } - } else if (element.closest('tr.rogzitett').length == 1) { + } else if ($('#isAdmin').data('isadmin') == 1 && element.closest('tr.rogzitett').length == 1) { element.closest('tr').find('td span').hide(); element.closest('tr').removeClass('rogzitett').addClass('szerkeszt'); element.closest('tr').find('td div').slideDown(); /* element.closest('tr').find('input').show(); element.closest('tr').find('select').show(); -*/ } +*/ + } }); }); \ No newline at end of file diff --git a/mayor-orig/mayor-portal/log/mayor-portal.rev b/mayor-orig/mayor-portal/log/mayor-portal.rev index 7e1fd933..1a48a10f 100644 --- a/mayor-orig/mayor-portal/log/mayor-portal.rev +++ b/mayor-orig/mayor-portal/log/mayor-portal.rev @@ -1 +1 @@ -4716 +4787 diff --git a/mayor-orig/mayor-portal/update/rev004716-1.sh b/mayor-orig/mayor-portal/update/rev004716-1.sh new file mode 100644 index 00000000..d58a4a75 --- /dev/null +++ b/mayor-orig/mayor-portal/update/rev004716-1.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +BASEDIR="/var/mayor" + +DIR="$BASEDIR/download/public/portal/upload/" +mkdir -p $DIR +chown -R www-data $DIR +ln -s $DIR $BASEDIR/www/upload +echo "$DIR Kész." + diff --git a/mayor-orig/mayor-portal/www/include/modules/portal/base/rights.php b/mayor-orig/mayor-portal/www/include/modules/portal/base/rights.php index c1a5c039..2008eecf 100644 --- a/mayor-orig/mayor-portal/www/include/modules/portal/base/rights.php +++ b/mayor-orig/mayor-portal/www/include/modules/portal/base/rights.php @@ -2,9 +2,11 @@ if (_POLICY=='private' && @memberOf(_USERACCOUNT, 'hirekadmin')) { $AUTH['my']['categories'][] = 'hirekadmin'; - define('__HIREKADMIN',true); + define('__HIREKADMIN', true); + define('_FILEMANAGER_ENABLED', true); } else { - define('__HIREKADMIN',false); + define('__HIREKADMIN', false); + define('_FILEMANAGER_ENABLED', false); } ?> diff --git a/mayor-orig/mayor-portal/www/include/modules/portal/share/hirek.php b/mayor-orig/mayor-portal/www/include/modules/portal/share/hirek.php index 7b59782a..08b5ee63 100644 --- a/mayor-orig/mayor-portal/www/include/modules/portal/share/hirek.php +++ b/mayor-orig/mayor-portal/www/include/modules/portal/share/hirek.php @@ -18,9 +18,9 @@ $tolDt = $SET['tolDt']; $igDt = $SET['igDt']; if ($tolDt!='') $W[] = "kdt<='$tolDt'"; if ($igDt!='') $W[] = "vdt>='$igDt'"; - if (count($SET['flag'])>0) $W[] = "flag IN (".implode(',',$SET['flag']).")"; - if (count($SET['class'])>0) $W[] = "class IN (".implode(',',$SET['class']).")"; - if (count($SET['cid'])>0) $W[] = "cid IN (".implode(',',$SET['cid']).")"; + if (is_array($SET['flag']) && count($SET['flag'])>0) $W[] = "flag IN (".implode(',',$SET['flag']).")"; + if (is_array($SET['class']) && count($SET['class'])>0) $W[] = "class IN (".implode(',',$SET['class']).")"; + if (is_array($SET['cid']) && count($SET['cid'])>0) $W[] = "cid IN (".implode(',',$SET['cid']).")"; if (is_array($SET['kategoria']) && count($SET['kategoria'])>0 && !is_null($SET['kategoria'][0])) $W[] = "kategoriaId IN (".implode(',',$SET['kategoria']).")"; if ($SET['lang']!='') $W[] = "lang='".$SET['lang']."'"; diff --git a/mayor-orig/mayor-portal/www/policy/private/portal/hirek/egyhir-pre.php b/mayor-orig/mayor-portal/www/policy/private/portal/hirek/egyhir-pre.php index ef18e58c..14d3040a 100644 --- a/mayor-orig/mayor-portal/www/policy/private/portal/hirek/egyhir-pre.php +++ b/mayor-orig/mayor-portal/www/policy/private/portal/hirek/egyhir-pre.php @@ -10,6 +10,10 @@ if (_RIGHTS_OK !== true) die(); // $_SESSION['alert'][] = 'page:not_owner'; // } + if (__HIREKADMIN===true) { + $_SESSION['mayorPortalSalt']=rand(); + } + if ($action=='save' && (__HIREKADMIN || $hirId=='' || isOwner($hirId))) { global $LANGUAGES; if (__HIREKADMIN === true) { diff --git a/mayor-orig/mayor-portal/www/policy/private/portal/portal/hir-pre.php b/mayor-orig/mayor-portal/www/policy/private/portal/portal/hir-pre.php new file mode 120000 index 00000000..6def6ce4 --- /dev/null +++ b/mayor-orig/mayor-portal/www/policy/private/portal/portal/hir-pre.php @@ -0,0 +1 @@ +../../../../policy/public/portal/portal/hir-pre.php \ No newline at end of file diff --git a/mayor-orig/mayor-portal/www/policy/private/portal/portal/hir.php b/mayor-orig/mayor-portal/www/policy/private/portal/portal/hir.php new file mode 120000 index 00000000..c3dfc7ca --- /dev/null +++ b/mayor-orig/mayor-portal/www/policy/private/portal/portal/hir.php @@ -0,0 +1 @@ +../../../../policy/public/portal/portal/hir.php \ No newline at end of file diff --git a/mayor-orig/mayor-portal/www/policy/private/portal/portal/portal-pre.php b/mayor-orig/mayor-portal/www/policy/private/portal/portal/portal-pre.php index d8026e35..af1e3078 100644 --- a/mayor-orig/mayor-portal/www/policy/private/portal/portal/portal-pre.php +++ b/mayor-orig/mayor-portal/www/policy/private/portal/portal/portal-pre.php @@ -20,6 +20,7 @@ $ADAT['nevnap']['ma'] = getNevnap($honap,$nap); $ADAT['nevnap']['holnap'] = getNevnap($honap,$nap+1); + define('_ACCESS_AS', _OTHER_ACCESS); if (in_array($AUTH[_POLICY]['backend'],array('mysql','ads')) && _POLICY=='private') { $ADAT['hirekAdmin'] = getGroupInfo('hirekadmin','private',array('withNewAccounts' => false)); $ADAT['vezetoseg'] = getGroupInfo('vezetoseg','private',array('withNewAccounts' => false)); diff --git a/mayor-orig/mayor-portal/www/policy/public/portal/portal/hir-pre.php b/mayor-orig/mayor-portal/www/policy/public/portal/portal/hir-pre.php index 7e88f0f3..e48767d4 100644 --- a/mayor-orig/mayor-portal/www/policy/public/portal/portal/hir-pre.php +++ b/mayor-orig/mayor-portal/www/policy/public/portal/portal/hir-pre.php @@ -2,7 +2,7 @@ global $OG; require_once('include/modules/portal/share/hirek.php'); - $hirId = readVariable($_GET['hirId'],id); + $hirId = readVariable($_GET['hirId'],'id'); if ($hirId>=1) { if (_POLICY=='private') $FILTER=array('id'=>$hirId); diff --git a/mayor-orig/mayor-portal/www/skin/classic/module-portal/css/portal.css b/mayor-orig/mayor-portal/www/skin/classic/module-portal/css/portal.css index 9ea85cbc..d3556590 100644 --- a/mayor-orig/mayor-portal/www/skin/classic/module-portal/css/portal.css +++ b/mayor-orig/mayor-portal/www/skin/classic/module-portal/css/portal.css @@ -71,10 +71,17 @@ div.egyHirmeta a { color: #aaa; border-bottom: dotted 1px #bbb} div.egyHirmeta a:hover { color: #444; border-bottom: solid 1px #bbb} - h2.hirKategoriaSelected { text-align: center; padding-left:22px; padding-right:22px; color: #7d96a0 ; text-decoration: underline solid #eee; font-weight:100; letter-spacing:2px; font-size: 24px; font-variant:small-caps} + h2.hirKategoriaSelected { text-align: center; padding-left:22px; padding-right:22px; +/*color: lightred;*/ +/*text-decoration: underline solid #eee; */ +font-weight:100; letter-spacing:2px; font-size: 24px; font-variant:small-caps; +} + + h2.hirKategoriaSelected span { background-color: #ffdb03; color: #154733; padding-left:4px; padding-right:4px; border-bottom: solid 1px #154733;} h2.hirKategoriaSelected a { display:none; color: #d64161; padding-left: 6px; font-size:14px;} - h2.hirKategoriaSelected:hover { padding-right:0px;} + h2.hirKategoriaSelected:hover { padding-right:0px; } h2.hirKategoriaSelected:hover a { display: inline-block;} + h2.hirKategoriaSelected:hover a:hover { color: darkred;} div.egyHir:after { clear: both; diff --git a/mayor-orig/mayor-portal/www/skin/classic/module-portal/html/hirek/egyhir.phtml b/mayor-orig/mayor-portal/www/skin/classic/module-portal/html/hirek/egyhir.phtml index e3a31005..3f71ade1 100644 --- a/mayor-orig/mayor-portal/www/skin/classic/module-portal/html/hirek/egyhir.phtml +++ b/mayor-orig/mayor-portal/www/skin/classic/module-portal/html/hirek/egyhir.phtml @@ -27,7 +27,8 @@ formBegin(); if (__HIREKADMIN===true) { - echo ''; +// echo ''; + echo ''; echo ''; echo '
    '; @@ -139,7 +140,7 @@ echo "\n".''."\n"; echo '
    '; - echo _KEP.': '; + echo 'Kép: '; echo '
    '; echo ''; echo ''; @@ -151,24 +152,38 @@ echo ''; + if (_FILEMANAGER_ENABLED===true) { + $fileManagerJsConfig = " + filemanager_access_key : '".$_SESSION['mayorPortalSalt']."', + filebrowserBrowseUrl : '/skin/classic/share/javascript/filemanager/filemanager/dialog.php?type=2&editor=ckeditor&fldr=&akey=".$_SESSION['mayorPortalSalt']."', + filebrowserUploadUrl : '/skin/classic/share/javascript/filemanager/filemanager/dialog.php?type=2&editor=ckeditor&fldr=&akey=".$_SESSION['mayorPortalSalt']."', + filebrowserImageBrowseUrl : '/skin/classic/share/javascript/filemanager/filemanager/dialog.php?type=1&editor=ckeditor&fldr=&akey=".$_SESSION['mayorPortalSalt']."' + "; + } else { + $fileManagerJsConfig = ''; + } + echo ''; if (__HIREKADMIN===true) { echo '
    '; echo '
    '.($HIR['cim']).'
    '; echo '
    '.($HIR['txt']).'
    '; - for ($j=0; $j'; //echo $ADAT['hirek']['linkek'][$HIR['id']][$j]['szoveg']; echo ''; - } + } + } echo '
    '; } diff --git a/mayor-orig/mayor-portal/www/skin/classic/module-portal/html/share/hirek.phtml b/mayor-orig/mayor-portal/www/skin/classic/module-portal/html/share/hirek.phtml index 5a1c26b5..5964369b 100644 --- a/mayor-orig/mayor-portal/www/skin/classic/module-portal/html/share/hirek.phtml +++ b/mayor-orig/mayor-portal/www/skin/classic/module-portal/html/share/hirek.phtml @@ -4,7 +4,7 @@ if (count($ADAT['hirek']['szovegek'])==0) { - if (_POLICY=='public') { + if (_POLICY=='public' || _POLICY == 'private') { echo '

    Nincs aktuális hír
    '; } @@ -14,7 +14,7 @@ if ($ADAT['kategoriaId']>0 && $KATEGORIAID2LEIRAS[$ADAT['kategoriaId']][0]['leiras']!='') { echo '

    '; - echo ucfirst($KATEGORIAID2LEIRAS[$ADAT['kategoriaId']][0]['leiras']); + echo ''.ucfirst($KATEGORIAID2LEIRAS[$ADAT['kategoriaId']][0]['leiras']).' hírek'; echo ''; echo '

    '; } @@ -57,6 +57,8 @@ echo $a; if ($b!="") echo ' Tovább...'; echo ''; + + if (is_array($ADAT['hirek']['linkek'][$D['id']])) for ($j=0; $j'; echo $ADAT['hirek']['linkek'][$D['id']][$j]['szoveg']; diff --git a/mayor-orig/mayor-wiki/log/mayor-wiki.rev b/mayor-orig/mayor-wiki/log/mayor-wiki.rev index 7e1fd933..1a48a10f 100644 --- a/mayor-orig/mayor-wiki/log/mayor-wiki.rev +++ b/mayor-orig/mayor-wiki/log/mayor-wiki.rev @@ -1 +1 @@ -4716 +4787 diff --git a/mayor-orig/md5sum b/mayor-orig/md5sum index 5531868f..6f9acda4 100644 --- a/mayor-orig/md5sum +++ b/mayor-orig/md5sum @@ -1,13 +1,13 @@ -Revision 4716 -0f149dad48a74cdfd6db3ce36573b331 mayor-fenntarto-rev4716.tgz -7e22010b99732f93605b078d36e69081 mayor-installer-sulix-rev4716.tgz -2d5749d97df238b72eab1bf77ec6a271 mayor-wiki-rev4716.tgz -afad598f7355efbca1f13c554fb7e964 mayor-installer-rev4716.tgz -9d6d2711f8e2c8179011790fe573c045 mayor-portal-rev4716.tgz -b7b2abdc8a6d7d8b38d92b6a28fa6ac4 mayor-felveteli-rev4716.tgz -42ed1ddcfd864bef749cfa062495c5d3 mayor-jatek-rev4716.tgz -b3388a5cb6503038338f51c1526e862c mayor-locales-jp_JP-rev4716.tgz -91a9afd725673ff17d817f0772341f12 mayor-locales-de_DE-rev4716.tgz -dfca36e6a631328724b05dc7318e124f mayor-locales-en_US-rev4716.tgz -6730ac88c50aa7282647e4e81f0864d9 mayor-naplo-rev4716.tgz -c184a7209b582c9b97489c9c938fe145 mayor-base-rev4716.tgz +Revision 4787 +fd46a8aa9a62e3fdb99c464203118281 mayor-fenntarto-rev4787.tgz +c0d539456baa6e941dfdd38de9cf5f6f mayor-installer-sulix-rev4787.tgz +e867e27b129bda359a7ef127965e6547 mayor-wiki-rev4787.tgz +625fbfb0b5c1a31c6a775d5764015419 mayor-installer-rev4787.tgz +ad42fc852ca86ad70d322ed5d8408eb5 mayor-portal-rev4787.tgz +ba1a310063191581b954df847ccf1b23 mayor-felveteli-rev4787.tgz +ae074969e02e059f0a06b15d7df4dcfc mayor-jatek-rev4787.tgz +70162fa6b57995e3d23c5fefc63e8005 mayor-locales-jp_JP-rev4787.tgz +fb4af83cd5475e67c37759b464ff3da5 mayor-locales-de_DE-rev4787.tgz +ce051d4350dcac5a0c4c4c173bf7b32e mayor-locales-en_US-rev4787.tgz +97f1d1ccc929f5a9fde0d0a404e158cf mayor-naplo-rev4787.tgz +0d5c3876e3cc372a747eb85aabaa8fe7 mayor-base-rev4787.tgz diff --git a/mayor-orig/rev.txt b/mayor-orig/rev.txt index 7e1fd933..1a48a10f 100644 --- a/mayor-orig/rev.txt +++ b/mayor-orig/rev.txt @@ -1 +1 @@ -4716 +4787 diff --git a/rev.txt b/rev.txt index 7e1fd933..1a48a10f 100644 --- a/rev.txt +++ b/rev.txt @@ -1 +1 @@ -4716 +4787 -- cgit v1.2.3