diff --git a/.gitignore b/.gitignore index f2e4d7bdb..bd98c9b59 100644 --- a/.gitignore +++ b/.gitignore @@ -1,36 +1,40 @@ -.htaccess -.htaccessbak -bin -/nbproject/ -/vendor/* -!/vendor/FHC-vendor -/.idea/ documents/ +vendor/ + +/nbproject/ +/.idea/ .settings .project .buildpath +.ptp-sync* + +.htaccess +.htaccessbak + application/config/development/ -application/config/testing/ -application/config/production -application/extensions/ -application/controllers/extensions/ application/config/extensions/ +application/config/production +application/config/testing/ +application/controllers/extensions/ +application/extensions/ application/helpers/extensions/ application/hooks/extensions/ application/libraries/extensions/ +application/logs/ application/models/extensions/ application/views/extensions/ application/widgets/extensions/ -application/logs/ + public/extensions/ + tests/codeception/_output/* !/tests/codeception/_output/.placeholder tests/codeception/codeception.yml +tests/codeception/tests/acceptance.suite.yml tests/codeception/tests/api.suite.yml tests/codeception/tests/functional.suite.yml -tests/codeception/tests/acceptance.suite.yml tests/codeception/tests/unit.suite.yml + /sparks/* /webdav/google.php system/sql/ -.ptp-sync* \ No newline at end of file diff --git a/vendor/FHC-vendor/angular-tablesort/.gitignore b/FHC-vendor/angular-tablesort/.gitignore similarity index 100% rename from vendor/FHC-vendor/angular-tablesort/.gitignore rename to FHC-vendor/angular-tablesort/.gitignore diff --git a/vendor/FHC-vendor/angular-tablesort/LICENSE b/FHC-vendor/angular-tablesort/LICENSE similarity index 100% rename from vendor/FHC-vendor/angular-tablesort/LICENSE rename to FHC-vendor/angular-tablesort/LICENSE diff --git a/vendor/FHC-vendor/angular-tablesort/README.md b/FHC-vendor/angular-tablesort/README.md similarity index 100% rename from vendor/FHC-vendor/angular-tablesort/README.md rename to FHC-vendor/angular-tablesort/README.md diff --git a/vendor/FHC-vendor/angular-tablesort/bower.json b/FHC-vendor/angular-tablesort/bower.json similarity index 100% rename from vendor/FHC-vendor/angular-tablesort/bower.json rename to FHC-vendor/angular-tablesort/bower.json diff --git a/vendor/FHC-vendor/angular-tablesort/example.html b/FHC-vendor/angular-tablesort/example.html similarity index 100% rename from vendor/FHC-vendor/angular-tablesort/example.html rename to FHC-vendor/angular-tablesort/example.html diff --git a/vendor/FHC-vendor/angular-tablesort/index.js b/FHC-vendor/angular-tablesort/index.js similarity index 100% rename from vendor/FHC-vendor/angular-tablesort/index.js rename to FHC-vendor/angular-tablesort/index.js diff --git a/vendor/FHC-vendor/angular-tablesort/js/angular-tablesort.js b/FHC-vendor/angular-tablesort/js/angular-tablesort.js similarity index 100% rename from vendor/FHC-vendor/angular-tablesort/js/angular-tablesort.js rename to FHC-vendor/angular-tablesort/js/angular-tablesort.js diff --git a/vendor/FHC-vendor/angular-tablesort/package.json b/FHC-vendor/angular-tablesort/package.json similarity index 100% rename from vendor/FHC-vendor/angular-tablesort/package.json rename to FHC-vendor/angular-tablesort/package.json diff --git a/vendor/FHC-vendor/angular-tablesort/tablesort.css b/FHC-vendor/angular-tablesort/tablesort.css similarity index 100% rename from vendor/FHC-vendor/angular-tablesort/tablesort.css rename to FHC-vendor/angular-tablesort/tablesort.css diff --git a/vendor/FHC-vendor/easyui/changelog.txt b/FHC-vendor/easyui/changelog.txt similarity index 100% rename from vendor/FHC-vendor/easyui/changelog.txt rename to FHC-vendor/easyui/changelog.txt diff --git a/vendor/FHC-vendor/easyui/easyloader.js b/FHC-vendor/easyui/easyloader.js similarity index 100% rename from vendor/FHC-vendor/easyui/easyloader.js rename to FHC-vendor/easyui/easyloader.js diff --git a/vendor/FHC-vendor/easyui/jquery.easyui.min.js b/FHC-vendor/easyui/jquery.easyui.min.js similarity index 100% rename from vendor/FHC-vendor/easyui/jquery.easyui.min.js rename to FHC-vendor/easyui/jquery.easyui.min.js diff --git a/vendor/FHC-vendor/easyui/jquery.easyui.mobile.js b/FHC-vendor/easyui/jquery.easyui.mobile.js similarity index 100% rename from vendor/FHC-vendor/easyui/jquery.easyui.mobile.js rename to FHC-vendor/easyui/jquery.easyui.mobile.js diff --git a/vendor/FHC-vendor/easyui/jquery.min.js b/FHC-vendor/easyui/jquery.min.js similarity index 100% rename from vendor/FHC-vendor/easyui/jquery.min.js rename to FHC-vendor/easyui/jquery.min.js diff --git a/vendor/FHC-vendor/easyui/license_freeware.txt b/FHC-vendor/easyui/license_freeware.txt similarity index 100% rename from vendor/FHC-vendor/easyui/license_freeware.txt rename to FHC-vendor/easyui/license_freeware.txt diff --git a/vendor/FHC-vendor/easyui/locale/easyui-lang-af.js b/FHC-vendor/easyui/locale/easyui-lang-af.js similarity index 100% rename from vendor/FHC-vendor/easyui/locale/easyui-lang-af.js rename to FHC-vendor/easyui/locale/easyui-lang-af.js diff --git a/vendor/FHC-vendor/easyui/locale/easyui-lang-am.js b/FHC-vendor/easyui/locale/easyui-lang-am.js similarity index 100% rename from vendor/FHC-vendor/easyui/locale/easyui-lang-am.js rename to FHC-vendor/easyui/locale/easyui-lang-am.js diff --git a/vendor/FHC-vendor/easyui/locale/easyui-lang-ar.js b/FHC-vendor/easyui/locale/easyui-lang-ar.js similarity index 100% rename from vendor/FHC-vendor/easyui/locale/easyui-lang-ar.js rename to FHC-vendor/easyui/locale/easyui-lang-ar.js diff --git a/vendor/FHC-vendor/easyui/locale/easyui-lang-bg.js b/FHC-vendor/easyui/locale/easyui-lang-bg.js similarity index 100% rename from vendor/FHC-vendor/easyui/locale/easyui-lang-bg.js rename to FHC-vendor/easyui/locale/easyui-lang-bg.js diff --git a/vendor/FHC-vendor/easyui/locale/easyui-lang-ca.js b/FHC-vendor/easyui/locale/easyui-lang-ca.js similarity index 100% rename from vendor/FHC-vendor/easyui/locale/easyui-lang-ca.js rename to FHC-vendor/easyui/locale/easyui-lang-ca.js diff --git a/vendor/FHC-vendor/easyui/locale/easyui-lang-cs.js b/FHC-vendor/easyui/locale/easyui-lang-cs.js similarity index 100% rename from vendor/FHC-vendor/easyui/locale/easyui-lang-cs.js rename to FHC-vendor/easyui/locale/easyui-lang-cs.js diff --git a/vendor/FHC-vendor/easyui/locale/easyui-lang-cz.js b/FHC-vendor/easyui/locale/easyui-lang-cz.js similarity index 100% rename from vendor/FHC-vendor/easyui/locale/easyui-lang-cz.js rename to FHC-vendor/easyui/locale/easyui-lang-cz.js diff --git a/vendor/FHC-vendor/easyui/locale/easyui-lang-da.js b/FHC-vendor/easyui/locale/easyui-lang-da.js similarity index 100% rename from vendor/FHC-vendor/easyui/locale/easyui-lang-da.js rename to FHC-vendor/easyui/locale/easyui-lang-da.js diff --git a/vendor/FHC-vendor/easyui/locale/easyui-lang-de.js b/FHC-vendor/easyui/locale/easyui-lang-de.js similarity index 100% rename from vendor/FHC-vendor/easyui/locale/easyui-lang-de.js rename to FHC-vendor/easyui/locale/easyui-lang-de.js diff --git a/vendor/FHC-vendor/easyui/locale/easyui-lang-el.js b/FHC-vendor/easyui/locale/easyui-lang-el.js similarity index 100% rename from vendor/FHC-vendor/easyui/locale/easyui-lang-el.js rename to FHC-vendor/easyui/locale/easyui-lang-el.js diff --git a/vendor/FHC-vendor/easyui/locale/easyui-lang-en.js b/FHC-vendor/easyui/locale/easyui-lang-en.js similarity index 100% rename from vendor/FHC-vendor/easyui/locale/easyui-lang-en.js rename to FHC-vendor/easyui/locale/easyui-lang-en.js diff --git a/vendor/FHC-vendor/easyui/locale/easyui-lang-es.js b/FHC-vendor/easyui/locale/easyui-lang-es.js similarity index 100% rename from vendor/FHC-vendor/easyui/locale/easyui-lang-es.js rename to FHC-vendor/easyui/locale/easyui-lang-es.js diff --git a/vendor/FHC-vendor/easyui/locale/easyui-lang-fr.js b/FHC-vendor/easyui/locale/easyui-lang-fr.js similarity index 100% rename from vendor/FHC-vendor/easyui/locale/easyui-lang-fr.js rename to FHC-vendor/easyui/locale/easyui-lang-fr.js diff --git a/vendor/FHC-vendor/easyui/locale/easyui-lang-it.js b/FHC-vendor/easyui/locale/easyui-lang-it.js similarity index 100% rename from vendor/FHC-vendor/easyui/locale/easyui-lang-it.js rename to FHC-vendor/easyui/locale/easyui-lang-it.js diff --git a/vendor/FHC-vendor/easyui/locale/easyui-lang-jp.js b/FHC-vendor/easyui/locale/easyui-lang-jp.js similarity index 100% rename from vendor/FHC-vendor/easyui/locale/easyui-lang-jp.js rename to FHC-vendor/easyui/locale/easyui-lang-jp.js diff --git a/vendor/FHC-vendor/easyui/locale/easyui-lang-nl.js b/FHC-vendor/easyui/locale/easyui-lang-nl.js similarity index 100% rename from vendor/FHC-vendor/easyui/locale/easyui-lang-nl.js rename to FHC-vendor/easyui/locale/easyui-lang-nl.js diff --git a/vendor/FHC-vendor/easyui/locale/easyui-lang-pl.js b/FHC-vendor/easyui/locale/easyui-lang-pl.js similarity index 100% rename from vendor/FHC-vendor/easyui/locale/easyui-lang-pl.js rename to FHC-vendor/easyui/locale/easyui-lang-pl.js diff --git a/vendor/FHC-vendor/easyui/locale/easyui-lang-pt_BR.js b/FHC-vendor/easyui/locale/easyui-lang-pt_BR.js similarity index 100% rename from vendor/FHC-vendor/easyui/locale/easyui-lang-pt_BR.js rename to FHC-vendor/easyui/locale/easyui-lang-pt_BR.js diff --git a/vendor/FHC-vendor/easyui/locale/easyui-lang-ru.js b/FHC-vendor/easyui/locale/easyui-lang-ru.js similarity index 100% rename from vendor/FHC-vendor/easyui/locale/easyui-lang-ru.js rename to FHC-vendor/easyui/locale/easyui-lang-ru.js diff --git a/vendor/FHC-vendor/easyui/locale/easyui-lang-sv_SE.js b/FHC-vendor/easyui/locale/easyui-lang-sv_SE.js similarity index 100% rename from vendor/FHC-vendor/easyui/locale/easyui-lang-sv_SE.js rename to FHC-vendor/easyui/locale/easyui-lang-sv_SE.js diff --git a/vendor/FHC-vendor/easyui/locale/easyui-lang-tr.js b/FHC-vendor/easyui/locale/easyui-lang-tr.js similarity index 100% rename from vendor/FHC-vendor/easyui/locale/easyui-lang-tr.js rename to FHC-vendor/easyui/locale/easyui-lang-tr.js diff --git a/vendor/FHC-vendor/easyui/locale/easyui-lang-zh_CN.js b/FHC-vendor/easyui/locale/easyui-lang-zh_CN.js similarity index 100% rename from vendor/FHC-vendor/easyui/locale/easyui-lang-zh_CN.js rename to FHC-vendor/easyui/locale/easyui-lang-zh_CN.js diff --git a/vendor/FHC-vendor/easyui/locale/easyui-lang-zh_TW.js b/FHC-vendor/easyui/locale/easyui-lang-zh_TW.js similarity index 100% rename from vendor/FHC-vendor/easyui/locale/easyui-lang-zh_TW.js rename to FHC-vendor/easyui/locale/easyui-lang-zh_TW.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.accordion.js b/FHC-vendor/easyui/plugins/jquery.accordion.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.accordion.js rename to FHC-vendor/easyui/plugins/jquery.accordion.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.calendar.js b/FHC-vendor/easyui/plugins/jquery.calendar.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.calendar.js rename to FHC-vendor/easyui/plugins/jquery.calendar.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.combo.js b/FHC-vendor/easyui/plugins/jquery.combo.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.combo.js rename to FHC-vendor/easyui/plugins/jquery.combo.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.combobox.js b/FHC-vendor/easyui/plugins/jquery.combobox.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.combobox.js rename to FHC-vendor/easyui/plugins/jquery.combobox.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.combogrid.js b/FHC-vendor/easyui/plugins/jquery.combogrid.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.combogrid.js rename to FHC-vendor/easyui/plugins/jquery.combogrid.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.combotree.js b/FHC-vendor/easyui/plugins/jquery.combotree.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.combotree.js rename to FHC-vendor/easyui/plugins/jquery.combotree.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.datagrid.js b/FHC-vendor/easyui/plugins/jquery.datagrid.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.datagrid.js rename to FHC-vendor/easyui/plugins/jquery.datagrid.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.datalist.js b/FHC-vendor/easyui/plugins/jquery.datalist.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.datalist.js rename to FHC-vendor/easyui/plugins/jquery.datalist.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.datebox.js b/FHC-vendor/easyui/plugins/jquery.datebox.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.datebox.js rename to FHC-vendor/easyui/plugins/jquery.datebox.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.datetimebox.js b/FHC-vendor/easyui/plugins/jquery.datetimebox.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.datetimebox.js rename to FHC-vendor/easyui/plugins/jquery.datetimebox.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.datetimespinner.js b/FHC-vendor/easyui/plugins/jquery.datetimespinner.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.datetimespinner.js rename to FHC-vendor/easyui/plugins/jquery.datetimespinner.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.dialog.js b/FHC-vendor/easyui/plugins/jquery.dialog.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.dialog.js rename to FHC-vendor/easyui/plugins/jquery.dialog.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.draggable.js b/FHC-vendor/easyui/plugins/jquery.draggable.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.draggable.js rename to FHC-vendor/easyui/plugins/jquery.draggable.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.droppable.js b/FHC-vendor/easyui/plugins/jquery.droppable.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.droppable.js rename to FHC-vendor/easyui/plugins/jquery.droppable.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.filebox.js b/FHC-vendor/easyui/plugins/jquery.filebox.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.filebox.js rename to FHC-vendor/easyui/plugins/jquery.filebox.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.form.js b/FHC-vendor/easyui/plugins/jquery.form.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.form.js rename to FHC-vendor/easyui/plugins/jquery.form.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.layout.js b/FHC-vendor/easyui/plugins/jquery.layout.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.layout.js rename to FHC-vendor/easyui/plugins/jquery.layout.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.linkbutton.js b/FHC-vendor/easyui/plugins/jquery.linkbutton.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.linkbutton.js rename to FHC-vendor/easyui/plugins/jquery.linkbutton.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.menu.js b/FHC-vendor/easyui/plugins/jquery.menu.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.menu.js rename to FHC-vendor/easyui/plugins/jquery.menu.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.menubutton.js b/FHC-vendor/easyui/plugins/jquery.menubutton.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.menubutton.js rename to FHC-vendor/easyui/plugins/jquery.menubutton.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.messager.js b/FHC-vendor/easyui/plugins/jquery.messager.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.messager.js rename to FHC-vendor/easyui/plugins/jquery.messager.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.mobile.js b/FHC-vendor/easyui/plugins/jquery.mobile.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.mobile.js rename to FHC-vendor/easyui/plugins/jquery.mobile.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.numberbox.js b/FHC-vendor/easyui/plugins/jquery.numberbox.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.numberbox.js rename to FHC-vendor/easyui/plugins/jquery.numberbox.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.numberspinner.js b/FHC-vendor/easyui/plugins/jquery.numberspinner.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.numberspinner.js rename to FHC-vendor/easyui/plugins/jquery.numberspinner.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.pagination.js b/FHC-vendor/easyui/plugins/jquery.pagination.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.pagination.js rename to FHC-vendor/easyui/plugins/jquery.pagination.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.panel.js b/FHC-vendor/easyui/plugins/jquery.panel.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.panel.js rename to FHC-vendor/easyui/plugins/jquery.panel.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.parser.js b/FHC-vendor/easyui/plugins/jquery.parser.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.parser.js rename to FHC-vendor/easyui/plugins/jquery.parser.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.progressbar.js b/FHC-vendor/easyui/plugins/jquery.progressbar.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.progressbar.js rename to FHC-vendor/easyui/plugins/jquery.progressbar.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.propertygrid.js b/FHC-vendor/easyui/plugins/jquery.propertygrid.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.propertygrid.js rename to FHC-vendor/easyui/plugins/jquery.propertygrid.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.resizable.js b/FHC-vendor/easyui/plugins/jquery.resizable.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.resizable.js rename to FHC-vendor/easyui/plugins/jquery.resizable.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.searchbox.js b/FHC-vendor/easyui/plugins/jquery.searchbox.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.searchbox.js rename to FHC-vendor/easyui/plugins/jquery.searchbox.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.slider.js b/FHC-vendor/easyui/plugins/jquery.slider.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.slider.js rename to FHC-vendor/easyui/plugins/jquery.slider.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.spinner.js b/FHC-vendor/easyui/plugins/jquery.spinner.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.spinner.js rename to FHC-vendor/easyui/plugins/jquery.spinner.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.splitbutton.js b/FHC-vendor/easyui/plugins/jquery.splitbutton.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.splitbutton.js rename to FHC-vendor/easyui/plugins/jquery.splitbutton.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.switchbutton.js b/FHC-vendor/easyui/plugins/jquery.switchbutton.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.switchbutton.js rename to FHC-vendor/easyui/plugins/jquery.switchbutton.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.tabs.js b/FHC-vendor/easyui/plugins/jquery.tabs.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.tabs.js rename to FHC-vendor/easyui/plugins/jquery.tabs.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.textbox.js b/FHC-vendor/easyui/plugins/jquery.textbox.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.textbox.js rename to FHC-vendor/easyui/plugins/jquery.textbox.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.timespinner.js b/FHC-vendor/easyui/plugins/jquery.timespinner.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.timespinner.js rename to FHC-vendor/easyui/plugins/jquery.timespinner.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.tooltip.js b/FHC-vendor/easyui/plugins/jquery.tooltip.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.tooltip.js rename to FHC-vendor/easyui/plugins/jquery.tooltip.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.tree.js b/FHC-vendor/easyui/plugins/jquery.tree.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.tree.js rename to FHC-vendor/easyui/plugins/jquery.tree.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.treegrid.js b/FHC-vendor/easyui/plugins/jquery.treegrid.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.treegrid.js rename to FHC-vendor/easyui/plugins/jquery.treegrid.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.validatebox.js b/FHC-vendor/easyui/plugins/jquery.validatebox.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.validatebox.js rename to FHC-vendor/easyui/plugins/jquery.validatebox.js diff --git a/vendor/FHC-vendor/easyui/plugins/jquery.window.js b/FHC-vendor/easyui/plugins/jquery.window.js similarity index 100% rename from vendor/FHC-vendor/easyui/plugins/jquery.window.js rename to FHC-vendor/easyui/plugins/jquery.window.js diff --git a/vendor/FHC-vendor/easyui/readme.txt b/FHC-vendor/easyui/readme.txt similarity index 100% rename from vendor/FHC-vendor/easyui/readme.txt rename to FHC-vendor/easyui/readme.txt diff --git a/vendor/FHC-vendor/easyui/src/easyloader.js b/FHC-vendor/easyui/src/easyloader.js similarity index 100% rename from vendor/FHC-vendor/easyui/src/easyloader.js rename to FHC-vendor/easyui/src/easyloader.js diff --git a/vendor/FHC-vendor/easyui/src/jquery.accordion.js b/FHC-vendor/easyui/src/jquery.accordion.js similarity index 100% rename from vendor/FHC-vendor/easyui/src/jquery.accordion.js rename to FHC-vendor/easyui/src/jquery.accordion.js diff --git a/vendor/FHC-vendor/easyui/src/jquery.calendar.js b/FHC-vendor/easyui/src/jquery.calendar.js similarity index 100% rename from vendor/FHC-vendor/easyui/src/jquery.calendar.js rename to FHC-vendor/easyui/src/jquery.calendar.js diff --git a/vendor/FHC-vendor/easyui/src/jquery.combobox.js b/FHC-vendor/easyui/src/jquery.combobox.js similarity index 100% rename from vendor/FHC-vendor/easyui/src/jquery.combobox.js rename to FHC-vendor/easyui/src/jquery.combobox.js diff --git a/vendor/FHC-vendor/easyui/src/jquery.datebox.js b/FHC-vendor/easyui/src/jquery.datebox.js similarity index 100% rename from vendor/FHC-vendor/easyui/src/jquery.datebox.js rename to FHC-vendor/easyui/src/jquery.datebox.js diff --git a/vendor/FHC-vendor/easyui/src/jquery.draggable.js b/FHC-vendor/easyui/src/jquery.draggable.js similarity index 100% rename from vendor/FHC-vendor/easyui/src/jquery.draggable.js rename to FHC-vendor/easyui/src/jquery.draggable.js diff --git a/vendor/FHC-vendor/easyui/src/jquery.droppable.js b/FHC-vendor/easyui/src/jquery.droppable.js similarity index 100% rename from vendor/FHC-vendor/easyui/src/jquery.droppable.js rename to FHC-vendor/easyui/src/jquery.droppable.js diff --git a/vendor/FHC-vendor/easyui/src/jquery.form.js b/FHC-vendor/easyui/src/jquery.form.js similarity index 100% rename from vendor/FHC-vendor/easyui/src/jquery.form.js rename to FHC-vendor/easyui/src/jquery.form.js diff --git a/vendor/FHC-vendor/easyui/src/jquery.linkbutton.js b/FHC-vendor/easyui/src/jquery.linkbutton.js similarity index 100% rename from vendor/FHC-vendor/easyui/src/jquery.linkbutton.js rename to FHC-vendor/easyui/src/jquery.linkbutton.js diff --git a/vendor/FHC-vendor/easyui/src/jquery.menu.js b/FHC-vendor/easyui/src/jquery.menu.js similarity index 100% rename from vendor/FHC-vendor/easyui/src/jquery.menu.js rename to FHC-vendor/easyui/src/jquery.menu.js diff --git a/vendor/FHC-vendor/easyui/src/jquery.parser.js b/FHC-vendor/easyui/src/jquery.parser.js similarity index 100% rename from vendor/FHC-vendor/easyui/src/jquery.parser.js rename to FHC-vendor/easyui/src/jquery.parser.js diff --git a/vendor/FHC-vendor/easyui/src/jquery.progressbar.js b/FHC-vendor/easyui/src/jquery.progressbar.js similarity index 100% rename from vendor/FHC-vendor/easyui/src/jquery.progressbar.js rename to FHC-vendor/easyui/src/jquery.progressbar.js diff --git a/vendor/FHC-vendor/easyui/src/jquery.propertygrid.js b/FHC-vendor/easyui/src/jquery.propertygrid.js similarity index 100% rename from vendor/FHC-vendor/easyui/src/jquery.propertygrid.js rename to FHC-vendor/easyui/src/jquery.propertygrid.js diff --git a/vendor/FHC-vendor/easyui/src/jquery.resizable.js b/FHC-vendor/easyui/src/jquery.resizable.js similarity index 100% rename from vendor/FHC-vendor/easyui/src/jquery.resizable.js rename to FHC-vendor/easyui/src/jquery.resizable.js diff --git a/vendor/FHC-vendor/easyui/src/jquery.slider.js b/FHC-vendor/easyui/src/jquery.slider.js similarity index 100% rename from vendor/FHC-vendor/easyui/src/jquery.slider.js rename to FHC-vendor/easyui/src/jquery.slider.js diff --git a/vendor/FHC-vendor/easyui/src/jquery.tabs.js b/FHC-vendor/easyui/src/jquery.tabs.js similarity index 100% rename from vendor/FHC-vendor/easyui/src/jquery.tabs.js rename to FHC-vendor/easyui/src/jquery.tabs.js diff --git a/vendor/FHC-vendor/easyui/src/jquery.window.js b/FHC-vendor/easyui/src/jquery.window.js similarity index 100% rename from vendor/FHC-vendor/easyui/src/jquery.window.js rename to FHC-vendor/easyui/src/jquery.window.js diff --git a/vendor/FHC-vendor/easyui/themes/black/accordion.css b/FHC-vendor/easyui/themes/black/accordion.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/accordion.css rename to FHC-vendor/easyui/themes/black/accordion.css diff --git a/vendor/FHC-vendor/easyui/themes/black/calendar.css b/FHC-vendor/easyui/themes/black/calendar.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/calendar.css rename to FHC-vendor/easyui/themes/black/calendar.css diff --git a/vendor/FHC-vendor/easyui/themes/black/combo.css b/FHC-vendor/easyui/themes/black/combo.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/combo.css rename to FHC-vendor/easyui/themes/black/combo.css diff --git a/vendor/FHC-vendor/easyui/themes/black/combobox.css b/FHC-vendor/easyui/themes/black/combobox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/combobox.css rename to FHC-vendor/easyui/themes/black/combobox.css diff --git a/vendor/FHC-vendor/easyui/themes/black/datagrid.css b/FHC-vendor/easyui/themes/black/datagrid.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/datagrid.css rename to FHC-vendor/easyui/themes/black/datagrid.css diff --git a/vendor/FHC-vendor/easyui/themes/black/datalist.css b/FHC-vendor/easyui/themes/black/datalist.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/datalist.css rename to FHC-vendor/easyui/themes/black/datalist.css diff --git a/vendor/FHC-vendor/easyui/themes/black/datebox.css b/FHC-vendor/easyui/themes/black/datebox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/datebox.css rename to FHC-vendor/easyui/themes/black/datebox.css diff --git a/vendor/FHC-vendor/easyui/themes/black/dialog.css b/FHC-vendor/easyui/themes/black/dialog.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/dialog.css rename to FHC-vendor/easyui/themes/black/dialog.css diff --git a/vendor/FHC-vendor/easyui/themes/black/easyui.css b/FHC-vendor/easyui/themes/black/easyui.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/easyui.css rename to FHC-vendor/easyui/themes/black/easyui.css diff --git a/vendor/FHC-vendor/easyui/themes/black/filebox.css b/FHC-vendor/easyui/themes/black/filebox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/filebox.css rename to FHC-vendor/easyui/themes/black/filebox.css diff --git a/vendor/FHC-vendor/easyui/themes/black/images/accordion_arrows.png b/FHC-vendor/easyui/themes/black/images/accordion_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/images/accordion_arrows.png rename to FHC-vendor/easyui/themes/black/images/accordion_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/black/images/blank.gif b/FHC-vendor/easyui/themes/black/images/blank.gif similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/images/blank.gif rename to FHC-vendor/easyui/themes/black/images/blank.gif diff --git a/vendor/FHC-vendor/easyui/themes/black/images/calendar_arrows.png b/FHC-vendor/easyui/themes/black/images/calendar_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/images/calendar_arrows.png rename to FHC-vendor/easyui/themes/black/images/calendar_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/black/images/combo_arrow.png b/FHC-vendor/easyui/themes/black/images/combo_arrow.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/images/combo_arrow.png rename to FHC-vendor/easyui/themes/black/images/combo_arrow.png diff --git a/vendor/FHC-vendor/easyui/themes/black/images/datagrid_icons.png b/FHC-vendor/easyui/themes/black/images/datagrid_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/images/datagrid_icons.png rename to FHC-vendor/easyui/themes/black/images/datagrid_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/black/images/datebox_arrow.png b/FHC-vendor/easyui/themes/black/images/datebox_arrow.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/images/datebox_arrow.png rename to FHC-vendor/easyui/themes/black/images/datebox_arrow.png diff --git a/vendor/FHC-vendor/easyui/themes/black/images/layout_arrows.png b/FHC-vendor/easyui/themes/black/images/layout_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/images/layout_arrows.png rename to FHC-vendor/easyui/themes/black/images/layout_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/black/images/linkbutton_bg.png b/FHC-vendor/easyui/themes/black/images/linkbutton_bg.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/images/linkbutton_bg.png rename to FHC-vendor/easyui/themes/black/images/linkbutton_bg.png diff --git a/vendor/FHC-vendor/easyui/themes/black/images/loading.gif b/FHC-vendor/easyui/themes/black/images/loading.gif similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/images/loading.gif rename to FHC-vendor/easyui/themes/black/images/loading.gif diff --git a/vendor/FHC-vendor/easyui/themes/black/images/menu_arrows.png b/FHC-vendor/easyui/themes/black/images/menu_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/images/menu_arrows.png rename to FHC-vendor/easyui/themes/black/images/menu_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/black/images/messager_icons.png b/FHC-vendor/easyui/themes/black/images/messager_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/images/messager_icons.png rename to FHC-vendor/easyui/themes/black/images/messager_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/black/images/pagination_icons.png b/FHC-vendor/easyui/themes/black/images/pagination_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/images/pagination_icons.png rename to FHC-vendor/easyui/themes/black/images/pagination_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/black/images/panel_tools.png b/FHC-vendor/easyui/themes/black/images/panel_tools.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/images/panel_tools.png rename to FHC-vendor/easyui/themes/black/images/panel_tools.png diff --git a/vendor/FHC-vendor/easyui/themes/black/images/searchbox_button.png b/FHC-vendor/easyui/themes/black/images/searchbox_button.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/images/searchbox_button.png rename to FHC-vendor/easyui/themes/black/images/searchbox_button.png diff --git a/vendor/FHC-vendor/easyui/themes/black/images/slider_handle.png b/FHC-vendor/easyui/themes/black/images/slider_handle.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/images/slider_handle.png rename to FHC-vendor/easyui/themes/black/images/slider_handle.png diff --git a/vendor/FHC-vendor/easyui/themes/black/images/spinner_arrows.png b/FHC-vendor/easyui/themes/black/images/spinner_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/images/spinner_arrows.png rename to FHC-vendor/easyui/themes/black/images/spinner_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/black/images/tabs_icons.png b/FHC-vendor/easyui/themes/black/images/tabs_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/images/tabs_icons.png rename to FHC-vendor/easyui/themes/black/images/tabs_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/black/images/tree_icons.png b/FHC-vendor/easyui/themes/black/images/tree_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/images/tree_icons.png rename to FHC-vendor/easyui/themes/black/images/tree_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/black/images/validatebox_warning.png b/FHC-vendor/easyui/themes/black/images/validatebox_warning.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/images/validatebox_warning.png rename to FHC-vendor/easyui/themes/black/images/validatebox_warning.png diff --git a/vendor/FHC-vendor/easyui/themes/black/layout.css b/FHC-vendor/easyui/themes/black/layout.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/layout.css rename to FHC-vendor/easyui/themes/black/layout.css diff --git a/vendor/FHC-vendor/easyui/themes/black/linkbutton.css b/FHC-vendor/easyui/themes/black/linkbutton.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/linkbutton.css rename to FHC-vendor/easyui/themes/black/linkbutton.css diff --git a/vendor/FHC-vendor/easyui/themes/black/menu.css b/FHC-vendor/easyui/themes/black/menu.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/menu.css rename to FHC-vendor/easyui/themes/black/menu.css diff --git a/vendor/FHC-vendor/easyui/themes/black/menubutton.css b/FHC-vendor/easyui/themes/black/menubutton.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/menubutton.css rename to FHC-vendor/easyui/themes/black/menubutton.css diff --git a/vendor/FHC-vendor/easyui/themes/black/messager.css b/FHC-vendor/easyui/themes/black/messager.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/messager.css rename to FHC-vendor/easyui/themes/black/messager.css diff --git a/vendor/FHC-vendor/easyui/themes/black/numberbox.css b/FHC-vendor/easyui/themes/black/numberbox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/numberbox.css rename to FHC-vendor/easyui/themes/black/numberbox.css diff --git a/vendor/FHC-vendor/easyui/themes/black/pagination.css b/FHC-vendor/easyui/themes/black/pagination.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/pagination.css rename to FHC-vendor/easyui/themes/black/pagination.css diff --git a/vendor/FHC-vendor/easyui/themes/black/panel.css b/FHC-vendor/easyui/themes/black/panel.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/panel.css rename to FHC-vendor/easyui/themes/black/panel.css diff --git a/vendor/FHC-vendor/easyui/themes/black/progressbar.css b/FHC-vendor/easyui/themes/black/progressbar.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/progressbar.css rename to FHC-vendor/easyui/themes/black/progressbar.css diff --git a/vendor/FHC-vendor/easyui/themes/black/propertygrid.css b/FHC-vendor/easyui/themes/black/propertygrid.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/propertygrid.css rename to FHC-vendor/easyui/themes/black/propertygrid.css diff --git a/vendor/FHC-vendor/easyui/themes/black/searchbox.css b/FHC-vendor/easyui/themes/black/searchbox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/searchbox.css rename to FHC-vendor/easyui/themes/black/searchbox.css diff --git a/vendor/FHC-vendor/easyui/themes/black/slider.css b/FHC-vendor/easyui/themes/black/slider.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/slider.css rename to FHC-vendor/easyui/themes/black/slider.css diff --git a/vendor/FHC-vendor/easyui/themes/black/spinner.css b/FHC-vendor/easyui/themes/black/spinner.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/spinner.css rename to FHC-vendor/easyui/themes/black/spinner.css diff --git a/vendor/FHC-vendor/easyui/themes/black/splitbutton.css b/FHC-vendor/easyui/themes/black/splitbutton.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/splitbutton.css rename to FHC-vendor/easyui/themes/black/splitbutton.css diff --git a/vendor/FHC-vendor/easyui/themes/black/switchbutton.css b/FHC-vendor/easyui/themes/black/switchbutton.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/switchbutton.css rename to FHC-vendor/easyui/themes/black/switchbutton.css diff --git a/vendor/FHC-vendor/easyui/themes/black/tabs.css b/FHC-vendor/easyui/themes/black/tabs.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/tabs.css rename to FHC-vendor/easyui/themes/black/tabs.css diff --git a/vendor/FHC-vendor/easyui/themes/black/textbox.css b/FHC-vendor/easyui/themes/black/textbox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/textbox.css rename to FHC-vendor/easyui/themes/black/textbox.css diff --git a/vendor/FHC-vendor/easyui/themes/black/tooltip.css b/FHC-vendor/easyui/themes/black/tooltip.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/tooltip.css rename to FHC-vendor/easyui/themes/black/tooltip.css diff --git a/vendor/FHC-vendor/easyui/themes/black/tree.css b/FHC-vendor/easyui/themes/black/tree.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/tree.css rename to FHC-vendor/easyui/themes/black/tree.css diff --git a/vendor/FHC-vendor/easyui/themes/black/validatebox.css b/FHC-vendor/easyui/themes/black/validatebox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/validatebox.css rename to FHC-vendor/easyui/themes/black/validatebox.css diff --git a/vendor/FHC-vendor/easyui/themes/black/window.css b/FHC-vendor/easyui/themes/black/window.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/black/window.css rename to FHC-vendor/easyui/themes/black/window.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/accordion.css b/FHC-vendor/easyui/themes/bootstrap/accordion.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/accordion.css rename to FHC-vendor/easyui/themes/bootstrap/accordion.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/calendar.css b/FHC-vendor/easyui/themes/bootstrap/calendar.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/calendar.css rename to FHC-vendor/easyui/themes/bootstrap/calendar.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/combo.css b/FHC-vendor/easyui/themes/bootstrap/combo.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/combo.css rename to FHC-vendor/easyui/themes/bootstrap/combo.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/combobox.css b/FHC-vendor/easyui/themes/bootstrap/combobox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/combobox.css rename to FHC-vendor/easyui/themes/bootstrap/combobox.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/datagrid.css b/FHC-vendor/easyui/themes/bootstrap/datagrid.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/datagrid.css rename to FHC-vendor/easyui/themes/bootstrap/datagrid.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/datebox.css b/FHC-vendor/easyui/themes/bootstrap/datebox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/datebox.css rename to FHC-vendor/easyui/themes/bootstrap/datebox.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/dialog.css b/FHC-vendor/easyui/themes/bootstrap/dialog.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/dialog.css rename to FHC-vendor/easyui/themes/bootstrap/dialog.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/easyui.css b/FHC-vendor/easyui/themes/bootstrap/easyui.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/easyui.css rename to FHC-vendor/easyui/themes/bootstrap/easyui.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/filebox.css b/FHC-vendor/easyui/themes/bootstrap/filebox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/filebox.css rename to FHC-vendor/easyui/themes/bootstrap/filebox.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/images/accordion_arrows.png b/FHC-vendor/easyui/themes/bootstrap/images/accordion_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/images/accordion_arrows.png rename to FHC-vendor/easyui/themes/bootstrap/images/accordion_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/images/blank.gif b/FHC-vendor/easyui/themes/bootstrap/images/blank.gif similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/images/blank.gif rename to FHC-vendor/easyui/themes/bootstrap/images/blank.gif diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/images/calendar_arrows.png b/FHC-vendor/easyui/themes/bootstrap/images/calendar_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/images/calendar_arrows.png rename to FHC-vendor/easyui/themes/bootstrap/images/calendar_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/images/combo_arrow.png b/FHC-vendor/easyui/themes/bootstrap/images/combo_arrow.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/images/combo_arrow.png rename to FHC-vendor/easyui/themes/bootstrap/images/combo_arrow.png diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/images/datagrid_icons.png b/FHC-vendor/easyui/themes/bootstrap/images/datagrid_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/images/datagrid_icons.png rename to FHC-vendor/easyui/themes/bootstrap/images/datagrid_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/images/datebox_arrow.png b/FHC-vendor/easyui/themes/bootstrap/images/datebox_arrow.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/images/datebox_arrow.png rename to FHC-vendor/easyui/themes/bootstrap/images/datebox_arrow.png diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/images/layout_arrows.png b/FHC-vendor/easyui/themes/bootstrap/images/layout_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/images/layout_arrows.png rename to FHC-vendor/easyui/themes/bootstrap/images/layout_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/images/linkbutton_bg.png b/FHC-vendor/easyui/themes/bootstrap/images/linkbutton_bg.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/images/linkbutton_bg.png rename to FHC-vendor/easyui/themes/bootstrap/images/linkbutton_bg.png diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/images/loading.gif b/FHC-vendor/easyui/themes/bootstrap/images/loading.gif similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/images/loading.gif rename to FHC-vendor/easyui/themes/bootstrap/images/loading.gif diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/images/menu_arrows.png b/FHC-vendor/easyui/themes/bootstrap/images/menu_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/images/menu_arrows.png rename to FHC-vendor/easyui/themes/bootstrap/images/menu_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/images/messager_icons.png b/FHC-vendor/easyui/themes/bootstrap/images/messager_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/images/messager_icons.png rename to FHC-vendor/easyui/themes/bootstrap/images/messager_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/images/pagination_icons.png b/FHC-vendor/easyui/themes/bootstrap/images/pagination_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/images/pagination_icons.png rename to FHC-vendor/easyui/themes/bootstrap/images/pagination_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/images/panel_tools.png b/FHC-vendor/easyui/themes/bootstrap/images/panel_tools.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/images/panel_tools.png rename to FHC-vendor/easyui/themes/bootstrap/images/panel_tools.png diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/images/searchbox_button.png b/FHC-vendor/easyui/themes/bootstrap/images/searchbox_button.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/images/searchbox_button.png rename to FHC-vendor/easyui/themes/bootstrap/images/searchbox_button.png diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/images/slider_handle.png b/FHC-vendor/easyui/themes/bootstrap/images/slider_handle.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/images/slider_handle.png rename to FHC-vendor/easyui/themes/bootstrap/images/slider_handle.png diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/images/spinner_arrows.png b/FHC-vendor/easyui/themes/bootstrap/images/spinner_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/images/spinner_arrows.png rename to FHC-vendor/easyui/themes/bootstrap/images/spinner_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/images/tabs_icons.png b/FHC-vendor/easyui/themes/bootstrap/images/tabs_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/images/tabs_icons.png rename to FHC-vendor/easyui/themes/bootstrap/images/tabs_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/images/tree_icons.png b/FHC-vendor/easyui/themes/bootstrap/images/tree_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/images/tree_icons.png rename to FHC-vendor/easyui/themes/bootstrap/images/tree_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/images/validatebox_warning.png b/FHC-vendor/easyui/themes/bootstrap/images/validatebox_warning.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/images/validatebox_warning.png rename to FHC-vendor/easyui/themes/bootstrap/images/validatebox_warning.png diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/layout.css b/FHC-vendor/easyui/themes/bootstrap/layout.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/layout.css rename to FHC-vendor/easyui/themes/bootstrap/layout.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/linkbutton.css b/FHC-vendor/easyui/themes/bootstrap/linkbutton.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/linkbutton.css rename to FHC-vendor/easyui/themes/bootstrap/linkbutton.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/menu.css b/FHC-vendor/easyui/themes/bootstrap/menu.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/menu.css rename to FHC-vendor/easyui/themes/bootstrap/menu.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/menubutton.css b/FHC-vendor/easyui/themes/bootstrap/menubutton.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/menubutton.css rename to FHC-vendor/easyui/themes/bootstrap/menubutton.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/messager.css b/FHC-vendor/easyui/themes/bootstrap/messager.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/messager.css rename to FHC-vendor/easyui/themes/bootstrap/messager.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/numberbox.css b/FHC-vendor/easyui/themes/bootstrap/numberbox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/numberbox.css rename to FHC-vendor/easyui/themes/bootstrap/numberbox.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/pagination.css b/FHC-vendor/easyui/themes/bootstrap/pagination.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/pagination.css rename to FHC-vendor/easyui/themes/bootstrap/pagination.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/panel.css b/FHC-vendor/easyui/themes/bootstrap/panel.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/panel.css rename to FHC-vendor/easyui/themes/bootstrap/panel.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/progressbar.css b/FHC-vendor/easyui/themes/bootstrap/progressbar.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/progressbar.css rename to FHC-vendor/easyui/themes/bootstrap/progressbar.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/propertygrid.css b/FHC-vendor/easyui/themes/bootstrap/propertygrid.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/propertygrid.css rename to FHC-vendor/easyui/themes/bootstrap/propertygrid.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/searchbox.css b/FHC-vendor/easyui/themes/bootstrap/searchbox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/searchbox.css rename to FHC-vendor/easyui/themes/bootstrap/searchbox.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/slider.css b/FHC-vendor/easyui/themes/bootstrap/slider.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/slider.css rename to FHC-vendor/easyui/themes/bootstrap/slider.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/spinner.css b/FHC-vendor/easyui/themes/bootstrap/spinner.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/spinner.css rename to FHC-vendor/easyui/themes/bootstrap/spinner.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/splitbutton.css b/FHC-vendor/easyui/themes/bootstrap/splitbutton.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/splitbutton.css rename to FHC-vendor/easyui/themes/bootstrap/splitbutton.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/switchbutton.css b/FHC-vendor/easyui/themes/bootstrap/switchbutton.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/switchbutton.css rename to FHC-vendor/easyui/themes/bootstrap/switchbutton.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/tabs.css b/FHC-vendor/easyui/themes/bootstrap/tabs.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/tabs.css rename to FHC-vendor/easyui/themes/bootstrap/tabs.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/textbox.css b/FHC-vendor/easyui/themes/bootstrap/textbox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/textbox.css rename to FHC-vendor/easyui/themes/bootstrap/textbox.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/tooltip.css b/FHC-vendor/easyui/themes/bootstrap/tooltip.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/tooltip.css rename to FHC-vendor/easyui/themes/bootstrap/tooltip.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/tree.css b/FHC-vendor/easyui/themes/bootstrap/tree.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/tree.css rename to FHC-vendor/easyui/themes/bootstrap/tree.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/validatebox.css b/FHC-vendor/easyui/themes/bootstrap/validatebox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/validatebox.css rename to FHC-vendor/easyui/themes/bootstrap/validatebox.css diff --git a/vendor/FHC-vendor/easyui/themes/bootstrap/window.css b/FHC-vendor/easyui/themes/bootstrap/window.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/bootstrap/window.css rename to FHC-vendor/easyui/themes/bootstrap/window.css diff --git a/vendor/FHC-vendor/easyui/themes/color.css b/FHC-vendor/easyui/themes/color.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/color.css rename to FHC-vendor/easyui/themes/color.css diff --git a/vendor/FHC-vendor/easyui/themes/default/accordion.css b/FHC-vendor/easyui/themes/default/accordion.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/accordion.css rename to FHC-vendor/easyui/themes/default/accordion.css diff --git a/vendor/FHC-vendor/easyui/themes/default/calendar.css b/FHC-vendor/easyui/themes/default/calendar.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/calendar.css rename to FHC-vendor/easyui/themes/default/calendar.css diff --git a/vendor/FHC-vendor/easyui/themes/default/combo.css b/FHC-vendor/easyui/themes/default/combo.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/combo.css rename to FHC-vendor/easyui/themes/default/combo.css diff --git a/vendor/FHC-vendor/easyui/themes/default/combobox.css b/FHC-vendor/easyui/themes/default/combobox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/combobox.css rename to FHC-vendor/easyui/themes/default/combobox.css diff --git a/vendor/FHC-vendor/easyui/themes/default/datagrid.css b/FHC-vendor/easyui/themes/default/datagrid.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/datagrid.css rename to FHC-vendor/easyui/themes/default/datagrid.css diff --git a/vendor/FHC-vendor/easyui/themes/default/datalist.css b/FHC-vendor/easyui/themes/default/datalist.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/datalist.css rename to FHC-vendor/easyui/themes/default/datalist.css diff --git a/vendor/FHC-vendor/easyui/themes/default/datebox.css b/FHC-vendor/easyui/themes/default/datebox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/datebox.css rename to FHC-vendor/easyui/themes/default/datebox.css diff --git a/vendor/FHC-vendor/easyui/themes/default/dialog.css b/FHC-vendor/easyui/themes/default/dialog.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/dialog.css rename to FHC-vendor/easyui/themes/default/dialog.css diff --git a/vendor/FHC-vendor/easyui/themes/default/easyui.css b/FHC-vendor/easyui/themes/default/easyui.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/easyui.css rename to FHC-vendor/easyui/themes/default/easyui.css diff --git a/vendor/FHC-vendor/easyui/themes/default/filebox.css b/FHC-vendor/easyui/themes/default/filebox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/filebox.css rename to FHC-vendor/easyui/themes/default/filebox.css diff --git a/vendor/FHC-vendor/easyui/themes/default/images/accordion_arrows.png b/FHC-vendor/easyui/themes/default/images/accordion_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/images/accordion_arrows.png rename to FHC-vendor/easyui/themes/default/images/accordion_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/default/images/blank.gif b/FHC-vendor/easyui/themes/default/images/blank.gif similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/images/blank.gif rename to FHC-vendor/easyui/themes/default/images/blank.gif diff --git a/vendor/FHC-vendor/easyui/themes/default/images/calendar_arrows.png b/FHC-vendor/easyui/themes/default/images/calendar_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/images/calendar_arrows.png rename to FHC-vendor/easyui/themes/default/images/calendar_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/default/images/combo_arrow.png b/FHC-vendor/easyui/themes/default/images/combo_arrow.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/images/combo_arrow.png rename to FHC-vendor/easyui/themes/default/images/combo_arrow.png diff --git a/vendor/FHC-vendor/easyui/themes/default/images/datagrid_icons.png b/FHC-vendor/easyui/themes/default/images/datagrid_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/images/datagrid_icons.png rename to FHC-vendor/easyui/themes/default/images/datagrid_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/default/images/datebox_arrow.png b/FHC-vendor/easyui/themes/default/images/datebox_arrow.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/images/datebox_arrow.png rename to FHC-vendor/easyui/themes/default/images/datebox_arrow.png diff --git a/vendor/FHC-vendor/easyui/themes/default/images/layout_arrows.png b/FHC-vendor/easyui/themes/default/images/layout_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/images/layout_arrows.png rename to FHC-vendor/easyui/themes/default/images/layout_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/default/images/linkbutton_bg.png b/FHC-vendor/easyui/themes/default/images/linkbutton_bg.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/images/linkbutton_bg.png rename to FHC-vendor/easyui/themes/default/images/linkbutton_bg.png diff --git a/vendor/FHC-vendor/easyui/themes/default/images/loading.gif b/FHC-vendor/easyui/themes/default/images/loading.gif similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/images/loading.gif rename to FHC-vendor/easyui/themes/default/images/loading.gif diff --git a/vendor/FHC-vendor/easyui/themes/default/images/menu_arrows.png b/FHC-vendor/easyui/themes/default/images/menu_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/images/menu_arrows.png rename to FHC-vendor/easyui/themes/default/images/menu_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/default/images/messager_icons.png b/FHC-vendor/easyui/themes/default/images/messager_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/images/messager_icons.png rename to FHC-vendor/easyui/themes/default/images/messager_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/default/images/pagination_icons.png b/FHC-vendor/easyui/themes/default/images/pagination_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/images/pagination_icons.png rename to FHC-vendor/easyui/themes/default/images/pagination_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/default/images/panel_tools.png b/FHC-vendor/easyui/themes/default/images/panel_tools.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/images/panel_tools.png rename to FHC-vendor/easyui/themes/default/images/panel_tools.png diff --git a/vendor/FHC-vendor/easyui/themes/default/images/searchbox_button.png b/FHC-vendor/easyui/themes/default/images/searchbox_button.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/images/searchbox_button.png rename to FHC-vendor/easyui/themes/default/images/searchbox_button.png diff --git a/vendor/FHC-vendor/easyui/themes/default/images/slider_handle.png b/FHC-vendor/easyui/themes/default/images/slider_handle.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/images/slider_handle.png rename to FHC-vendor/easyui/themes/default/images/slider_handle.png diff --git a/vendor/FHC-vendor/easyui/themes/default/images/spinner_arrows.png b/FHC-vendor/easyui/themes/default/images/spinner_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/images/spinner_arrows.png rename to FHC-vendor/easyui/themes/default/images/spinner_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/default/images/tabs_icons.png b/FHC-vendor/easyui/themes/default/images/tabs_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/images/tabs_icons.png rename to FHC-vendor/easyui/themes/default/images/tabs_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/default/images/tree_icons.png b/FHC-vendor/easyui/themes/default/images/tree_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/images/tree_icons.png rename to FHC-vendor/easyui/themes/default/images/tree_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/default/images/validatebox_warning.png b/FHC-vendor/easyui/themes/default/images/validatebox_warning.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/images/validatebox_warning.png rename to FHC-vendor/easyui/themes/default/images/validatebox_warning.png diff --git a/vendor/FHC-vendor/easyui/themes/default/layout.css b/FHC-vendor/easyui/themes/default/layout.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/layout.css rename to FHC-vendor/easyui/themes/default/layout.css diff --git a/vendor/FHC-vendor/easyui/themes/default/linkbutton.css b/FHC-vendor/easyui/themes/default/linkbutton.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/linkbutton.css rename to FHC-vendor/easyui/themes/default/linkbutton.css diff --git a/vendor/FHC-vendor/easyui/themes/default/menu.css b/FHC-vendor/easyui/themes/default/menu.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/menu.css rename to FHC-vendor/easyui/themes/default/menu.css diff --git a/vendor/FHC-vendor/easyui/themes/default/menubutton.css b/FHC-vendor/easyui/themes/default/menubutton.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/menubutton.css rename to FHC-vendor/easyui/themes/default/menubutton.css diff --git a/vendor/FHC-vendor/easyui/themes/default/messager.css b/FHC-vendor/easyui/themes/default/messager.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/messager.css rename to FHC-vendor/easyui/themes/default/messager.css diff --git a/vendor/FHC-vendor/easyui/themes/default/numberbox.css b/FHC-vendor/easyui/themes/default/numberbox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/numberbox.css rename to FHC-vendor/easyui/themes/default/numberbox.css diff --git a/vendor/FHC-vendor/easyui/themes/default/pagination.css b/FHC-vendor/easyui/themes/default/pagination.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/pagination.css rename to FHC-vendor/easyui/themes/default/pagination.css diff --git a/vendor/FHC-vendor/easyui/themes/default/panel.css b/FHC-vendor/easyui/themes/default/panel.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/panel.css rename to FHC-vendor/easyui/themes/default/panel.css diff --git a/vendor/FHC-vendor/easyui/themes/default/progressbar.css b/FHC-vendor/easyui/themes/default/progressbar.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/progressbar.css rename to FHC-vendor/easyui/themes/default/progressbar.css diff --git a/vendor/FHC-vendor/easyui/themes/default/propertygrid.css b/FHC-vendor/easyui/themes/default/propertygrid.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/propertygrid.css rename to FHC-vendor/easyui/themes/default/propertygrid.css diff --git a/vendor/FHC-vendor/easyui/themes/default/searchbox.css b/FHC-vendor/easyui/themes/default/searchbox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/searchbox.css rename to FHC-vendor/easyui/themes/default/searchbox.css diff --git a/vendor/FHC-vendor/easyui/themes/default/slider.css b/FHC-vendor/easyui/themes/default/slider.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/slider.css rename to FHC-vendor/easyui/themes/default/slider.css diff --git a/vendor/FHC-vendor/easyui/themes/default/spinner.css b/FHC-vendor/easyui/themes/default/spinner.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/spinner.css rename to FHC-vendor/easyui/themes/default/spinner.css diff --git a/vendor/FHC-vendor/easyui/themes/default/splitbutton.css b/FHC-vendor/easyui/themes/default/splitbutton.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/splitbutton.css rename to FHC-vendor/easyui/themes/default/splitbutton.css diff --git a/vendor/FHC-vendor/easyui/themes/default/switchbutton.css b/FHC-vendor/easyui/themes/default/switchbutton.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/switchbutton.css rename to FHC-vendor/easyui/themes/default/switchbutton.css diff --git a/vendor/FHC-vendor/easyui/themes/default/tabs.css b/FHC-vendor/easyui/themes/default/tabs.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/tabs.css rename to FHC-vendor/easyui/themes/default/tabs.css diff --git a/vendor/FHC-vendor/easyui/themes/default/textbox.css b/FHC-vendor/easyui/themes/default/textbox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/textbox.css rename to FHC-vendor/easyui/themes/default/textbox.css diff --git a/vendor/FHC-vendor/easyui/themes/default/tooltip.css b/FHC-vendor/easyui/themes/default/tooltip.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/tooltip.css rename to FHC-vendor/easyui/themes/default/tooltip.css diff --git a/vendor/FHC-vendor/easyui/themes/default/tree.css b/FHC-vendor/easyui/themes/default/tree.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/tree.css rename to FHC-vendor/easyui/themes/default/tree.css diff --git a/vendor/FHC-vendor/easyui/themes/default/validatebox.css b/FHC-vendor/easyui/themes/default/validatebox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/validatebox.css rename to FHC-vendor/easyui/themes/default/validatebox.css diff --git a/vendor/FHC-vendor/easyui/themes/default/window.css b/FHC-vendor/easyui/themes/default/window.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/default/window.css rename to FHC-vendor/easyui/themes/default/window.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/accordion.css b/FHC-vendor/easyui/themes/gray/accordion.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/accordion.css rename to FHC-vendor/easyui/themes/gray/accordion.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/calendar.css b/FHC-vendor/easyui/themes/gray/calendar.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/calendar.css rename to FHC-vendor/easyui/themes/gray/calendar.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/combo.css b/FHC-vendor/easyui/themes/gray/combo.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/combo.css rename to FHC-vendor/easyui/themes/gray/combo.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/combobox.css b/FHC-vendor/easyui/themes/gray/combobox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/combobox.css rename to FHC-vendor/easyui/themes/gray/combobox.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/datagrid.css b/FHC-vendor/easyui/themes/gray/datagrid.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/datagrid.css rename to FHC-vendor/easyui/themes/gray/datagrid.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/datalist.css b/FHC-vendor/easyui/themes/gray/datalist.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/datalist.css rename to FHC-vendor/easyui/themes/gray/datalist.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/datebox.css b/FHC-vendor/easyui/themes/gray/datebox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/datebox.css rename to FHC-vendor/easyui/themes/gray/datebox.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/dialog.css b/FHC-vendor/easyui/themes/gray/dialog.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/dialog.css rename to FHC-vendor/easyui/themes/gray/dialog.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/easyui.css b/FHC-vendor/easyui/themes/gray/easyui.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/easyui.css rename to FHC-vendor/easyui/themes/gray/easyui.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/filebox.css b/FHC-vendor/easyui/themes/gray/filebox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/filebox.css rename to FHC-vendor/easyui/themes/gray/filebox.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/images/accordion_arrows.png b/FHC-vendor/easyui/themes/gray/images/accordion_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/images/accordion_arrows.png rename to FHC-vendor/easyui/themes/gray/images/accordion_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/gray/images/blank.gif b/FHC-vendor/easyui/themes/gray/images/blank.gif similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/images/blank.gif rename to FHC-vendor/easyui/themes/gray/images/blank.gif diff --git a/vendor/FHC-vendor/easyui/themes/gray/images/calendar_arrows.png b/FHC-vendor/easyui/themes/gray/images/calendar_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/images/calendar_arrows.png rename to FHC-vendor/easyui/themes/gray/images/calendar_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/gray/images/combo_arrow.png b/FHC-vendor/easyui/themes/gray/images/combo_arrow.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/images/combo_arrow.png rename to FHC-vendor/easyui/themes/gray/images/combo_arrow.png diff --git a/vendor/FHC-vendor/easyui/themes/gray/images/datagrid_icons.png b/FHC-vendor/easyui/themes/gray/images/datagrid_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/images/datagrid_icons.png rename to FHC-vendor/easyui/themes/gray/images/datagrid_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/gray/images/datebox_arrow.png b/FHC-vendor/easyui/themes/gray/images/datebox_arrow.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/images/datebox_arrow.png rename to FHC-vendor/easyui/themes/gray/images/datebox_arrow.png diff --git a/vendor/FHC-vendor/easyui/themes/gray/images/layout_arrows.png b/FHC-vendor/easyui/themes/gray/images/layout_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/images/layout_arrows.png rename to FHC-vendor/easyui/themes/gray/images/layout_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/gray/images/linkbutton_bg.png b/FHC-vendor/easyui/themes/gray/images/linkbutton_bg.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/images/linkbutton_bg.png rename to FHC-vendor/easyui/themes/gray/images/linkbutton_bg.png diff --git a/vendor/FHC-vendor/easyui/themes/gray/images/loading.gif b/FHC-vendor/easyui/themes/gray/images/loading.gif similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/images/loading.gif rename to FHC-vendor/easyui/themes/gray/images/loading.gif diff --git a/vendor/FHC-vendor/easyui/themes/gray/images/menu_arrows.png b/FHC-vendor/easyui/themes/gray/images/menu_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/images/menu_arrows.png rename to FHC-vendor/easyui/themes/gray/images/menu_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/gray/images/messager_icons.png b/FHC-vendor/easyui/themes/gray/images/messager_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/images/messager_icons.png rename to FHC-vendor/easyui/themes/gray/images/messager_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/gray/images/pagination_icons.png b/FHC-vendor/easyui/themes/gray/images/pagination_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/images/pagination_icons.png rename to FHC-vendor/easyui/themes/gray/images/pagination_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/gray/images/panel_tools.png b/FHC-vendor/easyui/themes/gray/images/panel_tools.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/images/panel_tools.png rename to FHC-vendor/easyui/themes/gray/images/panel_tools.png diff --git a/vendor/FHC-vendor/easyui/themes/gray/images/searchbox_button.png b/FHC-vendor/easyui/themes/gray/images/searchbox_button.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/images/searchbox_button.png rename to FHC-vendor/easyui/themes/gray/images/searchbox_button.png diff --git a/vendor/FHC-vendor/easyui/themes/gray/images/slider_handle.png b/FHC-vendor/easyui/themes/gray/images/slider_handle.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/images/slider_handle.png rename to FHC-vendor/easyui/themes/gray/images/slider_handle.png diff --git a/vendor/FHC-vendor/easyui/themes/gray/images/spinner_arrows.png b/FHC-vendor/easyui/themes/gray/images/spinner_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/images/spinner_arrows.png rename to FHC-vendor/easyui/themes/gray/images/spinner_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/gray/images/tabs_icons.png b/FHC-vendor/easyui/themes/gray/images/tabs_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/images/tabs_icons.png rename to FHC-vendor/easyui/themes/gray/images/tabs_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/gray/images/tree_icons.png b/FHC-vendor/easyui/themes/gray/images/tree_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/images/tree_icons.png rename to FHC-vendor/easyui/themes/gray/images/tree_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/gray/images/validatebox_warning.png b/FHC-vendor/easyui/themes/gray/images/validatebox_warning.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/images/validatebox_warning.png rename to FHC-vendor/easyui/themes/gray/images/validatebox_warning.png diff --git a/vendor/FHC-vendor/easyui/themes/gray/layout.css b/FHC-vendor/easyui/themes/gray/layout.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/layout.css rename to FHC-vendor/easyui/themes/gray/layout.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/linkbutton.css b/FHC-vendor/easyui/themes/gray/linkbutton.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/linkbutton.css rename to FHC-vendor/easyui/themes/gray/linkbutton.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/menu.css b/FHC-vendor/easyui/themes/gray/menu.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/menu.css rename to FHC-vendor/easyui/themes/gray/menu.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/menubutton.css b/FHC-vendor/easyui/themes/gray/menubutton.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/menubutton.css rename to FHC-vendor/easyui/themes/gray/menubutton.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/messager.css b/FHC-vendor/easyui/themes/gray/messager.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/messager.css rename to FHC-vendor/easyui/themes/gray/messager.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/numberbox.css b/FHC-vendor/easyui/themes/gray/numberbox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/numberbox.css rename to FHC-vendor/easyui/themes/gray/numberbox.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/pagination.css b/FHC-vendor/easyui/themes/gray/pagination.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/pagination.css rename to FHC-vendor/easyui/themes/gray/pagination.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/panel.css b/FHC-vendor/easyui/themes/gray/panel.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/panel.css rename to FHC-vendor/easyui/themes/gray/panel.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/progressbar.css b/FHC-vendor/easyui/themes/gray/progressbar.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/progressbar.css rename to FHC-vendor/easyui/themes/gray/progressbar.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/propertygrid.css b/FHC-vendor/easyui/themes/gray/propertygrid.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/propertygrid.css rename to FHC-vendor/easyui/themes/gray/propertygrid.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/searchbox.css b/FHC-vendor/easyui/themes/gray/searchbox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/searchbox.css rename to FHC-vendor/easyui/themes/gray/searchbox.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/slider.css b/FHC-vendor/easyui/themes/gray/slider.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/slider.css rename to FHC-vendor/easyui/themes/gray/slider.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/spinner.css b/FHC-vendor/easyui/themes/gray/spinner.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/spinner.css rename to FHC-vendor/easyui/themes/gray/spinner.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/splitbutton.css b/FHC-vendor/easyui/themes/gray/splitbutton.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/splitbutton.css rename to FHC-vendor/easyui/themes/gray/splitbutton.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/switchbutton.css b/FHC-vendor/easyui/themes/gray/switchbutton.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/switchbutton.css rename to FHC-vendor/easyui/themes/gray/switchbutton.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/tabs.css b/FHC-vendor/easyui/themes/gray/tabs.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/tabs.css rename to FHC-vendor/easyui/themes/gray/tabs.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/textbox.css b/FHC-vendor/easyui/themes/gray/textbox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/textbox.css rename to FHC-vendor/easyui/themes/gray/textbox.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/tooltip.css b/FHC-vendor/easyui/themes/gray/tooltip.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/tooltip.css rename to FHC-vendor/easyui/themes/gray/tooltip.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/tree.css b/FHC-vendor/easyui/themes/gray/tree.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/tree.css rename to FHC-vendor/easyui/themes/gray/tree.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/validatebox.css b/FHC-vendor/easyui/themes/gray/validatebox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/validatebox.css rename to FHC-vendor/easyui/themes/gray/validatebox.css diff --git a/vendor/FHC-vendor/easyui/themes/gray/window.css b/FHC-vendor/easyui/themes/gray/window.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/gray/window.css rename to FHC-vendor/easyui/themes/gray/window.css diff --git a/vendor/FHC-vendor/easyui/themes/icon.css b/FHC-vendor/easyui/themes/icon.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icon.css rename to FHC-vendor/easyui/themes/icon.css diff --git a/vendor/FHC-vendor/easyui/themes/icons/back.png b/FHC-vendor/easyui/themes/icons/back.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/back.png rename to FHC-vendor/easyui/themes/icons/back.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/blank.gif b/FHC-vendor/easyui/themes/icons/blank.gif similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/blank.gif rename to FHC-vendor/easyui/themes/icons/blank.gif diff --git a/vendor/FHC-vendor/easyui/themes/icons/cancel.png b/FHC-vendor/easyui/themes/icons/cancel.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/cancel.png rename to FHC-vendor/easyui/themes/icons/cancel.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/clear.png b/FHC-vendor/easyui/themes/icons/clear.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/clear.png rename to FHC-vendor/easyui/themes/icons/clear.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/cut.png b/FHC-vendor/easyui/themes/icons/cut.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/cut.png rename to FHC-vendor/easyui/themes/icons/cut.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/edit_add.png b/FHC-vendor/easyui/themes/icons/edit_add.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/edit_add.png rename to FHC-vendor/easyui/themes/icons/edit_add.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/edit_remove.png b/FHC-vendor/easyui/themes/icons/edit_remove.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/edit_remove.png rename to FHC-vendor/easyui/themes/icons/edit_remove.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/filesave.png b/FHC-vendor/easyui/themes/icons/filesave.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/filesave.png rename to FHC-vendor/easyui/themes/icons/filesave.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/filter.png b/FHC-vendor/easyui/themes/icons/filter.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/filter.png rename to FHC-vendor/easyui/themes/icons/filter.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/help.png b/FHC-vendor/easyui/themes/icons/help.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/help.png rename to FHC-vendor/easyui/themes/icons/help.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/large_chart.png b/FHC-vendor/easyui/themes/icons/large_chart.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/large_chart.png rename to FHC-vendor/easyui/themes/icons/large_chart.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/large_clipart.png b/FHC-vendor/easyui/themes/icons/large_clipart.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/large_clipart.png rename to FHC-vendor/easyui/themes/icons/large_clipart.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/large_picture.png b/FHC-vendor/easyui/themes/icons/large_picture.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/large_picture.png rename to FHC-vendor/easyui/themes/icons/large_picture.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/large_shapes.png b/FHC-vendor/easyui/themes/icons/large_shapes.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/large_shapes.png rename to FHC-vendor/easyui/themes/icons/large_shapes.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/large_smartart.png b/FHC-vendor/easyui/themes/icons/large_smartart.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/large_smartart.png rename to FHC-vendor/easyui/themes/icons/large_smartart.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/lock.png b/FHC-vendor/easyui/themes/icons/lock.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/lock.png rename to FHC-vendor/easyui/themes/icons/lock.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/man.png b/FHC-vendor/easyui/themes/icons/man.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/man.png rename to FHC-vendor/easyui/themes/icons/man.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/mini_add.png b/FHC-vendor/easyui/themes/icons/mini_add.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/mini_add.png rename to FHC-vendor/easyui/themes/icons/mini_add.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/mini_edit.png b/FHC-vendor/easyui/themes/icons/mini_edit.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/mini_edit.png rename to FHC-vendor/easyui/themes/icons/mini_edit.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/mini_refresh.png b/FHC-vendor/easyui/themes/icons/mini_refresh.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/mini_refresh.png rename to FHC-vendor/easyui/themes/icons/mini_refresh.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/more.png b/FHC-vendor/easyui/themes/icons/more.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/more.png rename to FHC-vendor/easyui/themes/icons/more.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/no.png b/FHC-vendor/easyui/themes/icons/no.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/no.png rename to FHC-vendor/easyui/themes/icons/no.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/ok.png b/FHC-vendor/easyui/themes/icons/ok.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/ok.png rename to FHC-vendor/easyui/themes/icons/ok.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/pencil.png b/FHC-vendor/easyui/themes/icons/pencil.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/pencil.png rename to FHC-vendor/easyui/themes/icons/pencil.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/print.png b/FHC-vendor/easyui/themes/icons/print.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/print.png rename to FHC-vendor/easyui/themes/icons/print.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/redo.png b/FHC-vendor/easyui/themes/icons/redo.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/redo.png rename to FHC-vendor/easyui/themes/icons/redo.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/reload.png b/FHC-vendor/easyui/themes/icons/reload.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/reload.png rename to FHC-vendor/easyui/themes/icons/reload.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/search.png b/FHC-vendor/easyui/themes/icons/search.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/search.png rename to FHC-vendor/easyui/themes/icons/search.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/sum.png b/FHC-vendor/easyui/themes/icons/sum.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/sum.png rename to FHC-vendor/easyui/themes/icons/sum.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/tip.png b/FHC-vendor/easyui/themes/icons/tip.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/tip.png rename to FHC-vendor/easyui/themes/icons/tip.png diff --git a/vendor/FHC-vendor/easyui/themes/icons/undo.png b/FHC-vendor/easyui/themes/icons/undo.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/icons/undo.png rename to FHC-vendor/easyui/themes/icons/undo.png diff --git a/vendor/FHC-vendor/easyui/themes/metro/accordion.css b/FHC-vendor/easyui/themes/metro/accordion.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/accordion.css rename to FHC-vendor/easyui/themes/metro/accordion.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/calendar.css b/FHC-vendor/easyui/themes/metro/calendar.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/calendar.css rename to FHC-vendor/easyui/themes/metro/calendar.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/combo.css b/FHC-vendor/easyui/themes/metro/combo.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/combo.css rename to FHC-vendor/easyui/themes/metro/combo.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/combobox.css b/FHC-vendor/easyui/themes/metro/combobox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/combobox.css rename to FHC-vendor/easyui/themes/metro/combobox.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/datagrid.css b/FHC-vendor/easyui/themes/metro/datagrid.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/datagrid.css rename to FHC-vendor/easyui/themes/metro/datagrid.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/datalist.css b/FHC-vendor/easyui/themes/metro/datalist.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/datalist.css rename to FHC-vendor/easyui/themes/metro/datalist.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/datebox.css b/FHC-vendor/easyui/themes/metro/datebox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/datebox.css rename to FHC-vendor/easyui/themes/metro/datebox.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/dialog.css b/FHC-vendor/easyui/themes/metro/dialog.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/dialog.css rename to FHC-vendor/easyui/themes/metro/dialog.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/easyui.css b/FHC-vendor/easyui/themes/metro/easyui.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/easyui.css rename to FHC-vendor/easyui/themes/metro/easyui.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/filebox.css b/FHC-vendor/easyui/themes/metro/filebox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/filebox.css rename to FHC-vendor/easyui/themes/metro/filebox.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/images/accordion_arrows.png b/FHC-vendor/easyui/themes/metro/images/accordion_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/images/accordion_arrows.png rename to FHC-vendor/easyui/themes/metro/images/accordion_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/metro/images/blank.gif b/FHC-vendor/easyui/themes/metro/images/blank.gif similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/images/blank.gif rename to FHC-vendor/easyui/themes/metro/images/blank.gif diff --git a/vendor/FHC-vendor/easyui/themes/metro/images/calendar_arrows.png b/FHC-vendor/easyui/themes/metro/images/calendar_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/images/calendar_arrows.png rename to FHC-vendor/easyui/themes/metro/images/calendar_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/metro/images/combo_arrow.png b/FHC-vendor/easyui/themes/metro/images/combo_arrow.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/images/combo_arrow.png rename to FHC-vendor/easyui/themes/metro/images/combo_arrow.png diff --git a/vendor/FHC-vendor/easyui/themes/metro/images/datagrid_icons.png b/FHC-vendor/easyui/themes/metro/images/datagrid_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/images/datagrid_icons.png rename to FHC-vendor/easyui/themes/metro/images/datagrid_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/metro/images/datebox_arrow.png b/FHC-vendor/easyui/themes/metro/images/datebox_arrow.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/images/datebox_arrow.png rename to FHC-vendor/easyui/themes/metro/images/datebox_arrow.png diff --git a/vendor/FHC-vendor/easyui/themes/metro/images/layout_arrows.png b/FHC-vendor/easyui/themes/metro/images/layout_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/images/layout_arrows.png rename to FHC-vendor/easyui/themes/metro/images/layout_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/metro/images/linkbutton_bg.png b/FHC-vendor/easyui/themes/metro/images/linkbutton_bg.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/images/linkbutton_bg.png rename to FHC-vendor/easyui/themes/metro/images/linkbutton_bg.png diff --git a/vendor/FHC-vendor/easyui/themes/metro/images/loading.gif b/FHC-vendor/easyui/themes/metro/images/loading.gif similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/images/loading.gif rename to FHC-vendor/easyui/themes/metro/images/loading.gif diff --git a/vendor/FHC-vendor/easyui/themes/metro/images/menu_arrows.png b/FHC-vendor/easyui/themes/metro/images/menu_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/images/menu_arrows.png rename to FHC-vendor/easyui/themes/metro/images/menu_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/metro/images/messager_icons.png b/FHC-vendor/easyui/themes/metro/images/messager_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/images/messager_icons.png rename to FHC-vendor/easyui/themes/metro/images/messager_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/metro/images/pagination_icons.png b/FHC-vendor/easyui/themes/metro/images/pagination_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/images/pagination_icons.png rename to FHC-vendor/easyui/themes/metro/images/pagination_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/metro/images/panel_tools.png b/FHC-vendor/easyui/themes/metro/images/panel_tools.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/images/panel_tools.png rename to FHC-vendor/easyui/themes/metro/images/panel_tools.png diff --git a/vendor/FHC-vendor/easyui/themes/metro/images/searchbox_button.png b/FHC-vendor/easyui/themes/metro/images/searchbox_button.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/images/searchbox_button.png rename to FHC-vendor/easyui/themes/metro/images/searchbox_button.png diff --git a/vendor/FHC-vendor/easyui/themes/metro/images/slider_handle.png b/FHC-vendor/easyui/themes/metro/images/slider_handle.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/images/slider_handle.png rename to FHC-vendor/easyui/themes/metro/images/slider_handle.png diff --git a/vendor/FHC-vendor/easyui/themes/metro/images/spinner_arrows.png b/FHC-vendor/easyui/themes/metro/images/spinner_arrows.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/images/spinner_arrows.png rename to FHC-vendor/easyui/themes/metro/images/spinner_arrows.png diff --git a/vendor/FHC-vendor/easyui/themes/metro/images/tabs_icons.png b/FHC-vendor/easyui/themes/metro/images/tabs_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/images/tabs_icons.png rename to FHC-vendor/easyui/themes/metro/images/tabs_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/metro/images/tree_icons.png b/FHC-vendor/easyui/themes/metro/images/tree_icons.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/images/tree_icons.png rename to FHC-vendor/easyui/themes/metro/images/tree_icons.png diff --git a/vendor/FHC-vendor/easyui/themes/metro/images/validatebox_warning.png b/FHC-vendor/easyui/themes/metro/images/validatebox_warning.png similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/images/validatebox_warning.png rename to FHC-vendor/easyui/themes/metro/images/validatebox_warning.png diff --git a/vendor/FHC-vendor/easyui/themes/metro/layout.css b/FHC-vendor/easyui/themes/metro/layout.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/layout.css rename to FHC-vendor/easyui/themes/metro/layout.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/linkbutton.css b/FHC-vendor/easyui/themes/metro/linkbutton.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/linkbutton.css rename to FHC-vendor/easyui/themes/metro/linkbutton.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/menu.css b/FHC-vendor/easyui/themes/metro/menu.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/menu.css rename to FHC-vendor/easyui/themes/metro/menu.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/menubutton.css b/FHC-vendor/easyui/themes/metro/menubutton.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/menubutton.css rename to FHC-vendor/easyui/themes/metro/menubutton.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/messager.css b/FHC-vendor/easyui/themes/metro/messager.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/messager.css rename to FHC-vendor/easyui/themes/metro/messager.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/numberbox.css b/FHC-vendor/easyui/themes/metro/numberbox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/numberbox.css rename to FHC-vendor/easyui/themes/metro/numberbox.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/pagination.css b/FHC-vendor/easyui/themes/metro/pagination.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/pagination.css rename to FHC-vendor/easyui/themes/metro/pagination.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/panel.css b/FHC-vendor/easyui/themes/metro/panel.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/panel.css rename to FHC-vendor/easyui/themes/metro/panel.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/progressbar.css b/FHC-vendor/easyui/themes/metro/progressbar.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/progressbar.css rename to FHC-vendor/easyui/themes/metro/progressbar.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/propertygrid.css b/FHC-vendor/easyui/themes/metro/propertygrid.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/propertygrid.css rename to FHC-vendor/easyui/themes/metro/propertygrid.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/searchbox.css b/FHC-vendor/easyui/themes/metro/searchbox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/searchbox.css rename to FHC-vendor/easyui/themes/metro/searchbox.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/slider.css b/FHC-vendor/easyui/themes/metro/slider.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/slider.css rename to FHC-vendor/easyui/themes/metro/slider.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/spinner.css b/FHC-vendor/easyui/themes/metro/spinner.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/spinner.css rename to FHC-vendor/easyui/themes/metro/spinner.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/splitbutton.css b/FHC-vendor/easyui/themes/metro/splitbutton.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/splitbutton.css rename to FHC-vendor/easyui/themes/metro/splitbutton.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/switchbutton.css b/FHC-vendor/easyui/themes/metro/switchbutton.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/switchbutton.css rename to FHC-vendor/easyui/themes/metro/switchbutton.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/tabs.css b/FHC-vendor/easyui/themes/metro/tabs.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/tabs.css rename to FHC-vendor/easyui/themes/metro/tabs.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/textbox.css b/FHC-vendor/easyui/themes/metro/textbox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/textbox.css rename to FHC-vendor/easyui/themes/metro/textbox.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/tooltip.css b/FHC-vendor/easyui/themes/metro/tooltip.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/tooltip.css rename to FHC-vendor/easyui/themes/metro/tooltip.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/tree.css b/FHC-vendor/easyui/themes/metro/tree.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/tree.css rename to FHC-vendor/easyui/themes/metro/tree.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/validatebox.css b/FHC-vendor/easyui/themes/metro/validatebox.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/validatebox.css rename to FHC-vendor/easyui/themes/metro/validatebox.css diff --git a/vendor/FHC-vendor/easyui/themes/metro/window.css b/FHC-vendor/easyui/themes/metro/window.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/metro/window.css rename to FHC-vendor/easyui/themes/metro/window.css diff --git a/vendor/FHC-vendor/easyui/themes/mobile.css b/FHC-vendor/easyui/themes/mobile.css similarity index 100% rename from vendor/FHC-vendor/easyui/themes/mobile.css rename to FHC-vendor/easyui/themes/mobile.css diff --git a/vendor/FHC-vendor/easyui/themes/vilesci b/FHC-vendor/easyui/themes/vilesci similarity index 100% rename from vendor/FHC-vendor/easyui/themes/vilesci rename to FHC-vendor/easyui/themes/vilesci diff --git a/vendor/FHC-vendor/jquery-tablesorter/.gitattributes b/FHC-vendor/jquery-tablesorter/.gitattributes similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/.gitattributes rename to FHC-vendor/jquery-tablesorter/.gitattributes diff --git a/vendor/FHC-vendor/jquery-tablesorter/.gitignore b/FHC-vendor/jquery-tablesorter/.gitignore similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/.gitignore rename to FHC-vendor/jquery-tablesorter/.gitignore diff --git a/vendor/FHC-vendor/jquery-tablesorter/.jscsrc b/FHC-vendor/jquery-tablesorter/.jscsrc similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/.jscsrc rename to FHC-vendor/jquery-tablesorter/.jscsrc diff --git a/vendor/FHC-vendor/jquery-tablesorter/CONTRIBUTING.md b/FHC-vendor/jquery-tablesorter/CONTRIBUTING.md similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/CONTRIBUTING.md rename to FHC-vendor/jquery-tablesorter/CONTRIBUTING.md diff --git a/vendor/FHC-vendor/jquery-tablesorter/Gruntfile.js b/FHC-vendor/jquery-tablesorter/Gruntfile.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/Gruntfile.js rename to FHC-vendor/jquery-tablesorter/Gruntfile.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/README.md b/FHC-vendor/jquery-tablesorter/README.md similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/README.md rename to FHC-vendor/jquery-tablesorter/README.md diff --git a/vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/first.png b/FHC-vendor/jquery-tablesorter/addons/pager/icons/first.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/first.png rename to FHC-vendor/jquery-tablesorter/addons/pager/icons/first.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/last.png b/FHC-vendor/jquery-tablesorter/addons/pager/icons/last.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/last.png rename to FHC-vendor/jquery-tablesorter/addons/pager/icons/last.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/loading.gif b/FHC-vendor/jquery-tablesorter/addons/pager/icons/loading.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/loading.gif rename to FHC-vendor/jquery-tablesorter/addons/pager/icons/loading.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/next.png b/FHC-vendor/jquery-tablesorter/addons/pager/icons/next.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/next.png rename to FHC-vendor/jquery-tablesorter/addons/pager/icons/next.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/prev.png b/FHC-vendor/jquery-tablesorter/addons/pager/icons/prev.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/addons/pager/icons/prev.png rename to FHC-vendor/jquery-tablesorter/addons/pager/icons/prev.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.css b/FHC-vendor/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.css rename to FHC-vendor/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.js b/FHC-vendor/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.js rename to FHC-vendor/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/beta-testing/example-pager-custom-controls.html b/FHC-vendor/jquery-tablesorter/beta-testing/example-pager-custom-controls.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/beta-testing/example-pager-custom-controls.html rename to FHC-vendor/jquery-tablesorter/beta-testing/example-pager-custom-controls.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/beta-testing/example-widget-column-reorder.html b/FHC-vendor/jquery-tablesorter/beta-testing/example-widget-column-reorder.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/beta-testing/example-widget-column-reorder.html rename to FHC-vendor/jquery-tablesorter/beta-testing/example-widget-column-reorder.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/beta-testing/pager-custom-controls.js b/FHC-vendor/jquery-tablesorter/beta-testing/pager-custom-controls.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/beta-testing/pager-custom-controls.js rename to FHC-vendor/jquery-tablesorter/beta-testing/pager-custom-controls.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/beta-testing/widget-reorder.js b/FHC-vendor/jquery-tablesorter/beta-testing/widget-reorder.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/beta-testing/widget-reorder.js rename to FHC-vendor/jquery-tablesorter/beta-testing/widget-reorder.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/bower.json b/FHC-vendor/jquery-tablesorter/bower.json similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/bower.json rename to FHC-vendor/jquery-tablesorter/bower.json diff --git a/vendor/FHC-vendor/jquery-tablesorter/changelog.txt b/FHC-vendor/jquery-tablesorter/changelog.txt similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/changelog.txt rename to FHC-vendor/jquery-tablesorter/changelog.txt diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/bootstrap.less b/FHC-vendor/jquery-tablesorter/css/bootstrap.less similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/bootstrap.less rename to FHC-vendor/jquery-tablesorter/css/bootstrap.less diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/dragtable.mod.css b/FHC-vendor/jquery-tablesorter/css/dragtable.mod.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/dragtable.mod.css rename to FHC-vendor/jquery-tablesorter/css/dragtable.mod.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/filter.formatter.css b/FHC-vendor/jquery-tablesorter/css/filter.formatter.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/filter.formatter.css rename to FHC-vendor/jquery-tablesorter/css/filter.formatter.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/black-asc.gif b/FHC-vendor/jquery-tablesorter/css/images/black-asc.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/black-asc.gif rename to FHC-vendor/jquery-tablesorter/css/images/black-asc.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/black-desc.gif b/FHC-vendor/jquery-tablesorter/css/images/black-desc.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/black-desc.gif rename to FHC-vendor/jquery-tablesorter/css/images/black-desc.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/black-unsorted.gif b/FHC-vendor/jquery-tablesorter/css/images/black-unsorted.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/black-unsorted.gif rename to FHC-vendor/jquery-tablesorter/css/images/black-unsorted.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/bootstrap-black-unsorted.png b/FHC-vendor/jquery-tablesorter/css/images/bootstrap-black-unsorted.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/bootstrap-black-unsorted.png rename to FHC-vendor/jquery-tablesorter/css/images/bootstrap-black-unsorted.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/bootstrap-white-unsorted.png b/FHC-vendor/jquery-tablesorter/css/images/bootstrap-white-unsorted.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/bootstrap-white-unsorted.png rename to FHC-vendor/jquery-tablesorter/css/images/bootstrap-white-unsorted.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/dragtable-handle.png b/FHC-vendor/jquery-tablesorter/css/images/dragtable-handle.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/dragtable-handle.png rename to FHC-vendor/jquery-tablesorter/css/images/dragtable-handle.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/dragtable-handle.svg b/FHC-vendor/jquery-tablesorter/css/images/dragtable-handle.svg similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/dragtable-handle.svg rename to FHC-vendor/jquery-tablesorter/css/images/dragtable-handle.svg diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/dropbox-asc-hovered.png b/FHC-vendor/jquery-tablesorter/css/images/dropbox-asc-hovered.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/dropbox-asc-hovered.png rename to FHC-vendor/jquery-tablesorter/css/images/dropbox-asc-hovered.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/dropbox-asc.png b/FHC-vendor/jquery-tablesorter/css/images/dropbox-asc.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/dropbox-asc.png rename to FHC-vendor/jquery-tablesorter/css/images/dropbox-asc.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/dropbox-desc-hovered.png b/FHC-vendor/jquery-tablesorter/css/images/dropbox-desc-hovered.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/dropbox-desc-hovered.png rename to FHC-vendor/jquery-tablesorter/css/images/dropbox-desc-hovered.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/dropbox-desc.png b/FHC-vendor/jquery-tablesorter/css/images/dropbox-desc.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/dropbox-desc.png rename to FHC-vendor/jquery-tablesorter/css/images/dropbox-desc.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/green-asc.gif b/FHC-vendor/jquery-tablesorter/css/images/green-asc.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/green-asc.gif rename to FHC-vendor/jquery-tablesorter/css/images/green-asc.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/green-desc.gif b/FHC-vendor/jquery-tablesorter/css/images/green-desc.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/green-desc.gif rename to FHC-vendor/jquery-tablesorter/css/images/green-desc.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/green-header.gif b/FHC-vendor/jquery-tablesorter/css/images/green-header.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/green-header.gif rename to FHC-vendor/jquery-tablesorter/css/images/green-header.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/green-unsorted.gif b/FHC-vendor/jquery-tablesorter/css/images/green-unsorted.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/green-unsorted.gif rename to FHC-vendor/jquery-tablesorter/css/images/green-unsorted.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/ice-asc.gif b/FHC-vendor/jquery-tablesorter/css/images/ice-asc.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/ice-asc.gif rename to FHC-vendor/jquery-tablesorter/css/images/ice-asc.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/ice-desc.gif b/FHC-vendor/jquery-tablesorter/css/images/ice-desc.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/ice-desc.gif rename to FHC-vendor/jquery-tablesorter/css/images/ice-desc.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/ice-unsorted.gif b/FHC-vendor/jquery-tablesorter/css/images/ice-unsorted.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/ice-unsorted.gif rename to FHC-vendor/jquery-tablesorter/css/images/ice-unsorted.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/metro-black-asc.png b/FHC-vendor/jquery-tablesorter/css/images/metro-black-asc.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/metro-black-asc.png rename to FHC-vendor/jquery-tablesorter/css/images/metro-black-asc.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/metro-black-desc.png b/FHC-vendor/jquery-tablesorter/css/images/metro-black-desc.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/metro-black-desc.png rename to FHC-vendor/jquery-tablesorter/css/images/metro-black-desc.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/metro-loading.gif b/FHC-vendor/jquery-tablesorter/css/images/metro-loading.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/metro-loading.gif rename to FHC-vendor/jquery-tablesorter/css/images/metro-loading.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/metro-unsorted.png b/FHC-vendor/jquery-tablesorter/css/images/metro-unsorted.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/metro-unsorted.png rename to FHC-vendor/jquery-tablesorter/css/images/metro-unsorted.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/metro-white-asc.png b/FHC-vendor/jquery-tablesorter/css/images/metro-white-asc.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/metro-white-asc.png rename to FHC-vendor/jquery-tablesorter/css/images/metro-white-asc.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/metro-white-desc.png b/FHC-vendor/jquery-tablesorter/css/images/metro-white-desc.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/metro-white-desc.png rename to FHC-vendor/jquery-tablesorter/css/images/metro-white-desc.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/white-asc.gif b/FHC-vendor/jquery-tablesorter/css/images/white-asc.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/white-asc.gif rename to FHC-vendor/jquery-tablesorter/css/images/white-asc.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/white-desc.gif b/FHC-vendor/jquery-tablesorter/css/images/white-desc.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/white-desc.gif rename to FHC-vendor/jquery-tablesorter/css/images/white-desc.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/images/white-unsorted.gif b/FHC-vendor/jquery-tablesorter/css/images/white-unsorted.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/images/white-unsorted.gif rename to FHC-vendor/jquery-tablesorter/css/images/white-unsorted.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/metro.less b/FHC-vendor/jquery-tablesorter/css/metro.less similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/metro.less rename to FHC-vendor/jquery-tablesorter/css/metro.less diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/psd/green-asc.psd b/FHC-vendor/jquery-tablesorter/css/psd/green-asc.psd similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/psd/green-asc.psd rename to FHC-vendor/jquery-tablesorter/css/psd/green-asc.psd diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/psd/green-desc.psd b/FHC-vendor/jquery-tablesorter/css/psd/green-desc.psd similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/psd/green-desc.psd rename to FHC-vendor/jquery-tablesorter/css/psd/green-desc.psd diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/psd/green-unsorted.psd b/FHC-vendor/jquery-tablesorter/css/psd/green-unsorted.psd similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/psd/green-unsorted.psd rename to FHC-vendor/jquery-tablesorter/css/psd/green-unsorted.psd diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/psd/metro-style.psd b/FHC-vendor/jquery-tablesorter/css/psd/metro-style.psd similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/psd/metro-style.psd rename to FHC-vendor/jquery-tablesorter/css/psd/metro-style.psd diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.black-ice.css b/FHC-vendor/jquery-tablesorter/css/theme.black-ice.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/theme.black-ice.css rename to FHC-vendor/jquery-tablesorter/css/theme.black-ice.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.blue.css b/FHC-vendor/jquery-tablesorter/css/theme.blue.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/theme.blue.css rename to FHC-vendor/jquery-tablesorter/css/theme.blue.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.bootstrap.css b/FHC-vendor/jquery-tablesorter/css/theme.bootstrap.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/theme.bootstrap.css rename to FHC-vendor/jquery-tablesorter/css/theme.bootstrap.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.bootstrap_2.css b/FHC-vendor/jquery-tablesorter/css/theme.bootstrap_2.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/theme.bootstrap_2.css rename to FHC-vendor/jquery-tablesorter/css/theme.bootstrap_2.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.dark.css b/FHC-vendor/jquery-tablesorter/css/theme.dark.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/theme.dark.css rename to FHC-vendor/jquery-tablesorter/css/theme.dark.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.default.css b/FHC-vendor/jquery-tablesorter/css/theme.default.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/theme.default.css rename to FHC-vendor/jquery-tablesorter/css/theme.default.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.dropbox.css b/FHC-vendor/jquery-tablesorter/css/theme.dropbox.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/theme.dropbox.css rename to FHC-vendor/jquery-tablesorter/css/theme.dropbox.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.green.css b/FHC-vendor/jquery-tablesorter/css/theme.green.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/theme.green.css rename to FHC-vendor/jquery-tablesorter/css/theme.green.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.grey.css b/FHC-vendor/jquery-tablesorter/css/theme.grey.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/theme.grey.css rename to FHC-vendor/jquery-tablesorter/css/theme.grey.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.ice.css b/FHC-vendor/jquery-tablesorter/css/theme.ice.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/theme.ice.css rename to FHC-vendor/jquery-tablesorter/css/theme.ice.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.jui.css b/FHC-vendor/jquery-tablesorter/css/theme.jui.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/theme.jui.css rename to FHC-vendor/jquery-tablesorter/css/theme.jui.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.less b/FHC-vendor/jquery-tablesorter/css/theme.less similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/theme.less rename to FHC-vendor/jquery-tablesorter/css/theme.less diff --git a/vendor/FHC-vendor/jquery-tablesorter/css/theme.metro-dark.css b/FHC-vendor/jquery-tablesorter/css/theme.metro-dark.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/css/theme.metro-dark.css rename to FHC-vendor/jquery-tablesorter/css/theme.metro-dark.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/dragtable.mod.min.css b/FHC-vendor/jquery-tablesorter/dist/css/dragtable.mod.min.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/dragtable.mod.min.css rename to FHC-vendor/jquery-tablesorter/dist/css/dragtable.mod.min.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/filter.formatter.min.css b/FHC-vendor/jquery-tablesorter/dist/css/filter.formatter.min.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/filter.formatter.min.css rename to FHC-vendor/jquery-tablesorter/dist/css/filter.formatter.min.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/black-asc.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/black-asc.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/black-asc.gif rename to FHC-vendor/jquery-tablesorter/dist/css/images/black-asc.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/black-desc.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/black-desc.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/black-desc.gif rename to FHC-vendor/jquery-tablesorter/dist/css/images/black-desc.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/black-unsorted.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/black-unsorted.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/black-unsorted.gif rename to FHC-vendor/jquery-tablesorter/dist/css/images/black-unsorted.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/bootstrap-black-unsorted.png b/FHC-vendor/jquery-tablesorter/dist/css/images/bootstrap-black-unsorted.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/bootstrap-black-unsorted.png rename to FHC-vendor/jquery-tablesorter/dist/css/images/bootstrap-black-unsorted.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/bootstrap-white-unsorted.png b/FHC-vendor/jquery-tablesorter/dist/css/images/bootstrap-white-unsorted.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/bootstrap-white-unsorted.png rename to FHC-vendor/jquery-tablesorter/dist/css/images/bootstrap-white-unsorted.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dragtable-handle.png b/FHC-vendor/jquery-tablesorter/dist/css/images/dragtable-handle.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dragtable-handle.png rename to FHC-vendor/jquery-tablesorter/dist/css/images/dragtable-handle.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dragtable-handle.svg b/FHC-vendor/jquery-tablesorter/dist/css/images/dragtable-handle.svg similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dragtable-handle.svg rename to FHC-vendor/jquery-tablesorter/dist/css/images/dragtable-handle.svg diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-asc-hovered.png b/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-asc-hovered.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-asc-hovered.png rename to FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-asc-hovered.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-asc.png b/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-asc.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-asc.png rename to FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-asc.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-desc-hovered.png b/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-desc-hovered.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-desc-hovered.png rename to FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-desc-hovered.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-desc.png b/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-desc.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-desc.png rename to FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-desc.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/first.png b/FHC-vendor/jquery-tablesorter/dist/css/images/first.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/first.png rename to FHC-vendor/jquery-tablesorter/dist/css/images/first.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/green-asc.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/green-asc.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/green-asc.gif rename to FHC-vendor/jquery-tablesorter/dist/css/images/green-asc.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/green-desc.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/green-desc.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/green-desc.gif rename to FHC-vendor/jquery-tablesorter/dist/css/images/green-desc.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/green-header.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/green-header.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/green-header.gif rename to FHC-vendor/jquery-tablesorter/dist/css/images/green-header.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/green-unsorted.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/green-unsorted.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/green-unsorted.gif rename to FHC-vendor/jquery-tablesorter/dist/css/images/green-unsorted.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/ice-asc.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/ice-asc.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/ice-asc.gif rename to FHC-vendor/jquery-tablesorter/dist/css/images/ice-asc.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/ice-desc.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/ice-desc.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/ice-desc.gif rename to FHC-vendor/jquery-tablesorter/dist/css/images/ice-desc.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/ice-unsorted.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/ice-unsorted.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/ice-unsorted.gif rename to FHC-vendor/jquery-tablesorter/dist/css/images/ice-unsorted.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/last.png b/FHC-vendor/jquery-tablesorter/dist/css/images/last.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/last.png rename to FHC-vendor/jquery-tablesorter/dist/css/images/last.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/loading.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/loading.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/loading.gif rename to FHC-vendor/jquery-tablesorter/dist/css/images/loading.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-black-asc.png b/FHC-vendor/jquery-tablesorter/dist/css/images/metro-black-asc.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-black-asc.png rename to FHC-vendor/jquery-tablesorter/dist/css/images/metro-black-asc.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-black-desc.png b/FHC-vendor/jquery-tablesorter/dist/css/images/metro-black-desc.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-black-desc.png rename to FHC-vendor/jquery-tablesorter/dist/css/images/metro-black-desc.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-loading.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/metro-loading.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-loading.gif rename to FHC-vendor/jquery-tablesorter/dist/css/images/metro-loading.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-unsorted.png b/FHC-vendor/jquery-tablesorter/dist/css/images/metro-unsorted.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-unsorted.png rename to FHC-vendor/jquery-tablesorter/dist/css/images/metro-unsorted.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-white-asc.png b/FHC-vendor/jquery-tablesorter/dist/css/images/metro-white-asc.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-white-asc.png rename to FHC-vendor/jquery-tablesorter/dist/css/images/metro-white-asc.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-white-desc.png b/FHC-vendor/jquery-tablesorter/dist/css/images/metro-white-desc.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/metro-white-desc.png rename to FHC-vendor/jquery-tablesorter/dist/css/images/metro-white-desc.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/next.png b/FHC-vendor/jquery-tablesorter/dist/css/images/next.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/next.png rename to FHC-vendor/jquery-tablesorter/dist/css/images/next.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/prev.png b/FHC-vendor/jquery-tablesorter/dist/css/images/prev.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/prev.png rename to FHC-vendor/jquery-tablesorter/dist/css/images/prev.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/white-asc.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/white-asc.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/white-asc.gif rename to FHC-vendor/jquery-tablesorter/dist/css/images/white-asc.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/white-desc.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/white-desc.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/white-desc.gif rename to FHC-vendor/jquery-tablesorter/dist/css/images/white-desc.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/images/white-unsorted.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/white-unsorted.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/images/white-unsorted.gif rename to FHC-vendor/jquery-tablesorter/dist/css/images/white-unsorted.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/jquery.tablesorter.pager.min.css b/FHC-vendor/jquery-tablesorter/dist/css/jquery.tablesorter.pager.min.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/jquery.tablesorter.pager.min.css rename to FHC-vendor/jquery-tablesorter/dist/css/jquery.tablesorter.pager.min.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/less/bootstrap.less b/FHC-vendor/jquery-tablesorter/dist/css/less/bootstrap.less similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/less/bootstrap.less rename to FHC-vendor/jquery-tablesorter/dist/css/less/bootstrap.less diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/less/metro.less b/FHC-vendor/jquery-tablesorter/dist/css/less/metro.less similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/less/metro.less rename to FHC-vendor/jquery-tablesorter/dist/css/less/metro.less diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/less/theme.less b/FHC-vendor/jquery-tablesorter/dist/css/less/theme.less similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/less/theme.less rename to FHC-vendor/jquery-tablesorter/dist/css/less/theme.less diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.blackice.min.css b/FHC-vendor/jquery-tablesorter/dist/css/theme.blackice.min.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.blackice.min.css rename to FHC-vendor/jquery-tablesorter/dist/css/theme.blackice.min.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.blue.min.css b/FHC-vendor/jquery-tablesorter/dist/css/theme.blue.min.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.blue.min.css rename to FHC-vendor/jquery-tablesorter/dist/css/theme.blue.min.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.bootstrap.min.css b/FHC-vendor/jquery-tablesorter/dist/css/theme.bootstrap.min.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.bootstrap.min.css rename to FHC-vendor/jquery-tablesorter/dist/css/theme.bootstrap.min.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.bootstrap_2.min.css b/FHC-vendor/jquery-tablesorter/dist/css/theme.bootstrap_2.min.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.bootstrap_2.min.css rename to FHC-vendor/jquery-tablesorter/dist/css/theme.bootstrap_2.min.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.dark.min.css b/FHC-vendor/jquery-tablesorter/dist/css/theme.dark.min.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.dark.min.css rename to FHC-vendor/jquery-tablesorter/dist/css/theme.dark.min.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.default.min.css b/FHC-vendor/jquery-tablesorter/dist/css/theme.default.min.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.default.min.css rename to FHC-vendor/jquery-tablesorter/dist/css/theme.default.min.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.dropbox.min.css b/FHC-vendor/jquery-tablesorter/dist/css/theme.dropbox.min.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.dropbox.min.css rename to FHC-vendor/jquery-tablesorter/dist/css/theme.dropbox.min.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.green.min.css b/FHC-vendor/jquery-tablesorter/dist/css/theme.green.min.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.green.min.css rename to FHC-vendor/jquery-tablesorter/dist/css/theme.green.min.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.grey.min.css b/FHC-vendor/jquery-tablesorter/dist/css/theme.grey.min.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.grey.min.css rename to FHC-vendor/jquery-tablesorter/dist/css/theme.grey.min.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.ice.min.css b/FHC-vendor/jquery-tablesorter/dist/css/theme.ice.min.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.ice.min.css rename to FHC-vendor/jquery-tablesorter/dist/css/theme.ice.min.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.jui.min.css b/FHC-vendor/jquery-tablesorter/dist/css/theme.jui.min.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.jui.min.css rename to FHC-vendor/jquery-tablesorter/dist/css/theme.jui.min.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.metro-dark.min.css b/FHC-vendor/jquery-tablesorter/dist/css/theme.metro-dark.min.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/css/theme.metro-dark.min.css rename to FHC-vendor/jquery-tablesorter/dist/css/theme.metro-dark.min.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/extras/jquery.dragtable.mod.min.js b/FHC-vendor/jquery-tablesorter/dist/js/extras/jquery.dragtable.mod.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/extras/jquery.dragtable.mod.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/extras/jquery.dragtable.mod.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/extras/jquery.metadata.min.js b/FHC-vendor/jquery-tablesorter/dist/js/extras/jquery.metadata.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/extras/jquery.metadata.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/extras/jquery.metadata.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/extras/jquery.tablesorter.pager.min.js b/FHC-vendor/jquery-tablesorter/dist/js/extras/jquery.tablesorter.pager.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/extras/jquery.tablesorter.pager.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/extras/jquery.tablesorter.pager.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/extras/semver-mod.min.js b/FHC-vendor/jquery-tablesorter/dist/js/extras/semver-mod.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/extras/semver-mod.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/extras/semver-mod.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.combined.js b/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.combined.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.combined.js rename to FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.combined.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.combined.min.js b/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.combined.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.combined.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.combined.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.js b/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.js rename to FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.min.js b/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.widgets.js b/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.widgets.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.widgets.js rename to FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.widgets.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.widgets.min.js b/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.widgets.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.widgets.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.widgets.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date-extract.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date-extract.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date-extract.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date-extract.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date-iso8601.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date-iso8601.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date-iso8601.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date-iso8601.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date-month.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date-month.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date-month.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date-month.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date-range.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date-range.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date-range.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date-range.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date-two-digit-year.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date-two-digit-year.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date-two-digit-year.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date-two-digit-year.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date-weekday.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date-weekday.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date-weekday.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date-weekday.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-duration.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-duration.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-duration.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-duration.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-feet-inch-fraction.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-feet-inch-fraction.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-feet-inch-fraction.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-feet-inch-fraction.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-file-type.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-file-type.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-file-type.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-file-type.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-globalize.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-globalize.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-globalize.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-globalize.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-ignore-articles.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-ignore-articles.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-ignore-articles.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-ignore-articles.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-image.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-image.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-image.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-image.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-input-select.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-input-select.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-input-select.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-input-select.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-metric.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-metric.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-metric.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-metric.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-named-numbers.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-named-numbers.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-named-numbers.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-named-numbers.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-network.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-network.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-network.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-network.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-roman.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-roman.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-roman.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-roman.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-alignChar.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-alignChar.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-alignChar.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-alignChar.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-build-table.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-build-table.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-build-table.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-build-table.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-chart.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-chart.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-chart.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-chart.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-columnSelector.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-columnSelector.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-columnSelector.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-columnSelector.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-columns.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-columns.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-columns.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-columns.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-cssStickyHeaders.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-cssStickyHeaders.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-cssStickyHeaders.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-cssStickyHeaders.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-editable.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-editable.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-editable.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-editable.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-filter-formatter-html5.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-filter-formatter-html5.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-filter-formatter-html5.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-filter-formatter-html5.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-filter-formatter-jui.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-filter-formatter-jui.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-filter-formatter-jui.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-filter-formatter-jui.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-filter-formatter-select2.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-filter-formatter-select2.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-filter-formatter-select2.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-filter-formatter-select2.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-filter-type-insideRange.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-filter-type-insideRange.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-filter-type-insideRange.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-filter-type-insideRange.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-filter.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-filter.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-filter.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-filter.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-formatter.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-formatter.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-formatter.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-formatter.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-grouping.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-grouping.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-grouping.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-grouping.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-headerTitles.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-headerTitles.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-headerTitles.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-headerTitles.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-lazyload.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-lazyload.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-lazyload.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-lazyload.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-math.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-math.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-math.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-math.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-output.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-output.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-output.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-output.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-pager.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-pager.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-pager.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-pager.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-print.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-print.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-print.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-print.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-reflow.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-reflow.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-reflow.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-reflow.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-repeatheaders.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-repeatheaders.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-repeatheaders.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-repeatheaders.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-resizable.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-resizable.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-resizable.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-resizable.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-saveSort.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-saveSort.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-saveSort.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-saveSort.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-scroller.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-scroller.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-scroller.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-scroller.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-sort2Hash.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-sort2Hash.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-sort2Hash.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-sort2Hash.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-sortTbodies.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-sortTbodies.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-sortTbodies.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-sortTbodies.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-staticRow.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-staticRow.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-staticRow.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-staticRow.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-stickyHeaders.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-stickyHeaders.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-stickyHeaders.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-stickyHeaders.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-storage.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-storage.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-storage.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-storage.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-toggle.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-toggle.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-toggle.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-toggle.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-uitheme.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-uitheme.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-uitheme.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-uitheme.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-view.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-view.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-view.min.js rename to FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-view.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/assets/City0.json b/FHC-vendor/jquery-tablesorter/docs/assets/City0.json similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/assets/City0.json rename to FHC-vendor/jquery-tablesorter/docs/assets/City0.json diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/assets/City1.json b/FHC-vendor/jquery-tablesorter/docs/assets/City1.json similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/assets/City1.json rename to FHC-vendor/jquery-tablesorter/docs/assets/City1.json diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/assets/City2.json b/FHC-vendor/jquery-tablesorter/docs/assets/City2.json similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/assets/City2.json rename to FHC-vendor/jquery-tablesorter/docs/assets/City2.json diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/assets/City3.json b/FHC-vendor/jquery-tablesorter/docs/assets/City3.json similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/assets/City3.json rename to FHC-vendor/jquery-tablesorter/docs/assets/City3.json diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/assets/ajax-content.html b/FHC-vendor/jquery-tablesorter/docs/assets/ajax-content.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/assets/ajax-content.html rename to FHC-vendor/jquery-tablesorter/docs/assets/ajax-content.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/assets/build.json b/FHC-vendor/jquery-tablesorter/docs/assets/build.json similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/assets/build.json rename to FHC-vendor/jquery-tablesorter/docs/assets/build.json diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/assets/build.txt b/FHC-vendor/jquery-tablesorter/docs/assets/build.txt similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/assets/build.txt rename to FHC-vendor/jquery-tablesorter/docs/assets/build.txt diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/assets/theme_switcher.json b/FHC-vendor/jquery-tablesorter/docs/assets/theme_switcher.json similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/assets/theme_switcher.json rename to FHC-vendor/jquery-tablesorter/docs/assets/theme_switcher.json diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/bootstrap-v2.min.css b/FHC-vendor/jquery-tablesorter/docs/css/bootstrap-v2.min.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/bootstrap-v2.min.css rename to FHC-vendor/jquery-tablesorter/docs/css/bootstrap-v2.min.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/bootstrap.min.css b/FHC-vendor/jquery-tablesorter/docs/css/bootstrap.min.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/bootstrap.min.css rename to FHC-vendor/jquery-tablesorter/docs/css/bootstrap.min.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/images/glyphicons-halflings-white.png b/FHC-vendor/jquery-tablesorter/docs/css/images/glyphicons-halflings-white.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/images/glyphicons-halflings-white.png rename to FHC-vendor/jquery-tablesorter/docs/css/images/glyphicons-halflings-white.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/images/glyphicons-halflings.png b/FHC-vendor/jquery-tablesorter/docs/css/images/glyphicons-halflings.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/images/glyphicons-halflings.png rename to FHC-vendor/jquery-tablesorter/docs/css/images/glyphicons-halflings.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png b/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png rename to FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_flat_15_cd0a0a_40x100.png b/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_flat_15_cd0a0a_40x100.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_flat_15_cd0a0a_40x100.png rename to FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_flat_15_cd0a0a_40x100.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_glass_100_e4f1fb_1x400.png b/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_glass_100_e4f1fb_1x400.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_glass_100_e4f1fb_1x400.png rename to FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_glass_100_e4f1fb_1x400.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_glass_50_3baae3_1x400.png b/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_glass_50_3baae3_1x400.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_glass_50_3baae3_1x400.png rename to FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_glass_50_3baae3_1x400.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_glass_80_d7ebf9_1x400.png b/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_glass_80_d7ebf9_1x400.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_glass_80_d7ebf9_1x400.png rename to FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_glass_80_d7ebf9_1x400.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png b/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png rename to FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_highlight-hard_70_000000_1x100.png b/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_highlight-hard_70_000000_1x100.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_highlight-hard_70_000000_1x100.png rename to FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_highlight-hard_70_000000_1x100.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_highlight-soft_100_deedf7_1x100.png b/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_highlight-soft_100_deedf7_1x100.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_highlight-soft_100_deedf7_1x100.png rename to FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_highlight-soft_100_deedf7_1x100.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_highlight-soft_25_ffef8f_1x100.png b/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_highlight-soft_25_ffef8f_1x100.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_highlight-soft_25_ffef8f_1x100.png rename to FHC-vendor/jquery-tablesorter/docs/css/images/ui-bg_highlight-soft_25_ffef8f_1x100.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-icons_2694e8_256x240.png b/FHC-vendor/jquery-tablesorter/docs/css/images/ui-icons_2694e8_256x240.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-icons_2694e8_256x240.png rename to FHC-vendor/jquery-tablesorter/docs/css/images/ui-icons_2694e8_256x240.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-icons_2e83ff_256x240.png b/FHC-vendor/jquery-tablesorter/docs/css/images/ui-icons_2e83ff_256x240.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-icons_2e83ff_256x240.png rename to FHC-vendor/jquery-tablesorter/docs/css/images/ui-icons_2e83ff_256x240.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-icons_3d80b3_256x240.png b/FHC-vendor/jquery-tablesorter/docs/css/images/ui-icons_3d80b3_256x240.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-icons_3d80b3_256x240.png rename to FHC-vendor/jquery-tablesorter/docs/css/images/ui-icons_3d80b3_256x240.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-icons_72a7cf_256x240.png b/FHC-vendor/jquery-tablesorter/docs/css/images/ui-icons_72a7cf_256x240.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-icons_72a7cf_256x240.png rename to FHC-vendor/jquery-tablesorter/docs/css/images/ui-icons_72a7cf_256x240.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-icons_ffffff_256x240.png b/FHC-vendor/jquery-tablesorter/docs/css/images/ui-icons_ffffff_256x240.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/images/ui-icons_ffffff_256x240.png rename to FHC-vendor/jquery-tablesorter/docs/css/images/ui-icons_ffffff_256x240.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/jq.css b/FHC-vendor/jquery-tablesorter/docs/css/jq.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/jq.css rename to FHC-vendor/jquery-tablesorter/docs/css/jq.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/jquery-ui.min.css b/FHC-vendor/jquery-tablesorter/docs/css/jquery-ui.min.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/jquery-ui.min.css rename to FHC-vendor/jquery-tablesorter/docs/css/jquery-ui.min.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/magnific-popup.css b/FHC-vendor/jquery-tablesorter/docs/css/magnific-popup.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/magnific-popup.css rename to FHC-vendor/jquery-tablesorter/docs/css/magnific-popup.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/menu.css b/FHC-vendor/jquery-tablesorter/docs/css/menu.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/menu.css rename to FHC-vendor/jquery-tablesorter/docs/css/menu.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/prettify.css b/FHC-vendor/jquery-tablesorter/docs/css/prettify.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/prettify.css rename to FHC-vendor/jquery-tablesorter/docs/css/prettify.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/rangeslider.css b/FHC-vendor/jquery-tablesorter/docs/css/rangeslider.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/rangeslider.css rename to FHC-vendor/jquery-tablesorter/docs/css/rangeslider.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/select2-3.4.6.min.css b/FHC-vendor/jquery-tablesorter/docs/css/select2-3.4.6.min.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/select2-3.4.6.min.css rename to FHC-vendor/jquery-tablesorter/docs/css/select2-3.4.6.min.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/select2-spinner.gif b/FHC-vendor/jquery-tablesorter/docs/css/select2-spinner.gif similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/select2-spinner.gif rename to FHC-vendor/jquery-tablesorter/docs/css/select2-spinner.gif diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/select2.png b/FHC-vendor/jquery-tablesorter/docs/css/select2.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/select2.png rename to FHC-vendor/jquery-tablesorter/docs/css/select2.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/select2x2.png b/FHC-vendor/jquery-tablesorter/docs/css/select2x2.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/select2x2.png rename to FHC-vendor/jquery-tablesorter/docs/css/select2x2.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/css/tipsy.css b/FHC-vendor/jquery-tablesorter/docs/css/tipsy.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/css/tipsy.css rename to FHC-vendor/jquery-tablesorter/docs/css/tipsy.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-add-rows.html b/FHC-vendor/jquery-tablesorter/docs/example-add-rows.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-add-rows.html rename to FHC-vendor/jquery-tablesorter/docs/example-add-rows.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-ajax.html b/FHC-vendor/jquery-tablesorter/docs/example-ajax.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-ajax.html rename to FHC-vendor/jquery-tablesorter/docs/example-ajax.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-apply-widget.html b/FHC-vendor/jquery-tablesorter/docs/example-apply-widget.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-apply-widget.html rename to FHC-vendor/jquery-tablesorter/docs/example-apply-widget.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-child-rows-filtered.html b/FHC-vendor/jquery-tablesorter/docs/example-child-rows-filtered.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-child-rows-filtered.html rename to FHC-vendor/jquery-tablesorter/docs/example-child-rows-filtered.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-child-rows.html b/FHC-vendor/jquery-tablesorter/docs/example-child-rows.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-child-rows.html rename to FHC-vendor/jquery-tablesorter/docs/example-child-rows.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-css-highlighting.html b/FHC-vendor/jquery-tablesorter/docs/example-css-highlighting.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-css-highlighting.html rename to FHC-vendor/jquery-tablesorter/docs/example-css-highlighting.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-dragtable.html b/FHC-vendor/jquery-tablesorter/docs/example-dragtable.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-dragtable.html rename to FHC-vendor/jquery-tablesorter/docs/example-dragtable.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-empty-table.html b/FHC-vendor/jquery-tablesorter/docs/example-empty-table.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-empty-table.html rename to FHC-vendor/jquery-tablesorter/docs/example-empty-table.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-extending-defaults.html b/FHC-vendor/jquery-tablesorter/docs/example-extending-defaults.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-extending-defaults.html rename to FHC-vendor/jquery-tablesorter/docs/example-extending-defaults.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-extractors-parsers.html b/FHC-vendor/jquery-tablesorter/docs/example-extractors-parsers.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-extractors-parsers.html rename to FHC-vendor/jquery-tablesorter/docs/example-extractors-parsers.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-header-column-span.html b/FHC-vendor/jquery-tablesorter/docs/example-header-column-span.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-header-column-span.html rename to FHC-vendor/jquery-tablesorter/docs/example-header-column-span.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-locale-sort.html b/FHC-vendor/jquery-tablesorter/docs/example-locale-sort.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-locale-sort.html rename to FHC-vendor/jquery-tablesorter/docs/example-locale-sort.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-meta-headers.html b/FHC-vendor/jquery-tablesorter/docs/example-meta-headers.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-meta-headers.html rename to FHC-vendor/jquery-tablesorter/docs/example-meta-headers.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-meta-parsers.html b/FHC-vendor/jquery-tablesorter/docs/example-meta-parsers.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-meta-parsers.html rename to FHC-vendor/jquery-tablesorter/docs/example-meta-parsers.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-meta-sort-list.html b/FHC-vendor/jquery-tablesorter/docs/example-meta-sort-list.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-meta-sort-list.html rename to FHC-vendor/jquery-tablesorter/docs/example-meta-sort-list.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-method-sortreset.html b/FHC-vendor/jquery-tablesorter/docs/example-method-sortreset.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-method-sortreset.html rename to FHC-vendor/jquery-tablesorter/docs/example-method-sortreset.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-multiple-tbodies.html b/FHC-vendor/jquery-tablesorter/docs/example-multiple-tbodies.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-multiple-tbodies.html rename to FHC-vendor/jquery-tablesorter/docs/example-multiple-tbodies.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-option-custom-sort.html b/FHC-vendor/jquery-tablesorter/docs/example-option-custom-sort.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-option-custom-sort.html rename to FHC-vendor/jquery-tablesorter/docs/example-option-custom-sort.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-option-date-format.html b/FHC-vendor/jquery-tablesorter/docs/example-option-date-format.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-option-date-format.html rename to FHC-vendor/jquery-tablesorter/docs/example-option-date-format.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-option-debug.html b/FHC-vendor/jquery-tablesorter/docs/example-option-debug.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-option-debug.html rename to FHC-vendor/jquery-tablesorter/docs/example-option-debug.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-option-delay-init.html b/FHC-vendor/jquery-tablesorter/docs/example-option-delay-init.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-option-delay-init.html rename to FHC-vendor/jquery-tablesorter/docs/example-option-delay-init.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-option-digits.html b/FHC-vendor/jquery-tablesorter/docs/example-option-digits.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-option-digits.html rename to FHC-vendor/jquery-tablesorter/docs/example-option-digits.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-option-render-header.html b/FHC-vendor/jquery-tablesorter/docs/example-option-render-header.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-option-render-header.html rename to FHC-vendor/jquery-tablesorter/docs/example-option-render-header.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-option-render-template.html b/FHC-vendor/jquery-tablesorter/docs/example-option-render-template.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-option-render-template.html rename to FHC-vendor/jquery-tablesorter/docs/example-option-render-template.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-option-selectorsort.html b/FHC-vendor/jquery-tablesorter/docs/example-option-selectorsort.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-option-selectorsort.html rename to FHC-vendor/jquery-tablesorter/docs/example-option-selectorsort.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-option-show-processing.html b/FHC-vendor/jquery-tablesorter/docs/example-option-show-processing.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-option-show-processing.html rename to FHC-vendor/jquery-tablesorter/docs/example-option-show-processing.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-option-sort-append.html b/FHC-vendor/jquery-tablesorter/docs/example-option-sort-append.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-option-sort-append.html rename to FHC-vendor/jquery-tablesorter/docs/example-option-sort-append.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-option-sort-empty.html b/FHC-vendor/jquery-tablesorter/docs/example-option-sort-empty.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-option-sort-empty.html rename to FHC-vendor/jquery-tablesorter/docs/example-option-sort-empty.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-option-sort-force.html b/FHC-vendor/jquery-tablesorter/docs/example-option-sort-force.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-option-sort-force.html rename to FHC-vendor/jquery-tablesorter/docs/example-option-sort-force.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-option-sort-key.html b/FHC-vendor/jquery-tablesorter/docs/example-option-sort-key.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-option-sort-key.html rename to FHC-vendor/jquery-tablesorter/docs/example-option-sort-key.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-option-sort-list.html b/FHC-vendor/jquery-tablesorter/docs/example-option-sort-list.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-option-sort-list.html rename to FHC-vendor/jquery-tablesorter/docs/example-option-sort-list.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-option-sort-order.html b/FHC-vendor/jquery-tablesorter/docs/example-option-sort-order.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-option-sort-order.html rename to FHC-vendor/jquery-tablesorter/docs/example-option-sort-order.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-option-sortreset-sortrestart.html b/FHC-vendor/jquery-tablesorter/docs/example-option-sortreset-sortrestart.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-option-sortreset-sortrestart.html rename to FHC-vendor/jquery-tablesorter/docs/example-option-sortreset-sortrestart.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-option-text-extraction.html b/FHC-vendor/jquery-tablesorter/docs/example-option-text-extraction.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-option-text-extraction.html rename to FHC-vendor/jquery-tablesorter/docs/example-option-text-extraction.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-option-textsorter-semver.html b/FHC-vendor/jquery-tablesorter/docs/example-option-textsorter-semver.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-option-textsorter-semver.html rename to FHC-vendor/jquery-tablesorter/docs/example-option-textsorter-semver.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-option-theme-metro-style.html b/FHC-vendor/jquery-tablesorter/docs/example-option-theme-metro-style.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-option-theme-metro-style.html rename to FHC-vendor/jquery-tablesorter/docs/example-option-theme-metro-style.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-options-headers-digits-strings.html b/FHC-vendor/jquery-tablesorter/docs/example-options-headers-digits-strings.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-options-headers-digits-strings.html rename to FHC-vendor/jquery-tablesorter/docs/example-options-headers-digits-strings.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-options-headers-locked.html b/FHC-vendor/jquery-tablesorter/docs/example-options-headers-locked.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-options-headers-locked.html rename to FHC-vendor/jquery-tablesorter/docs/example-options-headers-locked.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-options-headers-order.html b/FHC-vendor/jquery-tablesorter/docs/example-options-headers-order.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-options-headers-order.html rename to FHC-vendor/jquery-tablesorter/docs/example-options-headers-order.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-options-headers-parser.html b/FHC-vendor/jquery-tablesorter/docs/example-options-headers-parser.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-options-headers-parser.html rename to FHC-vendor/jquery-tablesorter/docs/example-options-headers-parser.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-options-headers.html b/FHC-vendor/jquery-tablesorter/docs/example-options-headers.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-options-headers.html rename to FHC-vendor/jquery-tablesorter/docs/example-options-headers.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-pager-ajax.html b/FHC-vendor/jquery-tablesorter/docs/example-pager-ajax.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-pager-ajax.html rename to FHC-vendor/jquery-tablesorter/docs/example-pager-ajax.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-pager-filtered.html b/FHC-vendor/jquery-tablesorter/docs/example-pager-filtered.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-pager-filtered.html rename to FHC-vendor/jquery-tablesorter/docs/example-pager-filtered.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-pager.html b/FHC-vendor/jquery-tablesorter/docs/example-pager.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-pager.html rename to FHC-vendor/jquery-tablesorter/docs/example-pager.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-advanced.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-advanced.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-advanced.html rename to FHC-vendor/jquery-tablesorter/docs/example-parsers-advanced.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-class-name.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-class-name.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-class-name.html rename to FHC-vendor/jquery-tablesorter/docs/example-parsers-class-name.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-date-range.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-date-range.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-date-range.html rename to FHC-vendor/jquery-tablesorter/docs/example-parsers-date-range.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-dates.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-dates.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-dates.html rename to FHC-vendor/jquery-tablesorter/docs/example-parsers-dates.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-duration.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-duration.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-duration.html rename to FHC-vendor/jquery-tablesorter/docs/example-parsers-duration.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-feet-inch-fraction.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-feet-inch-fraction.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-feet-inch-fraction.html rename to FHC-vendor/jquery-tablesorter/docs/example-parsers-feet-inch-fraction.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-file-type.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-file-type.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-file-type.html rename to FHC-vendor/jquery-tablesorter/docs/example-parsers-file-type.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-globalize.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-globalize.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-globalize.html rename to FHC-vendor/jquery-tablesorter/docs/example-parsers-globalize.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-ignore-articles.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-ignore-articles.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-ignore-articles.html rename to FHC-vendor/jquery-tablesorter/docs/example-parsers-ignore-articles.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-ip-address.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-ip-address.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-ip-address.html rename to FHC-vendor/jquery-tablesorter/docs/example-parsers-ip-address.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-jquery-data.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-jquery-data.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-jquery-data.html rename to FHC-vendor/jquery-tablesorter/docs/example-parsers-jquery-data.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-metric.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-metric.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-metric.html rename to FHC-vendor/jquery-tablesorter/docs/example-parsers-metric.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-named-numbers.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-named-numbers.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-named-numbers.html rename to FHC-vendor/jquery-tablesorter/docs/example-parsers-named-numbers.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-roman.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-roman.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers-roman.html rename to FHC-vendor/jquery-tablesorter/docs/example-parsers-roman.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-parsers.html rename to FHC-vendor/jquery-tablesorter/docs/example-parsers.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-trigger-sort.html b/FHC-vendor/jquery-tablesorter/docs/example-trigger-sort.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-trigger-sort.html rename to FHC-vendor/jquery-tablesorter/docs/example-trigger-sort.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-triggers.html b/FHC-vendor/jquery-tablesorter/docs/example-triggers.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-triggers.html rename to FHC-vendor/jquery-tablesorter/docs/example-triggers.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-update-all.html b/FHC-vendor/jquery-tablesorter/docs/example-update-all.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-update-all.html rename to FHC-vendor/jquery-tablesorter/docs/example-update-all.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-update-cell.html b/FHC-vendor/jquery-tablesorter/docs/example-update-cell.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-update-cell.html rename to FHC-vendor/jquery-tablesorter/docs/example-update-cell.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-align-character.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-align-character.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-align-character.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-align-character.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-bootstrap-theme-v2.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-bootstrap-theme-v2.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-bootstrap-theme-v2.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-bootstrap-theme-v2.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-bootstrap-theme.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-bootstrap-theme.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-bootstrap-theme.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-bootstrap-theme.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-build-table.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-build-table.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-build-table.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-build-table.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-chart.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-chart.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-chart.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-chart.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-column-selector.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-column-selector.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-column-selector.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-column-selector.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-columns.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-columns.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-columns.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-columns.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-css-sticky-header.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-css-sticky-header.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-css-sticky-header.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-css-sticky-header.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-editable.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-editable.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-editable.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-editable.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-any-match.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-any-match.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-any-match.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-filter-any-match.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-childrows.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-childrows.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-childrows.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-filter-childrows.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-custom-search.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-custom-search.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-custom-search.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-filter-custom-search.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-custom-search2.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-custom-search2.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-custom-search2.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-filter-custom-search2.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-custom.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-custom.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-custom.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-filter-custom.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-external-inputs.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-external-inputs.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-external-inputs.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-filter-external-inputs.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-formatter-1.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-formatter-1.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-formatter-1.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-filter-formatter-1.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-formatter-2.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-formatter-2.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-formatter-2.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-filter-formatter-2.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-formatter-select2.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-formatter-select2.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-formatter-select2.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-filter-formatter-select2.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-selectmenu.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-selectmenu.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-selectmenu.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-filter-selectmenu.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-filter.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-filter.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-filter.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-filter.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-formatter.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-formatter.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-formatter.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-formatter.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-grouping-filter-childrows.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-grouping-filter-childrows.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-grouping-filter-childrows.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-grouping-filter-childrows.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-grouping.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-grouping.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-grouping.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-grouping.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-header-titles.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-header-titles.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-header-titles.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-header-titles.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-lazyload.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-lazyload.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-lazyload.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-lazyload.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-math.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-math.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-math.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-math.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-output.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-output.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-output.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-output.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-pager-ajax.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-pager-ajax.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-pager-ajax.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-pager-ajax.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-pager.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-pager.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-pager.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-pager.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-print.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-print.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-print.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-print.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-reflow.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-reflow.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-reflow.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-reflow.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-reflow1.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-reflow1.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-reflow1.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-reflow1.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-reflow2.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-reflow2.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-reflow2.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-reflow2.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-reflow3.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-reflow3.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-reflow3.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-reflow3.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-resizable.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-resizable.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-resizable.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-resizable.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-savesort.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-savesort.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-savesort.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-savesort.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-scroller.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-scroller.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-scroller.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-scroller.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-sort-tbodies.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-sort-tbodies.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-sort-tbodies.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-sort-tbodies.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-sort-to-hash.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-sort-to-hash.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-sort-to-hash.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-sort-to-hash.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-static-row.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-static-row.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-static-row.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-static-row.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-sticky-header.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-sticky-header.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-sticky-header.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-sticky-header.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-toggle-tablesorter.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-toggle-tablesorter.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-toggle-tablesorter.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-toggle-tablesorter.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-ui-theme.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-ui-theme.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-ui-theme.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-ui-theme.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-view.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-view.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-view.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-view.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-zebra.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-zebra.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widget-zebra.html rename to FHC-vendor/jquery-tablesorter/docs/example-widget-zebra.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/example-widgets.html b/FHC-vendor/jquery-tablesorter/docs/example-widgets.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/example-widgets.html rename to FHC-vendor/jquery-tablesorter/docs/example-widgets.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.eot b/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.eot rename to FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.eot diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.svg b/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.svg rename to FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.svg diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.ttf b/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.ttf rename to FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.ttf diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.woff b/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.woff rename to FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.woff diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.woff2 b/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.woff2 rename to FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.woff2 diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/img/external.png b/FHC-vendor/jquery-tablesorter/docs/img/external.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/img/external.png rename to FHC-vendor/jquery-tablesorter/docs/img/external.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/img/grid-default-thumb.png b/FHC-vendor/jquery-tablesorter/docs/img/grid-default-thumb.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/img/grid-default-thumb.png rename to FHC-vendor/jquery-tablesorter/docs/img/grid-default-thumb.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/img/link.png b/FHC-vendor/jquery-tablesorter/docs/img/link.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/img/link.png rename to FHC-vendor/jquery-tablesorter/docs/img/link.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/img/new-product-banner.png b/FHC-vendor/jquery-tablesorter/docs/img/new-product-banner.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/img/new-product-banner.png rename to FHC-vendor/jquery-tablesorter/docs/img/new-product-banner.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/img/sale-banner.png b/FHC-vendor/jquery-tablesorter/docs/img/sale-banner.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/img/sale-banner.png rename to FHC-vendor/jquery-tablesorter/docs/img/sale-banner.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/img/screens-blue.png b/FHC-vendor/jquery-tablesorter/docs/img/screens-blue.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/img/screens-blue.png rename to FHC-vendor/jquery-tablesorter/docs/img/screens-blue.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/img/screens.png b/FHC-vendor/jquery-tablesorter/docs/img/screens.png similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/img/screens.png rename to FHC-vendor/jquery-tablesorter/docs/img/screens.png diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/index.html b/FHC-vendor/jquery-tablesorter/docs/index.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/index.html rename to FHC-vendor/jquery-tablesorter/docs/index.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/js/bootstrap.min.js b/FHC-vendor/jquery-tablesorter/docs/js/bootstrap.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/js/bootstrap.min.js rename to FHC-vendor/jquery-tablesorter/docs/js/bootstrap.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/js/chili/jquery.chili-2.2.js b/FHC-vendor/jquery-tablesorter/docs/js/chili/jquery.chili-2.2.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/js/chili/jquery.chili-2.2.js rename to FHC-vendor/jquery-tablesorter/docs/js/chili/jquery.chili-2.2.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/js/chili/recipes.js b/FHC-vendor/jquery-tablesorter/docs/js/chili/recipes.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/js/chili/recipes.js rename to FHC-vendor/jquery-tablesorter/docs/js/chili/recipes.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/js/demo-build-table.js b/FHC-vendor/jquery-tablesorter/docs/js/demo-build-table.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/js/demo-build-table.js rename to FHC-vendor/jquery-tablesorter/docs/js/demo-build-table.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/js/docs.js b/FHC-vendor/jquery-tablesorter/docs/js/docs.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/js/docs.js rename to FHC-vendor/jquery-tablesorter/docs/js/docs.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/js/jquery-1.2.6.min.js b/FHC-vendor/jquery-tablesorter/docs/js/jquery-1.2.6.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/js/jquery-1.2.6.min.js rename to FHC-vendor/jquery-tablesorter/docs/js/jquery-1.2.6.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/js/jquery-1.4.4.min.js b/FHC-vendor/jquery-tablesorter/docs/js/jquery-1.4.4.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/js/jquery-1.4.4.min.js rename to FHC-vendor/jquery-tablesorter/docs/js/jquery-1.4.4.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/js/jquery-latest.min.js b/FHC-vendor/jquery-tablesorter/docs/js/jquery-latest.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/js/jquery-latest.min.js rename to FHC-vendor/jquery-tablesorter/docs/js/jquery-latest.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/js/jquery-ui.min.js b/FHC-vendor/jquery-tablesorter/docs/js/jquery-ui.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/js/jquery-ui.min.js rename to FHC-vendor/jquery-tablesorter/docs/js/jquery-ui.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/js/jquery.jui_theme_switch.min.js b/FHC-vendor/jquery-tablesorter/docs/js/jquery.jui_theme_switch.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/js/jquery.jui_theme_switch.min.js rename to FHC-vendor/jquery-tablesorter/docs/js/jquery.jui_theme_switch.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/js/jquery.magnific-popup.min.js b/FHC-vendor/jquery-tablesorter/docs/js/jquery.magnific-popup.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/js/jquery.magnific-popup.min.js rename to FHC-vendor/jquery-tablesorter/docs/js/jquery.magnific-popup.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/js/jquery.tipsy.min.js b/FHC-vendor/jquery-tablesorter/docs/js/jquery.tipsy.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/js/jquery.tipsy.min.js rename to FHC-vendor/jquery-tablesorter/docs/js/jquery.tipsy.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/js/prettify.js b/FHC-vendor/jquery-tablesorter/docs/js/prettify.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/js/prettify.js rename to FHC-vendor/jquery-tablesorter/docs/js/prettify.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/js/rangeslider.min.js b/FHC-vendor/jquery-tablesorter/docs/js/rangeslider.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/js/rangeslider.min.js rename to FHC-vendor/jquery-tablesorter/docs/js/rangeslider.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/js/search-ie.js b/FHC-vendor/jquery-tablesorter/docs/js/search-ie.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/js/search-ie.js rename to FHC-vendor/jquery-tablesorter/docs/js/search-ie.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/js/search.js b/FHC-vendor/jquery-tablesorter/docs/js/search.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/js/search.js rename to FHC-vendor/jquery-tablesorter/docs/js/search.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/js/select2-3.4.6.min.js b/FHC-vendor/jquery-tablesorter/docs/js/select2-3.4.6.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/js/select2-3.4.6.min.js rename to FHC-vendor/jquery-tablesorter/docs/js/select2-3.4.6.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/js/sugar.min.js b/FHC-vendor/jquery-tablesorter/docs/js/sugar.min.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/js/sugar.min.js rename to FHC-vendor/jquery-tablesorter/docs/js/sugar.min.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/docs/themes.html b/FHC-vendor/jquery-tablesorter/docs/themes.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/docs/themes.html rename to FHC-vendor/jquery-tablesorter/docs/themes.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/example.json b/FHC-vendor/jquery-tablesorter/example.json similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/example.json rename to FHC-vendor/jquery-tablesorter/example.json diff --git a/vendor/FHC-vendor/jquery-tablesorter/index.html b/FHC-vendor/jquery-tablesorter/index.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/index.html rename to FHC-vendor/jquery-tablesorter/index.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/extras/jquery.dragtable.mod.js b/FHC-vendor/jquery-tablesorter/js/extras/jquery.dragtable.mod.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/extras/jquery.dragtable.mod.js rename to FHC-vendor/jquery-tablesorter/js/extras/jquery.dragtable.mod.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/extras/jquery.metadata.js b/FHC-vendor/jquery-tablesorter/js/extras/jquery.metadata.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/extras/jquery.metadata.js rename to FHC-vendor/jquery-tablesorter/js/extras/jquery.metadata.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/extras/semver-mod.js b/FHC-vendor/jquery-tablesorter/js/extras/semver-mod.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/extras/semver-mod.js rename to FHC-vendor/jquery-tablesorter/js/extras/semver-mod.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/extras/semver.js b/FHC-vendor/jquery-tablesorter/js/extras/semver.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/extras/semver.js rename to FHC-vendor/jquery-tablesorter/js/extras/semver.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.combined.js b/FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.combined.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.combined.js rename to FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.combined.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.js b/FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.js rename to FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.widgets.js b/FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.widgets.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.widgets.js rename to FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.widgets.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-extract.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-extract.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-extract.js rename to FHC-vendor/jquery-tablesorter/js/parsers/parser-date-extract.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-iso8601.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-iso8601.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-iso8601.js rename to FHC-vendor/jquery-tablesorter/js/parsers/parser-date-iso8601.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-month.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-month.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-month.js rename to FHC-vendor/jquery-tablesorter/js/parsers/parser-date-month.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-range.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-range.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-range.js rename to FHC-vendor/jquery-tablesorter/js/parsers/parser-date-range.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-two-digit-year.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-two-digit-year.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-two-digit-year.js rename to FHC-vendor/jquery-tablesorter/js/parsers/parser-date-two-digit-year.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-weekday.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-weekday.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-weekday.js rename to FHC-vendor/jquery-tablesorter/js/parsers/parser-date-weekday.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-date.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-date.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-date.js rename to FHC-vendor/jquery-tablesorter/js/parsers/parser-date.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-duration.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-duration.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-duration.js rename to FHC-vendor/jquery-tablesorter/js/parsers/parser-duration.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-feet-inch-fraction.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-feet-inch-fraction.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-feet-inch-fraction.js rename to FHC-vendor/jquery-tablesorter/js/parsers/parser-feet-inch-fraction.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-file-type.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-file-type.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-file-type.js rename to FHC-vendor/jquery-tablesorter/js/parsers/parser-file-type.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-globalize.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-globalize.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-globalize.js rename to FHC-vendor/jquery-tablesorter/js/parsers/parser-globalize.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-ignore-articles.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-ignore-articles.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-ignore-articles.js rename to FHC-vendor/jquery-tablesorter/js/parsers/parser-ignore-articles.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-image.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-image.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-image.js rename to FHC-vendor/jquery-tablesorter/js/parsers/parser-image.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-input-select.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-input-select.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-input-select.js rename to FHC-vendor/jquery-tablesorter/js/parsers/parser-input-select.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-metric.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-metric.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-metric.js rename to FHC-vendor/jquery-tablesorter/js/parsers/parser-metric.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-named-numbers.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-named-numbers.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-named-numbers.js rename to FHC-vendor/jquery-tablesorter/js/parsers/parser-named-numbers.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-network.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-network.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-network.js rename to FHC-vendor/jquery-tablesorter/js/parsers/parser-network.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-roman.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-roman.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/parsers/parser-roman.js rename to FHC-vendor/jquery-tablesorter/js/parsers/parser-roman.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-alignChar.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-alignChar.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-alignChar.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-alignChar.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-build-table.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-build-table.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-build-table.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-build-table.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-chart.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-chart.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-chart.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-chart.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-columnSelector.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-columnSelector.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-columnSelector.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-columnSelector.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-columns.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-columns.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-columns.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-columns.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-cssStickyHeaders.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-cssStickyHeaders.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-cssStickyHeaders.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-cssStickyHeaders.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-editable.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-editable.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-editable.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-editable.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter-formatter-html5.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter-formatter-html5.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter-formatter-html5.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-filter-formatter-html5.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter-formatter-jui.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter-formatter-jui.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter-formatter-jui.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-filter-formatter-jui.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter-formatter-select2.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter-formatter-select2.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter-formatter-select2.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-filter-formatter-select2.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter-type-insideRange.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter-type-insideRange.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter-type-insideRange.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-filter-type-insideRange.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-filter.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-formatter.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-formatter.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-formatter.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-formatter.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-grouping.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-grouping.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-grouping.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-grouping.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-headerTitles.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-headerTitles.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-headerTitles.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-headerTitles.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-lazyload.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-lazyload.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-lazyload.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-lazyload.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-math.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-math.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-math.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-math.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-output.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-output.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-output.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-output.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-pager.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-pager.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-pager.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-pager.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-print.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-print.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-print.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-print.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-reflow.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-reflow.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-reflow.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-reflow.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-repeatheaders.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-repeatheaders.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-repeatheaders.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-repeatheaders.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-resizable.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-resizable.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-resizable.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-resizable.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-saveSort.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-saveSort.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-saveSort.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-saveSort.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-scroller.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-scroller.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-scroller.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-scroller.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-sort2Hash.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-sort2Hash.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-sort2Hash.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-sort2Hash.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-sortTbodies.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-sortTbodies.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-sortTbodies.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-sortTbodies.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-staticRow.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-staticRow.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-staticRow.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-staticRow.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-stickyHeaders.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-stickyHeaders.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-stickyHeaders.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-stickyHeaders.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-storage.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-storage.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-storage.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-storage.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-toggle.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-toggle.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-toggle.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-toggle.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-uitheme.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-uitheme.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-uitheme.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-uitheme.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-view.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-view.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/js/widgets/widget-view.js rename to FHC-vendor/jquery-tablesorter/js/widgets/widget-view.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/package.json b/FHC-vendor/jquery-tablesorter/package.json similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/package.json rename to FHC-vendor/jquery-tablesorter/package.json diff --git a/vendor/FHC-vendor/jquery-tablesorter/tablesorter.jquery.json b/FHC-vendor/jquery-tablesorter/tablesorter.jquery.json similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/tablesorter.jquery.json rename to FHC-vendor/jquery-tablesorter/tablesorter.jquery.json diff --git a/vendor/FHC-vendor/jquery-tablesorter/test.html b/FHC-vendor/jquery-tablesorter/test.html similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/test.html rename to FHC-vendor/jquery-tablesorter/test.html diff --git a/vendor/FHC-vendor/jquery-tablesorter/testing/qunit-1.20.0.css b/FHC-vendor/jquery-tablesorter/testing/qunit-1.20.0.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/testing/qunit-1.20.0.css rename to FHC-vendor/jquery-tablesorter/testing/qunit-1.20.0.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/testing/qunit-1.20.0.js b/FHC-vendor/jquery-tablesorter/testing/qunit-1.20.0.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/testing/qunit-1.20.0.js rename to FHC-vendor/jquery-tablesorter/testing/qunit-1.20.0.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/testing/testing-ipv6.js b/FHC-vendor/jquery-tablesorter/testing/testing-ipv6.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/testing/testing-ipv6.js rename to FHC-vendor/jquery-tablesorter/testing/testing-ipv6.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/testing/testing-widgets.js b/FHC-vendor/jquery-tablesorter/testing/testing-widgets.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/testing/testing-widgets.js rename to FHC-vendor/jquery-tablesorter/testing/testing-widgets.js diff --git a/vendor/FHC-vendor/jquery-tablesorter/testing/testing.css b/FHC-vendor/jquery-tablesorter/testing/testing.css similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/testing/testing.css rename to FHC-vendor/jquery-tablesorter/testing/testing.css diff --git a/vendor/FHC-vendor/jquery-tablesorter/testing/testing.js b/FHC-vendor/jquery-tablesorter/testing/testing.js similarity index 100% rename from vendor/FHC-vendor/jquery-tablesorter/testing/testing.js rename to FHC-vendor/jquery-tablesorter/testing/testing.js diff --git a/application/config/constants.php b/application/config/constants.php index ac2ecc649..621f58ecb 100644 --- a/application/config/constants.php +++ b/application/config/constants.php @@ -64,7 +64,9 @@ define('LDAP_TOO_MANY_USER_DN', 11); |-------------------------------------------------------------------------- */ define('LANG_SESSION_NAME', 'LANGUAGE'); -define('LANG_SESSION_INDEXES', 'LANGUAGE_INDEXES'); +define('LANG_SESSION_INDEXES', 'INDEXES'); +define('LANG_SESSION_ACTIVE_LANGUAGES', 'ACTIVE_LANGUAGES'); +define('LANG_SESSION_CURRENT_LANGUAGE', 'sprache'); // NOTE: it is not under LANG_SESSION_NAME /* |-------------------------------------------------------------------------- diff --git a/application/controllers/Redirect.php b/application/controllers/Redirect.php index 8a24c590d..8a107b4b3 100644 --- a/application/controllers/Redirect.php +++ b/application/controllers/Redirect.php @@ -37,12 +37,13 @@ class Redirect extends FHC_Controller public function redirectByToken($token) { $msg = $this->MessageTokenModel->getMessageByToken($token); - if ($msg->error) + if (isError($msg)) { - show_error($msg->retval); + show_error(getError($msg)); } - $oe_kurzbz = $msg->retval[0]->oe_kurzbz; + $oe_kurzbz = null; + if (hasData($msg)) $oe_kurzbz = getData($msg)[0]->oe_kurzbz; if ($oe_kurzbz != null && $oe_kurzbz != '') { @@ -51,7 +52,7 @@ class Redirect extends FHC_Controller $getOERoot = $this->MessageTokenModel->getOERoot($oe_kurzbz); if (isSuccess($getOERoot)) // If no errors occurred { - $organisationRoot = $getOERoot->retval; + $organisationRoot = getData($getOERoot); } else { diff --git a/application/controllers/ViewMessage.php b/application/controllers/ViewMessage.php index 3c22c8977..4e076e99d 100644 --- a/application/controllers/ViewMessage.php +++ b/application/controllers/ViewMessage.php @@ -43,19 +43,17 @@ class ViewMessage extends FHC_Controller public function toHTML($token) { $msg = $this->MessageTokenModel->getMessageByToken($token); - - if ($msg->error) + if (isError($msg)) { - show_error(getData($msg)); + show_error(getError($msg)); } if (is_array(getData($msg)) && count(getData($msg)) > 0) { $setReadMessageStatusByToken = $this->MessageTokenModel->setReadMessageStatusByToken($token); - if (isError($setReadMessageStatusByToken)) { - show_error($msg->$setReadMessageStatusByToken); + show_error(getError($setReadMessageStatusByToken)); } $sender_id = getData($msg)[0]->sender_id; @@ -64,9 +62,9 @@ class ViewMessage extends FHC_Controller // To decide how to change the redirection $isEmployee = $this->MessageTokenModel->isEmployee($receiver_id); - if (!is_bool($isEmployee) && isError($isEmployee)) + if (isError($isEmployee)) { - show_error($isEmployee); + show_error(getError($isEmployee)); } if($this->config->item('redirect_view_message_url') != '') @@ -78,7 +76,7 @@ class ViewMessage extends FHC_Controller 'sender_id' => $sender_id, 'sender' => getData($sender)[0], 'message' => getData($msg)[0], - 'isEmployee' => $isEmployee, + 'isEmployee' => hasData($isEmployee), 'href' => $href ); @@ -144,7 +142,7 @@ class ViewMessage extends FHC_Controller $sendReply = $this->CLMessagesModel->sendReply($subject, $body, $persons, $relationmessage_id, $token); if (isError($sendReply)) { - show_error(getData($sendReply)); + show_error(getError($sendReply)); } $this->load->view('system/messages/messageReplySent'); diff --git a/application/controllers/crm/Statusgrund.php b/application/controllers/crm/Statusgrund.php index 472270ef3..344ac06dc 100644 --- a/application/controllers/crm/Statusgrund.php +++ b/application/controllers/crm/Statusgrund.php @@ -35,7 +35,7 @@ class Statusgrund extends Auth_Controller $status = $this->StatusModel->load(); if ($status->error) { - show_error($status->retval); + show_error(getError($status)); } $data = array ( @@ -50,7 +50,7 @@ class Statusgrund extends Auth_Controller $statusGrund = $this->StatusgrundModel->loadWhere(array("status_kurzbz" => $status_kurzbz)); if ($statusGrund->error) { - show_error($statusGrund->retval); + show_error(getError($statusGrund)); } $data = array ( @@ -66,13 +66,13 @@ class Statusgrund extends Auth_Controller $statusGrund = $this->StatusgrundModel->load($statusgrund_id); if ($statusGrund->error) { - show_error($statusGrund->retval); + show_error(getError($statusGrund)); } $sprache = $this->SpracheModel->loadWhere(array('content' => true)); if ($sprache->error) { - show_error($sprache->retval); + show_error(getError($sprache)); } $data = array ( @@ -89,13 +89,13 @@ class Statusgrund extends Auth_Controller $status = $this->StatusModel->load($status_id); if ($status->error) { - show_error($status->retval); + show_error(getError($status)); } $sprache = $this->SpracheModel->loadWhere(array('content' => true)); if ($sprache->error) { - show_error($sprache->retval); + show_error(getError($sprache)); } $data = array ( @@ -112,7 +112,7 @@ class Statusgrund extends Auth_Controller $sprache = $this->SpracheModel->loadWhere(array('content' => true)); if ($sprache->error) { - show_error($sprache->retval); + show_error(getError($sprache)); } $data = array ( @@ -184,7 +184,7 @@ class Statusgrund extends Auth_Controller if ($statusgrund->error) { - show_error($statusgrund->retval); + show_error(getError($statusgrund)); } redirect("/crm/Statusgrund/editGrund/" . $statusgrund_id . "/" . true); @@ -252,7 +252,7 @@ class Statusgrund extends Auth_Controller if ($statusgrund->error) { - show_error($statusgrund->retval); + show_error(getError($statusgrund)); } redirect("/crm/Statusgrund/editGrund/" . $statusgrund->retval . "/" . true); @@ -297,7 +297,7 @@ class Statusgrund extends Auth_Controller if ($status->error) { - show_error($status->retval); + show_error(getError($status)); } redirect("/crm/Statusgrund/editStatus/" . $status_kurzbz . "/" . true); diff --git a/application/controllers/jobs/AmpelMail.php b/application/controllers/jobs/AmpelMail.php index e29cac8fd..67acd76d0 100644 --- a/application/controllers/jobs/AmpelMail.php +++ b/application/controllers/jobs/AmpelMail.php @@ -121,13 +121,13 @@ class AmpelMail extends CLI_Controller } elseif (isError($result_ampel_user)) { - show_error($result_ampel_user->error); + show_error(getError($result_ampel_user)); } } } elseif (isError($result_active_ampeln)) { - show_error($result_active_ampeln->error); + show_error(getError($result_active_ampeln)); } // Send mails for new ampeln merged by user diff --git a/application/controllers/jobs/Prestudentstatus.php b/application/controllers/jobs/Prestudentstatus.php index e5b015753..a3b765f07 100644 --- a/application/controllers/jobs/Prestudentstatus.php +++ b/application/controllers/jobs/Prestudentstatus.php @@ -109,7 +109,7 @@ class Prestudentstatus extends CLI_Controller } else { - show_error($status->retval); + show_error(getError($status)); } echo "Corrected:".$sum_corrected."\n"; echo "Not Corrected:".$sum_notcorrected."\n"; diff --git a/application/controllers/jobs/ReihungstestJob.php b/application/controllers/jobs/ReihungstestJob.php index 5aa355b5f..84a5fe614 100644 --- a/application/controllers/jobs/ReihungstestJob.php +++ b/application/controllers/jobs/ReihungstestJob.php @@ -35,7 +35,7 @@ class ReihungstestJob extends CLI_Controller } elseif (isError($result)) { - show_error($result->error); + show_error(getError($result)); } // Get free places @@ -48,7 +48,7 @@ class ReihungstestJob extends CLI_Controller } elseif (isError($result)) { - show_error($result->error); + show_error(getError($result)); } // Prepare data for mail template 'ReihungstestJob' @@ -103,7 +103,7 @@ class ReihungstestJob extends CLI_Controller } elseif (isError($result)) { - show_error($result->error); + show_error(getError($result)); } $applicants_arr = array(); @@ -118,7 +118,7 @@ class ReihungstestJob extends CLI_Controller } elseif (isError($applicants)) { - show_error($applicants->error); + show_error(getError($applicants)); } // Get all Bachelor-Degree-Programs with Mailadress @@ -131,7 +131,7 @@ class ReihungstestJob extends CLI_Controller } elseif (isError($bachelorStudiengeange)) { - show_error($bachelorStudiengeange->error); + show_error(getError($bachelorStudiengeange)); } // If a person ist an applicant of this degree-program send mail with application data @@ -222,7 +222,7 @@ class ReihungstestJob extends CLI_Controller } elseif (isError($result)) { - show_error($result->error); + show_error(getError($result)); } $studiengang = ''; @@ -382,7 +382,7 @@ class ReihungstestJob extends CLI_Controller } elseif (isError($resultTestsOnDate)) { - show_error($resultTestsOnDate->error); + show_error(getError($resultTestsOnDate)); } } @@ -399,7 +399,7 @@ class ReihungstestJob extends CLI_Controller } elseif (isError($applicants)) { - show_error($applicants->error); + show_error(getError($applicants)); } foreach ($applicants_arr as $applicant) @@ -479,7 +479,7 @@ class ReihungstestJob extends CLI_Controller } elseif (isError($yesterdays_applicants_arr)) { - show_error($yesterdays_applicants_arr->error); + show_error(getError($yesterdays_applicants_arr)); } // Get all other prestudenten of the given persons. @@ -503,7 +503,7 @@ class ReihungstestJob extends CLI_Controller // Store them, if they have already absolved a placement test in the same study term they have applied for. $placement_absolvents_arr = $this->PrestudentModel->loadWhere(' person_id IN (' . implode(', ', $person_id_arr) . ') AND - typ = \'b\' AND + typ = \'b\' AND teilgenommen = \'t\' AND tbl_reihungstest.studiensemester_kurzbz IN ( SELECT @@ -548,7 +548,7 @@ class ReihungstestJob extends CLI_Controller $to = ''; // mail recipient (stg assistance) $content_arr = array(); // url paths to the new applicants $base_link = base_url('vilesci/stammdaten/auswertung_fhtw.php'); - + $i = 0; // loop counter $len = count($result_arr); @@ -569,7 +569,7 @@ class ReihungstestJob extends CLI_Controller { // Prepare content for mail template $content_data_arr = $this->_getContentDataNewApplicant($content_arr); - + // Send mail sendSanchoMail( 'BewerberNachReihungstest', @@ -786,4 +786,3 @@ class ReihungstestJob extends CLI_Controller } } } - diff --git a/application/controllers/lehre/lehrauftrag/Lehrauftrag.php b/application/controllers/lehre/lehrauftrag/Lehrauftrag.php index db20b6897..dade1fb21 100644 --- a/application/controllers/lehre/lehrauftrag/Lehrauftrag.php +++ b/application/controllers/lehre/lehrauftrag/Lehrauftrag.php @@ -26,7 +26,7 @@ class Lehrauftrag extends Auth_Controller array( 'index' => 'lehre/lehrauftrag_bestellen:r', 'orderLehrauftrag' => 'lehre/lehrauftrag_bestellen:rw', - 'Dashboard' => array('lehre/lehrauftrag_bestellen:r', 'lehre/lehrauftrag_erteilen:rw'), + 'Dashboard' => array('lehre/lehrauftrag_bestellen:r', 'lehre/lehrauftrag_erteilen:r'), 'LehrendeUebersicht' => array('lehre/lehrauftrag_erteilen:r') ) ); @@ -107,14 +107,14 @@ class Lehrauftrag extends Auth_Controller $studiensemester_kurzbz = $this->input->get('studiensemester'); // if provided by selected studiensemester if (is_null($studiensemester_kurzbz)) // else set next studiensemester as default value { - $studiensemester = $this->StudiensemesterModel->getNext(); + $studiensemester = $this->StudiensemesterModel->getAktOrNextSemester(); if (hasData($studiensemester)) { $studiensemester_kurzbz = $studiensemester->retval[0]->studiensemester_kurzbz; } elseif (isError($studiensemester)) { - show_error($studiensemester->error); + show_error(getError($studiensemester)); } } @@ -154,8 +154,9 @@ class Lehrauftrag extends Auth_Controller $studiengang_kz = (isset($lehrauftrag->studiengang_kz)) ? $lehrauftrag->studiengang_kz : null; // Check if user is entitled to order this Lehrauftrag - if (!$this->permissionlib->isBerechtigt(self::BERECHTIGUNG_LEHRAUFTRAG_BESTELLEN, 'suid', $studiengang_kz)){ - show_error('Keine Bestellberechtigung für diesen Studiengang: '. $studiengang_kz); + if (!$this->permissionlib->isBerechtigt(self::BERECHTIGUNG_LEHRAUFTRAG_BESTELLEN, 'suid', $studiengang_kz)) + { + return $this->outputJsonError('Sie haben keine Bestellberechtigung für diesen Studiengang: '. $studiengang_kz); } // update contract if contract exists and the betrag was changed @@ -168,6 +169,10 @@ class Lehrauftrag extends Auth_Controller $vertrag_betrag = $result[0]->betrag; $vertrag_stunden = $result[0]->vertragsstunden; } + elseif (isError($result)) + { + return $this->outputJsonError('Fehler beim Laden des Vertrags'); + } $hasChanged = ($betrag != floatval($vertrag_betrag) || $stunden != $vertrag_stunden) ? true : false; @@ -190,6 +195,10 @@ class Lehrauftrag extends Auth_Controller 'erteilt' => null ); } + else + { + return $this->outputJsonError('Fehler beim Vertragsupdate'); + } } } // else save new contract @@ -215,6 +224,14 @@ class Lehrauftrag extends Auth_Controller 'vertrag_stunden' => $stunden ); } + elseif (isError($result) && $result->retval) + { + return $this->outputJsonError($result->retval); + } + else + { + return $this->outputJsonError('Fehler beim Speichern des Vertrags'); + } $new_lehrvertrag_data_arr[] = array( 'studiensemester_kurzbz' => $lehrauftrag->studiensemester_kurzbz, @@ -224,6 +241,10 @@ class Lehrauftrag extends Auth_Controller } } } + else + { + return $this->outputJsonError('Fehler beim Übertragen der Daten.'); + } if (isset($json) && !isEmptyArray($json)) { diff --git a/application/controllers/lehre/lehrauftrag/LehrauftragAkzeptieren.php b/application/controllers/lehre/lehrauftrag/LehrauftragAkzeptieren.php index 31e2ffb31..4fc0a879b 100644 --- a/application/controllers/lehre/lehrauftrag/LehrauftragAkzeptieren.php +++ b/application/controllers/lehre/lehrauftrag/LehrauftragAkzeptieren.php @@ -71,14 +71,14 @@ class LehrauftragAkzeptieren extends Auth_Controller $studiensemester_kurzbz = $this->input->get('studiensemester'); // if provided by selected studiensemester if (is_null($studiensemester_kurzbz)) // else set next studiensemester as default value { - $studiensemester = $this->StudiensemesterModel->getNext(); + $studiensemester = $this->StudiensemesterModel->getAktOrNextSemester(); if (hasData($studiensemester)) { $studiensemester_kurzbz = $studiensemester->retval[0]->studiensemester_kurzbz; } elseif (isError($studiensemester)) { - show_error($studiensemester->error); + show_error(getError($studiensemester)); } } @@ -107,7 +107,7 @@ class LehrauftragAkzeptieren extends Auth_Controller } else { - show_error('Password is missing'); + return $this->outputJsonError('Passwort fehlt'); } // Loop through lehraufträge @@ -131,24 +131,33 @@ class LehrauftragAkzeptieren extends Auth_Controller if ($result = getData($this->BenutzerModel->getFromPersonId($result[0]->person_id))) { // * finally check uid of contract against the logged in user - if ($result[0]->uid != $this->_uid) + $account_found = false; + foreach($result as $row_accounts) + { + if($row_accounts->uid == $this->_uid) + { + $account_found = true; + } + } + + if (!$account_found) { - show_error('Keine Berechtigung für diesen Vertrag'); + return $this->outputJsonError('Sie haben keine Berechtigung für einen Vertrag'); } } else { - show_error($result->retval); + return $this->outputJsonError('Fehler beim Laden der Benutzerdaten'); } } else { - show_error($result->retval); + return $this->outputJsonError('Fehler beim Laden des Vertrags'); } // Set status to accepted $result = $this->VertragvertragsstatusModel->setStatus($vertrag_id, $this->_uid, 'akzeptiert'); - + if ($result->retval) { $json []= array( @@ -156,6 +165,10 @@ class LehrauftragAkzeptieren extends Auth_Controller 'akzeptiert' => date('Y-m-d') ); } + else + { + return $this->outputJsonError($result->retval); + } } // Output json to ajax @@ -164,25 +177,29 @@ class LehrauftragAkzeptieren extends Auth_Controller $this->outputJsonSuccess($json); } } + else + { + return $this->outputJsonError('Fehler beim Übertragen der Daten.'); + } } - + /** - * Check if lectors latest active Verwendung has inkludierte Lehre + * Check if lectors latest Verwendung has inkludierte Lehre * - inkludierte_lehre is null OR 0: freelancer lector -> has NO inkludierte Lehre * - inkludierte_lehre -1: fix employed lector -> has inkludierte Lehre (all inclusive) * - inkludierte_lehre > 0: fix employed lector -> has inkludierte Lehre (value is amount of hours included) */ public function checkInkludierteLehre() { - $result = $this->BisverwendungModel->getLast($this->_uid); - + $result = $this->BisverwendungModel->getLast($this->_uid, false); + if (hasData($result)) { $this->outputJsonSuccess(!is_null($result->retval[0]->inkludierte_lehre) && $result->retval[0]->inkludierte_lehre != 0); } else { - $this->outputJsonError($result->retval); + $this->outputJsonError(getError($result)); } } diff --git a/application/controllers/lehre/lehrauftrag/LehrauftragErteilen.php b/application/controllers/lehre/lehrauftrag/LehrauftragErteilen.php index 1fe5a924a..b339c81a4 100644 --- a/application/controllers/lehre/lehrauftrag/LehrauftragErteilen.php +++ b/application/controllers/lehre/lehrauftrag/LehrauftragErteilen.php @@ -90,14 +90,14 @@ class LehrauftragErteilen extends Auth_Controller $studiensemester_kurzbz = $this->input->get('studiensemester'); // if provided by selected studiensemester if (is_null($studiensemester_kurzbz)) // else set next studiensemester as default value { - $studiensemester = $this->StudiensemesterModel->getNext(); + $studiensemester = $this->StudiensemesterModel->getAktOrNextSemester(); if (hasData($studiensemester)) { $studiensemester_kurzbz = $studiensemester->retval[0]->studiensemester_kurzbz; } elseif (isError($studiensemester)) { - show_error($studiensemester->error); + show_error(getError($studiensemester)); } } @@ -122,10 +122,10 @@ class LehrauftragErteilen extends Auth_Controller public function approveLehrauftrag() { $lehrauftrag_arr = json_decode($this->input->post('selected_data')); - - if (is_array($lehrauftrag_arr)) + + if (is_array($lehrauftrag_arr)) { - foreach ($lehrauftrag_arr as $lehrauftrag) + foreach ($lehrauftrag_arr as $lehrauftrag) { $mitarbeiter_uid = (isset($lehrauftrag->mitarbeiter_uid)) ? $lehrauftrag->mitarbeiter_uid : null; $vertrag_id = (isset($lehrauftrag->vertrag_id)) ? $lehrauftrag->vertrag_id : null; @@ -146,31 +146,42 @@ class LehrauftragErteilen extends Auth_Controller } elseif (isError(($result))) { - show_error($result->retval); + return $this->outputJsonError('Fehler beim Laden einer Lehrveranstaltung.'); } } elseif (isError($result)) { - show_error($result->retval); + return $this->outputJsonError('Fehler beim Laden von Lehreinheitdaten.'); } // Check if user is entitled to approve this lehrauftrag (by permission and organisational unit) - if (!$this->permissionlib->isBerechtigt(self::BERECHTIGUNG_LEHRAUFTRAG_ERTEILEN, 'suid', $lv_oe_kurzbz)){ - show_error('Keine Erteilberechtigung für diese Organisationseinheit: '. $lv_oe_kurzbz); + if (!$this->permissionlib->isBerechtigt(self::BERECHTIGUNG_LEHRAUFTRAG_ERTEILEN, 'suid', $lv_oe_kurzbz)) + { + return $this->outputJsonError('Sie haben keine Erteilberechtigung für diese Organisationseinheit: '. $lv_oe_kurzbz); } // Approve lehrauftrag by setting vertragsstatus to 'erteilt' $result = $this->VertragvertragsstatusModel->setStatus($vertrag_id, $mitarbeiter_uid, 'erteilt'); - if ($result->retval) { + if (!isError($result)) + { $json [] = array( 'row_index' => $lehrauftrag->row_index, 'erteilt' => date('Y-m-d') ); } + else + { + return $this->outputJsonError($result->retval); + } } } - // output json to ajax + else + { + return $this->outputJsonError('Fehler beim Übertragen der Daten.'); + } + + // output success json to ajax if (isset($json) && !isEmptyArray($json)) { $this->outputJsonSuccess($json); diff --git a/application/controllers/organisation/Studienjahr.php b/application/controllers/organisation/Studienjahr.php index e154734d4..ed8c0b6a1 100644 --- a/application/controllers/organisation/Studienjahr.php +++ b/application/controllers/organisation/Studienjahr.php @@ -44,7 +44,7 @@ class Studienjahr extends Auth_Controller $studienjahr = $this->StudienjahrModel->load(); if ($studienjahr->error) { - show_error($studienjahr->retval); + show_error(getError($studienjahr)); } $data = array( @@ -66,7 +66,7 @@ class Studienjahr extends Auth_Controller $studienjahr = $this->StudienjahrModel->load($studienjahr_kurzbez); if ($studienjahr->error) { - show_error($studienjahr->retval); + show_error(getError($studienjahr)); } $data = array( "studienjahr" => $studienjahr->retval @@ -86,7 +86,7 @@ class Studienjahr extends Auth_Controller $allstudienjahrkurzbz = $this->StudienjahrModel->load(); if ($allstudienjahrkurzbz->error) { - show_error($allstudienjahrkurzbz->retval); + show_error(getError($allstudienjahrkurzbz)); } $studienjahrkurzbz = $allstudienjahrkurzbz->retval[0]->studienjahr_kurzbz; $years = $this->__getYearsFromStudienjahr($studienjahrkurzbz); @@ -125,7 +125,7 @@ class Studienjahr extends Auth_Controller if ($studienjahr->error) { - show_error($studienjahr->retval); + show_error(getError($studienjahr)); } redirect("/organisation/studienjahr/editStudienjahr/".str_replace("/", "_", $data['studienjahr_kurzbz']."?saved=true")); @@ -153,7 +153,7 @@ class Studienjahr extends Auth_Controller return $data; } else { - show_error($validation->retval); + show_error(getError($validation)); } } @@ -188,7 +188,7 @@ class Studienjahr extends Auth_Controller if ($studienjahr->error) { - show_error($studienjahr->retval); + show_error(getError($studienjahr)); } redirect("/organisation/studienjahr/editStudienjahr/".str_replace("/", "_", $data['studienjahr_kurzbz']."?saved=true")); @@ -207,7 +207,7 @@ class Studienjahr extends Auth_Controller if ($studienjahr->error) { - show_error($studienjahr->retval); + show_error(getError($studienjahr)); } redirect("/organisation/studienjahr/listStudienjahr"); diff --git a/application/controllers/organisation/Studiensemester.php b/application/controllers/organisation/Studiensemester.php index 1e1aa45ee..10fa5b3ad 100644 --- a/application/controllers/organisation/Studiensemester.php +++ b/application/controllers/organisation/Studiensemester.php @@ -45,7 +45,7 @@ class Studiensemester extends Auth_Controller $semester = $this->StudiensemesterModel->load(); if ($semester->error) { - show_error($semester->retval); + show_error(getError($semester)); } $data = array( @@ -64,13 +64,13 @@ class Studiensemester extends Auth_Controller $semester = $this->StudiensemesterModel->load($semester_kurzbez); if ($semester->error) { - show_error($semester->retval); + show_error(getError($semester)); } $this->StudienjahrModel->addOrder('studienjahr_kurzbz', "DESC"); $allstudienjahre = $this->StudienjahrModel->load(); if ($allstudienjahre->error) { - show_error($allstudienjahre->retval); + show_error(getError($allstudienjahre)); } $data = array( "semester" => $semester->retval, @@ -90,7 +90,7 @@ class Studiensemester extends Auth_Controller $allstudienjahre = $this->StudienjahrModel->load(); if ($allstudienjahre->error) { - show_error($allstudienjahre->retval); + show_error(getError($allstudienjahre)); } $data = array( @@ -117,7 +117,7 @@ class Studiensemester extends Auth_Controller if ($semester->error) { - show_error($semester->retval); + show_error(getError($semester)); } redirect("/organisation/studiensemester/editStudiensemester/".$data['studiensemester_kurzbz']."?saved=true"); @@ -161,7 +161,7 @@ class Studiensemester extends Auth_Controller return $data; } else { - show_error($validation->retval); + show_error(getError($validation)); } } @@ -197,7 +197,7 @@ class Studiensemester extends Auth_Controller if ($semester->error) { - show_error($semester->retval); + show_error(getError($semester)); } redirect("/organisation/studiensemester/editStudiensemester/".$data['studiensemester_kurzbz']."?saved=true"); @@ -214,7 +214,7 @@ class Studiensemester extends Auth_Controller if ($semester->error) { - show_error($semester->retval); + show_error(getError($semester)); } redirect("/organisation/studiensemester/listStudiensemester"); diff --git a/application/controllers/person/BPKWartung.php b/application/controllers/person/BPKWartung.php index a8e9b8829..52cb09c5c 100644 --- a/application/controllers/person/BPKWartung.php +++ b/application/controllers/person/BPKWartung.php @@ -71,7 +71,7 @@ class BPKWartung extends Auth_Controller $personexists = $this->PersonModel->load($person_id); if (isError($personexists)) - show_error($personexists->retval); + show_error(getError($personexists)); if (!hasData($personexists)) show_error('Person does not exist!'); @@ -122,7 +122,7 @@ class BPKWartung extends Auth_Controller if (isError($stammdaten)) { - show_error($stammdaten->retval); + show_error(getError($stammdaten)); } if (!isset($stammdaten->retval)) @@ -132,7 +132,7 @@ class BPKWartung extends Auth_Controller if (isError($adresse)) { - show_error($adresse->retval); + show_error(getError($adresse)); } $data = array( diff --git a/application/controllers/system/FASMessages.php b/application/controllers/system/FASMessages.php index 6928a919d..e656db790 100644 --- a/application/controllers/system/FASMessages.php +++ b/application/controllers/system/FASMessages.php @@ -123,7 +123,7 @@ class FASMessages extends Auth_Controller $msg = $this->messagelib->getMessage($msg_id, $receiver_id); if (isError($msg)) { - show_error(getData($msg)); + show_error(getError($msg)); } elseif (!hasData($msg)) { @@ -147,7 +147,7 @@ class FASMessages extends Auth_Controller if (isError($msgVarsData)) { - show_error(getData($msgVarsData)); + show_error(getError($msgVarsData)); } return $msgVarsData; @@ -160,7 +160,7 @@ class FASMessages extends Auth_Controller { $variables = $this->messagelib->getMessageVarsPerson(); - if (isError($variables)) show_error(getData($variables)); + if (isError($variables)) show_error(getError($variables)); return getData($variables); } @@ -172,7 +172,7 @@ class FASMessages extends Auth_Controller { $oe_kurzbz = $this->messagelib->getOeKurzbz($sender_id); - if (isError($oe_kurzbz)) show_error(getData($oe_kurzbz)); + if (isError($oe_kurzbz)) show_error(getError($oe_kurzbz)); return getData($oe_kurzbz); } @@ -184,7 +184,7 @@ class FASMessages extends Auth_Controller { $isAdmin = $this->messagelib->getIsAdmin($sender_id); - if (isError($isAdmin)) show_error(getData($isAdmin)); + if (isError($isAdmin)) show_error(getError($isAdmin)); return getData($isAdmin); } diff --git a/application/controllers/system/Messages.php b/application/controllers/system/Messages.php index ec630da1e..58ffbd0a7 100644 --- a/application/controllers/system/Messages.php +++ b/application/controllers/system/Messages.php @@ -51,7 +51,7 @@ class Messages extends Auth_Controller $authUser = $this->CLMessagesModel->getAuthUser(); if (isError($authUser)) { - show_error(getData($authUser)); + show_error(getError($authUser)); } else { @@ -59,19 +59,19 @@ class Messages extends Auth_Controller } $msgVarsData = $this->MessageModel->getMsgVarsDataByPersonId($person_id); - if (isError($msgVarsData)) show_error(getData($msgVarsData)); + if (isError($msgVarsData)) show_error(getError($msgVarsData)); // Retrieves message vars for a person from view view vw_msg_vars_person $variables = $this->messagelib->getMessageVarsPerson(); - if (isError($variables)) show_error(getData($variables)); + if (isError($variables)) show_error(getError($variables)); // Organisation units used to get the templates $oe_kurzbz = $this->messagelib->getOeKurzbz($sender_id); - if (isError($oe_kurzbz)) show_error(getData($oe_kurzbz)); + if (isError($oe_kurzbz)) show_error(getError($oe_kurzbz)); // Admin or commoner? $isAdmin = $this->messagelib->getIsAdmin($sender_id); - if (isError($isAdmin)) show_error(getData($isAdmin)); + if (isError($isAdmin)) show_error(getError($isAdmin)); $data = array ( 'recipients' => getData($msgVarsData), @@ -122,7 +122,7 @@ class Messages extends Auth_Controller $send = $this->CLMessagesModel->send($msgVarsData, null, $oe_kurzbz, $vorlage_kurzbz, $msgVars); if (isError($send)) { - $this->outputJsonError(getData($send)); + $this->outputJsonError(getError($send)); } else { @@ -152,7 +152,7 @@ class Messages extends Auth_Controller if (isError($result) || !hasData($result)) { - $this->outputJsonError(getData($result)); + $this->outputJsonError(getError($result)); } else { @@ -181,7 +181,7 @@ class Messages extends Auth_Controller if (isError($data) || !hasData($data)) { - $this->outputJsonError(getData($data)); + $this->outputJsonError(getError($data)); } else { diff --git a/application/controllers/system/Phrases.php b/application/controllers/system/Phrases.php index 070750b7c..f589eaeb2 100644 --- a/application/controllers/system/Phrases.php +++ b/application/controllers/system/Phrases.php @@ -45,7 +45,7 @@ class Phrases extends Auth_Controller { $phrases = $this->phraseslib->getPhraseByApp('aufnahme'); if ($phrases->error) - show_error($phrases->retval); + show_error(getError($phrases)); $data = array( 'app' => 'aufnahme', @@ -67,7 +67,7 @@ class Phrases extends Auth_Controller $phrase_inhalt = $this->phraseslib->getPhraseInhalt($phrase_id); if ($phrase_inhalt->error) - show_error($phrase_inhalt->retval); + show_error(getError($phrase_inhalt)); $data = array( 'phrase_id' => $phrase_id, @@ -88,7 +88,7 @@ class Phrases extends Auth_Controller $phrase_inhalt = $this->phraseslib->delPhrasentext($phrasentext_id); if ($phrase_inhalt->error) - show_error($phrase_inhalt->retval); + show_error(getError($phrase_inhalt)); redirect('/system/Phrases/view/'.$phrase_id); } @@ -102,7 +102,7 @@ class Phrases extends Auth_Controller $phrase = $this->phraseslib->getPhrase($phrase_id); if ($phrase->error) - show_error($phrase->retval); + show_error(getError($phrase)); if (count($phrase->retval) != 1) show_error('Phrase nicht vorhanden! ID: '.$phrase_id); @@ -124,7 +124,7 @@ class Phrases extends Auth_Controller $phrase = $this->phraseslib->savePhrase($phrase_id, $data); if ($phrase->error) - show_error($phrase->retval); + show_error(getError($phrase)); $phrase_id = $phrase->retval; @@ -145,7 +145,7 @@ class Phrases extends Auth_Controller $resultOE = $this->OrganisationseinheitModel->loadWhere(array('aktiv' => true, 'oe_parent_kurzbz' => null)); if ($resultOE->error) - show_error($resultOE->retval); + show_error(getError($resultOE)); if (hasData($resultOE)) { @@ -161,7 +161,7 @@ class Phrases extends Auth_Controller $phrase_inhalt = $this->phraseslib->insertPhraseinhalt($data); if ($phrase_inhalt->error) - show_error($phrase_inhalt->retval); + show_error(getError($phrase_inhalt); $phrase_inhalt_id = $phrase_inhalt->retval; @@ -180,7 +180,7 @@ class Phrases extends Auth_Controller { $phrase_inhalt = $this->phraseslib->getPhrasentextById($phrasentext_id); if ($phrase_inhalt->error) - show_error($phrase_inhalt->retval); + show_error(getError($phrase_inhalt)); $data = $phrase_inhalt->retval[0]; @@ -204,7 +204,7 @@ class Phrases extends Auth_Controller $phrase_inhalt = $this->phraseslib->updatePhraseInhalt($phrase_inhalt_id, $data); if ($phrase_inhalt->error) - show_error($phrase_inhalt->retval); + show_error(getError($phrase_inhalt)); redirect('/system/Phrases/editText/'.$phrase_inhalt_id); diff --git a/application/controllers/system/Vorlage.php b/application/controllers/system/Vorlage.php index 4712d0e68..ba8b26137 100644 --- a/application/controllers/system/Vorlage.php +++ b/application/controllers/system/Vorlage.php @@ -49,7 +49,7 @@ class Vorlage extends Auth_Controller $vorlage = $this->vorlagelib->getVorlageByMimetype($mimetype); if ($vorlage->error) - show_error($vorlage->retval); + show_error(getError($vorlage)); $data = array ( 'mimetype' => $mimetype, @@ -66,7 +66,7 @@ class Vorlage extends Auth_Controller $vorlagentext = $this->vorlagelib->getVorlagetextByVorlage($vorlage_kurzbz); if ($vorlagentext->error) - show_error($vorlagentext->retval); + show_error(getError($vorlagentext)); $data = array ( 'vorlage_kurzbz' => $vorlage_kurzbz, @@ -83,7 +83,7 @@ class Vorlage extends Auth_Controller $vorlage = $this->vorlagelib->getVorlage($vorlage_kurzbz); if ($vorlage->error) - show_error($vorlage->retval); + show_error(getError($vorlage)); if (count($vorlage->retval) != 1) show_error('Nachricht nicht vorhanden! ID: '.$vorlage_kurzbz); @@ -119,7 +119,7 @@ class Vorlage extends Auth_Controller $vorlage = $this->vorlagelib->saveVorlage($vorlage_kurzbz, $data); if ($vorlage->error) - show_error($vorlage->retval); + show_error(getError($vorlage)); $vorlage_kurzbz = $vorlage->retval; @@ -137,7 +137,7 @@ class Vorlage extends Auth_Controller $resultOE = $this->OrganisationseinheitModel->loadWhere(array('aktiv' => true, 'oe_parent_kurzbz' => null)); if ($resultOE->error) - show_error($resultOE->retval); + show_error(getError($resultOE)); if (hasData($resultOE)) { @@ -153,7 +153,7 @@ class Vorlage extends Auth_Controller $vorlagetext = $this->vorlagelib->insertVorlagetext($data); if ($vorlagetext->error) - show_error($vorlagetext->retval); + show_error(getError($vorlagetext)); $vorlagestudiengang_id = $vorlagetext->retval; @@ -170,7 +170,7 @@ class Vorlage extends Auth_Controller $vorlagetext = $this->vorlagelib->getVorlagetextById($vorlagestudiengang_id); if ($vorlagetext->error) - show_error($vorlagetext->retval); + show_error(getError($vorlagetext)); $data = $vorlagetext->retval[0]; @@ -254,7 +254,7 @@ class Vorlage extends Auth_Controller $vorlagetext = $this->vorlagelib->updateVorlagetext($data['vorlagestudiengang_id'], $data); if ($vorlagetext->error) - show_error($vorlagetext->retval); + show_error(getError($vorlagetext)); redirect('/system/vorlage/editText/'.$data['vorlagestudiengang_id']); } @@ -266,7 +266,7 @@ class Vorlage extends Auth_Controller $vorlagetext = $this->vorlagelib->getVorlagetextById($vorlagestudiengang_id); if ($vorlagetext->error) - show_error($vorlagetext->retval); + show_error(getError($vorlagetext)); $data = array( 'text' => $this->vorlagelib->parseVorlagetext($vorlagetext->retval[0]->text, $jsonDecodedForm) diff --git a/application/controllers/system/aufnahme/PrestudentMultiAssign.php b/application/controllers/system/aufnahme/PrestudentMultiAssign.php index 30df81281..9906e83cb 100644 --- a/application/controllers/system/aufnahme/PrestudentMultiAssign.php +++ b/application/controllers/system/aufnahme/PrestudentMultiAssign.php @@ -61,7 +61,7 @@ class PrestudentMultiAssign extends Auth_Controller } else if (isError($returnUsers)) { - show_error($returnUsers->retval); + show_error(getError($returnUsers)); } } diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php index 2f66e0e2d..d085e7db0 100644 --- a/application/controllers/system/infocenter/InfoCenter.php +++ b/application/controllers/system/infocenter/InfoCenter.php @@ -24,7 +24,6 @@ class InfoCenter extends Auth_Controller const FILTER_ID = 'filter_id'; const PREV_FILTER_ID = 'prev_filter_id'; - const RELOAD_DATASET = 'reloadDataset'; const KEEP_TABLESORTER_FILTER = 'keepTsFilter'; private $_uid; // contains the UID of the logged user @@ -194,7 +193,7 @@ class InfoCenter extends Auth_Controller $personexists = $this->PersonModel->load($person_id); if (isError($personexists)) - show_error($personexists->retval); + show_error(getError($personexists)); if (!hasData($personexists)) show_error('Person does not exist!'); @@ -205,8 +204,7 @@ class InfoCenter extends Auth_Controller // mark person as locked for editing $result = $this->PersonLockModel->lockPerson($person_id, $this->_uid, self::APP); - if (isError($result)) - show_error($result->retval); + if (isError($result)) show_error(getError($result)); } $persondata = $this->_loadPersonData($person_id); @@ -232,13 +230,12 @@ class InfoCenter extends Auth_Controller { $result = $this->PersonLockModel->unlockPerson($person_id, self::APP); - if (isError($result)) - show_error($result->retval); + if (isError($result)) show_error(getError($result)); $redirectLink = '/'.self::INFOCENTER_URI.'?'.self::FHC_CONTROLLER_ID.'='.$this->getControllerId(); // Force reload of Dataset after Unlock - $redirectLink .= '&'.self::RELOAD_DATASET.'=true&'.self::KEEP_TABLESORTER_FILTER.'=true'; + $redirectLink .= '&'.self::KEEP_TABLESORTER_FILTER.'=true'; $currentFilterId = $this->input->get(self::FILTER_ID); if (isset($currentFilterId)) @@ -665,7 +662,7 @@ class InfoCenter extends Auth_Controller if (isError($notizen)) { - show_error($notizen->retval); + show_error(getError($notizen)); } $this->load->view('system/infocenter/notizen.php', array('notizen' => $notizen->retval)); @@ -693,14 +690,14 @@ class InfoCenter extends Auth_Controller if (isError($akte)) { - show_error($akte->retval); + show_error(getError($akte)); } $aktecontent = $this->dmslib->getAkteContent($akte_id); if (isError($aktecontent)) { - show_error($aktecontent->retval); + show_error(getError($aktecontent)); } $this->output @@ -943,17 +940,12 @@ class InfoCenter extends Auth_Controller $freigegebenLink = site_url(self::INFOCENTER_URI.'/'.self::FREIGEGEBEN_PAGE); $reihungstestAbsolviertLink = site_url(self::INFOCENTER_URI.'/'.self::REIHUNGSTESTABSOLVIERT_PAGE); + $currentFilterId = $this->input->get(self::FILTER_ID); - $reloadDatasetParam = self::RELOAD_DATASET.'=true'; if (isset($currentFilterId)) { - $freigegebenLink .= '?'.self::PREV_FILTER_ID.'='.$currentFilterId.'&'.$reloadDatasetParam; - $reihungstestAbsolviertLink .= '?'.self::PREV_FILTER_ID.'='.$currentFilterId.'&'.$reloadDatasetParam; - } - else - { - $freigegebenLink .= '?'.$reloadDatasetParam; - $reihungstestAbsolviertLink .= '?'.$reloadDatasetParam; + $freigegebenLink .= '?'.self::PREV_FILTER_ID.'='.$currentFilterId; + $reihungstestAbsolviertLink .= '?'.self::PREV_FILTER_ID.'='.$currentFilterId; } $this->navigationlib->setSessionMenu( @@ -1019,7 +1011,7 @@ class InfoCenter extends Auth_Controller $prevFilterId = $this->input->get(self::PREV_FILTER_ID); if (isset($prevFilterId)) { - $link .= '?'.self::FILTER_ID.'='.$prevFilterId.'&'.self::RELOAD_DATASET.'=true&'.self::KEEP_TABLESORTER_FILTER.'=true'; + $link .= '?'.self::FILTER_ID.'='.$prevFilterId.'&'.self::KEEP_TABLESORTER_FILTER.'=true'; } $this->navigationlib->setSessionMenu( @@ -1049,14 +1041,13 @@ class InfoCenter extends Auth_Controller $this->load->library('NavigationLib', array(self::NAVIGATION_PAGE => self::INFOCENTER_URI.'/'.$page)); // Generate the home link with the eventually loaded filter - $reloadDatasetParam = '?'.self::RELOAD_DATASET.'=true'; - $homeLink = site_url(self::INFOCENTER_URI.'/'.self::INDEX_PAGE.$reloadDatasetParam); - $freigegebenLink = site_url(self::INFOCENTER_URI.'/'.self::FREIGEGEBEN_PAGE.$reloadDatasetParam); - $absolviertLink = site_url(self::INFOCENTER_URI.'/'.self::REIHUNGSTESTABSOLVIERT_PAGE.$reloadDatasetParam); + $homeLink = site_url(self::INFOCENTER_URI.'/'.self::INDEX_PAGE); + $freigegebenLink = site_url(self::INFOCENTER_URI.'/'.self::FREIGEGEBEN_PAGE); + $absolviertLink = site_url(self::INFOCENTER_URI.'/'.self::REIHUNGSTESTABSOLVIERT_PAGE); $prevFilterId = $this->input->get(self::PREV_FILTER_ID); if (isset($prevFilterId)) { - $homeLink .= '&'.self::FILTER_ID.'='.$prevFilterId; + $homeLink .= '?'.self::FILTER_ID.'='.$prevFilterId; } $this->navigationlib->setSessionElementMenu( @@ -1171,7 +1162,7 @@ class InfoCenter extends Auth_Controller if (isError($locked)) { - show_error($locked->retval); + show_error(getError($locked)); } $lockedby = null; @@ -1190,7 +1181,7 @@ class InfoCenter extends Auth_Controller if (isError($stammdaten)) { - show_error($stammdaten->retval); + show_error(getError($stammdaten)); } if (!isset($stammdaten->retval)) @@ -1200,21 +1191,21 @@ class InfoCenter extends Auth_Controller if (isError($dokumente)) { - show_error($dokumente->retval); + show_error(getError($dokumente)); } $dokumente_nachgereicht = $this->AkteModel->getAktenWithDokInfo($person_id, null, true); if (isError($dokumente_nachgereicht)) { - show_error($dokumente_nachgereicht->retval); + show_error(getError($dokumente_nachgereicht)); } $messages = $this->MessageModel->getMessagesOfPerson($person_id, 1); if (isError($messages)) { - show_error($messages->retval); + show_error(getError($messages)); } $logs = $this->personloglib->getLogs($person_id); @@ -1223,21 +1214,21 @@ class InfoCenter extends Auth_Controller if (isError($notizen)) { - show_error($notizen->retval); + show_error(getError($notizen)); } $notizen_bewerbung = $this->NotizModel->getNotizByTitel($person_id, 'Anmerkung zur Bewerbung%'); if (isError($notizen_bewerbung)) { - show_error($notizen_bewerbung->retval); + show_error(getError($notizen_bewerbung)); } $user_person = $this->PersonModel->getByUid($this->_uid); if (isError($user_person)) { - show_error($user_person->retval); + show_error(getError($user_person)); } $data = array ( @@ -1268,7 +1259,7 @@ class InfoCenter extends Auth_Controller if (isError($prestudenten)) { - show_error($prestudenten->retval); + show_error(getError($prestudenten)); } foreach ($prestudenten->retval as $prestudent) @@ -1277,7 +1268,7 @@ class InfoCenter extends Auth_Controller if (isError($prestudentWithZgv)) { - show_error($prestudentWithZgv->retval); + show_error(getError($prestudentWithZgv)); } $zgvpruefung = $prestudentWithZgv->retval[0]; @@ -1385,13 +1376,13 @@ class InfoCenter extends Auth_Controller $starta = $this->StudiensemesterModel->load($a->prestudentstatus->studiensemester_kurzbz); if (!hasData($starta)) { - show_error($starta->retval); + show_error(getError($starta)); } $startb = $this->StudiensemesterModel->load($b->prestudentstatus->studiensemester_kurzbz); if (!hasData($startb)) { - show_error($startb->retval); + show_error(getError($startb)); } $starta = date_format(date_create($starta->retval[0]->start), 'Y-m-d'); @@ -1463,7 +1454,7 @@ class InfoCenter extends Auth_Controller if (isError($prestudent)) { - show_error($prestudent->retval); + show_error(getError($prestudent)); } $person_id = $prestudent->retval[0]->person_id; diff --git a/application/controllers/widgets/Language.php b/application/controllers/widgets/Language.php new file mode 100644 index 000000000..8269d3b2d --- /dev/null +++ b/application/controllers/widgets/Language.php @@ -0,0 +1,31 @@ +input->post('language'); + + $this->outputJson(setUserLanguage($language)); + } +} diff --git a/application/core/FHC_Controller.php b/application/core/FHC_Controller.php index 234cf6a6f..93c324b21 100644 --- a/application/core/FHC_Controller.php +++ b/application/core/FHC_Controller.php @@ -21,6 +21,9 @@ abstract class FHC_Controller extends CI_Controller { parent::__construct(); + // NOTE: placed here before performing anything else!!! + $this->_checkHTTPS(); + $this->_controllerId = null; // set _controllerId as null by default // Loads helper message to manage returning messages @@ -129,4 +132,20 @@ abstract class FHC_Controller extends CI_Controller { $this->output->set_content_type('application/json')->set_output(json_encode($mixed)); } + + //------------------------------------------------------------------------------------------------------------------ + // Private methods + + /** + * Checks if the call is performed via web and if HTTPS is enabled and used + * If NOT then an error is raised and the execution is terminated + */ + private function _checkHTTPS() + { + // If NOT called from command line and if the HTTPS protocol is NOT enabled + if (!$this->input->is_cli_request() && !isset($_SERVER['HTTPS'])) + { + show_error('This web site cannot work correctly without the HTTPS protocol enabled'); + } + } } diff --git a/application/helpers/hlp_language_helper.php b/application/helpers/hlp_language_helper.php index 4dfb53c7b..1678a4102 100644 --- a/application/helpers/hlp_language_helper.php +++ b/application/helpers/hlp_language_helper.php @@ -18,28 +18,48 @@ if (! defined('BASEPATH')) exit('No direct script access allowed'); /** * Function to retrieve the language of the logged user - * If is not possible to retrieve it, then the default system language is returnd - * If as parameter is given a valid language the it's returned useful to avoid - * to write the same control structures for the language + * If is not possible to retrieve it, then the default system language is returned + * NOTE: If the given parameter is a valid language then it is returned + * It is useful to avoid to write a lot of "if else" structures */ function getUserLanguage($language = null) { + // If the given parameter is a valid language then return it if (!isEmptyString($language)) return $language; - $ci =& get_instance(); // get CI instance - - // Use the default system language, if it's possible retrieves the language for the logged user + // Use the default system language as fallback $language = DEFAULT_LANGUAGE; - // Checks if the user is authenticated to retrieve the users's language - // NOTE: this helper could be called when the user is not logged in the system - // so this is why is checked if the function getAuthUID exists - if (function_exists('getAuthUID')) + + // If the language is present in the session and it is valid + if (isset($_SESSION[LANG_SESSION_CURRENT_LANGUAGE]) && !isEmptyString($_SESSION[LANG_SESSION_CURRENT_LANGUAGE])) { + $language = $_SESSION[LANG_SESSION_CURRENT_LANGUAGE]; // then use it + } + // Otherwise checks if the user is authenticated to retrieve the users's language + // NOTE: this helper could be called when the user is NOT logged in the system + // therefore is checked if the user is logged + elseif (isLogged()) + { + $ci =& get_instance(); // get CI instance + // NOTE: Stores the loaded model with the alias PersonModelLanguage to avoid to overwrite // an already loaded PersonModel used somewhere else $ci->load->model('person/Person_model', 'PersonModelLanguage'); - $language = $ci->PersonModelLanguage->getLanguage(getAuthUID()); + // Retrieves language/s for the logged user + $languagesDB = $ci->PersonModelLanguage->getLanguage(getAuthUID()); + if (hasData($languagesDB)) + { + // Looks for the first valid language + foreach (getData($languagesDB) as $languageDB) + { + if (!isEmptyString($languageDB->sprache)) + { + $language = $languageDB->sprache; + break; + } + } + } } return $language; @@ -62,31 +82,21 @@ function getPhraseByLanguage($phraseLanguagesArray, $language) $langArray = getSessionElement(LANG_SESSION_NAME, LANG_SESSION_INDEXES); if ($langArray == null) // If not already loaded in session { - // Loads the Sprache_model to retrieve the language settings from the DB - // NOTE: Stores the loaded model with the alias SpracheModelLanguage to avoid to overwrite - // an already loaded SpracheModel used somewhere else - $ci->load->model('system/Sprache_model', 'SpracheModelLanguage'); - - // Add order clause by index and select only the sprache column - $ci->SpracheModelLanguage->addOrder('index'); - $ci->SpracheModelLanguage->addSelect('sprache'); - - // Retrieves from public.tbl_sprache - $dbLanguages = $ci->SpracheModelLanguage->load(); + // Retrieves active languages + $dbLanguages = getDBActiveLanguages(); if (hasData($dbLanguages)) // If everything is ok and contains data { $index = 0; // Incremental integer - $languageIndexes = array(); // Array that will contains languages and their indexes + $langArray = array(); // Array that will contains languages and their indexes // Loops through database results foreach (getData($dbLanguages) as $dbLanguage) { - $languageIndexes[$dbLanguage->sprache] = $index++; // set $languageIndexes array elements + $langArray[$dbLanguage->sprache] = $index++; // set $languageIndexes array elements } } - $langArray = $languageIndexes; // copy $languageIndexes to $langArray - // Set session element $_SESSION['LANG']['LANG_INDEXES'] with $languageIndexes + // Set session element $_SESSION['LANG']['LANG_INDEXES'] with $langArray setSessionElement(LANG_SESSION_NAME, LANG_SESSION_INDEXES, $langArray); } @@ -100,3 +110,78 @@ function getPhraseByLanguage($phraseLanguagesArray, $language) return $phrase; } + +/** + * Tries to load active languages from session, if not present then loads them from database and stores them in session + */ +function getActiveLanguages() +{ + $languagesArray = getSessionElement(LANG_SESSION_NAME, LANG_SESSION_ACTIVE_LANGUAGES); + if ($languagesArray == null) + { + $languagesArray = array(); + + // Retrieves from public.tbl_sprache + $dbLanguages = getDBActiveLanguages(); + if (hasData($dbLanguages)) + { + // Loops through database results + foreach (getData($dbLanguages) as $dbLanguage) + { + $languagesArray[$dbLanguage->sprache] = $dbLanguage->bezeichnung; // set $languageIndexes array elements + } + } + + // Set session element $_SESSION['LANG']['LANG_SESSION_ACTIVE_LANGUAGES'] with $languagesArray + setSessionElement(LANG_SESSION_NAME, LANG_SESSION_ACTIVE_LANGUAGES, $languagesArray); + } + + return $languagesArray; +} + +/** + * Loads active languages from database + */ +function getDBActiveLanguages() +{ + $ci =& get_instance(); // get CI instance + + // Loads the Sprache_model to retrieve the language settings from the DB + // NOTE: Stores the loaded model with the alias SpracheModelLanguage to avoid to overwrite + // an already loaded SpracheModel used somewhere else + $ci->load->model('system/Sprache_model', 'SpracheModelLanguage'); + + // Add order clause by index and select only the sprache column + $ci->SpracheModelLanguage->addOrder('index'); + $ci->SpracheModelLanguage->addSelect('sprache, bezeichnung'); + + // Retrieves from public.tbl_sprache + return $ci->SpracheModelLanguage->loadWhere(array('content' => true)); +} + +/** + * Sets the current language to render the GUI in session + */ +function setUserLanguage($language) +{ + $languageValid = false; + + // Checks if the given language is valid (present between active languages) + foreach (getActiveLanguages() as $languageName => $languageTranslation) + { + if ($language == $languageName) + { + $languageValid = true; + break; + } + } + + if ($languageValid) // if the provided language is valid + { + $_SESSION[LANG_SESSION_CURRENT_LANGUAGE] = $language; // stores it in session + + return success('Language successfully changed'); // return success!! + } + + return error('The given language is not valid'); // return an error +} diff --git a/application/helpers/hlp_return_object_helper.php b/application/helpers/hlp_return_object_helper.php index 03b56bbbc..cc896856d 100644 --- a/application/helpers/hlp_return_object_helper.php +++ b/application/helpers/hlp_return_object_helper.php @@ -125,3 +125,18 @@ function getCode($result) return $code; } + +/** + * Returns the property retval if present, otherwise null + */ +function getError($result) +{ + $error = null; + + if (isset($result->retval)) + { + $error = $result->retval; + } + + return $error; +} diff --git a/application/libraries/AuthLib.php b/application/libraries/AuthLib.php index c5345a250..67a527655 100644 --- a/application/libraries/AuthLib.php +++ b/application/libraries/AuthLib.php @@ -378,7 +378,8 @@ class AuthLib } else // otherwise { - $hta = $this->_createAuthObjByPerson(array('uid' => trim($_SERVER['PHP_AUTH_USER']))); + // NOTE: Username needs to be trimmed and lowered because htaccess is allowing login + $hta = $this->_createAuthObjByPerson(array('uid' => mb_strtolower(trim($_SERVER['PHP_AUTH_USER'])))); } // Invalid credentials @@ -390,7 +391,7 @@ class AuthLib } elseif (isError($hta)) // display error and stop execution { - $this->_showError($hta->retval); + $this->_showError(getError($hta)); } return $hta; // if success then is returned! @@ -550,7 +551,7 @@ class AuthLib } elseif (isError($auth)) // blocking error { - $this->_showError(getData($auth)); // display a generic error message and logs the occurred error + $this->_showError(getError($auth)); // display a generic error message and logs the occurred error } } // else the user is already logged, then loads authentication helper and continue with the execution diff --git a/application/libraries/CryptLib.php b/application/libraries/CryptLib.php new file mode 100644 index 000000000..ea19f3e5b --- /dev/null +++ b/application/libraries/CryptLib.php @@ -0,0 +1,28 @@ +setBlockLength(256); + $cipher->setKey($key); + + if ($paddingDisabled === true) $cipher->disablePadding(); + + return $cipher->encrypt($value); + } +} diff --git a/application/libraries/DmsLib.php b/application/libraries/DmsLib.php index 6b86ce7f8..f32df5fd1 100644 --- a/application/libraries/DmsLib.php +++ b/application/libraries/DmsLib.php @@ -249,7 +249,7 @@ class DmsLib } else { - return error($dmscontent->retval); + return error(getError($dmscontent)); } } else @@ -259,7 +259,7 @@ class DmsLib } else { - return error($akte->retval); + return error(getError($akte)); } } diff --git a/application/libraries/DocumentLib.php b/application/libraries/DocumentLib.php index ed87a9f38..98e546b4e 100644 --- a/application/libraries/DocumentLib.php +++ b/application/libraries/DocumentLib.php @@ -68,7 +68,7 @@ class DocumentLib } else { - return error($ret->retval); + return error(getError($ret)); } case 'application/pdf': return success($filename); diff --git a/application/libraries/FilterWidgetLib.php b/application/libraries/FilterWidgetLib.php index 0117377a5..6e87833bd 100644 --- a/application/libraries/FilterWidgetLib.php +++ b/application/libraries/FilterWidgetLib.php @@ -7,8 +7,10 @@ if (! defined('BASEPATH')) exit('No direct script access allowed'); */ class FilterWidgetLib { - // Session parameters names - const SESSION_NAME = 'FHC_FILTER_WIDGET'; // Filter session name + // FilterWidget session name + const SESSION_NAME = 'FHC_FILTER_WIDGET'; + + // Session elements const SESSION_FILTER_NAME = 'filterName'; const SESSION_FIELDS = 'fields'; const SESSION_SELECTED_FIELDS = 'selectedFields'; @@ -17,13 +19,19 @@ class FilterWidgetLib const SESSION_CHECKBOXES = 'checkboxes'; const SESSION_FILTERS = 'filters'; const SESSION_METADATA = 'datasetMetadata'; - const SESSION_DATASET = 'dataset'; const SESSION_ROW_NUMBER = 'rowNumber'; - const SESSION_RELOAD_DATASET = 'reloadDataset'; + const SESSION_TIMEOUT = 'sessionTimeout'; + + // Session dataset elements + const SESSION_DATASET = 'dataset'; + const SESSION_DATASET_RELOAD = 'reloadDataset'; const SESSION_DATASET_REPRESENTATION = 'datasetRepresentation'; const SESSION_DATASET_REP_OPTIONS = 'datasetRepresentationOptions'; const SESSION_DATASET_REP_FIELDS_DEFS = 'datasetRepresentationFieldsDefinitions'; + // Default session timeout + const SESSION_DEFAULT_TIMEOUT = 30; + // Alias for the dynamic table used to retrieve the dataset const DATASET_TABLE_ALIAS = 'datasetFilterTable'; @@ -33,16 +41,16 @@ class FilterWidgetLib // ...to identify a single filter widget in the DB const FILTER_ID = 'filter_id'; - const APP_PARAMETER = 'app'; - const DATASET_NAME_PARAMETER = 'datasetName'; - const FILTER_KURZBZ_PARAMETER = 'filterKurzbz'; - const DATASET_RELOAD_PARAMETER = 'reloadDataset'; + const APP = 'app'; + const DATASET_NAME = 'datasetName'; + const FILTER_KURZBZ = 'filterKurzbz'; + const DATASET_RELOAD = 'reloadDataset'; // ...to specify permissions that are needed to use this FilterWidget - const REQUIRED_PERMISSIONS_PARAMETER = 'requiredPermissions'; + const REQUIRED_PERMISSIONS = 'requiredPermissions'; // ...stament to retrieve the dataset - const QUERY_PARAMETER = 'query'; + const QUERY = 'query'; // ...to specify more columns or aliases for them const ADDITIONAL_COLUMNS = 'additionalColumns'; @@ -93,7 +101,7 @@ class FilterWidgetLib const FILTER_UNIQUE_ID = 'filterUniqueId'; // Filter page parameter name const PERMISSION_FILTER_METHOD = 'FilterWidget'; // Name for fake method to be checked by the PermissionLib - const PERMISSION_TYPE = 'rw'; + const PERMISSION_TYPE = 'r'; // Name and array keys of the filters menu array const NAV_MENU_FILTER_KEY = 'filters'; @@ -131,7 +139,7 @@ class FilterWidgetLib // Gets the required permissions from the session if they are not provided as parameter $rq = $requiredPermissions; - if ($rq == null) $rq = $this->getSessionElement(self::REQUIRED_PERMISSIONS_PARAMETER); + if ($rq == null) $rq = $this->getSessionElement(self::REQUIRED_PERMISSIONS); return $this->_ci->permissionlib->hasAtLeastOne($rq, self::PERMISSION_FILTER_METHOD, self::PERMISSION_TYPE); } @@ -179,6 +187,29 @@ class FilterWidgetLib setSessionElement(self::SESSION_NAME, $this->_filterUniqueId, $session); // stores the single value } + /** + * + */ + public function dropExpiredFilterWidgets() + { + // Loads the session for all the filter widgets + $filterWidgetsSession = getSession(self::SESSION_NAME); + + // If something is present in session + if ($filterWidgetsSession != null) + { + // Loops in the session for all the filter widgets + foreach ($filterWidgetsSession as $filterWidget => $filterWidgetData) + { + // If this filter widget is not the currrent used filter widget and the it is expired... + if ($this->_filterUniqueId != $filterWidget && $filterWidgetData[self::SESSION_TIMEOUT] <= time()) + { + cleanSessionElement(self::SESSION_NAME, $filterWidget); // ...remove it + } + } + } + } + /** * Loads the definition data from DB for a filter widget */ @@ -471,7 +502,7 @@ class FilterWidgetLib // Write changes into the session $this->setSessionElement(self::SESSION_FILTERS, $filters); - $this->setSessionElement(self::SESSION_RELOAD_DATASET, true); // the dataset must be reloaded + $this->setSessionElement(self::SESSION_DATASET_RELOAD, true); // the dataset must be reloaded $removeAppliedFilter = true; } @@ -523,7 +554,7 @@ class FilterWidgetLib // Write changes into the session $this->setSessionElement(self::SESSION_FILTERS, $filters); - $this->setSessionElement(self::SESSION_RELOAD_DATASET, true); // the dataset must be reloaded + $this->setSessionElement(self::SESSION_DATASET_RELOAD, true); // the dataset must be reloaded $applyFilters = true; } @@ -537,7 +568,7 @@ class FilterWidgetLib */ public function reloadDataset() { - $this->setSessionElement(self::SESSION_RELOAD_DATASET, true); + $this->setSessionElement(self::SESSION_DATASET_RELOAD, true); } /** @@ -603,8 +634,8 @@ class FilterWidgetLib // Loads the definition to check if is already present in the DB $definition = $this->_ci->FiltersModel->loadWhere(array( - 'app' => $this->getSessionElement(self::APP_PARAMETER), - 'dataset_name' => $this->getSessionElement(self::DATASET_NAME_PARAMETER), + 'app' => $this->getSessionElement(self::APP), + 'dataset_name' => $this->getSessionElement(self::DATASET_NAME), 'description' => $descPGArray, 'person_id' => $authPersonId )); @@ -632,8 +663,8 @@ class FilterWidgetLib // update it $this->_ci->FiltersModel->update( array( - 'app' => $this->getSessionElement(self::APP_PARAMETER), - 'dataset_name' => $this->getSessionElement(self::DATASET_NAME_PARAMETER), + 'app' => $this->getSessionElement(self::APP), + 'dataset_name' => $this->getSessionElement(self::DATASET_NAME), 'description' => $descPGArray, 'person_id' => $authPersonId ), @@ -648,8 +679,8 @@ class FilterWidgetLib { $this->_ci->FiltersModel->insert( array( - 'app' => $this->getSessionElement(self::APP_PARAMETER), - 'dataset_name' => $this->getSessionElement(self::DATASET_NAME_PARAMETER), + 'app' => $this->getSessionElement(self::APP), + 'dataset_name' => $this->getSessionElement(self::DATASET_NAME), 'filter_kurzbz' => uniqid($authPersonId, true), 'description' => $descPGArray, 'person_id' => $authPersonId, @@ -693,7 +724,7 @@ class FilterWidgetLib public function generateFilterMenu($navigationPage) { // Loads the NavigationLib for the current page (given as parameter) - $this->_ci->load->library('NavigationLib', array(FilterWidgetLib::NAVIGATION_PAGE => $navigationPage)); + $this->_ci->load->library('NavigationLib', array(self::NAVIGATION_PAGE => $navigationPage)); $filterMenu = null; $currentMenu = $this->_ci->navigationlib->getSessionMenu(); // The navigation menu currently stored in session @@ -706,7 +737,7 @@ class FilterWidgetLib // Loads all the filters related to this page (same dataset_name and same app name) $filters = $this->_ci->FiltersModel->getFiltersByAppDatasetName( - $session[self::APP_PARAMETER], $session[self::DATASET_NAME_PARAMETER] + $session[self::APP], $session[self::DATASET_NAME] ); // If filters were loaded @@ -775,7 +806,7 @@ class FilterWidgetLib ); // Sets in the session only the element related to the filters menu - $this->_ci->navigationlib->setSessionElementMenu(FilterWidgetLib::NAV_MENU_FILTER_KEY, $filterMenu); + $this->_ci->navigationlib->setSessionElementMenu(self::NAV_MENU_FILTER_KEY, $filterMenu); } } } diff --git a/application/libraries/PersonLogLib.php b/application/libraries/PersonLogLib.php index 299fc8ce2..fe9a82504 100644 --- a/application/libraries/PersonLogLib.php +++ b/application/libraries/PersonLogLib.php @@ -76,7 +76,7 @@ class PersonLogLib return $decoded_logs; } else - show_error($result->retval); + show_error(getError($result)); } /** diff --git a/application/libraries/PhrasesLib.php b/application/libraries/PhrasesLib.php index af642fe9e..248727107 100644 --- a/application/libraries/PhrasesLib.php +++ b/application/libraries/PhrasesLib.php @@ -107,7 +107,7 @@ class PhrasesLib // If no

tags required if ($blockTags == 'no') { - $tmpText = $textileParser->textileThis($result->retval[$i]->text); // Parse + $tmpText = $textileParser->parse($result->retval[$i]->text); // Parse // Removes tags

and

from the beginning and from the end of the string if they are present // NOTE: Those tags are usually, but not always, added by the textile parser @@ -127,7 +127,7 @@ class PhrasesLib } else { - $result->retval[$i]->text = $textileParser->textileThis($result->retval[$i]->text); + $result->retval[$i]->text = $textileParser->parse($result->retval[$i]->text); } } } diff --git a/application/libraries/TableWidgetLib.php b/application/libraries/TableWidgetLib.php index 009103e68..dc746b6d5 100644 --- a/application/libraries/TableWidgetLib.php +++ b/application/libraries/TableWidgetLib.php @@ -9,33 +9,41 @@ class TableWidgetLib { const TABLE_UNIQUE_ID = 'tableUniqueId'; // TableWidget unique id - // Session parameters names - const SESSION_NAME = 'FHC_TABLE_WIDGET'; // Table session name + // TableWidget session name + const SESSION_NAME = 'FHC_TABLE_WIDGET'; + + // Session elements const SESSION_FIELDS = 'fields'; const SESSION_COLUMNS_ALIASES = 'columnsAliases'; const SESSION_ADDITIONAL_COLUMNS = 'additionalColumns'; const SESSION_CHECKBOXES = 'checkboxes'; const SESSION_METADATA = 'datasetMetadata'; - const SESSION_DATASET = 'dataset'; const SESSION_ROW_NUMBER = 'rowNumber'; - const SESSION_RELOAD_DATASET = 'reloadDataset'; + const SESSION_TIMEOUT = 'sessionTimeout'; + + // Session dataset elements + const SESSION_DATASET = 'dataset'; + const SESSION_DATASET_RELOAD = 'reloadDataset'; const SESSION_DATASET_REPRESENTATION = 'datasetRepresentation'; const SESSION_DATASET_REP_OPTIONS = 'datasetRepresentationOptions'; const SESSION_DATASET_REP_FIELDS_DEFS = 'datasetRepresentationFieldsDefinitions'; + // Default session timeout + const SESSION_DEFAULT_TIMEOUT = 30; + // Alias for the dynamic table used to retrieve the dataset const DATASET_TABLE_ALIAS = 'datasetTableWidget'; // Parameters names... // ...to reload the dataset - const DATASET_RELOAD_PARAMETER = 'reloadDataset'; + const DATASET_RELOAD = 'reloadDataset'; // ...to specify permissions that are needed to use this TableWidget - const REQUIRED_PERMISSIONS_PARAMETER = 'requiredPermissions'; + const REQUIRED_PERMISSIONS = 'requiredPermissions'; // ...stament to retrieve the dataset - const QUERY_PARAMETER = 'query'; + const QUERY = 'query'; // ...to specify more columns or aliases for them const ADDITIONAL_COLUMNS = 'additionalColumns'; @@ -50,6 +58,7 @@ class TableWidgetLib const DATASET_REPRESENTATION = 'datasetRepresentation'; const DATASET_REP_OPTIONS = 'datasetRepOptions'; const DATASET_REP_FIELDS_DEFS = 'datasetRepFieldsDefs'; + const DATASET_TIMEOUT = 'datasetTimeout'; // ...and its expiring time // Different dataset representations const DATASET_REP_TABLESORTER = 'tablesorter'; @@ -57,7 +66,7 @@ class TableWidgetLib const DATASET_REP_TABULATOR = 'tabulator'; const PERMISSION_TABLE_METHOD = 'TableWidget'; // Name for fake method to be checked by the PermissionLib - const PERMISSION_TYPE = 'rw'; + const PERMISSION_TYPE = 'r'; private $_ci; // Code igniter instance private $_tableUniqueId; // unique id for this table widget @@ -86,13 +95,13 @@ class TableWidgetLib // Gets the required permissions from the session if they are not provided as parameter $rq = $requiredPermissions; - if ($rq == null) $rq = $this->getSessionElement(self::REQUIRED_PERMISSIONS_PARAMETER); + if ($rq == null) $rq = $this->getSessionElement(self::REQUIRED_PERMISSIONS); return $this->_ci->permissionlib->hasAtLeastOne($rq, self::PERMISSION_TABLE_METHOD, self::PERMISSION_TYPE); } /** - * Wrapper method to the session helper funtions to retrieve the whole session for this filter + * Wrapper method to the session helper funtions to retrieve the whole session for this table widget */ public function getSession() { @@ -100,7 +109,7 @@ class TableWidgetLib } /** - * Wrapper method to the session helper funtions to retrieve one element from the session of this filter + * Wrapper method to the session helper funtions to retrieve one element from the session of this table widget */ public function getSessionElement($name) { @@ -115,7 +124,7 @@ class TableWidgetLib } /** - * Wrapper method to the session helper funtions to set the whole session for this filter + * Wrapper method to the session helper funtions to set the whole session for this table widget */ public function setSession($data) { @@ -123,7 +132,7 @@ class TableWidgetLib } /** - * Wrapper method to the session helper funtions to set one element in the session for this filter + * Wrapper method to the session helper funtions to set one element in the session for this table widget */ public function setSessionElement($name, $value) { @@ -135,7 +144,30 @@ class TableWidgetLib } /** - * Generate the query to retrieve the dataset for a filter + * + */ + public function dropExpiredTableWidgets() + { + // Loads the session for all the table widgets + $tableWidgetsSession = getSession(self::SESSION_NAME); + + // If something is present in session + if ($tableWidgetsSession != null) + { + // Loops in the session for all the table widgets + foreach ($tableWidgetsSession as $tableWidget => $tableWidgetData) + { + // If this table widget is not the currrent used table widget and the it is expired... + if ($this->_tableUniqueId != $tableWidget && $tableWidgetData[self::SESSION_TIMEOUT] <= time()) + { + cleanSessionElement(self::SESSION_NAME, $tableWidget); // ...remove it + } + } + } + } + + /** + * Generate the query to retrieve the dataset for a table widget */ public function generateDatasetQuery($query) { @@ -177,7 +209,7 @@ class TableWidgetLib } /** - * Return an unique string that identify this filter widget + * Return an unique string that identify this table widget * NOTE: The default value is the URI where the FilterWidget is called * If the fhc_controller_id is present then is also used */ diff --git a/application/libraries/UDFLib.php b/application/libraries/UDFLib.php index 6166b44a9..bc8552c25 100644 --- a/application/libraries/UDFLib.php +++ b/application/libraries/UDFLib.php @@ -540,7 +540,7 @@ class UDFLib { if (is_object($udfResults) && isset($udfResults->retval)) { - show_error($udfResults->retval); + show_error(getError($udfResults)); } elseif (is_string($udfResults)) { diff --git a/application/libraries/VariableLib.php b/application/libraries/VariableLib.php index 3d732984f..2f038531b 100644 --- a/application/libraries/VariableLib.php +++ b/application/libraries/VariableLib.php @@ -57,7 +57,7 @@ class VariableLib if (!isEmptyString($uid) && !isEmptyString($name) && is_numeric($change)) { - $change = (int) $change; + $change = (int)$change; $varres = $this->_ci->VariableModel->getVariables($uid, array($name)); if (isSuccess($varres)) diff --git a/application/models/accounting/Konto_model.php b/application/models/accounting/Konto_model.php index d76b2bd46..cbd7a6f2d 100644 --- a/application/models/accounting/Konto_model.php +++ b/application/models/accounting/Konto_model.php @@ -22,8 +22,7 @@ class Konto_model extends DB_Model $this->addJoin('wawi.tbl_konto_kostenstelle', 'konto_id'); $konten = $this->loadWhere(array('kostenstelle_id' => $kostenstelle_id)); - if ($konten->error) - return error($konten->retval); + if ($konten->error) return $konten; return $konten; } diff --git a/application/models/accounting/Vertrag_model.php b/application/models/accounting/Vertrag_model.php index 44b8a0881..8725cd98d 100644 --- a/application/models/accounting/Vertrag_model.php +++ b/application/models/accounting/Vertrag_model.php @@ -60,14 +60,14 @@ class Vertrag_model extends DB_Model { if ($this->LehreinheitmitarbeiterModel->hasVertrag($mitarbeiter_uid, $lehreinheit_id)) { - return success(null); // Exit if Lehrauftrag already has Vertrag + return error('Lehrauftrag existiert bereits'); // Exit if Lehrauftrag already has Vertrag } } elseif ($vertragstyp_kurzbz == 'Betreuung') { if ($this->ProjektbetreuerModel->hasVertrag($person_id, $projektarbeit_id)) { - return success(null); // Exit if Projektbetreuung already has Vertrag + return error('Lehrauftrag existiert bereits'); // Exit if Projektbetreuung already has Vertrag } } diff --git a/application/models/accounting/Vertragvertragsstatus_model.php b/application/models/accounting/Vertragvertragsstatus_model.php index c2bd9cc7d..609394321 100644 --- a/application/models/accounting/Vertragvertragsstatus_model.php +++ b/application/models/accounting/Vertragvertragsstatus_model.php @@ -52,19 +52,21 @@ class Vertragvertragsstatus_model extends DB_Model /** * Set Vertragsstatus for the given Vertrag and Mitarbeiter. - * @param $vertrag_id - * @param $vertragsstatus_kurzbz - * @param $mitarbeiter_uid - * @return array|null On success object, retval is true. Null if status already exist for this vertrag. + * @param integer $vertrag_id + * @param string $mitarbeiter_uid + * @param string $vertragsstatus_kurzbz + * @return object On success, return success object. + * If status already exists or earlier status is missing, return error object. */ public function setStatus($vertrag_id, $mitarbeiter_uid, $vertragsstatus_kurzbz){ // Check if vertrag has already this status $result = $this->hasStatus($vertrag_id, $mitarbeiter_uid, $vertragsstatus_kurzbz); - + + // If status is already set, return error message if (hasData($result)) { - return success(null); // return null if status is already set + return error('Fehler: Status bereits vorhanden.'); } // If new status should be 'akzeptiert', the latest status has to be 'erteilt' @@ -72,10 +74,11 @@ class Vertragvertragsstatus_model extends DB_Model { $result = $this->getLastStatus($vertrag_id, $mitarbeiter_uid); $last_status = getData($result)[0]->vertragsstatus_kurzbz; - + + // If latest status is not 'erteilt', return error message if ($last_status != 'erteilt') { - return success(null); // return null if latest status is not 'erteilt' + return error('Fehler: Vor Status \'angenommen\' muss erst Status \'erteilt\' gesetzt sein.'); } } diff --git a/application/models/codex/Bisverwendung_model.php b/application/models/codex/Bisverwendung_model.php index 20f942865..707e8af36 100644 --- a/application/models/codex/Bisverwendung_model.php +++ b/application/models/codex/Bisverwendung_model.php @@ -15,7 +15,7 @@ class Bisverwendung_model extends DB_Model /** * Get latest (active) Verwendung of the user. * @param string $uid - * @param bool $active If false, returns latest Verwendung no matter if actual or not (ignores ending/beginning date). + * @param bool $active If false, returns latest Verwendung no matter if it is still actual. * @return array */ public function getLast($uid, $active = true) @@ -28,14 +28,14 @@ class Bisverwendung_model extends DB_Model mitarbeiter_uid = '. $this->escape($uid). ' AND ( beginn <= NOW() OR beginn IS NULL ) AND ( ende >= NOW() OR ende IS NULL ) - ORDER BY ende DESC NULLS LAST, beginn DESC NULLS LAST + ORDER BY ende DESC NULLS FIRST, beginn DESC NULLS LAST '; } else { $condition = ' mitarbeiter_uid = '. $this->escape($uid). ' - ORDER BY ende DESC NULLS LAST, beginn DESC NULLS LAST + ORDER BY ende DESC NULLS FIRST, beginn DESC NULLS LAST '; } diff --git a/application/models/crm/Akte_model.php b/application/models/crm/Akte_model.php index b30e175c3..fe9db5330 100644 --- a/application/models/crm/Akte_model.php +++ b/application/models/crm/Akte_model.php @@ -186,8 +186,7 @@ class Akte_model extends DB_Model $dokumente = $this->loadWhere($where); - if($dokumente->error) - return error($dokumente->retval); + if($dokumente->error) return $dokumente; return success($dokumente->retval); } diff --git a/application/models/crm/Prestudent_model.php b/application/models/crm/Prestudent_model.php index 32673d10d..d5c52a3c3 100644 --- a/application/models/crm/Prestudent_model.php +++ b/application/models/crm/Prestudent_model.php @@ -214,7 +214,7 @@ class Prestudent_model extends DB_Model if ($lastStatus->error) { - return error($lastStatus->retval); + return $lastStatus; } if (count($lastStatus->retval) > 0) @@ -222,7 +222,7 @@ class Prestudent_model extends DB_Model //get Studiengangname from Studienplan and -ordnung $studienordnung = $this->PrestudentstatusModel->getStudienordnungFromPrestudent($prestudent_id); if ($studienordnung->error) - return error($studienordnung->retval); + return $studienordnung; if (count($studienordnung->retval) > 0) { @@ -239,7 +239,7 @@ class Prestudent_model extends DB_Model $language = $this->SpracheModel->load($lastStatus->retval[0]->sprache); if ($language->error) - return error($language->retval); + return $language; if (count($language->retval) > 0) $lastStatus->retval[0]->sprachedetails = $language->retval[0]; @@ -257,7 +257,7 @@ class Prestudent_model extends DB_Model ) ); if ($bewerbungstermin->error) - return error($bewerbungstermin->retval); + return $bewerbungstermin; if (count($bewerbungstermin->retval) > 0) { diff --git a/application/models/crm/Prestudentstatus_model.php b/application/models/crm/Prestudentstatus_model.php index 719ddf884..d579037e1 100644 --- a/application/models/crm/Prestudentstatus_model.php +++ b/application/models/crm/Prestudentstatus_model.php @@ -123,7 +123,7 @@ class Prestudentstatus_model extends DB_Model if ($lastStatus->error) { - return error($lastStatus->retval); + return $lastStatus; } if (count($lastStatus->retval) > 0) @@ -158,7 +158,7 @@ class Prestudentstatus_model extends DB_Model if ($lastStatus->error) { - return error($lastStatus->retval); + return $lastStatus; } if (count($lastStatus->retval) > 0) diff --git a/application/models/education/Lehrveranstaltung_model.php b/application/models/education/Lehrveranstaltung_model.php index 1235769ac..4941ba9bd 100644 --- a/application/models/education/Lehrveranstaltung_model.php +++ b/application/models/education/Lehrveranstaltung_model.php @@ -65,7 +65,7 @@ class Lehrveranstaltung_model extends DB_Model $result = $this->StudiensemesterModel->getAusbildungssemesterByStudiensemesterAndStudiengang($studiensemester_kurzbz, $studiengang_kz_item); if (isError($result)) - return error($result->retval); + return error(getError($result)); foreach ($result->retval as $semester) { @@ -104,7 +104,7 @@ class Lehrveranstaltung_model extends DB_Model if (count($studiengang_kz_arr) > 0) $query .= " AND tbl_lehrveranstaltung.studiengang_kz IN (". implode(", ", $studiengang_kz_arr).")"; - + if (count($lehrveranstaltung_id_arr) > 0) { $query .= " AND tbl_lehrveranstaltung.lehrveranstaltung_id IN (". implode(', ', $lehrveranstaltung_id_arr).")"; @@ -144,7 +144,7 @@ class Lehrveranstaltung_model extends DB_Model WHERE vw_student_lehrveranstaltung.studiensemester_kurzbz=? AND - vw_student_lehrveranstaltung.lehrveranstaltung_id=? + vw_student_lehrveranstaltung.lehrveranstaltung_id=? ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC"; return $this->execQuery($query, array($studiensemester_kurzbz, $lehrveranstaltung_id)); diff --git a/application/models/person/Person_model.php b/application/models/person/Person_model.php index 1291427b6..388f77b0a 100644 --- a/application/models/person/Person_model.php +++ b/application/models/person/Person_model.php @@ -158,8 +158,7 @@ class Person_model extends DB_Model $person = $this->load($person_id); - if($person->error) - return error($person->retval); + if($person->error) return $person; //return null if not found if(count($person->retval) < 1) @@ -170,14 +169,13 @@ class Person_model extends DB_Model $this->KontaktModel->addOrder('kontakttyp'); $where = $zustellung_only === true ? array('person_id' => $person_id, 'zustellung' => true) : array('person_id' => $person_id); $kontakte = $this->KontaktModel->loadWhere($where); - if($kontakte->error) - return error($kontakte->retval); + if($kontakte->error) return $kontakte; + $where = $zustellung_only === true ? array('person_id' => $person_id, 'zustelladresse' => true) : array('person_id' => $person_id); $this->AdresseModel->addSelect('public.tbl_adresse.*, bis.tbl_nation.kurztext AS nationkurztext'); $this->AdresseModel->addJoin('bis.tbl_nation', 'tbl_adresse.nation = tbl_nation.nation_code', 'LEFT'); $adressen = $this->AdresseModel->loadWhere($where); - if($adressen->error) - return error($adressen->retval); + if($adressen->error) return $adressen; $stammdaten = $person->retval[0]; $stammdaten->kontakte = $kontakte->retval; @@ -207,28 +205,12 @@ class Person_model extends DB_Model */ public function getLanguage($uid) { - $language = DEFAULT_LANGUAGE; - + $this->addSelect('public.tbl_person.sprache'); $this->addJoin('public.tbl_benutzer', 'person_id'); + $this->addJoin('public.tbl_sprache', 'sprache'); $this->addOrder('public.tbl_person.updateamum', 'DESC'); $this->addOrder('public.tbl_person.insertvon', 'DESC'); - $persons = $this->loadWhere(array('uid' => $uid)); - - if (hasData($persons)) - { - for ($i = 0; $i < count($persons->retval); $i++) - { - $person = $persons->retval[$i]; - - if (!isEmptyString($person->sprache)) - { - $language = $person->sprache; - break; - } - } - } - - return $language; + return $this->loadWhere(array('uid' => $uid, 'content' => true)); } } diff --git a/application/models/system/MessageToken_model.php b/application/models/system/MessageToken_model.php index 2398bf57a..cf1745ea6 100644 --- a/application/models/system/MessageToken_model.php +++ b/application/models/system/MessageToken_model.php @@ -37,17 +37,7 @@ class MessageToken_model extends DB_Model WHERE r.token = ? LIMIT 1'; - $result = $this->db->query($sql, array(MSG_STATUS_DELETED, $token)); - - // If no errors occurred - if ($result) - { - return success($result->result()); - } - else - { - return error($this->db->error()); - } + return $this->execQuery($sql, array(MSG_STATUS_DELETED, $token)); } /** @@ -74,25 +64,24 @@ class MessageToken_model extends DB_Model WHERE r.token = ? LIMIT 1'; - $msgs = $this->db->query($sql, array(MSG_STATUS_ARCHIVED, $token)); + $msgsResult = $this->execQuery($sql, array(MSG_STATUS_ARCHIVED, $token)); // If no errors occurred - if ($msgs) + if (isSuccess($msgsResult)) { - $msgs_result = $msgs->result(); // If at least a record is present - if (count($msgs_result) > 0) + if (hasData($msgsResult)) { - $msg = $msgs_result[0]; + $msg = getData($msgsResult)[0]; + $msgStatusResult = error(); - $msgStatusResult = false; // pessimistic expectation + $this->load->model('system/MsgStatus_model', 'MsgStatusModel'); // If the status of the message is unread if ($msg->status == MSG_STATUS_UNREAD) { // Insert the read status - $msgStatusResult = $this->db->insert( - 'public.tbl_msg_status', + $msgStatusResult = $this->MsgStatusModel->insert( array( 'message_id' => $msg->message_id, 'person_id' => $msg->receiver_id, @@ -108,31 +97,23 @@ class MessageToken_model extends DB_Model // If the status of the message is read else if ($msg->status == MSG_STATUS_READ) { - // Update updateamum to current date - $this->db->set('updateamum', 'NOW()'); - - $this->db->where('message_id', $msg->message_id); - $this->db->where('person_id', $msg->receiver_id); - $this->db->where('status', MSG_STATUS_READ); - - $msgStatusResult = $this->db->update('public.tbl_msg_status'); + $msgStatusResult = $this->MsgStatusModel->update( + array( + 'message_id' => $msg->message_id, + 'person_id' => $msg->receiver_id, + 'status' => MSG_STATUS_READ + ), + array('updateamum' => 'NOW()') + ); } - // If some of the previous DB manipulation (update or insert) has failed - if (!$msgStatusResult) - { - return error($this->db->error()); - } + return $msgStatusResult; } - - return success($msgs_result); } else { - return error($this->db->error()); + return $msgsResult; } - - return success($result->result()); } /** @@ -152,17 +133,7 @@ class MessageToken_model extends DB_Model LEFT JOIN public.tbl_mitarbeiter m ON(b.uid = m.mitarbeiter_uid) WHERE p.person_id = ?'; - $result = $this->db->query($sql, array($person_id)); - - // If no errors occurred - if ($result) - { - return success($result->result()); - } - else - { - return error($this->db->error()); - } + return $this->execQuery($sql, array($person_id)); } /** @@ -180,17 +151,7 @@ class MessageToken_model extends DB_Model FROM public.tbl_person WHERE person_id %s ?'; - $result = $this->db->query(sprintf($sql, is_array($person_id) ? 'IN' : '='), array($person_id)); - - // If no errors occurred - if ($result) - { - return success($result->result()); - } - else - { - return error($this->db->error()); - } + return $this->execQuery(sprintf($sql, is_array($person_id) ? 'IN' : '='), array($person_id)); } /** @@ -200,35 +161,12 @@ class MessageToken_model extends DB_Model { $sql = 'SELECT m.mitarbeiter_uid FROM public.tbl_person p - LEFT JOIN public.tbl_benutzer b USING(person_id) - LEFT JOIN public.tbl_mitarbeiter m ON(b.uid = m.mitarbeiter_uid) + JOIN public.tbl_benutzer b USING(person_id) + JOIN public.tbl_mitarbeiter m ON(b.uid = m.mitarbeiter_uid) WHERE p.person_id = ? AND b.aktiv = TRUE'; - $result = $this->db->query($sql, array($person_id)); - - // If no errors occurred - if ($result) - { - // If data are present - if (is_array($result->result()) && count($result->result()) > 0) - { - $personresults = $result->result(); - $person = $personresults[0]; - - // If it is an employee - if ($person->mitarbeiter_uid != null) - { - return true; - } - } - - return false; - } - else - { - return error($this->db->error()); - } + return $this->execQuery($sql, array($person_id)); } /** @@ -254,28 +192,6 @@ class MessageToken_model extends DB_Model LIMIT 1 '; - $result = $this->db->query($sql, array($oe_kurzbz)); - if ($result) // If no errors occurred - { - $result_arr = $result->result(); - // If data are present - if (is_array($result_arr) - && count($result_arr) > 0 - && is_object($result_arr[0]) - && isset($result_arr[0]->oe_kurzbz)) - { - return success($result_arr[0]->oe_kurzbz); - } - else - { - return error(); - } - } - else - { - return error($this->db->error()); - } - - return $result; + return $this->execQuery($sql, array($oe_kurzbz)); } } diff --git a/application/models/system/PersonLock_model.php b/application/models/system/PersonLock_model.php index 1d106b789..f0aadd327 100644 --- a/application/models/system/PersonLock_model.php +++ b/application/models/system/PersonLock_model.php @@ -29,8 +29,7 @@ class PersonLock_model extends DB_Model $result = $this->loadWhere($lockdata); - if ($result->error) - return error($result->retval); + if ($result->error) return $result; if (count($result->retval) > 0) return success($result->retval); @@ -49,8 +48,7 @@ class PersonLock_model extends DB_Model { $locked = $this->checkIfLocked($person_id, $app); - if ($locked->error) - return error($locked->retval); + if ($locked->error) return $locked; //insert only if not already locked if ($locked->retval === null) @@ -77,8 +75,7 @@ class PersonLock_model extends DB_Model foreach ($locks->retval as $lock) { $result = $this->delete($lock->lock_id); - if ($result->error) - return error($result->retval); + if ($result->error) return $result; $deleted[] = $lock; } diff --git a/application/models/system/Variable_model.php b/application/models/system/Variable_model.php index 1fcb5b274..875fc8876 100644 --- a/application/models/system/Variable_model.php +++ b/application/models/system/Variable_model.php @@ -24,30 +24,32 @@ class Variable_model extends DB_Model */ public function getVariables($uid, $names = null) { - if (isEmptyString($uid) || (isset($names) && !is_array($names))) + if (isEmptyString($uid)) $result = error('wrong parameters passed'); else { $vardata = array(); + $parametersArray = array($uid); $qry = "SELECT name, wert FROM public.tbl_variable WHERE uid = ?"; - if (isset($names)) + if (!isEmptyArray($names)) { - $qry .= " AND name IN ('".implode(',', $names)."')"; + $qry .= " AND name IN ?"; + $parametersArray[] = $names; } $qry .= ";"; - $varresults = $this->execQuery($qry, array($uid)); + $varresults = $this->execQuery($qry, $parametersArray); if (hasData($varresults)) { $varresults = getData($varresults); - foreach ($varresults as $varresult) - { - if (isset($varresult->wert)) - $vardata[$varresult->name] = $varresult->wert; - } + foreach ($varresults as $varresult) + { + if (isset($varresult->wert)) + $vardata[$varresult->name] = $varresult->wert; + } } $vardefaults = $this->VariablennameModel->getDefaults($names); @@ -56,7 +58,6 @@ class Variable_model extends DB_Model { $vardefaults = getData($vardefaults); - foreach ($vardefaults as $vardefault) { if (!isset($vardata[$vardefault->name]) && isset($vardefault->defaultwert)) diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php index 27a348ae7..2a9cc4245 100644 --- a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php @@ -182,7 +182,8 @@ FROM (SELECT uid FROM - public.tbl_benutzer + public.tbl_benutzer JOIN public.tbl_mitarbeiter ma + ON tbl_benutzer.uid = ma.mitarbeiter_uid WHERE person_id = tmp_projektbetreuung.person_id ORDER BY aktiv DESC, updateaktivam DESC -- accept inactive as some person_ids have no active, but order them last @@ -296,7 +297,6 @@ $filterWidgetArray = array( 'tableUniqueId' => 'acceptLehrauftrag', 'requiredPermissions' => 'lehre/lehrauftrag_akzeptieren', 'datasetRepresentation' => 'tabulator', - 'reloadDataset' => true, // reload query on page refresh 'columnsAliases' => array( // TODO: use phrasen 'Status', // alias for row_index, because row_index is formatted to display the status icons 'LV-Teil', diff --git a/application/views/lehre/lehrauftrag/approveLehrauftragData.php b/application/views/lehre/lehrauftrag/approveLehrauftragData.php index fbc30db1c..1da65a0b8 100644 --- a/application/views/lehre/lehrauftrag/approveLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/approveLehrauftragData.php @@ -187,7 +187,8 @@ FROM (SELECT uid FROM - public.tbl_benutzer + public.tbl_benutzer JOIN public.tbl_mitarbeiter ma + ON tbl_benutzer.uid = ma.mitarbeiter_uid WHERE person_id = tmp_projektbetreuung.person_id ORDER BY aktiv DESC, updateaktivam DESC -- accept inactive as some person_ids have no active, but order them last @@ -304,7 +305,6 @@ $filterWidgetArray = array( 'tableUniqueId' => 'approveLehrauftrag', 'requiredPermissions' => 'lehre/lehrauftrag_erteilen', 'datasetRepresentation' => 'tabulator', - 'reloadDataset' => true, // reload query on page refresh 'columnsAliases' => array( // TODO: use phrasen 'Status', // alias for row_index, because row_index is formatted to display the status icons 'Personalnummer', diff --git a/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php b/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php index 04d314636..d5af1b081 100644 --- a/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php @@ -53,7 +53,6 @@ $tableWidgetArray = array( 'tableUniqueId' => 'cancelledLehrauftrag', 'requiredPermissions' => 'lehre/lehrauftrag_akzeptieren', 'datasetRepresentation' => 'tabulator', - 'reloadDataset' => true, // reload query on page refresh 'columnsAliases' => array( // TODO: use phrasen 'Status', 'Studiensemester', diff --git a/application/views/lehre/lehrauftrag/orderLehrauftragData.php b/application/views/lehre/lehrauftrag/orderLehrauftragData.php index b2fa3ac2f..afe41b641 100644 --- a/application/views/lehre/lehrauftrag/orderLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/orderLehrauftragData.php @@ -219,7 +219,8 @@ FROM (SELECT uid FROM - public.tbl_benutzer + public.tbl_benutzer JOIN public.tbl_mitarbeiter ma + ON tbl_benutzer.uid = ma.mitarbeiter_uid WHERE person_id = tmp_projektbetreuung.person_id ORDER BY aktiv DESC, updateaktivam DESC -- accept inactive as some person_ids have no active, but order them last @@ -336,7 +337,6 @@ $filterWidgetArray = array( 'tableUniqueId' => 'orderLehrauftrag', 'requiredPermissions' => 'lehre/lehrauftrag_bestellen', 'datasetRepresentation' => 'tabulator', - 'reloadDataset' => true, // reload query on page refresh 'columnsAliases' => array( // TODO: use phrasen 'Status', // alias for row_index, because row_index is formatted to display the status icons 'Personalnummer', diff --git a/application/views/system/infocenter/infocenterData.php b/application/views/system/infocenter/infocenterData.php index 91a24c463..0c7030059 100644 --- a/application/views/system/infocenter/infocenterData.php +++ b/application/views/system/infocenter/infocenterData.php @@ -274,7 +274,6 @@ 'filter_id' => $this->input->get('filter_id'), 'requiredPermissions' => 'infocenter', 'datasetRepresentation' => 'tablesorter', - 'reloadDataset' => ($this->input->get('reloadDataset')=='true'?true:false), 'customMenu' => true, 'checkboxes' => 'PersonId', 'additionalColumns' => array('Details'), diff --git a/application/views/system/infocenter/infocenterFreigegebenData.php b/application/views/system/infocenter/infocenterFreigegebenData.php index 87a9f78d6..729fabb04 100644 --- a/application/views/system/infocenter/infocenterFreigegebenData.php +++ b/application/views/system/infocenter/infocenterFreigegebenData.php @@ -135,7 +135,7 @@ FROM tbl_prestudentstatus spss WHERE spss.prestudent_id = pss.prestudent_id AND spss.status_kurzbz = '.$REJECTED_STATUS.' - AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende > + AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende > (SELECT start FROM public.tbl_studiensemester sss WHERE studiensemester_kurzbz = '.$STUDIENSEMESTER.')) ) LIMIT 1 @@ -236,7 +236,6 @@ 'filter_id' => $this->input->get('filter_id'), 'requiredPermissions' => 'infocenter', 'datasetRepresentation' => 'tablesorter', - 'reloadDataset' => ($this->input->get('reloadDataset')=='true'?true:false), 'checkboxes' => 'PersonId', 'additionalColumns' => array('Details'), 'columnsAliases' => array( diff --git a/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php b/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php index 652ab4887..22b122bb0 100644 --- a/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php +++ b/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php @@ -204,7 +204,6 @@ 'filter_id' => $this->input->get('filter_id'), 'requiredPermissions' => 'infocenter', 'datasetRepresentation' => 'tablesorter', - 'reloadDataset' => ($this->input->get('reloadDataset')=='true'?true:false), 'checkboxes' => 'PersonId', 'additionalColumns' => array('Details'), 'columnsAliases' => array( diff --git a/application/views/system/logs/logsViewerData.php b/application/views/system/logs/logsViewerData.php index 14cd2902e..13a4207ab 100644 --- a/application/views/system/logs/logsViewerData.php +++ b/application/views/system/logs/logsViewerData.php @@ -14,7 +14,6 @@ ', 'requiredPermissions' => 'admin', 'datasetRepresentation' => 'tablesorter', - 'reloadDataset' => true, 'columnsAliases' => array( 'Log id', 'Request id', diff --git a/application/views/templates/FHC-Header.php b/application/views/templates/FHC-Header.php index 3c1327d5f..03ee011b7 100644 --- a/application/views/templates/FHC-Header.php +++ b/application/views/templates/FHC-Header.php @@ -18,6 +18,7 @@ $addons = isset($addons) ? $addons : false; $ajaxlib = isset($ajaxlib) ? $ajaxlib : false; $bootstrap = isset($bootstrap) ? $bootstrap : false; + $captcha = isset($captcha) ? $captcha : false; $dialoglib = isset($dialoglib) ? $dialoglib : false; $filterwidget = isset($filterwidget) ? $filterwidget : false; $fontawesome = isset($fontawesome) ? $fontawesome : false; @@ -62,12 +63,6 @@ // Font Awesome CSS if ($fontawesome === true) generateCSSsInclude('vendor/components/font-awesome/css/font-awesome.min.css'); - // PivotUI CSS - if ($pivotui === true) - { - generateCSSsInclude('vendor/nicolaskruchten/pivottable/dist/pivot.min.css'); - } - // SB Admin 2 template CSS if ($sbadmintemplate === true) { @@ -75,6 +70,15 @@ generateCSSsInclude('vendor/BlackrockDigital/startbootstrap-sb-admin-2/dist/css/sb-admin-2.min.css'); } + // Securimage CSS + if ($captcha === true) generateCSSsInclude('vendor/dapphp/securimage/securimage.css'); + + // PivotUI CSS + if ($pivotui === true) + { + generateCSSsInclude('vendor/nicolaskruchten/pivottable/dist/pivot.min.css'); + } + // Table sorter CSS if ($tablesorter === true) { @@ -107,6 +111,9 @@ // Eventually required CSS generateCSSsInclude($customCSSs); // Eventually required CSS + // CSS End + // -------------------------------------------------------------------------------------------------------- + // -------------------------------------------------------------------------------------------------------- // Javascripts @@ -132,19 +139,32 @@ } // jQuery checkboxes + // NOTE: keep it after jQuery includes if ($jquerycheckboxes === true) { generateJSsInclude('vendor/rmariuzzo/jquery-checkboxes/dist/jquery.checkboxes-1.0.7.min.js'); } - // Bootstrap JS - if ($bootstrap === true) generateJSsInclude('vendor/twbs/bootstrap/dist/js/bootstrap.min.js'); - // jQuery treetable // NOTE: keep it after jQuery includes if ($jquerytreetable === true) generateJSsInclude('vendor/ludo/jquery-treetable/jquery.treetable.js'); - // MomentJS + // Bootstrap JS + if ($bootstrap === true) generateJSsInclude('vendor/twbs/bootstrap/dist/js/bootstrap.min.js'); + + // SB Admin 2 template JS + if ($sbadmintemplate === true) + { + generateJSsInclude('vendor/BlackrockDigital/startbootstrap-sb-admin-2/vendor/metisMenu/metisMenu.min.js'); + generateJSsInclude('vendor/BlackrockDigital/startbootstrap-sb-admin-2/dist/js/sb-admin-2.min.js'); + generateBackwardCompatibleJSMsIe('vendor/afarkas/html5shiv/dist/html5shiv.min.js'); + generateBackwardCompatibleJSMsIe('vendor/scottjehl/Respond/dest/respond.min.js'); + } + + // Securimage JS + if ($captcha === true) generateJSsInclude('vendor/dapphp/securimage/securimage.js'); + + // Moment JS if ($momentjs === true) { generateJSsInclude('vendor/moment/momentjs/min/moment.min.js'); @@ -152,7 +172,7 @@ generateJSsInclude('vendor/moment/momentjs/locale/en-ie.js'); } - // PivotUI CSS + // PivotUI JS if ($pivotui === true) { generateJSsInclude('vendor/nicolaskruchten/pivottable/dist/pivot.min.js'); @@ -176,15 +196,6 @@ // Tinymce JS if ($tinymce === true) generateJSsInclude('vendor/tinymce/tinymce/tinymce.min.js'); - // SB Admin 2 template JS - if ($sbadmintemplate === true) - { - generateJSsInclude('vendor/BlackrockDigital/startbootstrap-sb-admin-2/vendor/metisMenu/metisMenu.min.js'); - generateJSsInclude('vendor/BlackrockDigital/startbootstrap-sb-admin-2/dist/js/sb-admin-2.min.js'); - generateBackwardCompatibleJSMsIe('vendor/afarkas/html5shiv/dist/html5shiv.min.js'); - generateBackwardCompatibleJSMsIe('vendor/scottjehl/Respond/dest/respond.min.js'); - } - // -------------------------------------------------------------------------------------------------------- // From public folder diff --git a/application/views/templates/header.php b/application/views/templates/header.php index 063351e07..fa2cc127a 100644 --- a/application/views/templates/header.php +++ b/application/views/templates/header.php @@ -18,28 +18,26 @@ isset($title) ? $title = 'VileSci - '.$title : $title = 'VileSci'; !isset($widgetsCSS) ? $widgetsCSS = false : $widgetsCSS = $widgetsCSS; !isset($datepicker) ? $datepicker = false : $datepicker = $datepicker; -if ($tablesort || $jquery_checkboxes || $jquery_custom) - $jqueryV1 = true; +if ($tablesort || $jquery_checkboxes || $jquery_custom) $jqueryV1 = true; -if($datepicker) - $jqueryui = true; +if($datepicker) $jqueryui = true; -if($jqueryui) - $jqueryV2 = true; +if($jqueryui) $jqueryV2 = true; -if($jqueryV1 && $jqueryV2) - show_error("Two JQuery versions used: composer and include folder version"); +if($jqueryV1 && $jqueryV2) show_error("Two JQuery versions used: composer and include folder version"); ?> + <?php echo $title; ?> - + + - + @@ -62,7 +60,7 @@ if($jqueryV1 && $jqueryV2) - + @@ -99,17 +97,21 @@ if($jqueryV1 && $jqueryV2) + + + + diff --git a/application/widgets/FilterWidget.php b/application/widgets/FilterWidget.php index d168744c8..1cef91c15 100644 --- a/application/widgets/FilterWidget.php +++ b/application/widgets/FilterWidget.php @@ -57,6 +57,8 @@ class FilterWidget extends Widget private $_reloadDataset; // Force Reload of Dataset + private $_sessionTimeout; // session expiring time + private static $_FilterWidgetInstance; // static property that contains the instance of itself /** @@ -186,7 +188,7 @@ class FilterWidget extends Widget $this->_datasetName = null; $this->_filterKurzbz = null; $this->_filterId = null; - $this->_reloadDataset = null; + $this->_reloadDataset = true; // by default the dataset is NOT cached in session $this->_query = null; $this->_additionalColumns = null; $this->_columnsAliases = null; @@ -202,27 +204,28 @@ class FilterWidget extends Widget $this->_datasetRepresentation = null; $this->_datasetRepresentationOptions = null; $this->_datasetRepFieldsDefs = null; + $this->_sessionTimeout = FilterWidgetLib::SESSION_DEFAULT_TIMEOUT; // Retrieved the required permissions parameter if present - if (isset($args[FilterWidgetLib::REQUIRED_PERMISSIONS_PARAMETER])) + if (isset($args[FilterWidgetLib::REQUIRED_PERMISSIONS])) { - $this->_requiredPermissions = $args[FilterWidgetLib::REQUIRED_PERMISSIONS_PARAMETER]; + $this->_requiredPermissions = $args[FilterWidgetLib::REQUIRED_PERMISSIONS]; } // Parameters needed to retrieve univocally a filter from DB - if (isset($args[FilterWidgetLib::APP_PARAMETER])) + if (isset($args[FilterWidgetLib::APP])) { - $this->_app = $args[FilterWidgetLib::APP_PARAMETER]; + $this->_app = $args[FilterWidgetLib::APP]; } - if (isset($args[FilterWidgetLib::DATASET_NAME_PARAMETER])) + if (isset($args[FilterWidgetLib::DATASET_NAME])) { - $this->_datasetName = $args[FilterWidgetLib::DATASET_NAME_PARAMETER]; + $this->_datasetName = $args[FilterWidgetLib::DATASET_NAME]; } - if (isset($args[FilterWidgetLib::FILTER_KURZBZ_PARAMETER])) + if (isset($args[FilterWidgetLib::FILTER_KURZBZ])) { - $this->_filterKurzbz = $args[FilterWidgetLib::FILTER_KURZBZ_PARAMETER]; + $this->_filterKurzbz = $args[FilterWidgetLib::FILTER_KURZBZ]; } if (isset($args[FilterWidgetLib::FILTER_ID])) @@ -231,14 +234,14 @@ class FilterWidget extends Widget } // How to retrieve data for the filter: SQL statement or a result from DB - if (isset($args[FilterWidgetLib::QUERY_PARAMETER])) + if (isset($args[FilterWidgetLib::QUERY])) { - $this->_query = $args[FilterWidgetLib::QUERY_PARAMETER]; + $this->_query = $args[FilterWidgetLib::QUERY]; } - if (isset($args[FilterWidgetLib::DATASET_RELOAD_PARAMETER])) + if (isset($args[FilterWidgetLib::DATASET_RELOAD])) { - $this->_reloadDataset = $args[FilterWidgetLib::DATASET_RELOAD_PARAMETER]; + $this->_reloadDataset = $args[FilterWidgetLib::DATASET_RELOAD]; } // Parameter is used to add extra columns to the dataset @@ -332,6 +335,12 @@ class FilterWidget extends Widget { $this->_datasetRepFieldsDefs = $args[FilterWidgetLib::DATASET_REP_FIELDS_DEFS]; } + + // To specify the expiring session time + if (isset($args[FilterWidgetLib::SESSION_TIMEOUT]) && is_numeric($args[FilterWidgetLib::SESSION_TIMEOUT])) + { + $this->_sessionTimeout = $args[FilterWidgetLib::SESSION_TIMEOUT]; + } } /** @@ -339,31 +348,36 @@ class FilterWidget extends Widget */ private function _checkParameters($args) { + // If no options are given to this widget... if (!is_array($args) || (is_array($args) && count($args) == 0)) { show_error('Second parameter of the widget call must be a NOT empty associative array'); } - else + else // ...otherwise { - if ((!isset($args[FilterWidgetLib::APP_PARAMETER]) && !isset($args[FilterWidgetLib::DATASET_NAME_PARAMETER])) + // Parameters (app AND dataset name) OR filter id are mandatory + if ((!isset($args[FilterWidgetLib::APP]) && !isset($args[FilterWidgetLib::DATASET_NAME])) && !isset($args[FilterWidgetLib::FILTER_ID])) { show_error( - 'The parameters ("'.FilterWidgetLib::APP_PARAMETER.'" AND "'.FilterWidgetLib::DATASET_NAME_PARAMETER.') OR "'. + 'The parameters ("'.FilterWidgetLib::APP.'" AND "'.FilterWidgetLib::DATASET_NAME.') OR "'. FilterWidgetLib::FILTER_ID.'" must be specified' ); } - if (!isset($args[FilterWidgetLib::QUERY_PARAMETER])) + // The query parameter is mandatory + if (!isset($args[FilterWidgetLib::QUERY])) { - show_error('The parameters "'.FilterWidgetLib::QUERY_PARAMETER.'" must be specified'); + show_error('The parameter "'.FilterWidgetLib::QUERY.'" must be specified'); } + // The dataset representation parameter is mandatory if (!isset($args[FilterWidgetLib::DATASET_REPRESENTATION])) { show_error('The parameter "'.FilterWidgetLib::DATASET_REPRESENTATION.'" must be specified'); } + // Checks if the dataset representation parameter is valid if (isset($args[FilterWidgetLib::DATASET_REPRESENTATION]) && $args[FilterWidgetLib::DATASET_REPRESENTATION] != FilterWidgetLib::DATASET_REP_TABLESORTER && $args[FilterWidgetLib::DATASET_REPRESENTATION] != FilterWidgetLib::DATASET_REP_PIVOTUI @@ -377,6 +391,12 @@ class FilterWidget extends Widget .FilterWidgetLib::DATASET_REP_TABULATOR.'")' ); } + + // If given the session timeout parameter must be a number + if (isset($args[FilterWidgetLib::SESSION_TIMEOUT]) && !is_numeric($args[FilterWidgetLib::SESSION_TIMEOUT])) + { + show_error('The parameter "'.FilterWidgetLib::SESSION_TIMEOUT.'" must be a number'); + } } } @@ -385,6 +405,9 @@ class FilterWidget extends Widget */ private function _startFilterWidget() { + // Looks for expired filter widgets in session and drops them + $this->filterwidgetlib->dropExpiredFilterWidgets(); + // Read the all session for this filter widget $session = $this->filterwidgetlib->getSession(); @@ -402,14 +425,14 @@ class FilterWidget extends Widget } else // else if the filter loaded in session is the same that is being requested { - // Get SESSION_RELOAD_DATASET from the session - $sessionReloadDataset = $this->filterwidgetlib->getSessionElement(FilterWidgetLib::SESSION_RELOAD_DATASET); + // Get SESSION_DATASET_RELOAD from the session + $sessionReloadDataset = $this->filterwidgetlib->getSessionElement(FilterWidgetLib::SESSION_DATASET_RELOAD); // if Filter changed or reload is forced by parameter then reload the Dataset if ($this->_reloadDataset === true || $sessionReloadDataset === true) { // Set as false to stop changing the dataset - $this->filterwidgetlib->setSessionElement(FilterWidgetLib::SESSION_RELOAD_DATASET, false); + $this->filterwidgetlib->setSessionElement(FilterWidgetLib::SESSION_DATASET_RELOAD, false); // Generate dataset query using filters from the session $datasetQuery = $this->filterwidgetlib->generateDatasetQuery( @@ -467,8 +490,8 @@ class FilterWidget extends Widget $this->filterwidgetlib->setSession( array( FilterWidgetLib::FILTER_ID => $this->_filterId, // the current filter id - FilterWidgetLib::APP_PARAMETER => $this->_app, // the current app parameter - FilterWidgetLib::DATASET_NAME_PARAMETER => $this->_datasetName, // the carrent dataset name + FilterWidgetLib::APP => $this->_app, // the current app parameter + FilterWidgetLib::DATASET_NAME => $this->_datasetName, // the carrent dataset name FilterWidgetLib::SESSION_FILTER_NAME => $filterName, // the current filter name FilterWidgetLib::SESSION_FIELDS => $this->FiltersModel->getExecutedQueryListFields(), // all the fields of the dataset FilterWidgetLib::SESSION_SELECTED_FIELDS => $this->_getColumnsNames($parsedFilterJson->columns), // all the selected fields @@ -479,7 +502,7 @@ class FilterWidget extends Widget FilterWidgetLib::SESSION_METADATA => $this->FiltersModel->getExecutedQueryMetaData(), // the metadata of the dataset FilterWidgetLib::SESSION_ROW_NUMBER => count($dataset->retval), // the number of loaded rows by this filter FilterWidgetLib::SESSION_DATASET => $dataset->retval, // the entire dataset - FilterWidgetLib::SESSION_RELOAD_DATASET => false, // if the dataset must be reloaded, not needed the first time + FilterWidgetLib::SESSION_DATASET_RELOAD => false, // if the dataset must be reloaded, not needed the first time FilterWidgetLib::SESSION_DATASET_REPRESENTATION => $this->_datasetRepresentation, // the choosen dataset representation FilterWidgetLib::SESSION_DATASET_REP_OPTIONS => $this->_datasetRepresentationOptions, // the choosen dataset representation options FilterWidgetLib::SESSION_DATASET_REP_FIELDS_DEFS => $this->_datasetRepFieldsDefs // the choosen dataset representation record fields definition @@ -489,9 +512,11 @@ class FilterWidget extends Widget } } + // NOTE: latest operations to be performed in the session to be shure that they are always present // To be always stored in the session, otherwise is not possible to load data from Filters controller - // NOTE: must the latest operation to be performed in the session to be shure that is always present - $this->filterwidgetlib->setSessionElement(FilterWidgetLib::REQUIRED_PERMISSIONS_PARAMETER, $this->_requiredPermissions); + $this->filterwidgetlib->setSessionElement(FilterWidgetLib::REQUIRED_PERMISSIONS, $this->_requiredPermissions); + // Renew or set the session expiring time + $this->filterwidgetlib->setSessionElement(FilterWidgetLib::SESSION_TIMEOUT, strtotime('+'.$this->_sessionTimeout.' minutes', time())); } /** diff --git a/application/widgets/TableWidget.php b/application/widgets/TableWidget.php index a0f64b291..5a000601f 100644 --- a/application/widgets/TableWidget.php +++ b/application/widgets/TableWidget.php @@ -38,6 +38,8 @@ class TableWidget extends Widget private $_reloadDataset; // Force Reload of Dataset + private $_sessionTimeout; // session expiring time + private static $_TableWidgetInstance; // static property that contains the instance of itself /** @@ -114,7 +116,7 @@ class TableWidget extends Widget // Initialize class properties $this->_requiredPermissions = null; - $this->_reloadDataset = null; + $this->_reloadDataset = true; // by default the dataset is NOT cached in session $this->_query = null; $this->_additionalColumns = null; $this->_columnsAliases = null; @@ -124,22 +126,23 @@ class TableWidget extends Widget $this->_datasetRepresentation = null; $this->_datasetRepresentationOptions = null; $this->_datasetRepFieldsDefs = null; + $this->_sessionTimeout = TableWidgetLib::SESSION_DEFAULT_TIMEOUT; // Retrieved the required permissions parameter if present - if (isset($args[TableWidgetLib::REQUIRED_PERMISSIONS_PARAMETER])) + if (isset($args[TableWidgetLib::REQUIRED_PERMISSIONS])) { - $this->_requiredPermissions = $args[TableWidgetLib::REQUIRED_PERMISSIONS_PARAMETER]; + $this->_requiredPermissions = $args[TableWidgetLib::REQUIRED_PERMISSIONS]; } // How to retrieve data for the table: SQL statement or a result from DB - if (isset($args[TableWidgetLib::QUERY_PARAMETER])) + if (isset($args[TableWidgetLib::QUERY])) { - $this->_query = $args[TableWidgetLib::QUERY_PARAMETER]; + $this->_query = $args[TableWidgetLib::QUERY]; } - if (isset($args[TableWidgetLib::DATASET_RELOAD_PARAMETER])) + if (isset($args[TableWidgetLib::DATASET_RELOAD])) { - $this->_reloadDataset = $args[TableWidgetLib::DATASET_RELOAD_PARAMETER]; + $this->_reloadDataset = $args[TableWidgetLib::DATASET_RELOAD]; } // Parameter is used to add extra columns to the dataset @@ -197,6 +200,12 @@ class TableWidget extends Widget { $this->_datasetRepFieldsDefs = $args[TableWidgetLib::DATASET_REP_FIELDS_DEFS]; } + + // To specify the expiring session time + if (isset($args[TableWidgetLib::SESSION_TIMEOUT]) && is_numeric($args[TableWidgetLib::SESSION_TIMEOUT])) + { + $this->_sessionTimeout = $args[TableWidgetLib::SESSION_TIMEOUT]; + } } /** @@ -204,27 +213,32 @@ class TableWidget extends Widget */ private function _checkParameters($args) { + // If no options are given to this widget... if (!is_array($args) || (is_array($args) && count($args) == 0)) { show_error('Second parameter of the widget call must be a NOT empty associative array'); } - else + else // ...otherwise { + // The unique id parameter is mandatory if (!isset($args[TableWidgetLib::TABLE_UNIQUE_ID])) { show_error('The parameter "'.TableWidgetLib::TABLE_UNIQUE_ID.'" must be specified'); } - if (!isset($args[TableWidgetLib::QUERY_PARAMETER])) + // The query parameter is mandatory + if (!isset($args[TableWidgetLib::QUERY])) { - show_error('The parameters "'.TableWidgetLib::QUERY_PARAMETER.'" must be specified'); + show_error('The parameter "'.TableWidgetLib::QUERY.'" must be specified'); } + // The dataset representation parameter is mandatory if (!isset($args[TableWidgetLib::DATASET_REPRESENTATION])) { show_error('The parameter "'.TableWidgetLib::DATASET_REPRESENTATION.'" must be specified'); } + // Checks if the dataset representation parameter is valid if (isset($args[TableWidgetLib::DATASET_REPRESENTATION]) && $args[TableWidgetLib::DATASET_REPRESENTATION] != TableWidgetLib::DATASET_REP_TABLESORTER && $args[TableWidgetLib::DATASET_REPRESENTATION] != TableWidgetLib::DATASET_REP_PIVOTUI @@ -238,6 +252,12 @@ class TableWidget extends Widget .TableWidgetLib::DATASET_REP_TABULATOR.'")' ); } + + // If given the session timeout parameter must be a number + if (isset($args[TableWidgetLib::SESSION_TIMEOUT]) && !is_numeric($args[TableWidgetLib::SESSION_TIMEOUT])) + { + show_error('The parameter "'.TableWidgetLib::SESSION_TIMEOUT.'" must be a number'); + } } } @@ -246,20 +266,23 @@ class TableWidget extends Widget */ private function _startTableWidget($tableUniqueId) { + // Looks for expired table widgets in session and drops them + $this->tablewidgetlib->dropExpiredTableWidgets(); + // Read the all session for this table widget $session = $this->tablewidgetlib->getSession(); // If session is NOT empty -> a table was already loaded if ($session != null) { - // Get SESSION_RELOAD_DATASET from the session - $sessionReloadDataset = $this->tablewidgetlib->getSessionElement(TableWidgetLib::SESSION_RELOAD_DATASET); + // Get SESSION_DATASET_RELOAD from the session + $sessionReloadDataset = $this->tablewidgetlib->getSessionElement(TableWidgetLib::SESSION_DATASET_RELOAD); // if Filter changed or reload is forced by parameter then reload the Dataset if ($this->_reloadDataset === true || $sessionReloadDataset === true) { // Set as false to stop changing the dataset - $this->tablewidgetlib->setSessionElement(TableWidgetLib::SESSION_RELOAD_DATASET, false); + $this->tablewidgetlib->setSessionElement(TableWidgetLib::SESSION_DATASET_RELOAD, false); // Generate dataset query using tables from the session $datasetQuery = $this->tablewidgetlib->generateDatasetQuery($this->_query); @@ -305,7 +328,7 @@ class TableWidget extends Widget TableWidgetLib::SESSION_METADATA => $this->tablewidgetlib->getExecutedQueryMetaData(), // the metadata of the dataset TableWidgetLib::SESSION_ROW_NUMBER => count($dataset->retval), // the number of loaded rows by this table TableWidgetLib::SESSION_DATASET => $dataset->retval, // the entire dataset - TableWidgetLib::SESSION_RELOAD_DATASET => false, // if the dataset must be reloaded, not needed the first time + TableWidgetLib::SESSION_DATASET_RELOAD => false, // if the dataset must be reloaded, not needed the first time TableWidgetLib::SESSION_DATASET_REPRESENTATION => $this->_datasetRepresentation, // the choosen dataset representation TableWidgetLib::SESSION_DATASET_REP_OPTIONS => $this->_datasetRepresentationOptions, // the choosen dataset representation options TableWidgetLib::SESSION_DATASET_REP_FIELDS_DEFS => $this->_datasetRepFieldsDefs // the choosen dataset representation record fields definition @@ -314,9 +337,11 @@ class TableWidget extends Widget } } - // To be always stored in the session, otherwise is not possible to load data from Filters controller // NOTE: must the latest operation to be performed in the session to be shure that is always present - $this->tablewidgetlib->setSessionElement(TableWidgetLib::REQUIRED_PERMISSIONS_PARAMETER, $this->_requiredPermissions); + // To be always stored in the session, otherwise is not possible to load data from Filters controller + $this->tablewidgetlib->setSessionElement(TableWidgetLib::REQUIRED_PERMISSIONS, $this->_requiredPermissions); + // Renew or set the session expiring time + $this->tablewidgetlib->setSessionElement(TableWidgetLib::SESSION_TIMEOUT, strtotime('+'.$this->_sessionTimeout.' minutes', time())); } /** diff --git a/application/widgets/html/DropdownWidget.php b/application/widgets/html/DropdownWidget.php index ca3e30163..eba79900d 100644 --- a/application/widgets/html/DropdownWidget.php +++ b/application/widgets/html/DropdownWidget.php @@ -17,32 +17,32 @@ class DropdownWidget extends HTMLWidget const SELECTED_ELEMENT = 'selectedElement'; // Default HTML value const HTML_DEFAULT_VALUE = 'null'; - + const SIZE = 'size'; // size of the dropdown const MULTIPLE = 'multiple'; // multiple attribute - + // Alias of $this->_args[HTMLWidget::HTML_ARG_NAME] for a better code readability protected $htmlParameters; - + /** - * + * */ public function __construct($name, $args = array(), $htmlArgs = array()) { parent::__construct($name, $args, $htmlArgs); - + // If the selectd element is not set then set it to HTML_DEFAULT_VALUE if (!isset($this->_args[DropdownWidget::SELECTED_ELEMENT])) { $this->_args[DropdownWidget::SELECTED_ELEMENT] = DropdownWidget::HTML_DEFAULT_VALUE; } - + $this->htmlParameters =& $this->_args[HTMLWidget::HTML_ARG_NAME]; // Reference for a better code readability - + // By default is not a multiple dropdown unset($this->htmlParameters[DropdownWidget::MULTIPLE]); } - + /** * Set this dropdown as multiple: * - Setting the multiple attribute @@ -53,23 +53,23 @@ class DropdownWidget extends HTMLWidget $this->htmlParameters[DropdownWidget::MULTIPLE] = DropdownWidget::MULTIPLE; $this->htmlParameters[HTMLWidget::HTML_NAME] .= '[]'; } - + /** * Checks if this object is a multiple dropdown */ public function isMultipleDropdown() { $isMultipleDropdown = false; - + if (isset($this->htmlParameters[DropdownWidget::MULTIPLE]) && $this->htmlParameters[DropdownWidget::MULTIPLE] == DropdownWidget::MULTIPLE) { $isMultipleDropdown = true; } - + return $isMultipleDropdown; } - + /** * Add the correct select to the model used to load a list of elemets for this dropdown * @param model $model the model used to load elements @@ -88,7 +88,7 @@ class DropdownWidget extends HTMLWidget ) ); } - + /** * Set the array used to populate the dropdown * @param array $elements list used to populate this dropdown @@ -102,12 +102,12 @@ class DropdownWidget extends HTMLWidget ) { $tmpElements = array(); - + if (isError($elements)) { if (is_object($elements) && isset($elements->retval)) { - show_error($elements->retval); + show_error(getError($elements)); } else if (is_string($elements)) { @@ -133,11 +133,11 @@ class DropdownWidget extends HTMLWidget { $tmpElements = $elements->retval; } - + $this->_args[DropdownWidget::WIDGET_DATA_ELEMENTS_ARRAY_NAME] = $tmpElements; } } - + /** * Adds an element to the beginning of the array */ @@ -146,17 +146,17 @@ class DropdownWidget extends HTMLWidget $element = new stdClass(); $element->{DropdownWidget::ID_FIELD} = $id; $element->{DropdownWidget::DESCRIPTION_FIELD} = $stdDescription; - + if (!hasData($elements)) { $element->{DropdownWidget::DESCRIPTION_FIELD} = $noDataDescription; } - + array_unshift($elements->retval, $element); - + return $elements->retval; } - + /** * Loads the dropdown view with all the elements to be displayed */ @@ -164,4 +164,4 @@ class DropdownWidget extends HTMLWidget { $this->view('widgets/dropdown', $this->_args); } -} \ No newline at end of file +} diff --git a/cis/index.php b/cis/index.php index 60c9aceeb..a6ec16786 100644 --- a/cis/index.php +++ b/cis/index.php @@ -70,13 +70,14 @@ if(defined('CIS_CHECK_PASSWORD_CHANGE') && CIS_CHECK_PASSWORD_CHANGE==true) */ function validURLCheck($param) { - if(strstr($param,'://')) + if (strstr($param,':') || strstr($param,'//')) { // Der APP_ROOT muss in der URL vorkommen, sonfern es kein relativer Pfad ist // HTTPS und HTTP if(mb_strpos($param, APP_ROOT)!==0 && mb_strpos(mb_str_replace("http://","https://", $param), APP_ROOT)!==0 - && mb_strpos(mb_str_replace("https://","http://", $param), APP_ROOT)!==0) + && mb_strpos(mb_str_replace("https://","http://", $param), APP_ROOT)!==0 + && $param != 'about:blank') { $text="Dies ist eine automatische Mail.\nEs wurde eine mögliche XSS Attacke durchgefuehrt:\n"; $text.="\nFolgende URL wurde versucht aufzurufen: \n".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; @@ -170,7 +171,7 @@ $db = new basis_db(); - + - - - load_beispiel($uebung_id); - $error=false; - foreach($uids as $uid) - { - if($uid!='') - { - if ($uebung_obj->beispiele) - { - foreach($beispiel_obj->beispiele as $bsp) - { - if(isset($_POST['update_'.$uid.'_'.$bsp->beispiel_id])) - $vorbereitet=true; - else - $vorbereitet=false; - - $bsp_obj = new beispiel(); - - if(!$bsp_obj->studentbeispiel_exists($uid,$bsp->beispiel_id)) - { - $new=true; - $bsp_obj->insertamum = date('Y-m-d H:i:s'); - $bsp_obj->insertvon = $user; - } - else - { - $bsp_obj->load_studentbeispiel($uid, $bsp->beispiel_id); - $new=false; - } - - $bsp_obj->student_uid = $uid; - $bsp_obj->beispiel_id = $bsp->beispiel_id; - $bsp_obj->vorbereitet = $vorbereitet; - $bsp_obj->updateamum = date('Y-m-d H:i:s'); - $bsp_obj->updatevon = $user; - - if(!$bsp_obj->studentbeispiel_save($new)) - $error=true; - } - } - else - { - if (!$uebung_obj->load_studentuebung($uid,$uebung_id)) - { - $uebung_obj->student_uid = $uid; - $uebung_obj->mitarbeiter_uid = $user; - $uebung_obj->abgabe_id = null; - $uebung_obj->note = $_POST['update_'.$uid.'_note']; - $uebung_obj->mitarbeitspunkte = null; - $uebung_obj->punkte = null; - $uebung_obj->anmerkung = null; - $uebung_obj->benotungsdatum = date("Y-m-d H:i:s"); - $uebung_obj->updateamum = null; - $uebung_obj->updatevon = null; - $uebung_obj->insertamum = date("Y-m-d H:i:s"); - $uebung_obj->insertvon = $user; - $new = true; - } - else - { - $uebung_obj->load_studentuebung($uid,$uebung_id); - $uebung_obj->mitarbeiter_uid = $user; - $uebung_obj->note = $_POST['update_'.$uid.'_note']; - $uebung_obj->benotungsdatum = date("Y-m-d H:i:s"); - $uebung_obj->updateamum = date("Y-m-d H:i:s"); - $uebung_obj->updatevon = $user; - $new = false; - } - $uebung_obj->studentuebung_save($new); - - } - } - } - if(!$error) - echo "Die Änderungen wurden erfolgreich gespeichert"; - else - echo "Fehler beim Speichern der Änderungen"; - } - - $uebung_obj = new uebung($uebung_id); - $lehreinheit_obj = new lehreinheit($uebung_obj->lehreinheit_id); - - $beispiel_obj = new beispiel(); - - $lehrveranstaltung_obj = new lehrveranstaltung($lehreinheit_obj->lehrveranstaltung_id); - $stg_obj = new studiengang($lehrveranstaltung_obj->studiengang_kz); - - $beispiel_obj->load_beispiel($uebung_id); - if ($uebung_obj->beispiele) - $anzahl = count($beispiel_obj->beispiele); - else - $anzahl = 1; - if(isset($_GET['gruppe']) && $_GET['gruppe']!='') - { - $gruppe = $_GET['gruppe']; - $qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheitgruppe_id=".$db->db_add_param($gruppe); - if($result = $db->db_query($qry)) - { - if($row = $db->db_fetch_object($result)) - { - if($row->gruppe_kurzbz!='') - { - $gruppe_bez = 'Gruppe '.$row->gruppe_kurzbz; - $qry_stud = "SELECT uid, vorname, nachname FROM campus.vw_student JOIN public.tbl_benutzergruppe USING(uid) - WHERE gruppe_kurzbz=".$db->db_add_param($row->gruppe_kurzbz)." AND studiensemester_kurzbz = ".$db->db_add_param($stsem)." - ORDER BY nachname, vorname"; - } - else - { - $gruppe_bez = 'Gruppe '.$row->verband.$row->gruppe; - $qry_stud = "SELECT uid, vorname, nachname FROM campus.vw_student - WHERE studiengang_kz=".$db->db_add_param($row->studiengang_kz)." - AND semester=".$db->db_add_param($row->semester). - ($row->verband!=''?" AND verband=".$db->db_add_param($row->verband):''). - ($row->gruppe!=''?" AND gruppe=".$db->db_add_param($row->gruppe):''). - " ORDER BY nachname, vorname"; - } - - } - else - die('Gruppe konnte nicht ermittelt werden'); - } - else - die('Gruppe konnte nicht ermittelt werden'); - $lehreinheit_id = ''; - } - else - { - if(isset($_GET['lehreinheit_id']) && $_GET['lehreinheit_id']!='') - { - $lehreinheit_id = $_GET['lehreinheit_id']; - $gruppe_bez = 'Alle Studierende'; - //Alle Studenten die dieser lehreinheit zugeordnet sind - // studentenquery - $qry_stud = "SELECT uid, vorname, nachname, matrikelnr FROM campus.vw_student_lehrveranstaltung JOIN campus.vw_student using(uid) - WHERE studiensemester_kurzbz = ".$db->db_add_param($stsem)." AND lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER)." ORDER BY nachname, vorname"; - /* - $qry_stud = "SELECT vw_student.uid, vorname, nachname FROM campus.vw_student, public.tbl_benutzergruppe, lehre.tbl_lehreinheitgruppe - WHERE tbl_lehreinheitgruppe.lehreinheit_id='$lehreinheit_id' AND - vw_student.uid = tbl_benutzergruppe.uid AND - tbl_benutzergruppe.gruppe_kurzbz = tbl_lehreinheitgruppe.gruppe_kurzbz AND - tbl_benutzergruppe.studiensemester_kurzbz = '$stsem' - UNION - SELECT vw_student.uid, vorname, nachname FROM campus.vw_student, lehre.tbl_lehreinheitgruppe WHERE - tbl_lehreinheitgruppe.lehreinheit_id='$lehreinheit_id' AND - tbl_lehreinheitgruppe.studiengang_kz=vw_student.studiengang_kz AND - tbl_lehreinheitgruppe.semester = vw_student.semester AND - ((tbl_lehreinheitgruppe.verband<>'' AND - tbl_lehreinheitgruppe.gruppe<>'' AND - tbl_lehreinheitgruppe.verband is not null AND - tbl_lehreinheitgruppe.gruppe is not null AND - trim(tbl_lehreinheitgruppe.verband) = trim(vw_student.verband) AND - trim(tbl_lehreinheitgruppe.gruppe) = trim(vw_student.gruppe)) - OR - (tbl_lehreinheitgruppe.verband<>'' AND tbl_lehreinheitgruppe.verband is not null AND - (trim(tbl_lehreinheitgruppe.gruppe)='' OR tbl_lehreinheitgruppe.gruppe is null) AND - trim(tbl_lehreinheitgruppe.verband) = trim(vw_student.verband)) - OR (tbl_lehreinheitgruppe.verband is null AND tbl_lehreinheitgruppe.gruppe is null) - ) - ORDER BY nachname, vorname"; - */ - } - else - die('Fehler bei der Parameteruebergabe'); - $gruppe=''; - } - - echo "
"; - echo ""; - echo " - - - "; - - echo ""; - if (!$uebung_obj->beispiele) - echo ""; - else - { - foreach($beispiel_obj->beispiele as $row) - { - echo ""; - } - } - echo "\n"; - - if($result = $db->db_query($qry_stud)) - { - while($row_stud = $db->db_fetch_object($result)) - { - - $filename = ''; - $su_obj = new uebung($uebung_id); - $su_obj->load_studentuebung($row_stud->uid, $uebung_id); - if ($su_obj->abgabe_id) - { - $su_obj->load_abgabe($su_obj->abgabe_id); - $filename = $su_obj->abgabedatei; - } - else - $filename=''; - - echo " - "; - if (!$uebung_obj->beispiele) - { - $studentuebung_obj = new uebung(); - $studentuebung_obj->load_studentuebung($row_stud->uid,$uebung_id); - echo "\n"; - - } - else - { - foreach($beispiel_obj->beispiele as $row_bsp) - { - $studentbeispiel_obj = new beispiel(); - $studentbeispiel_obj->load_studentbeispiel($row_stud->uid, $row_bsp->beispiel_id); - echo "\n"; - } - } - echo ""; - - if ($filename != "") - echo "\n"; - else if ($uebung_obj->abgabe) - echo ""; - else - echo ""; - echo "\n"; - } - } - - echo '
- - - - - - -
$lehrveranstaltung_obj->semester.Semester$stg_obj->kuerzel - $lehrveranstaltung_obj->bezeichnung - $uebung_obj->bezeichnung - $gruppe_bez - $gruppen".date('d.m.Y')."
-
NameNote$row->bezeichnungUnterschrift
 $row_stud->nachname $row_stud->vorname $row_stud->uiduid');\" value='".$studentuebung_obj->note."' size='3'>uid');\" ".($studentbeispiel_obj->vorbereitet?'checked':'').">".($studentbeispiel_obj->probleme?'P':'')." AbgabeFehlt!
'; - echo "

"; - echo '
' - ?> - - -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ - -require_once('../../../../config/cis.config.inc.php'); -require_once('../../../../include/basis_db.class.php'); -require_once('../../../../include/functions.inc.php'); -require_once('../../../../include/lehrveranstaltung.class.php'); -require_once('../../../../include/studiengang.class.php'); -require_once('../../../../include/studiensemester.class.php'); -require_once('../../../../include/lehreinheit.class.php'); -require_once('../../../../include/benutzerberechtigung.class.php'); -require_once('../../../../include/uebung.class.php'); -require_once('../../../../include/beispiel.class.php'); -require_once('../../../../include/datum.class.php'); -require_once('../../../../include/phrasen.class.php'); - -if (!$db = new basis_db()) - die('Fehler beim Herstellen der Datenbankverbindung'); - -$sprache = getSprache(); -$p = new phrasen($sprache); -?> - - - - - -<?php echo $p->t('benotungstool/benotungstool');?> - - - - -t('global/keineBerechtigungFuerDieseSeite')); - -$rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($user); - -if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) //Lehrveranstaltung_id - $lvid = $_GET['lvid']; -else - die($p->t('global/fehlerBeiDerParameteruebergabe')); - -if(isset($_GET['lehreinheit_id']) && is_numeric($_GET['lehreinheit_id'])) //Lehreinheit_id - $lehreinheit_id = $_GET['lehreinheit_id']; -else - $lehreinheit_id = ''; - -//Laden der Lehrveranstaltung -$lv_obj = new lehrveranstaltung(); -if(!$lv_obj->load($lvid)) - die($lv_obj->errormsg); - -//Studiengang laden -$stg_obj = new studiengang($lv_obj->studiengang_kz); - -if(isset($_GET['stsem'])) - $stsem = $_GET['stsem']; -else - $stsem = ''; - -//Vars -$datum_obj = new datum(); -$show_excel_link = false; -$uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:''); - -//Kopfzeile -echo ''; -echo '
'; -echo '

 '.$p->t('benotungstool/benotungstool'); -echo '

'."\n"; - -//Studiensemester laden -$stsem_obj = new studiensemester(); -if($stsem=='') - $stsem = $stsem_obj->getaktorNext(); - -$stsem_obj->getAll(); - -//Studiensemester DropDown -$stsem_content = $p->t('global/studiensemester').": \n"; - -//Lehreinheiten laden -if($rechte->isBerechtigt('admin',0) || $rechte->isBerechtigt('admin',$lv_obj->studiengang_kz) || $rechte->isBerechtigt('lehre',$lv_obj->studiengang_kz)) -{ - $qry = "SELECT - distinct lehrfach.kurzbz as lfbez, tbl_lehreinheit.lehreinheit_id, tbl_lehreinheit.lehrform_kurzbz as lehrform_kurzbz - FROM - lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach, lehre.tbl_lehreinheitmitarbeiter - WHERE - tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND - tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id AND - tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitmitarbeiter.lehreinheit_id AND - tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($stsem); -} -else -{ - $qry = "SELECT - distinct lehrfach.kurzbz as lfbez, tbl_lehreinheit.lehreinheit_id, tbl_lehreinheit.lehrform_kurzbz as lehrform_kurzbz - FROM - lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach, lehre.tbl_lehreinheitmitarbeiter - WHERE - tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND - tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id AND - tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitmitarbeiter.lehreinheit_id AND - tbl_lehreinheit.lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) WHERE mitarbeiter_uid=".$db->db_add_param($user).") AND - tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($stsem); -} - -if($result = $db->db_query($qry)) -{ - if($db->db_num_rows($result)>1) - { - //Lehreinheiten DropDown - echo $p->t('global/lehreinheit').": '; - } - else - { - if($row = $db->db_fetch_object($result)) - $lehreinheit_id = $row->lehreinheit_id; - } -} -else -{ - echo $p->t('benotungstool/fehlerBeimAuslesen'); -} -echo $stsem_content; -echo '
'; -echo ''; -echo ''; -echo " -
 \n"; -echo "".$lv_obj->bezeichnung_arr[$sprache]."
"; - -if($lehreinheit_id=='') - die($p->t('benotungstool/keinePassendeLehreinheitGefunden')); - -//Menue -include("menue.inc.php"); -/* -echo "\n\n"; -echo "
- Verwaltung     - Anwesenheits- und Übersichtstabelle     - Studentenpunkte verwalten     - Statistik -

-\n"; -*/ - -echo "

".$p->t('benotungstool/anwesenheitstabelle')."

"; - -/* -$uebung_obj = new uebung(); -$uebung_obj->load_uebung($lehreinheit_id); -if(count($uebung_obj->uebungen)>0) -{ - echo " - -
"; - echo "Wählen Sie bitte eine Kreuzerlliste aus: '; - echo " - - - - - - - - - -
+...Kreuzerlliste ist freigeschalten.
-...Kreuzerlliste ist nicht freigeschalten.
-
"; -} -else - die("Derzeit gibt es keine Uebungen"); -*/ - - $uebung_obj = new uebung(); - $uebung_obj->load_uebung($lehreinheit_id,1); - if(count($uebung_obj->uebungen)>0) - { - echo "'; - - echo " -
"; - echo "
".$p->t('benotungstool/waehlenSieEineAufgabeAus').": '; - - echo '
- - - - - - - - - -
+...".$p->t('benotungstool/freigeschaltet').".
-...".$p->t('benotungstool/nichtFreigeschaltet').".
-
"; - } - else - die($p->t('benotungstool/derzeitSindKeineUebungenAngelegt')); - -$uebung_obj = new uebung(); -$uebung_obj->load($uebung_id); -echo "

$uebung_obj->bezeichnung

"; - -echo '
'; -echo "'; -echo "
"; - -?> -
- - diff --git a/cis/private/lehre/benotungstool/copy_uebung.php b/cis/private/lehre/benotungstool/copy_uebung.php deleted file mode 100644 index 855b106ed..000000000 --- a/cis/private/lehre/benotungstool/copy_uebung.php +++ /dev/null @@ -1,874 +0,0 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ -/* - * Script zum Kopieren einer Kreuzerltool Uebung zu einer anderen Lehreinheit - * (zB fuer die Uebernahme der Uebungen aus dem Vorjahr) - */ - require_once('../../../../config/cis.config.inc.php'); -// ------------------------------------------------------------------------------------------ -// Datenbankanbindung -// ------------------------------------------------------------------------------------------ - require_once('../../../../include/basis_db.class.php'); - if (!$db = new basis_db()) - die('Fehler beim Herstellen der Datenbankverbindung'); - -// ---------------- Standart Include Dateien einbinden - require_once('../../../../include/studiengang.class.php'); - require_once('../../../../include/studiensemester.class.php'); - require_once('../../../../include/lehrveranstaltung.class.php'); - require_once('../../../../include/lehreinheit.class.php'); - require_once('../../../../include/lehreinheitgruppe.class.php'); - require_once('../../../../include/lehreinheitmitarbeiter.class.php'); - - - require_once('../../../../include/functions.inc.php'); - require_once('../../../../include/benutzerberechtigung.class.php'); - require_once('../../../../include/uebung.class.php'); - require_once('../../../../include/beispiel.class.php'); - require_once('../../../../include/datum.class.php'); - - -// *********************************************************************************************** -// Datenbankverbindungen zu Classen -// *********************************************************************************************** - - if (!$le_obj = new lehreinheit()) - die('Fehler beim Oeffnen der Lehreinheit'); - - if (!$legrp_obj = new lehreinheitgruppe()) - die('Fehler beim Oeffnen der Lehreinheitgruppe'); - - if (!$lv_obj = new lehrveranstaltung()) - die('Fehler beim Oeffnen der Lehrveranstaltung'); - - if (!$stg_obj = new studiengang()) - die('Fehler beim Oeffnen der Studiengänge'); - - if (!$stsem = new studiensemester()) - die('Fehler beim Oeffnen der Studiensemester'); - // @$studiensemester_kurzbz Studiensemester xxJJJJ - xx fuer SS Sommer oder WW Winter - if (!$stsem_aktuell = $stsem->getakt()) - $stsem_aktuell = $stsem->getaktorNext(); - - -##echo "
GET
"; -#var_dump($_GET); -#echo "
POST
"; -#var_dump($_POST); - -$errormsg=array(); -$error=0; - -$user = get_uid(); -$rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($user); - -if(!$rechte->isBerechtigt('admin')) - die('Sie haben keine Rechte für diese Seite'); - -// @studiensemester_kurzbz Studiensemester WSxxxx SSxxxx - $studiensemester_kurzbz=(isset($_GET['studiensemester_kurzbz'])?trim($_GET['studiensemester_kurzbz']):$stsem_aktuell); -// $lehrveranstaltung_id Lehrveranstaltung zur Lehreinheit - $lehrveranstaltung_id=(isset($_GET['lvid'])?trim($_GET['lvid']):(isset($_GET['lehrveranstaltung_id'])?trim($_GET['lehrveranstaltung_id']):'')); -// @$studiengang_kz Studiengang - $studiengang_kz=(isset($_GET['studiengang_kz'])?trim($_GET['studiengang_kz']):227); -// @$semester Semester des Studienganges - $semester=(isset($_GET['semester'])?trim($_GET['semester']):1); -// @$lehreinheit_id Lehreinheit - $lehreinheit_id=(isset($_GET['leid'])?trim($_GET['leid']):(isset($_GET['lehreinheit_id'])?trim($_GET['lehreinheit_id']):'')); - - - $uebung_id_source=(isset($_GET['uebung_id_source'])?$_GET['uebung_id_source']:(isset($_GET['uebung_id'])?trim($_GET['uebung_id']):'')); - -// ------------- Target -// @studiensemester_kurzbz Studiensemester WSxxxx SSxxxx - $studiensemester_kurzbz_target=(isset($_GET['studiensemester_kurzbz_target'])?trim($_GET['studiensemester_kurzbz_target']):$stsem_aktuell); -// $lehrveranstaltung_id Lehrveranstaltung zur Lehreinheit - $lehrveranstaltung_id_target=(isset($_GET['lvid_target'])?trim($_GET['lvid_target']):(isset($_GET['lehrveranstaltung_id_target'])?trim($_GET['lehrveranstaltung_id_target']):'')); -// @$studiengang_kz Studiengang - $studiengang_kz_target=(isset($_GET['studiengang_kz_target'])?trim($_GET['studiengang_kz_target']):227); -// @$semester Semester des Studienganges - $semester_target=(isset($_GET['semester_target'])?trim($_GET['semester_target']):$semester); -// @$lehreinheit_id_target Lehreinheit - $lehreinheit_id_target=(isset($_GET['lehreinheit_id_target'])?trim($_GET['lehreinheit_id_target']):''); -// @$lehreinheit_id_sel Lehreinheit - $lehreinheit_id_sel=(isset($_GET['lehreinheit_id_sel'])?trim($_GET['lehreinheit_id_sel']):''); -// @$lehreinheit_id_sel Lehreinheit - $uebung_id_sel=(isset($_GET['uebung_id_sel'])?trim($_GET['uebung_id_sel']):''); - -if ($uebung_id_sel!='' && !is_array($uebung_id_sel)) - $uebung_id_sel=array($uebung_id_sel); - -if ($uebung_id_source!='' && !is_array($uebung_id_source)) - $uebung_id_source=array($uebung_id_source); - -#var_dump($uebung_id_source); - -if (!empty($lehreinheit_id_sel)) -{ - - - if ($le_obj->load($lehreinheit_id_sel)) - { - $studiensemester_kurzbz=$le_obj->studiensemester_kurzbz; - $lehrveranstaltung_id=$le_obj->lehrveranstaltung_id; - $lehreinheit_id=$lehreinheit_id_sel; - if ($lv_obj->load($lehrveranstaltung_id)) - { - $studiengang_kz=$lv_obj->studiengang_kz; - $semester=$lv_obj->semester; - } - else - { - $errormsg[]='Lehrveranstaltung '.$lehrveranstaltung_id.' wurden nicht gefunden! '.$lv_obj->errormsg; - } - } - else - { - $errormsg[]='Lehreinheit '.$lehreinheit_id_sel.' wurden nicht gefunden! '.$le_obj->errormsg; - } -} -else if(!isset($_GET['kopieren']) && $uebung_id_source=='' && $uebung_id_sel!='' ) -{ -#var_dump($uebung_id_sel); - $uebung_id_source=$uebung_id_sel; -} - -#var_dump($uebung_id_source); - -// Es wurde nur eine Uebungsid uebergeben, und noch keine Aktion gedrueckt -if(!isset($_GET['kopieren']) && $uebung_id_source!='') -{ - if (!is_array($uebung_id_source) && !empty($uebung_id_source)) - $uebung_id_source=array($uebung_id_source); - - $ueb_0 = new uebung($uebung_id_source[0]); -#var_dump($ueb_0); - if ($lehreinheit_id=$ueb_0->lehreinheit_id) - { - if ($le_obj->load($lehreinheit_id)) - { - $lehrveranstaltung_id = $le_obj->lehrveranstaltung_id; - $studiensemester_kurzbz = $le_obj->studiensemester_kurzbz; - // @$lehrveranstaltung_id Lehrveranstaltung - if ($lehrveranstaltung_id) - { - if ($lv_obj->load($lehrveranstaltung_id)) - { - $studiengang_kz = $lv_obj->studiengang_kz; - $semester = $lv_obj->semester; - } - else - { - $bAnzeige=false; - $errormsg[]='Lehrveranstaltung wurde nicht gefunden '.addslashes($lehreinheit_id).' '.$lv_obj->errormsg; - } - } - } - else - { - $bAnzeige=false; - $errormsg[]='Lehreinheit wurde nicht gefunden '.addslashes($lehreinheit_id).' '.$le_obj->errormsg; - } - } - else - { - $errormsg[]='Übung wurde nicht gefunden '.addslashes($uebung_id_source).' '.$ueb_0->errormsg; - } -} - -// Aktion wurde gedruckt -if(isset($_GET['kopieren'])) -{ - if (!is_array($uebung_id_source) && !empty($uebung_id_source) ) - $uebung_id_source=array($uebung_id_source); - if (!is_array($uebung_id_source) || count($uebung_id_source)<1 ) - { - $error=true; - $errormsg[]="Übung muss ausgewählt sein!"; - } - - if (!is_numeric($lehreinheit_id_target)) - { - $error=true; - $errormsg[]="Lehreinheit muss ausgewählt sein!"; - } - - if (!$error) - { - $db->db_query('BEGIN;'); - - reset($uebung_id_source); - foreach ($uebung_id_source as $ueb) - { - $copy_insert = 0; - $copy_update = 0; - $copy_insert_bsp = 0; - $copy_update_bsp = 0; - $error=false; - - - $ueb_1 = new uebung($ueb); - $lehreinheit_id_unterord=$ueb_1->lehreinheit_id; - $nummer_source = $ueb_1->nummer; - $qry = "SELECT * from campus.tbl_uebung where nummer = ".myaddslashes($nummer_source)." and lehreinheit_id = ".myaddslashes($lehreinheit_id_target).";"; - //echo $qry; - if($result1 = $db->db_query($qry)) - { - if ($db->db_num_rows($result1) >0) - { - $row1 = $db->db_fetch_object($result1); - $ueb_1_target =new uebung($row1->uebung_id); - $ueb_1_target->new = false; - $new = null; - $ueb_1_target->insertamum = null; - $ueb_1_target->insertvon = null; - $ueb_1_target->updateamum = date('Y-m-d H:i:s'); - $ueb_1_target->updatevon = $user; - $copy_update++; - } - else - { - $ueb_1_target =new uebung(); - $ueb_1_target->new = true; - $new = true; - $ueb_1_target->insertamum = date('Y-m-d H:i:s'); - $ueb_1_target->insertvon = $user; - $ueb_1_target->updateamum = null; - $ueb_1_target->updatevon = null; - $copy_insert++; - } - $ueb_1_target->gewicht = $ueb_1->gewicht; - $ueb_1_target->punkte = null; - $ueb_1_target->angabedatei=null; - $ueb_1_target->freigabevon = null; - $ueb_1_target->freigabebis = null; - $ueb_1_target->abgabe = false; - $ueb_1_target->beispiele = false; - $ueb_1_target->statistik = false; - $ueb_1_target->maxstd = null; - $ueb_1_target->maxbsp=null; - $ueb_1_target->liste_id=null; - $ueb_1_target->bezeichnung = $ueb_1->bezeichnung; - $ueb_1_target->positiv = $ueb_1->positiv; - $ueb_1_target->defaultbemerkung = $ueb_1->defaultbemerkung; - $ueb_1_target->lehreinheit_id = $lehreinheit_id_target; - $ueb_1_target->nummer = $nummer_source; - - if (!$ueb_1_target->save($new)) - { - $error = 1; - $errormsg[]="Hauptübung konnte nicht kopiert werden!"; - } - - else - { - // Subübungen durchlaufen - $ueb_2 = new uebung(); - $ueb_2->load_uebung($lehreinheit_id_unterord,2,$ueb); - - $ueb_2anzahl = count($ueb_2->uebungen); - if ($ueb_2anzahl >0) - { - foreach ($ueb_2->uebungen as $subrow) - { - - $nummer_source2 = $subrow->nummer; - $qry2 = "SELECT * from campus.tbl_uebung where nummer = '".$nummer_source2."' and lehreinheit_id = '".$lehreinheit_id_target."'"; - $result2 = $db->db_query($qry2); - if ($db->db_num_rows($result2) >0) - { - $row2 = $db->db_fetch_object($result2); - $ueb_2_target =new uebung($row2->uebung_id); - $ueb_2_target->new = false; - $new = null; - $ueb_2_target->insertamum = null; - $ueb_2_target->insertvon = null; - $ueb_2_target->updateamum = date('Y-m-d H:i:s'); - $ueb_2_target->updatevon = $user; - $copy_update++; - } - else - { - $ueb_2_target =new uebung(); - $ueb_2_target->new = true; - $new = true; - $ueb_2_target->insertamum = date('Y-m-d H:i:s'); - $ueb_2_target->insertvon = $user; - $ueb_2_target->updateamum = null; - $ueb_2_target->updatevon = null; - $copy_insert++; - } - $ueb_2_target->gewicht = $subrow->gewicht; - $ueb_2_target->punkte = $subrow->punkte; - $ueb_2_target->angabedatei=null; - $ueb_2_target->freigabevon = $subrow->freigabevon; - $ueb_2_target->freigabebis = $subrow->freigabebis; - $ueb_2_target->abgabe = $subrow->abgabe; - $ueb_2_target->beispiele = $subrow->beispiele; - $ueb_2_target->statistik = $subrow->statistik; - $ueb_2_target->maxstd = $subrow->maxstd; - $ueb_2_target->maxbsp=$subrow->maxbsp; - $ueb_2_target->liste_id=$ueb_1_target->uebung_id; - $ueb_2_target->bezeichnung = $subrow->bezeichnung; - $ueb_2_target->positiv = $subrow->positiv; - $ueb_2_target->defaultbemerkung = $subrow->defaultbemerkung; - $ueb_2_target->lehreinheit_id = $lehreinheit_id_target; - $ueb_2_target->nummer = $nummer_source2; - - if (!$ueb_2_target->save($new)) - { - $error = 1; - $errormsg[]="Übung konnte nicht kopiert werden!"; - } - - //angabedatei syncen - if (($error == 0) and $subrow->angabedatei != "") - { - $angabedatei_source = $subrow->angabedatei; - $angabedatei_target = makeUploadName($db,'angabe', $lehreinheit_id_target, $ueb_2_target->uebung_id, $stsem); - $angabedatei_target .= ".".mb_substr($angabedatei_source, mb_strrpos($angabedatei_source, '.',0) + 1); - echo $angabedatei_source."->".$angabedatei_target."
"; - exec("cp ".BENOTUNGSTOOL_PATH."angabe/".$angabedatei_source." ".BENOTUNGSTOOL_PATH."angabe/".$angabedatei_target); - $angabeupdate = "update campus.tbl_uebung set angabedatei = '".$angabedatei_target."' where uebung_id = '".$ueb_2_target->uebung_id."'"; - $db->db_query($angabeupdate); - } - - if (($error == 0) and $ueb_2_target->beispiele) - { - // beispiele synchronisieren - $bsp_obj = new beispiel(); - $bsp_obj->load_beispiel($subrow->uebung_id); - foreach ($bsp_obj->beispiele as $bsp) - { - $nummer_source_bsp = $bsp->nummer; - $qrybsp = "SELECT * from campus.tbl_beispiel where nummer = '".$nummer_source_bsp."' and uebung_id = '".$ueb_2_target->uebung_id."'"; - $resultbsp = $db->db_query($qrybsp); - - if ($db->db_num_rows($resultbsp) >0) - { - $rowbsp = $db->db_fetch_object($resultbsp); - $bsp_target =new beispiel($rowbsp->beispiel_id); - $bsp_target->new = false; - $new = null; - $bsp_target->insertamum = null; - $bsp_target->insertvon = null; - $bsp_target->updateamum = date('Y-m-d H:i:s'); - $bsp_target->updatevon = $user; - $copy_update_bsp++; - } - else - { - $bsp_target =new beispiel(); - $bsp_target->new = true; - $new = true; - $bsp_target->insertamum = date('Y-m-d H:i:s'); - $bsp_target->insertvon = $user; - $bsp_target->updateamum = null; - $bsp_target->updatevon = null; - $copy_insert_bsp++; - } - $bsp_target->uebung_id = $ueb_2_target->uebung_id; - $bsp_target->nummer = $nummer_source_bsp; - $bsp_target->bezeichnung = $bsp->bezeichnung; - $bsp_target->punkte = $bsp->punkte; - - if (!$bsp_target->save($new)) - { - $error = 1; - $errormsg[]="Beispiele konnten nicht angelegt werden"; - } - - //Notenschlüssel synchronisieren - $clear = "delete from campus.tbl_notenschluesseluebung where uebung_id = '".$ueb_1_target->uebung_id."'"; - $db->db_query($clear); - - $qry_ns_source = "SELECT * from campus.tbl_notenschluesseluebung where uebung_id = '".$ueb."'"; - $result_ns_source = $db->db_query($qry_ns_source); - while($row_ns = $db->db_fetch_object($result_ns_source)) - { - $ns_insert = "INSERT INTO campus.tbl_notenschluesseluebung values ('".$ueb_1_target->uebung_id."','".$row_ns->note."', '".$row_ns->punkte."')"; - $db->db_query($ns_insert); - } - - } - } - - } - } - } - - } - else - { - $errormsg[]="Fehler beim Datenbankzugriff!"; - } - - if ($error == 0) - { - $errormsg[]="Übung ".$ueb." erfolgreich kopiert! (Ü: ".$copy_insert."/".$copy_update."; B: ".$copy_insert_bsp."/".$copy_update_bsp.")"; - } - else - { - $errormsg[]="Übung ".$ueb." wurde nicht kopiert! (Ü: ".$copy_insert."/".$copy_update."; B: ".$copy_insert_bsp."/".$copy_update_bsp.")"; - break; - } - } - } - // Nun alle An Felder - Lehreinheit zum Von kopieren (neue Anzeige) - if ($error == 0) - { - $db->db_query('COMMIT'); - } - else - { - $db->db_query('ROLLBACK'); - } - $errormsg[]='

noch eine Übung kopieren'; - } - - - // *********************************************************************************************** - // Datenbankfeld - Variable - // *********************************************************************************************** - function myaddslashes($var) - { - return ($var!=''?"'".addslashes($var)."'":'null'); - } - -?> - - - - - -Kreuzerltool - Copy - - - Kopieren von Übungen in eine andere Lehreinheit -
- Direkt Eingabe : LE ID: ,  - Übung ID:  oder

- - - - - - - - - - - - - -'; - //--------------------------------------------------------------------------- - // Auswahlfelder - $content.=''; - - // Studiensemester public.tbl_studiensemester_kurzbz - $content.=''; - - //--------------------------------------------------------------------------- - // Studiengang public.tbl_studiengang_kz - $content.=''; - - //--------------------------------------------------------------------------- - // Semster public.tbl_studiengang_kz - max Semester des Selektierten Studiengangs - $content.=''; - - //--------------------------------------------------------------------------- - // Lehrveranstaltungen - $content.=''; - //--------------------------------------------------------------------------- - // Lehreinheit - $content.=''; - -#var_dump($uebung_id_source); - - $submitOK=false; - if (!$ueb = new uebung()) - { - die('Fehler beim Oeffnen der Übungen'); - } - else - { - $ueb->uebungen=array(); - $ueb->errormsg =''; - if (!$lehreinheit_ueb=$ueb->load_uebung($lehreinheit_id)) - { - $errormsg[]=$ueb->errormsg; - } - } - - $content.=''; - - $content.=' - - - '; - - if ($submitOK) - $content.=''; - else - $content.=''; - - $content.=' - - '; - - $content.=' - - '; - - $content.=''; - - //--------------------------------------------------------------------------- - // Studiengang public.tbl_studiengang_kz - $content.=''; - - - //--------------------------------------------------------------------------- - // Semster public.tbl_studiengang_kz - max Semester des Selektierten Studiengangs - // document.'.$cFormName.'.uebung_id_source_target.value=\'\'; - // $content.=''; - - -##echo "
$studiengang_kz_target, $studiensemester_kurzbz_target, $semester_target , $lehrveranstaltung_id_target
"; - - //--------------------------------------------------------------------------- - // Lehrveranstaltungen - $content.=''; - -#echo "
$studiengang_kz_target, $studiensemester_kurzbz_target, $semester_target , $lehrveranstaltung_id_target
"; - - //--------------------------------------------------------------------------- - // Lehreinheit - - - $content.=''; - - $content.=''; - $content.=''; - $content.='
StudiensemStgKzSemLehrveranstaltungLehreinheitenÜbungID die kopiert werden soll:
-

Lehreinheit ID in welche diese Übung kopiert werden soll
Lehreinheit ID in welche diese Übung kopiert werden soll
 
- '; - - -#echo "
$studiengang_kz_target, $studiensemester_kurzbz_target, $semester_target , $lehrveranstaltung_id_target
"; - - if (!$ueb = new uebung()) - { - die('Fehler beim Oeffnen der Übungen'); - } - else if (!empty($lehreinheit_id_target)) - { - $ueb->uebungen=array(); - $ueb->errormsg =''; - if (!$lehreinheit_ueb=$ueb->load_uebung($lehreinheit_id_target)) - { - $errormsg[]=$ueb->errormsg; - } - else if (count($ueb->uebungen)) - { - $content.=''; - } - else if (!empty($lehreinheit_id_target)) - { - $content.='keine Übungen vorhanden'; - } - } - $content.='
'; - - $content.='

'.implode('
',$errormsg); - - print_r($content); - - ?> - - \ No newline at end of file diff --git a/cis/private/lehre/benotungstool/functions.inc.php b/cis/private/lehre/benotungstool/functions.inc.php deleted file mode 100644 index 2e42e33f0..000000000 --- a/cis/private/lehre/benotungstool/functions.inc.php +++ /dev/null @@ -1,31 +0,0 @@ -db_add_param($lehreinheit_id, FHC_INTEGER); - $result = $db->db_query($query); - $row = $db->db_fetch_object($result); - $name = $row->kurzbzlang."_".$row->semester."_".$row->kurzbz."_".$ss; - - if ($which == "angabe") - { - $name .= "_".$uebung_id; - } - else if ($which == "abgabe") - { - $query = "SELECT nachname, vorname from tbl_person, tbl_benutzer where tbl_benutzer.person_id = tbl_person.person_id and tbl_benutzer.uid = ".$db->db_add_param($uid); - $result = $db->db_query($query); - $row = $db->db_fetch_object($result); - $name .= "_".$uebung_id."_".$row->nachname."_".$row->vorname."_".$uid."_".$date; - } - else if ($which == "zip") - { - - $name .= "_".$uebung_id."_".$date; - } - $name = str_replace(":","-",$name); - return $name; -} -?> diff --git a/cis/private/lehre/benotungstool/legesamtnoteeintragen.php b/cis/private/lehre/benotungstool/legesamtnoteeintragen.php deleted file mode 100644 index 7dbfdef52..000000000 --- a/cis/private/lehre/benotungstool/legesamtnoteeintragen.php +++ /dev/null @@ -1,129 +0,0 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ - -require_once('../../../../config/cis.config.inc.php'); -require_once('../../../../include/functions.inc.php'); -require_once('../../../../include/lehrveranstaltung.class.php'); -require_once('../../../../include/studiengang.class.php'); -require_once('../../../../include/studiensemester.class.php'); -require_once('../../../../include/lehreinheit.class.php'); -require_once('../../../../include/benutzerberechtigung.class.php'); -require_once('../../../../include/uebung.class.php'); -require_once('../../../../include/beispiel.class.php'); -require_once('../../../../include/studentnote.class.php'); -require_once('../../../../include/datum.class.php'); -require_once('../../../../include/legesamtnote.class.php'); -require_once('../../../../include/lvgesamtnote.class.php'); -require_once('../../../../include/zeugnisnote.class.php'); - -$user = get_uid(); - -if(!check_lektor($user)) - die('Sie haben keine Berechtigung fuer diesen Bereich'); - -$rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($user); - -if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) //Lehrveranstaltung_id - $lvid = $_GET['lvid']; -else - die('Fehlerhafte Parameteruebergabe'); - -if(isset($_GET['lehreinheit_id']) && is_numeric($_GET['lehreinheit_id'])) //Lehreinheit_id - $lehreinheit_id = $_GET['lehreinheit_id']; -else - $lehreinheit_id = ''; - -//Laden der Lehrveranstaltung -$lv_obj = new lehrveranstaltung(); -if(!$lv_obj->load($lvid)) - die($lv_obj->errormsg); - -//Studiengang laden -$stg_obj = new studiengang($lv_obj->studiengang_kz); - -if(isset($_GET['stsem'])) - $stsem = $_GET['stsem']; -else - $stsem = ''; - -//Vars -$datum_obj = new datum(); - -$uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:''); -$uid = (isset($_GET['uid'])?$_GET['uid']:''); - -//Kopfzeile - - -//Studiensemester laden -$stsem_obj = new studiensemester(); -if($stsem=='') - $stsem = $stsem_obj->getaktorNext(); - - - - -if($lehreinheit_id=='') - die('Es wurde keine passende Lehreinheit in diesem Studiensemester gefunden'); - -$note = $_REQUEST["note"]; - -// lvgesamtnote für studenten speichern - -if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') && ((($note>0) && ($note < 6)) || ($note == 7) || ($note==8) || ($note==16)) ){ - - $jetzt = date("Y-m-d H:i:s"); - $student_uid = $_REQUEST["student_uid"]; - $legesamtnote = new legesamtnote($lehreinheit_id); - if (!$legesamtnote->load($student_uid,$lehreinheit_id)) - { - $legesamtnote->student_uid = $student_uid; - $legesamtnote->lehreinheit_id = $lehreinheit_id; - $legesamtnote->note = $_REQUEST["note"]; - $legesamtnote->benotungsdatum = $jetzt; - $legesamtnote->updateamum = null; - $legesamtnote->updatevon = null; - $legesamtnote->insertamum = $jetzt; - $legesamtnote->insertvon = $user; - $legesamtnote->new = true; - $response = "neu"; - } - else - { - $legesamtnote->note = $_REQUEST["note"]; - $legesamtnote->benotungsdatum = $jetzt; - $legesamtnote->updateamum = $jetzt; - $legesamtnote->updatevon = $user; - $legesamtnote->new = false; - $response = "update"; - } - if (!$legesamtnote->save()) - echo "".$legesamtnote->errormsg.""; - else - echo $response; -} -else - echo "Bitte geben Sie eine Note von 1 - 5 bzw. 7 (nicht beurteilt) oder 8 (teilgenommen) ein!"; - - -?> diff --git a/cis/private/lehre/benotungstool/legesamtnoteverwalten.php b/cis/private/lehre/benotungstool/legesamtnoteverwalten.php deleted file mode 100644 index e7e886bc9..000000000 --- a/cis/private/lehre/benotungstool/legesamtnoteverwalten.php +++ /dev/null @@ -1,488 +0,0 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > - */ -require_once('../../../../config/cis.config.inc.php'); -require_once('../../../../include/functions.inc.php'); -require_once('../../../../include/lehrveranstaltung.class.php'); -require_once('../../../../include/studiengang.class.php'); -require_once('../../../../include/studiensemester.class.php'); -require_once('../../../../include/lehreinheit.class.php'); -require_once('../../../../include/benutzerberechtigung.class.php'); -require_once('../../../../include/uebung.class.php'); -require_once('../../../../include/beispiel.class.php'); -require_once('../../../../include/studentnote.class.php'); -require_once('../../../../include/datum.class.php'); -require_once('../../../../include/legesamtnote.class.php'); -require_once('../../../../include/phrasen.class.php'); - -$sprache = getSprache(); -$p = new phrasen($sprache); -if (!$db = new basis_db()) - die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung')); - -$user = get_uid(); -if(!check_lektor($user)) - die($p->t('global/keineBerechtigungFuerDieseSeite')); - -$rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($user); - -if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) //Lehrveranstaltung_id - $lvid = $_GET['lvid']; -else - die($p->t('global/fehlerBeiDerParameteruebergabe')); - -if(isset($_GET['lehreinheit_id']) && is_numeric($_GET['lehreinheit_id'])) //Lehreinheit_id - $lehreinheit_id = $_GET['lehreinheit_id']; -else - $lehreinheit_id = ''; - -//Laden der Lehrveranstaltung -$lv_obj = new lehrveranstaltung(); -if(!$lv_obj->load($lvid)) - die($lv_obj->errormsg); - -//Studiengang laden -$stg_obj = new studiengang($lv_obj->studiengang_kz); - -if(isset($_GET['stsem'])) - $stsem = $_GET['stsem']; -else - $stsem = ''; - -if($stsem!='' && !check_stsem($stsem)) - die($p->t('global/studiensemesterKonnteNichtGefundenWerden')); - -//Vars -$datum_obj = new datum(); - -$uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:''); -$uid = (isset($_GET['uid'])?$_GET['uid']:''); -?> - - - - - -Kreuzerltool - - - - -'; -echo ' '; -echo '

'.$p->t('benotungstool/benotungstool'); -echo '

'."\n"; - -//Studiensemester laden -$stsem_obj = new studiensemester(); -if($stsem=='') - $stsem = $stsem_obj->getaktorNext(); - -$stsem_obj->getAll(); - -//Studiensemester DropDown -$stsem_content = $p->t('global/studiensemester').": \n"; - -//Lehreinheiten laden -if($rechte->isBerechtigt('admin',0) || $rechte->isBerechtigt('admin',$lv_obj->studiengang_kz) || $rechte->isBerechtigt('lehre',$lv_obj->studiengang_kz)) -{ - $qry = "SELECT - distinct lehrfach.kurzbz as lfbez, tbl_lehreinheit.lehreinheit_id, tbl_lehreinheit.lehrform_kurzbz as lehrform_kurzbz - FROM - lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach, lehre.tbl_lehreinheitmitarbeiter - WHERE - tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND - tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id AND - tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitmitarbeiter.lehreinheit_id AND - tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($stsem); -} -else -{ - $qry = "SELECT - distinct lehrfach.kurzbz as lfbez, tbl_lehreinheit.lehreinheit_id, tbl_lehreinheit.lehrform_kurzbz as lehrform_kurzbz - FROM - lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach, lehre.tbl_lehreinheitmitarbeiter - WHERE - tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND - tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id AND - tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitmitarbeiter.lehreinheit_id AND - tbl_lehreinheit.lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) WHERE mitarbeiter_uid=".$db->db_add_param($user).") AND - tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($stsem); - -} -if($result = $db->db_query($qry)) -{ - if($db->db_num_rows($result)>0) - { - //Lehreinheiten DropDown - echo $p->t('global/lehreinheit')." : '; - } - else - { - if($row = $db->db_fetch_object($result)) - $lehreinheit_id = $row->lehreinheit_id; - } -} -else -{ - echo $p->t('benotungstool/fehlerBeimAuslesen'); -} -echo $stsem_content; -echo ''; - -echo ''; -echo ''; -echo " -
 \n"; -echo "".$lv_obj->bezeichnung_arr[$sprache]."
"; - -if($lehreinheit_id=='') - die($p->t('benotungstool/keinePassendeLehreinheitGefunden')); - -//Menue -include("menue.inc.php"); -/* -echo "\n\n"; -echo "
 Verwaltung     - Anwesenheits- und Übersichtstabelle     - Studentenpunkte verwalten     - Statistik -

-\n"; -*/ - -// legesamtnote für studenten speichern -if (isset($_REQUEST["submit"]) && ($_POST["student_uid"] != '')){ - - $jetzt = date("Y-m-d H:i:s"); - $student_uid = $_POST["student_uid"]; - $legesamtnote = new legesamtnote($lehreinheit_id); - if (!$legesamtnote->load($student_uid,$lehreinheit_id)) - { - $legesamtnote->student_uid = $student_uid; - $legesamtnote->lehreinheit_id = $lehreinheit_id; - $legesamtnote->note = $_POST["note"]; - $legesamtnote->benotungsdatum = $jetzt; - $legesamtnote->updateamum = null; - $legesamtnote->updatevon = null; - $legesamtnote->insertamum = $jetzt; - $legesamtnote->insertvon = $user; - $legesamtnote->new = true; - } - else - { - $legesamtnote->note = $_POST["note"]; - $legesamtnote->benotungsdatum = $jetzt; - $legesamtnote->updateamum = $jetzt; - $legesamtnote->updatevon = $user; - } - if (!$legesamtnote->save()) - echo "".$legesamtnote->errormsg.""; -} - -echo "

".$p->t('benotungstool/leGesamtnotenVerwalten')."

"; -echo $p->t('benotungstool/noten'); - - -//Studentenliste -echo " - -"; - - echo " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "; -/* - if($row_grp->gruppe_kurzbz!='') - { - echo " - - - "; - $qry_stud = "SELECT uid, vorname, nachname, matrikelnr FROM campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzergruppe USING(uid) WHERE gruppe_kurzbz='".addslashes($row_grp->gruppe_kurzbz)."' AND studiensemester_kurzbz = '".$stsem."' ORDER BY nachname, vorname"; - } - else - { - echo " - - - "; - $qry_stud = "SELECT uid, vorname, nachname, matrikelnr FROM campus.vw_student_lehrveranstaltung - WHERE studiengang_kz='$row_grp->studiengang_kz' AND - semester='$row_grp->semester' ". - ($row_grp->verband!=''?" AND trim(verband)=trim('$row_grp->verband')":''). - ($row_grp->gruppe!=''?" AND trim(gruppe)=trim('$row_grp->gruppe')":''). - " ORDER BY nachname, vorname"; - } -*/ - -// studentenquery -$qry_stud = "SELECT uid, vorname, nachname, matrikelnr FROM campus.vw_student_lehrveranstaltung JOIN campus.vw_student using(uid) WHERE studiensemester_kurzbz = ".$db->db_add_param($stsem)." and lehreinheit_id = ".$db->db_add_param($lehreinheit_id, FHC_INTEGER)." ORDER BY nachname, vorname"; - -if($result_stud = $db->db_query($qry_stud)) -{ - $i=1; - while($row_stud = $db->db_fetch_object($result_stud)) - { - $studentnote = new studentnote(); - $studentnote->calc_gesamtnote($lehreinheit_id,$stsem,$row_stud->uid); - //echo $studentnote->debug; - $legesamtnote = new legesamtnote($lehreinheit_id); - if (!$legesamtnote->load($row_stud->uid,$lehreinheit_id)) - { - $note = null; - } - else - { - $note = $legesamtnote->note; - } - - if ($studentnote->studentgesamtnote!=0) - $note_calc = round($studentnote->studentgesamtnote,2); - else - $note_calc = null; - echo " - - - - "; - echo ""; - echo ""; - echo ""; - if ($note) - $note_final = $note; - else - { - if ($studentnote->negativ) - $note_final = 5; - else - { - $note_final = round($studentnote->studentgesamtnote); - if ($note_final == 0) - $note_final = null; - } - } - echo ""; - if ($note == 5) - $negmarkier = " style='color:red; font-weight:bold;'"; - else - $negmarkier = ""; - echo ""; - echo ""; - $i++; - } -} -echo "
        
".$p->t('global/uid')."".$p->t('global/nachname')."".$p->t('global/vorname')."".$p->t('benotungstool/gesamtnote')." ".$p->t('benotungstool/leGesamtnote')."
        
$row_grp->gruppe_kurzbz
Verband $row_grp->verband ".($row_grp->gruppe!=''?"Gruppe $row_grp->gruppe":'')."
$row_stud->uid$row_stud->nachname$row_stud->vorname$note_calc"; - if ($studentnote->negativ) - echo "neg"; - echo ""; - if ($studentnote->fehlt) - echo "X"; - else - echo "ok"; - echo "
$note
"; - -?> -
- - diff --git a/cis/private/lehre/benotungstool/menue.inc.php b/cis/private/lehre/benotungstool/menue.inc.php deleted file mode 100644 index 3c580b07a..000000000 --- a/cis/private/lehre/benotungstool/menue.inc.php +++ /dev/null @@ -1,63 +0,0 @@ -\n"; -echo ""; -echo "
\n"; -echo "\n"; -echo " \n"; -echo " \n"; -echo " \n"; -echo " \n"; -echo " \n"; -echo " \n"; -echo " \n"; -echo " \n"; -echo " \n"; -echo "
".$p->t('benotungstool/uebungen')."".$p->t('benotungstool/benotung')."".$p->t('benotungstool/anwesenheitstabelle')."".$p->t('benotungstool/statistik')."
"; - -if ($pfile == "verwaltung.php") - echo "".$p->t('benotungstool/uebersicht').""; -else if ($pfile == "verwaltung_listen.php") -{ - echo "".$p->t('benotungstool/uebersicht')." \n"; - if (isset($_GET["liste_id"]) && !isset($_GET["uebung_id"])) - echo " | ".$p->t('benotungstool/uebung')." \n"; - if (isset($_GET["liste_id"]) && isset($_GET["uebung_id"])) - echo " | ".$p->t('benotungstool/uebung')." | ".$p->t('benotungstool/liste')." \n"; -} - -if ($pfile == "studentenpunkteverwalten.php" && (!isset($_GET["uid"]) || $_GET["uid"]=="")) - echo "".$p->t('benotungstool/uebungsnotenVerwalten').": ".$p->t('benotungstool/uebersicht')." | ".$p->t('benotungstool/leNotenVerwalten')." | ".$p->t('benotungstool/lvNotenVerwalten').""; -else if ($pfile == "studentenpunkteverwalten.php") - echo "".$p->t('benotungstool/uebungsnotenVerwalten').": ".$p->t('benotungstool/detail')." / ".$p->t('benotungstool/uebersicht')." | ".$p->t('benotungstool/leNotenVerwalten')." | ".$p->t('benotungstool/lvNotenVerwalten').""; - -else if ($pfile == "legesamtnoteverwalten.php") - echo "".$p->t('benotungstool/uebungsnotenVerwalten')." | ".$p->t('benotungstool/leNotenVerwalten')." | ".$p->t('benotungstool/lvNotenVerwalten').""; -else if ($pfile == "lvgesamtnoteverwalten.php") - echo "".$p->t('benotungstool/uebungsnotenVerwalten')." | ".$p->t('benotungstool/leNotenVerwalten')." | ".$p->t('benotungstool/lvNotenVerwalten').""; - -if ($pfile == 'anwesenheitstabelle.php') - echo " "; -if ($pfile == 'statistik.php') - echo " "; - -echo "
\n"; -echo "
\n\n"; -?> diff --git a/cis/private/lehre/benotungstool/nachpruefungeintragen.php b/cis/private/lehre/benotungstool/nachpruefungeintragen.php index f1afe0420..0ad985e76 100644 --- a/cis/private/lehre/benotungstool/nachpruefungeintragen.php +++ b/cis/private/lehre/benotungstool/nachpruefungeintragen.php @@ -170,7 +170,9 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') ) if($pr->getPruefungen($student_uid, "Termin1", $lvid, $stsem)) { if ($pr->result) + { $termin1 = 1; + } else { $lvnote = new lvgesamtnote(); @@ -183,6 +185,7 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') ) else { $pr_note = 9; + $pr_punkte = ''; $benotungsdatum = $jetzt; } diff --git a/cis/private/lehre/benotungstool/statistik.php b/cis/private/lehre/benotungstool/statistik.php deleted file mode 100644 index a2ce600b9..000000000 --- a/cis/private/lehre/benotungstool/statistik.php +++ /dev/null @@ -1,398 +0,0 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > - */ - -require_once('../../../../config/cis.config.inc.php'); -require_once('../../../../include/basis_db.class.php'); -require_once('../../../../include/functions.inc.php'); -require_once('../../../../include/lehrveranstaltung.class.php'); -require_once('../../../../include/studiengang.class.php'); -require_once('../../../../include/studiensemester.class.php'); -require_once('../../../../include/lehreinheit.class.php'); -require_once('../../../../include/benutzerberechtigung.class.php'); -require_once('../../../../include/uebung.class.php'); -require_once('../../../../include/beispiel.class.php'); -require_once('../../../../include/datum.class.php'); -require_once('../../../../include/phrasen.class.php'); - -if (!$db = new basis_db()) - die('Fehler beim Herstellen der Datenbankverbindung'); - -$sprache = getSprache(); -$p = new phrasen($sprache); - -?> - - - - - -<?php echo $p->t('benotungstool/kreuzerltool');?> - - - - -t('global/keineBerechtigungFuerDieseSeite')); - -$rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($user); - -if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) //Lehrveranstaltung_id - $lvid = $_GET['lvid']; -else - die($p->t('global/fehlerBeiDerParameteruebergabe')); - -if(isset($_GET['lehreinheit_id']) && is_numeric($_GET['lehreinheit_id'])) //Lehreinheit_id - $lehreinheit_id = $_GET['lehreinheit_id']; -else - $lehreinheit_id = ''; - -//Laden der Lehrveranstaltung -$lv_obj = new lehrveranstaltung(); -if(!$lv_obj->load($lvid)) - die($lv_obj->errormsg); - -//Studiengang laden -$stg_obj = new studiengang($lv_obj->studiengang_kz); - -if(isset($_GET['stsem'])) - $stsem = $_GET['stsem']; -else - $stsem = ''; - -//Vars -$datum_obj = new datum(); - -$uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:''); - -//Kopfzeile -echo ''; -echo '
'; -echo '

'.$p->t('benotungstool/benotungstool'); -echo '

'."\n"; - -//Studiensemester laden -$stsem_obj = new studiensemester(); -if($stsem=='') - $stsem = $stsem_obj->getaktorNext(); - -$stsem_obj->getAll(); - -//Studiensemester DropDown -$stsem_content = $p->t('global/studiensemester').": \n"; - -//Lehreinheiten laden -if($rechte->isBerechtigt('admin',0) || $rechte->isBerechtigt('admin',$lv_obj->studiengang_kz) || $rechte->isBerechtigt('lehre',$lv_obj->studiengang_kz)) -{ - $qry = "SELECT - distinct lehrfach.kurzbz as lfbez, tbl_lehreinheit.lehreinheit_id, tbl_lehreinheit.lehrform_kurzbz as lehrform_kurzbz - FROM - lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach, lehre.tbl_lehreinheitmitarbeiter - WHERE - tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND - tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id AND - tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitmitarbeiter.lehreinheit_id AND - tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($stsem); -} -else -{ - $qry = "SELECT - distinct lehrfach.kurzbz as lfbez, tbl_lehreinheit.lehreinheit_id, tbl_lehreinheit.lehrform_kurzbz as lehrform_kurzbz - FROM - lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach, lehre.tbl_lehreinheitmitarbeiter - WHERE - tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND - tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id AND - tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitmitarbeiter.lehreinheit_id AND - tbl_lehreinheit.lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) WHERE mitarbeiter_uid=".$db->db_add_param($user).") AND - tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($stsem); - -} - -if($result = $db->db_query($qry)) -{ - if($db->db_num_rows($result)>1) - { - //Lehreinheiten DropDown - echo $p->t('global/lehreinheit').": '; - } - else - { - if($row = $db->db_fetch_object($result)) - $lehreinheit_id = $row->lehreinheit_id; - } -} -else -{ - echo $p->t('benotungstool/fehlerBeimAuslesen'); -} -echo $stsem_content; -echo '
'; -echo ''; -echo ''; -echo " -
 \n"; -echo "".$lv_obj->bezeichnung_arr[$sprache]."
"; - -if($lehreinheit_id=='') - die($p->t('benotungstool/keinePassendeLehreinheitGefunden')); - -//Menue -include("menue.inc.php"); -/* -echo "\n\n"; -echo "
- Verwaltung     - Anwesenheits- und Übersichtstabelle     - Studentenpunkte verwalten     - Statistik -

-\n"; -*/ - -echo "

".$p->t('benotungstool/statistikFuerKreuzerllisten')."

"; -$uebung_obj = new uebung(); -$uebung_obj->load_uebung($lehreinheit_id,1); -if(count($uebung_obj->uebungen)>0) -{ - echo "'; - - echo " -
"; - echo "
".$p->t('benotungstool/waehlenSieEineKreuzerlliste').": '; - - echo '
- - - - - - - - - -
+...".$p->t('benotungstool/freigeschaltet').".
-...".$p->t('benotungstool/nichtFreigeschaltet').".
-
"; -} -else - die($p->t('benotungstool/derzeitSindKeineUebungenAngelegt')); - - -echo "


"; -if(isset($uebung_id) && $uebung_id!='') -{ - $beispiel_obj = new beispiel(); - if($beispiel_obj->load_beispiel($uebung_id)) - { - if(count($beispiel_obj->beispiele)>0) - { - echo ' - - - - '; - $i=0; - $qry_cnt = "SELECT distinct student_uid FROM campus.tbl_studentbeispiel JOIN campus.tbl_beispiel USING(beispiel_id) WHERE uebung_id=".$db->db_add_param($uebung_id, FHC_INTEGER)." GROUP BY student_uid"; - if($result_cnt = $db->db_query($qry_cnt)) - $gesamt=$db->db_num_rows($result_cnt); - - foreach ($beispiel_obj->beispiele as $row) - { - $i++; - $solved = 0; - $psolved = 0; - $qry_cnt = "SELECT count(*) as anzahl FROM campus.tbl_studentbeispiel WHERE beispiel_id=".$db->db_add_param($row->beispiel_id, FHC_INTEGER)." AND vorbereitet=true"; - if($result_cnt = $db->db_query($qry_cnt)) - if($row_cnt = $db->db_fetch_object($result_cnt)) - $solved = $row_cnt->anzahl; - - if($solved>0) - $psolved = $solved/$gesamt*100; - - echo ' - - - '; - } - echo "
  - - - - -
 
-
- '.$row->bezeichnung.' - - - - - -
- - - - -
- -  '.$solved.' ['.number_format($psolved,1,'.','').'%] -
-
-
"; - echo "

Es haben insgesamt $gesamt Studenten eingetragen."; - } - } - else - echo "$beispiel_obj->errormsg"; -} - -?> -
- - diff --git a/cis/private/lehre/benotungstool/studentenansicht.php b/cis/private/lehre/benotungstool/studentenansicht.php deleted file mode 100644 index d13f24aa0..000000000 --- a/cis/private/lehre/benotungstool/studentenansicht.php +++ /dev/null @@ -1,1173 +0,0 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ -// ******************** -// * Studentenansicht fuers Kreuzerltool -// ******************** - -require_once('../../../../config/cis.config.inc.php'); -require_once('../../../../include/basis_db.class.php'); -require_once('../../../../include/functions.inc.php'); -require_once('../../../../include/lehrveranstaltung.class.php'); -require_once('../../../../include/studiengang.class.php'); -require_once('../../../../include/studiensemester.class.php'); -require_once('../../../../include/lehreinheit.class.php'); -require_once('../../../../include/benutzerberechtigung.class.php'); -require_once('../../../../include/uebung.class.php'); -require_once('../../../../include/beispiel.class.php'); -require_once('../../../../include/datum.class.php'); -require_once('../../../../include/studentnote.class.php'); -require_once('../../../../include/legesamtnote.class.php'); -require_once('../../../../include/lvgesamtnote.class.php'); -require_once('../../../../include/zeugnisnote.class.php'); -require_once('../../../../include/phrasen.class.php'); -include('functions.inc.php'); - -$sprache = getSprache(); -$p = new phrasen($sprache); - -if (!$db = new basis_db()) - die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung')); -$user = get_uid(); - -$lektorenansicht = 0; - -if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) //Lehrveranstaltung_id - $lvid = $_GET['lvid']; -else - die($p->t('global/fehlerBeiDerParameteruebergabe')); - -if(isset($_GET['lehreinheit_id']) && is_numeric($_GET['lehreinheit_id'])) //Lehreinheit_id - $lehreinheit_id = $_GET['lehreinheit_id']; -else - $lehreinheit_id = ''; -$uid = (isset($_GET['uid'])?$_GET['uid']:''); //Uid - -if(check_lektor($user) && (isset($_GET['uid']) && $_GET["uid"] != "")) -{ - $rights = new benutzerberechtigung(); - $rights->getBerechtigungen($user); - $lehreinheit=new lehreinheit($_GET["lehreinheit_id"]); - if(!check_lektor_lehrveranstaltung($user, $lehreinheit->lehrveranstaltung_id, $lehreinheit->studiensemester_kurzbz) && !$rights->isBerechtigt('admin',0)) - die($p->t('global/keineBerechtigungFuerDieseSeite')); - $lektorenansicht = 1; - $user = $_GET["uid"]; -} - -//Laden der Lehrveranstaltung -$lv_obj = new lehrveranstaltung(); -if(!$lv_obj->load($lvid)) - die($lv_obj->errormsg); - -//Studiengang laden -$stg_obj = new studiengang($lv_obj->studiengang_kz); - -if(isset($_GET['stsem'])) - $stsem = $_GET['stsem']; -else - $stsem = ''; - -//Vars -$datum_obj = new datum(); - -$uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:''); - -//Abgabedatei ausliefern -if (isset($_GET["download_abgabe"])) -{ - $file=$_GET["download_abgabe"]; - $file = preg_replace('/[^A-Za-z0-9\-_.]/', '',$file); - $uebung_id = $_GET["uebung_id"]; - $ueb = new uebung(); - if($ueb->load_studentuebung($user, $uebung_id)) - { - if($ueb->load_abgabe($ueb->abgabe_id)) - { - $filename = BENOTUNGSTOOL_PATH."abgabe/".$ueb->abgabedatei; - header('Content-Type: application/octet-stream'); - header('Content-disposition: attachment; filename="'.$file.'"'); - readfile($filename); - exit; - } - else - { - die($ueb->errormsg); - } - } - else - die($ueb->errormsg); -} - -//Angabedatei ausliefern -if (isset($_GET["download"])){ - $file=$_GET["download"]; - $uebung_id = $_GET["uebung_id"]; - $ueb = new uebung(); - $ueb->load($uebung_id); - $filename = BENOTUNGSTOOL_PATH."angabe/".$ueb->angabedatei; - header('Content-Type: application/octet-stream'); - header('Content-disposition: attachment; filename="'.$file.'"'); - readfile($filename); - exit; -} - -?> - - - - - - -<?php echo $p->t('benotungstool/kreuzerltool');?> - - - - - - -load_studentuebung($user, $uebung_id); - if (!$ueb->delete_abgabe($ueb->abgabe_id)) - echo $ueb->errormsg; - -} -//echo $_FILES["abgabedatei"]; -//if (isset($_FILES["abgabedatei"])) -if (isset($_POST["abgabe"])) -{ - $abgabedatei_up = $_FILES["abgabedatei"]["tmp_name"]; - $abgabe_anmerkung = (isset($_POST["abgabe_anmerkung"])?$_POST["abgabe_anmerkung"]:''); - - if ($abgabedatei_up) - { - //echo $abgabedatei_up; - $datum = date('Y-m-d H:i:s'); - $datumstr = str_replace(" ","_",$datum); - $name_up = pathinfo($_FILES["abgabedatei"]["name"]); - $name_neu = makeUploadName($db, $which='abgabe', $lehreinheit_id=$lehreinheit_id, $uebung_id=$uebung_id, $ss=$stsem,$uid=$user, $date=$datumstr); - $name_neu = preg_replace('/[^A-Za-z0-9\-_]/', '',$name_neu); - $abgabedatei = $name_neu.".".$name_up["extension"]; - $abgabepfad = BENOTUNGSTOOL_PATH."abgabe/".$abgabedatei; - - $uebung_obj = new uebung(); - $uebung_obj->load_studentuebung($user, $uebung_id); - - if ($uebung_obj->errormsg != "") - { - $uebung_obj->student_uid = $user; - $uebung_obj->mitarbeiter_uid = null; - $uebung_obj->abgabe_id = null; - $uebung_obj->uebung_id = $uebung_id; - $uebung_obj->note = null; - $uebung_obj->mitarbeitspunkte = null; - $uebung_obj->punkte = null; - $uebung_obj->anmerkung = null; - $uebung_obj->benotungsdatum = null; - $uebung_obj->updateamum = null; - $uebung_obj->updatevon = null; - $uebung_obj->insertamum = $datum; - $uebung_obj->insertvon = $user; - $uebung_obj->new = true; - $uebung_obj->studentuebung_save($new=true); - //echo $uebung_obj->errormsg; - - } - if ($uebung_obj->abgabe_id != null) - { - $uebung_obj->load_abgabe($uebung_obj->abgabe_id); - unlink(BENOTUNGSTOOL_PATH."abgabe/".$uebung_obj->abgabedatei); - $uebung_obj->abgabedatei = $abgabedatei; - $uebung_obj->abgabezeit = $datum; - $uebung_obj->abgabe_anmerkung = $abgabe_anmerkung; - $uebung_obj->abgabe_save(false); - } - else - { - $uebung_obj->abgabedatei = $abgabedatei; - $uebung_obj->abgabezeit = $datum; - $uebung_obj->abgabe_anmerkung = $abgabe_anmerkung; - $uebung_obj->abgabe_save(true); - } - $uebung_obj->studentuebung_save(false); - //Abgabedatei ablegen - move_uploaded_file($_FILES['abgabedatei']['tmp_name'], $abgabepfad); - } - - else - { - $abgabe_anmerkung = $_POST["abgabe_anmerkung"]; - $uebung_obj2 = new uebung(); - $uebung_obj2->load_studentuebung($user, $uebung_id); - if ($uebung_obj2->errormsg == "") - { - if ($uebung_obj2->abgabe_id != null) - { - $uebung_obj2->load_abgabe($uebung_obj2->abgabe_id); - $uebung_obj2->abgabe_anmerkung = $abgabe_anmerkung; - $uebung_obj2->abgabe_save(false); - } - } - } -} -else - $abgabedatei_up = null; - - - - -//Kopfzeile -echo ''; -echo '
'; -echo '

'.$p->t('benotungstool/benotungstool'); -echo '

'."\n"; - -//Studiensemester laden -$stsem_obj = new studiensemester(); -if($stsem=='') - $stsem = $stsem_obj->getaktorNext(); - -//Lehreinheiten laden zu denen der eingeloggte Student zugeteilt ist -//Bei Lehrverbaenden werden auch die uebergeordneten geladen -$qry = "SELECT distinct lehreinheit_id, lehrfach.kurzbz FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) WHERE lehreinheit_id IN( - SELECT lehreinheit_id FROM public.tbl_benutzergruppe JOIN lehre.tbl_lehreinheitgruppe USING (gruppe_kurzbz) - WHERE tbl_benutzergruppe.uid=".$db->db_add_param($user)." AND - tbl_lehreinheitgruppe.lehreinheit_id IN( - SELECT lehreinheit_id FROM lehre.tbl_lehreinheit JOIN campus.tbl_uebung USING(lehreinheit_id) - WHERE tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem).") - UNION - SELECT - lehreinheit_id - FROM - public.tbl_student, lehre.tbl_lehreinheitgruppe, public.tbl_studentlehrverband - WHERE - tbl_student.student_uid=".$db->db_add_param($user)." AND - tbl_studentlehrverband.student_uid=tbl_student.student_uid AND - tbl_studentlehrverband.studiensemester_kurzbz=".$db->db_add_param($stsem)." AND - tbl_student.studiengang_kz=tbl_lehreinheitgruppe.studiengang_kz AND - tbl_lehreinheitgruppe.gruppe_kurzbz is null AND - tbl_studentlehrverband.semester=tbl_lehreinheitgruppe.semester AND - ( - ( - ( - tbl_lehreinheitgruppe.verband<>'' AND - tbl_lehreinheitgruppe.gruppe<>'' AND - trim(tbl_lehreinheitgruppe.verband) = trim(tbl_studentlehrverband.verband) AND - trim(tbl_lehreinheitgruppe.gruppe) = trim(tbl_studentlehrverband.gruppe) - ) - OR - ( - tbl_lehreinheitgruppe.verband<>'' AND - ( - trim(tbl_lehreinheitgruppe.gruppe)='' OR - tbl_lehreinheitgruppe.gruppe is null - ) - AND - trim(tbl_lehreinheitgruppe.verband) = trim(tbl_studentlehrverband.verband) - ) - OR - ( - (trim(tbl_lehreinheitgruppe.verband)='' OR tbl_lehreinheitgruppe.verband is null) - AND - (trim(tbl_lehreinheitgruppe.gruppe)='' OR tbl_lehreinheitgruppe.gruppe is null) - ) - ) - ) - AND - tbl_lehreinheitgruppe.lehreinheit_id IN(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit JOIN campus.tbl_uebung USING(lehreinheit_id) - WHERE tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem)."))"; -//echo $qry; -if($result = $db->db_query($qry)) -{ - if($db->db_num_rows($result)>1) - { - //Lehreinheiten DropDown - echo $p->t('global/lehreinheit')." : '; - } - else - { - if($row = $db->db_fetch_object($result)) - $lehreinheit_id = $row->lehreinheit_id; - else - $lehreinheit_id =''; - } -} -else -{ - echo $p->t('benotungstool/fehlerBeimAuslesen'); -} - -echo '
'; -echo ''; -echo ''; -echo "
 \n"; -echo "
".$lv_obj->bezeichnung_arr[$sprache]."".$p->t('benotungstool/downloadverzeichnisAnzeigen')."

"; - -if($lehreinheit_id=='') - die($p->t('benotungstool/keineKreuzerllistenFuerDieseLehrveranstaltung')); - -$qry = "SELECT vorname, nachname FROM campus.vw_student WHERE uid=".$db->db_add_param($user); -$name=''; -if($result = $db->db_query($qry)) - if($row = $db->db_fetch_object($result)) - $name = $row->vorname.' '.$row->nachname; - - - -if (!isset($_GET["notenuebersicht"])) -{ - $l = 0; - $ueb_check = new uebung(); - $ueb_check->load_uebung($lehreinheit_id,1); - if (count($ueb_check->uebungen > 0)) - { - foreach ($ueb_check->uebungen as $row) - { - $sub_check = new uebung(); - $sub_check->load_uebung($lehreinheit_id,2,$row->uebung_id); - if (count($sub_check->uebungen) > 0) - $l = 1; - } - } - - if ($l > 0) - { - echo "
".$p->t('lehre/leistungsuebersicht')." / ".$p->t('benotungstool/notenuebersichtFuer')." $name

"; - $uebung_obj = new uebung(); - $uebung_obj->load_uebung($lehreinheit_id,1); - if(count($uebung_obj->uebungen)>0) - { - echo "'; - - echo " -
"; - echo "
".$p->t('benotungstool/waehlenSieEineAufgabeAus').": '; - echo '
- - - - - - - - - -
+...".$p->t('benotungstool/freigeschaltet').".
-...".$p->t('benotungstool/nichtFreigeschaltet').".
-
"; - } - else - die($p->t('benotungstool/derzeitGibtEsKeineUebungen')); - } - else - { - $callURL="studentenansicht.php?lvid=$lvid&stsem=$stsem&lehreinheit_id=$lehreinheit_id¬enuebersicht=1&uid=$user"; - #header("Location:$callURL"); - echo ""; - exit; - //echo "Derzeit sind keine Kreuzerllisten oder Abgaben angelegt"; - } - - - - //******SPEICHERN DER DATEN************* - if(isset($_POST['submit'])) - { - $error=false; - - $ueb_hlp_obj = new uebung(); - $ueb_hlp_obj->load($uebung_id); - //Wenn Kreuzerlliste Freigegeben ist - if($datum_obj->mktime_fromtimestamp($ueb_hlp_obj->freigabevon)mktime_fromtimestamp($ueb_hlp_obj->freigabebis)>time()) - { - $bsp_obj = new beispiel(); - - if($bsp_obj->load_beispiel($uebung_id)) - { - $anzahl_solved = 0; - foreach ($bsp_obj->beispiele as $row) - { - if (isset($_POST['solved_'.$row->beispiel_id]) && ($_POST['solved_'.$row->beispiel_id]==1)) - $anzahl_solved++; - } - if (($anzahl_solved <= $ueb_hlp_obj->maxbsp) || ($ueb_hlp_obj->maxbsp == 0)) - { - foreach ($bsp_obj->beispiele as $row) - { - $stud_bsp_obj = new beispiel(); - - if($stud_bsp_obj->load_studentbeispiel($user, $row->beispiel_id)) - { - $stud_bsp_obj->new=false; - } - else - { - $stud_bsp_obj->new=true; - $stud_bsp_obj->insertamum = date('Y-m-d H:i:s'); - $stud_bsp_obj->insertvon = $user; - $stud_bsp_obj->vorbereitet = false; - } - if (isset($_POST['solved_'.$row->beispiel_id])) - $stud_bsp_obj->vorbereitet = ($_POST['solved_'.$row->beispiel_id]==1?true:false); - - $stud_bsp_obj->probleme = (isset($_POST['problem_'.$row->beispiel_id])?true:false); - $stud_bsp_obj->updateamum = date('Y-m-d H:i:s'); - $stud_bsp_obj->updatevon = $user; - $stud_bsp_obj->student_uid = $user; - $stud_bsp_obj->beispiel_id = $row->beispiel_id; - - if(!$row->check_anzahl_studentbeispiel($row->beispiel_id)) - die('Fehler beim Ermitteln der Beispiele'); - if (($row->anzahl_studentbeispiel >= $ueb_hlp_obj->maxstd) && ($stud_bsp_obj->vorbereitet==true) && ($ueb_hlp_obj->maxstd != null)) //isset($_POST['problem_'.$row->beispiel_id]) && $stud_bsp_obj->new || - { - $hlp = new beispiel(); - if($hlp->load_studentbeispiel($user, $row->beispiel_id)) - { - if($hlp->vorbereitet!=$stud_bsp_obj->vorbereitet) - { - echo "".$p->t('benotungstool/dasBeispielKannNichtMehrAngekreuztWerden',array($row->bezeichnung))."
"; - $error = true; - } - } - } - else - { - if(!$stud_bsp_obj->studentbeispiel_save()) - { - echo $stud_bsp_obj->errormsg; - $error=true; - } - } - } - } - else - { - $error=true; - echo $p->t('benotungstool/zuVieleBeispieleAngekreuzt')."!
"; - } - } - - if($error) - echo "".$p->t('benotungstool/esKonntenNichtAlleDatenGespeichertWerden')."
"; - else - echo $p->t('global/erfolgreichgespeichert')."
"; - } - else - echo "".$p->t('benotungstool/nichtGespeichertKreuzerllisteNichtFreigegeben')."!"; - } - - //********ANZEIGE DER EINGETRAGENEN KREUZERL*********** - if ($l > 0) - { - $uebung_obj = new uebung(); - $uebung_obj->load($uebung_id); - $downloadname = mb_ereg_replace($uebung_id,mb_ereg_replace(' ','_',$uebung_obj->bezeichnung), $uebung_obj->angabedatei); - $downloadname = preg_replace('/[^A-Za-z0-9\-_.]/', '',$downloadname); - echo $p->t('benotungstool/freigegebenVon')." ".date('d.m.Y H:i',$datum_obj->mktime_fromtimestamp($uebung_obj->freigabevon))." ".$p->t('global/bis')." ".date('d.m.Y H:i',$datum_obj->mktime_fromtimestamp($uebung_obj->freigabebis)); - echo "

$uebung_obj->bezeichnung

"; - if ($uebung_obj->angabedatei) - echo $p->t('benotungstool/angabe').":
".$downloadname."

"; - - - $ueb_obj = new uebung(); - if($ueb_obj->load_studentuebung($user, $uebung_id)) - { - $anmerkung = $ueb_obj->anmerkung; - $mitarbeit = $ueb_obj->mitarbeitspunkte; - $note = $ueb_obj->note; - } - else - { - $anmerkung = ''; - $mitarbeit = 0; - $note = null; - } - // $anmerkung = ereg_replace("\n","
",$anmerkung); - $anmerkung = mb_str_replace("\n", "
", $anmerkung); - if ($uebung_obj->beispiele) - { - - $qry_cnt = "SELECT count(*) as anzahl FROM campus.tbl_studentbeispiel WHERE beispiel_id IN (SELECT beispiel_id from campus.tbl_beispiel where uebung_id =".$db->db_add_param($uebung_id, FHC_INTEGER).") AND vorbereitet=true and student_uid = ".$db->db_add_param($user); - if($result_cnt = $db->db_query($qry_cnt)) - if($row_cnt = $db->db_fetch_object($result_cnt)) - $anzahl = $row_cnt->anzahl; - - echo ""; - - $bsp_obj = new beispiel(); - $bsp_obj->load_beispiel($uebung_id); - if ($bsp_obj->beispiele) - { - echo " "; - if ($uebung_obj->maxbsp > 0) - echo ""; - if ($uebung_obj->maxstd > 0) - echo ""; - echo "
".$p->t('benotungstool/maxBeispieleStudent').":".$uebung_obj->maxbsp."
".$p->t('benotungstool/maxStudentenBeispiel').":".$uebung_obj->maxstd."
"; - echo " -
- - - "; - echo "
- ".($anmerkung!=''?''.$p->t('global/anmerkungen').':
'.$anmerkung.'

':'')." -
- - - - - - - - "; - - - - foreach ($bsp_obj->beispiele as $row) - { - $bsp_voll = false; - $stud_bsp_obj = new beispiel(); - if ($uebung_obj->maxstd > 0) - { - $stud_bsp_obj->check_anzahl_studentbeispiel($row->beispiel_id); - if ($stud_bsp_obj->anzahl_studentbeispiel >= $uebung_obj->maxstd) - $bsp_voll = true; - } - if($stud_bsp_obj->load_studentbeispiel($user, $row->beispiel_id)) - { - $vorbereitet = $stud_bsp_obj->vorbereitet; - $probleme = $stud_bsp_obj->probleme; - } - else - { - $vorbereitet = false; - $probleme = false; - } - if ($bsp_voll) - { - $ro = " disabled"; - $markiert = " style='background-color:#dddddd;'"; - } - else - { - $ro = ""; - $markiert = ""; - } - echo " - - - - - - "; - - - } - - //Speichern button nur Anzeigen wenn die Uebung Freigegeben ist - if($datum_obj->mktime_fromtimestamp($uebung_obj->freigabevon)mktime_fromtimestamp($uebung_obj->freigabebis)>time()) - echo ""; - - echo "
".$p->t('benotungstool/beispiel')."".$p->t('benotungstool/vorbereitet')."".$p->t('benotungstool/nichtVorbereitet')."".$p->t('benotungstool/probleme')."".$p->t('benotungstool/punkte')."
$row->bezeichnung$row->punkte
"; - } - else - echo "
".$p->t('benotungstool/keineBeispieleAngelegt')."
- -
 
"; - - if ($uebung_obj->abgabe) - { - - echo "
\n"; - $uebung_obj->load_studentuebung($user, $uebung_id); - if ($uebung_obj->abgabe_id) - { - $uebung_obj->load_abgabe($uebung_obj->abgabe_id); - echo " "; - echo" "; - echo ""; - } - - if($datum_obj->mktime_fromtimestamp($uebung_obj->freigabevon)mktime_fromtimestamp($uebung_obj->freigabebis)>time()) - { - echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo "\n"; - - } - echo "
".$p->t('benotungstool/abgabedatei').":
".$uebung_obj->abgabedatei.""; - if($datum_obj->mktime_fromtimestamp($uebung_obj->freigabevon)mktime_fromtimestamp($uebung_obj->freigabebis)>time()) - echo " [del]
\n"; - echo " "; - echo "
"; - } - - echo "
"; - - //Gesamtpunkte diese Kreuzerlliste - $qry = "SELECT sum(punkte) as punktegesamt FROM campus.tbl_beispiel WHERE uebung_id=".$db->db_add_param($uebung_id, FHC_INTEGER); - $punkte_gesamt=0; - if($result=$db->db_query($qry)) - if($row = $db->db_fetch_object($result)) - $punkte_gesamt = $row->punktegesamt; - - //Eingetragen diese Kreuzerlliste - $qry = "SELECT sum(punkte) as punkteeingetragen FROM campus.tbl_beispiel JOIN campus.tbl_studentbeispiel USING(beispiel_id) WHERE uebung_id=".$db->db_add_param($uebung_id, FHC_INTEGER)." AND student_uid=".$db->db_add_param($user)." AND vorbereitet=true"; - $punkte_eingetragen=0; - if($result=$db->db_query($qry)) - if($row = $db->db_fetch_object($result)) - $punkte_eingetragen = ($row->punkteeingetragen!=''?$row->punkteeingetragen:0); - - //Gesamtpunkte alle Kreuzerllisten in dieser Übung - $ueb_help = new uebung($uebung_id); - $liste_id = $ueb_help->liste_id; - $qry = "SELECT sum(tbl_beispiel.punkte) as punktegesamt_alle FROM campus.tbl_beispiel, campus.tbl_uebung - WHERE tbl_uebung.uebung_id=tbl_beispiel.uebung_id AND - tbl_uebung.lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER)." and tbl_uebung.liste_id = ".$db->db_add_param($liste_id, FHC_INTEGER); - $punkte_gesamt_alle=0; - if($result=$db->db_query($qry)) - if($row = $db->db_fetch_object($result)) - $punkte_gesamt_alle = $row->punktegesamt_alle; - - //Eingetragen alle Kreuzerllisten - $qry = "SELECT sum(tbl_beispiel.punkte) as punkteeingetragen_alle FROM campus.tbl_beispiel, campus.tbl_studentbeispiel, campus.tbl_uebung - WHERE tbl_beispiel.beispiel_id = tbl_studentbeispiel.beispiel_id AND - tbl_uebung.uebung_id=tbl_beispiel.uebung_id AND - tbl_uebung.lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER)." AND - tbl_uebung.liste_id = ".$db->db_add_param($liste_id, FHC_INTEGER)." AND - tbl_studentbeispiel.student_uid=".$db->db_add_param($user)." AND vorbereitet=true"; - $punkte_eingetragen_alle=0; - if($result=$db->db_query($qry)) - if($row = $db->db_fetch_object($result)) - $punkte_eingetragen_alle = ($row->punkteeingetragen_alle!=''?$row->punkteeingetragen_alle:0); - - //Mitarbeitspunkte - $qry = "SELECT sum(mitarbeitspunkte) as mitarbeitspunkte FROM campus.tbl_studentuebung JOIN campus.tbl_uebung USING(uebung_id) - WHERE lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER)." AND student_uid=".$db->db_add_param($user)." AND liste_id = ".$db->db_add_param($liste_id, FHC_INTEGER); - $mitarbeit_alle=0; - if($result=$db->db_query($qry)) - if($row = $db->db_fetch_object($result)) - $mitarbeit_alle = ($row->mitarbeitspunkte!=''?$row->mitarbeitspunkte:0); - - //Mitarbeitspunkte - $qry = "SELECT mitarbeitspunkte FROM campus.tbl_studentuebung - WHERE uebung_id=".$db->db_add_param($uebung_id, FHC_INTEGER)." AND student_uid=".$db->db_add_param($user); - $mitarbeit=0; - if($result=$db->db_query($qry)) - if($row = $db->db_fetch_object($result)) - $mitarbeit = $row->mitarbeitspunkte; - echo " - - - - - - - - - - - - - -
".$p->t('benotungstool/dieseKreuzerlliste').":
".$p->t('benotungstool/punkteInsgesamtMoeglich').":$punkte_gesamt
".$p->t('benotungstool/punkteEingetragen').":$punkte_eingetragen
-

- - - - - - - - - - - - -
".$p->t('benotungstool/alleKreuzerllistenDieserUebung').":
".$p->t('benotungstool/punkteInsgesamtMoeglich').":$punkte_gesamt_alle
".$p->t('benotungstool/punkteEingetragen').":$punkte_eingetragen_alle
-

- - - - - - - - - - - - -
".$p->t('benotungstool/mitarbeitspunkte').":
".$p->t('benotungstool/bisherInsgesamt').":$mitarbeit_alle
".$p->t('benotungstool/dieseKreuzerlliste').":$mitarbeit
- "; - - - echo " -
- - - "; - - //**********STATISTIK*************** - if($uebung_obj->statistik) - { - echo "

".$p->t('benotungstool/statistik')."

"; - $beispiel_obj = new beispiel(); - if($beispiel_obj->load_beispiel($uebung_id)) - { - if(count($beispiel_obj->beispiele)>0) - { - echo ' - - - - '; - $i=0; - $qry_cnt = "SELECT distinct student_uid FROM campus.tbl_studentbeispiel JOIN campus.tbl_beispiel USING(beispiel_id) WHERE uebung_id=".$db->db_add_param($uebung_id)." GROUP BY student_uid"; - if($result_cnt = $db->db_query($qry_cnt)) - $gesamt=$db->db_num_rows($result_cnt); - - foreach ($beispiel_obj->beispiele as $row) - { - $i++; - $solved = 0; - $psolved = 0; - $qry_cnt = "SELECT count(*) as anzahl FROM campus.tbl_studentbeispiel WHERE beispiel_id=".$db->db_add_param($row->beispiel_id, FHC_INTEGER)." AND vorbereitet=true"; - if($result_cnt = $db->db_query($qry_cnt)) - if($row_cnt = $db->db_fetch_object($result_cnt)) - $solved = $row_cnt->anzahl; - - - - if($solved>0) - $psolved = $solved/$gesamt*100; - - echo ' - - - '; - } - echo "
  - - - - -
 
-
- '.$row->bezeichnung.' - - - - - -
- - - - -
- -  '.$solved.' ['.number_format($psolved,1,'.','').'%] -
-
-
"; - echo "

".$p->t('benotungstool/esHabenStudentenEingetragen',array($gesamt)); - } - } - else - echo "$beispiel_obj->errormsg"; - echo "
"; - } - } - else if ($uebung_obj->abgabe) - { - - echo "\n"; - echo "\n"; - echo" - - "; - echo "\n"; - - echo "\n"; - $uebung_obj->load_studentuebung($user, $uebung_id); - if ($uebung_obj->abgabe_id) - { - $uebung_obj->load_abgabe($uebung_obj->abgabe_id); - echo " "; - echo" "; - echo ""; - } - if($datum_obj->mktime_fromtimestamp($uebung_obj->freigabevon)mktime_fromtimestamp($uebung_obj->freigabebis)>time()) - { - echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo "\n"; - } - echo "
".($note!=''?''.$p->t('benotungstool/note').': '.$note.'

':'')."
- ".($anmerkung!=''?''.$p->t('global/anmerkungen').':
'.$anmerkung.'

':'')." -

".$p->t('benotungstool/abgabedatei').": ".$uebung_obj->abgabedatei.""; - if($datum_obj->mktime_fromtimestamp($uebung_obj->freigabevon)mktime_fromtimestamp($uebung_obj->freigabebis)>time()) - echo " [del]
\n"; - echo "
".$p->t('global/anmerkung').":

"; - echo "
".$p->t('global/datei').":
"; - echo "
\n"; - - } - } - -} -//notenübersicht -else -{ - if ($lektorenansicht == 1) - { - $uid_arr = Array(); - $vorname_arr = Array(); - $nachname_arr = Array(); - - $qry_stud_dd = "SELECT uid, vorname, nachname, matrikelnr FROM campus.vw_student_lehrveranstaltung JOIN campus.vw_student using(uid) WHERE studiensemester_kurzbz = ".$db->db_add_param($stsem)." and lehreinheit_id = ".$db->db_add_param($lehreinheit_id, FHC_INTEGER)." ORDER BY nachname, vorname"; - if($result_stud_dd = $db->db_query($qry_stud_dd)) - { - $i=1; - while($row_stud_dd = $db->db_fetch_object($result_stud_dd)) - { - $uid_arr[] = $row_stud_dd->uid; - $vorname_arr[] = $row_stud_dd->vorname; - $nachname_arr[] = $row_stud_dd->nachname; - - } - } - - echo "


"; - echo $p->t('benotungstool/studentenAuswaehlen').": "; - $key = array_search($uid,$uid_arr); - $prev = $key-1; - $next = $key+1; - if ($key > 0) - echo " << "; - echo ""; - if ($key < count($uid_arr)-1) - echo " >> "; - - echo "


"; - } - - echo "
".$p->t('benotungstool/leistungsuebersichtNotenuebersichtFuer')." $name

"; - echo "
"; - - $uebung_obj = new uebung(); - $uebung_obj->load_uebung($lehreinheit_id,1); - if(count($uebung_obj->uebungen)>0) - { - - echo ""; - echo " \n"; - echo " \n"; - echo " \n"; - echo " "; - echo " \n"; - echo " "; - echo " \n"; - foreach ($uebung_obj->uebungen as $row) - { - - $subuebung_obj = new uebung(); - $subuebung_obj->load_uebung($lehreinheit_id,2,$row->uebung_id); - $l1note = new studentnote(); - if(count($subuebung_obj->uebungen) >= 0) - { - - - $l1note->calc_l1_note($row->uebung_id, $user, $lehreinheit_id); - if ($l1note->negativ) - $l1_note = 5; - else - $l1_note = $l1note->l1_note; - echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo ""; - echo "\n"; - echo " \n"; - - } - - if(count($subuebung_obj->uebungen) > 0) - { - - foreach ($subuebung_obj->uebungen as $subrow) - { - - echo " \n"; - echo " "; - echo " \n"; - echo " \n"; - if ($subrow->beispiele) - { - $l1note->calc_punkte($subrow->uebung_id, $user); - echo " "; - echo " \n"; - echo " \n"; - } - else if ($subrow->abgabe) - { - $l1note->calc_note($subrow->uebung_id, $user); - echo " \n"; - echo " "; - echo " \n"; - } - echo " \n"; /* - if($datum_obj->mktime_fromtimestamp($subrow->freigabevon)mktime_fromtimestamp($subrow->freigabebis)>time()) - echo ' + '; - else - echo ' - '; - */ - - } - - } - } - $l1note->calc_gesamtnote($lehreinheit_id, $stsem, $user); - if ($l1note->negativ) - $gesamtnote = 5; - else - $gesamtnote = $l1note->studentgesamtnote; - echo ""; - - - echo "
".$p->t('benotungstool/aufgabe')."".$p->t('benotungstool/gewicht')."".$p->t('benotungstool/punkte')."".$p->t('benotungstool/teilnote')."".$p->t('benotungstool/note')."
"; - echo $row->bezeichnung; - if ($row->positiv) - echo "*"; - echo " ".$row->gewicht.""; - if ($l1note->punkte_gesamt_l1 >0) - echo $l1note->punkte_gesamt_l1; - echo "".$l1_note."
- \n"; - echo $subrow->bezeichnung; - if ($subrow->positiv) - echo "*"; - echo " \n"; - if ($subrow->abgabe) - echo $subrow->gewicht; - echo " ".$l1note->punkte_gesamt."".$l1note->note."
".$p->t('benotungstool/errechneteGesamtnote').": ".$gesamtnote."
"; - echo "".$p->t('benotungstool/mussPositivSein').""; - } - - echo "
"; - - $legesamtnote = new legesamtnote($lehreinheit_id); - - if (!$legesamtnote->load($user, $lehreinheit_id)) - { - $lenote = null; - } - else - { - $lenote = $legesamtnote->note; - } - if ($lvgesamtnote = new lvgesamtnote($lvid,$user,$stsem)) - { - $lvnote = $lvgesamtnote->note; - } - else - $lvnote = null; - if ($zeugnisnote = new zeugnisnote($lvid,$user,$stsem)) - { - $znote = $zeugnisnote->note; - } - else - $znote = null; - - echo "\n"; - echo " "; - echo "\n"; - echo ""; - echo ""; - echo "\n"; - echo "\n"; - echo ""; - echo ""; - echo "\n"; - echo "\n"; - echo ""; - echo ""; - echo "\n"; - echo "
".$p->t('benotungstool/eingetrageneNoten')."
".$p->t('global/lehreinheit')."".$lenote."
".$p->t('global/lehrveranstaltung')."".$lvnote."
".$p->t('benotungstool/zeunis')."".$znote."
"; - - echo "
"; -} -?> - - diff --git a/cis/private/lehre/benotungstool/studentenpunkteverwalten.php b/cis/private/lehre/benotungstool/studentenpunkteverwalten.php deleted file mode 100644 index 199b3a841..000000000 --- a/cis/private/lehre/benotungstool/studentenpunkteverwalten.php +++ /dev/null @@ -1,978 +0,0 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ - -require_once('../../../../config/cis.config.inc.php'); -require_once('../../../../include/basis_db.class.php'); -require_once('../../../../include/functions.inc.php'); -require_once('../../../../include/lehrveranstaltung.class.php'); -require_once('../../../../include/studiengang.class.php'); -require_once('../../../../include/studiensemester.class.php'); -require_once('../../../../include/lehreinheit.class.php'); -require_once('../../../../include/benutzerberechtigung.class.php'); -require_once('../../../../include/uebung.class.php'); -require_once('../../../../include/beispiel.class.php'); -require_once('../../../../include/studentnote.class.php'); -require_once('../../../../include/datum.class.php'); -require_once('functions.inc.php'); -require_once('../../../../include/phrasen.class.php'); - -$sprache = getSprache(); -$p = new phrasen($sprache); -if (!$db = new basis_db()) - die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung')); -$user = get_uid(); - -if(!check_lektor($user)) - die($p->t('global/keineBerechtigungFuerDieseSeite')); - -$rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($user); - -if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) //Lehrveranstaltung_id - $lvid = $_GET['lvid']; -else - die($p->t('global/fehlerBeiDerParameteruebergabe')); - -if(isset($_GET['lehreinheit_id']) && is_numeric($_GET['lehreinheit_id'])) //Lehreinheit_id - $lehreinheit_id = $_GET['lehreinheit_id']; -else - $lehreinheit_id = ''; - -//Laden der Lehrveranstaltung -$lv_obj = new lehrveranstaltung(); -if(!$lv_obj->load($lvid)) - die($lv_obj->errormsg); - -//Studiengang laden -$stg_obj = new studiengang($lv_obj->studiengang_kz); - -if(isset($_GET['stsem'])) - $stsem = $_GET['stsem']; -else - $stsem = ''; - -//Vars -$datum_obj = new datum(); - -$uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:''); -$uid = (isset($_GET['uid'])?$_GET['uid']:''); - -//Abgabedatei ausliefern -if (isset($_GET["download_abgabe"])){ - $file=$_GET["download_abgabe"]; - $uebung_id = $_GET["uebung_id"]; - $ueb = new uebung(); - $ueb->load_studentuebung($uid, $uebung_id); - $ueb->load_abgabe($ueb->abgabe_id); - $filename = BENOTUNGSTOOL_PATH."abgabe/".$ueb->abgabedatei; - header('Content-Type: application/octet-stream'); - header('Content-disposition: attachment; filename="'.$file.'"'); - readfile($filename); - exit; -} - -//Handbuch ausliefern -if (isset($_GET["handbuch"])){ - $filename = BENOTUNGSTOOL_PATH."handbuch_benotungstool.pdf"; - header('Content-Type: application/octet-stream'); - header('Content-disposition: attachment; filename="handbuch_benotungstool.pdf"'); - readfile($filename); - exit; -} - - -if (isset($_FILES["abgabedatei"])) -{ - //echo $_FILES["abgabedatei"]; - $abgabedatei_up = $_FILES["abgabedatei"]["tmp_name"]; - - if ($abgabedatei_up) - { - $student_uid = $uid; - $datum = date('Y-m-d H:i:s'); - $datumstr = ereg_replace(" ","_",$datum); - $name_up = pathinfo($_FILES["abgabedatei"]["name"]); - $name_neu = makeUploadName($db, $which='abgabe', $lehreinheit_id=$lehreinheit_id, $uebung_id=$uebung_id, $ss=$stsem,$uid=$student_uid, $date=$datumstr); - $name_neu = preg_replace('/[^A-Za-z0-9\-_]/', '',$name_neu); - $abgabedatei = $name_neu.".".$name_up["extension"]; - $abgabepfad = BENOTUNGSTOOL_PATH."abgabe/".$abgabedatei; - - $uebung_obj = new uebung(); - $uebung_obj->load_studentuebung($student_uid, $uebung_id); - - - if ($uebung_obj->errormsg != "") - { - $uebung_obj->student_uid = $student_uid; - $uebung_obj->mitarbeiter_uid = null; - $uebung_obj->abgabe_id = null; - $uebung_obj->uebung_id = $uebung_id; - $uebung_obj->note = null; - $uebung_obj->mitarbeitspunkte = null; - $uebung_obj->punkte = null; - $uebung_obj->anmerkung = null; - $uebung_obj->benotungsdatum = null; - $uebung_obj->updateamum = null; - $uebung_obj->updatevon = null; - $uebung_obj->insertamum = $datum; - $uebung_obj->insertvon = $user; - $uebung_obj->new = true; - $uebung_obj->studentuebung_save($new=true); - echo $uebung_obj->errormsg; - - } - if ($uebung_obj->abgabe_id != null) - { - $uebung_obj->load_abgabe($uebung_obj->abgabe_id); - unlink(BENOTUNGSTOOL_PATH."abgabe/".$uebung_obj->abgabedatei); - $uebung_obj->abgabedatei = $abgabedatei; - $uebung_obj->abgabezeit = $datum; - $uebung_obj->abgabe_anmerkung = ""; - $uebung_obj->abgabe_save(false); - } - else - { - $uebung_obj->abgabedatei = $abgabedatei; - $uebung_obj->abgabezeit = $datum; - $uebung_obj->abgabe_anmerkung = ""; - $uebung_obj->abgabe_save(true); - } - $uebung_obj->studentuebung_save(false); - //Abgabedatei ablegen - move_uploaded_file($_FILES['abgabedatei']['tmp_name'], $abgabepfad); - } -} -else - $abgabedatei_up = null; - -?> - - - - - -<?php echo $p->t('benotungstool/benotungstool');?> - - - - -

'.$p->t('benotungstool/benotungstool'); -echo '

'."\n"; - -//Studiensemester laden -$stsem_obj = new studiensemester(); -if($stsem=='') - $stsem = $stsem_obj->getaktorNext(); - -$stsem_obj->getAll(); - -//Studiensemester DropDown -$stsem_content = $p->t('global/studiensemester').": \n"; - -//Lehreinheiten laden -if($rechte->isBerechtigt('admin',0) || $rechte->isBerechtigt('admin',$lv_obj->studiengang_kz) || $rechte->isBerechtigt('lehre',$lv_obj->studiengang_kz)) -{ - $qry = "SELECT - distinct lehrfach.kurzbz as lfbez, tbl_lehreinheit.lehreinheit_id, tbl_lehreinheit.lehrform_kurzbz as lehrform_kurzbz - FROM - lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach, lehre.tbl_lehreinheitmitarbeiter - WHERE - tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND - tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id AND - tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitmitarbeiter.lehreinheit_id AND - tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($stsem); -} -else -{ - $qry = "SELECT - distinct lehrfach.kurzbz as lfbez, tbl_lehreinheit.lehreinheit_id, tbl_lehreinheit.lehrform_kurzbz as lehrform_kurzbz - FROM - lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach, lehre.tbl_lehreinheitmitarbeiter - WHERE - tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND - tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id AND - tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitmitarbeiter.lehreinheit_id AND - tbl_lehreinheit.lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) WHERE mitarbeiter_uid=".$db->db_add_param($user).") AND - tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($stsem); - -} - -if($result = $db->db_query($qry)) -{ - if($db->db_num_rows($result)>0) - { - //Lehreinheiten DropDown - echo $p->t('global/lehreinheit').": '; - } - else - { - if($row = $db->db_fetch_object($result)) - $lehreinheit_id = $row->lehreinheit_id; - } -} -else -{ - echo $p->t('benotungstool/fehlerBeimAuslesen'); -} -echo $stsem_content; -echo '
'; -echo ''; -echo ''; -echo " -
 \n"; -echo "".$lv_obj->bezeichnung_arr[$sprache]."
"; - -if($lehreinheit_id=='') - die($p->t('benotungstool/keinePassendeLehreinheitGefunden')); - -//Menue -include("menue.inc.php"); -/* -echo "\n\n"; -echo "
 Verwaltung     - Anwesenheits- und Übersichtstabelle     - Studentenpunkte verwalten     - Statistik -

-\n"; -*/ - -echo "

".$p->t('benotungstool/studentenaufgabenVerwalten')."

"; -if(isset($_POST['submit'])) -{ - $error=false; - $punkte = (isset($_POST['punkte'])?mb_ereg_replace(',','.',$_POST['punkte']):''); - if(isset($punkte) && is_numeric($punkte) && !isset($_POST['abgabe'])) - { - $ueb_obj = new uebung(); - if($ueb_obj->load_studentuebung($uid, $uebung_id)) - $ueb_obj->new = false; - else - { - $ueb_obj->new = true; - $ueb_obj->insertamum = date('Y-m-d H:i:s'); - $ueb_obj->insertvon = $user; - } - - $ueb_obj->mitarbeitspunkte = $punkte; - $ueb_obj->anmerkung = $_POST['anmerkung']; - $ueb_obj->updateamum = date('Y-m-d H:i:s'); - $ueb_obj->updatevon = $user; - $ueb_obj->mitarbeiter_uid = $user; - $ueb_obj->uebung_id = $uebung_id; - $ueb_obj->student_uid = $uid; - - if(!$ueb_obj->studentuebung_save()) - $error = true; - - $bsp_obj = new beispiel(); - - if($bsp_obj->load_beispiel($uebung_id)) - { - foreach ($bsp_obj->beispiele as $row) - { - $stud_bsp_obj = new beispiel(); - - if($stud_bsp_obj->load_studentbeispiel($uid, $row->beispiel_id)) - { - $stud_bsp_obj->new=false; - } - else - { - $stud_bsp_obj->new=true; - $stud_bsp_obj->insertamum = date('Y-m-d H:i:s'); - $stud_bsp_obj->insertvon = $user; - } - $stud_bsp_obj->vorbereitet = ($_POST['solved_'.$row->beispiel_id]==1?true:false); - $stud_bsp_obj->probleme = (isset($_POST['problem_'.$row->beispiel_id])?true:false); - $stud_bsp_obj->updateamum = date('Y-m-d H:i:s'); - $stud_bsp_obj->updatevon = $user; - $stud_bsp_obj->student_uid = $uid; - $stud_bsp_obj->beispiel_id = $row->beispiel_id; - - if(!$stud_bsp_obj->studentbeispiel_save()) - { - echo $stud_bsp_obj->errormsg; - $error=true; - } - } - } - - if($error) - echo "".$p->t('benotungstool/esKonntenNichtAlleDatenGespeichertWerden').""; - else - echo $p->t('global/erfolgreichgespeichert')."
"; - - } - else if (!isset($_POST['abgabe'])) - { - echo "".$p->t('benotungstool/punkteSindUngueltig').""; - } - if(isset($_POST['abgabe']) && is_numeric($_POST['note'])) - { - $note = $_POST['note']; - $ueb_obj = new uebung(); - if($ueb_obj->load_studentuebung($uid, $uebung_id)) - $ueb_obj->new = false; - else - { - $ueb_obj->new = true; - $ueb_obj->insertamum = date('Y-m-d H:i:s'); - $ueb_obj->insertvon = $user; - } - - $ueb_obj->note = $note; - $ueb_obj->anmerkung = $_POST['anmerkung']; - $ueb_obj->updateamum = date('Y-m-d H:i:s'); - $ueb_obj->updatevon = $user; - $ueb_obj->mitarbeiter_uid = $user; - $ueb_obj->uebung_id = $uebung_id; - $ueb_obj->student_uid = $uid; - - if(!$ueb_obj->studentuebung_save()) - $error = true; - if($error) - echo "".$p->t('benotungstool/esKonntenNichtAlleDatenGespeichertWerden').""; - else - echo $p->t('global/erfolgreichgespeichert')."
"; - } - else if (isset($_POST['abgabe'])) - echo "".$p->t('benotungstool/noteIstUngueltig')."
"; -} - -if(isset($_GET['uid']) && $_GET['uid']!='') -{ - //Punkte eintragen - $uid = addslashes($_GET['uid']); - - $qry_stud = "SELECT vorname, nachname, uid FROM campus.vw_student WHERE uid='$uid'"; - - if(!$result_stud = $db->db_query($qry_stud)) - die($p->t('benotungstool/fehlerBeimLadenDesStudenten')); - - if(!$row_stud = $db->db_fetch_object($result_stud)) - die($p->t('benotungstool/studentWurdeNichtGefunden')); - - //echo "$row_stud->vorname $row_stud->nachname
\n"; - - - - $uid_arr = Array(); - $vorname_arr = Array(); - $nachname_arr = Array(); - - // studentenquery - $qry_stud_dd = "SELECT uid, vorname, nachname, matrikelnr FROM campus.vw_student_lehrveranstaltung JOIN campus.vw_student using(uid) WHERE studiensemester_kurzbz = ".$db->db_add_param($stsem)." and lehreinheit_id = ".$db->db_add_param($lehreinheit_id, FHC_INTEGER)." ORDER BY nachname, vorname"; - if($result_stud_dd = $db->db_query($qry_stud_dd)) - { - $i=1; - while($row_stud_dd = $db->db_fetch_object($result_stud_dd)) - { - $uid_arr[] = $row_stud_dd->uid; - $vorname_arr[] = $row_stud_dd->vorname; - $nachname_arr[] = $row_stud_dd->nachname; - - } - } -// } -// } - echo $p->t('benotungstool/studentenAuswaehlen').": "; - $key = array_search($uid,$uid_arr); - $prev = $key-1; - $next = $key+1; - if ($key > 0) - echo " << "; - echo ""; - if ($key < count($uid_arr)-1) - echo " >> "; - - - $uebung_obj = new uebung(); - $uebung_obj->load_uebung($lehreinheit_id,1); - if(count($uebung_obj->uebungen)>0) - { - echo "'; - - echo " -
"; - echo "
".$p->t('benotungstool/waehlenSieEineAufgabeAus').": '; - - echo '
- - - - - - - - - -
+...".$p->t('benotungstool/freigeschaltet').".
-...".$p->t('benotungstool/nichtFreigeschaltet').".
-
"; - } - else - die($p->t('benotungstool/derzeitSindKeineUebungenAngelegt')); - - $ueb_obj = new uebung(); - $ueb_obj->load($uebung_id); - if($ueb_obj->load_studentuebung($uid, $uebung_id)) - { - $anmerkung = $ueb_obj->anmerkung; - $mitarbeit = $ueb_obj->mitarbeitspunkte; - $note = $ueb_obj->note; - } - else - { - $anmerkung = ''; - $mitarbeit = 0; - $note = ''; - } - - if ($ueb_obj->beispiele && is_numeric($_GET['uebung_id'])) - { - echo " -
- - - - - - -
- ".$p->t('global/anmerkung').":
- -

- - - - - - - - "; - - $bsp_obj = new beispiel(); - $bsp_obj->load_beispiel($uebung_id); - - foreach ($bsp_obj->beispiele as $row) - { - $stud_bsp_obj = new beispiel(); - if($stud_bsp_obj->load_studentbeispiel($uid, $row->beispiel_id)) - { - $vorbereitet = $stud_bsp_obj->vorbereitet; - $probleme = $stud_bsp_obj->probleme; - } - else - { - $vorbereitet = false; - $probleme = false; - } - echo " - - - - - - "; - } - - echo "
".$p->t('benotungstool/beispiel')."".$p->t('benotungstool/vorbereitet')."".$p->t('benotungstool/nichtVorbereitet')."".$p->t('benotungstool/probleme')."".$p->t('benotungstool/punkte')."
$row->bezeichnung$row->punkte
"; - - - - $ueb_obj->load_studentuebung($uid, $uebung_id); - if ($ueb_obj->abgabe_id) - { - $ueb_obj->load_abgabe($ueb_obj->abgabe_id); - $filename = $ueb_obj->abgabedatei; - } - else - $filename=''; - - if ($filename != '') - echo "
".$p->t('benotungstool/abgabedatei').": ".$filename."

"; - - - - echo " -
"; - - //Gesamtpunkte diese Kreuzerlliste - $qry = "SELECT sum(punkte) as punktegesamt FROM campus.tbl_beispiel WHERE uebung_id=".$db->db_add_param($uebung_id, FHC_INTEGER); - $punkte_gesamt=0; - if($result=$db->db_query($qry)) - if($row = $db->db_fetch_object($result)) - $punkte_gesamt = $row->punktegesamt; - - //Eingetragen diese Kreuzerlliste - $qry = "SELECT sum(punkte) as punkteeingetragen FROM campus.tbl_beispiel JOIN campus.tbl_studentbeispiel USING(beispiel_id) WHERE uebung_id=".$db->db_add_param($uebung_id, FHC_INTEGER)." AND student_uid=".$db->db_add_param($uid)." AND vorbereitet=true"; - $punkte_eingetragen=0; - if($result=$db->db_query($qry)) - if($row = $db->db_fetch_object($result)) - $punkte_eingetragen = ($row->punkteeingetragen!=''?$row->punkteeingetragen:0); - - - //Gesamtpunkte alle Kreuzerllisten in dieser Übung - $ueb_help = new uebung($uebung_id); - $liste_id = $ueb_help->liste_id; - $qry = "SELECT sum(tbl_beispiel.punkte) as punktegesamt_alle FROM campus.tbl_beispiel, campus.tbl_uebung - WHERE tbl_uebung.uebung_id=tbl_beispiel.uebung_id AND - tbl_uebung.lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER)." and tbl_uebung.liste_id = ".$db->db_add_param($liste_id, FHC_INTEGER); - $punkte_gesamt_alle=0; - if($result=$db->db_query($qry)) - if($row = $db->db_fetch_object($result)) - $punkte_gesamt_alle = $row->punktegesamt_alle; - - //Eingetragen alle Kreuzerllisten - $qry = "SELECT sum(tbl_beispiel.punkte) as punkteeingetragen_alle FROM campus.tbl_beispiel, campus.tbl_studentbeispiel, campus.tbl_uebung - WHERE tbl_beispiel.beispiel_id = tbl_studentbeispiel.beispiel_id AND - tbl_uebung.uebung_id=tbl_beispiel.uebung_id AND - tbl_uebung.lehreinheit_id=".$db->db_add_param($lehreinheit_id)." AND - tbl_uebung.liste_id = ".$db->db_add_param($liste_id)." AND - tbl_studentbeispiel.student_uid=".$db->db_add_param($uid)." AND vorbereitet=true"; - $punkte_eingetragen_alle=0; - if($result=$db->db_query($qry)) - if($row = $db->db_fetch_object($result)) - $punkte_eingetragen_alle = ($row->punkteeingetragen_alle!=''?$row->punkteeingetragen_alle:0); - - //Mitarbeitspunkte - $qry = "SELECT sum(mitarbeitspunkte) as mitarbeitspunkte FROM campus.tbl_studentuebung JOIN campus.tbl_uebung USING(uebung_id) - WHERE lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER)." AND student_uid=".$db->db_add_param($uid)." and liste_id=".$db->db_add_param($liste_id); - $mitarbeit_alle=0; - if($result=$db->db_query($qry)) - if($row = $db->db_fetch_object($result)) - $mitarbeit_alle = ($row->mitarbeitspunkte!=''?$row->mitarbeitspunkte:0); - - //Mitarbeitspunkte - $qry = "SELECT mitarbeitspunkte FROM campus.tbl_studentuebung - WHERE uebung_id=".$db->db_add_param($uebung_id, FHC_INTEGER)." AND student_uid=".$db->db_add_param($uid); - $mitarbeit=0; - if($result=$db->db_query($qry)) - if($row = $db->db_fetch_object($result)) - $mitarbeit = ($row->mitarbeitspunkte!=''?$row->mitarbeitspunkte:0); - echo " -
- - - - - - - - - - - - -
Diese Kreuzerlliste:
".$p->t('benotungstool/punkteInsgesamtMoeglich').":$punkte_gesamt
".$p->t('benotungstool/punkteEingetragen').":$punkte_eingetragen
-

- - - - - - - - - - - - -
".$p->t('benotungstool/alleKreuzerllistenDieserUebung').":
".$p->t('benotungstool/punkteInsgesamtMoeglich').":$punkte_gesamt_alle
".$p->t('benotungstool/punkteEingetragen').":$punkte_eingetragen_alle
-

- - - - - - - - - - - - -
".$p->t('benotungstool/mitarbeitspunkte').":
".$p->t('benotungstool/bisherInsgesamt').":$mitarbeit_alle
".$p->t('benotungstool/dieseKreuzerlliste').":
- "; - - - echo " -
  - - -
- -
- "; - } - else if (is_numeric($_GET['uebung_id'])) - { - $ueb_obj->load_studentuebung($uid, $uebung_id); - if ($ueb_obj->abgabe_id) - { - $ueb_obj->load_abgabe($ueb_obj->abgabe_id); - $filename = $ueb_obj->abgabedatei; - } - else - $filename=''; - //Abgaben benoten - $studentnote = new studentnote($lehreinheit_id,$stsem,$uid,$uebung_id); - $studentnote->calc_note($uebung_id, $uid); - echo "".$p->t('benotungstool/note').": ".$studentnote->note." (Gewicht: ".$ueb_obj->gewicht.")

"; - if ($filename != '') - echo $p->t('benotungstool/abgabedatei').": ".$filename."

"; - echo " -
-
- ".$p->t('global/anmerkung').":
- -
- - - - - "; - echo " - - - - -
Note
- - -
- "; - - } - echo "
"; - echo "\n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo "\n"; - echo "
\n"; - echo " ".$p->t('benotungstool/studentenabgabedatei').":
"; - echo "
"; -} -else -{ - - //Übungen benoten - $uebung_obj = new uebung(); - $uebung_obj->load_uebung($lehreinheit_id,1); - if(count($uebung_obj->uebungen)>0) - { - echo "
"; - echo "
".$p->t('benotungstool/aufgabeKreuzerllistenAbgaben').": '; - echo " [".$p->t('benotungstool/benoten')."]"; - $abgabe_obj = new uebung($uebung_id); - if ($abgabe_obj->abgabe && glob(BENOTUNGSTOOL_PATH."abgabe/*_[WS]S[0-9][0-9][0-9][0-9]_".$uebung_id."_*")) - { - $date = date('Y-m-d_H:i:s'); - $downloadname = makeUploadName($db, $which="zip", $lehreinheit_id, $uebung_id, $stsem, $uid=null, $date); - $downloadname = str_replace($uebung_id, str_replace(" ","_",$abgabe_obj->bezeichnung), $downloadname); - $downloadname = preg_replace('/[^A-Za-z0-9\-_]/', '',$downloadname); - echo " [".$p->t('benotungstool/abgabenDownloaden')."]"; - } - else - echo "[".$p->t('benotungstool/keineAbgabenVerfuegbar')."]"; - - echo '
'; - } - - - - - echo "


"; - //Studentenliste - echo $p->t('benotungstool/bitteWaehlenSieDenStudentenAus')."
"; - echo " - - "; - - echo " - - - - - - - - - - - - - - - - - - - "; - /* - if($row_grp->gruppe_kurzbz!='') - { - echo " - - - "; - $qry_stud = "SELECT uid, vorname, nachname, matrikelnr FROM campus.vw_student JOIN public.tbl_benutzergruppe USING(uid) WHERE gruppe_kurzbz='".addslashes($row_grp->gruppe_kurzbz)."' AND studiensemester_kurzbz = '".$stsem."' ORDER BY nachname, vorname"; - } - else - { - echo " - - - "; - $qry_stud = "SELECT uid, vorname, nachname, matrikelnr FROM campus.vw_student - WHERE studiengang_kz='$row_grp->studiengang_kz' AND - semester='$row_grp->semester' ". - ($row_grp->verband!=''?" AND trim(verband)=trim('$row_grp->verband')":''). - ($row_grp->gruppe!=''?" AND trim(gruppe)=trim('$row_grp->gruppe')":''). - " ORDER BY nachname, vorname"; - } - */ - // studentenquery - $qry_stud = "SELECT uid, vorname, nachname, matrikelnr FROM campus.vw_student_lehrveranstaltung JOIN campus.vw_student using(uid) WHERE studiensemester_kurzbz = '".$stsem."' and lehreinheit_id = '".$lehreinheit_id."' ORDER BY nachname, vorname"; - if($result_stud = $db->db_query($qry_stud)) - { - $i=1; - while($row_stud = $db->db_fetch_object($result_stud)) - { - - - - echo " - - - - - - "; - $i++; - } - } -// } -// } - echo "
    
".$p->t('global/uid')."".$p->t('global/nachname')."".$p->t('global/vorname')."".$p->t('benotungstool/studentenansicht')."
    
$row_grp->gruppe_kurzbz
Verband $row_grp->verband ".($row_grp->gruppe!=''?"Gruppe $row_grp->gruppe":'')."
$row_stud->uid$row_stud->nachname$row_stud->vorname".$p->t('benotungstool/studentenansicht')."
"; -} -?> -
- - diff --git a/cis/private/lehre/benotungstool/verwaltung.php b/cis/private/lehre/benotungstool/verwaltung.php deleted file mode 100644 index e35eaecb1..000000000 --- a/cis/private/lehre/benotungstool/verwaltung.php +++ /dev/null @@ -1,941 +0,0 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ - -require_once('../../../../config/cis.config.inc.php'); -require_once('../../../../include/basis_db.class.php'); -require_once('../../../../include/functions.inc.php'); -require_once('../../../../include/lehrveranstaltung.class.php'); -require_once('../../../../include/studiengang.class.php'); -require_once('../../../../include/studiensemester.class.php'); -require_once('../../../../include/lehreinheit.class.php'); -require_once('../../../../include/benutzerberechtigung.class.php'); -require_once('../../../../include/uebung.class.php'); -require_once('../../../../include/beispiel.class.php'); -require_once('../../../../include/datum.class.php'); -require_once('functions.inc.php'); -require_once('../../../../include/phrasen.class.php'); - -$sprache = getSprache(); -$p = new phrasen($sprache); - -if (!$db = new basis_db()) - die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung')); - - -function microtime_float() -{ - list($usec, $sec) = explode(" ", microtime()); - return ((float)$usec + (float)$sec); -} -$time = microtime_float(); -?> - - - - - -Kreuzerltool - - - - -t('global/keineBerechtigungFuerDieseSeite')); - -$rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($user); - -if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) //Lehrveranstaltung_id - $lvid = $_GET['lvid']; -else - die($p->t('global/fehlerBeiDerParameteruebergabe')); - -if(isset($_GET['lehreinheit_id']) && is_numeric($_GET['lehreinheit_id'])) //Lehreinheit_id - $lehreinheit_id = $_GET['lehreinheit_id']; -else - $lehreinheit_id = ''; - -//Laden der Lehrveranstaltung -$lv_obj = new lehrveranstaltung(); -if(!$lv_obj->load($lvid)) - die($lv_obj->errormsg); - -//Studiengang laden -$stg_obj = new studiengang($lv_obj->studiengang_kz); - -if(isset($_GET['stsem'])) - $stsem = $_GET['stsem']; -else - $stsem = ''; - -//Vars -$datum_obj = new datum(); -$global_msg =''; -$error_thema=''; -$error_anzahlderbeispiele=''; -$error_punkteprobeispiel=''; -$error_freigabebis=''; -$error_freigabevon=''; -$error_gewicht=''; - -$thema = (isset($_POST['thema'])?$_POST['thema']:''); -$anzahlderbeispiele = (isset($_POST['anzahlderbeispiele'])?$_POST['anzahlderbeispiele']:''); -$punkteprobeispiel = (isset($_POST['punkteprobeispiel'])?$_POST['punkteprobeispiel']:''); -$punkteprobeispiel = mb_ereg_replace(',','.',$punkteprobeispiel); -$freigabebis = (isset($_POST['freigabebis'])?$_POST['freigabebis']:''); -$freigabevon = (isset($_POST['freigabevon'])?$_POST['freigabevon']:''); -$gewicht = (isset($_POST['gewicht'])?$_POST['gewicht']:''); -$positiv = (isset($_POST['positiv'])?$_POST['positiv']:''); - -$uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:''); -$copy_content = ''; -$copy_dropdown = ''; - -//Kopfzeile -echo '

'.$p->t('benotungstool/benotungstool'); -echo '

'."\n"; - -//Studiensemester laden -$stsem_obj = new studiensemester(); -if($stsem=='') - $stsem = $stsem_obj->getaktorNext(); - -$stsem_obj->getAll(); - - -//Studiensemester DropDown -$stsem_content = $p->t('global/studiensemester').": \n"; - -//Lehreinheiten laden -if($rechte->isBerechtigt('admin',0) || $rechte->isBerechtigt('admin',$lv_obj->studiengang_kz) || $rechte->isBerechtigt('lehre',$lv_obj->studiengang_kz)) -{ - $qry = "SELECT - distinct lehrfach.kurzbz as lfbez, tbl_lehreinheit.lehreinheit_id, tbl_lehreinheit.lehrform_kurzbz as lehrform_kurzbz - FROM - lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach, lehre.tbl_lehreinheitmitarbeiter - WHERE - tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND - tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id AND - tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitmitarbeiter.lehreinheit_id AND - tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($stsem); -} -else -{ - $qry = "SELECT - distinct lehrfach.kurzbz as lfbez, tbl_lehreinheit.lehreinheit_id, tbl_lehreinheit.lehrform_kurzbz as lehrform_kurzbz - FROM - lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach, lehre.tbl_lehreinheitmitarbeiter - WHERE - tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND - tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id AND - tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitmitarbeiter.lehreinheit_id AND - tbl_lehreinheit.lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) WHERE mitarbeiter_uid=".$db->db_add_param($user).") AND - tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($stsem); -} - -if($result = $db->db_query($qry)) -{ - $result_alle_lehreinheiten = $result; - if($db->db_num_rows($result)>1) - { - //Lehreinheiten DropDown - echo $p->t('global/lehreinheit').": "; - while($row = $db->db_fetch_object($result)) - { - if($lehreinheit_id=='') - $lehreinheit_id=$row->lehreinheit_id; - $selected = ($row->lehreinheit_id == $lehreinheit_id?'selected':''); - //Zugeteilte Lektoren - $qry_lektoren = "SELECT * FROM lehre.tbl_lehreinheitmitarbeiter JOIN public.tbl_mitarbeiter using(mitarbeiter_uid) WHERE lehreinheit_id=".$db->db_add_param($row->lehreinheit_id, FHC_INTEGER); - if($result_lektoren = $db->db_query($qry_lektoren)) - { - $lektoren = '( '; - $i=0; - while($row_lektoren = $db->db_fetch_object($result_lektoren)) - { - $lektoren .= $row_lektoren->kurzbz; - $i++; - if($i<$db->db_num_rows($result_lektoren)) - $lektoren.=', '; - else - $lektoren.=' '; - } - $lektoren .=')'; - } - - - //Zugeteilte Gruppen - $qry_gruppen = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=".$db->db_add_param($row->lehreinheit_id, FHC_INTEGER); - if($result_gruppen = $db->db_query($qry_gruppen)) - { - $gruppen = ''; - $i=0; - while($row_gruppen = $db->db_fetch_object($result_gruppen)) - { - if($row_gruppen->gruppe_kurzbz=='') - $gruppen.=$row_gruppen->semester.$row_gruppen->verband.$row_gruppen->gruppe; - else - $gruppen.=$row_gruppen->gruppe_kurzbz; - $i++; - if($i<$db->db_num_rows($result_gruppen)) - $gruppen.=', '; - else - $gruppen.=' '; - } - } - echo "\n"; - if ($lehreinheit_id != $row->lehreinheit_id) - $copy_dropdown .= ""; - } - echo ' '; - $copy_dropdown .=""; - } - else - { - if($row = $db->db_fetch_object($result)) - $lehreinheit_id = $row->lehreinheit_id; - } -} -else -{ - echo $p->t('benotungstool/fehlerBeimAuslesen'); -} -echo $stsem_content; -echo '
'; - -echo ''; -echo ''; -echo "
 \n"; - -echo "

".$lv_obj->bezeichnung_arr[$sprache]."

"; - -if($lehreinheit_id=='') - die($p->t('benotungstool/esGibtKeineLehreinheiten')); - -//Menue -include("menue.inc.php"); -/* -echo "\n\n"; -echo "
- Verwaltung     - Anwesenheits- und Übersichtstabelle     - Studentenpunkte verwalten     - Statistik -

-\n"; -*/ - -//echo "studiensemester: $stsem
"; -//echo "lehrveranstaltung: $lvid
"; -//echo "lehreinheit: $lehreinheit_id
"; -//Übung in andere LE kopieren - -if (isset($_REQUEST["copy_uebung"])) -{ - $copy_insert = 0; - $copy_update = 0; - $copy_insert_bsp = 0; - $copy_update_bsp = 0; - $uebung_id_source = $_REQUEST["uebung_id_source"]; - $lehreinheit_id_target = $_REQUEST["lehreinheit_id_target"]; - if (!is_numeric($uebung_id_source) or !is_numeric($lehreinheit_id_target)) - echo "".$p->t('benotungstool/uebungUndLehreinheit')."!"; - else - { - $ueb_1 = new uebung($uebung_id_source); - $nummer_source = $ueb_1->nummer; - $qry = "SELECT * from campus.tbl_uebung where nummer = ".$db->db_add_param($nummer_source)." and lehreinheit_id = ".$db->db_add_param($lehreinheit_id_target, FHC_INTEGER); - //echo $qry; - if($result1 = $db->db_query($qry)) - { - if ($db->db_num_rows($result1) >0) - { - $row1 = $db->db_fetch_object($result1); - $ueb_1_target =new uebung($row1->uebung_id); - $ueb_1_target->new = false; - $new = null; - $ueb_1_target->insertamum = null; - $ueb_1_target->insertvon = null; - $ueb_1_target->updateamum = date('Y-m-d H:i:s'); - $ueb_1_target->updatevon = $user; - $copy_update++; - } - else - { - $ueb_1_target =new uebung(); - $ueb_1_target->new = true; - $new = true; - $ueb_1_target->insertamum = date('Y-m-d H:i:s'); - $ueb_1_target->insertvon = $user; - $ueb_1_target->updateamum = null; - $ueb_1_target->updatevon = null; - $copy_insert++; - } - $ueb_1_target->gewicht = $ueb_1->gewicht; - $ueb_1_target->punkte = null; - $ueb_1_target->angabedatei=null; - $ueb_1_target->freigabevon = null; - $ueb_1_target->freigabebis = null; - $ueb_1_target->abgabe = false; - $ueb_1_target->beispiele = false; - $ueb_1_target->statistik = false; - $ueb_1_target->maxstd = null; - $ueb_1_target->maxbsp=null; - $ueb_1_target->liste_id=null; - $ueb_1_target->bezeichnung = $ueb_1->bezeichnung; - $ueb_1_target->positiv = $ueb_1->positiv; - $ueb_1_target->defaultbemerkung = $ueb_1->defaultbemerkung; - $ueb_1_target->lehreinheit_id = $lehreinheit_id_target; - $ueb_1_target->nummer = $nummer_source; - - if (!$ueb_1_target->save($new)) - { - $error = 1; - echo "".$p->t('benotungstool/hauptuebungKonnteNichtKopiertWerden')."!"; - } - - else - { - // Subübungen durchlaufen - $error = 0; - $ueb_2 = new uebung(); - $ueb_2->load_uebung($lehreinheit_id,2,$uebung_id_source); - - $ueb_2anzahl = count($ueb_2->uebungen); - if ($ueb_2anzahl >0) - { - foreach ($ueb_2->uebungen as $subrow) - { - - $nummer_source2 = $subrow->nummer; - $qry2 = "SELECT * from campus.tbl_uebung where nummer = ".$db->db_add_param($nummer_source2)." and lehreinheit_id = ".$db->db_add_param($lehreinheit_id_target, FHC_INTEGER); - $result2 = $db->db_query($qry2); - - if ($db->db_num_rows($result2) >0) - { - $row2 = $db->db_fetch_object($result2); - $ueb_2_target =new uebung($row2->uebung_id); - $ueb_2_target->new = false; - $new = null; - $ueb_2_target->insertamum = null; - $ueb_2_target->insertvon = null; - $ueb_2_target->updateamum = date('Y-m-d H:i:s'); - $ueb_2_target->updatevon = $user; - $copy_update++; - } - else - { - $ueb_2_target =new uebung(); - $ueb_2_target->new = true; - $new = true; - $ueb_2_target->insertamum = date('Y-m-d H:i:s'); - $ueb_2_target->insertvon = $user; - $ueb_2_target->updateamum = null; - $ueb_2_target->updatevon = null; - $copy_insert++; - } - $ueb_2_target->gewicht = $subrow->gewicht; - $ueb_2_target->punkte = $subrow->punkte; - $ueb_2_target->angabedatei=null; - $ueb_2_target->freigabevon = $subrow->freigabevon; - $ueb_2_target->freigabebis = $subrow->freigabebis; - $ueb_2_target->abgabe = $subrow->abgabe; - $ueb_2_target->beispiele = $subrow->beispiele; - $ueb_2_target->statistik = $subrow->statistik; - $ueb_2_target->maxstd = $subrow->maxstd; - $ueb_2_target->maxbsp=$subrow->maxbsp; - $ueb_2_target->liste_id=$ueb_1_target->uebung_id; - $ueb_2_target->bezeichnung = $subrow->bezeichnung; - $ueb_2_target->positiv = $subrow->positiv; - $ueb_2_target->defaultbemerkung = $subrow->defaultbemerkung; - $ueb_2_target->lehreinheit_id = $lehreinheit_id_target; - $ueb_2_target->nummer = $nummer_source2; - - if (!$ueb_2_target->save($new)) - { - $error = 1; - echo "".$p->t('benotungstool/uebungKonnteNichtKopiertWerden')."!"; - } - - //angabedatei syncen - if ($subrow->angabedatei != "") - { - $angabedatei_source = $subrow->angabedatei; - $angabedatei_target = makeUploadName($db, 'angabe', $lehreinheit_id, $ueb_2_target->uebung_id, $stsem); - $angabedatei_target .= ".".mb_substr($angabedatei_source, mb_strrpos($angabedatei_source, '.') + 1); - echo $angabedatei_source."->".$angabedatei_target."
"; - exec("cp ".BENOTUNGSTOOL_PATH."angabe/".$angabedatei_source." ".BENOTUNGSTOOL_PATH."angabe/".$angabedatei_target); - $angabeupdate = "update campus.tbl_uebung set angabedatei = ".$db->db_add_param($angabedatei_target)." where uebung_id = ".$db->db_add_param($ueb_2_target->uebung_id, FHC_INTEGER); - $db->db_query($angabeupdate); - } - - if (($error == 0) and $ueb_2_target->beispiele) - { - // beispiele synchronisieren - $bsp_obj = new beispiel(); - $bsp_obj->load_beispiel($subrow->uebung_id); - foreach ($bsp_obj->beispiele as $bsp) - { - $nummer_source_bsp = $bsp->nummer; - $qrybsp = "SELECT * from campus.tbl_beispiel where nummer = ".$db->db_add_param($nummer_source_bsp)." and uebung_id = ".$db->db_add_param($ueb_2_target->uebung_id, FHC_INTEGER); - $resultbsp = $db->db_query($qrybsp); - - if ($db->db_num_rows($resultbsp) >0) - { - $rowbsp = $db->db_fetch_object($resultbsp); - $bsp_target =new beispiel($rowbsp->beispiel_id); - $bsp_target->new = false; - $new = null; - $bsp_target->insertamum = null; - $bsp_target->insertvon = null; - $bsp_target->updateamum = date('Y-m-d H:i:s'); - $bsp_target->updatevon = $user; - $copy_update_bsp++; - } - else - { - $bsp_target =new beispiel(); - $bsp_target->new = true; - $new = true; - $bsp_target->insertamum = date('Y-m-d H:i:s'); - $bsp_target->insertvon = $user; - $bsp_target->updateamum = null; - $bsp_target->updatevon = null; - $copy_insert_bsp++; - } - $bsp_target->uebung_id = $ueb_2_target->uebung_id; - $bsp_target->nummer = $nummer_source_bsp; - $bsp_target->bezeichnung = $bsp->bezeichnung; - $bsp_target->punkte = $bsp->punkte; - - if (!$bsp_target->save($new)) - { - $error = 1; - echo "".$p->t('benotungstool/beispieleKonntenNichtAngelegtWerden').""; - } - - //Notenschlüssel synchronisieren - $clear = "delete from campus.tbl_notenschluesseluebung where uebung_id = ".$db->db_add_param($ueb_1_target->uebung_id, FHC_INTEGER); - $db->db_query($clear); - - $qry_ns_source = "SELECT * from campus.tbl_notenschluesseluebung where uebung_id = ".$db->db_add_param($uebung_id_source, FHC_INTEGER); - $result_ns_source = $db->db_query($qry_ns_source); - while($row_ns = $db->db_fetch_object($result_ns_source)) - { - $ns_insert = "INSERT INTO campus.tbl_notenschluesseluebung values (".$db->db_add_param($ueb_1_target->uebung_id).",".$db->db_add_param($row_ns->note).", ".$db->db_add_param($row_ns->punkte).")"; - $db->db_query($ns_insert); - } - - } - } - - } - } - } - - } - else - echo "".$p->t('global/fehlerBeimOeffnenDerDatenbankverbindung')."!"; - - if ($error == 0) - echo $p->t('benotungstool/uebungErfolgreichKopiert')."! (Ü: ".$copy_insert."/".$copy_update."; B: ".$copy_insert_bsp."/".$copy_update_bsp.")"; - } -} - - - -echo "

".$p->t('benotungstool/uebungenAnlegenUndVerwalten')."

"; -echo "
"; - -//Anlegen einer neuen Uebung -if(isset($_POST['uebung_neu'])) -{ - if(isset($thema)) - { - //pruefen ob alle Daten eingegeben wurden - $error=false; - $error_msg = ''; - if($thema=='') - { - //$error_thema .= "Thema muss eingegeben werden"; - echo "".$p->t('benotungstool/themaMussEingegebenWerden').""; - $error=true; - } - if(!is_numeric($gewicht)) - { - echo "".$p->t('benotungstool/gewichtMussEineZahlSein').""; - $error = true; - } - - if(!$error) - { - //Uebung anlegen - $datum_obj = new datum(); - $uebung_obj = new uebung(); - $uebung_obj->gewicht=$gewicht; - $uebung_obj->punkte=''; - $uebung_obj->angabedatei=''; - $uebung_obj->freigabevon = null; - $uebung_obj->freigabebis = null; - $uebung_obj->abgabe=false; - $uebung_obj->beispiele=false; - $uebung_obj->bezeichnung=$thema; - $uebung_obj->positiv=isset($_POST['positiv']); - $uebung_obj->defaultbemerkung=''; - $uebung_obj->lehreinheit_id=$lehreinheit_id; - $uebung_obj->updateamum = date('Y-m-d H:i:s'); - $uebung_obj->updatevon = $user; - $uebung_obj->insertamum = date('Y-m-d H:i:s'); - $uebung_obj->insertvon = $user; - $uebung_obj->statistik = false; - $uebung_obj->liste_id = null; - $uebung_obj->get_next_nummer(); - $uebung_obj->nummer = $uebung_obj->next_nummer; - - if($uebung_obj->save(true)) - { - if($error_msg!='') - echo "$error_msg"; - //else - // header("Location: verwaltung_listen.php?lvid=$lvid&stsem=$stsem&lehreinheit_id=$lehreinheit_id&liste_id=$uebung_obj->uebung_id"); - } - else - echo "$uebung_obj->errormsg"; - } - - } - else - echo "".$p->t('benotungstool/uebungKonnteNichtAngelegtWerden')."!
"; -} - - -//Loeschen einer Uebung -if(isset($_POST['delete_uebung'])) -{ - if(isset($_POST['uebung'])) - { - $ueb_obj = new uebung(); - $error_msg=''; - //Ausgewaehlte Beispiele holen - $delete_ids = $_POST['uebung']; - foreach($delete_ids as $id) - { - //Beispiel loeschen - if(!$ueb_obj->delete($id)) - $error_msg=$ueb_obj->errormsg; - } - if($error_msg!='') - echo "$error_msg"; - } -} - -//Editieren einer Uebung -if(isset($_POST['uebung_edit'])) -{ - $error = false; - if($thema=='') - { - echo "".$p->t('benotungstool/themaMussEingegebenWerden')."'"; - $error = true; - } - - - if(!$error) - { - $uebung_obj = new uebung($uebung_id); - $uebung_obj->gewicht=''; - $uebung_obj->punkte=''; - $uebung_obj->angabedatei=''; - $uebung_obj->freigabevon = null; - $uebung_obj->freigabebis = null; - $uebung_obj->abgabe=false; - $uebung_obj->beispiele=false; - $uebung_obj->bezeichnung=$thema; - $uebung_obj->positiv=true; - $uebung_obj->defaultbemerkung=''; - $uebung_obj->lehreinheit_id=$lehreinheit_id; - $uebung_obj->updateamum = date('Y-m-d H:i:s'); - $uebung_obj->updatevon = $user; - $uebung_obj->uebung_id = $uebung_id; - $uebung_obj->statistik = false; - - if($uebung_obj->save(false)) - header("Location: verwaltung.php?lvid=$lvid&stsem=$stsem&lehreinheit_id=$lehreinheit_id"); - //echo "Die Änderung wurde gespeichert!"; - else - echo "$uebung_obj->errormsg"; - } - -} - - -//Eine Uebung in eine andere Lehreinheit kopieren -if(isset($_GET['kopieren']) && $_GET['kopieren']=='true') -{ - //echo "Kopiere Uebung ".$_GET['uebung_copy_id']." to ".$_POST['lehreinheit_copy_id']; - //Laden der zu kopierenden Uebung - if(is_numeric($_GET['uebung_copy_id']) && is_numeric($_POST['lehreinheit_copy_id'])) - { - //Source Uebung Laden - $qry = "SELECT * FROM campus.tbl_uebung WHERE uebung_id=".$db->db_add_param($_GET['uebung_copy_id'], FHC_INTEGER); - if($result_source = $db->db_query($qry)) - { - if($row_source = $db->db_fetch_object($result_source)) - { - //Berechtigung Checken - $qry = "SELECT * FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_copy_id'], FHC_INTEGER)." AND mitarbeiter_uid=".$db->db_add_param($user); - if($row_berechtigt = $db->db_query($qry)) - { - if($db->db_num_rows($row_berechtigt)>0 || - $rechte->isBerechtigt('admin',0) || - $rechte->isBerechtigt('admin',$lv_obj->studiengang_kz) - || $rechte->isBerechtigt('lehre',$lv_obj->studiengang_kz)) - { - //Schauen ob bereits eine uebung mit diesem Namen vorhanden ist - $qry = "SELECT * FROM campus.tbl_uebung WHERE lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_copy_id'], FHC_INTEGER)." AND bezeichnung=".$db->db_add_param($row_source->bezeichnung); - $result_bezeichnung_exists = $db->db_query($qry); - if($db->db_num_rows($result_bezeichnung_exists)==0) - { - //Uebung einfuegen - $uebung_dest = new uebung(); - $uebung_dest->gewicht = $row_source->punkte; - $uebung_dest->punkte = $row_source->punkte; - $uebung_dest->angabedatei = $row_source->angabedatei; - $uebung_dest->freigabevon = $row_source->freigabevon; - $uebung_dest->freigabebis = $row_source->freigabebis; - $uebung_dest->abgabe = ($row_source->abgabe=='t'?true:false); - $uebung_dest->beispiele = ($row_source->beispiele=='t'?true:false); - $uebung_dest->bezeichnung = $row_source->bezeichnung; - $uebung_dest->positiv = ($row_source->positiv=='t'?true:false); - $uebung_dest->statistik = ($row_source->statistik=='t'?true:false); - $uebung_dest->defaultbemerkung = $row_source->defaultbemerkung; - $uebung_dest->lehreinheit_id = $_POST['lehreinheit_copy_id']; - $ubeung_dest->updateamum = date('Y-m-d H:i:s'); - $uebung_dest->updatevon = $user; - $uebung_dest->insertamum = date('Y-m-d H:i:s'); - $uebung_dest->insertvon = $user; - - if($uebung_dest->save(true)) - { - //Beispiel laden - $qry = "SELECT * FROM campus.tbl_beispiel WHERE uebung_id=".$db->db_add_param($_GET['uebung_copy_id'], FHC_INTEGER); - if($result_bsp_source = $db->db_query($qry)) - { - $error_bsp_save=false; - while($row_bsp_source = $db->db_fetch_object($result_bsp_source)) - { - //Beispiel speichern - $beispiel_dest = new beispiel(); - $beispiel_dest->uebung_id = $uebung_dest->uebung_id; - $beispiel_dest->bezeichnung = $row_bsp_source->bezeichnung; - $beispiel_dest->punkte = $row_bsp_source->punkte; - $beispiel_dest->updateamum = date('Y-m-d H:i:s'); - $beispiel_dest->updatevon = $user; - $beispiel_dest->insertamum = date('Y-m-d H:i:s'); - $beispiel_dest->insertvon = $user; - - if(!$beispiel_dest->save(true)) - $error_bsp_save=true; - } - - if($error_bsp_save) - echo "".$p->t('benotungstool/fehlerNichtAlleBeispieleKopiert').""; - else - echo $p->t('benotungstool/datenErfolgreichKopiert'); - } - } - else - { - - echo "".$p->t('benotungstool/fehlerKopierenDerDaten').": $uebung_dest->errormsg"; - } - } - else - echo "".$p->t('benotungstool/fehlerBeimKopieren')."!"; - } - else - echo "".$p->t('global/keineBerechtigungFuerDieseSeite').""; - } - } - else - echo "".$p->t('benotungstool/uebung')." ".$_GET['uebung_copy_id']." ".$p->t('benotungstool/wurdeNichtGefunden').""; - } - else - echo "".$p->t('benotungstool/uebung')." ".$_GET['uebung_copy_id']." ".$p->t('benotungstool/wurdeNichtGefunden').""; - } - else - echo "".$p->t('global/fehlerBeiDerParameteruebergabe').""; -} - -//Uebersichtstabelle -if(isset($uebung_id) && $uebung_id!='') -{ - echo "
"; - //Bearbeiten der ausgewaehlten Uebung - echo "
\n"; - echo "\n"; - echo ""; - - $uebung_obj = new uebung(); - $uebung_obj->load($uebung_id); - - echo " - - - -
".$p->t('benotungstool/ausgewaehlteUebungBearbeiten')." 
 
".$p->t('benotungstool/thema')."$error_thema
-
"; - - $beispiel_obj = new beispiel(); - $beispiel_obj->load_beispiel($uebung_id); - $anzahl = count($beispiel_obj->beispiele); - echo "
"; - - echo "
"; - - echo ""; -} -else -{ - //Gesamtuebersicht ueber alle Uebungen - - echo "
"; - echo "
"; - echo ""; - - $uebung_obj = new uebung(); - $uebung_obj->load_uebung($lehreinheit_id,$level=1,$uebung_id=null); - $anzahl = count($uebung_obj->uebungen); - //$copy_content="
".$p->t('benotungstool/vorhandeneUebungenBearbeiten')."
"; - $has_copy_content=false; - if($anzahl>0) - { - echo ""; - - //Alle Lehreinheiten holen die zu dieser lehrveranstaltung gehoeren - //und der angemeldete User berechtigt ist - $copy_option_content = array(); - for($i=0;$i<$db->db_num_rows($result_alle_lehreinheiten);$i++) - { - $row_alle_lehreinheiten = $db->db_fetch_object($result_alle_lehreinheiten,$i); - if($lehreinheit_id!=$row_alle_lehreinheiten->lehreinheit_id) - { - //zugeteilte Lektoren holen - $qry_lektoren = "SELECT * FROM lehre.tbl_lehreinheitmitarbeiter JOIN public.tbl_mitarbeiter using(mitarbeiter_uid) WHERE lehreinheit_id=".$db->db_add_param($row_alle_lehreinheiten->lehreinheit_id,FHC_INTEGER); - if($result_lektoren = $db->db_query($qry_lektoren)) - { - $lektoren = '( '; - $j=0; - while($row_lektoren = $db->db_fetch_object($result_lektoren)) - { - $lektoren .= $row_lektoren->kurzbz; - $j++; - if($j<$db->db_num_rows($result_lektoren)) - $lektoren.=', '; - else - $lektoren.=' '; - } - $lektoren .=')'; - } - //zugeteilte Gruppen holen - $qry_gruppen = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=".$db->db_add_param($row_alle_lehreinheiten->lehreinheit_id, FHC_INTEGER); - if($result_gruppen = $db->db_query($qry_gruppen)) - { - $gruppen = ''; - $j=0; - while($row_gruppen = $db->db_fetch_object($result_gruppen)) - { - if($row_gruppen->gruppe_kurzbz=='') - $gruppen.=$row_gruppen->semester.$row_gruppen->verband.$row_gruppen->gruppe; - else - $gruppen.=$row_gruppen->gruppe_kurzbz; - $j++; - if($j<$db->db_num_rows($result_gruppen)) - $gruppen.=', '; - else - $gruppen.=' '; - } - } - //$copy_option_content.= "\n"; - $copy_le_content[$row_alle_lehreinheiten->lehreinheit_id] = "$row_alle_lehreinheiten->lfbez-$row_alle_lehreinheiten->lehrform_kurzbz - $gruppen $lektoren"; - } - - } - $uebung_id_source_dropdown = ""; - echo ""; - echo ""; - - $subuebung_obj = new uebung(); - $subuebung_obj->load_uebung($lehreinheit_id,$level=2,$uebung_id=$row->uebung_id); - $subanzahl = count($subuebung_obj->uebungen); - echo ""; - } - echo ""; - echo ""; - if ($copy_dropdown != '') - { - echo ""; - echo ""; - - $uebung_id_source_dropdown .= ""; - echo ""; - } - } - else - echo ""; - - echo "
Übung in andere LE kopieren
 
 
 
".$p->t('benotungstool/thema')."".$p->t('benotungstool/freigeschalten')."".$p->t('benotungstool/auswahl')."
"; - echo " ".$row->bezeichnung.""; - echo ""; - - //if((strtotime(strftime($row->freigabevon))<=time()) && (strtotime(strftime($row->freigabebis))>=time())) - // echo 'Ja'; - //else - // echo 'Nein'; - echo "
"; - echo ""; - //echo "
    "; - foreach ($subuebung_obj->uebungen as $subrow) - { - echo "
"; - } - //echo ""; - echo ""; - echo "
 
".$p->t('benotungstool/vorhandeneUebungenKopieren')."
"; - echo "
".$p->t('benotungstool/uebung')."".$p->t('global/lehreinheit')."
".$uebung_id_source_dropdown."->".$copy_dropdown."
"; - echo "
".$p->t('benotungstool/derzeitSindKeineUebungenAngelegt')."
-

"; - - - //Kopier-Buttons anzeigen - //$copy_content.='
'; - //echo "
"; - //if($has_copy_content) - // echo $copy_content; - //echo "
"; - - //Uebung neu anlegen - if(!isset($_POST['uebung_neu'])) - { - $thema = $p->t('benotungstool/uebung')." ".($anzahl<9?'0'.($anzahl+1):($anzahl+1)); - $anzahlderbeispiele = 10; - $punkteprobeispiel = 1; - $freigabevon = date('d.m.Y H:i'); - $freigabebis = date('d.m.Y H:i'); - } - - echo ""; - echo " -
- - - - - - - -
".$p->t('benotungstool/neueUebungAnlegen')."
".$p->t('benotungstool/thema')."$error_thema
".$p->t('benotungstool/gewicht')."$error_gewicht
".$p->t('benotungstool/positiv')."
-
- "; -} -?> - - - - diff --git a/cis/private/lehre/benotungstool/verwaltung_listen.php b/cis/private/lehre/benotungstool/verwaltung_listen.php deleted file mode 100644 index 85b1c016e..000000000 --- a/cis/private/lehre/benotungstool/verwaltung_listen.php +++ /dev/null @@ -1,1250 +0,0 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > - */ - -require_once('../../../../config/cis.config.inc.php'); -require_once('../../../../include/basis_db.class.php'); -require_once('../../../../include/functions.inc.php'); -require_once('../../../../include/lehrveranstaltung.class.php'); -require_once('../../../../include/studiengang.class.php'); -require_once('../../../../include/studiensemester.class.php'); -require_once('../../../../include/lehreinheit.class.php'); -require_once('../../../../include/benutzerberechtigung.class.php'); -require_once('../../../../include/uebung.class.php'); -require_once('../../../../include/beispiel.class.php'); -require_once('../../../../include/datum.class.php'); -require_once('functions.inc.php'); -require_once('../../../../include/phrasen.class.php'); - -$sprache = getSprache(); -$p = new phrasen($sprache); - -if (!$db = new basis_db()) - die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung')); - -function microtime_float() -{ - list($usec, $sec) = explode(" ", microtime()); - return ((float)$usec + (float)$sec); -} -$time = microtime_float(); -$user = get_uid(); - -if(!check_lektor($user)) - die($p->t('global/keineBerechtigungFuerDieseSeite')); - -$rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($user); - -if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) //Lehrveranstaltung_id - $lvid = $_GET['lvid']; -else - die($p->t('global/fehlerBeiDerParameteruebergabe')); - -if(isset($_GET['lehreinheit_id']) && is_numeric($_GET['lehreinheit_id'])) //Lehreinheit_id - $lehreinheit_id = $_GET['lehreinheit_id']; -else - $lehreinheit_id = ''; - -//Angabedatei ausliefern -if (isset($_GET["download"])){ - $file=$_GET["download"]; - $uebung_id = $_GET["uebung_id"]; - $ueb = new uebung(); - $ueb->load($uebung_id); - $filename = BENOTUNGSTOOL_PATH."angabe/".$ueb->angabedatei; - header('Content-Type: application/octet-stream'); - header('Content-disposition: attachment; filename="'.$file.'"'); - readfile($filename); - exit; -} - -?> - - - - - -Kreuzerltool - - - - -load($lvid)) - die($lv_obj->errormsg); - -//Studiengang laden -$stg_obj = new studiengang($lv_obj->studiengang_kz); - -if(isset($_GET['stsem'])) - $stsem = $_GET['stsem']; -else - $stsem = ''; - -//Vars -$datum_obj = new datum(); -$global_msg =''; -$error_thema=''; -$error_anzahlderbeispiele=''; -$error_punkteprobeispiel=''; -$error_freigabebis=''; -$error_freigabevon=''; -$error_maxstd = ''; -$error_maxbsp = ''; -$error_gewicht = ''; - -$thema = (isset($_POST['thema'])?$_POST['thema']:''); -$liste_id = (isset($_REQUEST['liste_id'])?$_REQUEST['liste_id']:''); -$anzahlderbeispiele = (isset($_POST['anzahlderbeispiele'])?$_POST['anzahlderbeispiele']:''); -$punkteprobeispiel = (isset($_POST['punkteprobeispiel'])?$_POST['punkteprobeispiel']:''); -$punkteprobeispiel = mb_ereg_replace(',','.',$punkteprobeispiel); -$freigabebis = (isset($_POST['freigabebis'])?$_POST['freigabebis']:''); -$freigabevon = (isset($_POST['freigabevon'])?$_POST['freigabevon']:''); -$maxstd = (isset($_POST['maxstd'])?$_POST['maxstd']:''); -$maxbsp = (isset($_POST['maxbsp'])?$_POST['maxbsp']:''); -$gewicht = (isset($_POST['gewicht'])?$_POST['gewicht']:''); -if (isset($_FILES["angabedatei"])) - $angabedatei_up = $_FILES["angabedatei"]["tmp_name"]; -else - $angabedatei_up = null; - -$beispiel_id = (isset($_GET['beispiel_id'])?$_GET['beispiel_id']:''); -$uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:''); - -//Angabedatei löschen -if (isset($_GET["deletefile"])){ - $file=$_GET["deletefile"]; - $ueb = new uebung(); - $ueb->load($uebung_id); - $filename = BENOTUNGSTOOL_PATH."angabe/".$ueb->angabedatei; - $ueb->angabedatei = ''; - $ueb->save(false); - unlink($filename); -} - -//notenschlüssel anlegen -if (isset($_POST["schluessel"]) && $_POST["schluessel"]=='Speichern') -{ - $punkte_arr = array(); - $punkte_arr[1] = $_POST["schluessel_punkte_1"]; - $punkte_arr[2] = $_POST["schluessel_punkte_2"]; - $punkte_arr[3] = $_POST["schluessel_punkte_3"]; - $punkte_arr[4] = $_POST["schluessel_punkte_4"]; - $punkte_arr[5] = $_POST["schluessel_punkte_5"]; - for ($i=1;$i<=5;$i++) - { - if (is_numeric($punkte_arr[$i])) - { - $qry = "select * from campus.tbl_notenschluesseluebung where uebung_id = ".$db->db_add_param($liste_id, FHC_INTEGER)." and note = ".$db->db_add_param($i); - $result = $db->db_query($qry); - if($db->db_num_rows($result)>0) - $str = "update campus.tbl_notenschluesseluebung set punkte = ".$db->db_add_param($punkte_arr[$i])." where uebung_id = ".$db->db_add_param($liste_id, FHC_INTEGER)." and note = ".$db->db_add_param($i); - else - $str = "insert into campus.tbl_notenschluesseluebung (uebung_id, note, punkte) values (".$db->db_add_param($liste_id).",".$db->db_add_param($i).",".$db->db_add_param($punkte_arr[$i]).")"; - if (!$db->db_query($str)) - echo "Daten konnten nicht gespeichert werden"; - } - } -} -//Kopfzeile -echo ''; -echo ' '; -echo ''; -echo '
 

'.$p->t('benotungstool/benotungstool'); -echo '

'."\n"; - -//Studiensemester laden -$stsem_obj = new studiensemester(); -if($stsem=='') - $stsem = $stsem_obj->getaktorNext(); - -$stsem_obj->getAll(); - - -//Studiensemester DropDown -$stsem_content = $p->t('global/studiensemester').": \n"; - -//Lehreinheiten laden -if($rechte->isBerechtigt('admin',0) || $rechte->isBerechtigt('admin',$lv_obj->studiengang_kz) || $rechte->isBerechtigt('lehre',$lv_obj->studiengang_kz)) -{ - $qry = "SELECT - distinct lehrfach.kurzbz as lfbez, tbl_lehreinheit.lehreinheit_id, tbl_lehreinheit.lehrform_kurzbz as lehrform_kurzbz - FROM - lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach, lehre.tbl_lehreinheitmitarbeiter - WHERE - tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND - tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id AND - tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitmitarbeiter.lehreinheit_id AND - tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($stsem); -} -else -{ - $qry = "SELECT - distinct lehrfach.kurzbz as lfbez, tbl_lehreinheit.lehreinheit_id, tbl_lehreinheit.lehrform_kurzbz as lehrform_kurzbz - FROM - lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach, lehre.tbl_lehreinheitmitarbeiter - WHERE - tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND - tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id AND - tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitmitarbeiter.lehreinheit_id AND - tbl_lehreinheit.lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) WHERE mitarbeiter_uid=".$db->db_add_param($user).") AND - tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($stsem); -} - -if($result = $db->db_query($qry)) -{ - $result_alle_lehreinheiten = $result; - if($db->db_num_rows($result)>1) - { - //Lehreinheiten DropDown - echo " ".$p->t('global/lehreinheit').": '; - } - else - { - if($row = $db->db_fetch_object($result)) - $lehreinheit_id = $row->lehreinheit_id; - } -} -else -{ - echo $p->t('benotungstool/fehlerBeimAuslesen'); -} -echo $stsem_content; -echo '
'; -echo ''; -echo ''; -echo " -
 \n"; -echo "

".$lv_obj->bezeichnung_arr[$sprache]."

"; - -if($lehreinheit_id=='') - die($p->t('benotungstool/esGibtKeineLehreinheiten')); - -//Menue -include("menue.inc.php"); -/* -echo "\n\n"; -echo "
- Verwaltung     - Anwesenheits- und Übersichtstabelle     - Studentenpunkte verwalten     - Statistik -

-\n"; -*/ - -//echo "studiensemester: $stsem
"; -//echo "lehrveranstaltung: $lvid
"; -//echo "lehreinheit: $lehreinheit_id
"; - -echo "

".$p->t('benotungstool/uebungVerwalten')."

"; - -//Anlegen einer neuen Uebung -if(isset($_POST['uebung_neu']) || isset($_POST['abgabe_neu'])) -{ - if(isset($thema)) - { - //pruefen ob alle Daten eingegeben wurden - $error=false; - if($thema=='') - { - $error_thema.= "".$p->t('benotungstool/themaMussEingegebenWerden').""; - $error=true; - } - if(!is_numeric($gewicht)) - { - echo "".$p->t('benotungstool/gewichtMussEineZahlSein').""; - $error = true; - } - if (isset($_POST['uebung_neu'])) - { - if(!is_numeric($punkteprobeispiel)) - { - $error_punkteprobeispiel= "".$p->t('benotungstool/punkteProBeispielGueltigeZahl').""; - $error=true; - } - elseif($punkteprobeispiel<0) - { - $error_punkteprobeispiel = "".$p->t('benotungstool/punkteProBeispielNichtNegativ').""; - $error=true; - } - if(!is_numeric($anzahlderbeispiele)) - { - $error_anzahlderbeispiele = "".$p->t('benotungstool/anzahlDerBeispieleGueltigeZahl').""; - $error=true; - } - elseif($anzahlderbeispiele<0) - { - $error_anzahlderbeispiele = "".$p->t('benotungstool/anzahlDerBeispieleNichtNegativ').""; - $error=true; - } - elseif($anzahlderbeispiele>99) - { - $error_anzahlderbeispiele = "".$p->t('benotungstool/anzahlDerBeispieleKleiner100').""; - $error=true; - } - - if ($maxstd != '') - { - if(!is_numeric($maxstd)) - { - $error_maxstd = "".$p->t('benotungstool/anzahlStudentenGueltigeZahl').""; - $error=true; - } - elseif($maxstd<0) - { - $error_maxstd = "".$p->t('benotungstool/anzahlStudentenNichtNegativ').""; - $error=true; - } - elseif($maxstd>99) - { - $error_maxd = "".$p->t('benotungstool/anzahlStudentenKleiner100').""; - $error=true; - } - } - else - $maxstd = null; - - if ($maxbsp != '') - { - if(!is_numeric($maxbsp)) - { - $error_maxbsp = "".$p->t('benotungstool/anzahlStudentenGueltigeZahl').""; - $error=true; - } - elseif($maxbsp<0) - { - $error_maxbsp = "".$p->t('benotungstool/anzahlStudentenNichtNegativ').""; - $error=true; - } - elseif($maxbsp>99) - { - $error_maxbsp = "".$p->t('benotungstool/anzahlStudentenKleiner100').""; - $error=true; - } - } - else - $maxbsp = null; - } - - $freigabevon_sav = $datum_obj->mktime_datumundzeit($freigabevon); - $freigabebis_sav = $datum_obj->mktime_datumundzeit($freigabebis); - - if(!$freigabebis_sav) - { - $error_freigabebis = "".$p->t('benotungstool/bisDatumUngueltigesFormat').""; - $error=true; - } - - if(!$freigabevon_sav) - { - $error_freigabevon = "".$p->t('benotungstool/vonDatumUngueltigesFormat').""; - $error=true; - } - - if($freigabevon_sav && $freigabebis_sav && $freigabevon_sav>$freigabebis_sav) - { - $error_freigabevon = "".$p->t('benotungstool/vonDatumNichtGroesserAlsBisDatum').""; - $error=true; - } - - if(!$error) - { - - //Uebung anlegen (KL oder Abgabe) - $datum_obj = new datum(); - $uebung_obj = new uebung(); - //$uebung_obj->gewicht=''; - $uebung_obj->punkte=''; - $uebung_obj->angabedatei=''; - $uebung_obj->freigabevon = date('Y-m-d H:i',$freigabevon_sav); - $uebung_obj->freigabebis = date('Y-m-d H:i',$freigabebis_sav); - if (isset($_POST["uebung_neu"])) - { - if (isset($_POST["kl_abgabe"])) - $uebung_obj->abgabe=true; - else - $uebung_obj->abgabe=false; - $uebung_obj->beispiele=true; - } - else - { - $uebung_obj->abgabe=true; - $uebung_obj->beispiele=false; - } - $uebung_obj->bezeichnung=$thema; - $uebung_obj->positiv=isset($_POST['positiv']); - $uebung_obj->defaultbemerkung=''; - $uebung_obj->lehreinheit_id=$lehreinheit_id; - $uebung_obj->updateamum = date('Y-m-d H:i:s'); - $uebung_obj->updatevon = $user; - $uebung_obj->insertamum = date('Y-m-d H:i:s'); - $uebung_obj->insertvon = $user; - $uebung_obj->statistik = isset($_POST['statistik']); - $uebung_obj->liste_id = $liste_id; - $uebung_obj->maxstd = $maxstd; - $uebung_obj->maxbsp = $maxbsp; - $uebung_obj->gewicht = $gewicht; - $uebung_obj->get_next_nummer(); - $uebung_obj->nummer = $uebung_obj->next_nummer; - - if($uebung_obj->save(true)) - { - $uebung_id = $uebung_obj->uebung_id; - - //Angabedatei ablegen - if ($angabedatei_up) - { - $name_up = pathinfo($_FILES["angabedatei"]["name"]); - //Handle double file extensions (e.g.: .tar.gz) - //Array of possible double extensions - $ext_array = array('.tar.gz','.tar.bz2','.tar.xz','.tar.lzma','.tar.Z'); - //Find occurence of extensions ending with ".tar." - if (in_array(substr($_FILES["angabedatei"]["name"], strripos($_FILES["angabedatei"]["name"], '.tar.')), $ext_array)) - $extension = substr($_FILES["angabedatei"]["name"], strripos($_FILES["angabedatei"]["name"]+1, '.tar.')); - else - $extension = $name_up["extension"]; - - $name_neu = makeUploadName($db, $which='angabe', $lehreinheit_id=$lehreinheit_id, $uebung_id=$uebung_id, $ss=$stsem); - $angabedatei = $name_neu.".".$extension; - - $angabepfad = BENOTUNGSTOOL_PATH."angabe/".$angabedatei; - //$angabepfad = BENOTUNGSTOOL_PATH.$angabedatei; - //unlink($angabepfad); - //echo $angabepfad; - move_uploaded_file($_FILES['angabedatei']['tmp_name'], $angabepfad); - $uebung_obj->angabedatei = $angabedatei; - $uebung_obj->save(false); - } - //Beispiele anlegen - - $error_msg=''; - for($i=0;$i<$anzahlderbeispiele;$i++) - { - $beispiel_obj = new beispiel(); - $beispiel_obj->uebung_id = $uebung_id; - $beispiel_obj->bezeichnung = "Beispiel ".($i<9?'0'.($i+1):($i+1)); - $beispiel_obj->punkte = $punkteprobeispiel; - $beispiel_obj->updateamum = date('Y-m-d H:i:s'); - $beispiel_obj->updatevon = $user; - $beispiel_obj->insertamum = date('Y-m-d H:i:s'); - $beispiel_obj->insertvon = $user; - $beispiel_obj->get_next_nummer(); - $beispiel_obj->nummer = $beispiel_obj->next_nummer; - - if(!$beispiel_obj->save(true)) - $error_msg = $beispiel_obj->errormsg; - } - if($error_msg!='') - echo "$error_msg"; - } - else - echo "$uebung_obj->errormsg"; - } - - } - else - echo "".$p->t('benotungstool/kreuzerllisteNichtAngelegt')."!
"; -} - -//Loeschen eines Beispiels -if(isset($_POST['beispiel_delete'])) -{ - if(isset($_POST['beispiel'])) - { - $beispiel_obj = new beispiel(); - $error_msg=''; - //Ausgewaehlte Beispiele holen - $delete_ids = $_POST['beispiel']; - foreach($delete_ids as $id) - { - //Beispiel loeschen - if(!$beispiel_obj->delete($id)) - $error_msg=$beispiel_obj->errormsg; - } - if($error_msg!='') - echo "$error_msg"; - } -} - -//Loeschen einer Uebung -if(isset($_POST['delete_uebung'])) -{ - if(isset($_POST['uebung'])) - { - $ueb_obj = new uebung(); - $error_msg=''; - //Ausgewaehlte Beispiele holen - $delete_ids = $_POST['uebung']; - foreach($delete_ids as $id) - { - //Beispiel loeschen - if(!$ueb_obj->delete($id)) - $error_msg=$ueb_obj->errormsg; - } - if($error_msg!='') - echo "$error_msg"; - } -} - -//Editieren einer Uebung -if(isset($_POST['uebung_edit'])) -{ - $error = false; - if($thema=='') - { - echo "".$p->t('benotungstool/themaMussEingegebenWerden').""; - $error = true; - } - if(!is_numeric($gewicht)) - { - echo "".$p->t('benotungstool/gewichtMussEineZahlSein').""; - $error = true; - } - $freigabevon_sav = $datum_obj->mktime_datumundzeit($freigabevon); - $freigabebis_sav = $datum_obj->mktime_datumundzeit($freigabebis); - - if ($maxstd != '') - { - if(!is_numeric($maxstd)) - { - echo "".$p->t('benotungstool/anzahlStudentenGueltigeZahl').""; - $error=true; - } - elseif($maxstd<0) - { - echo "".$p->t('benotungstool/anzahlStudentenNichtNegativ').""; - $error=true; - } - elseif($maxstd>99) - { - echo "".$p->t('benotungstool/anzahlStudentenKleiner100').""; - $error=true; - } - } - else - $maxstd = null; - - if ($maxbsp != '') - { - if(!is_numeric($maxbsp)) - { - echo "".$p->t('benotungstool/anzahlStudentenGueltigeZahl').""; - $error=true; - } - elseif($maxbsp<0) - { - echo "".$p->t('benotungstool/anzahlStudentenNichtNegativ').""; - $error=true; - } - elseif($maxbsp>99) - { - echo "".$p->t('benotungstool/anzahlStudentenKleiner100').""; - $error=true; - } - } - else - $maxbsp = null; - - if($freigabevon_sav>$freigabebis_sav) - { - echo "".$p->t('benotungstool/vonDatumNichtGroesserAlsBisDatum').""; - $error=true; - } - if(!$freigabebis_sav) - { - echo "".$p->t('benotungstool/bisDatumUngueltigesFormat').""; - $error=true; - } - - if(!$freigabevon_sav) - { - echo "".$p->t('benotungstool/vonDatumUngueltigesFormat').""; - $error=true; - } - - if(!$error) - { - //Angabedatei ablegen - if ($angabedatei_up) - { - $name_up = pathinfo($_FILES["angabedatei"]["name"]); - //Handle double file extensions (e.g.: .tar.gz) - //Array of possible double extensions - $ext_array = array('.tar.gz','.tar.bz2','.tar.xz','.tar.lzma','.tar.Z'); - //Find occurence of extensions ending with ".tar." - if (in_array(substr($_FILES["angabedatei"]["name"], strripos($_FILES["angabedatei"]["name"], '.tar.')), $ext_array)) - $extension = substr($_FILES["angabedatei"]["name"], strripos($_FILES["angabedatei"]["name"]+1, '.tar.')); - else - $extension = $name_up["extension"]; - $name_neu = makeUploadName($db, $which='angabe', $lehreinheit_id=$lehreinheit_id, $uebung_id=$uebung_id, $ss=$stsem); - $angabedatei_neu = $name_neu.".".$extension; - - $angabepfad = BENOTUNGSTOOL_PATH."angabe/".$angabedatei_neu; - //$angabepfad = BENOTUNGSTOOL_PATH.$angabedatei; - //unlink($angabepfad); - //echo $angabepfad; - foreach (glob(BENOTUNGSTOOL_PATH."angabe/*".$uebung_id.".*") as $old) - unlink($old); - move_uploaded_file($_FILES['angabedatei']['tmp_name'], $angabepfad); - } - else - { - $uebung_akt = new uebung(); - $uebung_akt->load($uebung_id); - $angabedatei_neu = $uebung_akt->angabedatei; - } - $uebung_obj = new uebung(); - $uebung_obj->load($uebung_id); - $uebung_obj->gewicht=$gewicht; - $uebung_obj->punkte=''; - $uebung_obj->angabedatei=$angabedatei_neu; - $uebung_obj->freigabevon = date('Y-m-d H:i',$freigabevon_sav); - $uebung_obj->freigabebis = date('Y-m-d H:i',$freigabebis_sav); - if ($uebung_obj->beispiele) - $uebung_obj->abgabe = (isset($_POST['kl_abgabe'])?true:false); - //$uebung_obj->beispiele=true; - $uebung_obj->bezeichnung=$thema; - $uebung_obj->positiv=(isset($_POST['positiv'])?true:false); - $uebung_obj->defaultbemerkung=''; - $uebung_obj->lehreinheit_id=$lehreinheit_id; - $uebung_obj->updateamum = date('Y-m-d H:i:s'); - $uebung_obj->updatevon = $user; - $uebung_obj->uebung_id = $uebung_id; - $uebung_obj->statistik = (isset($_POST['statistik'])?true:false); - $uebung_obj->liste_id = $_POST["liste_id"]; - $uebung_obj->maxstd = $maxstd; - $uebung_obj->maxbsp = $maxbsp; - - if($uebung_obj->save(false)) - echo "Die Änderung wurde gespeichert!"; - else - echo "$uebung_obj->errormsg"; - } - -} - -// Notenschluessel toggle - -if (isset($_GET['liste_id']) && isset($_GET['notenschluessel'])) -{ - $ueb_ns = new uebung(); - $ueb_ns->toggle_prozent_punkte($_GET['liste_id']); - echo $ueb_ns->errormsg; -} - - -//Editieren einer Liste -if(isset($_POST['liste_edit'])) -{ - $error = false; - if($thema=='') - { - echo "".$p->t('benotungstool/themaMussEingegebenWerden').""; - $error = true; - } - if(!is_numeric($gewicht)) - { - echo "".$p->t('benotungstool/gewichtMussEineZahlSein').""; - $error = true; - } - - - if(!$error) - { - - $uebung_obj = new uebung(); - $uebung_obj->load($_GET['liste_id']); - $uebung_obj->gewicht=$gewicht; - $uebung_obj->punkte=''; - $uebung_obj->angabedatei=''; - $uebung_obj->freigabevon = null; - $uebung_obj->freigabebis = null; - //$uebung_obj->abgabe=false; - //$uebung_obj->beispiele=true; - $uebung_obj->bezeichnung=$thema; - $uebung_obj->positiv=(isset($_POST['positiv'])?true:false); - $uebung_obj->defaultbemerkung=''; - $uebung_obj->lehreinheit_id=$lehreinheit_id; - $uebung_obj->updateamum = date('Y-m-d H:i:s'); - $uebung_obj->updatevon = $user; - $uebung_obj->uebung_id = $_REQUEST["liste_id"]; - //$uebung_obj->statistik = (isset($_POST['statistik'])?true:false); - $uebung_obj->liste_id = ''; - //$uebung_obj->maxstd = $maxstd; - //$uebung_obj->maxbsp = $maxbsp; - - if($uebung_obj->save(false)) - echo $p->t('global/erfolgreichgespeichert')."!"; - else - echo "$uebung_obj->errormsg"; - } - -} - -//Neues Beispiel anlegen -if(isset($_POST['beispiel_neu']) || isset($_POST['beispiel_edit'])) -{ - if(isset($_POST['beispiel_edit']) && (!isset($beispiel_id) || !is_numeric($beispiel_id))) - { - echo "".$p->t('benotungstool/beispielIdUngueltig').""; - } - else - { - if(isset($uebung_id) && $uebung_id!='' && is_numeric($uebung_id)) - { - $punkte = (isset($_POST['punkte'])?$_POST['punkte']:''); - $punkte = mb_ereg_replace(',','.',$punkte); - $bezeichnung = $_REQUEST["bezeichnung"]; - if(is_numeric($punkte) && $punkte!='') - { - if($bezeichnung!='') - { - $beispiel_obj = new beispiel(); - if(isset($_POST['beispiel_edit'])) - { - $beispiel_obj->load($beispiel_id); - $beispiel_obj->beispiel_id= $beispiel_id; - $beispiel_obj->new=false; - } - else - { - $beispiel_obj->new=true; - $beispiel_obj->insertamum = date('Y-m-d H:i:s'); - $beispiel_obj->insertvon = $user; - $beispiel_obj->get_next_nummer(); - $beispiel_obj->nummer = $beispiel_obj->next_nummer; - } - - $beispiel_obj->uebung_id = $uebung_id; - $beispiel_obj->bezeichnung = $bezeichnung; - $beispiel_obj->punkte = $punkte; - $beispiel_obj->updateamum = date('Y-m-d H:i:s'); - $beispiel_obj->updatevon = $user; - if($beispiel_obj->save()) - { - $beispiel_id=''; - } - else - echo "$beispiel_obj->errormsg"; - } - else - echo "".$p->t('benotungstool/bezeichnungMussEingegebenWerden').""; - } - else - echo "".$p->t('benotungstool/punkteMuessenEineGueltigeZahlSein').""; - } - else - echo "".$p->t('benotungstool/zugehoerigeUebungFehlerhaft').""; - } -} - - - -//Uebersichtstabelle -if(isset($_GET["uebung_id"]) && $_GET["uebung_id"]!='') -{ - - echo "
"; - //Bearbeiten der ausgewaehlten Uebung - echo "
\n"; - echo "\n"; - echo ""; - - $uebung_obj = new uebung(); - $uebung_obj->load($uebung_id); - //$downloadname = mb_ereg_replace($uebung_id,ereg_replace(' ','_',$uebung_obj->bezeichnung), $uebung_obj->angabedatei); - $downloadname = mb_str_replace(' ', '_', $uebung_obj->bezeichnung); - $downloadname = mb_str_replace($uebung_id, $downloadname, $uebung_obj->angabedatei); - $downloadname = preg_replace('/[^A-Za-z0-9\-_.]/', '',$downloadname); - echo " - - - "; - - if ($uebung_obj->beispiele){ - echo " - "; - echo""; - echo ""; - } - else if ($uebung_obj->abgabe) - { - echo ""; - echo ""; - } - if ($uebung_obj->beispiele) - echo""; - echo ""; - echo ""; - if ($uebung_obj->angabedatei != '') - echo ""; - else - echo ""; - echo ""; - echo " - - -
".$p->t('benotungstool/ausgewaehlteAufgabeBearbeiten')." 
 
".$p->t('benotungstool/thema')."$error_thema
".$p->t('benotungstool/freigabe')."von mktime_fromtimestamp($uebung_obj->freigabevon))."'>
".$p->t('benotungstool/format')."bis mktime_fromtimestamp($uebung_obj->freigabebis))."'>
".$p->t('benotungstool/maxStudentenBeispiel')."$error_maxstd
".$p->t('benotungstool/maxBeispieleStudent')."$error_maxbsp
".$p->t('benotungstool/abgabe')." abgabe?'checked':'').">
".$p->t('benotungstool/gewicht')."$error_gewicht
".$p->t('benotungstool/positiv')." positiv?'checked':'').">
".$p->t('benotungstool/statistikFuerStudentenAnzeigen')." statistik?'checked':'').">
".$p->t('benotungstool/angabeidatei')."".$downloadname." [del]
- -
"; - - $beispiel_obj = new beispiel(); - $beispiel_obj->load_beispiel($uebung_id); - $anzahl = count($beispiel_obj->beispiele); - echo "
"; - - //Beispiel neu Anlegen - if ($uebung_obj->beispiele) - { - echo "
\n"; - echo "\n"; - echo "\n\n"; - - echo ""; - echo ""; - - echo "
".$p->t('benotungstool/neuesBeispielAnlegen')."
 
".$p->t('global/bezeichnung')." "; - echo " ".$p->t('benotungstool/punkte')."
-
"; - } - - echo "
"; - - - //Uebersicht der Beispiele - if ($uebung_obj->beispiele) - { - echo "
\n"; - echo "\n"; - echo "\n\n"; - - if($anzahl>0) - { - echo "\n"; - foreach ($beispiel_obj->beispiele as $row) - { - echo " - - "; - } - echo ""; - } - else - echo ""; - - echo "
".$p->t('benotungstool/vorhandeneBeispiele')."
 
".$p->t('benotungstool/beispiel')."".$p->t('benotungstool/punkte')."".$p->t('benotungstool/auswahl')."
".$row->bezeichnung."$row->punkte
".$p->t('benotungstool/keineBeispieleAngelegt')."
"; - } - echo "
"; - - //Beispiel Aendern - $error_msg = ''; - if(isset($beispiel_id) && $beispiel_id!='') - { - //Bearbeiten eines Beispiels - if($beispiel_obj->load($beispiel_id)) - { - echo "
\n"; - echo "\n"; - echo "\n\n"; - - echo ""; - echo ""; - - echo "
".$p->t('benotungstool/beispielBearbeiten')."
 
".$p->t('global/bezeichnung')." "; - echo " ".$p->t('benotungstool/punkte')."
-


"; - } - else - $error_msg = $beispiel_obj->errormsg; - } - echo "
"; -} -else -{ - if(isset($liste_id) && $liste_id!='') - { - echo "
"; - //Bearbeiten der ausgewaehlten Liste - echo "
\n"; - echo "\n"; - echo ""; - - $liste_obj = new uebung(); - $liste_obj->load($liste_id); - - echo " - - - -
".$p->t('benotungstool/uebungBearbeiten')." 
 
".$p->t('benotungstool/thema')."$error_thema
".$p->t('benotungstool/gewicht')."$error_gewicht
".$p->t('benotungstool/positiv')." positiv?'checked':'').">
-
"; - } - - //Gesamtuebersicht ueber alle Listen innerhalb der Uebung - echo "
"; - echo "
"; - echo ""; - $studentuebung = new uebung(); - if (!$studentuebung->check_studentuebung($liste_id)) - echo ""; - - $uebung_obj = new uebung(); - $uebung_obj->load_uebung($lehreinheit_id,$level=2,$uebung_id=$liste_id); - $anzahl = count($uebung_obj->uebungen); - $copy_content="
".$p->t('benotungstool/vorhandeneAufgabeBearbeiten')."
"; - $has_copy_content=false; - if($anzahl>0) - { - echo ""; - - //Alle Lehreinheiten holen die zu dieser lehrveranstaltung gehoeren - //und der angemeldete User berechtigt ist - $copy_option_content = array(); - for($i=0;$i<$db->db_num_rows($result_alle_lehreinheiten);$i++) - { - $row_alle_lehreinheiten = $db->db_fetch_object($result_alle_lehreinheiten,$i); - if($lehreinheit_id!=$row_alle_lehreinheiten->lehreinheit_id) - { - //zugeteilte Lektoren holen - $qry_lektoren = "SELECT * FROM lehre.tbl_lehreinheitmitarbeiter JOIN public.tbl_mitarbeiter using(mitarbeiter_uid) WHERE lehreinheit_id=".$db->db_add_param($row_alle_lehreinheiten->lehreinheit_id, FHC_INTEGER); - if($result_lektoren = $db->db_query($qry_lektoren)) - { - $lektoren = '( '; - $j=0; - while($row_lektoren = $db->db_fetch_object($result_lektoren)) - { - $lektoren .= $row_lektoren->kurzbz; - $j++; - if($j<$db->db_num_rows($result_lektoren)) - $lektoren.=', '; - else - $lektoren.=' '; - } - $lektoren .=')'; - } - //zugeteilte Gruppen holen - $qry_gruppen = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=".$db->db_add_param($row_alle_lehreinheiten->lehreinheit_id,FHC_INTEGER); - if($result_gruppen = $db->db_query($qry_gruppen)) - { - $gruppen = ''; - $j=0; - while($row_gruppen = $db->db_fetch_object($result_gruppen)) - { - if($row_gruppen->gruppe_kurzbz=='') - $gruppen.=$row_gruppen->semester.$row_gruppen->verband.$row_gruppen->gruppe; - else - $gruppen.=$row_gruppen->gruppe_kurzbz; - $j++; - if($j<$db->db_num_rows($result_gruppen)) - $gruppen.=', '; - else - $gruppen.=' '; - } - } - //$copy_option_content.= "\n"; - $copy_le_content[$row_alle_lehreinheiten->lehreinheit_id] = "$row_alle_lehreinheiten->lfbez-$row_alle_lehreinheiten->lehrform_kurzbz - $gruppen $lektoren"; - } - } - - //Uebungen durchlaufen - foreach ($uebung_obj->uebungen as $row) - { - $has_option_content=false; - echo ""; - //Wenn andere Lehreinheiten vorhanden sind dann wird die moeglichkeit zum kopieren von - //Uebungen in diese Lehreinheiten angeboten. - if(isset($result_alle_lehreinheiten) && $db->db_num_rows($result_alle_lehreinheiten)>1) - { - $copy_content.= ''; - $copy_content.= '"; - } - } - echo ""; - if ($row->beispiele) - $anzeigen = 'beispiele'; - else - $anzeigen = 'abgabe'; - } - else - { - $studentuebung = new uebung(); - if (!$studentuebung->check_studentuebung($liste_id)) - { - echo ""; - $anzeigen = 'beide'; - } - else - $anzeigen = "nada"; - } - - echo "
".$p->t('benotungstool/uebungInAndereLeKopieren')."
 
 
 
".$p->t('benotungstool/thema')."".$p->t('benotungstool/freigeschalten')."".$p->t('benotungstool/auswahl')." 
".$row->bezeichnung.""; - - if((strtotime(strftime($row->freigabevon))<=time()) && (strtotime(strftime($row->freigabebis))>=time())) - echo $p->t('global/ja'); - else - echo $p->t('global/nein'); - echo "
'; - $copy_option_content = ''; - //Lehreinheiten fuer Combo durchgehen und schauen ob - //fuer diese Lehreinheit bereits eine Uebung mit gleichem Namen existiert - //Falls ja wird diese nicht in der Combo angezeigt - foreach ($copy_le_content as $id=>$bezeichnung) - { - $qry = "SELECT uebung_id FROM campus.tbl_uebung WHERE lehreinheit_id=".$db->db_add_param($id, FHC_INTEGER)." AND bezeichnung=".$db->db_add_param($row->bezeichnung); - //echo $qry; - if($result_vorhanden = $db->db_query($qry)) - { - if($db->db_num_rows($result_vorhanden)==0) - { - $copy_option_content.= "\n"; - $has_option_content=true; - $has_copy_content=true; - } - } - } - //Wenn eintraege fuer Combo vorhanden sind dann wirds angezeigt - if($has_option_content) - { - $copy_content.= "\n"; - $copy_content.= "\n '; - $copy_content.= "   "; - $copy_content.= "\n"; - } - else - { - $copy_content.=" "; - } - $copy_content.= "
".$p->t('benotungstool/derzeitSindKeineAufgabenAngelegt')."
-

"; - - //Kopier-Buttons anzeigen - $copy_content.='
'; - echo "
"; - //if($has_copy_content) - // echo $copy_content; - echo "
"; - - //Uebung neu anlegen - if(!isset($_POST['uebung_neu'])) - { - $thema = $p->t('benotungstool/liste')." ".($anzahl<9?'0'.($anzahl+1):($anzahl+1)); - $anzahlderbeispiele = 10; - $punkteprobeispiel = 1; - $freigabevon = date('d.m.Y H:i'); - $freigabebis = date('d.m.Y H:i'); - $maxstudentenprobeispiel = ''; - $maxbeispieleprostudent = ''; - $gewicht = 1; - - } - echo "
"; - - if ($anzeigen != 'abgabe' && $anzeigen != 'nada') - { - echo " -
- - - - - - - - - - - - - - -
".$p->t('benotungstool/neueKreuzerllisteAnlegen')."
".$p->t('benotungstool/thema')."$error_thema
".$p->t('benotungstool/anzahlDerBeispiele')."$error_anzahlderbeispiele
".$p->t('benotungstool/anzahlPunkteProBeispiel')."$error_punkteprobeispiel
".$p->t('benotungstool/maxStudentenBeispiel')."$error_maxstd
".$p->t('benotungstool/maxBeispieleStudent')."$error_maxbsp
".$p->t('benotungstool/freigabe')."von $error_freigabevon
".$p->t('benotungstool/format')."bis $error_freigabebis
".$p->t('benotungstool/abgabe')."
".$p->t('benotungstool/statistikFuerStudentenAnzeigen')."
".$p->t('benotungstool/angabeidatei')."
-
- "; - // notenschlüssel - $qry = "select * from campus.tbl_notenschluesseluebung where uebung_id = ".$db->db_add_param($liste_id, FHC_INTEGER)." order by note"; - if($result = $db->db_query($qry)) - { - $notenschluessel = array(); - $notenschluessel[1] = ''; - $notenschluessel[2] = ''; - $notenschluessel[3] = ''; - $notenschluessel[4] = ''; - $notenschluessel[5] = ''; - if($db->db_num_rows($result)>=1) - { - while($schluesselrow = $db->db_fetch_object($result)) - { - $notenschluessel[$schluesselrow->note] = $schluesselrow->punkte; - } - } - } - - if ($anzeigen != "beide") - { - if ($liste_obj->prozent == 't') - { - $einheit = " %"; - $einheit_link = $p->t('benotungstool/notenschluesselInProzent')." / ".$p->t('benotungstool/punkten').""; - } - else - { - $einheit=" ".$p->t('benotungstool/punkte'); - $einheit_link = $p->t('benotungstool/notenschluesselIn')." ".$p->t('benotungstool/prozentPunkten'); - } - - echo "
\n"; - echo "\n"; - echo ""; - echo ""; - echo ""; - echo "\n"; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - - echo "
".$p->t('benotungstool/notenschluesselDefinieren')."
"; - echo $einheit_link; - echo "
 
".$p->t('benotungstool/note')."".$p->t('benotungstool/minimum')."
$einheit
$einheit
$einheit
$einheit
$einheit
"; - if ($liste_obj->prozent == 't') - echo "
"; - echo "
-
"; - } - } - if(!isset($_POST['uebung_neu'])) - $thema = "Abgabe ".($anzahl<9?'0'.($anzahl+1):($anzahl+1)); - - if ($anzeigen != 'beispiele' && $anzeigen != 'nada') - { - echo " -
- - - - - - - - - - -
".$p->t('benotungstool/neueAbgabeAnlegen')."
".$p->t('benotungstool/thema')."$error_thema
".$p->t('benotungstool/freigabe')."von $error_freigabevon
".$p->t('benotungstool/format')."bis $error_freigabebis
".$p->t('benotungstool/gewicht')."$error_gewicht
".$p->t('benotungstool/positiv')."
".$p->t('benotungstool/angabeidatei')."
-
- "; - } -} -?> -
- - diff --git a/cis/private/lehre/benotungstool/zipdownload_benotungstool.php b/cis/private/lehre/benotungstool/zipdownload_benotungstool.php deleted file mode 100644 index 9e177dba7..000000000 --- a/cis/private/lehre/benotungstool/zipdownload_benotungstool.php +++ /dev/null @@ -1,91 +0,0 @@ -, - * Andreas Oesterreicher - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > - */ -/** - * Erstellt ein Zip Archiv des Download-Bereichs und leitet dann zum Download weiter - * @create 20-03-2006 - * Aufruf: zipdownload.php?stg=255&sem=1$short=eng - */ -require_once('../../../../config/cis.config.inc.php'); -require_once('../../../../include/functions.inc.php'); - -$user = get_uid(); - -if(!check_lektor($user)) - die('Sie haben keine Berechtigung fuer diese Seite'); - -//Gueltigkeit der Parameter pruefen -if(!isset($_GET['uebung_id']) || !is_numeric($_GET['uebung_id'])) -{ - die('Fehler bei der Parameteruebergabe'); -} -if(!isset($_GET['lehreinheit_id']) || !is_numeric($_GET['lehreinheit_id'])) -{ - die('Fehler bei der Parameteruebergabe'); -} -if(!isset($_GET['stsem'])) -{ - die('Fehler bei der Parameteruebergabe'); -} -if(!isset($_GET['downloadname'])) -{ - die('Fehler bei der Parameteruebergabe'); -} - -$uebung_id = $_GET['uebung_id']; -$lehreinheit_id = $_GET['lehreinheit_id']; -$stsem = $_GET['stsem']; -$downloadname = $_GET['downloadname']; - -if(mb_strstr($downloadname,'..')) - die('Ungueltiger Parameter gefunden'); - -//Pfade bauen -$pfad = BENOTUNGSTOOL_PATH.'abgabe/'; -$filename = 'download_'.$user.'_'.$downloadname.'.zip'; -$filename_tmp = 'download_'.$user.'_'.$uebung_id.'.zip'; - -if(!check_filename($filename) || !check_filename($filename_tmp)) - die('Ungueltiger Parameter gefunden'); - -//Pfad wechseln -if(chdir($pfad)) -{ - //File loeschen falls es existiert - //if(file_exists("download_".$user."*")) - exec('rm download_'.$user.'*'); - - //Zip File erstellen - exec("zip -r ".escapeshellarg($filename_tmp).' *_[WS]S[0-9][0-9][0-9][0-9]_'.$uebung_id.'_*'); - - //Auf Zip File Verweisen - //header("Location: $pfad$filename"); - header('Content-Type: application/octet-stream'); - header('Content-disposition: attachment; filename="'.$filename.'"'); - readfile($filename_tmp); - unlink($filename_tmp); -} -else -{ - die('Path change failed'); -} -?> diff --git a/cis/private/lehre/pruefung/pruefung.js.php b/cis/private/lehre/pruefung/pruefung.js.php index 15bd195ee..b207c94e5 100644 --- a/cis/private/lehre/pruefung/pruefung.js.php +++ b/cis/private/lehre/pruefung/pruefung.js.php @@ -575,8 +575,8 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id) studienverpflichtung_id = $("#studienverpflichtung option:selected").val(); var studiengang_kz = null; - if($('#select_studiengang').length) - studiengang_kz = $('#select_studiengang option:selected').val(); + if($('#prestudent_studiengang').length) + studiengang_kz = $('#prestudent_studiengang option:selected').val(); $.ajax({ dataType: 'json', @@ -892,28 +892,31 @@ function saveReihung(terminId, lehrveranstaltung_id) anmeldung.uid = v.id; reihung.push(anmeldung); }); - $.ajax({ - dataType: 'json', - url: "./pruefungsanmeldung.json.php", - type: "POST", - data: { - method: "saveReihung", - reihung: reihung - }, - error: loadError, - success: function(data){ - if(data.error === 'false' && data.result === true) - { - messageBox("message", "t('pruefung/reihunghErfolgreichGeaendert'); ?>", "green", "highlight", 1000); - } - else - { - messageBox("message", data.errormsg, "red", "highlight", 1000); - } - showAnmeldungen(terminId, lehrveranstaltung_id); - } - }); + if (reihung.length > 0) { + $.ajax({ + dataType: 'json', + url: "./pruefungsanmeldung.json.php", + type: "POST", + data: { + method: "saveReihung", + reihung: reihung + }, + error: loadError, + success: function(data){ + if(data.error === 'false' && data.result === true) + { + messageBox("message", "t('pruefung/reihunghErfolgreichGeaendert'); ?>", "green", "highlight", 1000); + } + else + { + messageBox("message", data.errormsg, "red", "highlight", 1000); + } + + showAnmeldungen(terminId, lehrveranstaltung_id); + } + }); + } } /** @@ -1216,7 +1219,8 @@ function loadStudiensemester() url: "./pruefungstermin.json.php", type: "POST", data: { - method: "loadStudiensemester" + method: "loadStudiensemester", + prevSemester: 5 }, error: loadError, success: function(data){ diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php index e96f0fcea..ce7479cf0 100644 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -632,24 +632,11 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) { foreach ($prestudenten as $ps) { - if($ps->studiengang_kz === $studiengang_kz) + if ($ps->getLaststatus($ps->prestudent_id, $stdsem)) { - if ($ps->getLaststatus($ps->prestudent_id, $stdsem)) + if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher")) { - if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher")) - { - $prestudent_id = $ps->prestudent_id; - } - else - { - if ($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch)) - { - if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher")) - { - $prestudent_id = $ps->prestudent_id; - } - } - } + $prestudent_id = $ps->prestudent_id; } else { @@ -662,6 +649,16 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) } } } + else + { + if ($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch)) + { + if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher")) + { + $prestudent_id = $ps->prestudent_id; + } + } + } } } else diff --git a/cis/private/lehre/pruefung/pruefungsanmeldungen_verwalten.php b/cis/private/lehre/pruefung/pruefungsanmeldungen_verwalten.php index 21de64fcc..22bca21cc 100644 --- a/cis/private/lehre/pruefung/pruefungsanmeldungen_verwalten.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldungen_verwalten.php @@ -252,7 +252,7 @@ if (empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldung '; $aktuellesSemester = $studiensemester->getaktorNext(); - $studiensemester->getAll(); + $studiensemester->getPlusMinus(null, 5); foreach($studiensemester->studiensemester as $sem) { /*@var $sem studiensemester */ diff --git a/cis/private/lehre/pruefung/pruefungstermin.json.php b/cis/private/lehre/pruefung/pruefungstermin.json.php index 36ca332bd..978c3e69e 100644 --- a/cis/private/lehre/pruefung/pruefungstermin.json.php +++ b/cis/private/lehre/pruefung/pruefungstermin.json.php @@ -61,7 +61,8 @@ switch($method) case 'loadStudiensemester': $studiensemester = new studiensemester(); $aktStudiensemester = $studiensemester->getaktorNext(); - $data = loadStudiensemester($aktStudiensemester); + $prevSemester = empty($_POST["prevSemester"]) ? 0 : $_POST["prevSemester"]; + $data = loadStudiensemester($aktStudiensemester, $prevSemester); break; case 'getPruefungsfensterByStudiensemester': $studiensemester = new studiensemester(); @@ -223,12 +224,15 @@ function loadPruefungstypen($abschluss) /** * Lädt alle Studiensemester aus der Datenbank * @param String $aktStudiensemester das Aktuelle Studiensemester + * @param int $prevSemester wie viele vergangene Semester sollen geladen werden * @return Array */ -function loadStudiensemester($aktStudiensemester = null) +function loadStudiensemester($aktStudiensemester = null, $prevSemester = 0) { $studiensemester = new studiensemester(); - if($studiensemester->getAll()) + $prevSemester == 0 ? $studiensemester->getAll() : $studiensemester->getPlusMinus(null, $prevSemester); + + if(!empty($studiensemester->studiensemester)) { $data['result']=$studiensemester->studiensemester; if(!is_null($aktStudiensemester)) diff --git a/cis/private/lehre/zipdownload.php b/cis/private/lehre/zipdownload.php deleted file mode 100644 index 76160abf6..000000000 --- a/cis/private/lehre/zipdownload.php +++ /dev/null @@ -1,77 +0,0 @@ -, - * Andreas Oesterreicher - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > - */ - -/** - * Erstellt ein Zip Archiv des Download-Bereichs und leitet dann zum Download weiter - * @create 20-03-2006 - * Aufruf: zipdownload.php?stg=255&sem=1$short=eng - */ - - require_once('../../../config/cis.config.inc.php'); - require_once('../../../include/studiengang.class.php'); - require_once('../../../include/functions.inc.php'); - - //Gueltigkeit der Parameter pruefen - if(!isset($_GET['stg']) || !is_numeric($_GET['stg'])) - { - die('Fehler bei der Parameteruebergabe'); - } - - if(!isset($_GET['sem']) || !is_numeric($_GET['sem'])) - { - die('Fehler bei der Parameteruebergabe'); - } - - if(!isset($_GET['short']) || mb_strstr("..",$_GET['short'],false)) - { - die("Fehler bei der Parameteruebergabe"); - } - - $stg = $_GET['stg']; - $sem = $_GET['sem']; - $short = $_GET['short']; - - //Studiengangskuerzel holen - $stg_obj = new studiengang(); - $stg_obj->load($stg); - - $kurzbz = mb_strtolower($stg_obj->kuerzel); - - //Pfade bauen - $pfad = '../../../documents/'.$kurzbz.'/'.$sem.'/'.$short.'/download/'; - $filename = $kurzbz.'_'.$sem.'_'.$short.'_download.zip'; - $pfad2 = '../../../documents/'.$kurzbz.'/'.$sem.'/'.$short.'/'; - - //Pfad wechseln - chdir($pfad); - - //File loeschen falls es existiert - if(file_exists('../'.$filename)) - exec("rm ../$filename"); - - //Zip File erstellen - exec("zip -r ../".$filename." ./*"); - - //Auf Zip File Verweisen - header("Location: $pfad2$filename"); -?> \ No newline at end of file diff --git a/cis/private/lvplan/stpl_week.php b/cis/private/lvplan/stpl_week.php index c7da148dd..e58ce03ed 100644 --- a/cis/private/lvplan/stpl_week.php +++ b/cis/private/lvplan/stpl_week.php @@ -497,19 +497,19 @@ $stdplan->user_uid=$uid; // Zusaetzliche Daten laden if (! $stdplan->load_data($type,$pers_uid,$ort_kurzbz,$stg_kz,$sem,$ver,$grp,$gruppe_kurzbz,null,$lva) ) { - die($stdplan->errormsg); + die(htmlentities($stdplan->errormsg)); } // Stundenplan einer Woche laden if (! $stdplan->load_week($datum)) { - die($stdplan->errormsg); + die(htmlentities($stdplan->errormsg)); } // Kopfbereich drucken if (! $stdplan->draw_header()) { - die($stdplan->errormsg); + die(htmlentities($stdplan->errormsg)); } // Stundenplan der Woche drucken diff --git a/cis/private/stud_in_grp.php b/cis/private/stud_in_grp.php index abf3a67a1..d2f9e2d2c 100644 --- a/cis/private/stud_in_grp.php +++ b/cis/private/stud_in_grp.php @@ -183,7 +183,7 @@ else AND studiengang_kz=".$db->db_add_param($_GET['kz']); if (isset($_GET['sem'])) - $qry.=" AND semester=".$db->db_add_param($_GET['sem']); + $qry.=" AND semester=".$db->db_add_param($_GET['sem'], FHC_INTEGER); if (isset($_GET['verband'])) $qry.=" AND verband=".$db->db_add_param($_GET['verband']); diff --git a/cis/testtool/admin/index.php b/cis/testtool/admin/index.php index 7fc7a7da3..6da5040ed 100644 --- a/cis/testtool/admin/index.php +++ b/cis/testtool/admin/index.php @@ -160,6 +160,18 @@ textarea { font-size: 10pt; } +.nummern +{ + border: 1px solid lightgrey; + border-collapse: collapse; + border-spacing: 0; + padding: 2px; +} +td.nummern +{ + width: 15px; + text-align: center; +} @@ -718,19 +730,29 @@ if (($anzahl !== 0) || ($stg_kz == '-1') && ($stg_kz !== '')) // Liste der Fragen if ($filter == 'aktiv') { - $qry = "SELECT distinct nummer, aktiv FROM testtool.tbl_frage WHERE gebiet_id=".$db->db_add_param($gebiet_id)." AND aktiv ORDER BY nummer"; + $qry = "SELECT distinct nummer, aktiv, level, demo FROM testtool.tbl_frage WHERE gebiet_id=".$db->db_add_param($gebiet_id)." AND aktiv ORDER BY nummer"; } elseif ($filter == 'inaktiv') { - $qry = "SELECT distinct nummer, aktiv FROM testtool.tbl_frage WHERE gebiet_id=".$db->db_add_param($gebiet_id)." AND NOT aktiv ORDER BY nummer"; + $qry = "SELECT distinct nummer, aktiv, level, demo FROM testtool.tbl_frage WHERE gebiet_id=".$db->db_add_param($gebiet_id)." AND NOT aktiv ORDER BY nummer"; } else { - $qry = "SELECT distinct nummer, aktiv FROM testtool.tbl_frage WHERE gebiet_id=".$db->db_add_param($gebiet_id)." ORDER BY nummer"; + $qry = "SELECT distinct nummer, aktiv, level, demo FROM testtool.tbl_frage WHERE gebiet_id=".$db->db_add_param($gebiet_id)." ORDER BY nummer"; } if ($result = $db->db_query($qry)) { + $resultArray = array(); + $i = 0; + while ($row = $db->db_fetch_object($result)) + { + $resultArray[$i]['nummer'] = $row->nummer; + $resultArray[$i]['aktiv'] = $row->aktiv; + $resultArray[$i]['level'] = $row->level; + $resultArray[$i]['demo'] = $row->demo; + $i++; + } // Aktiv / Inaktiv Checkboxes $aktivchecked = ($filter == 'aktiv' || $filter == '')?'checked="checked"':''; $inaktivchecked = ($filter == 'inaktiv' || $filter == '')?'checked="checked"':''; @@ -756,21 +778,45 @@ if (($anzahl !== 0) || ($stg_kz == '-1') && ($stg_kz !== '')) inaktiv'; } - echo '
Nummer: '; - while ($row = $db->db_fetch_object($result)) + echo '
+ '; + foreach ($resultArray AS $key=>$value) { if ($nummer == '') - $nummer = $row->nummer; + $nummer = $value['nummer']; $style = ''; - if ($db->db_parse_bool($row->aktiv) == false) + if ($db->db_parse_bool($value['aktiv']) == false) $style = 'style="color: lightgrey"'; - if ($nummer == $row->nummer) - echo " $row->nummer -"; - else - echo " $row->nummer -"; + $styleSelected = ''; + if ($nummer == $value['nummer']) + { + $styleSelected = 'style="background-color: lightblue"'; + } + + echo ''; } + echo ' + '; + $leveltext = ''; + foreach ($resultArray AS $key=>$value) + { + if ($value['level'] == '') + { + $leveltext = '-'; + } + else + { + $leveltext = $value['level']; + if ($value['demo'] == 't') + { + $leveltext .= '*'; + } + } + echo ''; + } + echo '
Nummer:'.$value['nummer'].'
Level:'.$leveltext.'
'; echo " neue Frage hinzufuegen"; $frage_obj = new frage(); if ($filter == 'aktiv') @@ -966,7 +1012,7 @@ if ($frage_id != '') echo ""; echo ""; echo ''; - echo "Punkte:"; + echo "Punkte:"; echo ""; echo ""; echo ""; diff --git a/cis/testtool/login.php b/cis/testtool/login.php index e42a623b2..477901803 100644 --- a/cis/testtool/login.php +++ b/cis/testtool/login.php @@ -125,6 +125,9 @@ if (isset($_POST['prestudent']) && isset($gebdatum)) { if($rt->freigeschaltet) { + // regenerate Session ID after Login + session_regenerate_id(); + $pruefling = new pruefling(); if($pruefling->getPruefling($ps->prestudent_id)) { diff --git a/composer.json b/composer.json index 636c6da42..145927be0 100644 --- a/composer.json +++ b/composer.json @@ -177,9 +177,9 @@ "type": "package", "package": { "name": "nicolaskruchten/pivottable", - "version": "2.15.0", + "version": "2.23.0", "dist": { - "url": "https://github.com/nicolaskruchten/pivottable/archive/v2.21.0.zip", + "url": "https://github.com/nicolaskruchten/pivottable/archive/v2.23.0.zip", "type": "zip" } } @@ -244,65 +244,72 @@ "require": { "php": ">=5.6.40", - "afarkas/html5shiv": "^3.7", - "alvaro-prieto/colResizable": "^1.6", + "afarkas/html5shiv": "3.7.*", - "borgar/textile-js": "2.0.4", - "BlackrockDigital/startbootstrap-sb-admin-2": "^3.3", - - "chriskacerguis/codeigniter-restserver": "^3.0", - "christianbach/tablesorter": "^1.0", + "chriskacerguis/codeigniter-restserver": "3.0.*", + "christianbach/tablesorter": "1.0.*", "codeigniter/framework": "3.*", - "components/jquery": "^3.2", - "components/jqueryui": "^1.12", - "components/font-awesome": "^4.7", - "components/angular.js": "1.3.16", + "components/jquery": "3.*", + "components/jqueryui": "1.*", + "components/font-awesome": "4.*", + "components/angular.js": "1.3.*", + + "dapphp/securimage": "3.6.7", "easyrdf/easyrdf": "0.9.*", - "fgelinas/timepicker": "^0.3.3", "fzaninotto/faker": "1.*", - "joeldbirch/superfish": "^1.7", - "jquery/jqueryV1": "^1.12", - "jquery/jqueryV2": "^2.2", - "jquery/sizzle": "^1.0", - "jquery-archive/jquery-metadata": "^1.0", - "json-forms": "1.4.0", - "jsoneditor": "5.5.6", - "kingsquare/json-schema-form": "*", - "ludo/jquery-treetable": "^3.2", - - "moment/momentjs": "2.24.0", "michelf/php-markdown": "1.5.0", "ml/json-ld": "1.*", - "mottie/tablesorter": "^2.29", + "mottie/tablesorter": "2.*", - "nategood/httpful": "^0.2.20", - "netcarver/textile": "^3.5", - "nicolaskruchten/pivottable": "^2.21.0", + "nategood/httpful": "0.2.*", + "netcarver/textile": "3.7.*", - "olifolkerd/tabulator": "4.2.7", + "phpseclib/phpseclib": "2.0.*", - "phpseclib/phpseclib": "^2.0", + "tinymce/tinymce": "4.9.*", - "rmariuzzo/jquery-checkboxes": "1.0.7", - "rougin/combustor": "1.1.*", - "rougin/refinery": "*", - - "scottjehl/Respond": "^1.4", - - "tapmodo/Jcrop": "^2.0", - "tinymce/tinymce": "4.*", - "tomazdragar/SimpleCropper": "^1.0", - "twbs/bootstrap": "^3.3", + "twbs/bootstrap": "3.4.*", "zetacomponents/workflow": "1.*", "zetacomponents/document": "1.*", "zetacomponents/workflow-database-tiein": "1.*", - "zetacomponents/workflow-event-log-tiein": "1.*" + "zetacomponents/workflow-event-log-tiein": "1.*", + + + "alvaro-prieto/colResizable": "1.6", + + "BlackrockDigital/startbootstrap-sb-admin-2": "3.3.*", + "borgar/textile-js": "2.0.4", + + "fgelinas/timepicker": "0.3.3", + + "joeldbirch/superfish": "1.7.*", + "jquery/jqueryV1": "1.*", + "jquery/jqueryV2": "2.*", + "jquery/sizzle": "1.0.*", + "jquery-archive/jquery-metadata": "1.0.*", + "json-forms": "1.4.0", + "jsoneditor": "5.5.6", + + "ludo/jquery-treetable": "3.2.0", + + "moment/momentjs": "2.24.0", + + "nicolaskruchten/pivottable": "2.23.0", + + "olifolkerd/tabulator": "4.2.7", + + "rmariuzzo/jquery-checkboxes": "1.0.7", + + "scottjehl/Respond": "1.4.2", + + "tapmodo/Jcrop": "2.0.4", + "tomazdragar/SimpleCropper": "1.0" }, "config": { "bin-dir": "vendor/bin" diff --git a/composer.lock b/composer.lock index 0b869361a..d707ce776 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,8 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "44a02c1e72626f05e682de2030c8adad", - "content-hash": "e0898c2ba3d18593851989029e54bedb", + "hash": "d9941245360c86434d18413999bdc812", + "content-hash": "fbeb5d4ef943f6d1d55220cb844d11f1", "packages": [ { "name": "BlackrockDigital/startbootstrap-sb-admin-2", @@ -47,7 +47,7 @@ ], "description": "Defacto way to enable use of HTML5 sectioning elements in legacy Internet Explorer.", "homepage": "http://paulirish.com/2011/the-history-of-the-html5-shiv/", - "time": "2015-07-20T20:04:00+00:00" + "time": "2015-07-20 20:04:00" }, { "name": "alvaro-prieto/colResizable", @@ -126,20 +126,20 @@ }, "type": "library", "notification-url": "https://packagist.org/downloads/", - "time": "2016-09-02T11:31:54+00:00" + "time": "2016-09-02 11:31:54" }, { "name": "codeigniter/framework", - "version": "3.1.10", + "version": "3.1.11", "source": { "type": "git", "url": "https://github.com/bcit-ci/CodeIgniter.git", - "reference": "c576995304fc3609cca0b7b92d1b2cd611ec82f5" + "reference": "b73eb19aed66190c10c9cad476da7c36c271d6dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bcit-ci/CodeIgniter/zipball/c576995304fc3609cca0b7b92d1b2cd611ec82f5", - "reference": "c576995304fc3609cca0b7b92d1b2cd611ec82f5", + "url": "https://api.github.com/repos/bcit-ci/CodeIgniter/zipball/b73eb19aed66190c10c9cad476da7c36c271d6dc", + "reference": "b73eb19aed66190c10c9cad476da7c36c271d6dc", "shasum": "" }, "require": { @@ -159,7 +159,7 @@ ], "description": "The CodeIgniter framework", "homepage": "https://codeigniter.com", - "time": "2019-01-16T15:49:35+00:00" + "time": "2019-09-19 12:08:45" }, { "name": "components/angular.js", @@ -463,7 +463,7 @@ ], "description": "Shim repository for Angular.js", "homepage": "http://angularjs.org", - "time": "2015-06-07T20:10:38+00:00" + "time": "2015-06-07 20:10:38" }, { "name": "components/font-awesome", @@ -498,20 +498,20 @@ "OFL-1.1" ], "description": "The iconic font designed for use with Twitter Bootstrap.", - "time": "2016-10-25T10:56:23+00:00" + "time": "2016-10-25 10:56:23" }, { "name": "components/jquery", - "version": "3.3.1", + "version": "3.4.1", "source": { "type": "git", "url": "https://github.com/components/jquery.git", - "reference": "459648cda77875519c5da3ae1dd0ed5d170aa649" + "reference": "901828b7968b18319e377dc23d466f28426ee083" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/components/jquery/zipball/459648cda77875519c5da3ae1dd0ed5d170aa649", - "reference": "459648cda77875519c5da3ae1dd0ed5d170aa649", + "url": "https://api.github.com/repos/components/jquery/zipball/901828b7968b18319e377dc23d466f28426ee083", + "reference": "901828b7968b18319e377dc23d466f28426ee083", "shasum": "" }, "type": "component", @@ -540,7 +540,7 @@ ], "description": "jQuery JavaScript Library", "homepage": "http://jquery.com", - "time": "2018-03-04T13:23:48+00:00" + "time": "2019-10-23 05:15:13" }, { "name": "components/jqueryui", @@ -625,7 +625,56 @@ } ], "description": "jQuery UI is a curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library. Whether you're building highly interactive web applications or you just need to add a date picker to a form control, jQuery UI is the perfect choice.", - "time": "2016-09-16T05:47:55+00:00" + "time": "2016-09-16 05:47:55" + }, + { + "name": "dapphp/securimage", + "version": "3.6.7", + "source": { + "type": "git", + "url": "https://github.com/dapphp/securimage.git", + "reference": "1ecb884797c66e01a875c058def46c85aecea45b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dapphp/securimage/zipball/1ecb884797c66e01a875c058def46c85aecea45b", + "reference": "1ecb884797c66e01a875c058def46c85aecea45b", + "shasum": "" + }, + "require": { + "ext-gd": "*", + "php": ">=5.4" + }, + "suggest": { + "ext-pdo": "For database storage support", + "ext-pdo_mysql": "For MySQL database support", + "ext-pdo_sqlite": "For SQLite3 database support" + }, + "type": "library", + "autoload": { + "classmap": [ + "securimage.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Drew Phillips", + "email": "drew@drew-phillips.com" + } + ], + "description": "PHP CAPTCHA Library", + "homepage": "https://www.phpcaptcha.org", + "keywords": [ + "Forms", + "anti-spam", + "captcha", + "security" + ], + "time": "2018-03-09 06:07:41" }, { "name": "easyrdf/easyrdf", @@ -687,7 +736,7 @@ "rdfa", "sparql" ], - "time": "2015-02-27T09:45:49+00:00" + "time": "2015-02-27 09:45:49" }, { "name": "fgelinas/timepicker", @@ -697,26 +746,20 @@ "url": "https://github.com/fgelinas/timepicker", "reference": "9aebe413b784696639220bc36b7c1e8a30fda129" }, - "dist": { - "type": "zip", - "url": "https://fgelinas.com/code/timepicker/releases/jquery-ui-timepicker-0.3.3.zip", - "reference": null, - "shasum": null - }, "type": "library" }, { "name": "fzaninotto/faker", - "version": "v1.8.0", + "version": "v1.9.1", "source": { "type": "git", "url": "https://github.com/fzaninotto/Faker.git", - "reference": "f72816b43e74063c8b10357394b6bba8cb1c10de" + "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/f72816b43e74063c8b10357394b6bba8cb1c10de", - "reference": "f72816b43e74063c8b10357394b6bba8cb1c10de", + "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/fc10d778e4b84d5bd315dad194661e091d307c6f", + "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f", "shasum": "" }, "require": { @@ -725,12 +768,12 @@ "require-dev": { "ext-intl": "*", "phpunit/phpunit": "^4.8.35 || ^5.7", - "squizlabs/php_codesniffer": "^1.5" + "squizlabs/php_codesniffer": "^2.9.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8-dev" + "dev-master": "1.9-dev" } }, "autoload": { @@ -753,7 +796,7 @@ "faker", "fixtures" ], - "time": "2018-07-12T10:23:15+00:00" + "time": "2019-12-12 13:22:17" }, { "name": "joeldbirch/superfish", @@ -895,58 +938,7 @@ "json", "schema" ], - "time": "2014-08-25T02:48:14+00:00" - }, - { - "name": "kevinlebrun/colors.php", - "version": "1.0.3", - "source": { - "type": "git", - "url": "https://github.com/kevinlebrun/colors.php.git", - "reference": "cdda5eee41314b87cd5a8bb91b1ffc7c0210e673" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/kevinlebrun/colors.php/zipball/cdda5eee41314b87cd5a8bb91b1ffc7c0210e673", - "reference": "cdda5eee41314b87cd5a8bb91b1ffc7c0210e673", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "3.7.*", - "satooshi/php-coveralls": "1.0.*", - "squizlabs/php_codesniffer": "1.*" - }, - "type": "library", - "autoload": { - "psr-0": { - "Colors": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kevin Le Brun", - "email": "lebrun.k@gmail.com", - "homepage": "http://kevinlebrun.fr", - "role": "developer" - } - ], - "description": "Colors for PHP CLI scripts", - "homepage": "https://github.com/kevinlebrun/colors.php", - "keywords": [ - "cli", - "color", - "colors", - "console", - "shell" - ], - "time": "2018-05-30T08:34:23+00:00" + "time": "2014-08-25 02:48:14" }, { "name": "kingsquare/json-schema-form", @@ -980,11 +972,17 @@ } ], "description": "A framework-agnostic PHP Implementation for generating simple forms based on json-schema", - "time": "2014-07-10T12:27:19+00:00" + "time": "2014-07-10 12:27:19" }, { "name": "ludo/jquery-treetable", "version": "3.2.0", + "dist": { + "type": "zip", + "url": "https://github.com/ludo/jquery-treetable/archive/3.2.0.zip", + "reference": null, + "shasum": null + }, "type": "library" }, { @@ -1036,7 +1034,7 @@ "keywords": [ "markdown" ], - "time": "2015-03-01T12:03:08+00:00" + "time": "2015-03-01 12:03:08" }, { "name": "ml/iri", @@ -1083,7 +1081,7 @@ "uri", "url" ], - "time": "2014-01-21T13:43:39+00:00" + "time": "2014-01-21 13:43:39" }, { "name": "ml/json-ld", @@ -1132,7 +1130,7 @@ "JSON-LD", "jsonld" ], - "time": "2018-11-18T20:26:18+00:00" + "time": "2018-11-18 20:26:18" }, { "name": "moment/momentjs", @@ -1147,16 +1145,16 @@ }, { "name": "mottie/tablesorter", - "version": "v2.31.1", + "version": "v2.31.2", "source": { "type": "git", "url": "https://github.com/Mottie/tablesorter.git", - "reference": "fa56764ad5630ed3ab9da4a30fdb8dd34bfbaf1f" + "reference": "6a32e5acc294be5b6c420c83d70d66e096533d8f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Mottie/tablesorter/zipball/fa56764ad5630ed3ab9da4a30fdb8dd34bfbaf1f", - "reference": "fa56764ad5630ed3ab9da4a30fdb8dd34bfbaf1f", + "url": "https://api.github.com/repos/Mottie/tablesorter/zipball/6a32e5acc294be5b6c420c83d70d66e096533d8f", + "reference": "6a32e5acc294be5b6c420c83d70d66e096533d8f", "shasum": "" }, "require": { @@ -1177,11 +1175,11 @@ ], "authors": [ { - "name": "Rob Garrison", - "email": "wowmotty@gmail.com" + "name": "Christian Bach" }, { - "name": "Christian Bach" + "name": "Rob Garrison", + "email": "wowmotty@gmail.com" } ], "description": "tablesorter (FORK) is a jQuery plugin for turning a standard HTML table with THEAD and TBODY tags into a sortable table without page refreshes. tablesorter can successfully parse and sort many types of data including linked data in a cell.", @@ -1194,7 +1192,7 @@ "sorting", "table" ], - "time": "2018-11-20T21:54:28+00:00" + "time": "2019-12-01 13:49:52" }, { "name": "nategood/httpful", @@ -1244,20 +1242,20 @@ "rest", "restful" ], - "time": "2015-10-26T16:11:30+00:00" + "time": "2015-10-26 16:11:30" }, { "name": "netcarver/textile", - "version": "v3.7.2", + "version": "v3.7.6", "source": { "type": "git", "url": "https://github.com/textile/php-textile.git", - "reference": "c24d68d9f4d099f9c2434e71024f2a6140dc1594" + "reference": "1846fd5aeace2a0dd57c4f770f693d12bcd7fa26" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/textile/php-textile/zipball/c24d68d9f4d099f9c2434e71024f2a6140dc1594", - "reference": "c24d68d9f4d099f9c2434e71024f2a6140dc1594", + "url": "https://api.github.com/repos/textile/php-textile/zipball/1846fd5aeace2a0dd57c4f770f693d12bcd7fa26", + "reference": "1846fd5aeace2a0dd57c4f770f693d12bcd7fa26", "shasum": "" }, "require": { @@ -1297,50 +1295,18 @@ "plaintext", "textile" ], - "time": "2019-01-26T17:03:58+00:00" + "time": "2020-01-08 21:13:37" }, { "name": "nicolaskruchten/pivottable", - "version": "v2.23.0", - "source": { - "type": "git", - "url": "https://github.com/nicolaskruchten/pivottable.git", - "reference": "a9cabee5382be0aaf0984ac906d9fa2e0376d2c1" - }, + "version": "2.23.0", "dist": { "type": "zip", - "url": "https://api.github.com/repos/nicolaskruchten/pivottable/zipball/a9cabee5382be0aaf0984ac906d9fa2e0376d2c1", - "reference": "a9cabee5382be0aaf0984ac906d9fa2e0376d2c1", - "shasum": "" + "url": "https://github.com/nicolaskruchten/pivottable/archive/v2.23.0.zip", + "reference": null, + "shasum": null }, - "require": { - "components/jquery": ">=1.9" - }, - "type": "library", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Kruchten", - "email": "nicolas@kruchten.com" - } - ], - "description": "Javascript Pivot Table (aka Pivot Grid, Pivot Chart, Cross-Tab) implementation with drag'n'drop.", - "homepage": "https://pivottable.js.org/", - "keywords": [ - "crosstab", - "grid", - "jquery", - "jquery-plugin", - "pivot", - "pivotchart", - "pivotgrid", - "pivottable", - "table" - ], - "time": "2018-11-04T18:21:09+00:00" + "type": "library" }, { "name": "olifolkerd/tabulator", @@ -1355,16 +1321,16 @@ }, { "name": "phpseclib/phpseclib", - "version": "2.0.20", + "version": "2.0.23", "source": { "type": "git", "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "d6819a55b05e123db1e881d8b230d57f912126be" + "reference": "c78eb5058d5bb1a183133c36d4ba5b6675dfa099" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/d6819a55b05e123db1e881d8b230d57f912126be", - "reference": "d6819a55b05e123db1e881d8b230d57f912126be", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/c78eb5058d5bb1a183133c36d4ba5b6675dfa099", + "reference": "c78eb5058d5bb1a183133c36d4ba5b6675dfa099", "shasum": "" }, "require": { @@ -1398,28 +1364,28 @@ "authors": [ { "name": "Jim Wigginton", - "role": "Lead Developer", - "email": "terrafrost@php.net" + "email": "terrafrost@php.net", + "role": "Lead Developer" }, { "name": "Patrick Monnerat", - "role": "Developer", - "email": "pm@datasphere.ch" + "email": "pm@datasphere.ch", + "role": "Developer" }, { "name": "Andreas Fischer", - "role": "Developer", - "email": "bantu@phpbb.com" + "email": "bantu@phpbb.com", + "role": "Developer" }, { "name": "Hans-Jürgen Petrich", - "role": "Developer", - "email": "petrich@tronic-media.com" + "email": "petrich@tronic-media.com", + "role": "Developer" }, { "name": "Graham Campbell", - "role": "Developer", - "email": "graham@alt-three.com" + "email": "graham@alt-three.com", + "role": "Developer" } ], "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", @@ -1443,414 +1409,19 @@ "x.509", "x509" ], - "time": "2019-03-10T16:53:45+00:00" - }, - { - "name": "psr/log", - "version": "1.1.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", - "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "time": "2018-11-20T15:27:04+00:00" - }, - { - "name": "rdlowrey/auryn", - "version": "v1.4.2", - "source": { - "type": "git", - "url": "https://github.com/rdlowrey/auryn.git", - "reference": "8c4dc07943599ba84f4f89eab8cf43efeef80395" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/rdlowrey/auryn/zipball/8c4dc07943599ba84f4f89eab8cf43efeef80395", - "reference": "8c4dc07943599ba84f4f89eab8cf43efeef80395", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "require-dev": { - "athletic/athletic": "~0.1", - "fabpot/php-cs-fixer": "~1.9", - "phpunit/phpunit": "^4.7" - }, - "type": "library", - "autoload": { - "psr-4": { - "Auryn\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Dan Ackroyd", - "email": "Danack@basereality.com", - "homepage": "http://www.basereality.com", - "role": "Developer" - }, - { - "name": "Levi Morrison", - "email": "levim@php.net", - "homepage": "http://morrisonlevi.github.com/", - "role": "Developer" - }, - { - "name": "Daniel Lowrey", - "email": "rdlowrey@gmail.com", - "homepage": "https://github.com/rdlowrey", - "role": "Creator / Main Developer" - } - ], - "description": "Auryn is a dependency injector for bootstrapping object-oriented PHP applications.", - "homepage": "https://github.com/rdlowrey/auryn", - "keywords": [ - "dependency injection", - "dic", - "ioc" - ], - "time": "2017-05-15T06:26:46+00:00" + "time": "2019-09-17 03:41:22" }, { "name": "rmariuzzo/jquery-checkboxes", "version": "1.0.7", + "dist": { + "type": "zip", + "url": "https://github.com/rmariuzzo/checkboxes.js/archive/v1.0.7.zip", + "reference": null, + "shasum": null + }, "type": "library" }, - { - "name": "rougin/blueprint", - "version": "v0.1.5", - "source": { - "type": "git", - "url": "https://github.com/rougin/blueprint.git", - "reference": "979dac046fb5d251dea6e8140b85463c7928a5e2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/rougin/blueprint/zipball/979dac046fb5d251dea6e8140b85463c7928a5e2", - "reference": "979dac046fb5d251dea6e8140b85463c7928a5e2", - "shasum": "" - }, - "require": { - "kevinlebrun/colors.php": "^1.0", - "php": ">=5.3.0", - "rdlowrey/auryn": "^1.0", - "symfony/console": "^2.7", - "symfony/yaml": "^2.7", - "twig/twig": "^1.19" - }, - "require-dev": { - "phpunit/phpunit": "4.*", - "scrutinizer/ocular": "~1.1" - }, - "bin": [ - "bin/blueprint", - "bin/blueprint.php" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.2-dev" - } - }, - "autoload": { - "psr-4": { - "Rougin\\Blueprint\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "description": "A tool for generating files for your PHP projects", - "keywords": [ - "blueprint", - "generator", - "php", - "template" - ], - "time": "2016-02-01T16:31:13+00:00" - }, - { - "name": "rougin/combustor", - "version": "v1.1.4", - "source": { - "type": "git", - "url": "https://github.com/rougin/combustor.git", - "reference": "ed775e2e1738b7682f2ca9e8ab6f968a7c8507dd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/rougin/combustor/zipball/ed775e2e1738b7682f2ca9e8ab6f968a7c8507dd", - "reference": "ed775e2e1738b7682f2ca9e8ab6f968a7c8507dd", - "shasum": "" - }, - "require": { - "php": ">=5.3.0", - "rougin/blueprint": "0.1.*", - "rougin/describe": "1.2.*", - "rougin/spark-plug": "0.2.*" - }, - "require-dev": { - "phpunit/phpunit": "4.*", - "scrutinizer/ocular": "~1.1" - }, - "suggest": { - "rougin/codeigniter": "Yet another way to install CodeIgniter via Composer", - "rougin/refinery": "A command line interface for Migrations Class in CodeIgniter" - }, - "bin": [ - "bin/combustor", - "bin/combustor.php" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2-dev" - } - }, - "autoload": { - "psr-4": { - "Rougin\\Combustor\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Rougin Royce Gutib", - "email": "rougingutib@gmail.com", - "homepage": "http://rougin.github.io", - "role": "Developer" - } - ], - "description": "A tool for speeding up workflow in CodeIgniter", - "homepage": "https://github.com/rougin/combustor", - "keywords": [ - "codeigniter", - "combustor", - "generator", - "php" - ], - "time": "2016-02-14T10:36:58+00:00" - }, - { - "name": "rougin/describe", - "version": "v1.2.2", - "source": { - "type": "git", - "url": "https://github.com/rougin/describe.git", - "reference": "bd6b934d3ab2b28ddc936a5eb0cafa2eed02e360" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/rougin/describe/zipball/bd6b934d3ab2b28ddc936a5eb0cafa2eed02e360", - "reference": "bd6b934d3ab2b28ddc936a5eb0cafa2eed02e360", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "4.*", - "scrutinizer/ocular": "~1.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.5-dev" - } - }, - "autoload": { - "psr-4": { - "Rougin\\Describe\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Rougin Royce Gutib", - "email": "rougingutib@gmail.com", - "homepage": "http://rougin.github.io", - "role": "Developer" - } - ], - "description": "Get the information about the database you're working on in PHP", - "homepage": "https://github.com/rougin/describe", - "keywords": [ - "database", - "describe", - "php" - ], - "time": "2016-03-24T18:17:47+00:00" - }, - { - "name": "rougin/refinery", - "version": "v0.1.6", - "source": { - "type": "git", - "url": "https://github.com/rougin/refinery.git", - "reference": "d32a49dfb61072dcf9619b181de9d9c762e6e26c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/rougin/refinery/zipball/d32a49dfb61072dcf9619b181de9d9c762e6e26c", - "reference": "d32a49dfb61072dcf9619b181de9d9c762e6e26c", - "shasum": "" - }, - "require": { - "php": ">=5.3.0", - "rougin/blueprint": "0.1.*", - "rougin/describe": "1.2.*", - "rougin/spark-plug": "0.2.*" - }, - "require-dev": { - "phpunit/phpunit": "4.*", - "scrutinizer/ocular": "~1.1" - }, - "suggest": { - "rougin/codeigniter": "Yet another way to install CodeIgniter via Composer", - "rougin/combustor": "A tool for speeding up web development in CodeIgniter" - }, - "bin": [ - "bin/refinery", - "bin/refinery.php" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.2-dev" - } - }, - "autoload": { - "psr-4": { - "Rougin\\Refinery\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Rougin Royce Gutib", - "email": "rougingutib@gmail.com", - "homepage": "http://rougin.github.io", - "role": "Developer" - } - ], - "description": "'Ready-to-eat' migrations for Codeigniter", - "homepage": "https://github.com/rougin/refinery", - "keywords": [ - "database", - "migrations", - "php", - "refinery" - ], - "time": "2016-03-04T16:55:32+00:00" - }, - { - "name": "rougin/spark-plug", - "version": "v0.2.0", - "source": { - "type": "git", - "url": "https://github.com/rougin/spark-plug.git", - "reference": "71b7bafacf2854d4dc296cfdf354a6cf54417f9b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/rougin/spark-plug/zipball/71b7bafacf2854d4dc296cfdf354a6cf54417f9b", - "reference": "71b7bafacf2854d4dc296cfdf354a6cf54417f9b", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "4.*", - "scrutinizer/ocular": "~1.1" - }, - "suggest": { - "rougin/codeigniter": "Yet another way to install CodeIgniter via Composer", - "rougin/combustor": "A tool for speeding up web development in CodeIgniter", - "rougin/refinery": "A command line interface for Migrations Class in CodeIgniter" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.3-dev" - } - }, - "autoload": { - "psr-4": { - "Rougin\\SparkPlug\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Rougin Royce Gutib", - "email": "rougingutib@gmail.com", - "homepage": "http://rougin.github.io", - "role": "Developer" - } - ], - "description": "Yet another way to access CodeIgniter's instance", - "homepage": "https://github.com/rougin/spark-plug", - "keywords": [ - "codeigniter", - "instance", - "php", - "spark-plug" - ], - "time": "2015-10-23T08:27:10+00:00" - }, { "name": "scottjehl/Respond", "version": "1.4.2", @@ -1862,136 +1433,18 @@ }, "type": "library" }, - { - "name": "symfony/console", - "version": "v2.8.50", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "cbcf4b5e233af15cd2bbd50dee1ccc9b7927dc12" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/cbcf4b5e233af15cd2bbd50dee1ccc9b7927dc12", - "reference": "cbcf4b5e233af15cd2bbd50dee1ccc9b7927dc12", - "shasum": "" - }, - "require": { - "php": ">=5.3.9", - "symfony/debug": "^2.7.2|~3.0.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/event-dispatcher": "~2.1|~3.0.0", - "symfony/process": "~2.1|~3.0.0" - }, - "suggest": { - "psr/log-implementation": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/process": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Console Component", - "homepage": "https://symfony.com", - "time": "2018-11-20T15:55:20+00:00" - }, - { - "name": "symfony/debug", - "version": "v3.0.9", - "source": { - "type": "git", - "url": "https://github.com/symfony/debug.git", - "reference": "697c527acd9ea1b2d3efac34d9806bf255278b0a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/697c527acd9ea1b2d3efac34d9806bf255278b0a", - "reference": "697c527acd9ea1b2d3efac34d9806bf255278b0a", - "shasum": "" - }, - "require": { - "php": ">=5.5.9", - "psr/log": "~1.0" - }, - "conflict": { - "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" - }, - "require-dev": { - "symfony/class-loader": "~2.8|~3.0", - "symfony/http-kernel": "~2.8|~3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Debug\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Debug Component", - "homepage": "https://symfony.com", - "time": "2016-07-30T07:22:48+00:00" - }, { "name": "symfony/polyfill-ctype", - "version": "v1.11.0", + "version": "v1.13.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "82ebae02209c21113908c229e9883c419720738a" + "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/82ebae02209c21113908c229e9883c419720738a", - "reference": "82ebae02209c21113908c229e9883c419720738a", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", + "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", "shasum": "" }, "require": { @@ -2003,7 +1456,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11-dev" + "dev-master": "1.13-dev" } }, "autoload": { @@ -2019,13 +1472,13 @@ "MIT" ], "authors": [ - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - }, { "name": "Gert de Pagter", "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony polyfill for ctype functions", @@ -2036,116 +1489,7 @@ "polyfill", "portable" ], - "time": "2019-02-06T07:57:58+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.11.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "fe5e94c604826c35a32fa832f35bd036b6799609" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fe5e94c604826c35a32fa832f35bd036b6799609", - "reference": "fe5e94c604826c35a32fa832f35bd036b6799609", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.11-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "time": "2019-02-06T07:57:58+00:00" - }, - { - "name": "symfony/yaml", - "version": "v2.8.50", - "source": { - "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "02c1859112aa779d9ab394ae4f3381911d84052b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/02c1859112aa779d9ab394ae4f3381911d84052b", - "reference": "02c1859112aa779d9ab394ae4f3381911d84052b", - "shasum": "" - }, - "require": { - "php": ">=5.3.9", - "symfony/polyfill-ctype": "~1.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Yaml Component", - "homepage": "https://symfony.com", - "time": "2018-11-11T11:18:13+00:00" + "time": "2019-11-27 13:56:44" }, { "name": "tapmodo/Jcrop", @@ -2160,16 +1504,16 @@ }, { "name": "tinymce/tinymce", - "version": "4.9.5", + "version": "4.9.8", "source": { "type": "git", "url": "https://github.com/tinymce/tinymce-dist.git", - "reference": "5c6d8f4a6dda33b379068bb12678a2b2b2271fb4" + "reference": "912df2bc85015c758e32d1262219f1653bbf9783" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tinymce/tinymce-dist/zipball/5c6d8f4a6dda33b379068bb12678a2b2b2271fb4", - "reference": "5c6d8f4a6dda33b379068bb12678a2b2b2271fb4", + "url": "https://api.github.com/repos/tinymce/tinymce-dist/zipball/912df2bc85015c758e32d1262219f1653bbf9783", + "reference": "912df2bc85015c758e32d1262219f1653bbf9783", "shasum": "" }, "type": "component", @@ -2202,7 +1546,7 @@ "tinymce", "wysiwyg" ], - "time": "2019-03-20T13:56:58+00:00" + "time": "2020-01-28 05:03:01" }, { "name": "tomazdragar/SimpleCropper", @@ -2263,30 +1607,30 @@ "responsive", "web" ], - "time": "2019-02-13T15:55:38+00:00" + "time": "2019-02-13 15:55:38" }, { "name": "twig/twig", - "version": "v1.42.2", + "version": "v1.42.4", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "21707d6ebd05476854805e4f91b836531941bcd4" + "reference": "e587180584c3d2d6cb864a0454e777bb6dcb6152" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/21707d6ebd05476854805e4f91b836531941bcd4", - "reference": "21707d6ebd05476854805e4f91b836531941bcd4", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/e587180584c3d2d6cb864a0454e777bb6dcb6152", + "reference": "e587180584c3d2d6cb864a0454e777bb6dcb6152", "shasum": "" }, "require": { - "php": ">=5.4.0", + "php": ">=5.5.0", "symfony/polyfill-ctype": "^1.8" }, "require-dev": { "psr/container": "^1.0", - "symfony/debug": "^2.7", - "symfony/phpunit-bridge": "^3.4.19|^4.1.8|^5.0" + "symfony/debug": "^3.4|^4.2", + "symfony/phpunit-bridge": "^4.4@dev|^5.0" }, "type": "library", "extra": { @@ -2309,19 +1653,19 @@ "authors": [ { "name": "Fabien Potencier", - "role": "Lead Developer", "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org" - }, - { - "name": "Armin Ronacher", - "role": "Project Founder", - "email": "armin.ronacher@active-4.com" + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" }, { "name": "Twig Team", - "role": "Contributors", - "homepage": "https://twig.symfony.com/contributors" + "homepage": "https://twig.symfony.com/contributors", + "role": "Contributors" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com", + "role": "Project Founder" } ], "description": "Twig, the flexible, fast, and secure template language for PHP", @@ -2329,7 +1673,7 @@ "keywords": [ "templating" ], - "time": "2019-05-14T11:59:08+00:00" + "time": "2019-11-11 16:49:32" }, { "name": "zetacomponents/base", @@ -2393,7 +1737,7 @@ ], "description": "The Base package provides the basic infrastructure that all packages rely on. Therefore every component relies on this package.", "homepage": "https://github.com/zetacomponents", - "time": "2017-11-28T11:30:00+00:00" + "time": "2017-11-28 11:30:00" }, { "name": "zetacomponents/database", @@ -2470,7 +1814,7 @@ ], "description": "A lightweight database layer on top of PHP's PDO that allows you to utilize a database without having to take care of differences in SQL dialects.", "homepage": "https://github.com/zetacomponents", - "time": "2017-11-28T10:55:26+00:00" + "time": "2017-11-28 10:55:26" }, { "name": "zetacomponents/document", @@ -2521,7 +1865,7 @@ ], "description": "The Document components provides a general conversion framework for different semantic document markup languages like XHTML, Docbook, RST and similar.", "homepage": "https://github.com/zetacomponents", - "time": "2013-12-19T11:40:00+00:00" + "time": "2013-12-19 11:40:00" }, { "name": "zetacomponents/workflow", @@ -2587,7 +1931,7 @@ ], "description": "The purpose of the Workflow component is to provide the core functionality of an activity-based workflow system including the definition and execution of workflow specifications.", "homepage": "https://github.com/zetacomponents", - "time": "2014-09-27T19:26:10+00:00" + "time": "2014-09-27 19:26:10" }, { "name": "zetacomponents/workflow-database-tiein", @@ -2654,7 +1998,7 @@ ], "description": "Contains the database backend for the Workflow component.", "homepage": "https://github.com/zetacomponents", - "time": "2014-09-27T19:26:10+00:00" + "time": "2014-09-27 19:26:10" }, { "name": "zetacomponents/workflow-event-log-tiein", @@ -2714,7 +2058,7 @@ ], "description": "Contains the EventLog listener for the Workflow component.", "homepage": "https://github.com/zetacomponents", - "time": "2007-12-17T09:04:44+00:00" + "time": "2007-12-17 09:04:44" } ], "packages-dev": [], diff --git a/config/global.config-default.inc.php b/config/global.config-default.inc.php index 308058fba..82dcbda10 100644 --- a/config/global.config-default.inc.php +++ b/config/global.config-default.inc.php @@ -16,7 +16,6 @@ define('DEFAULT_MITARBEITER_FIXANGESTELLT', true); define('CIS_LEHRVERANSTALTUNG_NEWSGROUPS_ANZEIGEN',true); define('CIS_LEHRVERANSTALTUNG_FEEDBACK_ANZEIGEN',true); define('CIS_LEHRVERANSTALTUNG_DOWNLOAD_ANZEIGEN',true); -define('CIS_LEHRVERANSTALTUNG_UEBUNGSTOOL_ANZEIGEN',true); define('CIS_LEHRVERANSTALTUNG_PINBOARD_ANZEIGEN',true); define('CIS_LEHRVERANSTALTUNG_MAILSTUDIERENDE_ANZEIGEN',true); define('CIS_LEHRVERANSTALTUNG_STUDENTENUPLOAD_ANZEIGEN',true); diff --git a/content/fas.xul.php b/content/fas.xul.php index 2aecae047..3b273cd54 100644 --- a/content/fas.xul.php +++ b/content/fas.xul.php @@ -96,7 +96,6 @@ foreach($addon_obj->result as $addon) - @@ -115,14 +114,12 @@ foreach($addon_obj->result as $addon) - - @@ -317,12 +314,6 @@ foreach($addon_obj->result as $addon) - result as $addon) accesskey = "&menu-statistic-substatistik-alvsstatistik-html.accesskey;"/> - isBerechtigt('admin')) - { - echo ' - - - - - - '; - } - ?> result as $addon) command = "menu-statistic-studentenstatistik:command" accesskey = "&menu-statistic-studentenstatistik.accesskey;"/> - content/statistik/koordinatorstunden.php?oe_kurzbz='+oe_kurzbz,'Koordinatorstunden'); - } - catch(e) - { - alert('Bitte einen Fachbereich auswaehlen'); - return false; - } -} - // **** // * Erstellt das PDF File fuer die Lehrauftraege // * Studiengang muss ausgewaehlt sein @@ -1209,16 +1185,6 @@ function StatistikPrintStudentenstatistik() window.open('content/statistik/studentenstatistik.php?stsem='+stsem,'Studentenstatistik'); } -// **** -// * Liefert eine statistik ueber die Lektorenverteilung auf die Institute -// **** -function StatistikPrintLektorenstatistik() -{ - var stsem = getStudiensemester(); - - window.open('content/statistik/lektorenstatistik.php?stsem='+stsem,'Lektorenstatistik'); -} - // **** // * Liefert eine statistik ueber die Institutszuordnungen und Aufteilung auf intern/extern // **** @@ -1584,14 +1550,6 @@ function StatistikPrintALVSStatistik(format) window.open('content/statistik/alvsstatistik.php?format='+format,'ALVS-Statistik',''); } -// **** -// * Oeffnet die LVPlanunggesamtSJ Statistik -// **** -function StatistikPrintLvPlanungGesamtSJ() -{ - window.open('content/statistik/lvplanunggesamtsj.php','LVPlanungGesamtSJ',''); -} - // **** // * Oeffnet Studenten/Semester Statistik // **** diff --git a/content/lvplanung/lehrveranstaltungDBDML.php b/content/lvplanung/lehrveranstaltungDBDML.php index d506f0459..5e4a3ba61 100644 --- a/content/lvplanung/lehrveranstaltungDBDML.php +++ b/content/lvplanung/lehrveranstaltungDBDML.php @@ -157,8 +157,6 @@ function getStundenproInstitut($mitarbeiter_uid, $studiensemester_kurzbz, $oe_ar WHERE mitarbeiter_uid=".$db->db_add_param($mitarbeiter_uid)." AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND - faktor>0 AND - stundensatz>0 AND bismelden AND tbl_studiengang.oe_kurzbz in(".$db->db_implode4SQL($oe_arr).") GROUP BY tbl_studiengang.bezeichnung"; @@ -305,12 +303,12 @@ if(!$error) $le = new lehreinheit(); $le->load($lem->lehreinheit_id); - if($lem->stundensatz<=0 || $lem->faktor<=0 || $lem->bismelden==false) + if($lem->bismelden==false) $neue_stunden_eingerechnet=false; else $neue_stunden_eingerechnet=true; - if(($stundensatz_alt<=0 || $faktor_alt<=0 || $bismelden_alt==false)) + if($bismelden_alt==false) $alte_stunden_eingerechnet=false; else $alte_stunden_eingerechnet=true; @@ -337,8 +335,6 @@ if(!$error) WHERE mitarbeiter_uid=".$db->db_add_param($lem->mitarbeiter_uid)." AND studiensemester_kurzbz=".$db->db_add_param($le->studiensemester_kurzbz)." AND - faktor>0 AND - stundensatz>0 AND bismelden"; if(count($oe_arr)>0) @@ -559,8 +555,6 @@ if(!$error) WHERE mitarbeiter_uid=".$db->db_add_param($lem->mitarbeiter_uid)." AND studiensemester_kurzbz=".$db->db_add_param($le->studiensemester_kurzbz)." AND - faktor>0 AND - stundensatz>0 AND bismelden"; if(count($oe_arr)>0) diff --git a/content/lvplanung/lehrveranstaltungnotenoverlay.xul.php b/content/lvplanung/lehrveranstaltungnotenoverlay.xul.php index 55fd91bfd..ebb525cbc 100644 --- a/content/lvplanung/lehrveranstaltungnotenoverlay.xul.php +++ b/content/lvplanung/lehrveranstaltungnotenoverlay.xul.php @@ -117,9 +117,9 @@ echo " -