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/navigation.php b/application/config/navigation.php index 400e414ad..9253c87a1 100644 --- a/application/config/navigation.php +++ b/application/config/navigation.php @@ -14,6 +14,7 @@ $config['navigation_header'] = array( 'icon' => 'sitemap', 'description' => 'Organisation', 'sort' => 20, + 'requiredPermissions' => 'basis/vilesci:r', 'children'=> array( 'vilesci' => array( 'link' => base_url('vilesci'), @@ -30,6 +31,7 @@ $config['navigation_header'] = array( 'icon' => 'graduation-cap', 'description' => 'Lehre', 'sort' => 30, + 'requiredPermissions' => 'basis/vilesci:r', 'children'=> array( 'cis' => array( 'link' => CIS_ROOT, @@ -68,6 +70,7 @@ $config['navigation_header'] = array( 'icon' => 'user', 'description' => 'Personen', 'sort' => 40, + 'requiredPermissions' => 'basis/vilesci:r', 'children'=> array( 'bpk' => array( 'link' => site_url('person/BPKWartung'), @@ -156,6 +159,13 @@ $config['navigation_menu']['lehre/lehrauftrag/Lehrauftrag/*'] = array( 'icon' => '', 'sort' => 1, 'requiredPermissions' => 'lehre/lehrauftrag_erteilen:r' + ), + 'lehrauftragLehrendeÜbersicht' => array( + 'link' => site_url('lehre/lehrauftrag/Lehrauftrag/LehrendeUebersicht'), + 'description' => 'Lehrendenübersicht', + 'icon' => '', + 'sort' => 1, + 'requiredPermissions' => array('lehre/lehrauftrag_erteilen:r') ) ); $config['navigation_menu']['lehre/lehrauftrag/LehrauftragErteilen/*'] = array( @@ -178,5 +188,12 @@ $config['navigation_menu']['lehre/lehrauftrag/LehrauftragErteilen/*'] = array( 'icon' => '', 'sort' => 1, 'requiredPermissions' => 'lehre/lehrauftrag_erteilen:r' + ), + 'lehrauftragLehrendeÜbersicht' => array( + 'link' => site_url('lehre/lehrauftrag/Lehrauftrag/LehrendeUebersicht'), + 'description' => 'Lehrendenübersicht', + 'icon' => '', + 'sort' => 1, + 'requiredPermissions' => array('lehre/lehrauftrag_erteilen:r') ) ); 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/LehrauftragJob.php b/application/controllers/jobs/LehrauftragJob.php new file mode 100644 index 000000000..2f6b928c7 --- /dev/null +++ b/application/controllers/jobs/LehrauftragJob.php @@ -0,0 +1,536 @@ +load->model('accounting/Vertrag_model', 'VertragModel'); + $this->load->model('accounting/Vertragvertragsstatus_model', 'VertragvertragsstatusModel'); + $this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel'); + $this->load->model('person/Benutzerfunktion_model', 'BenutzerfunktionModel'); + $this->load->model('system/Benutzerrolle_model', 'BenutzerrolleModel'); + + // Load libraries + $this->load->library('PermissionLib'); + + // Load helpers + $this->load->helper('hlp_sancho_helper'); + } + + /** + * This daily job sends information about all lehr-/projektauftraege ordered (and not approved) the day bofore. + * Receivers: Department-/Kompetenzfeldleiter + **/ + public function mailLehrauftraegeToApprove() + { + // Get vertrag_ids of lehrauftraege that had been ordered and had NOT been approved or cancelled YESTERDAY + $this->VertragvertragsstatusModel->addSelect('vertrag_id'); + $result = $this->VertragvertragsstatusModel->getOrdered_fromDate('YESTERDAY'); + + // Get lehrveranstaltung_ids and studiensemester of the lehr-/or projektauftrag contracts + $lehreinheit_data_arr = array(); + if ($vertrag_arr = getData($result)) + { + foreach ($vertrag_arr as $vertrag) + { + $result = $this->VertragModel->getLehreinheitData($vertrag->vertrag_id, 'lehrveranstaltung_id, studiensemester_kurzbz'); + + if (hasData($result)) + { + $obj = new StdClass(); + $obj->lehrveranstaltung_id = $result->retval[0]->lehrveranstaltung_id; + $obj->studiensemester_kurzbz = $result->retval[0]->studiensemester_kurzbz; + $lehreinheit_data_arr []= $obj; + } + } + } + + /** + * Build the data array to be used in the email. Data array is clustered as follows: + * Array + * [studiensemester_kurzbz] // studiensemester of lehreinheit + * Array + * [oe_kurzbz] // oe of lehreinheits lehrveranstaltung + * [oe_bezeichnung] + * Array + * [stg_kz] // stg of lehreinheits lehrveranstaltung + * [stg_kurzbz] + * [stg_bezeichnung] + * [amount] // amount of new ordered lehrauftraege of that stg + */ + $data_arr = array(); + foreach ($lehreinheit_data_arr as $lehreinheit_data) + { + $result = $this->_getLVData($lehreinheit_data->lehrveranstaltung_id); + + if (hasData($result)) + { + // Search if studiensemester exists in data_arr + $ss_index = array_search($lehreinheit_data->studiensemester_kurzbz, array_column($data_arr, 'studiensemester_kurzbz')); + + // If studiensemester is new, add studienesemester, oe and stg + if ($ss_index === false) + { + $data = array( + 'studiensemester_kurzbz' => $lehreinheit_data->studiensemester_kurzbz + ); + + $data []= array( + 'oe_kurzbz' => $result->retval[0]->oe_kurzbz, + 'oe_bezeichnung' => $result->retval[0]->lv_oe_bezeichnung + ); + + // Add stg data to oe, start amount with 1 + $data[0][] = array( + 'stg_kz' => $result->retval[0]->studiengang_kz, + 'stg_kurzbz' => strtoupper($result->retval[0]->stg_typ. $result->retval[0]->stg_kurzbz), + 'stg_bezeichnung' => $result->retval[0]->lv_stg_bezeichnung, + 'amount' => 1 + ); + + // Push to final data_arr + $data_arr []= $data; + } + // Else if studiensemester exists + else + { + // Search if oe exists inside existing studiensemester of data_arr + $oe_index = array_search($result->retval[0]->oe_kurzbz, array_column($data_arr[$ss_index], 'oe_kurzbz')); + + // If oe is new, add oe and stg to studiensemester + if ($oe_index === false) + { + // Add oe data + $data_arr[$ss_index][] = array( + 'oe_kurzbz' => $result->retval[0]->oe_kurzbz, + 'oe_bezeichnung' => $result->retval[0]->lv_oe_bezeichnung, + + // Add stg data to oe, start amount with 1 + array( + 'stg_kz' => $result->retval[0]->studiengang_kz, + 'stg_kurzbz' => strtoupper($result->retval[0]->stg_typ. $result->retval[0]->stg_kurzbz), + 'stg_bezeichnung' => $result->retval[0]->lv_stg_bezeichnung, + 'amount' => 1 + ) + ); + } + // Else if oe exists + else + { + // Search if stg exists inside existing oe of data_arr + $stg_index = array_search($result->retval[0]->studiengang_kz, array_column($data_arr[$ss_index][$oe_index], 'stg_kz')); + + // If stg is new, add stg to oe, start amount with 1 + if ($stg_index === false) + { + $data_arr[$ss_index][$oe_index][] = array( + 'stg_kz' => $result->retval[0]->studiengang_kz, + 'stg_kurzbz' => strtoupper($result->retval[0]->stg_typ. $result->retval[0]->stg_kurzbz), + 'stg_bezeichnung' => $result->retval[0]->lv_stg_bezeichnung, + 'amount' => 1 + ); + } + // Else if stg exists + else + { + // Increase amount +1 + $data_arr[$ss_index][$oe_index][$stg_index]['amount']++; + } + } + } + } + } + + /** + * Cluster data by uid of entitled mail receivers. + * Returning array is clustered as follows: + * Array + * [uid] + * Array + * [studiensemester_kurzbz] // studiensemester of lehreinheit + * Array + * [oe_kurzbz] // oe of lehreinheits lehrveranstaltung + * [oe_bezeichnung] + * Array + * [stg_kz] // stg of lehreinheits lehrveranstaltung + * [stg_kurzbz] + * [stg_bezeichnung] + * [amount] // amount of new ordered lehrauftraege of that stg + */ + $data_arr = $this->_clusterData_byReceiver($data_arr); + + // Send email + if(!$this->_sendMail_toApprove($data_arr)) + { + $this->logInfo('SUCCEDED: Sending emails about yesterdays ordered lehrauftraege succeded.'); + } + else + { + $this->logError('Error when sending emails in job MailLehrauftragToApprove'); + } + } + + /** + * This daily job sends information about all lehr-/projektauftraege approved the day bofore. + * Receivers: lectors + **/ + public function mailLehrauftraegeToAccept() + { + // Get vertrag_id and uid of lehrauftraege that had been approved and had NOT been accepted or cancelled YESTERDAY + $this->VertragvertragsstatusModel->addSelect('vertrag_id, uid'); + $this->VertragvertragsstatusModel->addOrder('uid'); + $result = $this->VertragvertragsstatusModel->getApproved_fromDate('YESTERDAY'); + + /** + * Build the data array to be used in the email. Data array is clustered as follows: + * Array + * [uid] // lectors uid (mail receiver) + * [studiensemester] // studiensemester of the lehrauftraege (can be more, e.g. 'WS2019 and SS2020') + * [amount] // amount of new approved lehrauftraege + **/ + $data_arr = array(); + if ($vertrag_arr = getData($result)) + { + foreach ($vertrag_arr as $vertrag) + { + // Get studiensemester of the lehrauftrag + $this->VertragModel->addSelect('vertragsstunden_studiensemester_kurzbz'); + $result = $this->VertragModel->load($vertrag->vertrag_id); + if ($studiensemester = getData($result)) + { + $studiensemester = $studiensemester[0]->vertragsstunden_studiensemester_kurzbz; + } + + // Search if uid exists in data_arr + $uid_index = array_search($vertrag->uid, array_column($data_arr, 'uid')); + + // If uid is new, add uid, studiensemester and start amount with 1 + if ($uid_index === false) + { + $data = array(); + $data['uid'] = $vertrag->uid; + $data['studiensemester'] = $studiensemester; + $data['amount']= 1; + $data_arr []= $data; + } + // Else if uid exists + else + { + // If studiensemester is new, add to studiensemester-string + if (strpos($data_arr[$uid_index]['studiensemester'], $studiensemester) === false) + { + $data_arr[$uid_index]['studiensemester'] .= ' und '. $studiensemester; + } + + // Increase amount +1 + $data_arr[$uid_index]['amount']++; + } + } + } + + // Send email + if ($this->_sendMail_toAccept($data_arr)) + { + $this->logInfo('SUCCEDED: Sending emails about yesterdays approved lehrauftraege succeded.'); + } + else + { + $this->logError('Error when sending emails in job MailLehrauftragToAccept'); + } + } + + //****************************************************************************************************************** + // PRIVATE FUNCTIONS + //****************************************************************************************************************** + + /** + * Get data of given lehrveranstaltung. + * @param $lehrveranstaltung_id + * @return mixed + */ + private function _getLVData($lehrveranstaltung_id) + { + $this->LehrveranstaltungModel->addSelect(' + tbl_lehrveranstaltung.oe_kurzbz, + oe.bezeichnung AS "lv_oe_bezeichnung", + tbl_lehrveranstaltung.studiengang_kz, + stg.bezeichnung AS "lv_stg_bezeichnung", + stg.typ AS "stg_typ", + stg.kurzbz AS "stg_kurzbz" + '); + + $this->LehrveranstaltungModel->addJoin('lehre.tbl_studienplan_lehrveranstaltung stpllv', 'lehrveranstaltung_id'); + $this->LehrveranstaltungModel->addJoin('lehre.tbl_studienplan stpl', 'studienplan_id'); + $this->LehrveranstaltungModel->addJoin('lehre.tbl_studienordnung sto', 'studienordnung_id'); + $this->LehrveranstaltungModel->addJoin('public.tbl_studiengang stg', 'ON stg.studiengang_kz = tbl_lehrveranstaltung.studiengang_kz'); + $this->LehrveranstaltungModel->addJoin('public.tbl_organisationseinheit oe', 'ON oe.oe_kurzbz = tbl_lehrveranstaltung.oe_kurzbz'); + $this->LehrveranstaltungModel->addOrder('stpllv.insertamum', 'DESC'); + $this->LehrveranstaltungModel->addLimit(1); + + return $this->LehrveranstaltungModel->load($lehrveranstaltung_id); + } + + /** + * Send Sancho eMail about ordered Lehrauftraege. + * @param $data_arr + */ + private function _sendMail_toApprove($data_arr) + { + // Loop through 'container' of mail recipients + foreach($data_arr as $data) + { + // Set mail recipients (department assistance/leader) + $to = $data['uid']. '@'. DOMAIN; + $html_table = $this->_renderData_LehrauftraegeToApprove($data); + + // Prepare mail content + $content_data_arr = array( + 'table' => $html_table + ); + + sendSanchoMail( + 'LehrauftragNeueBestellungen', + $content_data_arr, + $to, + 'Bestellung neuer Lehraufträge', + 'sancho_header_min_bw.jpg', + 'sancho_footer_min_bw.jpg' + ); + } + } + + /** + * Cluster the data array by entitled mail receiver. + * Returning array is clustered as follows: + * Array + * [uid] + * Array + * [studiensemester_kurzbz] // studiensemester of lehreinheit + * Array + * [oe_kurzbz] // oe of lehreinheits lehrveranstaltung + * [oe_bezeichnung] + * Array + * [stg_kz] // stg of lehreinheits lehrveranstaltung + * [stg_kurzbz] + * [stg_bezeichnung] + * [amount] // amount of new ordered lehrauftraege of that stg + * @param $data_arr + * @return array + * + */ + private function _clusterData_byReceiver($data_arr) + { + $mail_data_arr = array(); // final array with all data clustered by mail receiver + + // Loop through 'container' of studiensemester + foreach ($data_arr as $data) + { + $data_len = count($data) - 1; + + // Loop through 'container' of organisational units + for ($i = 0; $i < $data_len; $i++) + { + // Get all users entitled by organisational unit + $result = $this->BenutzerrolleModel->getBenutzerByBerechtigung(self::BERECHTIGUNG_LEHRAUFTRAG_ERTEILEN, $data[$i]['oe_kurzbz']); + + if ($berechtigung_arr = getData($result)) + { + // Loop through entitled users + foreach ($berechtigung_arr as $berechtigung) + { + // Search if UID exists inside mail_data_arr + $uid_index = array_search($berechtigung->uid, array_column($mail_data_arr, 'uid')); + + // If UID is new, add UID to final array + if ($uid_index === false) + { + // add UID with corresponding data + $mail_data_arr [] = array( + 'uid' => $berechtigung->uid, + array( + 'studiensemester_kurzbz' => $data['studiensemester_kurzbz'], + $data[$i] + ) + ); + } // Else if UID exists + else + { + // Search if studiensemester exists + $ss_index = array_search($data['studiensemester_kurzbz'], array_column($mail_data_arr, 'studiensemester_kurzbz')); + + // If studiensemester is new, add studiensemester to existing UID + if ($ss_index === false) + { + $mail_data_arr[$uid_index] []= array( + 'studiensemester_kurzbz' => $data['studiensemester_kurzbz'], + $data[$i] + ); + } + // Else if studiensemester exists + else + { + // Add corresponding data to existing studiensemester of UID + $mail_data_arr[$uid_index]['studiensemester_kurbz'][] = $data[$i]; + } + + } + } + } + } + } + + return $mail_data_arr; + } + + /** + * Render the data array for the mail template returing a HTML table. + * @param $data_arr Data to be used in HTML table + * @return string HTML table to be embedded in eMail + */ + private function _renderData_LehrauftraegeToApprove($data_arr) + { + $html = ''; + foreach ($data_arr as $studiensemester_container) + { + if (is_array($studiensemester_container)) // is_array 'trims' the outer associative key [uid] + { + if (isset($studiensemester_container['studiensemester_kurzbz'])) + { + $studiensemester = $studiensemester_container['studiensemester_kurzbz']; + + // Link to LehrauftragErteilen + $url = site_url(self::LEHRAUFTRAG_ERTEILEN_URI).'?studiensemester='. $studiensemester; + } + + // HTML table header + $html .= ' +
+ Studiensemester: '. $studiensemester. ' +

+ + + + + + + + + + ' + ; + + // HTML table body + foreach ($studiensemester_container as $oe_container) + { + if (is_array($oe_container)) // is_array 'trims' the outer associative key [studiensemester_kurzbz] + { + if (isset($oe_container['oe_bezeichnung'])) + { + $oe_bezeichnung = $oe_container['oe_bezeichnung']; + } + + foreach ($oe_container as $stg_data) + { + if (is_array($stg_data)) // is_array 'trims' the outer associative keys [oe_kurzbz] and [oe_bezeichnung] + { + $html .= ' + + + + + + + '; + } + } + } + } + + // HTML table body end and link + $html .= ' + +
LV-OrganisationseinheitStudiengangSTG-KurzbezeichnungAnzahl neu bestellter Lehraufträge
'. $oe_bezeichnung. ''. $stg_data['stg_bezeichnung']. ''. $stg_data['stg_kurzbz']. ''. $stg_data['amount']. '
+
+ '. anchor($url, 'Lehraufträge Übersicht '. $studiensemester). ' +

+ '; + } + } + + return $html; + } + + /** + * Send Sancho eMail about ordered Lehrauftraege. + * @param $data_arr + */ + private function _sendMail_toAccept($data_arr) + { + // Loop through 'container' of mail recipients + foreach($data_arr as $data) + { + // Set mail recipient (lector) + $to = $data['uid']. '@'. DOMAIN; + + // Link to LehrauftragAkzeptieren + $url = CIS_ROOT. 'cis/index.php?menu='. + CIS_ROOT. 'cis/menu.php?content_id=&content='. + CIS_ROOT. index_page(). self::LEHRAUFTRAG_AKZEPTIEREN_URI; + + // Get first name + $first_name = ''; + $this->load->model('person/Benutzer_model', 'BenutzerModel'); + $this->BenutzerModel->addSelect('vorname'); + $this->BenutzerModel->addJoin('public.tbl_person', 'person_id'); + $result = $this->BenutzerModel->loadWhere(array('uid' => $data['uid'])); + + if (hasData($result)) + { + $first_name = $result->retval[0]->vorname; + } + + // Prepare mail content + $content_data_arr = array( + 'vorname' => $first_name, + 'studiensemester' => $data['studiensemester'], + 'anzahl' => $data['amount'], + 'link' => anchor($url, 'Lehraufträge Übersicht') + ); + + sendSanchoMail( + 'LehrauftragNeueErteilte', + $content_data_arr, + $to, + 'Neu erteilte Lehraufträge zum Annehmen bereit' + ); + } + } +} 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 70c054186..3c0808d42 100644 --- a/application/controllers/lehre/lehrauftrag/Lehrauftrag.php +++ b/application/controllers/lehre/lehrauftrag/Lehrauftrag.php @@ -26,7 +26,8 @@ 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:rw'), + 'LehrendeUebersicht' => array('lehre/lehrauftrag_erteilen:r') ) ); @@ -69,6 +70,14 @@ class Lehrauftrag extends Auth_Controller $this->load->view('lehre/lehrauftrag/Dashboard.php'); } + /** + * Display of Lehrauftragsübersicht report + */ + public function LehrendeUebersicht() + { + $this->load->view('lehre/lehrauftrag/LehrendeUebersicht.php'); + } + // ----------------------------------------------------------------------------------------------------------------- // Public methods /** @@ -105,7 +114,7 @@ class Lehrauftrag extends Auth_Controller } elseif (isError($studiensemester)) { - show_error($studiensemester->error); + show_error(getError($studiensemester)); } } @@ -145,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 @@ -159,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; @@ -181,6 +195,10 @@ class Lehrauftrag extends Auth_Controller 'erteilt' => null ); } + else + { + return $this->outputJsonError('Fehler beim Vertragsupdate'); + } } } // else save new contract @@ -206,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, @@ -215,17 +241,15 @@ class Lehrauftrag extends Auth_Controller } } } + else + { + return $this->outputJsonError('Fehler beim Übertragen der Daten.'); + } if (isset($json) && !isEmptyArray($json)) { $this->outputJsonSuccess($json); } - - // Send email to Mitarbeiter - // if(!$this->_sendMail($new_lehrvertrag_data_arr)) // TODO: slows down Bestell-process -> better chronjob? - { - // return error information // TODO: implement after decision regarding communication process - } } // ----------------------------------------------------------------------------------------------------------------- @@ -320,41 +344,4 @@ class Lehrauftrag extends Auth_Controller return $unique_new_lehrvertrag_data_arr; } - - private function validateGetPost($lehrauftrag){ - $lehreinheit_id = (isset($lehrauftrag['lehreinheit_id']) && is_numeric($lehrauftrag['lehreinheit_id'])) ? $lehrauftrag['lehreinheit_id'] : null; - $lehrveranstaltung_id = (isset($lehrauftrag['lehrveranstaltung_id']) && is_numeric($lehrauftrag['lehrveranstaltung_id'])) ? $lehrauftrag['lehrveranstaltung_id'] : null; - $person_id = (isset($lehrauftrag['person_id']) && is_numeric($lehrauftrag['person_id'])) ? $lehrauftrag['person_id'] : null; - $mitarbeiter_uid = (isset($lehrauftrag['mitarbeiter_uid']) && is_string($lehrauftrag['mitarbeiter_uid'])) ? $lehrauftrag['mitarbeiter_uid'] : null; - $vertrag_id = (isset($lehrauftrag['vertrag_id']) && is_numeric($lehrauftrag['vertrag_id'])) ? $lehrauftrag['vertrag_id'] : null; - $projektarbeit_id = (isset($lehrauftrag['projektarbeit_id']) && is_numeric($lehrauftrag['projektarbeit_id'])) ? $lehrauftrag['projektarbeit_id'] : null; - $stunden = (isset($lehrauftrag['stunden']) && is_numeric($lehrauftrag['stunden'])) ? $lehrauftrag['stunden'] : null; - $betrag = (isset($lehrauftrag['betrag']) && is_numeric($lehrauftrag['betrag'])) ? $lehrauftrag['betrag'] : null; - $studiensemester_kurzbz = (isset($lehrauftrag['studiensemester_kurzbz']) && is_string($lehrauftrag['studiensemester_kurzbz'])) ? $lehrauftrag['betrag'] : null; - - return array( - $lehreinheit_id, - $lehrveranstaltung_id, - $person_id, - $mitarbeiter_uid, - $vertrag_id, - $projektarbeit_id, - $stunden, - $betrag, - $studiensemester_kurzbz - ); - -// LIST IS TO BE SET ABOVE!!!: -// list( -// $lehreinheit_id, -// $lehrveranstaltung_id, -// $person_id, -// $mitarbeiter_uid, -// $vertrag_id, -// $projektarbeit_id, -// $stunden, -// $betrag, -// $studiensemester_kurzbz -// ) = $this->_validateGetPost($lehrauftrag); - } } diff --git a/application/controllers/lehre/lehrauftrag/LehrauftragAkzeptieren.php b/application/controllers/lehre/lehrauftrag/LehrauftragAkzeptieren.php index 8ed9aa320..dfb1390d3 100644 --- a/application/controllers/lehre/lehrauftrag/LehrauftragAkzeptieren.php +++ b/application/controllers/lehre/lehrauftrag/LehrauftragAkzeptieren.php @@ -78,7 +78,7 @@ class LehrauftragAkzeptieren extends Auth_Controller } 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 - * - inkludierte_lehre is null: freelancer lector -> has NO inkludierte Lehre - * - inkludierte_lehre -1: fix employed lector -> all inclusive Lehre - * - inkludierte_lehre > 0: fix employed lector -> given value is inclusive 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); - + if (hasData($result)) { - $this->outputJsonSuccess(!is_null($result->retval[0]->inkludierte_lehre)); + $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..b70b6e2f9 100644 --- a/application/controllers/lehre/lehrauftrag/LehrauftragErteilen.php +++ b/application/controllers/lehre/lehrauftrag/LehrauftragErteilen.php @@ -97,7 +97,7 @@ class LehrauftragErteilen extends Auth_Controller } 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/Navigation.php b/application/controllers/system/Navigation.php index 1abf7d9a8..190f84acd 100644 --- a/application/controllers/system/Navigation.php +++ b/application/controllers/system/Navigation.php @@ -7,7 +7,7 @@ if (! defined('BASEPATH')) exit('No direct script access allowed'); * Provides data to the ajax get calls about the filter * This controller works with JSON calls on the HTTP GET or POST and the output is always JSON */ -class Navigation extends Auth_Controller +class Navigation extends FHC_Controller { const NAVIGATION_PAGE_PARAM = 'navigation_page'; // Navigation page parameter name @@ -16,12 +16,9 @@ class Navigation extends Auth_Controller */ public function __construct() { - parent::__construct( - array( - 'menu' => 'basis/vilesci:r', - 'header' => 'basis/vilesci:r' - ) - ); + parent::__construct(); + + $this->load->library('AuthLib'); $this->_loadNavigationLib(); // Loads the NavigationLib with parameters } 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/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 bb2c6ce9b..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' => $_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(getData($hta)); + $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 @@ -574,10 +575,11 @@ class AuthLib // Needed information $this->_ci->PersonModel->addSelect('person_id, vorname, nachname, uid'); - // Retrieves the uid if it is possible - $this->_ci->PersonModel->addJoin('public.tbl_benutzer', 'person_id', 'LEFT'); - - $queryParamsArray['tbl_person.aktiv'] = true; // only active users! + // Retrieves the uid if it is possible for active users + $this->_ci->PersonModel->addJoin( + '(SELECT uid, person_id FROM public.tbl_benutzer WHERE aktiv = TRUE) tb', 'person_id', + 'LEFT' + ); // Execute query with where clause $personResult = $this->_ci->PersonModel->loadWhere($queryParamsArray); 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..c2e57eed2 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'; @@ -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..139e5d6cb 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'; @@ -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 b9247fc4e..f9ad7d20d 100644 --- a/application/libraries/UDFLib.php +++ b/application/libraries/UDFLib.php @@ -705,7 +705,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/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 7e76ef494..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.'); } } @@ -130,5 +133,61 @@ class Vertragvertragsstatus_model extends DB_Model ); } - + /** + * Get all contracts, where the status had been set to 'bestellt' on given date + * @param string $string_date e.g. '01.11.2019' or special Date/Time inputs like 'YESTERDAY', 'TODAY', 'NOW' + * @param bool $further_processed If true, ALL ordered contracts of that day are retrieved, even if they were + * were ALSO approved/accepted/cancelled (further processed) on that same day. + * @return array + */ + public function getOrdered_fromDate($string_date = 'TODAY', $further_processed = false) + { + $condition = ' + vertragsstatus_kurzbz = \'bestellt\' AND + (datum)::date = date \''. $string_date .'\' + '; + + if (!$further_processed) + { + $condition .= ' + AND + vertrag_id NOT IN ( + SELECT vertrag_id + FROM lehre.tbl_vertrag_vertragsstatus + WHERE vertragsstatus_kurzbz IN (\'erteilt\', \'akzeptiert\', \'storno\') + ) + '; + } + + return $this->loadWhere($condition); + } + + /** + * Get all contracts, where the status had been set to 'erteilt' on given date + * @param string $string_date e.g. '01.11.2019' or special Date/Time inputs like 'YESTERDAY', 'TODAY', 'NOW' + * @param bool $further_processed If true, ALL contracts approved on that day are retrieved, even if they were + * were ALSO accepted/cancelled (further processed) on that same day. + * @return array + */ + public function getApproved_fromDate($string_date = 'TODAY', $further_processed = false) + { + $condition = ' + vertragsstatus_kurzbz = \'erteilt\' AND + (datum)::date = date \''. $string_date .'\' + '; + + if (!$further_processed) + { + $condition .= ' + AND + vertrag_id NOT IN ( + SELECT vertrag_id + FROM lehre.tbl_vertrag_vertragsstatus + WHERE vertragsstatus_kurzbz IN (\'akzeptiert\', \'storno\') + ) + '; + } + + return $this->loadWhere($condition); + } } 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/Benutzerfunktion_model.php b/application/models/person/Benutzerfunktion_model.php index 30abfdf51..ceb427687 100644 --- a/application/models/person/Benutzerfunktion_model.php +++ b/application/models/person/Benutzerfunktion_model.php @@ -48,7 +48,7 @@ class Benutzerfunktion_model extends DB_Model if (is_string($funktion_kurzbz)) { - $query .= " AND funktion_kurzbz = ".$funktion_kurzbz.")"; + $query .= " AND funktion_kurzbz = '".$funktion_kurzbz."'"; } elseif (is_array($funktion_kurzbz) && count($funktion_kurzbz) > 0) { diff --git a/application/models/person/Person_model.php b/application/models/person/Person_model.php index 1291427b6..9c1146632 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; diff --git a/application/models/system/Benutzerrolle_model.php b/application/models/system/Benutzerrolle_model.php index 5ce96a622..765ad9bd4 100644 --- a/application/models/system/Benutzerrolle_model.php +++ b/application/models/system/Benutzerrolle_model.php @@ -11,7 +11,7 @@ class Benutzerrolle_model extends DB_Model $this->dbTable = 'system.tbl_benutzerrolle'; $this->pk = 'benutzerberechtigung_id'; } - + /** * Checks if the given user is an admin */ @@ -19,9 +19,9 @@ class Benutzerrolle_model extends DB_Model { // Join with the table tbl_benutzer $this->addJoin('public.tbl_benutzer', 'uid'); - + $result = $this->loadWhere(array('person_id' => $person_id, 'rolle_kurzbz' => 'admin')); - + if (!isError($result)) { if (hasData($result)) @@ -33,25 +33,35 @@ class Benutzerrolle_model extends DB_Model $result = success(false); } } - + return $result; } - /** - * Get user who are authorized with berechtigung and, if given, authorized for the specific organisational unit. - * @param $berechtigung_kurzbz - * @param null $oe_kurzbz - * @return array - */ - public function getBenutzerByBerechtigung($berechtigung_kurzbz, $oe_kurzbz = null){ + /** + * Get user who are authorized with berechtigung and, if given, authorized for the specific organisational unit. + * @param $berechtigung_kurzbz + * @param null $oe_kurzbz + * @return array + */ + public function getBenutzerByBerechtigung($berechtigung_kurzbz, $oe_kurzbz = null) + { + $params = array(); + $query = ' + SELECT + * + FROM + system.vw_berechtigung_nichtrekursiv + WHERE + berechtigung_kurzbz = ?'; - $condition = array('berechtigung_kurzbz' => $berechtigung_kurzbz); + $params[] = $berechtigung_kurzbz; - if (is_string($oe_kurzbz)) - { - $condition['oe_kurzbz'] = $oe_kurzbz; - } + if (!is_null($oe_kurzbz)) + { + $query .= ' AND oe_kurzbz = ?'; + $params[] = $oe_kurzbz; + } - return $this->loadWhere($condition); - } -} \ No newline at end of file + return $this->execQuery($query, $params); + } +} 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/Variablenname_model.php b/application/models/system/Variablenname_model.php index ada1d330c..7b2a2cf88 100644 --- a/application/models/system/Variablenname_model.php +++ b/application/models/system/Variablenname_model.php @@ -27,7 +27,7 @@ class Variablenname_model extends DB_Model /** * Gets defaults for user variables. * If no default value present in table, SQL can be executed for retrieving the value. - * @param null $names optionally get only defaults for certain variables + * @param $names optionally get only defaults for certain variables * @return array */ public function getDefaults($names = null) @@ -36,13 +36,13 @@ class Variablenname_model extends DB_Model $qry = "SELECT name, defaultwert FROM public.tbl_variablenname"; - if (isset($names) && is_array($names)) + if (!isEmptyArray($names)) { - $qry .= " WHERE name IN ('".implode(',', $names)."')"; + $qry .= " WHERE name IN ?"; } $qry .= ";"; - $defaultsres = $this->execQuery($qry); + $defaultsres = $this->execQuery($qry, array('name' => $names)); if (hasData($defaultsres)) { diff --git a/application/views/lehre/lehrauftrag/LehrendeUebersicht.php b/application/views/lehre/lehrauftrag/LehrendeUebersicht.php new file mode 100644 index 000000000..1ad295392 --- /dev/null +++ b/application/views/lehre/lehrauftrag/LehrendeUebersicht.php @@ -0,0 +1,39 @@ +load->view( + 'templates/FHC-Header', + array( + 'title' => 'Lehrauftrag bestellen', + 'jquery' => true, + 'bootstrap' => true, + 'fontawesome' => true, + 'sbadmintemplate' => true, + 'ajaxlib' => true, + 'navigationwidget' => true, + ) +); +?> + + +widgetlib->widget('NavigationWidget'); ?> +
+
+ +
+
+ +
+
+ +
+ +
+ +
+
+ + +load->view('templates/FHC-Footer'); ?> diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php index 951dbfadf..14ebacecb 100644 --- a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php @@ -14,7 +14,6 @@ $this->load->view( 'ajaxlib' => true, 'dialoglib' => true, 'tablewidget' => true, - 'navigationwidget' => true, 'phrases' => array( 'global' => array('lehrauftraegeAnnehmen'), ), @@ -48,23 +47,64 @@ $this->load->view(

Wie nehme ich Lehraufträge an?

-

Sobald Ihnen ein oder mehrere Lehraufträge erteilt wurden, können Sie diese annehmen.

  1. Klicken Sie unten auf das Status-Icon 'Nur erteilte anzeigen' oder 'Alle anzeigen'
  2. -
  3. Wählen Sie einzelne Lehraufträge mit Klick auf die Zeilen oder alle über den Button 'Alle auswählen'.
  4. +
  5. Wählen Sie die Lehraufträge, die Sie annehmen möchten, selbst oder alle über den Button 'Alle auswählen'.
  6. Geben Sie Ihr CIS-Passwort ein und klicken auf Lehrauftrag annehmen.
-


+

Warum kann ich manche Lehraufträge nicht auswählen?

-

Nur Lehraufträge mit dem Status 'erteilt' können gewählt werden.
Angenommene Lehraufträge oder Lehraufträge in Bearbeitung werden nur zu Ihrer Information angezeigt. -

+
+ +

Filter

+
+
+ + + + + + + + + + + + + +
Alle
Alle Lehraufträge mit jedem Status
Bestellt
Nur bestellte UND bestellte Lehraufträge, die in Bearbeitung sind
Erteilt
Nur erteilte UND geänderte Lehraufträge, die in Bearbeitung sind
Angenommen
Nur von Ihnen angenommene Lehraufträge
+
+
+
+ +

Auswahl

+
+ +
+
+ +

Ansicht

+
+ Spaltenbreite verändern +

+ Um die Spaltenbreite zu verändern, fährt man im Spaltenkopf langsam mit dem Mauszeiger auf + den rechten Rand der entprechenden Spalte.
+ Sobald sich der Mauszeiger in einen Doppelpfeil verwandelt, wird die Maustaste geklickt und + mit gedrückter Maustaste die Spalte nach rechts erweitert oder nach links verkleinert. +

+
+
@@ -92,7 +132,7 @@ $this->load->view( - +
load->view('lehre/lehrauftrag/acceptLehrauftragData.php'); ?> @@ -105,11 +145,24 @@ $this->load->view(
@@ -121,7 +174,28 @@ $this->load->view(
- +
+
+ + +
+
+

+ p->t('global', 'stornierteLehrauftraege')); ?>: + + + + + +

+
+
+ load->view('lehre/lehrauftrag/cancelledLehrauftragData.php'); ?> +
+
+
+
+

diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php index 0c6bc6ad6..704ce5861 100644 --- a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php @@ -15,11 +15,11 @@ SELECT studiensemester_kurzbz, studiengang_kz, stg_typ_kurzbz, + semester, orgform_kurzbz, person_id, typ, auftrag, - semester, lv_oe_kurzbz, gruppe, stunden, @@ -296,7 +296,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', @@ -305,11 +304,11 @@ $filterWidgetArray = array( 'Studiensemester', 'Studiengang-KZ', 'Studiengang', + 'Semester', 'OrgForm', 'Person-ID', 'Typ', - 'Auftrag', - 'Semester', + 'LV- / Projektbezeichnung', 'Organisationseinheit', 'Gruppe', 'Stunden', @@ -330,6 +329,7 @@ $filterWidgetArray = array( layout: "fitColumns", // fit columns to width of table responsiveLayout: "hide", // hide columns that dont fit on the table movableColumns: true, // allows changing column + placeholder: func_placeholder(), headerFilterPlaceholder: " ", index: "row_index", // assign specific column as unique id (important for row indexing) selectable: true, // allow row selection @@ -366,17 +366,17 @@ $filterWidgetArray = array( studiensemester_kurzbz: {visible: false}, studiengang_kz: {visible: false}, stg_typ_kurzbz: {headerFilter:"input", width: "5%"}, + semester: {headerFilter:"input"}, orgform_kurzbz: {headerFilter:"input"}, person_id: {visible: false}, typ: {headerFilter:"input", width: "7%"}, - auftrag: {headerFilter:"input", width: "23%"}, - semester: {headerFilter:"input"}, - lv_oe_kurzbz: {headerFilter:"input", width: "12%"}, + auftrag: {headerFilter:"input", width: "15%"}, + lv_oe_kurzbz: {headerFilter:"input", width: "8%"}, gruppe: {headerFilter:"input", width: "5%"}, stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1}, headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator, bottomCalc:"sum", bottomCalcParams:{precision:1}, width: "5%"}, - betrag: {align:"right", formatter: form_formatNulltoStringNumber, + betrag: {align:"right", width: "6%", formatter: form_formatNulltoStringNumber, headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator, bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}, width: "8%"}, @@ -384,9 +384,9 @@ $filterWidgetArray = array( vertrag_stunden: {visible: false}, vertrag_betrag: {visible: false}, mitarbeiter_uid: {visible: false}, - bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip}, - erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip}, - akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip}, + bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip, width: "8%"}, + erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip, width: "8%"}, + akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip, width: "8%"}, bestellt_von: {visible: false}, erteilt_von: {visible: false}, akzeptiert_von: {visible: false} diff --git a/application/views/lehre/lehrauftrag/approveLehrauftrag.php b/application/views/lehre/lehrauftrag/approveLehrauftrag.php index 61cdd124d..f36ae7dc7 100644 --- a/application/views/lehre/lehrauftrag/approveLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/approveLehrauftrag.php @@ -116,7 +116,7 @@ $this->load->view( Bestellt
Nur bestellte UND geänderte bestellte Lehraufträge Erteilt
Nur erteilte UND geänderte erteilte Lehraufträge Angenommen
Nur vom Lehrenden angenommene Lehraufträge - Geändert
Nur geänderte Lehraufträge, die den Status 'bestellt' oder 'erteilt' haben + Geändert
Nur Lehraufträge, die geändert wurden, nachdem sie bereits bestellt oder erteilt worden sind Dummies
Nur Lehraufträge, die mit einem Dummylektor angelegt sind @@ -133,6 +133,18 @@ $this->load->view(
+

Ansicht

+
+ Spaltenbreite verändern +

+ Um die Spaltenbreite zu verändern, fährt man im Spaltenkopf langsam mit dem Mauszeiger auf + den rechten Rand der entprechenden Spalte.
+ Sobald sich der Mauszeiger in einen Doppelpfeil verwandelt, wird die Maustaste geklickt und + mit gedrückter Maustaste die Spalte nach rechts erweitert oder nach links verkleinert. +

+
+
+ diff --git a/application/views/lehre/lehrauftrag/approveLehrauftragData.php b/application/views/lehre/lehrauftrag/approveLehrauftragData.php index 90090a566..4db115626 100644 --- a/application/views/lehre/lehrauftrag/approveLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/approveLehrauftragData.php @@ -16,11 +16,11 @@ SELECT studiensemester_kurzbz, studiengang_kz, stg_typ_kurzbz, + semester, orgform_kurzbz, person_id, typ, auftrag, - semester, lv_oe_kurzbz, gruppe, lektor, @@ -147,7 +147,7 @@ FROM WHEN oe.organisationseinheittyp_kurzbz = \'Department\' THEN (\'DEP \' || oe.bezeichnung) ELSE (oe.organisationseinheittyp_kurzbz || \' \' || oe.bezeichnung) END AS "lv_oe_kurzbz", - (person.vorname || \' \' || person.nachname) AS "lektor", + (person.nachname || \' \' || person.vorname) AS "lektor", TRUNC(lema.semesterstunden, 1) AS "stunden", TRUNC((lema.semesterstunden * lema.stundensatz), 2) AS "betrag", vertrag_id, @@ -267,7 +267,7 @@ FROM ELSE (oe.organisationseinheittyp_kurzbz || \' \' || oe.bezeichnung) END AS "lv_oe_kurzbz", - (vorname || \' \' || nachname) AS "lektor", + (nachname || \' \' || vorname) AS "lektor", TRUNC(pb.stunden, 1) AS "stunden", TRUNC((pb.stunden * pb.stundensatz), 2) AS "betrag", vertrag_id, @@ -304,7 +304,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', @@ -315,11 +314,11 @@ $filterWidgetArray = array( 'Studiensemester', 'Studiengang-KZ', 'Studiengang', + 'Semester', 'OrgForm', 'Person-ID', 'Typ', - 'Auftrag', - 'Semester', + 'LV- / Projektbezeichnung', 'Organisationseinheit', 'Gruppe', 'Lektor', @@ -341,6 +340,7 @@ $filterWidgetArray = array( layout: "fitColumns", // fit columns to width of table responsiveLayout: "hide", // hide columns that dont fit on the table movableColumns: true, // allows changing column + placeholder: func_placeholder(), headerFilterPlaceholder: " ", groupBy:"lehrveranstaltung_id", groupToggleElement:"header", //toggle group on click anywhere in the group header @@ -385,28 +385,28 @@ $filterWidgetArray = array( projektarbeit_id: {visible: false}, studiensemester_kurzbz: {headerFilter:"input"}, studiengang_kz: {visible: false}, - stg_typ_kurzbz: {visible: false}, + stg_typ_kurzbz: {headerFilter:"input", width: "5%"}, + semester: {headerFilter:"input"}, orgform_kurzbz: {headerFilter:"input"}, person_id: {visible: false}, typ: {headerFilter:"input"}, auftrag: {headerFilter:"input", width:"20%"}, - semester: {headerFilter:"input"}, lv_oe_kurzbz: {headerFilter:"input"}, gruppe: {headerFilter:"input"}, - lektor: {headerFilter:"input"}, + lektor: {headerFilter:"input", widthGrow: 3}, stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1}, headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator, bottomCalc:"sum", bottomCalcParams:{precision:1}}, - betrag: {align:"right", formatter: form_formatNulltoStringNumber, + betrag: {align:"right", width: "8%", formatter: form_formatNulltoStringNumber, headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator, bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}}, vertrag_id: {visible: false}, vertrag_stunden: {visible: false}, vertrag_betrag: {visible: false}, mitarbeiter_uid: {visible: false}, - bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip}, - erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip}, - akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip}, + bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip, width: "8%"}, + erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip, width: "8%"}, + akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip, width: "8%"}, bestellt_von: {visible: false}, erteilt_von: {visible: false}, akzeptiert_von: {visible: false}, diff --git a/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php b/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php new file mode 100644 index 000000000..d5af1b081 --- /dev/null +++ b/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php @@ -0,0 +1,104 @@ + $query, + 'tableUniqueId' => 'cancelledLehrauftrag', + 'requiredPermissions' => 'lehre/lehrauftrag_akzeptieren', + 'datasetRepresentation' => 'tabulator', + 'columnsAliases' => array( // TODO: use phrasen + 'Status', + 'Studiensemester', + 'Typ', + 'LV- / Projektbezeichnung', + 'Stunden', + 'Betrag', + 'Storniert am' + ), + 'datasetRepOptions' => '{ + layout: "fitColumns", // fit columns to width of table + responsiveLayout: "hide", // hide columns that dont fit on the table + movableColumns: true, // allows changing column + placeholder: func_placeholder(), + rowFormatter:function(row){ + func_rowFormatter(row); + }, + selectableCheck: function(row){ + return func_selectableCheck(row); + }, + renderComplete:function(){ + func_renderComplete(this); + }, + tableBuilt: function(){ + func_tableBuilt(this); + } + }', // tabulator properties + 'datasetRepFieldsDefs' => '{ + vertrag_id: {visible: false}, + vertragsstunden_studiensemester_kurzbz: {visible: false}, + vertragstyp_kurzbz: {widthGrow: 2}, + bezeichnung: {widthGrow: 2}, + vertragsstunden: { + align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1}, + bottomCalc:"sum", bottomCalcParams:{precision:1} + }, + betrag: { + align:"right", formatter: form_formatNulltoStringNumber, + bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"} + }, + storniert: {align:"center", mutator: mut_formatStringDate, tooltip: storniert_tooltip}, + storniert_von: {visible: false}, + letzterStatus_vorStorniert: {visible: false} + }', // col properties +); + +echo $this->widgetlib->widget('TableWidget', $tableWidgetArray); + +?> diff --git a/application/views/lehre/lehrauftrag/orderLehrauftrag.php b/application/views/lehre/lehrauftrag/orderLehrauftrag.php index abcb3dbc4..b04aa7985 100644 --- a/application/views/lehre/lehrauftrag/orderLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/orderLehrauftrag.php @@ -86,6 +86,7 @@ $this->load->view(

Geänderte Lehraufträge

Im FAS können Änderungen an Stunden/Stundensatz eines Lehrauftrags durchgeführt werden, solange dieser nicht vom Lehrenden angenommen wurde.
+ Diese müssen dann erneut bestellt werden.

Wenn Änderungen an bereits bestellten oder erteilten Lehraufträgen vorgenommen wurden, werden diese in einem tooltip angezeigt.
Fahren Sie dazu mit der Maus über dem Status-Icon am Beginn der Zeile.
@@ -117,7 +118,7 @@ $this->load->view( Bestellt
Nur bestellte UND geänderte bestellte Lehraufträge Erteilt
Nur erteilte UND geänderte erteilte Lehraufträge Angenommen
Nur vom Lehrenden angenommene Lehraufträge - Geändert
Nur geänderte Lehraufträge, die den Status 'bestellt' oder 'erteilt' haben + Geändert
Nur Lehraufträge, die geändert wurden, nachdem sie bereits bestellt oder erteilt worden sind Dummies
Nur Lehraufträge, die mit einem Dummylektor angelegt sind @@ -134,6 +135,18 @@ $this->load->view(
+

Ansicht

+
+ Spaltenbreite verändern +

+ Um die Spaltenbreite zu verändern, fährt man im Spaltenkopf langsam mit dem Mauszeiger auf + den rechten Rand der entprechenden Spalte.
+ Sobald sich der Mauszeiger in einen Doppelpfeil verwandelt, wird die Maustaste geklickt und + mit gedrückter Maustaste die Spalte nach rechts erweitert oder nach links verkleinert. +

+
+
+ diff --git a/application/views/lehre/lehrauftrag/orderLehrauftragData.php b/application/views/lehre/lehrauftrag/orderLehrauftragData.php index a5326c0b8..66468e541 100644 --- a/application/views/lehre/lehrauftrag/orderLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/orderLehrauftragData.php @@ -16,11 +16,41 @@ SELECT studiensemester_kurzbz, studiengang_kz, stg_typ_kurzbz, + semester, + /* get valid STPL(s), to which the lehrveranstaltung is assigned to (can be more) */ + /* therefore join over lv, studiensemester and semester */ + ( + SELECT + string_agg(bezeichnung, \', \') + FROM ( + SELECT stpl.bezeichnung + FROM lehre.tbl_studienplan stpl + JOIN lehre.tbl_studienplan_semester stplsem USING (studienplan_id) + JOIN lehre.tbl_studienplan_lehrveranstaltung stpllv USING (studienplan_id) + JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id) + JOIN lehre.tbl_lehreinheit le USING (lehrveranstaltung_id) + WHERE + /* join over lv of the le */ + le.lehreinheit_id = auftraege.lehreinheit_id + AND stpl.aktiv + /* then restrict on stpl of les studiensemester */ + AND stplsem.studiensemester_kurzbz = le.studiensemester_kurzbz + /* then restrict on stpl of lvs semester*/ + AND stplsem.semester = stpllv.semester + /* then restrict on most recent inserted studienplan of the lv */ + AND studienplan_id = ( + SELECT stpllv.studienplan_id + FROM lehre.tbl_studienplan_lehrveranstaltung + WHERE lehrveranstaltung_id = lv.lehrveranstaltung_id + ORDER BY insertamum DESC + LIMIT 1 + ) + ) AS tmp_stpl + ) AS "studienplan_bezeichnung", orgform_kurzbz, person_id, typ, auftrag, - semester, lv_oe_kurzbz, gruppe, lektor, @@ -148,7 +178,7 @@ FROM WHEN oe.organisationseinheittyp_kurzbz = \'Department\' THEN (\'DEP \' || oe.bezeichnung) ELSE (oe.organisationseinheittyp_kurzbz || \' \' || oe.bezeichnung) END AS "lv_oe_kurzbz", - (person.vorname || \' \' || person.nachname) AS "lektor", + (person.nachname || \' \' || person.vorname) AS "lektor", TRUNC(lema.semesterstunden, 1) AS "stunden", lema.stundensatz, TRUNC((lema.semesterstunden * lema.stundensatz), 2) AS "betrag", @@ -269,7 +299,7 @@ FROM ELSE (oe.organisationseinheittyp_kurzbz || \' \' || oe.bezeichnung) END AS "lv_oe_kurzbz", - (vorname || \' \' || nachname) AS "lektor", + (nachname || \' \' || vorname) AS "lektor", TRUNC(pb.stunden, 1) AS "stunden", pb.stundensatz, TRUNC((pb.stunden * pb.stundensatz), 2) AS "betrag", @@ -306,7 +336,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', @@ -317,11 +346,12 @@ $filterWidgetArray = array( 'Studiensemester', 'Studiengang-KZ', 'Studiengang', + 'Semester', + 'Studienplan', 'OrgForm', 'Person-ID', 'Typ', - 'Auftrag', - 'Semester', + 'LV- / Projektbezeichnung', 'Organisationseinheit', 'Gruppe', 'Lektor', @@ -344,6 +374,7 @@ $filterWidgetArray = array( layout:"fitColumns", // fit columns to width of table responsiveLayout:"hide", // hide columns that dont fit on the table movableColumns: true, // allows changing column + placeholder: func_placeholder(), headerFilterPlaceholder: " ", groupBy:"lehrveranstaltung_id", groupToggleElement:"header", //toggle group on click anywhere in the group header @@ -389,20 +420,21 @@ $filterWidgetArray = array( projektarbeit_id: {visible: false}, studiensemester_kurzbz: {headerFilter:"input"}, studiengang_kz: {visible: false}, - stg_typ_kurzbz: {visible: false}, + stg_typ_kurzbz: {headerFilter:"input", width: "5%"}, + semester: {headerFilter:"input"}, + studienplan_bezeichnung: {headerFilter:"input", width: "7%"}, orgform_kurzbz: {headerFilter:"input"}, person_id: {visible: false}, typ: {headerFilter:"input"}, - auftrag: {headerFilter:"input", width:"20%"}, - semester: {headerFilter:"input"}, + auftrag: {headerFilter:"input", width:"15%"}, lv_oe_kurzbz: {headerFilter:"input"}, gruppe: {headerFilter:"input"}, - lektor: {headerFilter:"input"}, + lektor: {headerFilter:"input", widthGrow: 3}, stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1}, headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator, bottomCalc:"sum", bottomCalcParams:{precision:1}}, stundensatz: {visible: false}, - betrag: {align:"right", formatter: form_formatNulltoStringNumber, + betrag: {align:"right", width: "8%", formatter: form_formatNulltoStringNumber, headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator, bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}}, @@ -410,12 +442,12 @@ $filterWidgetArray = array( vertrag_stunden: {visible: false}, vertrag_betrag: {visible: false}, mitarbeiter_uid: {visible: false}, - bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip}, - erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip}, - akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip}, + bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip, width: "8%"}, + erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip, width: "8%"}, + akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip, width: "8%"}, bestellt_von: {visible: false}, erteilt_von: {visible: false}, - akzeptiert_von: {visible: false}, + akzeptiert_von: {visible: false} }', // col properties ); 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/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/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/pruefung/pruefung.js.php b/cis/private/lehre/pruefung/pruefung.js.php index 9ef84e889..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', @@ -758,9 +758,10 @@ function convertDateTime(string, type) * Lädt die Anmeldungen zu einer Prüfung * @param {type} pruefungstermin_id ID des Prüfungstermins * @param {type} lehrveranstaltung_id ID der Lehrveranstaltung + * @param saveReihungAfterShow speichert Reihung neu wenn true * @returns {undefined} */ -function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id) +function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id, saveReihungAfterShow = false) { $("#kommentar").empty(); $("#kommentarSpeichernButton").empty(); @@ -778,6 +779,9 @@ function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id) writeAnmeldungen(data); $("#sortable").sortable(); $("#sortable").disableSelection(); + + if(saveReihungAfterShow) + saveReihung(pruefungstermin_id, lehrveranstaltung_id); } }); } @@ -806,7 +810,8 @@ function writeAnmeldungen(data) { case 'angemeldet': liste += "
  • "+vorname+" "+nachname+""; - liste += "
    "+count+"
    ' onclick='anmeldungBestaetigen(\""+d.pruefungsanmeldung_id+"\", \""+terminId+"\", \""+lehrveranstaltung_id+"\");'>
    "; + liste += "
    "+count+"
    ' onclick='anmeldungBestaetigen(\""+d.pruefungsanmeldung_id+"\", \""+terminId+"\", \""+lehrveranstaltung_id+"\");'>"; + liste += "
    "; if(d.wuensche !== null) { liste += "
    "+d.wuensche+"'>
    "; @@ -887,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); + } + }); + } } /** @@ -945,6 +953,43 @@ function anmeldungBestaetigen(pruefungsanmeldung_id, termin_id, lehrveranstaltun }); } +/** + * Löscht eine Prüfungsanmeldung + * @param {type} pruefungsanmeldung_id ID der Prüfungsanmeldung + * @param {type} termin_id ID des Prüfungstermines + * @param {type} lehrveranstaltung_id ID der Lehrveranstaltung + * @returns {undefined} + */ +function anmeldungLoeschen(pruefungsanmeldung_id, termin_id, lehrveranstaltung_id) +{ + if (!confirm("Möchten Sie die Anmeldung wirklich löschen?")) + return undefined; + + $.ajax({ + dataType: 'json', + url: "./pruefungsanmeldung.json.php", + type: "POST", + data: { + method: "anmeldungLoeschen", + pruefungsanmeldung_id: pruefungsanmeldung_id + }, + error: loadError, + success: function(data){ + if(data.error === 'false' && data.result === true) + { + if(termin_id !== 'undefined' && lehrveranstaltung_id !== 'undefined') + { + showAnmeldungen(termin_id, lehrveranstaltung_id, true); + } + } + else + { + messageBox("message", data.errormsg, "red", "highlight", 1000); + } + } + }); +} + /** * Ändert den Status aller Anmeldungen eines Termins auf "bestätigt" * @param {type} termin_id ID des Prüfungstermines @@ -1174,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 9c30427c3..ce7479cf0 100644 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -97,6 +97,9 @@ switch($method) case 'anmeldungBestaetigen': $data = anmeldungBestaetigen($uid); break; + case 'anmeldungLoeschen': + $data = anmeldungLoeschen(); + break; case 'alleBestaetigen': $data = alleBestaetigen($uid); break; @@ -629,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 { @@ -659,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 @@ -1066,6 +1066,30 @@ function anmeldungBestaetigen($uid) return $data; } +/** + * Löscht eine Prüfungsanmeldung + * @return Array + */ +function anmeldungLoeschen() +{ + $pruefungsanmeldung_id = $_REQUEST["pruefungsanmeldung_id"]; + $anmeldung = new pruefungsanmeldung(); + + if($anmeldung->delete($pruefungsanmeldung_id)) + { + $data['result']=true; + $data['error']='false'; + $data['errormsg']=''; + } + else + { + $data['error']='true'; + $data['errormsg']=$anmeldung->errormsg; + } + + return $data; +} + /** * Lädt alle Studiengänge * @return Array 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/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/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/composer.json b/composer.json index 636c6da42..2dfe2c38b 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,70 @@ "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.*", "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..9fc4fab12 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": "59fc693321fbae0364ec7174a0d0dcb1", + "content-hash": "b377fd50d87a28fdedf6214e4ffb6a6d", "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,7 @@ } ], "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": "easyrdf/easyrdf", @@ -687,7 +687,7 @@ "rdfa", "sparql" ], - "time": "2015-02-27T09:45:49+00:00" + "time": "2015-02-27 09:45:49" }, { "name": "fgelinas/timepicker", @@ -697,26 +697,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 +719,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 +747,7 @@ "faker", "fixtures" ], - "time": "2018-07-12T10:23:15+00:00" + "time": "2019-12-12 13:22:17" }, { "name": "joeldbirch/superfish", @@ -895,58 +889,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 +923,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 +985,7 @@ "keywords": [ "markdown" ], - "time": "2015-03-01T12:03:08+00:00" + "time": "2015-03-01 12:03:08" }, { "name": "ml/iri", @@ -1083,7 +1032,7 @@ "uri", "url" ], - "time": "2014-01-21T13:43:39+00:00" + "time": "2014-01-21 13:43:39" }, { "name": "ml/json-ld", @@ -1132,7 +1081,7 @@ "JSON-LD", "jsonld" ], - "time": "2018-11-18T20:26:18+00:00" + "time": "2018-11-18 20:26:18" }, { "name": "moment/momentjs", @@ -1147,16 +1096,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 +1126,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 +1143,7 @@ "sorting", "table" ], - "time": "2018-11-20T21:54:28+00:00" + "time": "2019-12-01 13:49:52" }, { "name": "nategood/httpful", @@ -1244,20 +1193,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 +1246,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 +1272,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 +1315,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 +1360,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 +1384,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 +1407,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11-dev" + "dev-master": "1.13-dev" } }, "autoload": { @@ -2019,13 +1423,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 +1440,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 +1455,16 @@ }, { "name": "tinymce/tinymce", - "version": "4.9.5", + "version": "4.9.7", "source": { "type": "git", "url": "https://github.com/tinymce/tinymce-dist.git", - "reference": "5c6d8f4a6dda33b379068bb12678a2b2b2271fb4" + "reference": "e14935a4ba07beb716ccdb192ee9823dbb4a73d5" }, "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/e14935a4ba07beb716ccdb192ee9823dbb4a73d5", + "reference": "e14935a4ba07beb716ccdb192ee9823dbb4a73d5", "shasum": "" }, "type": "component", @@ -2202,7 +1497,7 @@ "tinymce", "wysiwyg" ], - "time": "2019-03-20T13:56:58+00:00" + "time": "2019-12-19 06:05:16" }, { "name": "tomazdragar/SimpleCropper", @@ -2263,30 +1558,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 +1604,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 +1624,7 @@ "keywords": [ "templating" ], - "time": "2019-05-14T11:59:08+00:00" + "time": "2019-11-11 16:49:32" }, { "name": "zetacomponents/base", @@ -2393,7 +1688,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 +1765,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 +1816,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 +1882,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 +1949,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 +2009,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/content/lvplanung/lehrveranstaltungDBDML.php b/content/lvplanung/lehrveranstaltungDBDML.php index 2b3090221..d506f0459 100644 --- a/content/lvplanung/lehrveranstaltungDBDML.php +++ b/content/lvplanung/lehrveranstaltungDBDML.php @@ -693,8 +693,11 @@ if(!$error) //Lehreinheitmitarbeiterzuteilung loeschen if(isset($_POST['lehreinheit_id']) && is_numeric($_POST['lehreinheit_id']) && isset($_POST['mitarbeiter_uid'])) { - // Wenn der Mitarbeiter schon einen Vertrag hat, wird das Loeschen verhindert - if (isset($_POST['vertrag_id']) && is_numeric($_POST['vertrag_id'])) + // Wenn der Mitarbeiter schon einen Vertrag hat UND + // der config Eintrag zum Anzeigen der Vertragsdetails true ist, + // wird das Loeschen verhindert + if (isset($_POST['vertrag_id']) && is_numeric($_POST['vertrag_id']) && + (defined('FAS_LV_LEKTORINNENZUTEILUNG_VERTRAGSDETAILS_ANZEIGEN') && FAS_LV_LEKTORINNENZUTEILUNG_VERTRAGSDETAILS_ANZEIGEN)) { $return = false; $errormsg = 'Löschen nur nach Stornierung des Vertrags möglich.'; diff --git a/content/lvplanung/lehrveranstaltungnotenoverlay.xul.php b/content/lvplanung/lehrveranstaltungnotenoverlay.xul.php index d9cdaa49b..ebb525cbc 100644 --- a/content/lvplanung/lehrveranstaltungnotenoverlay.xul.php +++ b/content/lvplanung/lehrveranstaltungnotenoverlay.xul.php @@ -1,325 +1,330 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ - -header("Cache-Control: no-cache"); -header("Cache-Control: post-check=0, pre-check=0",false); -header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); -header("Pragma: no-cache"); -header("Content-type: application/vnd.mozilla.xul+xml"); -require_once('../../config/vilesci.config.inc.php'); -require_once('../../config/global.config.inc.php'); - - -if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) - $punktehidden = 'false'; -else - $punktehidden = 'true'; - -echo ''; - -echo ""; -?> - - - - - - - - - - - - - - '; - footer_html += ''; - footer_html += ''; + footer_html += ''; - footer_html += ''; + footer_html += ''; - footer_html += ''; - footer_html += ''; + footer_html += ''; + footer_html += ''; - return footer_html; + return footer_html; } // Performs download CSV function footer_downloadCSV(){ - $('#tableWidgetTabulator').tabulator("download", "csv", "data.csv", {bom:true}); // BOM for correct UTF-8 char output + $('#tableWidgetTabulator').tabulator("download", "csv", "data.csv", {bom:true}); // BOM for correct UTF-8 char output } /* @@ -284,12 +293,12 @@ function footer_downloadCSV(){ * Select all (filtered) rows and ignore rows that are bestellt and erteilt */ function footer_selectAll(){ - $('#tableWidgetTabulator').tabulator('getRows', true) - .filter(row => row.getData().bestellt != null && // bestellt - row.getData().erteilt != null && // AND erteilt - row.getData().akzeptiert == null && // AND NOT akzeptiert - row.getData().status != 'Geändert') // AND NOT geändert - .forEach((row => row.select())); + $('#tableWidgetTabulator').tabulator('getRows', true) + .filter(row => row.getData().bestellt != null && // bestellt + row.getData().erteilt != null && // AND erteilt + row.getData().akzeptiert == null && // AND NOT akzeptiert + row.getData().status != 'Geändert') // AND NOT geändert + .forEach((row => row.select())); } /* @@ -297,12 +306,12 @@ function footer_selectAll(){ * Deselect all (filtered) rows */ function footer_deselectAll(){ - $('#tableWidgetTabulator').tabulator('deselectRow'); + $('#tableWidgetTabulator').tabulator('deselectRow'); } // Displays number of selected rows on row selection change function func_rowSelectionChanged(data, rows){ - $('#number-selected').html("Für Annehmen ausgewählt: " + rows.length + ""); + $('#number-selected').html("Für Annehmen ausgewählt: " + rows.length + ""); } // ----------------------------------------------------------------------------------------------------------------- @@ -311,253 +320,288 @@ function func_rowSelectionChanged(data, rows){ // Generates status icons status_formatter = function(cell, formatterParams, onRendered){ - var bestellt = cell.getRow().getData().bestellt; - var erteilt = cell.getRow().getData().erteilt; - var akzeptiert = cell.getRow().getData().akzeptiert; + var bestellt = cell.getRow().getData().bestellt; + var erteilt = cell.getRow().getData().erteilt; + var akzeptiert = cell.getRow().getData().akzeptiert; + var is_storniert = cell.getRow().getData().storniert != undefined; - var stunden = parseFloat(cell.getRow().getData().stunden); - var vertrag_stunden = parseFloat(cell.getRow().getData().vertrag_stunden); + var stunden = parseFloat(cell.getRow().getData().stunden); + var vertrag_stunden = parseFloat(cell.getRow().getData().vertrag_stunden); - var betrag = parseFloat(cell.getRow().getData().betrag); - var vertrag_betrag = parseFloat(cell.getRow().getData().vertrag_betrag); + var betrag = parseFloat(cell.getRow().getData().betrag); + var vertrag_betrag = parseFloat(cell.getRow().getData().vertrag_betrag); - if (isNaN(betrag)) - { - betrag = 0; - } + if (isNaN(betrag)) + { + betrag = 0; + } - // commented icons would be so nice to have with fontawsome 5.11... - if (bestellt != null && isNaN(vertrag_betrag)) - { - return ""; // kein Vertrag - } - else if (bestellt != null && (betrag != vertrag_betrag) || - bestellt != null && stunden != vertrag_stunden) - { - return ICON_LEHRAUFTRAG_CHANGED; // geaendert - // return ""; - } - else if (bestellt == null && erteilt == null && akzeptiert == null) - { - return ""; // neu - } - else if (bestellt != null && erteilt == null && akzeptiert == null) - { - return ICON_LEHRAUFTRAG_ORDERED; // bestellt - // return ""; - } - else if (bestellt != null && erteilt != null && akzeptiert == null) - { - return ICON_LEHRAUFTRAG_APPROVED; // erteilt - // return ""; - } - else if (bestellt != null && erteilt != null && akzeptiert != null) - { - return ""; // akzeptiert - // return ""; - } - else - { - return ""; // default - } + // commented icons would be so nice to have with fontawsome 5.11... + if (bestellt != null && isNaN(vertrag_betrag)) + { + return ""; // kein Vertrag + } + else if (bestellt != null && (betrag != vertrag_betrag) || + bestellt != null && stunden != vertrag_stunden) + { + return ICON_LEHRAUFTRAG_CHANGED; // geaendert + // return ""; + } + else if (bestellt == null && erteilt == null && akzeptiert == null && !is_storniert) + { + return ""; // neu + } + else if (bestellt != null && erteilt == null && akzeptiert == null) + { + return ICON_LEHRAUFTRAG_ORDERED; // bestellt + // return ""; + } + else if (bestellt != null && erteilt != null && akzeptiert == null) + { + return ICON_LEHRAUFTRAG_APPROVED; // erteilt + // return ""; + } + else if (bestellt != null && erteilt != null && akzeptiert != null) + { + return ""; // akzeptiert + // return ""; + } + else if (is_storniert) + { + return ICON_LEHRAUFTRAG_CANCELLED; // storniert + } + else + { + return ""; // default + } }; // Generates status tooltip status_tooltip = function(cell){ - var bestellt = cell.getRow().getData().bestellt; - var erteilt = cell.getRow().getData().erteilt; - var akzeptiert = cell.getRow().getData().akzeptiert; + var bestellt = cell.getRow().getData().bestellt; + var erteilt = cell.getRow().getData().erteilt; + var akzeptiert = cell.getRow().getData().akzeptiert; + var is_storniert = cell.getRow().getData().storniert != undefined; + var letzterStatus_vorStorniert = cell.getRow().getData().letzterStatus_vorStorniert; - var stunden = parseFloat(cell.getRow().getData().stunden); - var vertrag_stunden = parseFloat(cell.getRow().getData().vertrag_stunden); - var betrag = parseFloat(cell.getRow().getData().betrag); - var vertrag_betrag = parseFloat(cell.getRow().getData().vertrag_betrag); + var stunden = parseFloat(cell.getRow().getData().stunden); + var vertrag_stunden = parseFloat(cell.getRow().getData().vertrag_stunden); - if (isNaN(betrag)) - { - betrag = 0; - } + var betrag = parseFloat(cell.getRow().getData().betrag); + var vertrag_betrag = parseFloat(cell.getRow().getData().vertrag_betrag); - var text = 'Lehrauftrag in Bearbeitung. '; + if (isNaN(betrag)) + { + betrag = 0; + } - if (bestellt != null && erteilt == null && akzeptiert == null - && (betrag != vertrag_betrag || stunden != vertrag_stunden)) // geaendert (when never erteilt before) - { - text += 'Wartet auf Erteilung.'; - return text; - } - else if (bestellt != null && erteilt != null && akzeptiert == null - && (betrag != vertrag_betrag || stunden != vertrag_stunden)) // geaendert (when has been erteilt once) - { - text += 'Wartet auf erneute Erteilung.'; - return text; - } - else if (bestellt != null && erteilt == null && akzeptiert == null) // bestellt - { - return 'Letzter Status: Bestellt. Wartet auf Erteilung.'; - } - else if (bestellt != null && erteilt != null && akzeptiert == null) // erteilt - { - return 'Letzter Status: Erteilt. Wartet auf Annahme durch Lektor.'; - } - else if (bestellt != null && erteilt != null && akzeptiert != null) // akzeptiert - { - return 'Letzter Status: Angenommen. Vertrag wurde beidseitig abgeschlossen.'; - } + if (letzterStatus_vorStorniert != undefined && letzterStatus_vorStorniert == 'akzeptiert') + { + letzterStatus_vorStorniert = 'angenommen'; + } + + var text = 'Lehrauftrag in Bearbeitung. '; + + if (bestellt != null && erteilt == null && akzeptiert == null + && (betrag != vertrag_betrag || stunden != vertrag_stunden)) // geaendert (when never erteilt before) + { + text += 'Wartet auf Erteilung.'; + return text; + } + else if (bestellt != null && erteilt != null && akzeptiert == null + && (betrag != vertrag_betrag || stunden != vertrag_stunden)) // geaendert (when has been erteilt once) + { + text += 'Wartet auf erneute Erteilung.'; + return text; + } + else if (bestellt != null && erteilt == null && akzeptiert == null) // bestellt + { + return 'Letzter Status: Bestellt. Wartet auf Erteilung.'; + } + else if (bestellt != null && erteilt != null && akzeptiert == null) // erteilt + { + return 'Letzter Status: Erteilt. Wartet auf Annahme durch Lektor.'; + } + else if (bestellt != null && erteilt != null && akzeptiert != null) // akzeptiert + { + return 'Letzter Status: Angenommen. Vertrag wurde beidseitig abgeschlossen.'; + } + else if (is_storniert) + { + return 'Dieser Vertrag wurde storniert. Letzter Status vor Stornierung war: ' + + letzterStatus_vorStorniert; // storniert + } } // Generates bestellt tooltip bestellt_tooltip = function(cell){ - if (cell.getRow().getData().bestellt_von != null) - { - return 'Bestellt von: ' + cell.getRow().getData().bestellt_von; - } + if (cell.getRow().getData().bestellt_von != null) + { + return 'Bestellt von: ' + cell.getRow().getData().bestellt_von; + } } // Generates erteilt tooltip erteilt_tooltip = function(cell){ - if (cell.getRow().getData().erteilt_von != null) { - return 'Erteilt von: ' + cell.getRow().getData().erteilt_von; - } + if (cell.getRow().getData().erteilt_von != null) { + return 'Erteilt von: ' + cell.getRow().getData().erteilt_von; + } } // Generates akzeptiert tooltip akzeptiert_tooltip = function(cell){ - if (cell.getRow().getData().akzeptiert_von != null) { - return 'Angenommen von: ' + cell.getRow().getData().akzeptiert_von; - } + if (cell.getRow().getData().akzeptiert_von != null) { + return 'Angenommen von: ' + cell.getRow().getData().akzeptiert_von; + } +} + +// Generates storniert tooltip +storniert_tooltip = function(cell){ + if (cell.getRow().getData().storniert_von != null) { + return 'Storniert von: ' + cell.getRow().getData().storniert_von; + } } $(function() { + // Show all rows + $("#show-all").click(function(){ + $('#tableWidgetTabulator').tabulator('clearFilter'); + }); - // Show all rows - $("#show-all").click(function(){ - $('#tableWidgetTabulator').tabulator('clearFilter'); - }); + // Show only rows with ordered lehrauftraege + $("#show-ordered").click(function(){ + $('#tableWidgetTabulator').tabulator('setFilter', + [ + {field: 'bestellt', type: '!=', value: null}, + {field: 'erteilt', type: '=', value: null}, + {field: 'akzeptiert', type: '=', value: null} + ] + ); + }); - // Show only rows with ordered lehrauftraege - $("#show-ordered").click(function(){ - $('#tableWidgetTabulator').tabulator('setFilter', - [ - {field: 'bestellt', type: '!=', value: null}, - {field: 'erteilt', type: '=', value: null}, - {field: 'akzeptiert', type: '=', value: null} - ] - ); - }); + // Show only rows with erteilte lehrauftraege + $("#show-approved").click(function(){ + $('#tableWidgetTabulator').tabulator('setFilter', [ + {field: 'bestellt', type: '!=', value: null}, // filter when is bestellt + {field: 'erteilt', type: '!=', value: null}, // and is erteilt + {field: 'akzeptiert', type: '=', value: null} // and is not akzeptiert + ] + ); + }); - // Show only rows with erteilte lehrauftraege - $("#show-approved").click(function(){ - $('#tableWidgetTabulator').tabulator('setFilter', [ - {field: 'bestellt', type: '!=', value: null}, // filter when is bestellt - {field: 'erteilt', type: '!=', value: null}, // and is erteilt - {field: 'akzeptiert', type: '=', value: null} // and is not akzeptiert - ] - ); - }); + // Show only rows with akzeptierte lehrauftraege + $("#show-accepted").click(function(){ + $('#tableWidgetTabulator').tabulator('setFilter', + [ + {field: 'bestellt', type: '!=', value: null}, + {field: 'erteilt', type: '!=', value: null}, + {field: 'akzeptiert', type: '!=', value: null} + ] + ); + }); - // Show only rows with akzeptierte lehrauftraege - $("#show-accepted").click(function(){ - $('#tableWidgetTabulator').tabulator('setFilter', - [ - {field: 'bestellt', type: '!=', value: null}, - {field: 'erteilt', type: '!=', value: null}, - {field: 'akzeptiert', type: '!=', value: null} - ] - ); - }); + // Set png-icons into filter-buttons + $(".btn-lehrauftrag").each(function(){ + switch(this.id) { + case 'show-ordered': + this.innerHTML = ICON_LEHRAUFTRAG_ORDERED; + break; + case 'show-approved': + this.innerHTML = ICON_LEHRAUFTRAG_APPROVED; + break; + case 'show-cancelled': + this.innerHTML = ICON_LEHRAUFTRAG_CANCELLED; + break; + } + }); - // Set png-icons into filter-buttons - $(".btn-lehrauftrag").each(function(){ - switch(this.id) { - case 'show-ordered': - this.innerHTML = ICON_LEHRAUFTRAG_ORDERED; - break; - case 'show-approved': - this.innerHTML = ICON_LEHRAUFTRAG_APPROVED; - break; - } - }); + // De/activate and un/focus on clicked button + $(".btn-lehrauftrag").click(function() { - // De/activate and un/focus on clicked button - $(".btn-lehrauftrag").click(function() { + // De/activate and un/focus on clicked button + $(".btn-lehrauftrag").removeClass('focus').removeClass('active'); + $(this).addClass('focus').addClass('active'); + }); - // De/activate and un/focus on clicked button - $(".btn-lehrauftrag").removeClass('focus').removeClass('active'); - $(this).addClass('focus').addClass('active'); - }); + // Redraw table stornierte lehrauftraege on button click + $('#collapseCancelledLehrauftraege').on('shown.bs.collapse', function () { + $('[tableuniqueid = cancelledLehrauftrag] #tableWidgetTabulator').tabulator('redraw', true); + }); - // Approve Lehrauftraege - $("#accept-lehrauftraege").click(function(){ + // Approve Lehrauftraege + $("#accept-lehrauftraege").click(function(){ - // Get selected rows data - var selected_data = $('#tableWidgetTabulator').tabulator('getSelectedData') - .map(function(data){ - // reduce to necessary fields - return { - 'row_index' : data.row_index, - 'vertrag_id' : data.vertrag_id - } - }); + // Get selected rows data + var selected_data = $('#tableWidgetTabulator').tabulator('getSelectedData') + .map(function(data){ + // reduce to necessary fields + return { + 'row_index' : data.row_index, + 'vertrag_id' : data.vertrag_id + } + }); - // Alert and exit if no lehraufgang is selected - if (selected_data.length == 0) - { - FHC_DialogLib.alertInfo('Bitte wählen Sie erst zumindest einen Lehrauftrag'); + // Alert and exit if no lehraufgang is selected + if (selected_data.length == 0) + { + FHC_DialogLib.alertInfo('Bitte wählen Sie erst zumindest einen Lehrauftrag'); - // Emtpy password field - $("#password").val(''); + // Emtpy password field + $("#password").val(''); - return; - } + return; + } - // Get password for verification - var password = $("#password").val(); - if (password == '') - { - FHC_DialogLib.alertInfo('Bitte verifizieren Sie sich mit Ihrem Login Passwort.'); + // Get password for verification + var password = $("#password").val(); + if (password == '') + { + FHC_DialogLib.alertInfo('Bitte verifizieren Sie sich mit Ihrem Login Passwort.'); - // Focus on password field - $("#password").focus(); + // Focus on password field + $("#password").focus(); - return; - } + return; + } - // Prepare data object for ajax call - var data = { - 'password': password, - 'selected_data': selected_data - }; + // Prepare data object for ajax call + var data = { + 'password': password, + 'selected_data': selected_data + }; - FHC_AjaxClient.ajaxCallPost( - FHC_JS_DATA_STORAGE_OBJECT.called_path + "/acceptLehrauftrag", - data, - { - successCallback: function (data, textStatus, jqXHR) - { - if (data.error) - { - // Password not verified - FHC_DialogLib.alertWarning(data.retval); - } - if (!data.error && data.retval != null) - { - // Update status 'Erteilt' - $('#tableWidgetTabulator').tabulator('updateData', data.retval); - FHC_DialogLib.alertSuccess(data.retval.length + " Lehraufträge wurden akzeptiert."); - } - }, - errorCallback: function (jqXHR, textStatus, errorThrown) - { - FHC_DialogLib.alertError("Systemfehler
    Bitte kontaktieren Sie Ihren Administrator."); - } - } - ); + FHC_AjaxClient.ajaxCallPost( + FHC_JS_DATA_STORAGE_OBJECT.called_path + "/acceptLehrauftrag", + data, + { + successCallback: function (data, textStatus, jqXHR) + { + if (data.error && data.retval != null) + { + // Print error message + FHC_DialogLib.alertWarning(data.retval); + } + + if (!data.error && data.retval != null) + { + // Update status 'Erteilt' + $('#tableWidgetTabulator').tabulator('updateData', data.retval); - // Empty password field - $("#password").val(''); + // Print success message + FHC_DialogLib.alertSuccess(data.retval.length + " Lehraufträge wurden akzeptiert."); + } + }, + errorCallback: function (jqXHR, textStatus, errorThrown) + { + FHC_DialogLib.alertError("Systemfehler
    Bitte kontaktieren Sie Ihren Administrator."); + } + } + ); - }); + // Empty password field + $("#password").val(''); + + }); }); diff --git a/public/js/lehre/lehrauftrag/approveLehrauftrag.js b/public/js/lehre/lehrauftrag/approveLehrauftrag.js index 2cc42abd0..5ce99ab2e 100644 --- a/public/js/lehre/lehrauftrag/approveLehrauftrag.js +++ b/public/js/lehre/lehrauftrag/approveLehrauftrag.js @@ -94,9 +94,16 @@ function func_initialFilter(){ // ----------------------------------------------------------------------------------------------------------------- // Tabulator table format functions // ----------------------------------------------------------------------------------------------------------------- + +// Displays text when table is empty +function func_placeholder() +{ + return "

    Keine Daten vorhanden.

    "; +} + // Formats the group header function func_groupHeader(data){ - return data[0].lv_bezeichnung; // change name to lehrveranstaltung + return data[0].lv_bezeichnung + "  " + ' ( LV-ID: ' + data[0].lehrveranstaltung_id + ' )'; // change name to lehrveranstaltung; }; // Formats the rows @@ -667,9 +674,16 @@ $(function() { { // Update status 'Erteilt' $('#tableWidgetTabulator').tabulator('updateData', data.retval); + + // Print success message + FHC_DialogLib.alertSuccess(data.retval.length + " Lehraufträge wurden erteilt."); } - FHC_DialogLib.alertSuccess(data.retval.length + " Lehraufträge wurden erteilt."); + if (data.error && data.retval != null) + { + // Print error message + FHC_DialogLib.alertError(data.retval); + } }, errorCallback: function (jqXHR, textStatus, errorThrown) { diff --git a/public/js/lehre/lehrauftrag/orderLehrauftrag.js b/public/js/lehre/lehrauftrag/orderLehrauftrag.js index dfcc46636..b0684d5ca 100644 --- a/public/js/lehre/lehrauftrag/orderLehrauftrag.js +++ b/public/js/lehre/lehrauftrag/orderLehrauftrag.js @@ -99,10 +99,17 @@ function func_dataLoaded(data, table){ // ----------------------------------------------------------------------------------------------------------------- // Tabulator table format functions // ----------------------------------------------------------------------------------------------------------------- + +// Displays text when table is empty +function func_placeholder() +{ + return "

    Keine Daten vorhanden.

    "; +} + // Formats the group header -function func_groupHeader(data){ - return data[0].lv_bezeichnung; // change name to lehrveranstaltung -}; +function func_groupHeader(data) { + return data[0].lv_bezeichnung + "  " + ' ( LV-ID: ' + data[0].lehrveranstaltung_id + ' )'; // change name to lehrveranstaltung; +} // Formats the rows function func_rowFormatter(row){ @@ -692,9 +699,16 @@ $(function() { { // Update status 'Bestellt' $('#tableWidgetTabulator').tabulator('updateData', data.retval); + + // Print success message + FHC_DialogLib.alertSuccess("Alle " + data.retval.length + " Lehraufträge wurden bestellt.") } - FHC_DialogLib.alertSuccess("Alle " + data.retval.length + " Lehraufträge wurden bestellt.") + if (data.error && data.retval != null) + { + // Print error message + FHC_DialogLib.alertError(data.retval); + } }, errorCallback: function (jqXHR, textStatus, errorThrown) { diff --git a/rdf/lehreinheit-lvplan.rdf.php b/rdf/lehreinheit-lvplan.rdf.php index 948e2327b..a7c89ac98 100644 --- a/rdf/lehreinheit-lvplan.rdf.php +++ b/rdf/lehreinheit-lvplan.rdf.php @@ -38,6 +38,8 @@ require_once('../include/lehreinheit.class.php'); require_once('../include/notiz.class.php'); require_once('../include/mitarbeiter.class.php'); require_once('../include/zeitaufzeichnung_gd.class.php'); +require_once('../include/lehreinheitmitarbeiter.class.php'); +require_once('../include/vertrag.class.php'); $uid=get_uid(); $error_msg=''; @@ -90,6 +92,10 @@ if (isset($_GET['orgform'])) $orgform=$_GET['orgform']; else $orgform=null; +if (isset($_GET['vertrag'])) + $vertrag=$_GET['vertrag']; +else + $vertrag=null; //Sortierreihenfolge if(isset($_GET['order'])) @@ -304,6 +310,59 @@ if ($anz>0) else $fixangestellt_info = 'EXT'; + $vertragsstatus_arr = array(); + $vertragsstatus_kurzbz_arr = array(); + // Lehrauftragsstatus ermitteln + foreach ($l->lem as $row_lem) + { + $lem_obj = new lehreinheitmitarbeiter(); + if ($lem_obj->load($row_lem['lehreinheit_id'], $row_lem['mitarbeiter_uid'])) + { + if ($lem_obj->vertrag_id != '') + { + $vertrag_obj = new vertrag(); + if($vertrag_obj->getStatus($lem_obj->vertrag_id)) + { + $vertragsstatus_arr[] = $vertrag_obj->vertragsstatus_bezeichnung; + $vertragsstatus_kurzbz_arr[] = $vertrag_obj->vertragsstatus_kurzbz; + } + } + else + { + $vertragsstatus_arr[] = 'Neu'; + } + } + } + $vertragsstatus = implode(',', array_unique($vertragsstatus_arr)); + + if (!is_null($vertrag) && $vertrag != '') + { + switch($vertrag) + { + // Alle ab Status erteilt herausfiltern + // der rest wird verworfen + case 'erteilt': + if (!in_array('erteilt', $vertragsstatus_kurzbz_arr) + && !in_array('akzeptiert', $vertragsstatus_kurzbz_arr)) + { + continue 2; + } + break; + + // Alle ab Status bestellt herausfiltern + // der rest wird verworfen + case 'bestellt': + if (!in_array('bestellt', $vertragsstatus_kurzbz_arr) + && !in_array('erteilt', $vertragsstatus_kurzbz_arr) + && !in_array('akzeptiert', $vertragsstatus_kurzbz_arr)) + { + continue 2; + } + break; + default: + break; + } + } echo' '.$lvnr.' @@ -335,6 +394,7 @@ if ($anz>0) '.$lehrverband.' '.$anzahl_notizen.' '.$l->lehreinheit_id[0].' + '.$vertragsstatus.' '; } diff --git a/rdf/vertrag.rdf.php b/rdf/vertrag.rdf.php index 5f1eea221..e2f45b61f 100644 --- a/rdf/vertrag.rdf.php +++ b/rdf/vertrag.rdf.php @@ -31,7 +31,7 @@ $uid = get_uid(); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($uid); -if(!$rechte->isBerechtigt('vertrag/mitarbeiter')) +if(!$rechte->isBerechtigt('vertrag/mitarbeiter') && !$rechte->isBerechtigt('lehre/lehrauftrag_bestellen')) die('Sie haben keine Berechtigung für diese Seite'); $datum_obj = new datum(); diff --git a/rdf/zeugnis.rdf.php b/rdf/zeugnis.rdf.php index 61b56361c..53d948424 100644 --- a/rdf/zeugnis.rdf.php +++ b/rdf/zeugnis.rdf.php @@ -1,448 +1,457 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl and - * Gerald Raab . - */ -//header("Cache-Control: no-cache"); -//header("Cache-Control: post-check=0, pre-check=0",false); -//header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); -//header("Pragma: no-cache"); -// content type setzen -header("Content-type: application/xhtml+xml"); -require_once('../config/vilesci.config.inc.php'); -require_once('../include/functions.inc.php'); -require_once('../include/zeugnisnote.class.php'); -require_once('../include/datum.class.php'); -require_once('../include/note.class.php'); -require_once('../include/studiengang.class.php'); -require_once('../include/mitarbeiter.class.php'); -require_once('../include/anrechnung.class.php'); - -$datum = new datum(); -$db = new basis_db(); -$projektarbeit=array(); -$fussnotenzeichen=array('¹)','²)','³)'); -$anzahl_fussnoten=0; -$studiengang_typ=''; -$xml_fussnote=''; - -function breaktext($text, $zeichen) -{ - $arr = explode(' ',$text); - $ret = ''; - $teilstring=''; - - foreach($arr as $elem) - { - if(strlen($teilstring.$elem)>$zeichen) - { - $ret.=' '.$teilstring.'\n'; - $teilstring=$elem; - } - else - $teilstring .=' '.$elem; - } - $ret.=$teilstring; - return $ret; -} - -if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") -{ - - if(isset($_GET['uid'])) - $uid = $_GET['uid']; - else - $uid = null; - - $uid_arr = explode(";",$uid); - - if ($uid_arr[0] == "") - { - unset($uid_arr[0]); - $uid_arr = array_values($uid_arr); - } - - $note_arr = array(); - $note = new note(); - $note->getAll($offiziell = true); - foreach ($note->result as $n) - $note_arr[$n->note] = $n->anmerkung; - - if(isset($_GET['ss'])) - $studiensemester_kurzbz = $_GET['ss']; - else - die('Studiensemester wurde nicht uebergeben'); - - //Daten holen - - $xml = ""; - $xml .= ""; - - for ($i = 0; $i < sizeof($uid_arr); $i++) - { - $anzahl_fussnoten=0; - $studiengang_typ=''; - $xml_fussnote=''; - $projektarbeit=array(); - - $query = "SELECT tbl_student.matrikelnr, tbl_student.studiengang_kz, tbl_studiengang.typ, tbl_studiengang.projektarbeit_note_anzeige, - tbl_studiengang.bezeichnung, tbl_studiengang.english, tbl_studentlehrverband.semester, - tbl_person.vorname, tbl_person.vornamen, tbl_person.nachname,tbl_person.gebdatum,tbl_person.titelpre, - tbl_person.titelpost, tbl_person.anrede, tbl_studiensemester.bezeichnung as sembezeichnung, - tbl_studiensemester.studiensemester_kurzbz as stsem, tbl_student.prestudent_id, tbl_studiengang.max_semester - FROM tbl_person, tbl_student, tbl_studiengang, tbl_benutzer, tbl_studentlehrverband, tbl_studiensemester - WHERE tbl_student.studiengang_kz = tbl_studiengang.studiengang_kz - AND tbl_student.student_uid = tbl_benutzer.uid AND tbl_benutzer.person_id = tbl_person.person_id - AND tbl_student.student_uid = ".$db->db_add_param($uid_arr[$i])." - AND tbl_studentlehrverband.student_uid=tbl_student.student_uid - AND tbl_studiensemester.studiensemester_kurzbz = tbl_studentlehrverband.studiensemester_kurzbz - AND tbl_studentlehrverband.studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz); - - if($result = $db->db_query($query)) - { - $xml .= "\n "; - if($row = $db->db_fetch_object($result)) - { - $studiengang = new studiengang(); - $stgleiter = $studiengang->getLeitung($row->studiengang_kz); - $stgl=''; - foreach ($stgleiter as $stgleiter_uid) - { - $stgl_ma = new mitarbeiter($stgleiter_uid); - $stgl .= trim($stgl_ma->titelpre.' '.$stgl_ma->vorname.' '.$stgl_ma->nachname.' '.$stgl_ma->titelpost); - } - - //Wenn das Semester 0 ist, dann wird das Semester aus der Rolle geholt. (Ausnahme: Incoming) - //damit bei Outgoing Studenten die im 0. Semester angelegt sind das richtige Semester aufscheint - $qry ="SELECT ausbildungssemester as semester, tbl_studienordnung.studiengangbezeichnung, tbl_studienordnung.studiengangbezeichnung_englisch - FROM public.tbl_prestudentstatus - LEFT JOIN lehre.tbl_studienplan USING (studienplan_id) - LEFT JOIN lehre.tbl_studienordnung USING (studienordnung_id) - WHERE - prestudent_id=".$db->db_add_param($row->prestudent_id)." AND - studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND - tbl_prestudentstatus.status_kurzbz not in('Incoming','Aufgenommener','Bewerber','Wartender', 'Interessent', 'Abgewiesener') - ORDER BY DATUM DESC LIMIT 1"; - if($result_sem = $db->db_query($qry)) - { - if($row_sem = $db->db_fetch_object($result_sem)) - { - $row->semester = $row_sem->semester; - $row->studiengangbezeichnung = $row_sem->studiengangbezeichnung; - $row->studiengangbezeichnung_englisch = $row_sem->studiengangbezeichnung_englisch; - $bezeichnung = $row_sem->semester.'. Semester'; - } - else - $bezeichnung = ''; - } - else - $bezeichnung = ''; - - $studiengangbezeichnung = empty($row->studiengangbezeichnung) ? $row->bezeichnung : $row->studiengangbezeichnung; - $studiengangbezeichnung_englisch = empty($row->studiengangbezeichnung_englisch) ? $row->english : $row->studiengangbezeichnung_englisch; - - $xml .= " sembezeichnung."]]>"; - $xml .= " stsem."]]>"; - $xml .= " semester."]]>"; - $xml .= " "; - $xml .= " "; - $xml .= " "; - if($row->typ=='b') - $bezeichnung='Bachelor'; - elseif($row->typ=='m') - $bezeichnung='Master'; - elseif($row->typ=='d') - $bezeichnung='Diplom'; - else - $bezeichnung=''; - $studiengang_typ=$row->typ; - $semester = $row->semester; - - //Wenn Lehrgang, dann Erhalter-KZ vor die Studiengangs-Kz hängen - if ($row->studiengang_kz<0) - { - $stg = new studiengang(); - $stg->load($row->studiengang_kz); - - $studiengang_kz = sprintf("%03s", $stg->erhalter_kz).sprintf("%04s", abs($row->studiengang_kz)); - } - else - $studiengang_kz = sprintf("%04s", abs($row->studiengang_kz)); - - $xml .= " "; - $xml .= " "; - $xml .= "\n anrede."]]>"; - $xml .= "\n vorname."]]>"; - $xml .= " nachname."]]>"; - $xml .= " titelpre.' '.trim($row->vorname.' '.$row->vornamen).' '.$row->nachname.($row->titelpost!=''?', '.$row->titelpost:''))."]]>"; - $gebdatum = date('d.m.Y',strtotime($row->gebdatum)); - $xml .= " "; - $xml .= " matrikelnr)."]]>"; - $xml .= " "; - $datum_aktuell = date('d.m.Y'); - $xml .= " "; - $xml .= " ".($row->projektarbeit_note_anzeige=='t'?'true':'false').""; - - $qry_proj = " - SELECT - lehrveranstaltung_id, titel, themenbereich, note, titel_english, - tbl_projekttyp.bezeichnung, projekttyp_kurzbz - FROM - lehre.tbl_projektarbeit - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz) - WHERE - student_uid=".$db->db_add_param($uid_arr[$i])." - AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." - AND projekttyp_kurzbz in('Bachelor', 'Diplom') - ORDER BY beginn ASC, projektarbeit_id ASC"; - - if($result_proj = $db->db_query($qry_proj)) - { - while($row_proj = $db->db_fetch_object($result_proj)) - { - $projektarbeit[$row_proj->lehrveranstaltung_id]['titel']=$row_proj->titel; - $projektarbeit[$row_proj->lehrveranstaltung_id]['titel_en']=$row_proj->titel_english; - $projektarbeit[$row_proj->lehrveranstaltung_id]['themenbereich']=$row_proj->themenbereich; - $projektarbeit[$row_proj->lehrveranstaltung_id]['note']=$row_proj->note; - $projektarbeit[$row_proj->lehrveranstaltung_id]['projekttyp_bezeichnung']=$row_proj->bezeichnung; - $projektarbeit[$row_proj->lehrveranstaltung_id]['projekttyp_kurzbz']=$row_proj->projekttyp_kurzbz; - } - } - - // Wenn es das letzte Semesterzeugnis ist, wird zusaetzlich die Abschlusspruefung geliefert - if($row->semester==$row->max_semester) - { - - $qry_abschlusspruefung = "SELECT - tbl_abschlusspruefung.datum, - tbl_abschlusspruefung.pruefungstyp_kurzbz, - tbl_abschlussbeurteilung.bezeichnung, - tbl_abschlussbeurteilung.bezeichnung_english - FROM - lehre.tbl_abschlusspruefung - LEFT JOIN lehre.tbl_abschlussbeurteilung USING(abschlussbeurteilung_kurzbz) - WHERE - tbl_abschlusspruefung.student_uid=".$db->db_add_param($uid_arr[$i])." - ORDER BY datum DESC LIMIT 1"; - if($result_abschlusspruefung = $db->db_query($qry_abschlusspruefung)) - { - if($row_abschlusspruefung = $db->db_fetch_object($result_abschlusspruefung)) - { - $xml .= " pruefungstyp_kurzbz."]]>"; - $xml .= " formatDatum($row_abschlusspruefung->datum,'d.m.Y')."]]>"; - $xml .= " bezeichnung."]]>"; - $xml .= " bezeichnung_english."]]>"; - } - } - } - - $obj = new zeugnisnote(); - - $obj->getZeugnisnoten($lehrveranstaltung_id=null, $uid_arr[$i], $studiensemester_kurzbz); - - $ects_gesamt = $ects_gesamt_positiv = 0; - $prestudent_id = $row->prestudent_id; - foreach ($obj->result as $row) - { - if($row->zeugnis) - { - if (trim($row->note)!=='' && isset($note_arr[$row->note])) - $note = $note_arr[$row->note]; - else - $note = ""; - $note2=$note; - - //Firma fuer Berufspraktikum - $qry = "SELECT tbl_firma.name - FROM - lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, public.tbl_firma - WHERE - tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND - tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND - tbl_projektarbeit.firma_id = tbl_firma.firma_id AND - tbl_projektarbeit.student_uid=".$db->db_add_param($uid_arr[$i])." AND - tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND - tbl_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($row->lehrveranstaltung_id); - - $firma = ''; - $firma_eng = ''; - if($result_firma = $db->db_query($qry)) - { - if($row_firma = $db->db_fetch_object($result_firma)) - { - if($row_firma->name!='') - { - $firma = " bei Firma: $row_firma->name"; - $firma_eng = " at: $row_firma->name"; - } - } - } - - //Bakk/Dipl Fussnoten - if(array_key_exists($row->lehrveranstaltung_id, $projektarbeit)) - { - $bezeichnung = $row->lehrveranstaltung_bezeichnung.$firma.' '.$fussnotenzeichen[$anzahl_fussnoten]; - $bezeichnung_englisch = $row->lehrveranstaltung_bezeichnung_english.$firma_eng.' '.$fussnotenzeichen[$anzahl_fussnoten]; - $xml_fussnote .="\n "; - $xml_fussnote .=" ".$fussnotenzeichen[$anzahl_fussnoten].""; - - //$projektarbeit[$row->lehrveranstaltung_id]['titel'] = breaktext($projektarbeit[$row->lehrveranstaltung_id]['titel'], 40); - - $anzahl_nl = substr_count($projektarbeit[$row->lehrveranstaltung_id]['titel'],'\n'); - $nl2=''; - if($projektarbeit[$row->lehrveranstaltung_id]['themenbereich']!='') - { - //$xml_fussnote .=" Themenbereich: "; - $xml_fussnote .=" lehrveranstaltung_id]['themenbereich'].']]>'; - $anzahl_nl++; - $nl2='\n'; - } - - /*if($studiengang_typ=='b') - $typ = 'Bachelorarbeit:'; - else - $typ = 'Master Thesis:';*/ - - $nl=''; - $nl2=''; - $xml_fussnote .=" lehrveranstaltung_id]['projekttyp_bezeichnung']."]]>"; - $xml_fussnote .=" lehrveranstaltung_id]['projekttyp_kurzbz']."]]>"; - $xml_fussnote .=" lehrveranstaltung_id]['titel'].$nl2."]]>"; - $xml_fussnote .=" lehrveranstaltung_id]['titel_en'].$nl2."]]>"; - //$note = $note_arr[$projektarbeit[$row->lehrveranstaltung_id]['note']]; - $note = $projektarbeit[$row->lehrveranstaltung_id]['note']; - //$nl = str_repeat('\n',($anzahl_nl)); - $xml_fussnote .=' '.(isset($note_arr[$note])?$note_arr[$note]:"").$nl.''; - $xml_fussnote .=' '.$nl.''; - $xml_fussnote .=' '.$nl.''; - $xml_fussnote .=' '.$nl.''; - $xml_fussnote .=' '.$nl.''; - - - - $xml_fussnote .=" "; - - $anzahl_fussnoten++; - } - else - { - $bezeichnung = $row->lehrveranstaltung_bezeichnung.$firma; - $bezeichnung_englisch = $row->lehrveranstaltung_bezeichnung_english.$firma_eng; - } - - - $bisio_von = ''; - $bisio_bis = ''; - $bisio_ort = ''; - $bisio_universitaet = ''; - $auslandssemester=false; - - $qry = "SELECT tbl_bisio.* FROM bis.tbl_bisio JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - WHERE tbl_lehreinheit.lehrveranstaltung_id='$row->lehrveranstaltung_id' - AND student_uid=".$db->db_add_param($uid_arr[$i]); - if($result_bisio = $db->db_query($qry)) - { - if($row_bisio = $db->db_fetch_object($result_bisio)) - { - $bisio_von = $row_bisio->von; - $bisio_bis = $row_bisio->bis; - $bisio_ort = $row_bisio->ort; - $bisio_universitaet = $row_bisio->universitaet; - $auslandssemester=true; - $note2 = 'ar'; - } - } - - $qry = "SELECT wochen FROM public.tbl_semesterwochen - WHERE (studiengang_kz, semester) in (SELECT studiengang_kz, semester - FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=".$db->db_add_param($row->lehrveranstaltung_id).")"; - $wochen = 15; - if($result_wochen = $db->db_query($qry)) - { - if($row_wochen = $db->db_fetch_object($result_wochen)) - { - $wochen = $row_wochen->wochen; - } - } - $xml .= "\n "; - $xml .= " "; - $xml .= " "; - $xml .= " note_positiv."]]>"; - $xml .= " "; - $xml .= " semesterstunden==0?'':number_format(sprintf('%.1F',$row->semesterstunden/$wochen),1))."]]>"; - $xml .= " sws==0?'':number_format(sprintf('%.1F',$row->sws),1))."]]>"; - $ectspunkte=''; - - $anrechnung = new anrechnung(); - $anrechnung->getAnrechnungPrestudent($prestudent_id, null, $row->lehrveranstaltung_id); - - if($anrechnung->result != null) - { - $lv = new lehrveranstaltung($anrechnung->result[0]->lehrveranstaltung_id); - if(($lv->ects !== $row->ects) && ($lv->ects != "") && ($lv->ects != null)) - { - $row->ects = $lv->ects; - } - } - - if($row->ects==0 || $row->ects=='') - $ectspunkte=''; - else - { - //Bei 2 Nachkommastellen beide anzeigen, sonst nur 1 - if(number_format($row->ects,1)==number_format($row->ects,2)) - $ectspunkte=number_format($row->ects,1); - else - $ectspunkte=number_format($row->ects,2); - } - $ects_gesamt+=$ectspunkte; - - if ($row->note_positiv === true) - $ects_gesamt_positiv += $ectspunkte; - - $xml .= " "; - $xml .= " lv_lehrform_kurzbz."]]>"; - if($auslandssemester) - { - $xml .= " mktime_fromdate($bisio_von))."]]>"; - $xml .= " mktime_fromdate($bisio_bis))."]]>"; - $xml .= " "; - $xml .= " "; - } - $xml .= " "; - } - } - $xml .= ""; - $xml .= ""; - $xml .= $xml_fussnote; - - } - else - { - $xml .="PERSON NICHT GEFUNDEN / KEIN STATUS"; - } - $xml .= " "; - } - } - $xml .= ""; - echo $xml; -} -?> +, + * Andreas Oesterreicher and + * Rudolf Hangl and + * Gerald Raab . + */ +//header("Cache-Control: no-cache"); +//header("Cache-Control: post-check=0, pre-check=0",false); +//header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +//header("Pragma: no-cache"); +// content type setzen +header("Content-type: application/xhtml+xml"); +require_once('../config/vilesci.config.inc.php'); +require_once('../include/functions.inc.php'); +require_once('../include/zeugnisnote.class.php'); +require_once('../include/datum.class.php'); +require_once('../include/note.class.php'); +require_once('../include/studiengang.class.php'); +require_once('../include/mitarbeiter.class.php'); +require_once('../include/anrechnung.class.php'); +require_once('../include/prestudent.class.php'); + +$datum = new datum(); +$db = new basis_db(); +$projektarbeit=array(); +$fussnotenzeichen=array('¹)','²)','³)'); +$anzahl_fussnoten=0; +$studiengang_typ=''; +$xml_fussnote=''; + +function breaktext($text, $zeichen) +{ + $arr = explode(' ',$text); + $ret = ''; + $teilstring=''; + + foreach($arr as $elem) + { + if(strlen($teilstring.$elem)>$zeichen) + { + $ret.=' '.$teilstring.'\n'; + $teilstring=$elem; + } + else + $teilstring .=' '.$elem; + } + $ret.=$teilstring; + return $ret; +} + +if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") +{ + + if(isset($_GET['uid'])) + $uid = $_GET['uid']; + else + $uid = null; + + $uid_arr = explode(";",$uid); + + if ($uid_arr[0] == "") + { + unset($uid_arr[0]); + $uid_arr = array_values($uid_arr); + } + + $note_arr = array(); + $note = new note(); + $note->getAll($offiziell = true); + foreach ($note->result as $n) + $note_arr[$n->note] = $n->anmerkung; + + if(isset($_GET['ss'])) + $studiensemester_kurzbz = $_GET['ss']; + else + die('Studiensemester wurde nicht uebergeben'); + + //Daten holen + + $xml = ""; + $xml .= ""; + + for ($i = 0; $i < sizeof($uid_arr); $i++) + { + $anzahl_fussnoten=0; + $studiengang_typ=''; + $xml_fussnote=''; + $projektarbeit=array(); + + $query = "SELECT tbl_student.matrikelnr, tbl_student.studiengang_kz, tbl_studiengang.typ, tbl_studiengang.projektarbeit_note_anzeige, + tbl_studiengang.bezeichnung, tbl_studiengang.english, tbl_studentlehrverband.semester, + tbl_person.vorname, tbl_person.vornamen, tbl_person.nachname,tbl_person.gebdatum,tbl_person.titelpre, + tbl_person.titelpost, tbl_person.anrede, tbl_studiensemester.bezeichnung as sembezeichnung, + tbl_studiensemester.studiensemester_kurzbz as stsem, tbl_student.prestudent_id, tbl_studiengang.max_semester + FROM tbl_person, tbl_student, tbl_studiengang, tbl_benutzer, tbl_studentlehrverband, tbl_studiensemester + WHERE tbl_student.studiengang_kz = tbl_studiengang.studiengang_kz + AND tbl_student.student_uid = tbl_benutzer.uid AND tbl_benutzer.person_id = tbl_person.person_id + AND tbl_student.student_uid = ".$db->db_add_param($uid_arr[$i])." + AND tbl_studentlehrverband.student_uid=tbl_student.student_uid + AND tbl_studiensemester.studiensemester_kurzbz = tbl_studentlehrverband.studiensemester_kurzbz + AND tbl_studentlehrverband.studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz); + + if($result = $db->db_query($query)) + { + $xml .= "\n "; + if($row = $db->db_fetch_object($result)) + { + $studiengang = new studiengang(); + $stgleiter = $studiengang->getLeitung($row->studiengang_kz); + $stgl=''; + foreach ($stgleiter as $stgleiter_uid) + { + $stgl_ma = new mitarbeiter($stgleiter_uid); + $stgl .= trim($stgl_ma->titelpre.' '.$stgl_ma->vorname.' '.$stgl_ma->nachname.' '.$stgl_ma->titelpost); + } + + //Wenn das Semester 0 ist, dann wird das Semester aus der Rolle geholt. (Ausnahme: Incoming) + //damit bei Outgoing Studenten die im 0. Semester angelegt sind das richtige Semester aufscheint + $qry ="SELECT ausbildungssemester as semester, tbl_studienordnung.studiengangbezeichnung, tbl_studienordnung.studiengangbezeichnung_englisch + FROM public.tbl_prestudentstatus + LEFT JOIN lehre.tbl_studienplan USING (studienplan_id) + LEFT JOIN lehre.tbl_studienordnung USING (studienordnung_id) + WHERE + prestudent_id=".$db->db_add_param($row->prestudent_id)." AND + studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND + tbl_prestudentstatus.status_kurzbz not in('Incoming','Aufgenommener','Bewerber','Wartender', 'Interessent', 'Abgewiesener') + ORDER BY DATUM DESC LIMIT 1"; + if($result_sem = $db->db_query($qry)) + { + if($row_sem = $db->db_fetch_object($result_sem)) + { + $row->semester = $row_sem->semester; + $row->studiengangbezeichnung = $row_sem->studiengangbezeichnung; + $row->studiengangbezeichnung_englisch = $row_sem->studiengangbezeichnung_englisch; + $bezeichnung = $row_sem->semester.'. Semester'; + } + else + $bezeichnung = ''; + } + else + $bezeichnung = ''; + + $studiengangbezeichnung = empty($row->studiengangbezeichnung) ? $row->bezeichnung : $row->studiengangbezeichnung; + $studiengangbezeichnung_englisch = empty($row->studiengangbezeichnung_englisch) ? $row->english : $row->studiengangbezeichnung_englisch; + + $xml .= " sembezeichnung."]]>"; + $xml .= " stsem."]]>"; + $xml .= " semester."]]>"; + $xml .= " "; + $xml .= " "; + $xml .= " "; + if($row->typ=='b') + $bezeichnung='Bachelor'; + elseif($row->typ=='m') + $bezeichnung='Master'; + elseif($row->typ=='d') + $bezeichnung='Diplom'; + else + $bezeichnung=''; + $studiengang_typ=$row->typ; + $semester = $row->semester; + + //Wenn Lehrgang, dann Erhalter-KZ vor die Studiengangs-Kz hängen + if ($row->studiengang_kz<0) + { + $stg = new studiengang(); + $stg->load($row->studiengang_kz); + + $studiengang_kz = sprintf("%03s", $stg->erhalter_kz).sprintf("%04s", abs($row->studiengang_kz)); + } + else + $studiengang_kz = sprintf("%04s", abs($row->studiengang_kz)); + + $xml .= " "; + $xml .= " "; + $xml .= "\n anrede."]]>"; + $xml .= "\n vorname."]]>"; + $xml .= " nachname."]]>"; + $xml .= " titelpre.' '.trim($row->vorname.' '.$row->vornamen).' '.$row->nachname.($row->titelpost!=''?', '.$row->titelpost:''))."]]>"; + $gebdatum = date('d.m.Y',strtotime($row->gebdatum)); + $xml .= " "; + $xml .= " matrikelnr)."]]>"; + $xml .= " "; + $datum_aktuell = date('d.m.Y'); + $xml .= " "; + $xml .= " ".($row->projektarbeit_note_anzeige=='t'?'true':'false').""; + + $qry_proj = " + SELECT + lehrveranstaltung_id, titel, themenbereich, note, titel_english, + tbl_projekttyp.bezeichnung, projekttyp_kurzbz + FROM + lehre.tbl_projektarbeit + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz) + WHERE + student_uid=".$db->db_add_param($uid_arr[$i])." + AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." + AND projekttyp_kurzbz in('Bachelor', 'Diplom') + ORDER BY beginn ASC, projektarbeit_id ASC"; + + if($result_proj = $db->db_query($qry_proj)) + { + while($row_proj = $db->db_fetch_object($result_proj)) + { + $projektarbeit[$row_proj->lehrveranstaltung_id]['titel']=$row_proj->titel; + $projektarbeit[$row_proj->lehrveranstaltung_id]['titel_en']=$row_proj->titel_english; + $projektarbeit[$row_proj->lehrveranstaltung_id]['themenbereich']=$row_proj->themenbereich; + $projektarbeit[$row_proj->lehrveranstaltung_id]['note']=$row_proj->note; + $projektarbeit[$row_proj->lehrveranstaltung_id]['projekttyp_bezeichnung']=$row_proj->bezeichnung; + $projektarbeit[$row_proj->lehrveranstaltung_id]['projekttyp_kurzbz']=$row_proj->projekttyp_kurzbz; + } + } + + // Wenn es das letzte Semesterzeugnis ist, wird zusaetzlich die Abschlusspruefung geliefert + if($row->semester==$row->max_semester) + { + + $qry_abschlusspruefung = "SELECT + tbl_abschlusspruefung.datum, + tbl_abschlusspruefung.pruefungstyp_kurzbz, + tbl_abschlussbeurteilung.bezeichnung, + tbl_abschlussbeurteilung.bezeichnung_english + FROM + lehre.tbl_abschlusspruefung + LEFT JOIN lehre.tbl_abschlussbeurteilung USING(abschlussbeurteilung_kurzbz) + WHERE + tbl_abschlusspruefung.student_uid=".$db->db_add_param($uid_arr[$i])." + ORDER BY datum DESC LIMIT 1"; + if($result_abschlusspruefung = $db->db_query($qry_abschlusspruefung)) + { + if($row_abschlusspruefung = $db->db_fetch_object($result_abschlusspruefung)) + { + $xml .= " pruefungstyp_kurzbz."]]>"; + $xml .= " formatDatum($row_abschlusspruefung->datum,'d.m.Y')."]]>"; + $xml .= " bezeichnung."]]>"; + $xml .= " bezeichnung_english."]]>"; + } + } + } + + $obj = new zeugnisnote(); + + $obj->getZeugnisnoten($lehrveranstaltung_id=null, $uid_arr[$i], $studiensemester_kurzbz); + + $ects_gesamt = $ects_gesamt_positiv = 0; + $prestudent_id = $row->prestudent_id; + + $prestudent = new prestudent(); + $showAllNoten = false; + $lastPrestudentStatus = $prestudent->getLastStatus($prestudent_id, $studiensemester_kurzbz); + //wenn Incoming, sollen am Zeugnis alle Noten gedruckt werden + if ($lastPrestudentStatus) + $showAllNoten = $prestudent->status_kurzbz === 'Incoming'; + + foreach ($obj->result as $row) + { + if($showAllNoten || $row->zeugnis) + { + if (trim($row->note)!=='' && isset($note_arr[$row->note])) + $note = $note_arr[$row->note]; + else + $note = ""; + $note2=$note; + + //Firma fuer Berufspraktikum + $qry = "SELECT tbl_firma.name + FROM + lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, public.tbl_firma + WHERE + tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND + tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND + tbl_projektarbeit.firma_id = tbl_firma.firma_id AND + tbl_projektarbeit.student_uid=".$db->db_add_param($uid_arr[$i])." AND + tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND + tbl_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($row->lehrveranstaltung_id); + + $firma = ''; + $firma_eng = ''; + if($result_firma = $db->db_query($qry)) + { + if($row_firma = $db->db_fetch_object($result_firma)) + { + if($row_firma->name!='') + { + $firma = " bei Firma: $row_firma->name"; + $firma_eng = " at: $row_firma->name"; + } + } + } + + //Bakk/Dipl Fussnoten + if(array_key_exists($row->lehrveranstaltung_id, $projektarbeit)) + { + $bezeichnung = $row->lehrveranstaltung_bezeichnung.$firma.' '.$fussnotenzeichen[$anzahl_fussnoten]; + $bezeichnung_englisch = $row->lehrveranstaltung_bezeichnung_english.$firma_eng.' '.$fussnotenzeichen[$anzahl_fussnoten]; + $xml_fussnote .="\n "; + $xml_fussnote .=" ".$fussnotenzeichen[$anzahl_fussnoten].""; + + //$projektarbeit[$row->lehrveranstaltung_id]['titel'] = breaktext($projektarbeit[$row->lehrveranstaltung_id]['titel'], 40); + + $anzahl_nl = substr_count($projektarbeit[$row->lehrveranstaltung_id]['titel'],'\n'); + $nl2=''; + if($projektarbeit[$row->lehrveranstaltung_id]['themenbereich']!='') + { + //$xml_fussnote .=" Themenbereich: "; + $xml_fussnote .=" lehrveranstaltung_id]['themenbereich'].']]>'; + $anzahl_nl++; + $nl2='\n'; + } + + /*if($studiengang_typ=='b') + $typ = 'Bachelorarbeit:'; + else + $typ = 'Master Thesis:';*/ + + $nl=''; + $nl2=''; + $xml_fussnote .=" lehrveranstaltung_id]['projekttyp_bezeichnung']."]]>"; + $xml_fussnote .=" lehrveranstaltung_id]['projekttyp_kurzbz']."]]>"; + $xml_fussnote .=" lehrveranstaltung_id]['titel'].$nl2."]]>"; + $xml_fussnote .=" lehrveranstaltung_id]['titel_en'].$nl2."]]>"; + //$note = $note_arr[$projektarbeit[$row->lehrveranstaltung_id]['note']]; + $note = $projektarbeit[$row->lehrveranstaltung_id]['note']; + //$nl = str_repeat('\n',($anzahl_nl)); + $xml_fussnote .=' '.(isset($note_arr[$note])?$note_arr[$note]:"").$nl.''; + $xml_fussnote .=' '.$nl.''; + $xml_fussnote .=' '.$nl.''; + $xml_fussnote .=' '.$nl.''; + $xml_fussnote .=' '.$nl.''; + + + + $xml_fussnote .=" "; + + $anzahl_fussnoten++; + } + else + { + $bezeichnung = $row->lehrveranstaltung_bezeichnung.$firma; + $bezeichnung_englisch = $row->lehrveranstaltung_bezeichnung_english.$firma_eng; + } + + + $bisio_von = ''; + $bisio_bis = ''; + $bisio_ort = ''; + $bisio_universitaet = ''; + $auslandssemester=false; + + $qry = "SELECT tbl_bisio.* FROM bis.tbl_bisio JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE tbl_lehreinheit.lehrveranstaltung_id='$row->lehrveranstaltung_id' + AND student_uid=".$db->db_add_param($uid_arr[$i]); + if($result_bisio = $db->db_query($qry)) + { + if($row_bisio = $db->db_fetch_object($result_bisio)) + { + $bisio_von = $row_bisio->von; + $bisio_bis = $row_bisio->bis; + $bisio_ort = $row_bisio->ort; + $bisio_universitaet = $row_bisio->universitaet; + $auslandssemester=true; + $note2 = 'ar'; + } + } + + $qry = "SELECT wochen FROM public.tbl_semesterwochen + WHERE (studiengang_kz, semester) in (SELECT studiengang_kz, semester + FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=".$db->db_add_param($row->lehrveranstaltung_id).")"; + $wochen = 15; + if($result_wochen = $db->db_query($qry)) + { + if($row_wochen = $db->db_fetch_object($result_wochen)) + { + $wochen = $row_wochen->wochen; + } + } + $xml .= "\n "; + $xml .= " "; + $xml .= " "; + $xml .= " note_positiv."]]>"; + $xml .= " "; + $xml .= " semesterstunden==0?'':number_format(sprintf('%.1F',$row->semesterstunden/$wochen),1))."]]>"; + $xml .= " sws==0?'':number_format(sprintf('%.1F',$row->sws),1))."]]>"; + $ectspunkte=''; + + $anrechnung = new anrechnung(); + $anrechnung->getAnrechnungPrestudent($prestudent_id, null, $row->lehrveranstaltung_id); + + if($anrechnung->result != null) + { + $lv = new lehrveranstaltung($anrechnung->result[0]->lehrveranstaltung_id); + if(($lv->ects !== $row->ects) && ($lv->ects != "") && ($lv->ects != null)) + { + $row->ects = $lv->ects; + } + } + + if($row->ects==0 || $row->ects=='') + $ectspunkte=''; + else + { + //Bei 2 Nachkommastellen beide anzeigen, sonst nur 1 + if(number_format($row->ects,1)==number_format($row->ects,2)) + $ectspunkte=number_format($row->ects,1); + else + $ectspunkte=number_format($row->ects,2); + } + $ects_gesamt+=$ectspunkte; + + if ($row->note_positiv === true) + $ects_gesamt_positiv += $ectspunkte; + + $xml .= " "; + $xml .= " lv_lehrform_kurzbz."]]>"; + if($auslandssemester) + { + $xml .= " mktime_fromdate($bisio_von))."]]>"; + $xml .= " mktime_fromdate($bisio_bis))."]]>"; + $xml .= " "; + $xml .= " "; + } + $xml .= " "; + } + } + $xml .= ""; + $xml .= ""; + $xml .= $xml_fussnote; + + } + else + { + $xml .="PERSON NICHT GEFUNDEN / KEIN STATUS"; + } + $xml .= " "; + } + } + $xml .= ""; + echo $xml; +} +?> diff --git a/rdf/zeugnisnote.rdf.php b/rdf/zeugnisnote.rdf.php index 8f2840d6a..7bbc893e9 100644 --- a/rdf/zeugnisnote.rdf.php +++ b/rdf/zeugnisnote.rdf.php @@ -119,6 +119,7 @@ foreach ($obj->result as $row) studiengang_kz])?$stg_arr[$benutzer->studiengang_kz]:'').']]> studiengang_kz.']]> studiengang_kz].']]> + studiengang_kz.']]> semester.']]> ects.']]> semester.']]> diff --git a/skin/tempus.css b/skin/tempus.css index e70e002d5..f064ccb8c 100644 --- a/skin/tempus.css +++ b/skin/tempus.css @@ -10,6 +10,16 @@ label.tempus_lektor_fix_info font-size: x-small } +label.tempus_vertrag_info +{ + border-top: 1px solid black; + border-bottom: 1px solid black; + font-weight: bold; + padding-left:2px; + padding-right:2px; + font-size: x-small +} + label.kalenderwoche { font-size: medium; @@ -209,3 +219,8 @@ treechildren::-moz-tree-row(makeItMarked) { background-color: #ceffb0; } + +.timetablefilter-vertrag .toolbarbutton-icon { + width: 25px; + height:25px; +} diff --git a/soap/stip.class.php b/soap/stip.class.php index 1ce7efc84..2787dfac3 100644 --- a/soap/stip.class.php +++ b/soap/stip.class.php @@ -151,8 +151,8 @@ class stip extends basis_db $this->Familienname_Antwort = $row->nachname; $this->SVNR_Antwort = $row->svnr; $this->PersKz_Antwort = trim($row->matrikelnr); - $this->StgKz = str_pad($row->studiengang_kz, 4,'0', STR_PAD_LEFT); - $this->Matrikelnummer = $row->matr_nr; + $this->StgKz_Antwort = str_pad($row->studiengang_kz, 4,'0', STR_PAD_LEFT); + $this->Matrikelnummer_Antwort = $row->matr_nr; $this->AntwortStatusCode = 1; return $row->prestudent_id; } @@ -193,8 +193,8 @@ class stip extends basis_db $this->Familienname_Antwort = $row->nachname; $this->SVNR_Antwort = $row->svnr; $this->PersKz_Antwort = trim($row->matrikelnr); - $this->StgKz = str_pad($row->studiengang_kz, 4,'0', STR_PAD_LEFT); - $this->Matrikelnummer = $row->matr_nr; + $this->StgKz_Antwort = str_pad($row->studiengang_kz, 4,'0', STR_PAD_LEFT); + $this->Matrikelnummer_Antwort = $row->matr_nr; $this->AntwortStatusCode = 1; return $row->prestudent_id; } @@ -236,8 +236,8 @@ class stip extends basis_db $this->Familienname_Antwort = $row->nachname; $this->SVNR_Antwort = $row->svnr; $this->PersKz_Antwort = trim($row->matrikelnr); - $this->StgKz = str_pad($row->studiengang_kz, 4,'0', STR_PAD_LEFT); - $this->Matrikelnummer = $row->matr_nr; + $this->StgKz_Antwort = str_pad($row->studiengang_kz, 4,'0', STR_PAD_LEFT); + $this->Matrikelnummer_Antwort = $row->matr_nr; $this->AntwortStatusCode = 1; return $row->prestudent_id; } @@ -289,8 +289,8 @@ class stip extends basis_db $this->Familienname_Antwort = $row->nachname; $this->SVNR_Antwort = $row->svnr; $this->PersKz_Antwort = trim($row->matrikelnr); - $this->StgKz = str_pad($row->studiengang_kz, 4,'0', STR_PAD_LEFT); - $this->Matrikelnummer = $row->matr_nr; + $this->StgKz_Antwort = str_pad($row->studiengang_kz, 4,'0', STR_PAD_LEFT); + $this->Matrikelnummer_Antwort = $row->matr_nr; $this->AntwortStatusCode = 1; return $row->prestudent_id; } diff --git a/system/checkStudenten.php b/system/checkStudenten.php index ee1089f86..2590574db 100644 --- a/system/checkStudenten.php +++ b/system/checkStudenten.php @@ -244,8 +244,9 @@ FROM WHERE status.studiensemester_kurzbz = ".$db->db_add_param($aktSem)." AND lv.studiensemester_kurzbz = ".$db->db_add_param($aktSem)." - AND status.status_kurzbz NOT IN ('Interessent','Bewerber','Aufgenommener','Wartender','Abgewiesener') - AND get_rolle_prestudent (prestudent_id, ".$db->db_add_param($aktSem).")='Student'"; + AND status.status_kurzbz NOT IN ('Interessent','Bewerber','Aufgenommener','Wartender','Abgewiesener','Unterbrecher') + AND get_rolle_prestudent (prestudent_id, ".$db->db_add_param($aktSem).")='Student' + AND status.ausbildungssemester != lv.semester"; if ($studiengang_kz != '') $qry .= " AND prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); @@ -256,11 +257,8 @@ if ($db->db_query($qry)) { $student_uid = $row->student_uid; - if ($row->ausbildungssemester != $row->semester) - { - $ausgabe[$row->studiengang][5][] = $student_uid; - $text .= "Studenten-uid: ".$student_uid."
    "; - } + $ausgabe[$row->studiengang][5][] = $student_uid; + $text .= "Studenten-uid: ".$student_uid."
    "; } } @@ -623,7 +621,7 @@ WHERE status_kurzbz in('Student', 'Diplomand', 'Absolvent', 'Abbrecher') AND tbl_prestudent.bismelden AND tbl_benutzer.aktiv - AND tbl_person.matr_nr is null OR tbl_person.matr_nr = '' + AND (tbl_person.matr_nr is null OR tbl_person.matr_nr = '') AND tbl_prestudentstatus.studiensemester_kurzbz=".$db->db_add_param($aktSem); if ($studiengang_kz != '') @@ -655,7 +653,7 @@ if ($result = $db->db_query($qry)) while ($row = $db->db_fetch_object($result)) { $ausgabe[$row->studiengang_kz][15][] = $row->vorname.' '.$row->nachname. - ' ('.$row->prestudent_id.')'; + ' (Prestudent ID: '.$row->prestudent_id.')'; $text .= $row->vorname.' '.$row->nachname. ' ('.$row->prestudent_id.')'; } diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 4ec315575..4dbfbebe0 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -3291,6 +3291,26 @@ $phrases = array( ) ) ), + array( + 'app' => 'core', + 'category' => 'global', + 'phrase' => 'rueckstelldatum', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'rückstelldatum', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'onHold date', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'infocenter', 'category' => 'infocenter', @@ -4074,7 +4094,27 @@ When on hold, the date is only a reminder.', 'insertvon' => 'system' ) ) - ) + ), + array( + 'app' => 'core', + 'category' => 'global', + 'phrase' => 'stornierteLehrauftraege', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Stornierte Lehraufträge', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Cancelled lectureships', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ) ); diff --git a/vilesci/bis/studentenmeldung.php b/vilesci/bis/studentenmeldung.php index eab717bea..7f86ca8b9 100644 --- a/vilesci/bis/studentenmeldung.php +++ b/vilesci/bis/studentenmeldung.php @@ -37,6 +37,7 @@ require_once('../../include/studiengang.class.php'); require_once('../../include/functions.inc.php'); require_once('../../include/benutzerberechtigung.class.php'); require_once('../../include/bisio.class.php'); +require_once('../../include/prestudent.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); @@ -56,8 +57,18 @@ $fehler=''; $maxsemester=0; $v=''; $studiensemester=new studiensemester(); -$ssem=$studiensemester->getaktorNext(); -$psem=$studiensemester->getPrevious(); +// Wenn Studiensemester als GET übergeben wird, dieses laden, sonst getaktorNext() +if (isset($_GET['studiensemester'])) +{ + $ssem = $_GET['studiensemester']; + $psem = $studiensemester->getPreviousFrom($ssem); +} +else +{ + $ssem = $studiensemester->getaktorNext(); + $psem = $studiensemester->getPrevious(); +} + $anzahl_fehler=0; $erhalter=''; $stgart=''; @@ -350,7 +361,46 @@ echo ' '; -echo "

    BIS - Studentendaten werden überprüft! Studiengang: ".$db->convert_html_chars($stg_kz)."

    \n"; +if ($rechte->isBerechtigt('admin')) +{ + echo '
    '; + echo 'Studiengang: '; + echo '
    '; +} +$studiengang = new studiengang($stg_kz); +$typ = new studiengang($stg_kz); +$typ->getStudiengangTyp($studiengang->typ); +echo "

    BIS - Studentendaten werden überprüft! Studiengang: ".$db->convert_html_chars($stg_kz)." - ".$typ->bezeichnung." ".$studiengang->bezeichnung."

    \n"; echo "

    Nicht plausible BIS-Daten (für Meldung ".$db->convert_html_chars($ssem)."):


    "; echo nl2br($v."\n\n"); @@ -564,6 +614,9 @@ function GenerateXMLStudentBlock($row) $datei = ''; $datumobj = new datum(); + $laststatus = new prestudent(); + $laststatus->getLastStatus($row->prestudent_id); + //Pruefen ob Ausserordnetlicher Studierender (4.Stelle in Personenkennzeichen = 9) if(mb_substr($row->matrikelnr,3,1)=='9') $ausserordentlich=true; @@ -839,7 +892,6 @@ function GenerateXMLStudentBlock($row) } } //Wenn im Status keine Organisationsform eingetragen ist, wird die des Studienganges uebernommen - //echo '
    ', var_dump($storgform), '
    '; if($storgform=='') { // Wenn FHTW und studiengang_kz 10006 (Campus International) wird die OrgForm des Studiengangs vom Incoming ermittelt @@ -893,7 +945,7 @@ function GenerateXMLStudentBlock($row) if($gserror!='') { - $v.="Bei Student (UID, Vorname, Nachname) '".$row->student_uid."', '".$row->nachname."', '".$row->vorname."' ($row->status_kurzbz): \n"; + $v.="Bei Student (UID, Vorname, Nachname) '".$row->student_uid."', '".$row->nachname."', '".$row->vorname."' ($laststatus->status_kurzbz): \n"; $v.=$gserror."\n"; return ''; } @@ -997,7 +1049,7 @@ function GenerateXMLStudentBlock($row) if($error_log!='' OR $error_log1!='') { - $v.="Bei Student (UID, Vorname, Nachname) '".$row->student_uid."', '".$row->nachname."', '".$row->vorname."' ($row->status_kurzbz): \n"; + $v.="Bei Student (UID, Vorname, Nachname) '".$row->student_uid."', '".$row->nachname."', '".$row->vorname."' ($laststatus->status_kurzbz): \n"; if($error_log!='') { $v.="     Fehler: ".$error_log."\n"; diff --git a/vilesci/lehre/lehreinheiten_vorrueckung.php b/vilesci/lehre/lehreinheiten_vorrueckung.php index 8e09dd312..af12376ae 100644 --- a/vilesci/lehre/lehreinheiten_vorrueckung.php +++ b/vilesci/lehre/lehreinheiten_vorrueckung.php @@ -104,7 +104,7 @@ echo ''; echo ' Semester: diff --git a/vilesci/personen/personendetails.php b/vilesci/personen/personendetails.php index 7ed069ce3..a14a178fb 100644 --- a/vilesci/personen/personendetails.php +++ b/vilesci/personen/personendetails.php @@ -33,6 +33,7 @@ require_once('../../include/adresse.class.php'); require_once('../../include/nation.class.php'); require_once('../../include/firma.class.php'); require_once('../../include/preincoming.class.php'); +require_once('../../include/statusgrund.class.php'); $user = get_uid(); @@ -52,61 +53,67 @@ echo ' PreInteressenten '; - include('../../include/meta/jquery.php'); - include('../../include/meta/jquery-tablesorter.php'); +include('../../include/meta/jquery.php'); +include('../../include/meta/jquery-tablesorter.php'); echo ''; ?> - - - + + +isBerechtigt('admin') && - !$rechte->isBerechtigt('preinteressent') && - !$rechte->isBerechtigt('assistenz')) + !$rechte->isBerechtigt('preinteressent') && + !$rechte->isBerechtigt('assistenz')) die('Sie haben keine Berechtigung fuer diese Seite'); if(isset($_GET['id']) && is_numeric($_GET['id'])) @@ -134,7 +141,7 @@ foreach ($kontakt->result as $row) $insertdatum = $row->insertamum; } } - else + else continue; } @@ -295,7 +302,7 @@ if(count($preinteressent->result)>0) echo ''; } */ - + //PreIncoming deprecated /* $preincoming = new preincoming(); @@ -331,11 +338,22 @@ foreach ($prestudent->result as $row) { $prestudentLastStatus = new prestudent(); $prestudentLastStatus->getLastStatus($row->prestudent_id); + + $row->status_kurzbz = $prestudentLastStatus->status_kurzbz; $row->studiensemester_kurzbz = $prestudentLastStatus->studiensemester_kurzbz; $row->ausbildungssemester = $prestudentLastStatus->ausbildungssemester; $row->datum = $prestudentLastStatus->datum; $row->orgform_kurzbz = $prestudentLastStatus->orgform_kurzbz; $row->studienplan_bezeichnung = $prestudentLastStatus->studienplan_bezeichnung; + if ($prestudentLastStatus->statusgrund_id != '') + { + $statusgrund = new statusgrund($prestudentLastStatus->statusgrund_id); + $row->statusgrund = $statusgrund->bezeichnung_mehrsprachig[DEFAULT_LANGUAGE]; + } + else + { + $row->statusgrund = ''; + } } // Sortiert PreStudenten nach Studiensemester @@ -379,14 +397,28 @@ if(count($prestudent->result)>0) '; } + $class = ''; + if ($row->status_kurzbz == 'Abgewiesener' || $row->status_kurzbz == 'Abbrecher' || $row->status_kurzbz == 'Absolvent' ) + { + $class = 'class="inactive"'; + } + $status = $row->status_kurzbz; + if ($row->ausbildungssemester != '') + { + $status .= ' ('.$row->ausbildungssemester.'. Semester)'; + } + if ($row->statusgrund != '') + { + $status .= ' - '.$row->statusgrund; + } echo ''; - echo "$row->prestudent_id"; - echo "$row->studiensemester_kurzbz"; - echo "$row->priorisierung"; - echo "".$studiengang->kuerzel_arr[$row->studiengang_kz].""; - echo "$row->orgform_kurzbz"; - echo "$row->studienplan_bezeichnung"; - echo "".($row->reihungstestangetreten?'Ja':'Nein').""; + echo "$row->prestudent_id"; + echo "$row->studiensemester_kurzbz"; + echo "$row->priorisierung"; + echo "".$studiengang->kuerzel_arr[$row->studiengang_kz].""; + echo "$row->orgform_kurzbz"; + echo "$row->studienplan_bezeichnung"; + echo "".($row->reihungstestangetreten?'Ja':'Nein').""; $uid=''; $gruppe=''; $qry ="SELECT * FROM public.tbl_student WHERE prestudent_id='$row->prestudent_id'"; @@ -405,11 +437,11 @@ if(count($prestudent->result)>0) } } } - echo "$uid"; - echo "$gruppe"; - echo "$row->status_kurzbz ".($row->ausbildungssemester!=''?"($row->ausbildungssemester. Semester)":'').""; + echo "$uid"; + echo "$gruppe"; + echo "".$status.""; echo ''; - + $studiensemester_kurzbz = $row->studiensemester_kurzbz; } echo '';