diff --git a/.gitignore b/.gitignore
old mode 100644
new mode 100755
index 96af3e5dc..84957a801
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,8 @@ documents/
vendor/
/nbproject/
+.vscode
+composer.phar
/.idea/
.settings
.project
diff --git a/CHANGELOG.md b/CHANGELOG.md
old mode 100644
new mode 100755
diff --git a/FHC-vendor/angular-tablesort/.gitignore b/FHC-vendor/angular-tablesort/.gitignore
old mode 100644
new mode 100755
diff --git a/FHC-vendor/angular-tablesort/LICENSE b/FHC-vendor/angular-tablesort/LICENSE
old mode 100644
new mode 100755
diff --git a/FHC-vendor/angular-tablesort/README.md b/FHC-vendor/angular-tablesort/README.md
old mode 100644
new mode 100755
diff --git a/FHC-vendor/angular-tablesort/bower.json b/FHC-vendor/angular-tablesort/bower.json
old mode 100644
new mode 100755
diff --git a/FHC-vendor/angular-tablesort/example.html b/FHC-vendor/angular-tablesort/example.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/angular-tablesort/index.js b/FHC-vendor/angular-tablesort/index.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/angular-tablesort/js/angular-tablesort.js b/FHC-vendor/angular-tablesort/js/angular-tablesort.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/angular-tablesort/package.json b/FHC-vendor/angular-tablesort/package.json
old mode 100644
new mode 100755
diff --git a/FHC-vendor/angular-tablesort/tablesort.css b/FHC-vendor/angular-tablesort/tablesort.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/changelog.txt b/FHC-vendor/easyui/changelog.txt
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/easyloader.js b/FHC-vendor/easyui/easyloader.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/jquery.easyui.min.js b/FHC-vendor/easyui/jquery.easyui.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/jquery.easyui.mobile.js b/FHC-vendor/easyui/jquery.easyui.mobile.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/jquery.min.js b/FHC-vendor/easyui/jquery.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/license_freeware.txt b/FHC-vendor/easyui/license_freeware.txt
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/locale/easyui-lang-af.js b/FHC-vendor/easyui/locale/easyui-lang-af.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/locale/easyui-lang-am.js b/FHC-vendor/easyui/locale/easyui-lang-am.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/locale/easyui-lang-ar.js b/FHC-vendor/easyui/locale/easyui-lang-ar.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/locale/easyui-lang-bg.js b/FHC-vendor/easyui/locale/easyui-lang-bg.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/locale/easyui-lang-ca.js b/FHC-vendor/easyui/locale/easyui-lang-ca.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/locale/easyui-lang-cs.js b/FHC-vendor/easyui/locale/easyui-lang-cs.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/locale/easyui-lang-cz.js b/FHC-vendor/easyui/locale/easyui-lang-cz.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/locale/easyui-lang-da.js b/FHC-vendor/easyui/locale/easyui-lang-da.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/locale/easyui-lang-de.js b/FHC-vendor/easyui/locale/easyui-lang-de.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/locale/easyui-lang-el.js b/FHC-vendor/easyui/locale/easyui-lang-el.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/locale/easyui-lang-en.js b/FHC-vendor/easyui/locale/easyui-lang-en.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/locale/easyui-lang-es.js b/FHC-vendor/easyui/locale/easyui-lang-es.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/locale/easyui-lang-fr.js b/FHC-vendor/easyui/locale/easyui-lang-fr.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/locale/easyui-lang-it.js b/FHC-vendor/easyui/locale/easyui-lang-it.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/locale/easyui-lang-jp.js b/FHC-vendor/easyui/locale/easyui-lang-jp.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/locale/easyui-lang-nl.js b/FHC-vendor/easyui/locale/easyui-lang-nl.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/locale/easyui-lang-pl.js b/FHC-vendor/easyui/locale/easyui-lang-pl.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/locale/easyui-lang-pt_BR.js b/FHC-vendor/easyui/locale/easyui-lang-pt_BR.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/locale/easyui-lang-ru.js b/FHC-vendor/easyui/locale/easyui-lang-ru.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/locale/easyui-lang-sv_SE.js b/FHC-vendor/easyui/locale/easyui-lang-sv_SE.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/locale/easyui-lang-tr.js b/FHC-vendor/easyui/locale/easyui-lang-tr.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/locale/easyui-lang-zh_CN.js b/FHC-vendor/easyui/locale/easyui-lang-zh_CN.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/locale/easyui-lang-zh_TW.js b/FHC-vendor/easyui/locale/easyui-lang-zh_TW.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.accordion.js b/FHC-vendor/easyui/plugins/jquery.accordion.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.calendar.js b/FHC-vendor/easyui/plugins/jquery.calendar.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.combo.js b/FHC-vendor/easyui/plugins/jquery.combo.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.combobox.js b/FHC-vendor/easyui/plugins/jquery.combobox.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.combogrid.js b/FHC-vendor/easyui/plugins/jquery.combogrid.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.combotree.js b/FHC-vendor/easyui/plugins/jquery.combotree.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.datagrid.js b/FHC-vendor/easyui/plugins/jquery.datagrid.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.datalist.js b/FHC-vendor/easyui/plugins/jquery.datalist.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.datebox.js b/FHC-vendor/easyui/plugins/jquery.datebox.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.datetimebox.js b/FHC-vendor/easyui/plugins/jquery.datetimebox.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.datetimespinner.js b/FHC-vendor/easyui/plugins/jquery.datetimespinner.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.dialog.js b/FHC-vendor/easyui/plugins/jquery.dialog.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.draggable.js b/FHC-vendor/easyui/plugins/jquery.draggable.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.droppable.js b/FHC-vendor/easyui/plugins/jquery.droppable.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.filebox.js b/FHC-vendor/easyui/plugins/jquery.filebox.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.form.js b/FHC-vendor/easyui/plugins/jquery.form.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.layout.js b/FHC-vendor/easyui/plugins/jquery.layout.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.linkbutton.js b/FHC-vendor/easyui/plugins/jquery.linkbutton.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.menu.js b/FHC-vendor/easyui/plugins/jquery.menu.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.menubutton.js b/FHC-vendor/easyui/plugins/jquery.menubutton.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.messager.js b/FHC-vendor/easyui/plugins/jquery.messager.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.mobile.js b/FHC-vendor/easyui/plugins/jquery.mobile.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.numberbox.js b/FHC-vendor/easyui/plugins/jquery.numberbox.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.numberspinner.js b/FHC-vendor/easyui/plugins/jquery.numberspinner.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.pagination.js b/FHC-vendor/easyui/plugins/jquery.pagination.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.panel.js b/FHC-vendor/easyui/plugins/jquery.panel.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.parser.js b/FHC-vendor/easyui/plugins/jquery.parser.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.progressbar.js b/FHC-vendor/easyui/plugins/jquery.progressbar.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.propertygrid.js b/FHC-vendor/easyui/plugins/jquery.propertygrid.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.resizable.js b/FHC-vendor/easyui/plugins/jquery.resizable.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.searchbox.js b/FHC-vendor/easyui/plugins/jquery.searchbox.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.slider.js b/FHC-vendor/easyui/plugins/jquery.slider.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.spinner.js b/FHC-vendor/easyui/plugins/jquery.spinner.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.splitbutton.js b/FHC-vendor/easyui/plugins/jquery.splitbutton.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.switchbutton.js b/FHC-vendor/easyui/plugins/jquery.switchbutton.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.tabs.js b/FHC-vendor/easyui/plugins/jquery.tabs.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.textbox.js b/FHC-vendor/easyui/plugins/jquery.textbox.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.timespinner.js b/FHC-vendor/easyui/plugins/jquery.timespinner.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.tooltip.js b/FHC-vendor/easyui/plugins/jquery.tooltip.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.tree.js b/FHC-vendor/easyui/plugins/jquery.tree.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.treegrid.js b/FHC-vendor/easyui/plugins/jquery.treegrid.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.validatebox.js b/FHC-vendor/easyui/plugins/jquery.validatebox.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/plugins/jquery.window.js b/FHC-vendor/easyui/plugins/jquery.window.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/readme.txt b/FHC-vendor/easyui/readme.txt
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/src/easyloader.js b/FHC-vendor/easyui/src/easyloader.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/src/jquery.accordion.js b/FHC-vendor/easyui/src/jquery.accordion.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/src/jquery.calendar.js b/FHC-vendor/easyui/src/jquery.calendar.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/src/jquery.combobox.js b/FHC-vendor/easyui/src/jquery.combobox.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/src/jquery.datebox.js b/FHC-vendor/easyui/src/jquery.datebox.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/src/jquery.draggable.js b/FHC-vendor/easyui/src/jquery.draggable.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/src/jquery.droppable.js b/FHC-vendor/easyui/src/jquery.droppable.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/src/jquery.form.js b/FHC-vendor/easyui/src/jquery.form.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/src/jquery.linkbutton.js b/FHC-vendor/easyui/src/jquery.linkbutton.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/src/jquery.menu.js b/FHC-vendor/easyui/src/jquery.menu.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/src/jquery.parser.js b/FHC-vendor/easyui/src/jquery.parser.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/src/jquery.progressbar.js b/FHC-vendor/easyui/src/jquery.progressbar.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/src/jquery.propertygrid.js b/FHC-vendor/easyui/src/jquery.propertygrid.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/src/jquery.resizable.js b/FHC-vendor/easyui/src/jquery.resizable.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/src/jquery.slider.js b/FHC-vendor/easyui/src/jquery.slider.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/src/jquery.tabs.js b/FHC-vendor/easyui/src/jquery.tabs.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/src/jquery.window.js b/FHC-vendor/easyui/src/jquery.window.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/accordion.css b/FHC-vendor/easyui/themes/black/accordion.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/calendar.css b/FHC-vendor/easyui/themes/black/calendar.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/combo.css b/FHC-vendor/easyui/themes/black/combo.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/combobox.css b/FHC-vendor/easyui/themes/black/combobox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/datagrid.css b/FHC-vendor/easyui/themes/black/datagrid.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/datalist.css b/FHC-vendor/easyui/themes/black/datalist.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/datebox.css b/FHC-vendor/easyui/themes/black/datebox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/dialog.css b/FHC-vendor/easyui/themes/black/dialog.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/easyui.css b/FHC-vendor/easyui/themes/black/easyui.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/filebox.css b/FHC-vendor/easyui/themes/black/filebox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/images/accordion_arrows.png b/FHC-vendor/easyui/themes/black/images/accordion_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/images/blank.gif b/FHC-vendor/easyui/themes/black/images/blank.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/images/calendar_arrows.png b/FHC-vendor/easyui/themes/black/images/calendar_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/images/combo_arrow.png b/FHC-vendor/easyui/themes/black/images/combo_arrow.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/images/datagrid_icons.png b/FHC-vendor/easyui/themes/black/images/datagrid_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/images/datebox_arrow.png b/FHC-vendor/easyui/themes/black/images/datebox_arrow.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/images/layout_arrows.png b/FHC-vendor/easyui/themes/black/images/layout_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/images/linkbutton_bg.png b/FHC-vendor/easyui/themes/black/images/linkbutton_bg.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/images/loading.gif b/FHC-vendor/easyui/themes/black/images/loading.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/images/menu_arrows.png b/FHC-vendor/easyui/themes/black/images/menu_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/images/messager_icons.png b/FHC-vendor/easyui/themes/black/images/messager_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/images/pagination_icons.png b/FHC-vendor/easyui/themes/black/images/pagination_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/images/panel_tools.png b/FHC-vendor/easyui/themes/black/images/panel_tools.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/images/searchbox_button.png b/FHC-vendor/easyui/themes/black/images/searchbox_button.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/images/slider_handle.png b/FHC-vendor/easyui/themes/black/images/slider_handle.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/images/spinner_arrows.png b/FHC-vendor/easyui/themes/black/images/spinner_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/images/tabs_icons.png b/FHC-vendor/easyui/themes/black/images/tabs_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/images/tree_icons.png b/FHC-vendor/easyui/themes/black/images/tree_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/images/validatebox_warning.png b/FHC-vendor/easyui/themes/black/images/validatebox_warning.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/layout.css b/FHC-vendor/easyui/themes/black/layout.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/linkbutton.css b/FHC-vendor/easyui/themes/black/linkbutton.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/menu.css b/FHC-vendor/easyui/themes/black/menu.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/menubutton.css b/FHC-vendor/easyui/themes/black/menubutton.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/messager.css b/FHC-vendor/easyui/themes/black/messager.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/numberbox.css b/FHC-vendor/easyui/themes/black/numberbox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/pagination.css b/FHC-vendor/easyui/themes/black/pagination.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/panel.css b/FHC-vendor/easyui/themes/black/panel.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/progressbar.css b/FHC-vendor/easyui/themes/black/progressbar.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/propertygrid.css b/FHC-vendor/easyui/themes/black/propertygrid.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/searchbox.css b/FHC-vendor/easyui/themes/black/searchbox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/slider.css b/FHC-vendor/easyui/themes/black/slider.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/spinner.css b/FHC-vendor/easyui/themes/black/spinner.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/splitbutton.css b/FHC-vendor/easyui/themes/black/splitbutton.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/switchbutton.css b/FHC-vendor/easyui/themes/black/switchbutton.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/tabs.css b/FHC-vendor/easyui/themes/black/tabs.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/textbox.css b/FHC-vendor/easyui/themes/black/textbox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/tooltip.css b/FHC-vendor/easyui/themes/black/tooltip.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/tree.css b/FHC-vendor/easyui/themes/black/tree.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/validatebox.css b/FHC-vendor/easyui/themes/black/validatebox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/black/window.css b/FHC-vendor/easyui/themes/black/window.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/accordion.css b/FHC-vendor/easyui/themes/bootstrap/accordion.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/calendar.css b/FHC-vendor/easyui/themes/bootstrap/calendar.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/combo.css b/FHC-vendor/easyui/themes/bootstrap/combo.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/combobox.css b/FHC-vendor/easyui/themes/bootstrap/combobox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/datagrid.css b/FHC-vendor/easyui/themes/bootstrap/datagrid.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/datebox.css b/FHC-vendor/easyui/themes/bootstrap/datebox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/dialog.css b/FHC-vendor/easyui/themes/bootstrap/dialog.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/easyui.css b/FHC-vendor/easyui/themes/bootstrap/easyui.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/filebox.css b/FHC-vendor/easyui/themes/bootstrap/filebox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/images/accordion_arrows.png b/FHC-vendor/easyui/themes/bootstrap/images/accordion_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/images/blank.gif b/FHC-vendor/easyui/themes/bootstrap/images/blank.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/images/calendar_arrows.png b/FHC-vendor/easyui/themes/bootstrap/images/calendar_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/images/combo_arrow.png b/FHC-vendor/easyui/themes/bootstrap/images/combo_arrow.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/images/datagrid_icons.png b/FHC-vendor/easyui/themes/bootstrap/images/datagrid_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/images/datebox_arrow.png b/FHC-vendor/easyui/themes/bootstrap/images/datebox_arrow.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/images/layout_arrows.png b/FHC-vendor/easyui/themes/bootstrap/images/layout_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/images/linkbutton_bg.png b/FHC-vendor/easyui/themes/bootstrap/images/linkbutton_bg.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/images/loading.gif b/FHC-vendor/easyui/themes/bootstrap/images/loading.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/images/menu_arrows.png b/FHC-vendor/easyui/themes/bootstrap/images/menu_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/images/messager_icons.png b/FHC-vendor/easyui/themes/bootstrap/images/messager_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/images/pagination_icons.png b/FHC-vendor/easyui/themes/bootstrap/images/pagination_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/images/panel_tools.png b/FHC-vendor/easyui/themes/bootstrap/images/panel_tools.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/images/searchbox_button.png b/FHC-vendor/easyui/themes/bootstrap/images/searchbox_button.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/images/slider_handle.png b/FHC-vendor/easyui/themes/bootstrap/images/slider_handle.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/images/spinner_arrows.png b/FHC-vendor/easyui/themes/bootstrap/images/spinner_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/images/tabs_icons.png b/FHC-vendor/easyui/themes/bootstrap/images/tabs_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/images/tree_icons.png b/FHC-vendor/easyui/themes/bootstrap/images/tree_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/images/validatebox_warning.png b/FHC-vendor/easyui/themes/bootstrap/images/validatebox_warning.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/layout.css b/FHC-vendor/easyui/themes/bootstrap/layout.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/linkbutton.css b/FHC-vendor/easyui/themes/bootstrap/linkbutton.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/menu.css b/FHC-vendor/easyui/themes/bootstrap/menu.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/menubutton.css b/FHC-vendor/easyui/themes/bootstrap/menubutton.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/messager.css b/FHC-vendor/easyui/themes/bootstrap/messager.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/numberbox.css b/FHC-vendor/easyui/themes/bootstrap/numberbox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/pagination.css b/FHC-vendor/easyui/themes/bootstrap/pagination.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/panel.css b/FHC-vendor/easyui/themes/bootstrap/panel.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/progressbar.css b/FHC-vendor/easyui/themes/bootstrap/progressbar.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/propertygrid.css b/FHC-vendor/easyui/themes/bootstrap/propertygrid.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/searchbox.css b/FHC-vendor/easyui/themes/bootstrap/searchbox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/slider.css b/FHC-vendor/easyui/themes/bootstrap/slider.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/spinner.css b/FHC-vendor/easyui/themes/bootstrap/spinner.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/splitbutton.css b/FHC-vendor/easyui/themes/bootstrap/splitbutton.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/switchbutton.css b/FHC-vendor/easyui/themes/bootstrap/switchbutton.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/tabs.css b/FHC-vendor/easyui/themes/bootstrap/tabs.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/textbox.css b/FHC-vendor/easyui/themes/bootstrap/textbox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/tooltip.css b/FHC-vendor/easyui/themes/bootstrap/tooltip.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/tree.css b/FHC-vendor/easyui/themes/bootstrap/tree.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/validatebox.css b/FHC-vendor/easyui/themes/bootstrap/validatebox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/bootstrap/window.css b/FHC-vendor/easyui/themes/bootstrap/window.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/color.css b/FHC-vendor/easyui/themes/color.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/accordion.css b/FHC-vendor/easyui/themes/default/accordion.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/calendar.css b/FHC-vendor/easyui/themes/default/calendar.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/combo.css b/FHC-vendor/easyui/themes/default/combo.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/combobox.css b/FHC-vendor/easyui/themes/default/combobox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/datagrid.css b/FHC-vendor/easyui/themes/default/datagrid.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/datalist.css b/FHC-vendor/easyui/themes/default/datalist.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/datebox.css b/FHC-vendor/easyui/themes/default/datebox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/dialog.css b/FHC-vendor/easyui/themes/default/dialog.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/easyui.css b/FHC-vendor/easyui/themes/default/easyui.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/filebox.css b/FHC-vendor/easyui/themes/default/filebox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/images/accordion_arrows.png b/FHC-vendor/easyui/themes/default/images/accordion_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/images/blank.gif b/FHC-vendor/easyui/themes/default/images/blank.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/images/calendar_arrows.png b/FHC-vendor/easyui/themes/default/images/calendar_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/images/combo_arrow.png b/FHC-vendor/easyui/themes/default/images/combo_arrow.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/images/datagrid_icons.png b/FHC-vendor/easyui/themes/default/images/datagrid_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/images/datebox_arrow.png b/FHC-vendor/easyui/themes/default/images/datebox_arrow.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/images/layout_arrows.png b/FHC-vendor/easyui/themes/default/images/layout_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/images/linkbutton_bg.png b/FHC-vendor/easyui/themes/default/images/linkbutton_bg.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/images/loading.gif b/FHC-vendor/easyui/themes/default/images/loading.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/images/menu_arrows.png b/FHC-vendor/easyui/themes/default/images/menu_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/images/messager_icons.png b/FHC-vendor/easyui/themes/default/images/messager_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/images/pagination_icons.png b/FHC-vendor/easyui/themes/default/images/pagination_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/images/panel_tools.png b/FHC-vendor/easyui/themes/default/images/panel_tools.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/images/searchbox_button.png b/FHC-vendor/easyui/themes/default/images/searchbox_button.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/images/slider_handle.png b/FHC-vendor/easyui/themes/default/images/slider_handle.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/images/spinner_arrows.png b/FHC-vendor/easyui/themes/default/images/spinner_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/images/tabs_icons.png b/FHC-vendor/easyui/themes/default/images/tabs_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/images/tree_icons.png b/FHC-vendor/easyui/themes/default/images/tree_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/images/validatebox_warning.png b/FHC-vendor/easyui/themes/default/images/validatebox_warning.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/layout.css b/FHC-vendor/easyui/themes/default/layout.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/linkbutton.css b/FHC-vendor/easyui/themes/default/linkbutton.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/menu.css b/FHC-vendor/easyui/themes/default/menu.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/menubutton.css b/FHC-vendor/easyui/themes/default/menubutton.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/messager.css b/FHC-vendor/easyui/themes/default/messager.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/numberbox.css b/FHC-vendor/easyui/themes/default/numberbox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/pagination.css b/FHC-vendor/easyui/themes/default/pagination.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/panel.css b/FHC-vendor/easyui/themes/default/panel.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/progressbar.css b/FHC-vendor/easyui/themes/default/progressbar.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/propertygrid.css b/FHC-vendor/easyui/themes/default/propertygrid.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/searchbox.css b/FHC-vendor/easyui/themes/default/searchbox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/slider.css b/FHC-vendor/easyui/themes/default/slider.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/spinner.css b/FHC-vendor/easyui/themes/default/spinner.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/splitbutton.css b/FHC-vendor/easyui/themes/default/splitbutton.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/switchbutton.css b/FHC-vendor/easyui/themes/default/switchbutton.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/tabs.css b/FHC-vendor/easyui/themes/default/tabs.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/textbox.css b/FHC-vendor/easyui/themes/default/textbox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/tooltip.css b/FHC-vendor/easyui/themes/default/tooltip.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/tree.css b/FHC-vendor/easyui/themes/default/tree.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/validatebox.css b/FHC-vendor/easyui/themes/default/validatebox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/default/window.css b/FHC-vendor/easyui/themes/default/window.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/accordion.css b/FHC-vendor/easyui/themes/gray/accordion.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/calendar.css b/FHC-vendor/easyui/themes/gray/calendar.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/combo.css b/FHC-vendor/easyui/themes/gray/combo.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/combobox.css b/FHC-vendor/easyui/themes/gray/combobox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/datagrid.css b/FHC-vendor/easyui/themes/gray/datagrid.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/datalist.css b/FHC-vendor/easyui/themes/gray/datalist.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/datebox.css b/FHC-vendor/easyui/themes/gray/datebox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/dialog.css b/FHC-vendor/easyui/themes/gray/dialog.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/easyui.css b/FHC-vendor/easyui/themes/gray/easyui.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/filebox.css b/FHC-vendor/easyui/themes/gray/filebox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/images/accordion_arrows.png b/FHC-vendor/easyui/themes/gray/images/accordion_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/images/blank.gif b/FHC-vendor/easyui/themes/gray/images/blank.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/images/calendar_arrows.png b/FHC-vendor/easyui/themes/gray/images/calendar_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/images/combo_arrow.png b/FHC-vendor/easyui/themes/gray/images/combo_arrow.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/images/datagrid_icons.png b/FHC-vendor/easyui/themes/gray/images/datagrid_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/images/datebox_arrow.png b/FHC-vendor/easyui/themes/gray/images/datebox_arrow.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/images/layout_arrows.png b/FHC-vendor/easyui/themes/gray/images/layout_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/images/linkbutton_bg.png b/FHC-vendor/easyui/themes/gray/images/linkbutton_bg.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/images/loading.gif b/FHC-vendor/easyui/themes/gray/images/loading.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/images/menu_arrows.png b/FHC-vendor/easyui/themes/gray/images/menu_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/images/messager_icons.png b/FHC-vendor/easyui/themes/gray/images/messager_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/images/pagination_icons.png b/FHC-vendor/easyui/themes/gray/images/pagination_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/images/panel_tools.png b/FHC-vendor/easyui/themes/gray/images/panel_tools.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/images/searchbox_button.png b/FHC-vendor/easyui/themes/gray/images/searchbox_button.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/images/slider_handle.png b/FHC-vendor/easyui/themes/gray/images/slider_handle.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/images/spinner_arrows.png b/FHC-vendor/easyui/themes/gray/images/spinner_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/images/tabs_icons.png b/FHC-vendor/easyui/themes/gray/images/tabs_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/images/tree_icons.png b/FHC-vendor/easyui/themes/gray/images/tree_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/images/validatebox_warning.png b/FHC-vendor/easyui/themes/gray/images/validatebox_warning.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/layout.css b/FHC-vendor/easyui/themes/gray/layout.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/linkbutton.css b/FHC-vendor/easyui/themes/gray/linkbutton.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/menu.css b/FHC-vendor/easyui/themes/gray/menu.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/menubutton.css b/FHC-vendor/easyui/themes/gray/menubutton.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/messager.css b/FHC-vendor/easyui/themes/gray/messager.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/numberbox.css b/FHC-vendor/easyui/themes/gray/numberbox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/pagination.css b/FHC-vendor/easyui/themes/gray/pagination.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/panel.css b/FHC-vendor/easyui/themes/gray/panel.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/progressbar.css b/FHC-vendor/easyui/themes/gray/progressbar.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/propertygrid.css b/FHC-vendor/easyui/themes/gray/propertygrid.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/searchbox.css b/FHC-vendor/easyui/themes/gray/searchbox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/slider.css b/FHC-vendor/easyui/themes/gray/slider.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/spinner.css b/FHC-vendor/easyui/themes/gray/spinner.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/splitbutton.css b/FHC-vendor/easyui/themes/gray/splitbutton.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/switchbutton.css b/FHC-vendor/easyui/themes/gray/switchbutton.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/tabs.css b/FHC-vendor/easyui/themes/gray/tabs.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/textbox.css b/FHC-vendor/easyui/themes/gray/textbox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/tooltip.css b/FHC-vendor/easyui/themes/gray/tooltip.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/tree.css b/FHC-vendor/easyui/themes/gray/tree.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/validatebox.css b/FHC-vendor/easyui/themes/gray/validatebox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/gray/window.css b/FHC-vendor/easyui/themes/gray/window.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icon.css b/FHC-vendor/easyui/themes/icon.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/back.png b/FHC-vendor/easyui/themes/icons/back.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/blank.gif b/FHC-vendor/easyui/themes/icons/blank.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/cancel.png b/FHC-vendor/easyui/themes/icons/cancel.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/clear.png b/FHC-vendor/easyui/themes/icons/clear.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/cut.png b/FHC-vendor/easyui/themes/icons/cut.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/edit_add.png b/FHC-vendor/easyui/themes/icons/edit_add.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/edit_remove.png b/FHC-vendor/easyui/themes/icons/edit_remove.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/filesave.png b/FHC-vendor/easyui/themes/icons/filesave.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/filter.png b/FHC-vendor/easyui/themes/icons/filter.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/help.png b/FHC-vendor/easyui/themes/icons/help.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/large_chart.png b/FHC-vendor/easyui/themes/icons/large_chart.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/large_clipart.png b/FHC-vendor/easyui/themes/icons/large_clipart.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/large_picture.png b/FHC-vendor/easyui/themes/icons/large_picture.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/large_shapes.png b/FHC-vendor/easyui/themes/icons/large_shapes.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/large_smartart.png b/FHC-vendor/easyui/themes/icons/large_smartart.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/lock.png b/FHC-vendor/easyui/themes/icons/lock.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/man.png b/FHC-vendor/easyui/themes/icons/man.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/mini_add.png b/FHC-vendor/easyui/themes/icons/mini_add.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/mini_edit.png b/FHC-vendor/easyui/themes/icons/mini_edit.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/mini_refresh.png b/FHC-vendor/easyui/themes/icons/mini_refresh.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/more.png b/FHC-vendor/easyui/themes/icons/more.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/no.png b/FHC-vendor/easyui/themes/icons/no.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/ok.png b/FHC-vendor/easyui/themes/icons/ok.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/pencil.png b/FHC-vendor/easyui/themes/icons/pencil.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/print.png b/FHC-vendor/easyui/themes/icons/print.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/redo.png b/FHC-vendor/easyui/themes/icons/redo.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/reload.png b/FHC-vendor/easyui/themes/icons/reload.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/search.png b/FHC-vendor/easyui/themes/icons/search.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/sum.png b/FHC-vendor/easyui/themes/icons/sum.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/tip.png b/FHC-vendor/easyui/themes/icons/tip.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/icons/undo.png b/FHC-vendor/easyui/themes/icons/undo.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/accordion.css b/FHC-vendor/easyui/themes/metro/accordion.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/calendar.css b/FHC-vendor/easyui/themes/metro/calendar.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/combo.css b/FHC-vendor/easyui/themes/metro/combo.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/combobox.css b/FHC-vendor/easyui/themes/metro/combobox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/datagrid.css b/FHC-vendor/easyui/themes/metro/datagrid.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/datalist.css b/FHC-vendor/easyui/themes/metro/datalist.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/datebox.css b/FHC-vendor/easyui/themes/metro/datebox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/dialog.css b/FHC-vendor/easyui/themes/metro/dialog.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/easyui.css b/FHC-vendor/easyui/themes/metro/easyui.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/filebox.css b/FHC-vendor/easyui/themes/metro/filebox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/images/accordion_arrows.png b/FHC-vendor/easyui/themes/metro/images/accordion_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/images/blank.gif b/FHC-vendor/easyui/themes/metro/images/blank.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/images/calendar_arrows.png b/FHC-vendor/easyui/themes/metro/images/calendar_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/images/combo_arrow.png b/FHC-vendor/easyui/themes/metro/images/combo_arrow.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/images/datagrid_icons.png b/FHC-vendor/easyui/themes/metro/images/datagrid_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/images/datebox_arrow.png b/FHC-vendor/easyui/themes/metro/images/datebox_arrow.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/images/layout_arrows.png b/FHC-vendor/easyui/themes/metro/images/layout_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/images/linkbutton_bg.png b/FHC-vendor/easyui/themes/metro/images/linkbutton_bg.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/images/loading.gif b/FHC-vendor/easyui/themes/metro/images/loading.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/images/menu_arrows.png b/FHC-vendor/easyui/themes/metro/images/menu_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/images/messager_icons.png b/FHC-vendor/easyui/themes/metro/images/messager_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/images/pagination_icons.png b/FHC-vendor/easyui/themes/metro/images/pagination_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/images/panel_tools.png b/FHC-vendor/easyui/themes/metro/images/panel_tools.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/images/searchbox_button.png b/FHC-vendor/easyui/themes/metro/images/searchbox_button.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/images/slider_handle.png b/FHC-vendor/easyui/themes/metro/images/slider_handle.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/images/spinner_arrows.png b/FHC-vendor/easyui/themes/metro/images/spinner_arrows.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/images/tabs_icons.png b/FHC-vendor/easyui/themes/metro/images/tabs_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/images/tree_icons.png b/FHC-vendor/easyui/themes/metro/images/tree_icons.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/images/validatebox_warning.png b/FHC-vendor/easyui/themes/metro/images/validatebox_warning.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/layout.css b/FHC-vendor/easyui/themes/metro/layout.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/linkbutton.css b/FHC-vendor/easyui/themes/metro/linkbutton.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/menu.css b/FHC-vendor/easyui/themes/metro/menu.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/menubutton.css b/FHC-vendor/easyui/themes/metro/menubutton.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/messager.css b/FHC-vendor/easyui/themes/metro/messager.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/numberbox.css b/FHC-vendor/easyui/themes/metro/numberbox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/pagination.css b/FHC-vendor/easyui/themes/metro/pagination.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/panel.css b/FHC-vendor/easyui/themes/metro/panel.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/progressbar.css b/FHC-vendor/easyui/themes/metro/progressbar.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/propertygrid.css b/FHC-vendor/easyui/themes/metro/propertygrid.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/searchbox.css b/FHC-vendor/easyui/themes/metro/searchbox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/slider.css b/FHC-vendor/easyui/themes/metro/slider.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/spinner.css b/FHC-vendor/easyui/themes/metro/spinner.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/splitbutton.css b/FHC-vendor/easyui/themes/metro/splitbutton.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/switchbutton.css b/FHC-vendor/easyui/themes/metro/switchbutton.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/tabs.css b/FHC-vendor/easyui/themes/metro/tabs.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/textbox.css b/FHC-vendor/easyui/themes/metro/textbox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/tooltip.css b/FHC-vendor/easyui/themes/metro/tooltip.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/tree.css b/FHC-vendor/easyui/themes/metro/tree.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/validatebox.css b/FHC-vendor/easyui/themes/metro/validatebox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/metro/window.css b/FHC-vendor/easyui/themes/metro/window.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/mobile.css b/FHC-vendor/easyui/themes/mobile.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/easyui/themes/vilesci b/FHC-vendor/easyui/themes/vilesci
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/.gitattributes b/FHC-vendor/jquery-tablesorter/.gitattributes
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/.gitignore b/FHC-vendor/jquery-tablesorter/.gitignore
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/.jscsrc b/FHC-vendor/jquery-tablesorter/.jscsrc
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/CONTRIBUTING.md b/FHC-vendor/jquery-tablesorter/CONTRIBUTING.md
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/Gruntfile.js b/FHC-vendor/jquery-tablesorter/Gruntfile.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/README.md b/FHC-vendor/jquery-tablesorter/README.md
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/addons/pager/icons/first.png b/FHC-vendor/jquery-tablesorter/addons/pager/icons/first.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/addons/pager/icons/last.png b/FHC-vendor/jquery-tablesorter/addons/pager/icons/last.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/addons/pager/icons/loading.gif b/FHC-vendor/jquery-tablesorter/addons/pager/icons/loading.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/addons/pager/icons/next.png b/FHC-vendor/jquery-tablesorter/addons/pager/icons/next.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/addons/pager/icons/prev.png b/FHC-vendor/jquery-tablesorter/addons/pager/icons/prev.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.css b/FHC-vendor/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.js b/FHC-vendor/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/beta-testing/example-pager-custom-controls.html b/FHC-vendor/jquery-tablesorter/beta-testing/example-pager-custom-controls.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/beta-testing/example-widget-column-reorder.html b/FHC-vendor/jquery-tablesorter/beta-testing/example-widget-column-reorder.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/beta-testing/pager-custom-controls.js b/FHC-vendor/jquery-tablesorter/beta-testing/pager-custom-controls.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/beta-testing/widget-reorder.js b/FHC-vendor/jquery-tablesorter/beta-testing/widget-reorder.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/bower.json b/FHC-vendor/jquery-tablesorter/bower.json
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/changelog.txt b/FHC-vendor/jquery-tablesorter/changelog.txt
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/bootstrap.less b/FHC-vendor/jquery-tablesorter/css/bootstrap.less
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/dragtable.mod.css b/FHC-vendor/jquery-tablesorter/css/dragtable.mod.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/filter.formatter.css b/FHC-vendor/jquery-tablesorter/css/filter.formatter.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/black-asc.gif b/FHC-vendor/jquery-tablesorter/css/images/black-asc.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/black-desc.gif b/FHC-vendor/jquery-tablesorter/css/images/black-desc.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/black-unsorted.gif b/FHC-vendor/jquery-tablesorter/css/images/black-unsorted.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/bootstrap-black-unsorted.png b/FHC-vendor/jquery-tablesorter/css/images/bootstrap-black-unsorted.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/bootstrap-white-unsorted.png b/FHC-vendor/jquery-tablesorter/css/images/bootstrap-white-unsorted.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/dragtable-handle.png b/FHC-vendor/jquery-tablesorter/css/images/dragtable-handle.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/dragtable-handle.svg b/FHC-vendor/jquery-tablesorter/css/images/dragtable-handle.svg
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/dropbox-asc-hovered.png b/FHC-vendor/jquery-tablesorter/css/images/dropbox-asc-hovered.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/dropbox-asc.png b/FHC-vendor/jquery-tablesorter/css/images/dropbox-asc.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/dropbox-desc-hovered.png b/FHC-vendor/jquery-tablesorter/css/images/dropbox-desc-hovered.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/dropbox-desc.png b/FHC-vendor/jquery-tablesorter/css/images/dropbox-desc.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/green-asc.gif b/FHC-vendor/jquery-tablesorter/css/images/green-asc.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/green-desc.gif b/FHC-vendor/jquery-tablesorter/css/images/green-desc.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/green-header.gif b/FHC-vendor/jquery-tablesorter/css/images/green-header.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/green-unsorted.gif b/FHC-vendor/jquery-tablesorter/css/images/green-unsorted.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/ice-asc.gif b/FHC-vendor/jquery-tablesorter/css/images/ice-asc.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/ice-desc.gif b/FHC-vendor/jquery-tablesorter/css/images/ice-desc.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/ice-unsorted.gif b/FHC-vendor/jquery-tablesorter/css/images/ice-unsorted.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/metro-black-asc.png b/FHC-vendor/jquery-tablesorter/css/images/metro-black-asc.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/metro-black-desc.png b/FHC-vendor/jquery-tablesorter/css/images/metro-black-desc.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/metro-loading.gif b/FHC-vendor/jquery-tablesorter/css/images/metro-loading.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/metro-unsorted.png b/FHC-vendor/jquery-tablesorter/css/images/metro-unsorted.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/metro-white-asc.png b/FHC-vendor/jquery-tablesorter/css/images/metro-white-asc.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/metro-white-desc.png b/FHC-vendor/jquery-tablesorter/css/images/metro-white-desc.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/white-asc.gif b/FHC-vendor/jquery-tablesorter/css/images/white-asc.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/white-desc.gif b/FHC-vendor/jquery-tablesorter/css/images/white-desc.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/images/white-unsorted.gif b/FHC-vendor/jquery-tablesorter/css/images/white-unsorted.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/metro.less b/FHC-vendor/jquery-tablesorter/css/metro.less
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/psd/green-asc.psd b/FHC-vendor/jquery-tablesorter/css/psd/green-asc.psd
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/psd/green-desc.psd b/FHC-vendor/jquery-tablesorter/css/psd/green-desc.psd
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/psd/green-unsorted.psd b/FHC-vendor/jquery-tablesorter/css/psd/green-unsorted.psd
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/psd/metro-style.psd b/FHC-vendor/jquery-tablesorter/css/psd/metro-style.psd
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/theme.black-ice.css b/FHC-vendor/jquery-tablesorter/css/theme.black-ice.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/theme.blue.css b/FHC-vendor/jquery-tablesorter/css/theme.blue.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/theme.bootstrap.css b/FHC-vendor/jquery-tablesorter/css/theme.bootstrap.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/theme.bootstrap_2.css b/FHC-vendor/jquery-tablesorter/css/theme.bootstrap_2.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/theme.dark.css b/FHC-vendor/jquery-tablesorter/css/theme.dark.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/theme.default.css b/FHC-vendor/jquery-tablesorter/css/theme.default.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/theme.dropbox.css b/FHC-vendor/jquery-tablesorter/css/theme.dropbox.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/theme.green.css b/FHC-vendor/jquery-tablesorter/css/theme.green.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/theme.grey.css b/FHC-vendor/jquery-tablesorter/css/theme.grey.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/theme.ice.css b/FHC-vendor/jquery-tablesorter/css/theme.ice.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/theme.jui.css b/FHC-vendor/jquery-tablesorter/css/theme.jui.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/theme.less b/FHC-vendor/jquery-tablesorter/css/theme.less
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/css/theme.metro-dark.css b/FHC-vendor/jquery-tablesorter/css/theme.metro-dark.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/dragtable.mod.min.css b/FHC-vendor/jquery-tablesorter/dist/css/dragtable.mod.min.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/filter.formatter.min.css b/FHC-vendor/jquery-tablesorter/dist/css/filter.formatter.min.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/black-asc.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/black-asc.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/black-desc.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/black-desc.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/black-unsorted.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/black-unsorted.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/bootstrap-black-unsorted.png b/FHC-vendor/jquery-tablesorter/dist/css/images/bootstrap-black-unsorted.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/bootstrap-white-unsorted.png b/FHC-vendor/jquery-tablesorter/dist/css/images/bootstrap-white-unsorted.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/dragtable-handle.png b/FHC-vendor/jquery-tablesorter/dist/css/images/dragtable-handle.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/dragtable-handle.svg b/FHC-vendor/jquery-tablesorter/dist/css/images/dragtable-handle.svg
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-asc-hovered.png b/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-asc-hovered.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-asc.png b/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-asc.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-desc-hovered.png b/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-desc-hovered.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-desc.png b/FHC-vendor/jquery-tablesorter/dist/css/images/dropbox-desc.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/first.png b/FHC-vendor/jquery-tablesorter/dist/css/images/first.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/green-asc.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/green-asc.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/green-desc.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/green-desc.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/green-header.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/green-header.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/green-unsorted.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/green-unsorted.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/ice-asc.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/ice-asc.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/ice-desc.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/ice-desc.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/ice-unsorted.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/ice-unsorted.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/last.png b/FHC-vendor/jquery-tablesorter/dist/css/images/last.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/loading.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/loading.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/metro-black-asc.png b/FHC-vendor/jquery-tablesorter/dist/css/images/metro-black-asc.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/metro-black-desc.png b/FHC-vendor/jquery-tablesorter/dist/css/images/metro-black-desc.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/metro-loading.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/metro-loading.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/metro-unsorted.png b/FHC-vendor/jquery-tablesorter/dist/css/images/metro-unsorted.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/metro-white-asc.png b/FHC-vendor/jquery-tablesorter/dist/css/images/metro-white-asc.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/metro-white-desc.png b/FHC-vendor/jquery-tablesorter/dist/css/images/metro-white-desc.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/next.png b/FHC-vendor/jquery-tablesorter/dist/css/images/next.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/prev.png b/FHC-vendor/jquery-tablesorter/dist/css/images/prev.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/white-asc.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/white-asc.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/white-desc.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/white-desc.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/images/white-unsorted.gif b/FHC-vendor/jquery-tablesorter/dist/css/images/white-unsorted.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/jquery.tablesorter.pager.min.css b/FHC-vendor/jquery-tablesorter/dist/css/jquery.tablesorter.pager.min.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/less/bootstrap.less b/FHC-vendor/jquery-tablesorter/dist/css/less/bootstrap.less
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/less/metro.less b/FHC-vendor/jquery-tablesorter/dist/css/less/metro.less
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/less/theme.less b/FHC-vendor/jquery-tablesorter/dist/css/less/theme.less
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/theme.blackice.min.css b/FHC-vendor/jquery-tablesorter/dist/css/theme.blackice.min.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/theme.blue.min.css b/FHC-vendor/jquery-tablesorter/dist/css/theme.blue.min.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/theme.bootstrap.min.css b/FHC-vendor/jquery-tablesorter/dist/css/theme.bootstrap.min.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/theme.bootstrap_2.min.css b/FHC-vendor/jquery-tablesorter/dist/css/theme.bootstrap_2.min.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/theme.dark.min.css b/FHC-vendor/jquery-tablesorter/dist/css/theme.dark.min.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/theme.default.min.css b/FHC-vendor/jquery-tablesorter/dist/css/theme.default.min.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/theme.dropbox.min.css b/FHC-vendor/jquery-tablesorter/dist/css/theme.dropbox.min.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/theme.green.min.css b/FHC-vendor/jquery-tablesorter/dist/css/theme.green.min.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/theme.grey.min.css b/FHC-vendor/jquery-tablesorter/dist/css/theme.grey.min.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/theme.ice.min.css b/FHC-vendor/jquery-tablesorter/dist/css/theme.ice.min.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/theme.jui.min.css b/FHC-vendor/jquery-tablesorter/dist/css/theme.jui.min.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/css/theme.metro-dark.min.css b/FHC-vendor/jquery-tablesorter/dist/css/theme.metro-dark.min.css
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/extras/jquery.metadata.min.js b/FHC-vendor/jquery-tablesorter/dist/js/extras/jquery.metadata.min.js
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/extras/semver-mod.min.js b/FHC-vendor/jquery-tablesorter/dist/js/extras/semver-mod.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.combined.js b/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.combined.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.combined.min.js b/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.combined.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.js b/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.min.js b/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.widgets.js b/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.widgets.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.widgets.min.js b/FHC-vendor/jquery-tablesorter/dist/js/jquery.tablesorter.widgets.min.js
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-date.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-duration.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-duration.min.js
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-globalize.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-globalize.min.js
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-image.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-image.min.js
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-metric.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-metric.min.js
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-network.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-network.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-roman.min.js b/FHC-vendor/jquery-tablesorter/dist/js/parsers/parser-roman.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-alignChar.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-alignChar.min.js
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-chart.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-chart.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-columnSelector.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-columnSelector.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-columns.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-columns.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-cssStickyHeaders.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-cssStickyHeaders.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-editable.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-editable.min.js
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-filter.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-filter.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-formatter.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-formatter.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-grouping.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-grouping.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-headerTitles.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-headerTitles.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-lazyload.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-lazyload.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-math.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-math.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-output.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-output.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-pager.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-pager.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-print.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-print.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-reflow.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-reflow.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-repeatheaders.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-repeatheaders.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-resizable.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-resizable.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-saveSort.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-saveSort.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-scroller.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-scroller.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-sort2Hash.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-sort2Hash.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-sortTbodies.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-sortTbodies.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-staticRow.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-staticRow.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-stickyHeaders.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-stickyHeaders.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-storage.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-storage.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-toggle.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-toggle.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-uitheme.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-uitheme.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-view.min.js b/FHC-vendor/jquery-tablesorter/dist/js/widgets/widget-view.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/assets/City0.json b/FHC-vendor/jquery-tablesorter/docs/assets/City0.json
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/assets/City1.json b/FHC-vendor/jquery-tablesorter/docs/assets/City1.json
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/assets/City2.json b/FHC-vendor/jquery-tablesorter/docs/assets/City2.json
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/assets/City3.json b/FHC-vendor/jquery-tablesorter/docs/assets/City3.json
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/assets/ajax-content.html b/FHC-vendor/jquery-tablesorter/docs/assets/ajax-content.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/assets/build.json b/FHC-vendor/jquery-tablesorter/docs/assets/build.json
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/assets/build.txt b/FHC-vendor/jquery-tablesorter/docs/assets/build.txt
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/assets/theme_switcher.json b/FHC-vendor/jquery-tablesorter/docs/assets/theme_switcher.json
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/css/bootstrap-v2.min.css b/FHC-vendor/jquery-tablesorter/docs/css/bootstrap-v2.min.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/css/bootstrap.min.css b/FHC-vendor/jquery-tablesorter/docs/css/bootstrap.min.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/css/images/glyphicons-halflings-white.png b/FHC-vendor/jquery-tablesorter/docs/css/images/glyphicons-halflings-white.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/css/images/glyphicons-halflings.png b/FHC-vendor/jquery-tablesorter/docs/css/images/glyphicons-halflings.png
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/css/jq.css b/FHC-vendor/jquery-tablesorter/docs/css/jq.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/css/jquery-ui.min.css b/FHC-vendor/jquery-tablesorter/docs/css/jquery-ui.min.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/css/magnific-popup.css b/FHC-vendor/jquery-tablesorter/docs/css/magnific-popup.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/css/menu.css b/FHC-vendor/jquery-tablesorter/docs/css/menu.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/css/prettify.css b/FHC-vendor/jquery-tablesorter/docs/css/prettify.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/css/rangeslider.css b/FHC-vendor/jquery-tablesorter/docs/css/rangeslider.css
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/css/select2-spinner.gif b/FHC-vendor/jquery-tablesorter/docs/css/select2-spinner.gif
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/css/select2.png b/FHC-vendor/jquery-tablesorter/docs/css/select2.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/css/select2x2.png b/FHC-vendor/jquery-tablesorter/docs/css/select2x2.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/css/tipsy.css b/FHC-vendor/jquery-tablesorter/docs/css/tipsy.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-add-rows.html b/FHC-vendor/jquery-tablesorter/docs/example-add-rows.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-ajax.html b/FHC-vendor/jquery-tablesorter/docs/example-ajax.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-apply-widget.html b/FHC-vendor/jquery-tablesorter/docs/example-apply-widget.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-child-rows-filtered.html b/FHC-vendor/jquery-tablesorter/docs/example-child-rows-filtered.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-child-rows.html b/FHC-vendor/jquery-tablesorter/docs/example-child-rows.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-css-highlighting.html b/FHC-vendor/jquery-tablesorter/docs/example-css-highlighting.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-dragtable.html b/FHC-vendor/jquery-tablesorter/docs/example-dragtable.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-empty-table.html b/FHC-vendor/jquery-tablesorter/docs/example-empty-table.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-extending-defaults.html b/FHC-vendor/jquery-tablesorter/docs/example-extending-defaults.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-extractors-parsers.html b/FHC-vendor/jquery-tablesorter/docs/example-extractors-parsers.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-header-column-span.html b/FHC-vendor/jquery-tablesorter/docs/example-header-column-span.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-locale-sort.html b/FHC-vendor/jquery-tablesorter/docs/example-locale-sort.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-meta-headers.html b/FHC-vendor/jquery-tablesorter/docs/example-meta-headers.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-meta-parsers.html b/FHC-vendor/jquery-tablesorter/docs/example-meta-parsers.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-meta-sort-list.html b/FHC-vendor/jquery-tablesorter/docs/example-meta-sort-list.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-method-sortreset.html b/FHC-vendor/jquery-tablesorter/docs/example-method-sortreset.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-multiple-tbodies.html b/FHC-vendor/jquery-tablesorter/docs/example-multiple-tbodies.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-option-custom-sort.html b/FHC-vendor/jquery-tablesorter/docs/example-option-custom-sort.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-option-date-format.html b/FHC-vendor/jquery-tablesorter/docs/example-option-date-format.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-option-debug.html b/FHC-vendor/jquery-tablesorter/docs/example-option-debug.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-option-delay-init.html b/FHC-vendor/jquery-tablesorter/docs/example-option-delay-init.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-option-digits.html b/FHC-vendor/jquery-tablesorter/docs/example-option-digits.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-option-render-header.html b/FHC-vendor/jquery-tablesorter/docs/example-option-render-header.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-option-render-template.html b/FHC-vendor/jquery-tablesorter/docs/example-option-render-template.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-option-selectorsort.html b/FHC-vendor/jquery-tablesorter/docs/example-option-selectorsort.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-option-show-processing.html b/FHC-vendor/jquery-tablesorter/docs/example-option-show-processing.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-option-sort-append.html b/FHC-vendor/jquery-tablesorter/docs/example-option-sort-append.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-option-sort-empty.html b/FHC-vendor/jquery-tablesorter/docs/example-option-sort-empty.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-option-sort-force.html b/FHC-vendor/jquery-tablesorter/docs/example-option-sort-force.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-option-sort-key.html b/FHC-vendor/jquery-tablesorter/docs/example-option-sort-key.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-option-sort-list.html b/FHC-vendor/jquery-tablesorter/docs/example-option-sort-list.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-option-sort-order.html b/FHC-vendor/jquery-tablesorter/docs/example-option-sort-order.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-option-sortreset-sortrestart.html b/FHC-vendor/jquery-tablesorter/docs/example-option-sortreset-sortrestart.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-option-text-extraction.html b/FHC-vendor/jquery-tablesorter/docs/example-option-text-extraction.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-option-textsorter-semver.html b/FHC-vendor/jquery-tablesorter/docs/example-option-textsorter-semver.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-option-theme-metro-style.html b/FHC-vendor/jquery-tablesorter/docs/example-option-theme-metro-style.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-options-headers-digits-strings.html b/FHC-vendor/jquery-tablesorter/docs/example-options-headers-digits-strings.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-options-headers-locked.html b/FHC-vendor/jquery-tablesorter/docs/example-options-headers-locked.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-options-headers-order.html b/FHC-vendor/jquery-tablesorter/docs/example-options-headers-order.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-options-headers-parser.html b/FHC-vendor/jquery-tablesorter/docs/example-options-headers-parser.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-options-headers.html b/FHC-vendor/jquery-tablesorter/docs/example-options-headers.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-pager-ajax.html b/FHC-vendor/jquery-tablesorter/docs/example-pager-ajax.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-pager-filtered.html b/FHC-vendor/jquery-tablesorter/docs/example-pager-filtered.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-pager.html b/FHC-vendor/jquery-tablesorter/docs/example-pager.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-parsers-advanced.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-advanced.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-parsers-class-name.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-class-name.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-parsers-date-range.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-date-range.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-parsers-dates.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-dates.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-parsers-duration.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-duration.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-parsers-feet-inch-fraction.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-feet-inch-fraction.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-parsers-file-type.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-file-type.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-parsers-globalize.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-globalize.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-parsers-ignore-articles.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-ignore-articles.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-parsers-ip-address.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-ip-address.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-parsers-jquery-data.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-jquery-data.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-parsers-metric.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-metric.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-parsers-named-numbers.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-named-numbers.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-parsers-roman.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers-roman.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-parsers.html b/FHC-vendor/jquery-tablesorter/docs/example-parsers.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-trigger-sort.html b/FHC-vendor/jquery-tablesorter/docs/example-trigger-sort.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-triggers.html b/FHC-vendor/jquery-tablesorter/docs/example-triggers.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-update-all.html b/FHC-vendor/jquery-tablesorter/docs/example-update-all.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-update-cell.html b/FHC-vendor/jquery-tablesorter/docs/example-update-cell.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-align-character.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-align-character.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-bootstrap-theme-v2.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-bootstrap-theme-v2.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-bootstrap-theme.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-bootstrap-theme.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-build-table.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-build-table.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-chart.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-chart.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-column-selector.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-column-selector.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-columns.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-columns.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-css-sticky-header.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-css-sticky-header.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-editable.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-editable.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-any-match.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-any-match.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-childrows.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-childrows.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-custom-search.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-custom-search.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-custom-search2.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-custom-search2.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-custom.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-custom.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-external-inputs.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-external-inputs.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-formatter-1.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-formatter-1.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-formatter-2.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-formatter-2.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-formatter-select2.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-formatter-select2.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-selectmenu.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-filter-selectmenu.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-filter.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-filter.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-formatter.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-formatter.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-grouping-filter-childrows.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-grouping-filter-childrows.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-grouping.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-grouping.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-header-titles.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-header-titles.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-lazyload.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-lazyload.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-math.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-math.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-output.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-output.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-pager-ajax.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-pager-ajax.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-pager.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-pager.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-print.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-print.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-reflow.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-reflow.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-reflow1.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-reflow1.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-reflow2.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-reflow2.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-reflow3.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-reflow3.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-resizable.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-resizable.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-savesort.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-savesort.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-scroller.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-scroller.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-sort-tbodies.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-sort-tbodies.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-sort-to-hash.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-sort-to-hash.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-static-row.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-static-row.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-sticky-header.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-sticky-header.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-toggle-tablesorter.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-toggle-tablesorter.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-ui-theme.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-ui-theme.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-view.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-view.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widget-zebra.html b/FHC-vendor/jquery-tablesorter/docs/example-widget-zebra.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/example-widgets.html b/FHC-vendor/jquery-tablesorter/docs/example-widgets.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.eot b/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.eot
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.svg b/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.svg
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.ttf b/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.ttf
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.woff b/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.woff
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.woff2 b/FHC-vendor/jquery-tablesorter/docs/fonts/glyphicons-halflings-regular.woff2
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/img/external.png b/FHC-vendor/jquery-tablesorter/docs/img/external.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/img/grid-default-thumb.png b/FHC-vendor/jquery-tablesorter/docs/img/grid-default-thumb.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/img/link.png b/FHC-vendor/jquery-tablesorter/docs/img/link.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/img/new-product-banner.png b/FHC-vendor/jquery-tablesorter/docs/img/new-product-banner.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/img/sale-banner.png b/FHC-vendor/jquery-tablesorter/docs/img/sale-banner.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/img/screens-blue.png b/FHC-vendor/jquery-tablesorter/docs/img/screens-blue.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/img/screens.png b/FHC-vendor/jquery-tablesorter/docs/img/screens.png
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/index.html b/FHC-vendor/jquery-tablesorter/docs/index.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/js/bootstrap.min.js b/FHC-vendor/jquery-tablesorter/docs/js/bootstrap.min.js
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/js/chili/recipes.js b/FHC-vendor/jquery-tablesorter/docs/js/chili/recipes.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/js/demo-build-table.js b/FHC-vendor/jquery-tablesorter/docs/js/demo-build-table.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/js/docs.js b/FHC-vendor/jquery-tablesorter/docs/js/docs.js
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/js/jquery-latest.min.js b/FHC-vendor/jquery-tablesorter/docs/js/jquery-latest.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/js/jquery-ui.min.js b/FHC-vendor/jquery-tablesorter/docs/js/jquery-ui.min.js
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/js/jquery.magnific-popup.min.js b/FHC-vendor/jquery-tablesorter/docs/js/jquery.magnific-popup.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/js/jquery.tipsy.min.js b/FHC-vendor/jquery-tablesorter/docs/js/jquery.tipsy.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/js/prettify.js b/FHC-vendor/jquery-tablesorter/docs/js/prettify.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/js/rangeslider.min.js b/FHC-vendor/jquery-tablesorter/docs/js/rangeslider.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/js/search-ie.js b/FHC-vendor/jquery-tablesorter/docs/js/search-ie.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/js/search.js b/FHC-vendor/jquery-tablesorter/docs/js/search.js
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/js/sugar.min.js b/FHC-vendor/jquery-tablesorter/docs/js/sugar.min.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/docs/themes.html b/FHC-vendor/jquery-tablesorter/docs/themes.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/example.json b/FHC-vendor/jquery-tablesorter/example.json
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/index.html b/FHC-vendor/jquery-tablesorter/index.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/extras/jquery.dragtable.mod.js b/FHC-vendor/jquery-tablesorter/js/extras/jquery.dragtable.mod.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/extras/jquery.metadata.js b/FHC-vendor/jquery-tablesorter/js/extras/jquery.metadata.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/extras/semver-mod.js b/FHC-vendor/jquery-tablesorter/js/extras/semver-mod.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/extras/semver.js b/FHC-vendor/jquery-tablesorter/js/extras/semver.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.combined.js b/FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.combined.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.js b/FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.widgets.js b/FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.widgets.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-extract.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-extract.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-iso8601.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-iso8601.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-month.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-month.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-range.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-range.js
old mode 100644
new mode 100755
diff --git a/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
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-weekday.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-date-weekday.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/parsers/parser-date.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-date.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/parsers/parser-duration.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-duration.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/parsers/parser-feet-inch-fraction.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-feet-inch-fraction.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/parsers/parser-file-type.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-file-type.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/parsers/parser-globalize.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-globalize.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/parsers/parser-ignore-articles.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-ignore-articles.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/parsers/parser-image.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-image.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/parsers/parser-input-select.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-input-select.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/parsers/parser-metric.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-metric.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/parsers/parser-named-numbers.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-named-numbers.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/parsers/parser-network.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-network.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/parsers/parser-roman.js b/FHC-vendor/jquery-tablesorter/js/parsers/parser-roman.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-alignChar.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-alignChar.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-build-table.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-build-table.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-chart.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-chart.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-columnSelector.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-columnSelector.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-columns.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-columns.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-cssStickyHeaders.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-cssStickyHeaders.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-editable.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-editable.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter-formatter-html5.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter-formatter-html5.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter-formatter-jui.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter-formatter-jui.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter-formatter-select2.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter-formatter-select2.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter-type-insideRange.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter-type-insideRange.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-filter.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-formatter.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-formatter.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-grouping.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-grouping.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-headerTitles.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-headerTitles.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-lazyload.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-lazyload.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-math.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-math.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-output.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-output.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-pager.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-pager.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-print.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-print.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-reflow.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-reflow.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-repeatheaders.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-repeatheaders.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-resizable.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-resizable.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-saveSort.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-saveSort.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-scroller.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-scroller.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-sort2Hash.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-sort2Hash.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-sortTbodies.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-sortTbodies.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-staticRow.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-staticRow.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-stickyHeaders.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-stickyHeaders.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-storage.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-storage.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-toggle.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-toggle.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-uitheme.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-uitheme.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/js/widgets/widget-view.js b/FHC-vendor/jquery-tablesorter/js/widgets/widget-view.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/package.json b/FHC-vendor/jquery-tablesorter/package.json
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/tablesorter.jquery.json b/FHC-vendor/jquery-tablesorter/tablesorter.jquery.json
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/test.html b/FHC-vendor/jquery-tablesorter/test.html
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/testing/qunit-1.20.0.css b/FHC-vendor/jquery-tablesorter/testing/qunit-1.20.0.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/testing/qunit-1.20.0.js b/FHC-vendor/jquery-tablesorter/testing/qunit-1.20.0.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/testing/testing-ipv6.js b/FHC-vendor/jquery-tablesorter/testing/testing-ipv6.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/testing/testing-widgets.js b/FHC-vendor/jquery-tablesorter/testing/testing-widgets.js
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/testing/testing.css b/FHC-vendor/jquery-tablesorter/testing/testing.css
old mode 100644
new mode 100755
diff --git a/FHC-vendor/jquery-tablesorter/testing/testing.js b/FHC-vendor/jquery-tablesorter/testing/testing.js
old mode 100644
new mode 100755
diff --git a/LICENSE b/LICENSE
old mode 100644
new mode 100755
diff --git a/README.md b/README.md
old mode 100644
new mode 100755
diff --git a/addons/.gitignore b/addons/.gitignore
old mode 100644
new mode 100755
diff --git a/addons/CodingGuidelines.txt b/addons/CodingGuidelines.txt
old mode 100644
new mode 100755
diff --git a/addons/index.html b/addons/index.html
old mode 100644
new mode 100755
diff --git a/addons/template/cis/index.html b/addons/template/cis/index.html
old mode 100644
new mode 100755
diff --git a/addons/template/cis/init.js.php b/addons/template/cis/init.js.php
old mode 100644
new mode 100755
diff --git a/addons/template/cis/vorlage_profil_array.php b/addons/template/cis/vorlage_profil_array.php
old mode 100644
new mode 100755
diff --git a/addons/template/content/index.html b/addons/template/content/index.html
old mode 100644
new mode 100755
diff --git a/addons/template/content/init.js.php b/addons/template/content/init.js.php
old mode 100644
new mode 100755
diff --git a/addons/template/dbcheck.php b/addons/template/dbcheck.php
old mode 100644
new mode 100755
diff --git a/addons/template/index.html b/addons/template/index.html
old mode 100644
new mode 100755
diff --git a/addons/template/install.php b/addons/template/install.php
old mode 100644
new mode 100755
diff --git a/addons/template/locale/README.txt b/addons/template/locale/README.txt
old mode 100644
new mode 100755
diff --git a/addons/template/locale/index.html b/addons/template/locale/index.html
old mode 100644
new mode 100755
diff --git a/addons/template/soap/index.html b/addons/template/soap/index.html
old mode 100644
new mode 100755
diff --git a/addons/template/system/index.html b/addons/template/system/index.html
old mode 100644
new mode 100755
diff --git a/addons/template/system/vorlage_zip/README.txt b/addons/template/system/vorlage_zip/README.txt
old mode 100644
new mode 100755
diff --git a/addons/template/version.php b/addons/template/version.php
old mode 100644
new mode 100755
diff --git a/addons/template/vilesci/index.php b/addons/template/vilesci/index.php
old mode 100644
new mode 100755
diff --git a/addons/template/vilesci/init.js.php b/addons/template/vilesci/init.js.php
old mode 100644
new mode 100755
diff --git a/addons/template/vilesci/menu.inc.php b/addons/template/vilesci/menu.inc.php
old mode 100644
new mode 100755
diff --git a/addons/template/vilesci/vorlage_generateuid.inc.php b/addons/template/vilesci/vorlage_generateuid.inc.php
old mode 100644
new mode 100755
diff --git a/addons/template/vilesci/vorlage_passwort.inc.php b/addons/template/vilesci/vorlage_passwort.inc.php
old mode 100644
new mode 100755
diff --git a/addons/template/vilesci/vorlage_serviceterminal.inc.php b/addons/template/vilesci/vorlage_serviceterminal.inc.php
old mode 100644
new mode 100755
diff --git a/addons/template/xml/index.html b/addons/template/xml/index.html
old mode 100644
new mode 100755
diff --git a/application/cache/index.html b/application/cache/index.html
old mode 100644
new mode 100755
diff --git a/application/components/extensions/.placeholder b/application/components/extensions/.placeholder
old mode 100644
new mode 100755
diff --git a/application/components/filters/LogsViewer.php b/application/components/filters/LogsViewer.php
old mode 100644
new mode 100755
diff --git a/application/config/anrechnung.php b/application/config/anrechnung.php
old mode 100644
new mode 100755
diff --git a/application/config/auth.php b/application/config/auth.php
old mode 100644
new mode 100755
diff --git a/application/config/autoload.php b/application/config/autoload.php
old mode 100644
new mode 100755
diff --git a/application/config/config.php b/application/config/config.php
old mode 100644
new mode 100755
diff --git a/application/config/constants.php b/application/config/constants.php
old mode 100644
new mode 100755
diff --git a/application/config/core_includes.php b/application/config/core_includes.php
old mode 100644
new mode 100755
diff --git a/application/config/database.php b/application/config/database.php
old mode 100644
new mode 100755
diff --git a/application/config/doctypes.php b/application/config/doctypes.php
old mode 100644
new mode 100755
diff --git a/application/config/extensions/.placeholder b/application/config/extensions/.placeholder
old mode 100644
new mode 100755
diff --git a/application/config/foreign_chars.php b/application/config/foreign_chars.php
old mode 100644
new mode 100755
diff --git a/application/config/hooks.php b/application/config/hooks.php
old mode 100644
new mode 100755
diff --git a/application/config/index.html b/application/config/index.html
old mode 100644
new mode 100755
diff --git a/application/config/infocenter.php b/application/config/infocenter.php
old mode 100644
new mode 100755
diff --git a/application/config/jqm.php b/application/config/jqm.php
old mode 100644
new mode 100755
diff --git a/application/config/ldap.php b/application/config/ldap.php
old mode 100644
new mode 100755
diff --git a/application/config/mail.php b/application/config/mail.php
old mode 100644
new mode 100755
diff --git a/application/config/memcached.php b/application/config/memcached.php
old mode 100644
new mode 100755
diff --git a/application/config/message.php b/application/config/message.php
old mode 100644
new mode 100755
diff --git a/application/config/migration.php b/application/config/migration.php
old mode 100644
new mode 100755
diff --git a/application/config/mimes.php b/application/config/mimes.php
old mode 100644
new mode 100755
diff --git a/application/config/navigation.php b/application/config/navigation.php
old mode 100644
new mode 100755
diff --git a/application/config/permission.php b/application/config/permission.php
old mode 100644
new mode 100755
diff --git a/application/config/profiler.php b/application/config/profiler.php
old mode 100644
new mode 100755
diff --git a/application/config/rest.php b/application/config/rest.php
old mode 100644
new mode 100755
diff --git a/application/config/routes.php b/application/config/routes.php
old mode 100644
new mode 100755
diff --git a/application/config/studierendenantrag.php b/application/config/studierendenantrag.php
old mode 100644
new mode 100755
diff --git a/application/config/udfmasterschema.json b/application/config/udfmasterschema.json
old mode 100644
new mode 100755
diff --git a/application/config/user_agents.php b/application/config/user_agents.php
old mode 100644
new mode 100755
diff --git a/application/controllers/Cis/Auth.php b/application/controllers/Cis/Auth.php
old mode 100644
new mode 100755
diff --git a/application/controllers/Cis/Documents.php b/application/controllers/Cis/Documents.php
old mode 100644
new mode 100755
diff --git a/application/controllers/Cis/MyLv.php b/application/controllers/Cis/MyLv.php
old mode 100644
new mode 100755
diff --git a/application/controllers/Cis/Profil.php b/application/controllers/Cis/Profil.php
new file mode 100755
index 000000000..dd2c1a311
--- /dev/null
+++ b/application/controllers/Cis/Profil.php
@@ -0,0 +1,737 @@
+ ['student/anrechnung_beantragen:r', 'user:r'],
+ 'foto_sperre_function' => ['student/anrechnung_beantragen:r', 'user:r'],
+ 'getView' => ['student/anrechnung_beantragen:r', 'user:r'],
+ 'View' => ['student/anrechnung_beantragen:r', 'user:r'],
+ 'isMitarbeiter' => ['student/anrechnung_beantragen:r', 'user:r'],
+ 'isStudent' => ['student/anrechnung_beantragen:r', 'user:r'],
+ 'getZustellAdresse' => ['student/anrechnung_beantragen:r', 'user:r'],
+ 'getZustellKontakt' => ['student/anrechnung_beantragen:r', 'user:r'],
+ 'getAllNationen' => ['student/anrechnung_beantragen:r', 'user:r'],
+ 'getGemeinden' => ['student/anrechnung_beantragen:r', 'user:r'],
+
+ ]);
+
+ $this->load->model('ressource/mitarbeiter_model', 'MitarbeiterModel');
+ $this->load->model('crm/Student_model', 'StudentModel');
+ $this->load->model('person/Benutzer_model', 'BenutzerModel');
+ $this->load->model('person/Person_model', 'PersonModel');
+ $this->load->model('person/Adresse_model', 'AdresseModel');
+ $this->load->model('person/Benutzerfunktion_model', 'BenutzerfunktionModel');
+ $this->load->model('person/Benutzergruppe_model', 'BenutzergruppeModel');
+ $this->load->model('ressource/Betriebsmittelperson_model', 'BetriebsmittelpersonModel');
+ $this->load->model('person/Kontakt_model', 'KontaktModel');
+ $this->load->model('person/Profil_update_model', 'ProfilUpdateModel');
+ $this->load->model('content/DmsVersion_model', 'DmsVersionModel');
+
+
+ //? put the uid and pid inside the controller for reusability
+ $this->uid = getAuthUID();
+ $this->pid = getAuthPersonID();
+ }
+
+ // -----------------------------------------------------------------------------------------------------------------
+ // Public methods
+
+
+ /**
+ * index loads the Profil view
+ * @access public
+ * @return void
+ */
+ public function index()
+ {
+ $this->load->view('Cis/Profil');
+ }
+
+ /**
+ * redirects to the index function (needed to allow calling this URI)
+ * @access public
+ * @return void
+ */
+ public function View($uid)
+ {
+ $this->load->view('Cis/Profil');
+ }
+
+ /**
+ * checks whether a specific userID is a mitarbeiter or not (foreword declaration of the function isMitarbeiter in Mitarbeiter_model.php)
+ * @access public
+ * @param $uid the userID used to check if it is a mitarbeiter
+ * @return boolean
+ */
+ public function isStudent($uid)
+ {
+ $result = $this->StudentModel->isStudent($uid);
+ if (isError($result)) {
+ show_error("error when calling Student_model function isStudent with uid " . $uid);
+ }
+ $result = getData($result);
+ echo json_encode($result);
+ }
+
+ /**
+ * checks whether a specific userID is a mitarbeiter or not (foreword declaration of the function isMitarbeiter in Mitarbeiter_model.php)
+ * @access public
+ * @param $uid the userID used to check if it is a mitarbeiter
+ * @return boolean
+ */
+ public function isMitarbeiter($uid)
+ {
+ $result = $this->MitarbeiterModel->isMitarbeiter($uid);
+ if (isError($result)) {
+ show_error("error when calling Mitarbeiter_model function isMitarbeiter with uid " . $uid);
+ }
+ $result = getData($result);
+ echo json_encode($result);
+ }
+
+ /**
+ * gets the adressen that are marked as zustell from the currenlty logged in user
+ * @access public
+ * @return array a list of adresse_id's
+ */
+ public function getZustellAdresse()
+ {
+ $this->AdresseModel->addSelect(["adresse_id"]);
+ $adressen_res = $this->AdresseModel->loadWhere(['person_id' => $this->pid, 'zustelladresse' => true]);
+ $adressen_res = hasData($adressen_res) ? getData($adressen_res) : null;
+ $adressen_res = array_map(function ($item) {
+ return $item->adresse_id;
+ }, $adressen_res);
+ echo json_encode($adressen_res);
+ }
+
+ /**
+ * gets the kontakte that are marked as zustell from the currenlty logged in user
+ * @access public
+ * @return array a list of kontakt_id's
+ */
+ public function getZustellKontakt()
+ {
+ $this->KontaktModel->addSelect(["kontakt_id"]);
+ $kontakt_res = $this->KontaktModel->loadWhere(['person_id' => $this->pid, 'zustellung' => true]);
+ $kontakt_res = hasData($kontakt_res) ? getData($kontakt_res) : null;
+ $kontakt_res = array_map(function ($item) {
+ return $item->kontakt_id;
+ }, $kontakt_res);
+ echo json_encode($kontakt_res);
+ }
+
+ /**
+ * function that returns the data used for the corresponding view
+ * the client side parses the @param $uid and calls this function to get the data to the correct view
+ * @access public
+ * @param boolean $uid the userID used to identify which information should be retrieved for which view
+ * @return stdClass all the data corresponding to a view of a user
+ */
+ public function getView($uid)
+ {
+ $res = new stdClass();
+
+ // if parsing the URL did not found a UID then the UID of the logged in user is used
+ if ($uid == "Profil" || $uid == $this->uid) {
+ $isMitarbeiter = $this->MitarbeiterModel->isMitarbeiter($this->uid);
+ if (isError($isMitarbeiter)) {
+ show_error("error while checking if UID: " . $this->uid . " is a mitarbeiter");
+ }
+ $isMitarbeiter = getData($isMitarbeiter);
+ if ($isMitarbeiter) {
+ $res->view = "MitarbeiterProfil";
+ $res->data = $this->mitarbeiterProfil();
+ $res->data->pid = $this->pid;
+ } else {
+ $res->view = "StudentProfil";
+ $res->data = $this->studentProfil();
+ $res->data->pid = $this->pid;
+ }
+ }
+ // UID is availabe when accessing Profil/View/:uid
+ else {
+ $this->PersonModel->addSelect(["person_id"]);
+ $pid = $this->PersonModel->getByUid($uid);
+ if (isError($pid)) {
+ show_error("error while trying to update table public.tbl_person while searching for a person with UID: " . $uid);
+ }
+ $pid = hasData($pid) ? getData($pid)[0] : null;
+ if (!$pid) {
+ show_error("Person with UID: " . $uid . " does not exist");
+ }
+ $isMitarbeiter = $this->MitarbeiterModel->isMitarbeiter($uid);
+ if (isError($isMitarbeiter)) {
+ show_error("error while checking if UID: " . $uid . " is a mitarbeiter");
+ }
+ $isMitarbeiter = getData($isMitarbeiter);
+ if ($isMitarbeiter) {
+ $res->view = "ViewMitarbeiterProfil";
+ $res->data = $this->viewMitarbeiterProfil($uid);
+
+ } else {
+ $res->view = "ViewStudentProfil";
+ $res->data = $this->viewStudentProfil($uid);
+ }
+ }
+ echo json_encode($res);
+ }
+
+ /**
+ * update column foto_sperre in public.tbl_person
+ * @access public
+ * @param boolean $value new value for the column
+ * @return boolean the new value added to the column in public.tbl_person
+ */
+ public function foto_sperre_function($value)
+ {
+ $res = $this->PersonModel->update($this->pid, ["foto_sperre" => $value]);
+ if (isError($res)) {
+ show_error("error while trying to update table public.tbl_person");
+ }
+ $this->PersonModel->addSelect("foto_sperre");
+ $res = $this->PersonModel->load($this->pid);
+ if (isError($res)) {
+ show_error("error while trying to query table public.tbl_person");
+ }
+ $res = hasData($res) ? getData($res)[0] : null;
+ echo json_encode($res);
+ }
+
+ /**
+ * gets all nations in the table bis.tbl_nation
+ *
+ * @access public
+ * @return array all the nations in table bis.tbl_nation
+ */
+ public function getAllNationen()
+ {
+ $this->load->model('codex/Nation_model', "NationModel");
+ $this->NationModel->addSelect(["nation_code as code", "langtext"]);
+ $nation_res = $this->NationModel->load();
+ if (isError($nation_res)) {
+ show_error("error while trying to query table codex.tbl_nation");
+ }
+ $nation_res = hasData($nation_res) ? getData($nation_res) : null;
+ echo json_encode($nation_res);
+ }
+
+ /**
+ * gets specific gemeinden which are related to the ZIP and the Nation passed in the body of the get request
+ * @access public
+ * @var $_GET function uses GET request payload
+ * @return boolean the new value added to the column in public.tbl_person
+ */
+ public function getGemeinden()
+ {
+ /** @var $nation value parsed out of the body of the get request */
+ $nation = $this->input->get('nation', true);
+ /** @var $zip value parsed out of the body of the get request and converted to a php integer with json_decode */
+ $zip = json_decode($this->input->get('zip', true));
+
+ $this->load->model('codex/Gemeinde_model', "GemeindeModel");
+ $this->GemeindeModel->addDistinct();
+ $this->GemeindeModel->addSelect(["name"]);
+ if ($nation == "A") {
+ if (isset($zip) && $zip > 999 && $zip < 32000) {
+
+ $gemeinde_res = $this->GemeindeModel->loadWhere(['plz' => $zip]);
+ if (isError($gemeinde_res)) {
+ show_error("error while trying to query bis.tbl_gemeinde");
+ }
+ $gemeinde_res = hasData($gemeinde_res) ? getData($gemeinde_res) : null;
+ $gemeinde_res = array_map(function ($obj) {
+ return $obj->name;
+ }, $gemeinde_res);
+ echo json_encode($gemeinde_res);
+
+ } else {
+ echo json_encode(error("ortschaftskennziffer code was not valid"));
+ }
+ } else {
+ echo json_encode(error("Nation was not 'A' (Austria)"));
+ }
+ }
+
+
+ // -----------------------------------------------------------------------------------------------------------------
+ // Private methods
+
+ /**
+ * function that returns the data used for viewing another mitarbeiter profile
+ * @access private
+ * @param integer $uid the userID to retrieve the mitarbeiter data
+ * @return stdClass restricted mitarbeiter data
+ */
+ private function viewMitarbeiterProfil($uid)
+ {
+ $mailverteiler_res = $this->getMailverteiler($uid);
+ $benutzer_funktion_res = $this->getBenutzerFunktion($uid);
+ $benutzer_res = $this->getBenutzerAlias($uid);
+ $person_res = $this->getPersonInfo($uid);
+ $mitarbeiter_res = $this->getMitarbeiterInfo($uid);
+ $telefon_res = $this->getTelefonInfo($uid);
+
+ $res = new stdClass();
+ $res->username = $uid;
+
+ //? Person Info
+ foreach ($person_res as $key => $val) {
+ $res->$key = $val;
+ }
+
+ //? Mitarbeiter Info
+ foreach ($mitarbeiter_res as $key => $val) {
+ $res->$key = $val;
+
+ }
+
+ $intern_email = array();
+ $intern_email["type"] = "intern";
+ $intern_email["email"] = $uid . "@" . DOMAIN;
+ $extern_email = array();
+ $extern_email["type"] = "alias";
+ $extern_email["email"] = $benutzer_res->alias . "@" . DOMAIN;
+ $res->emails = array($intern_email, $extern_email);
+
+ $res->funktionen = $benutzer_funktion_res;
+ $res->mailverteiler = $mailverteiler_res;
+ $res->standort_telefon = isset($telefon_res) ? $telefon_res->kontakt : null;
+
+ return $res;
+ }
+
+ /**
+ * function that returns the data used for viewing another student profile
+ * @access private
+ * @param integer $uid the userID to retrieve the student data
+ * @return stdClass restricted student data
+ */
+ private function viewStudentProfil($uid)
+ {
+ $mailverteiler_res = $this->getMailverteiler($uid);
+ $person_res = $this->getPersonInfo($uid);
+ $student_res = $this->getStudentInfo($uid);
+ $matr_res = $this->getMatrikelNummer($uid);
+
+ $res = new stdClass();
+ $res->username = $uid;
+
+ //? Person Information
+ foreach ($person_res as $key => $value) {
+ $res->$key = $value;
+ }
+
+ //? Student Information
+ foreach ($student_res as $key => $value) {
+ $res->$key = $value;
+ }
+
+ $intern_email = array();
+ $intern_email["type"] = "intern";
+ $intern_email["email"] = $uid . "@" . DOMAIN;
+
+ $res->emails = [$intern_email];
+ $res->matrikelnummer = $matr_res->matr_nr;
+ $res->mailverteiler = $mailverteiler_res;
+
+ return $res;
+ }
+
+ /**
+ * function that returns the data used for the mitarbeiter profile
+ * @access private
+ * @return stdClass mitarbeiter data
+ */
+ private function mitarbeiterProfil()
+ {
+
+ $zutrittskarte_ausgegebenam = $this->getZutrittskarteDatum($this->uid);
+ $adresse_res = $this->getAdressenInfo($this->pid);
+ $kontakte_res = $this->getKontaktInfo($this->pid);
+ $mailverteiler_res = $this->getMailverteiler($this->uid);
+ $person_res = $this->getPersonInfo($this->uid, true);
+ $benutzer_funktion_res = $this->getBenutzerFunktion($this->uid);
+ $betriebsmittelperson_res = $this->getBetriebsmittelInfo($this->pid);
+ $profilUpdates = $this->getProfilUpdates($this->uid);
+ $telefon_res = $this->getTelefonInfo($this->uid);
+ $mitarbeiter_res = $this->getMitarbeiterInfo($this->uid);
+
+ $res = new stdClass();
+ $res->username = $this->uid;
+
+ //? Person Information
+ foreach ($person_res as $key => $value) {
+ $res->$key = $value;
+ }
+
+ //? Mitarbeiter Information
+ foreach ($mitarbeiter_res as $key => $value) {
+ $res->$key = $value;
+ }
+
+ $res->adressen = $adresse_res;
+ $res->zutrittsdatum = $zutrittskarte_ausgegebenam;
+ $res->kontakte = $kontakte_res;
+ $res->mittel = $betriebsmittelperson_res;
+ $res->mailverteiler = $mailverteiler_res;
+
+ $intern_email = array();
+ $intern_email["type"] = "intern";
+ $intern_email["email"] = $this->uid . "@" . DOMAIN;
+ $extern_email = array();
+ $extern_email["type"] = "alias";
+ $extern_email["email"] = $mitarbeiter_res->alias . "@" . DOMAIN;
+ $res->emails = [$intern_email, $extern_email];
+
+ $res->funktionen = $benutzer_funktion_res;
+ $res->standort_telefon = $telefon_res;
+ $res->profilUpdates = $profilUpdates;
+
+ return $res;
+ }
+
+ /**
+ * function that returns the data used for the student profile
+ * @access private
+ * @return stdClass student data
+ */
+ private function studentProfil()
+ {
+ $betriebsmittelperson_res = $this->getBetriebsmittelInfo($this->pid);
+ $kontakte_res = $this->getKontaktInfo($this->pid);
+ $zutrittskarte_ausgegebenam = $this->getZutrittskarteDatum($this->uid);
+ $adresse_res = $this->getAdressenInfo($this->pid);
+ $mailverteiler_res = $this->getMailverteiler($this->uid);
+ $person_res = $this->getPersonInfo($this->uid, true);
+ $zutrittsgruppe_res = $this->getZutrittsgruppen($this->uid);
+ $student_res = $this->getStudentInfo($this->uid);
+ $matr_res = $this->getMatrikelNummer($this->uid);
+ $profilUpdates = $this->getProfilUpdates($this->uid);
+
+ $res = new stdClass();
+ $res->username = $this->uid;
+
+ //? Person Information
+ foreach ($person_res as $key => $value) {
+ $res->$key = $value;
+ }
+
+ //? Student Information
+ foreach ($student_res as $key => $value) {
+ $res->$key = trim($value);
+ }
+
+ $intern_email = array();
+ $intern_email["type"] = "intern";
+ $intern_email["email"] = $this->uid . "@" . DOMAIN;
+
+ $res->emails = [$intern_email];
+ $res->adressen = $adresse_res;
+ $res->zutrittsdatum = $zutrittskarte_ausgegebenam;
+ $res->kontakte = $kontakte_res;
+ $res->mittel = $betriebsmittelperson_res;
+ $res->matrikelnummer = $matr_res->matr_nr;
+ $res->zuttritsgruppen = $zutrittsgruppe_res;
+ $res->mailverteiler = $mailverteiler_res;
+ $res->profilUpdates = $profilUpdates;
+
+ return $res;
+ }
+
+ /**
+ * gets all the mailverteiler using the tables: tbl_benutzer, tbl_benutzergruppe, tbl_gruppe
+ * @access private
+ * @param integer $uid the userID used to retrieve the mailverteiler
+ * @return array returns the mailvertailer corresponding to a userID
+ */
+ private function getMailverteiler($uid)
+ {
+ $this->PersonModel->addSelect('gruppe_kurzbz, beschreibung');
+ $this->PersonModel->addJoin('tbl_benutzer', 'person_id');
+ $this->PersonModel->addJoin('tbl_benutzergruppe', 'uid');
+ $this->PersonModel->addJoin('tbl_gruppe', 'gruppe_kurzbz');
+
+ $mailverteiler_res = $this->PersonModel->loadWhere(array('mailgrp' => true, 'uid' => $uid));
+ if (isError($mailverteiler_res)) {
+ show_error("was not able to query the table public.tbl_benutzer:" . getData($mailverteiler_res));
+ }
+ $mailverteiler_res = hasData($mailverteiler_res) ? getData($mailverteiler_res) : null;
+ $mailverteiler_res = array_map(function ($element) {
+ $element->mailto = "mailto:" . $element->gruppe_kurzbz . "@" . DOMAIN;
+ return $element;
+ }, $mailverteiler_res);
+ return $mailverteiler_res;
+ }
+
+ /**
+ * gets all the Benutzerfunktionen of a corresponding user
+ * @access private
+ * @param integer $uid the userID used to retrieve the Benutzerfunktionen
+ * @return array returns the Benutzerfunktionen corresponding to a userID
+ */
+ private function getBenutzerFunktion($uid)
+ {
+ $this->BenutzerfunktionModel->addSelect(["tbl_benutzerfunktion.bezeichnung as Bezeichnung", "tbl_organisationseinheit.bezeichnung as Organisationseinheit", "datum_von as Gültig_von", "datum_bis as Gültig_bis", "wochenstunden as Wochenstunden"]);
+ $this->BenutzerfunktionModel->addJoin("tbl_organisationseinheit", "oe_kurzbz");
+
+ $benutzer_funktion_res = $this->BenutzerfunktionModel->loadWhere(array('uid' => $uid));
+ if (isError($benutzer_funktion_res)) {
+ show_error("was not able to query the table public.tbl_benutzerfunktion:" . getData($benutzer_funktion_res));
+ }
+ $benutzer_funktion_res = hasData($benutzer_funktion_res) ? getData($benutzer_funktion_res) : null;
+ return $benutzer_funktion_res;
+ }
+
+ /**
+ * gets all the Betriebsmittel of a corresponding user
+ * @access private
+ * @param integer $uid the userID used to retrieve the Betriebsmittel
+ * @return array returns the Betriebsmittel corresponding to a userID
+ */
+ private function getBetriebsmittelInfo($pid)
+ {
+ $this->BetriebsmittelpersonModel->addSelect(["CONCAT(betriebsmitteltyp, ' ' ,beschreibung) as Betriebsmittel", "nummer as Nummer", "ausgegebenam as Ausgegeben_am"]);
+
+ //? betriebsmittel are not needed in a view
+ $betriebsmittelperson_res = $this->BetriebsmittelpersonModel->getBetriebsmittel($pid);
+ if (isError($betriebsmittelperson_res)) {
+ show_error("was not able to query the table public.tbl_betriebsmittelperson:" . getData($betriebsmittelperson_res));
+ }
+ $betriebsmittelperson_res = hasData($betriebsmittelperson_res) ? getData($betriebsmittelperson_res) : null;
+ return $betriebsmittelperson_res;
+ }
+
+ /**
+ * gets the alias of a corresponding user
+ * @access private
+ * @param integer $uid the userID used to get the alias
+ * @return string the alias of the userID
+ */
+ private function getBenutzerAlias($uid)
+ {
+ $this->BenutzerModel->addSelect(["alias"]);
+ $benutzer_res = $this->BenutzerModel->load([$uid]);
+ if (isError($benutzer_res)) {
+ show_error("was not able to query the table public.tbl_benutzer:" . getData($benutzer_res));
+ } else {
+ $benutzer_res = hasData($benutzer_res) ? getData($benutzer_res)[0] : null;
+ }
+
+ return $benutzer_res;
+ }
+
+ /**
+ * gets the person information corresponding to a user
+ * @access private
+ * @param integer $uid the userID used to get the person information
+ * @param integer $geburtsInfo flag wether to add the columns gebort, gebdatum, foto_sperre or not
+ * @return array all the person informaion corresponding to a userID
+ */
+ private function getPersonInfo($uid, $geburtsInfo = null)
+ {
+ $selectClause = ["foto", "anrede", "titelpost as postnomen", "titelpre as titel", "vorname", "nachname"];
+ /** @param integer $geburtsInfo */
+ if ($geburtsInfo) {
+ array_push($selectClause, "gebort");
+ array_push($selectClause, "gebdatum");
+ array_push($selectClause, "foto_sperre");
+ }
+ $this->BenutzerModel->addSelect($selectClause);
+ $this->BenutzerModel->addJoin("tbl_person", "person_id");
+
+ $person_res = $this->BenutzerModel->load([$uid]);
+ if (isError($person_res)) {
+ show_error("was not able to query the table public.tbl_benutzer:" . getData($person_res));
+ } else {
+ $person_res = hasData($person_res) ? getData($person_res)[0] : null;
+ }
+
+ return $person_res;
+ }
+
+ /**
+ * gets the mitarbeiter information corresponding to a user
+ * @access private
+ * @param integer $uid the userID used to get the mitarbeiter information
+ * @return array all the mitarbeiter informaion corresponding to a userID
+ */
+ private function getMitarbeiterInfo($uid)
+ {
+ $this->MitarbeiterModel->addSelect(["kurzbz", "telefonklappe", "alias", "ort_kurzbz"]);
+ $this->MitarbeiterModel->addJoin("tbl_benutzer", "tbl_benutzer.uid = tbl_mitarbeiter.mitarbeiter_uid");
+ $mitarbeiter_res = $this->MitarbeiterModel->load($uid);
+ if (isError($mitarbeiter_res)) {
+ show_error("was not able to query the table public.tbl_mitarbeiter:" . getData($mitarbeiter_res));
+ } else {
+ $mitarbeiter_res = hasData($mitarbeiter_res) ? getData($mitarbeiter_res)[0] : null;
+ }
+
+ return $mitarbeiter_res;
+ }
+
+ /**
+ * gets the telefon information corresponding to a user
+ * @access private
+ * @param integer $uid the userID used to get the telefon information
+ * @return array all the telefon informaion corresponding to a userID
+ */
+ private function getTelefonInfo($uid)
+ {
+ $this->MitarbeiterModel->addSelect(["kontakt"]);
+ $this->MitarbeiterModel->addJoin("tbl_kontakt", "tbl_mitarbeiter.standort_id = tbl_kontakt.standort_id");
+ $this->MitarbeiterModel->addLimit(1);
+ $telefon_res = $this->MitarbeiterModel->loadWhere(["mitarbeiter_uid" => $uid, "kontakttyp" => "telefon"]);
+ if (isError($telefon_res)) {
+ show_error("was not able to query the table public.tbl_mitarbeiter:" . getData($telefon_res));
+ }
+ $telefon_res = hasData($telefon_res) ? getData($telefon_res)[0] : null;
+ return $telefon_res;
+ }
+
+ /**
+ * gets the student information corresponding to a user
+ * @access private
+ * @param integer $uid the userID used to get the student information
+ * @return array all the student informaion corresponding to a userID
+ */
+ private function getStudentInfo($uid)
+ {
+ $this->StudentModel->addSelect(['tbl_studiengang.bezeichnung as studiengang', 'tbl_student.semester', 'tbl_student.verband', 'tbl_student.gruppe', 'tbl_student.matrikelnr as personenkennzeichen']);
+ $this->StudentModel->addJoin('tbl_studiengang', "tbl_studiengang.studiengang_kz=tbl_student.studiengang_kz");
+
+ $student_res = $this->StudentModel->load([$uid]);
+ if (isError($student_res)) {
+ show_error("was not able to query the table public.tbl_student:" . getData($student_res));
+ }
+ $student_res = hasData($student_res) ? getData($student_res)[0] : null;
+ return $student_res;
+ }
+
+ /**
+ * gets the profil updates corresponding to a user
+ * @access private
+ * @param integer $uid the userID used to get the profil updates
+ * @return array all the profil updates corresponding to a userID
+ */
+ private function getProfilUpdates($uid)
+ {
+ $profilUpdates = $this->ProfilUpdateModel->getProfilUpdatesWhere(['uid' => $uid]);
+ if (isError($profilUpdates)) {
+ show_error("was not able to query the table public.tbl_profil_update:" . getData($profilUpdates));
+ }
+ $profilUpdates = hasData($profilUpdates) ? getData($profilUpdates) : null;
+ return $profilUpdates;
+ }
+
+ /**
+ * gets the Matrikelnummer corresponding to a user
+ * @access private
+ * @param integer $uid the userID used to get the Matrikelnummer
+ * @return integer the Matrikelnummer corresponding to a userID
+ */
+ private function getMatrikelNummer($uid)
+ {
+ $this->BenutzerModel->addSelect(["matr_nr"]);
+ $this->BenutzerModel->addJoin("tbl_person", "person_id");
+
+ $matr_res = $this->BenutzerModel->load([$uid]);
+ if (isError($matr_res)) {
+ show_error("was not able to query the table public.tbl_benutzer:" . getData($matr_res));
+ }
+ $matr_res = hasData($matr_res) ? getData($matr_res)[0] : [];
+ return $matr_res;
+ }
+
+ /**
+ * gets the Zutrittsgruppen corresponding to a user
+ * @access private
+ * @param integer $uid the userID used to get the Zutrittsgruppen
+ * @return array all the Zutrittsgruppen corresponding to a userID
+ */
+ private function getZutrittsgruppen($uid)
+ {
+ $this->BenutzergruppeModel->addSelect(['bezeichnung']);
+ $this->BenutzergruppeModel->addJoin('tbl_gruppe', 'gruppe_kurzbz');
+
+ $zutrittsgruppe_res = $this->BenutzergruppeModel->loadWhere(array("uid" => $uid, "zutrittssystem" => true));
+ if (isError($zutrittsgruppe_res)) {
+ show_error("was not able to query the table public.tbl_benutzergruppe:" . getData($zutrittsgruppe_res));
+ }
+ $zutrittsgruppe_res = hasData($zutrittsgruppe_res) ? getData($zutrittsgruppe_res) : null;
+ return $zutrittsgruppe_res;
+ }
+
+ /**
+ * gets the address information corresponding to a user
+ * @access private
+ * @param integer $uid the userID used to get the address information
+ * @return array all the address information corresponding to a userID
+ */
+ private function getAdressenInfo($pid)
+ {
+ $adresse_res = $this->AdresseModel->addSelect(["adresse_id", "strasse", "tbl_adressentyp.bezeichnung as typ", "plz", "ort", "zustelladresse", "gemeinde", "nation"]);
+ $adresse_res = $this->AdresseModel->addOrder("zustelladresse", "DESC");
+ $adresse_res = $this->AdresseModel->addJoin("tbl_adressentyp", "typ=adressentyp_kurzbz");
+
+ $adresse_res = $this->AdresseModel->loadWhere(["person_id" => $pid]);
+ if (isError($adresse_res)) {
+ show_error("was not able to query the table public.tbl_adresse:" . getData($adresse_res));
+ }
+ $adresse_res = hasData($adresse_res) ? getData($adresse_res) : null;
+ return $adresse_res;
+ }
+
+ /**
+ * gets the kontakt information corresponding to a user
+ * @access private
+ * @param integer $uid the userID used to get the kontakt information
+ * @return array all the kontakt information corresponding to a userID
+ */
+ private function getKontaktInfo($pid)
+ {
+ $this->KontaktModel->addSelect(['kontakttyp', 'kontakt_id', 'kontakt', 'tbl_kontakt.anmerkung', 'tbl_kontakt.zustellung']);
+ $this->KontaktModel->addJoin('public.tbl_standort', 'standort_id', 'LEFT');
+ $this->KontaktModel->addJoin('public.tbl_firma', 'firma_id', 'LEFT');
+ $this->KontaktModel->addOrder('kontakttyp, kontakt, tbl_kontakt.updateamum, tbl_kontakt.insertamum');
+
+ $kontakte_res = $this->KontaktModel->loadWhere(['person_id' => $pid]);
+ if (isError($kontakte_res)) {
+ show_error("was not able to query the table public.tbl_kontakt:" . getData($kontakte_res));
+ }
+ $kontakte_res = hasData($kontakte_res) ? getData($kontakte_res) : null;
+ return $kontakte_res;
+ }
+
+ /**
+ * gets the date of issue of the FH access card corresponding to a user
+ * @access private
+ * @param integer $uid the userID used to get the date of issue of the FH access card
+ * @return string the date of issue of the FH access card corresponding to a userID
+ */
+ private function getZutrittskarteDatum($uid)
+ {
+ $zutrittskarte_ausgegebenam = $this->BetriebsmittelpersonModel->getBetriebsmittelByUid($uid, "Zutrittskarte");
+ if (isError($zutrittskarte_ausgegebenam)) {
+ show_error("was not able to query the table wavi.tbl_bentriebsmittelperson:" . getData($zutrittskarte_ausgegebenam));
+ }
+ $zutrittskarte_ausgegebenam = hasData($zutrittskarte_ausgegebenam) ? getData($zutrittskarte_ausgegebenam)[0]->ausgegebenam : null;
+
+ //? formats date from 01-01-2000 to 01.01.2000
+ $zutrittskarte_ausgegebenam = str_replace("-", ".", $zutrittskarte_ausgegebenam);
+ return $zutrittskarte_ausgegebenam;
+ }
+
+
+}
diff --git a/application/controllers/Cis/ProfilUpdate.php b/application/controllers/Cis/ProfilUpdate.php
new file mode 100755
index 000000000..97a86488f
--- /dev/null
+++ b/application/controllers/Cis/ProfilUpdate.php
@@ -0,0 +1,808 @@
+ ['student/stammdaten:r', 'mitarbeiter/stammdaten:r'],
+ 'id' => ['student/stammdaten:r', 'mitarbeiter/stammdaten:r'],
+ 'getProfilUpdateWithPermission' => ['student/stammdaten:r', 'mitarbeiter/stammdaten:r'],
+ 'acceptProfilRequest' => ['student/stammdaten:rw', 'mitarbeiter/stammdaten:rw'],
+ 'denyProfilRequest' => ['student/stammdaten:rw', 'mitarbeiter/stammdaten:rw'],
+ 'show' => ['student/anrechnung_beantragen:r', 'user:r'],
+
+ 'insertProfilRequest' => ['student/anrechnung_beantragen:r', 'user:r'],
+ 'updateProfilRequest' => ['student/anrechnung_beantragen:r', 'user:r'],
+ 'deleteProfilRequest' => ['student/anrechnung_beantragen:r', 'user:r'],
+ 'selectProfilRequest' => ['student/anrechnung_beantragen:r', 'user:r'],
+ 'insertFile' => ['student/anrechnung_beantragen:r', 'user:r'],
+ 'getProfilRequestFiles' => ['student/anrechnung_beantragen:r', 'user:r'],
+ 'getStatus' => ['student/anrechnung_beantragen:r', 'user:r'],
+ 'getTopic' => ['student/anrechnung_beantragen:r', 'user:r'],
+ ]);
+
+
+ $this->load->model('person/Profil_update_model', 'ProfilUpdateModel');
+ $this->load->model('person/Kontakt_model', 'KontaktModel');
+ $this->load->model('person/Adresse_model', 'AdresseModel');
+ $this->load->model('person/Adressentyp_model', 'AdressenTypModel');
+ $this->load->model('person/Person_model', 'PersonModel');
+ $this->load->model('ressource/mitarbeiter_model', 'MitarbeiterModel');
+ $this->load->model('crm/Student_model', 'StudentModel');
+ $this->load->model('person/Benutzer_model', 'BenutzerModel');
+ $this->load->model('system/Sprache_model', 'SpracheModel');
+ $this->load->model('person/Profil_update_status_model', 'ProfilUpdateStatusModel');
+ $this->load->model('person/Profil_update_topic_model', 'ProfilUpdateTopicModel');
+
+ // Load language phrases
+ $this->loadPhrases(
+ array(
+ 'ui',
+ 'global',
+ 'person',
+ 'profil',
+ 'profilUpdate'
+ )
+ );
+
+ $this->load->library('DmsLib');
+ $this->load->library('PermissionLib');
+
+ //? put the uid and pid inside the controller for reusability
+ $this->uid = getAuthUID();
+ $this->pid = getAuthPersonID();
+
+ // setup the ProfilUpdate states
+ $this->ProfilUpdateStatusModel->addSelect(['status_kurzbz']);
+ $status_kurzbz = $this->ProfilUpdateStatusModel->load();
+ if (hasData($status_kurzbz)) {
+ list($status_pending, $status_accepted, $status_rejected) = getData($status_kurzbz);
+
+ self::$STATUS_PENDING = $status_pending->status_kurzbz;
+ self::$STATUS_ACCEPTED = $status_accepted->status_kurzbz;
+ self::$STATUS_REJECTED = $status_rejected->status_kurzbz;
+ }
+ // setup the ProfilUpdate topics
+ $this->ProfilUpdateTopicModel->addSelect(['topic_kurzbz']);
+ $topic_kurzbz = $this->ProfilUpdateTopicModel->load();
+
+ if (hasData($topic_kurzbz)) {
+ foreach (getData($topic_kurzbz) as $topic) {
+ self::$TOPICS[$topic->topic_kurzbz] = $topic->topic_kurzbz;
+ }
+ }
+ }
+
+
+ public function index()
+ {
+ $this->load->view('Cis/ProfilUpdate');
+ }
+
+ public function id($profil_update_id = null)
+ {
+ $this->load->view('Cis/ProfilUpdate', ['profil_update_id' => $profil_update_id]);
+ }
+
+ public function getStatus()
+ {
+ echo json_encode([self::$STATUS_PENDING => self::$STATUS_PENDING, self::$STATUS_ACCEPTED => self::$STATUS_ACCEPTED, self::$STATUS_REJECTED => self::$STATUS_REJECTED]);
+ }
+
+ public function getTopic()
+ {
+ echo json_encode(self::$TOPICS);
+ }
+
+ private function sendEmail_onProfilUpdate_response($uid, $topic, $status)
+ {
+
+ $this->load->helper('hlp_sancho_helper');
+ $email = $uid . "@" . DOMAIN;
+
+
+ function languageQuery($language)
+ {
+ return "select index from public.tbl_sprache where sprache = '" + $language + "'";
+ }
+ $this->ProfilUpdateStatusModel->addSelect(["bezeichnung_mehrsprachig[(" . languageQuery('German') . ")] as status_de", "bezeichnung_mehrsprachig[(" . languageQuery('English') . ")] as status_en"]);
+ $status_translation = $this->ProfilUpdateStatusModel->loadWhere(["status_kurzbz" => $status]);
+ if (isError($status_translation)) {
+ show_error($this->p->t('profilUpdate', 'ProfilUpdateStatusTranslationError'));
+ }
+ $status_translation = hasData($status_translation) ? getData($status_translation)[0] : null;
+ if (isset($status_translation)) {
+ $mail_res = sendSanchoMail("profil_update_response", ['topic' => $topic, 'status_de' => $status_translation->status_de, 'status_en' => $status_translation->status_en, 'href' => APP_ROOT . 'Cis/Profil'], $email, ("Profil Änderung " . $this->p->t('profilUpdate', 'pending')));
+ if (!$mail_res) {
+ show_error($this->p->t('profilUpdate', 'profilUpdate_email_error'));
+ }
+ }
+
+ }
+
+
+ private function sendEmail_onProfilUpdate_insertion($uid, $profil_update_id, $topic)
+ {
+
+ $this->load->helper('hlp_sancho_helper');
+ $emails = [];
+
+ $isMitarbeiter_res = $this->MitarbeiterModel->isMitarbeiter($uid);
+ if (isError($isMitarbeiter_res)) {
+ show_error($this->p->t('profilUpdate', 'profilUpdate_mitarbeiterCheck_error'));
+ }
+ $isMitarbeiter_res = getData($isMitarbeiter_res);
+
+ //! if the $uid is a mitarbeiter and student, only the hr is notified by email
+ if ($isMitarbeiter_res) {
+ //? user is not a student therefore he is a mitarbeiter, send email to Personalverwaltung
+ //? use constant variable MAIL_GST to mail to the personalverwaltung
+ $this->MitarbeiterModel->addSelect([TRUE]);
+ $this->MitarbeiterModel->addJoin("public.tbl_benutzer", "public.tbl_benutzer.uid = public.tbl_mitarbeiter.mitarbeiter_uid");
+ //? check if the the userID is a mitarbeiter and if the benutzer is active
+ $res = $this->MitarbeiterModel->loadWhere(["public.tbl_mitarbeiter.mitarbeiter_uid" => $uid, "public.tbl_benutzer.aktiv" => TRUE]);
+ if (isError($res)) {
+ show_error("was not able to query the mitarbeiter and benutzer by the uid: " . $uid);
+ }
+ if (hasData($res)) {
+ array_push($emails, MAIL_GST);
+ } else {
+ show_error($this->p->t('profilUpdate', 'profilUpdate_mitarbeiterCheck_error'));
+ }
+ } else {
+ //? if it is not a mitarbeiter, check whether it is a student and send email to studiengang
+ $isStudent_res = $this->StudentModel->isStudent($uid);
+ if (isError($isStudent_res)) {
+ show_error($this->p->t('profilUpdate', 'profilUpdate_studentCheck_error'));
+ }
+ $isStudent_res = getData($isStudent_res);
+ if ($isStudent_res) {
+ //? Send email to the Studiengangsassistentinnen
+ $this->StudentModel->addSelect(["public.tbl_studiengang.email"]);
+ $this->StudentModel->addJoin("public.tbl_benutzer", "public.tbl_benutzer.uid = public.tbl_student.student_uid");
+ $this->StudentModel->addJoin("public.tbl_prestudent", "public.tbl_benutzer.person_id = public.tbl_prestudent.person_id");
+ $this->StudentModel->addJoin("public.tbl_prestudentstatus", "public.tbl_prestudentstatus.prestudent_id = public.tbl_prestudent.prestudent_id");
+ $this->StudentModel->addJoin("public.tbl_studiengang", "public.tbl_studiengang.studiengang_kz = public.tbl_prestudent.studiengang_kz");
+ //* check if the benutzer itself is active
+ //* check if the student status is Student or Diplomand (active students)
+ $this->StudentModel->db->where_in("public.tbl_prestudentstatus.status_kurzbz", ['Student', 'Diplomand']);
+ $res = $this->StudentModel->loadWhere(["public.tbl_benutzer.aktiv" => TRUE, "public.tbl_student.student_uid" => $uid]);
+ if (isError($res)) {
+ show_error(getData($res));
+ } else {
+ $res = hasData($res) ? getData($res) : [];
+ foreach ($res as $emailObj) {
+ array_push($emails, $emailObj->email);
+ }
+ }
+ }
+ }
+ $mail_res = [];
+ //? sending email
+ foreach ($emails as $email) {
+ array_push($mail_res, sendSanchoMail("profil_update", ['uid' => $uid, 'topic' => $topic, 'href' => APP_ROOT . 'Cis/ProfilUpdate/id/' . $profil_update_id], $email, ("Profil Änderung von " . $uid)));
+ }
+ foreach ($mail_res as $m_res) {
+ if (!$m_res) {
+ show_error($this->p->t('profilUpdate', 'profilUpdate_email_error'));
+ }
+ }
+
+ }
+
+
+ public function show($dms_id)
+ {
+
+ $profil_update = $this->ProfilUpdateModel->loadWhere(['attachment_id' => $dms_id]);
+ $profil_update = hasData($profil_update) ? getData($profil_update)[0] : null;
+
+ //? checks if an profil update exists with the dms_id requested from the user
+ if ($profil_update) {
+ $is_mitarbeiter_profil_update = getData($this->MitarbeiterModel->isMitarbeiter($profil_update->uid));
+ $is_student_profil_update = getData($this->StudentModel->isStudent($profil_update->uid));
+
+ if (
+ $this->permissionlib->isBerechtigt('student/stammdaten:r') && $is_student_profil_update ||
+ $this->permissionlib->isBerechtigt('mitarbeiter/stammdaten:r') && $is_mitarbeiter_profil_update ||
+ $this->uid == $profil_update->uid
+ ) {
+ // Get file to be downloaded from DMS
+ $newFilename = $this->uid . "/document_" . $dms_id;
+ $download = $this->dmslib->download($dms_id);
+ if (isError($download))
+ return $download;
+
+ // Download file
+ $this->outputFile(getData($download));
+
+
+ } else {
+ show_error($this->p->t('profilUpdate', 'profilUpdate_permission_error'));
+ return;
+ }
+
+ } else {
+ show_error($this->p->t('profilUpdate', 'profilUpdate_dms_error'));
+ return;
+ }
+
+ }
+
+
+ public function insertFile($replace)
+ {
+ $replace = json_decode($replace);
+
+ if (!count($_FILES)) {
+ echo json_encode([]);
+ return;
+ }
+
+ //? if replace is set it contains the profil_update_id in which the attachment_id has to be replaced
+ if (isset($replace)) {
+ $this->ProfilUpdateModel->addSelect(["attachment_id"]);
+ $profilUpdate = $this->ProfilUpdateModel->load([$replace]);
+ if (isError($profilUpdate)) {
+ return json_encode(error($this->p->t('profilUpdate', 'profilUpdate_loading_error')));
+ }
+ //? get the attachmentID
+ $dms_id = hasData($profilUpdate) ? getData($profilUpdate)[0]->attachment_id : null;
+
+ //? delete old dms_file of Profil Update
+ $this->deleteOldVersionFile($dms_id);
+ }
+
+
+ $files = $_FILES['files'];
+ $file_count = count($files['name']);
+
+ $res = [];
+
+ for ($i = 0; $i < $file_count; $i++) {
+ $_FILES['files']['name'] = $files['name'][$i];
+ $_FILES['files']['type'] = $files['type'][$i];
+ $_FILES['files']['tmp_name'] = $files['tmp_name'][$i];
+ $_FILES['files']['error'] = $files['error'][$i];
+ $_FILES['files']['size'] = $files['size'][$i];
+
+ $dms = [
+ "kategorie_kurzbz" => "profil_aenderung",
+ "version" => 0,
+ "name" => $_FILES['files']['name'],
+ "mimetype" => $_FILES['files']['type'],
+ "beschreibung" => $this->uid . " Profil Änderung",
+ "insertvon" => $this->uid,
+ "insertamum" => "NOW()",
+ ];
+
+ $tmp_res = $this->dmslib->upload($dms, 'files', array("jpg", "png", "pdf"));
+
+ $tmp_res = hasData($tmp_res) ? getData($tmp_res) : null;
+ array_push($res, $tmp_res);
+ }
+
+ echo json_encode($res);
+ }
+
+
+ private function deleteOldVersionFile($dms_id)
+ {
+ if (!isset($dms_id)) {
+ return;
+ }
+
+ //? collect all the results of the deleted versions in an array
+ $res = array();
+
+ //? delete all the different versions of the dms_file
+ $dmsVersions = $this->DmsVersionModel->loadWhere(["dms_id" => $dms_id]);
+ $dmsVersions = hasData($dmsVersions) ? getData($dmsVersions) : null;
+ if (isset($dmsVersions)) {
+ $zwischen_res = array_map(function ($item) {
+ return $item->version;
+ }, $dmsVersions);
+ foreach ($zwischen_res as $version) {
+ array_push($res, $this->DmsVersionModel->delete([$dms_id, $version]));
+ }
+ } else {
+ echo json_encode(error($this->p->t('profilUpdate', 'profilUpdate_dmsVersion_error')));
+ }
+
+ //? returns a result for each deleted dms_file
+ return $res;
+ }
+
+
+ public function selectProfilRequest()
+ {
+ $_GET = json_decode($this->input->raw_input_stream, true);
+ $uid = $this->input->get('uid');
+ $id = $this->input->get('id');
+ $whereClause = ['uid' => $this->uid];
+
+ if (isset($uid))
+ $whereClause['uid'] = $uid;
+ if (isset($id))
+ $whereClause['id'] = $id;
+
+ $res = $this->ProfilUpdateModel->getProfilUpdatesWhere($whereClause);
+ $res = hasData($res) ? getData($res) : null;
+ echo json_encode($res);
+
+ }
+
+
+ public function getProfilRequestFiles()
+ {
+ $id = json_decode($this->input->raw_input_stream);
+
+ $this->ProfilUpdateModel->addSelect(["attachment_id"]);
+ $attachmentID = $this->ProfilUpdateModel->load([$id]);
+ if (isError($attachmentID)) {
+ return json_encode(error($this->p->t('profilUpdate', 'profilUpdate_loading_error')));
+ }
+ //? get the attachmentID
+ $dms_id = hasData($attachmentID) ? getData($attachmentID)[0]->attachment_id : null;
+
+ //? get the name to the file
+ $this->DmsVersionModel->addSelect(["name", "dms_id"]);
+ $attachment = $this->DmsVersionModel->load([$dms_id, 0]);
+ if (isError($attachment)) {
+ return json_encode(error($this->p->t('profilUpdate', 'profilUpdate_dmsVersion_error')));
+ }
+ $attachment = hasData($attachment) ? getData($attachment) : null;
+ //? returns {name:..., dms_id:...}
+ echo json_encode($attachment);
+ }
+
+ public function insertProfilRequest()
+ {
+
+ $json = json_decode($this->input->raw_input_stream);
+
+ $payload = $json->payload;
+ $identifier = property_exists($json->payload, "kontakt_id") ? "kontakt_id" : (property_exists($json->payload, "adresse_id") ? "adresse_id" : null);
+
+ $data = ["topic" => $json->topic, "uid" => $this->uid, "requested_change" => json_encode($payload), "insertamum" => "NOW()", "insertvon" => $this->uid, "status" => self::$STATUS_PENDING ?: 'Pending'];
+
+ //? insert fileID in the dataset if sent with post request
+ if (isset($json->fileID)) {
+ $data['attachment_id'] = $json->fileID;
+
+ }
+
+ //? loops over all updateRequests from a user to validate if the new request is valid
+ $res = $this->ProfilUpdateModel->getProfilUpdatesWhere(["uid" => $this->uid]);
+ if (isError($res)) {
+ show_error($this->p->t('profilUpdate', 'profilUpdate_loading_error'));
+ }
+ $res = hasData($res) ? getData($res) : null;
+
+ //? the user cannot delete a zustelladresse/kontakt
+ if (isset($payload->delete) && $payload->{$identifier == "kontakt_id" ? "zustellung" : "zustelladresse"}) {
+ echo json_encode(error($this->p->t('profilUpdate', 'profilUpdate_deleteZustellung_error')));
+ return;
+ }
+
+ //? if the user tries to delete a adresse, checks whether the adresse is a heimatadresse, if so an error is raised
+ if (isset($payload->delete) && $identifier == "adresse_id") {
+ $adr = $this->AdresseModel->load($payload->$identifier);
+ $adr = getData($adr)[0];
+ if ($adr->heimatadresse) {
+ echo json_encode(error($this->p->t('profilUpdate', 'profilUpdate_deleteZustellung_error')));
+ return;
+ }
+ }
+
+ if ($res) {
+ $pending_changes = array_filter($res, function ($element) {
+ return $element->status == (self::$STATUS_PENDING ?: "Pending");
+ });
+
+ foreach ($pending_changes as $update_request) {
+ $existing_change = $update_request->requested_change;
+
+ //? the user can add as many new kontakte/adressen as he likes
+ if (!isset($payload->add) && property_exists($existing_change, $identifier) && property_exists($payload, $identifier) && $existing_change->$identifier == $payload->$identifier) {
+ //? the kontakt_id / adresse_id of a change has to be unique
+ echo json_encode(error($this->p->t('profilUpdate', 'profilUpdate_changeTwice_error')));
+ return;
+ }
+
+ //? if it is not updating any kontakt/adresse, the topic has to be unique
+ elseif (!$identifier && $update_request->topic == $json->topic) {
+ echo json_encode(error($this->p->t('profilUpdate', 'profilUpdate_changeTopicTwice_error', ['0' => $update_request->topic])));
+ return;
+ }
+ }
+ }
+
+ $insertID = $this->ProfilUpdateModel->insert($data);
+
+ if (isError($insertID)) {
+ show_error(getData($insertID));
+ } else {
+ $insertID = hasData($insertID) ? getData($insertID) : null;
+
+ //? sends emails to the correspondents of the $uid
+ $this->sendEmail_onProfilUpdate_insertion($this->uid, $insertID, $json->topic);
+ echo json_encode(success($insertID));
+ }
+ }
+
+ public function updateProfilRequest()
+ {
+ $json = json_decode($this->input->raw_input_stream);
+
+ $updateData = ["requested_change" => json_encode($json->payload), "updateamum" => "NOW()", "updatevon" => $this->uid];
+ if (isset($json->fileID)) {
+ $updateData['attachment_id'] = json_decode($json->fileID);
+ }
+ $updateID = $this->ProfilUpdateModel->update([$json->ID], $updateData);
+ //? insert fileID in the dataset if sent with post request
+
+ if (isError($updateID)) {
+ //catch error
+ } else {
+ $updateID = hasData($updateID) ? getData($updateID)[0] : null;
+ //TODO: should an email be sent to the responsable people when the user changes his profil update
+ echo json_encode(success($updateID));
+ }
+ }
+
+ public function deleteProfilRequest()
+ {
+
+ $json = json_decode($this->input->raw_input_stream);
+ $delete_res = $this->ProfilUpdateModel->delete([$json]);
+ echo json_encode($delete_res);
+ }
+
+
+ public function getProfilUpdateWithPermission($status = null)
+ {
+ // early return if no status has been passed as argument
+ if (!isset($status)) {
+ echo json_encode($this->ProfilUpdateModel->getProfilUpdateWithPermission());
+ return;
+ }
+
+ // get the sprache of the user
+ $sprachenIndex = $this->SpracheModel->loadWhere(["sprache" => getUserLanguage()]);
+ $sprachenIndex = hasData($sprachenIndex) ? getData($sprachenIndex)[0]->index : null;
+
+ if (isset($sprachenIndex) && isset($status)) {
+ // get the corresponding status kurz_bz primary key out of the translation
+ $status = $this->ProfilUpdateStatusModel->execReadOnlyQuery("select * from public.tbl_profil_update_status where ? = ANY(bezeichnung_mehrsprachig)", [$status]);
+ $status = hasData($status) ? getData($status)[0]->status_kurzbz : null;
+ $res = $this->ProfilUpdateModel->getProfilUpdateWithPermission(isset($status) ? ['status' => $status] : null);
+
+ echo json_encode($res);
+ }
+ }
+
+
+
+ private function getOE_from_student($student_uid)
+ {
+
+ //? returns the oe_einheit eines Studenten
+ $query = "SELECT public.tbl_studiengang.oe_kurzbz
+ FROM public.tbl_student
+ JOIN public.tbl_studiengang ON tbl_student.studiengang_kz = public.tbl_studiengang.studiengang_kz
+ WHERE public.tbl_student.student_uid = ?;";
+
+ $res = $this->StudentModel->execReadOnlyQuery($query, [$student_uid]);
+ if (!isSuccess($res)) {
+ show_error($this->p->t('profilUpdate', 'profilUpdate_loadingOE_error'));
+ }
+ $res = hasData($res) ? getData($res) : [];
+ $res = array_map(
+ function ($item) {
+ return $item->oe_kurzbz;
+ },
+ $res
+ );
+ return $res;
+ }
+
+
+ public function acceptProfilRequest()
+ {
+
+
+ $_POST = json_decode($this->input->raw_input_stream, true);
+ $id = $this->input->post('profil_update_id', true);
+ $uid = $this->input->post('uid', true);
+
+ //? fetching person_id using UID
+ $personID = $this->PersonModel->getByUid($uid);
+ $personID = hasData($personID) ? getData($personID)[0]->person_id : null;
+ $status_message = $this->input->post('status_message', true);
+ $topic = $this->input->post('topic', true);
+
+ //! somehow the xss check converted boolean false to empty string
+ $requested_change = $this->input->post('requested_change');
+
+ //! check for required information
+ if (!isset($id) || !isset($uid) || !isset($personID) || !isset($requested_change) || !isset($topic)) {
+ return json_encode(error($this->p->t('profilUpdate', 'profilUpdate_requiredInformation_error')));
+ }
+
+ $is_mitarbeiter_profil_update = getData($this->MitarbeiterModel->isMitarbeiter($uid));
+ $is_student_profil_update = getData($this->StudentModel->isStudent($uid));
+
+
+ //? check if the permissions are set correctly
+ if (
+ $this->permissionlib->isBerechtigt('student/stammdaten', "suid", $this->getOE_from_student($uid)) && $is_student_profil_update ||
+ $this->permissionlib->isBerechtigt('mitarbeiter/stammdaten', "suid") && $is_mitarbeiter_profil_update
+ ) {
+
+ if (is_array($requested_change) && array_key_exists("adresse_id", $requested_change)) {
+ $insertID = $this->handleAdresse($requested_change, $personID);
+ $insertID = hasData($insertID) ? getData($insertID) : null;
+ if (isset($insertID)) {
+ $requested_change['adresse_id'] = $insertID;
+ $update_res = $this->updateRequestedChange($id, $requested_change);
+ if (isError($update_res)) {
+ echo json_encode(error($this->p->t('profilUpdate', 'profilUpdate_address_error', [$insertID])));
+ return;
+ }
+ }
+
+ } else if (is_array($requested_change) && array_key_exists("kontakt_id", $requested_change)) {
+ $insertID = $this->handleKontakt($requested_change, $personID);
+ $insertID = hasData($insertID) ? getData($insertID) : null;
+ if (isset($insertID)) {
+ $requested_change['kontakt_id'] = $insertID;
+ $update_res = $this->updateRequestedChange($id, $requested_change);
+ if (isError($update_res)) {
+ echo json_encode(error($this->p->t('profilUpdate', 'profilUpdate_kontakt_error', [$insertID])));
+ return;
+ }
+ }
+
+
+ } else {
+ switch ($topic) {
+ // mapping phrasen to database columns to make the update with the correct column names
+ case self::$TOPICS['Titel']:
+ $topic = "titelpre";
+ break;
+ case self::$TOPICS['Postnomen']:
+ $topic = "titelpost";
+ break;
+ case self::$TOPICS['Vorname']:
+ $topic = "vorname";
+ break;
+ case self::$TOPICS['Nachname']:
+ $topic = "nachname";
+ break;
+ default:
+ show_error($this->p->t('profilUpdate', 'profilUpdate_topic_error', [$topic]));
+ return;
+ }
+
+ $result = $this->PersonModel->update($personID, [$topic => $requested_change["value"]]);
+ if (isError($result)) {
+ echo json_encode(error($this->p->t('profilUpdate', 'profilUpdate_insert_error')));
+ return;
+ }
+ }
+ $this->sendEmail_onProfilUpdate_response($uid, $topic, self::$STATUS_ACCEPTED);
+
+ echo json_encode($this->setStatusOnUpdateRequest($id, self::$STATUS_ACCEPTED, $status_message, $requested_change));
+ } else {
+ show_error($this->p->t('profilUpdate', 'profilUpdate_permission_error'));
+ }
+
+
+ }
+
+ public function denyProfilRequest()
+ {
+
+ $_POST = json_decode($this->input->raw_input_stream, true);
+ $id = $this->input->post('profil_update_id', true);
+ $uid = $this->input->post('uid', true);
+ $topic = $this->input->post('topic', true);
+ $status_message = $this->input->post('status_message', true);
+
+ $is_mitarbeiter_profil_update = getData($this->MitarbeiterModel->isMitarbeiter($uid));
+ $is_student_profil_update = getData($this->StudentModel->isStudent($uid));
+
+
+ if (
+ $this->permissionlib->isBerechtigt('student/stammdaten', "suid", $this->getOE_from_student($uid)) && $is_student_profil_update ||
+ $this->permissionlib->isBerechtigt('mitarbeiter/stammdaten', "suid") && $is_mitarbeiter_profil_update
+ ) {
+ $this->sendEmail_onProfilUpdate_response($uid, $topic, self::$STATUS_REJECTED);
+ echo json_encode($this->setStatusOnUpdateRequest($id, self::$STATUS_REJECTED, $status_message));
+ } else {
+ show_error($this->p->t('profilUpdate', 'profilUpdate_permission_error'));
+ }
+
+
+ }
+
+ private function updateRequestedChange($id, $requested_change)
+ {
+ return $this->ProfilUpdateModel->update([$id], ['requested_change' => json_encode($requested_change)]);
+ }
+
+ private function setStatusOnUpdateRequest($id, $status, $status_message)
+ {
+ return $this->ProfilUpdateModel->update([$id], ["status" => $status, "status_timestamp" => "NOW()", "status_message" => $status_message]);
+ }
+
+
+ private function handleKontakt($requested_change, $personID)
+ {
+ $kontakt_id = $requested_change["kontakt_id"];
+ //? removes the kontakt_id because we don't want to update the kontakt_id in the database
+ unset($requested_change["kontakt_id"]);
+
+
+ //! ADD
+ if (array_key_exists('add', $requested_change) && $requested_change['add']) {
+ //? removes add flag
+ unset($requested_change['add']);
+ $requested_change['person_id'] = $personID;
+ $requested_change['insertamum'] = "NOW()";
+ $requested_change['insertvon'] = getAuthUID();
+ $insertID = $this->KontaktModel->insert($requested_change);
+ $insert_kontakt_id = $insertID;
+ if (isError($insert_kontakt_id)) {
+ show_error($this->p->t('profilUpdate', 'profilUpdate_insertKontakt_error'));
+ }
+ $insert_kontakt_id = hasData($insert_kontakt_id) ? getData($insert_kontakt_id) : null;
+ if ($insert_kontakt_id) {
+ $this->handleDupplicateZustellKontakte($requested_change['zustellung'], $insert_kontakt_id);
+ }
+
+
+ }
+ //! DELETE
+ elseif (array_key_exists('delete', $requested_change) && $requested_change['delete']) {
+ $this->KontaktModel->delete($kontakt_id);
+ }
+ //! UPDATE
+ else {
+ $requested_change['updateamum'] = "NOW()";
+ $requested_change['updatevon'] = getAuthUID();
+
+ $update_kontakt_id = $this->KontaktModel->update($kontakt_id, $requested_change);
+
+ if (isError($update_kontakt_id)) {
+ show_error($this->p->t('profilUpdate', 'profilUpdate_updateKontakt_error'));
+ }
+ $update_kontakt_id = hasData($update_kontakt_id) ? getData($update_kontakt_id) : null;
+ if ($update_kontakt_id) {
+ $this->handleDupplicateZustellKontakte($requested_change['zustellung'], $update_kontakt_id);
+ }
+ }
+ return isset($insertID) ? $insertID : null;
+ }
+
+ private function handleAdresse($requested_change, $personID)
+ {
+
+ $this->AdressenTypModel->addSelect(["adressentyp_kurzbz"]);
+ $adr_kurzbz = $this->AdressenTypModel->loadWhere(["bezeichnung" => $requested_change['typ']]);
+ $adr_kurzbz = hasData($adr_kurzbz) ? getData($adr_kurzbz)[0]->adressentyp_kurzbz : null;
+ //? replace the address_typ with its correct kurzbz foreign key
+ $requested_change['typ'] = $adr_kurzbz;
+
+ $adresse_id = $requested_change["adresse_id"];
+ //? removes the adresse_id because we don't want to update the kontakt_id in the database
+ unset($requested_change["adresse_id"]);
+
+
+ //! ADD
+ if (array_key_exists('add', $requested_change) && $requested_change['add']) {
+
+ //? removes add flag
+ unset($requested_change['add']);
+ $requested_change['insertamum'] = "NOW()";
+ $requested_change['insertvon'] = getAuthUID();
+ $requested_change['person_id'] = $personID;
+ //TODO: zustelladresse, heimatadresse, rechnungsadresse und nation werden nicht beachtet
+ $insertID = $this->AdresseModel->insert($requested_change);
+ $insert_adresse_id = $insertID;
+ if (isError($insert_adresse_id)) {
+ show_error($this->p->t('profilUpdate', 'profilUpdate_insertAdresse_error'));
+ }
+ $insert_adresse_id = hasData($insert_adresse_id) ? getData($insert_adresse_id) : null;
+ if ($insert_adresse_id) {
+ $this->handleDupplicateZustellAdressen($requested_change['zustelladresse'], $insert_adresse_id);
+ }
+
+ }
+ //! DELETE
+ elseif (array_key_exists('delete', $requested_change) && $requested_change['delete']) {
+ $this->AdresseModel->delete($adresse_id);
+ }
+ //! UPDATE
+ else {
+ $requested_change['updateamum'] = "NOW()";
+ $requested_change['updatevon'] = getAuthUID();
+ $update_adresse_id = $this->AdresseModel->update($adresse_id, $requested_change);
+ if (isError($update_adresse_id)) {
+ show_error($this->p->t('profilUpdate', 'profilUpdate_updateAdresse_error'));
+ }
+ $update_adresse_id = hasData($update_adresse_id) ? getData($update_adresse_id) : null;
+ if ($update_adresse_id) {
+ $this->handleDupplicateZustellAdressen($requested_change['zustelladresse'], $update_adresse_id);
+ }
+ }
+ return isset($insertID) ? $insertID : null;
+ }
+
+
+ private function handleDupplicateZustellKontakte($zustellung, $kontakt_id)
+ {
+ if ($zustellung) {
+ $this->PersonModel->addSelect("public.tbl_kontakt.kontakt_id");
+ $this->PersonModel->addJoin("public.tbl_kontakt", "public.tbl_kontakt.person_id = public.tbl_person.person_id");
+ $zustellKontakteArray = $this->PersonModel->loadWhere(["public.tbl_person.person_id" => $this->pid, "zustellung" => TRUE]);
+ if (!isSuccess($zustellKontakteArray)) {
+ return error($this->p->t('profilUpdate', 'profilUpdate_loadingZustellkontakte_error'));
+ }
+ $zustellKontakteArray = hasData($zustellKontakteArray) ? getData($zustellKontakteArray) : null;
+
+ if ($zustellung && count($zustellKontakteArray) > 0) {
+ $zustellKontakteArray = array_filter($zustellKontakteArray, function ($kontakt) use ($kontakt_id) {
+ return $kontakt->kontakt_id != $kontakt_id;
+ });
+ foreach ($zustellKontakteArray as $kontakt) {
+ $this->KontaktModel->update($kontakt->kontakt_id, ["zustellung" => FALSE]);
+ }
+
+ }
+ }
+ }
+
+ private function handleDupplicateZustellAdressen($zustellung, $adresse_id)
+ {
+ if ($zustellung) {
+ $this->PersonModel->addSelect("public.tbl_adresse.adresse_id");
+ $this->PersonModel->addJoin("public.tbl_adresse", "public.tbl_adresse.person_id = public.tbl_person.person_id");
+ $zustellAdressenArray = $this->PersonModel->loadWhere(["public.tbl_person.person_id" => $this->pid, "zustelladresse" => TRUE]);
+ if (!isSuccess($zustellAdressenArray)) {
+ return error($this->p->t('profilUpdate', 'profilUpdate_loadingZustellAdressen_error'));
+ }
+ $zustellAdressenArray = hasData($zustellAdressenArray) ? getData($zustellAdressenArray) : null;
+
+ if ($zustellung && count($zustellAdressenArray) > 0) {
+
+ $zustellAdressenArray = array_filter($zustellAdressenArray, function ($adresse) use ($adresse_id) {
+
+ return $adresse->adresse_id != $adresse_id;
+ });
+ foreach ($zustellAdressenArray as $adresse) {
+ $this->AdresseModel->update($adresse->adresse_id, ["zustelladresse" => FALSE]);
+ }
+
+ }
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/application/controllers/Cis/Pub.php b/application/controllers/Cis/Pub.php
old mode 100644
new mode 100755
diff --git a/application/controllers/Cis/Stundenplan.php b/application/controllers/Cis/Stundenplan.php
old mode 100644
new mode 100755
diff --git a/application/controllers/Cis4.php b/application/controllers/Cis4.php
old mode 100644
new mode 100755
diff --git a/application/controllers/CisHmvc.php b/application/controllers/CisHmvc.php
old mode 100644
new mode 100755
diff --git a/application/controllers/CisHmvc/Cms.php b/application/controllers/CisHmvc/Cms.php
old mode 100644
new mode 100755
diff --git a/application/controllers/CisHmvc/Dashboard.php b/application/controllers/CisHmvc/Dashboard.php
old mode 100644
new mode 100755
diff --git a/application/controllers/CisHtml/Cms.php b/application/controllers/CisHtml/Cms.php
old mode 100644
new mode 100755
diff --git a/application/controllers/CisHtml/Dashboard.php b/application/controllers/CisHtml/Dashboard.php
old mode 100644
new mode 100755
diff --git a/application/controllers/CisVue/Cms.php b/application/controllers/CisVue/Cms.php
old mode 100644
new mode 100755
diff --git a/application/controllers/CisVue/Dashboard.php b/application/controllers/CisVue/Dashboard.php
old mode 100644
new mode 100755
diff --git a/application/controllers/Test.php b/application/controllers/Test.php
old mode 100644
new mode 100755
diff --git a/application/controllers/Vilesci.php b/application/controllers/Vilesci.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/frontend/v1/studstatus/Unterbrechung.php b/application/controllers/api/frontend/v1/studstatus/Unterbrechung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/index.html b/application/controllers/api/index.html
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/CheckUserAuth.php b/application/controllers/api/v1/CheckUserAuth.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/Test.php b/application/controllers/api/v1/Test.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/accounting/Aufteilung.php b/application/controllers/api/v1/accounting/Aufteilung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/accounting/Bestelldetail.php b/application/controllers/api/v1/accounting/Bestelldetail.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/accounting/Bestelldetailtag.php b/application/controllers/api/v1/accounting/Bestelldetailtag.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/accounting/Bestellstatus.php b/application/controllers/api/v1/accounting/Bestellstatus.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/accounting/Bestellung.php b/application/controllers/api/v1/accounting/Bestellung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/accounting/Bestellungtag.php b/application/controllers/api/v1/accounting/Bestellungtag.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/accounting/Buchung.php b/application/controllers/api/v1/accounting/Buchung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/accounting/Buchungstyp.php b/application/controllers/api/v1/accounting/Buchungstyp.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/accounting/Budget.php b/application/controllers/api/v1/accounting/Budget.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/accounting/Konto.php b/application/controllers/api/v1/accounting/Konto.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/accounting/Kostenstelle.php b/application/controllers/api/v1/accounting/Kostenstelle.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/accounting/Rechnung.php b/application/controllers/api/v1/accounting/Rechnung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/accounting/Rechnungsbetrag.php b/application/controllers/api/v1/accounting/Rechnungsbetrag.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/accounting/Rechnungstyp.php b/application/controllers/api/v1/accounting/Rechnungstyp.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/accounting/Vertrag.php b/application/controllers/api/v1/accounting/Vertrag.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/accounting/Vertragsstatus.php b/application/controllers/api/v1/accounting/Vertragsstatus.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/accounting/Vertragstyp.php b/application/controllers/api/v1/accounting/Vertragstyp.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/accounting/Zahlungstyp.php b/application/controllers/api/v1/accounting/Zahlungstyp.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Akadgrad.php b/application/controllers/api/v1/codex/Akadgrad.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Archiv.php b/application/controllers/api/v1/codex/Archiv.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Aufmerksamdurch.php b/application/controllers/api/v1/codex/Aufmerksamdurch.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Ausbildung.php b/application/controllers/api/v1/codex/Ausbildung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Berufstaetigkeit.php b/application/controllers/api/v1/codex/Berufstaetigkeit.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Beschaeftigungsausmass.php b/application/controllers/api/v1/codex/Beschaeftigungsausmass.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Besqual.php b/application/controllers/api/v1/codex/Besqual.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Bisfunktion.php b/application/controllers/api/v1/codex/Bisfunktion.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Bisio.php b/application/controllers/api/v1/codex/Bisio.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Bisorgform.php b/application/controllers/api/v1/codex/Bisorgform.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Bisverwendung.php b/application/controllers/api/v1/codex/Bisverwendung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Bundesland.php b/application/controllers/api/v1/codex/Bundesland.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Entwicklungsteam.php b/application/controllers/api/v1/codex/Entwicklungsteam.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Gemeinde.php b/application/controllers/api/v1/codex/Gemeinde.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Hauptberuf.php b/application/controllers/api/v1/codex/Hauptberuf.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Lehrform.php b/application/controllers/api/v1/codex/Lehrform.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Lgartcode.php b/application/controllers/api/v1/codex/Lgartcode.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Mobilitaetsprogramm.php b/application/controllers/api/v1/codex/Mobilitaetsprogramm.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Nation.php b/application/controllers/api/v1/codex/Nation.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Note.php b/application/controllers/api/v1/codex/Note.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Orgform.php b/application/controllers/api/v1/codex/Orgform.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Verwendung.php b/application/controllers/api/v1/codex/Verwendung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Zgv.php b/application/controllers/api/v1/codex/Zgv.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Zgvdoktor.php b/application/controllers/api/v1/codex/Zgvdoktor.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Zgvgruppe.php b/application/controllers/api/v1/codex/Zgvgruppe.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Zgvmaster.php b/application/controllers/api/v1/codex/Zgvmaster.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/codex/Zweck.php b/application/controllers/api/v1/codex/Zweck.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/content/Ampel.php b/application/controllers/api/v1/content/Ampel.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/content/Content.php b/application/controllers/api/v1/content/Content.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/content/Contentchild.php b/application/controllers/api/v1/content/Contentchild.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/content/Contentgruppe.php b/application/controllers/api/v1/content/Contentgruppe.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/content/Contentlog.php b/application/controllers/api/v1/content/Contentlog.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/content/Contentsprache.php b/application/controllers/api/v1/content/Contentsprache.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/content/Dms.php b/application/controllers/api/v1/content/Dms.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/content/Infoscreen.php b/application/controllers/api/v1/content/Infoscreen.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/content/News.php b/application/controllers/api/v1/content/News.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/content/Template.php b/application/controllers/api/v1/content/Template.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/content/Veranstaltung.php b/application/controllers/api/v1/content/Veranstaltung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/content/Veranstaltungskategorie.php b/application/controllers/api/v1/content/Veranstaltungskategorie.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/crm/Akte.php b/application/controllers/api/v1/crm/Akte.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/crm/Aufnahmeschluessel.php b/application/controllers/api/v1/crm/Aufnahmeschluessel.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/crm/Aufnahmetermin.php b/application/controllers/api/v1/crm/Aufnahmetermin.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/crm/Aufnahmetermintyp.php b/application/controllers/api/v1/crm/Aufnahmetermintyp.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/crm/Bewerbungstermine.php b/application/controllers/api/v1/crm/Bewerbungstermine.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/crm/Buchungstyp.php b/application/controllers/api/v1/crm/Buchungstyp.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/crm/Dokument.php b/application/controllers/api/v1/crm/Dokument.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/crm/Dokumentprestudent.php b/application/controllers/api/v1/crm/Dokumentprestudent.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/crm/Dokumentstudiengang.php b/application/controllers/api/v1/crm/Dokumentstudiengang.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/crm/Konto.php b/application/controllers/api/v1/crm/Konto.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/crm/Preincoming.php b/application/controllers/api/v1/crm/Preincoming.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/crm/Preinteressent.php b/application/controllers/api/v1/crm/Preinteressent.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/crm/Preinteressentstudiengang.php b/application/controllers/api/v1/crm/Preinteressentstudiengang.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/crm/Preoutgoing.php b/application/controllers/api/v1/crm/Preoutgoing.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/crm/Prestudent.php b/application/controllers/api/v1/crm/Prestudent.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/crm/Prestudentstatus.php b/application/controllers/api/v1/crm/Prestudentstatus.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/crm/Reihungstest.php b/application/controllers/api/v1/crm/Reihungstest.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/crm/RtPerson.php b/application/controllers/api/v1/crm/RtPerson.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/crm/Status.php b/application/controllers/api/v1/crm/Status.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/crm/Statusgrund.php b/application/controllers/api/v1/crm/Statusgrund.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/crm/Student.php b/application/controllers/api/v1/crm/Student.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Abgabe.php b/application/controllers/api/v1/education/Abgabe.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Abschlussbeurteilung.php b/application/controllers/api/v1/education/Abschlussbeurteilung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Abschlusspruefung.php b/application/controllers/api/v1/education/Abschlusspruefung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Anrechnung.php b/application/controllers/api/v1/education/Anrechnung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Anwesenheit.php b/application/controllers/api/v1/education/Anwesenheit.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Beispiel.php b/application/controllers/api/v1/education/Beispiel.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Betreuerart.php b/application/controllers/api/v1/education/Betreuerart.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Feedback.php b/application/controllers/api/v1/education/Feedback.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Legesamtnote.php b/application/controllers/api/v1/education/Legesamtnote.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Lehreinheit.php b/application/controllers/api/v1/education/Lehreinheit.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Lehreinheitgruppe.php b/application/controllers/api/v1/education/Lehreinheitgruppe.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Lehreinheitmitarbeiter.php b/application/controllers/api/v1/education/Lehreinheitmitarbeiter.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Lehrfach.php b/application/controllers/api/v1/education/Lehrfach.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Lehrfunktion.php b/application/controllers/api/v1/education/Lehrfunktion.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Lehrtyp.php b/application/controllers/api/v1/education/Lehrtyp.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Lehrveranstaltung.php b/application/controllers/api/v1/education/Lehrveranstaltung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Lenotenschluessel.php b/application/controllers/api/v1/education/Lenotenschluessel.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Lepruefung.php b/application/controllers/api/v1/education/Lepruefung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Lvangebot.php b/application/controllers/api/v1/education/Lvangebot.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Lvgesamtnote.php b/application/controllers/api/v1/education/Lvgesamtnote.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Lvinfo.php b/application/controllers/api/v1/education/Lvinfo.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Lvregel.php b/application/controllers/api/v1/education/Lvregel.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Lvregeltyp.php b/application/controllers/api/v1/education/Lvregeltyp.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Notenschluessel.php b/application/controllers/api/v1/education/Notenschluessel.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Notenschluesselaufteilung.php b/application/controllers/api/v1/education/Notenschluesselaufteilung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Notenschluesseluebung.php b/application/controllers/api/v1/education/Notenschluesseluebung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Notenschluesselzuordnung.php b/application/controllers/api/v1/education/Notenschluesselzuordnung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Paabgabe.php b/application/controllers/api/v1/education/Paabgabe.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Paabgabetyp.php b/application/controllers/api/v1/education/Paabgabetyp.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Projektarbeit.php b/application/controllers/api/v1/education/Projektarbeit.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Projektbetreuer.php b/application/controllers/api/v1/education/Projektbetreuer.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Projekttyp.php b/application/controllers/api/v1/education/Projekttyp.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Pruefung.php b/application/controllers/api/v1/education/Pruefung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Pruefungsanmeldung.php b/application/controllers/api/v1/education/Pruefungsanmeldung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Pruefungsfenster.php b/application/controllers/api/v1/education/Pruefungsfenster.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Pruefungsstatus.php b/application/controllers/api/v1/education/Pruefungsstatus.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Pruefungstermin.php b/application/controllers/api/v1/education/Pruefungstermin.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Pruefungstyp.php b/application/controllers/api/v1/education/Pruefungstyp.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Studentbeispiel.php b/application/controllers/api/v1/education/Studentbeispiel.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Studentlehrverband.php b/application/controllers/api/v1/education/Studentlehrverband.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Studentuebung.php b/application/controllers/api/v1/education/Studentuebung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Uebung.php b/application/controllers/api/v1/education/Uebung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Zeugnis.php b/application/controllers/api/v1/education/Zeugnis.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/education/Zeugnisnote.php b/application/controllers/api/v1/education/Zeugnisnote.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/organisation/Erhalter.php b/application/controllers/api/v1/organisation/Erhalter.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/organisation/Fachbereich2.php b/application/controllers/api/v1/organisation/Fachbereich2.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/organisation/Ferien.php b/application/controllers/api/v1/organisation/Ferien.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/organisation/Geschaeftsjahr2.php b/application/controllers/api/v1/organisation/Geschaeftsjahr2.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/organisation/Gruppe.php b/application/controllers/api/v1/organisation/Gruppe.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/organisation/Lehrverband.php b/application/controllers/api/v1/organisation/Lehrverband.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/organisation/Organisationseinheit2.php b/application/controllers/api/v1/organisation/Organisationseinheit2.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/organisation/Organisationseinheittyp.php b/application/controllers/api/v1/organisation/Organisationseinheittyp.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/organisation/Semesterwochen.php b/application/controllers/api/v1/organisation/Semesterwochen.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/organisation/Service.php b/application/controllers/api/v1/organisation/Service.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/organisation/Standort.php b/application/controllers/api/v1/organisation/Standort.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/organisation/Statistik.php b/application/controllers/api/v1/organisation/Statistik.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/organisation/Studiengang2.php b/application/controllers/api/v1/organisation/Studiengang2.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/organisation/Studiengangstyp.php b/application/controllers/api/v1/organisation/Studiengangstyp.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/organisation/Studienjahr.php b/application/controllers/api/v1/organisation/Studienjahr.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/organisation/Studienordnung.php b/application/controllers/api/v1/organisation/Studienordnung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/organisation/Studienordnungstatus.php b/application/controllers/api/v1/organisation/Studienordnungstatus.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/organisation/Studienplan.php b/application/controllers/api/v1/organisation/Studienplan.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/organisation/Studienplatz.php b/application/controllers/api/v1/organisation/Studienplatz.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/organisation/Studiensemester.php b/application/controllers/api/v1/organisation/Studiensemester.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/person/Adresse.php b/application/controllers/api/v1/person/Adresse.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/person/Bankverbindung.php b/application/controllers/api/v1/person/Bankverbindung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/person/Benutzer.php b/application/controllers/api/v1/person/Benutzer.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/person/Benutzerfunktion.php b/application/controllers/api/v1/person/Benutzerfunktion.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/person/Benutzergruppe.php b/application/controllers/api/v1/person/Benutzergruppe.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/person/Fotostatus.php b/application/controllers/api/v1/person/Fotostatus.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/person/Freebusy.php b/application/controllers/api/v1/person/Freebusy.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/person/Freebusytyp.php b/application/controllers/api/v1/person/Freebusytyp.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/person/Kontakt.php b/application/controllers/api/v1/person/Kontakt.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/person/Kontaktmedium.php b/application/controllers/api/v1/person/Kontaktmedium.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/person/Kontakttyp.php b/application/controllers/api/v1/person/Kontakttyp.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/person/Notiz.php b/application/controllers/api/v1/person/Notiz.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/person/Notizzuordnung.php b/application/controllers/api/v1/person/Notizzuordnung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/person/Person.php b/application/controllers/api/v1/person/Person.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/project/Aktivitaet.php b/application/controllers/api/v1/project/Aktivitaet.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/project/Aufwandstyp.php b/application/controllers/api/v1/project/Aufwandstyp.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/project/Projekt.php b/application/controllers/api/v1/project/Projekt.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/project/Projekt_ressource.php b/application/controllers/api/v1/project/Projekt_ressource.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/project/Projektphase.php b/application/controllers/api/v1/project/Projektphase.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/project/Projekttask.php b/application/controllers/api/v1/project/Projekttask.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/project/Ressource.php b/application/controllers/api/v1/project/Ressource.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/project/Scrumsprint.php b/application/controllers/api/v1/project/Scrumsprint.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Betriebsmittel.php b/application/controllers/api/v1/ressource/Betriebsmittel.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Betriebsmittelperson2.php b/application/controllers/api/v1/ressource/Betriebsmittelperson2.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Betriebsmittelstatus.php b/application/controllers/api/v1/ressource/Betriebsmittelstatus.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Betriebsmitteltyp.php b/application/controllers/api/v1/ressource/Betriebsmitteltyp.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Coodle.php b/application/controllers/api/v1/ressource/Coodle.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Erreichbarkeit.php b/application/controllers/api/v1/ressource/Erreichbarkeit.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Firma.php b/application/controllers/api/v1/ressource/Firma.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Firmatag.php b/application/controllers/api/v1/ressource/Firmatag.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Firmentyp.php b/application/controllers/api/v1/ressource/Firmentyp.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Funktion.php b/application/controllers/api/v1/ressource/Funktion.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Lehrmittel.php b/application/controllers/api/v1/ressource/Lehrmittel.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Mitarbeiter.php b/application/controllers/api/v1/ressource/Mitarbeiter.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Ort.php b/application/controllers/api/v1/ressource/Ort.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Ortraumtyp.php b/application/controllers/api/v1/ressource/Ortraumtyp.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Personfunktionstandort.php b/application/controllers/api/v1/ressource/Personfunktionstandort.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Raumtyp.php b/application/controllers/api/v1/ressource/Raumtyp.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Reservierung.php b/application/controllers/api/v1/ressource/Reservierung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Stunde.php b/application/controllers/api/v1/ressource/Stunde.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Stundenplan.php b/application/controllers/api/v1/ressource/Stundenplan.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Stundenplandev.php b/application/controllers/api/v1/ressource/Stundenplandev.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Zeitaufzeichnung.php b/application/controllers/api/v1/ressource/Zeitaufzeichnung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Zeitfenster.php b/application/controllers/api/v1/ressource/Zeitfenster.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Zeitsperre.php b/application/controllers/api/v1/ressource/Zeitsperre.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Zeitsperretyp.php b/application/controllers/api/v1/ressource/Zeitsperretyp.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/ressource/Zeitwunsch.php b/application/controllers/api/v1/ressource/Zeitwunsch.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/system/Appdaten.php b/application/controllers/api/v1/system/Appdaten.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/system/Benutzerrolle.php b/application/controllers/api/v1/system/Benutzerrolle.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/system/Berechtigung.php b/application/controllers/api/v1/system/Berechtigung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/system/Cronjob.php b/application/controllers/api/v1/system/Cronjob.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/system/Filter.php b/application/controllers/api/v1/system/Filter.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/system/Log.php b/application/controllers/api/v1/system/Log.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/system/Message.php b/application/controllers/api/v1/system/Message.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/system/Phrase.php b/application/controllers/api/v1/system/Phrase.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/system/Rolle.php b/application/controllers/api/v1/system/Rolle.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/system/Rolleberechtigung.php b/application/controllers/api/v1/system/Rolleberechtigung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/system/Server.php b/application/controllers/api/v1/system/Server.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/system/Sprache2.php b/application/controllers/api/v1/system/Sprache2.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/system/Tag.php b/application/controllers/api/v1/system/Tag.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/system/UDF.php b/application/controllers/api/v1/system/UDF.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/system/Variable.php b/application/controllers/api/v1/system/Variable.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/system/Vorlage.php b/application/controllers/api/v1/system/Vorlage.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/system/Vorlagestudiengang.php b/application/controllers/api/v1/system/Vorlagestudiengang.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/system/Webservicelog.php b/application/controllers/api/v1/system/Webservicelog.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/system/Webservicerecht.php b/application/controllers/api/v1/system/Webservicerecht.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/system/Webservicetyp.php b/application/controllers/api/v1/system/Webservicetyp.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/testtool/Ablauf.php b/application/controllers/api/v1/testtool/Ablauf.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/testtool/Antwort.php b/application/controllers/api/v1/testtool/Antwort.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/testtool/Frage.php b/application/controllers/api/v1/testtool/Frage.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/testtool/Gebiet.php b/application/controllers/api/v1/testtool/Gebiet.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/testtool/Kategorie.php b/application/controllers/api/v1/testtool/Kategorie.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/testtool/Kriterien.php b/application/controllers/api/v1/testtool/Kriterien.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/testtool/Pruefling.php b/application/controllers/api/v1/testtool/Pruefling.php
old mode 100644
new mode 100755
diff --git a/application/controllers/api/v1/testtool/Vorschlag.php b/application/controllers/api/v1/testtool/Vorschlag.php
old mode 100644
new mode 100755
diff --git a/application/controllers/codex/Oehbeitrag.php b/application/controllers/codex/Oehbeitrag.php
old mode 100644
new mode 100755
diff --git a/application/controllers/codex/UHSTAT1.php b/application/controllers/codex/UHSTAT1.php
old mode 100644
new mode 100755
diff --git a/application/controllers/components/Antrag/Abmeldung.php b/application/controllers/components/Antrag/Abmeldung.php
new file mode 100755
index 000000000..f30de6803
--- /dev/null
+++ b/application/controllers/components/Antrag/Abmeldung.php
@@ -0,0 +1,218 @@
+load->library('AuthLib');
+ $this->load->library('AntragLib');
+
+ // Load language phrases
+ $this->loadPhrases([
+ 'studierendenantrag'
+ ]);
+ }
+
+ //------------------------------------------------------------------------------------------------------------------
+ // Public methods
+
+ /**
+ * Retrieves data of the current studiengang for the current user
+ */
+
+ public function getDetailsForNewAntrag($prestudent_id)
+ {
+ if (!$this->antraglib->isEntitledToCreateAntragFor($prestudent_id, true)) {
+ $this->output->set_status_header(403);
+ return $this->outputJsonError('Forbidden');
+ }
+ $result = $this->antraglib->getPrestudentAbmeldeBerechtigt($prestudent_id);
+ if (isError($result)) {
+ $this->output->set_status_header(500);
+ return $this->outputJsonError(getError($result));
+ }
+ $result = $result->retval;
+ if (!$result) {
+ $this->output->set_status_header(403);
+ return $this->outputJsonError($this->p->t('studierendenantrag', 'error_no_student'));
+ }
+ elseif ($result == -3)
+ {
+ $this->output->set_status_header(403);
+ return $this->outputJsonError($this->p->t('studierendenantrag', 'error_stg_blacklist'));
+ }
+ elseif ($result == -1)
+ {
+ $result = $this->antraglib->getDetailsForLastAntrag(
+ $prestudent_id,
+ [
+ Studierendenantrag_model::TYP_ABMELDUNG,
+ Studierendenantrag_model::TYP_ABMELDUNG_STGL
+ ]
+ );
+ if (isError($result)) {
+ return $this->outputJsonError(getError($result));
+ }
+
+ $data = getData($result);
+
+ $data->canCancel = (
+ $data->status == Studierendenantragstatus_model::STATUS_CREATED &&
+ $this->antraglib->isEntitledToCancelAntrag($data->studierendenantrag_id)
+ );
+
+ return $this->outputJsonSuccess($data);
+ }
+
+ $result = $this->antraglib->getDetailsForNewAntrag($prestudent_id);
+ if (isError($result)) {
+ return $this->outputJsonError(getError($result));
+ }
+
+ $this->outputJsonSuccess(getData($result));
+ }
+
+ public function getDetailsForAntrag($studierendenantrag_id)
+ {
+ if (!$this->antraglib->isEntitledToShowAntrag($studierendenantrag_id)) return show_404();
+
+ $result = $this->antraglib->getDetailsForAntrag($studierendenantrag_id);
+ if (isError($result)) {
+ return $this->outputJsonError(getError($result));
+ }
+
+ $data = getData($result);
+
+ if ($data->typ !== Studierendenantrag_model::TYP_ABMELDUNG_STGL && $data->typ !== Studierendenantrag_model::TYP_ABMELDUNG)
+ return show_404();
+
+ $data->canCancel = (
+ $data->status == Studierendenantragstatus_model::STATUS_CREATED &&
+ $this->antraglib->isEntitledToCancelAntrag($data->studierendenantrag_id)
+ );
+
+ $this->outputJsonSuccess($data);
+ }
+
+ public function createAntrag()
+ {
+ $this->load->library('form_validation');
+
+ $_POST = json_decode($this->input->raw_input_stream, true);
+
+ $this->form_validation->set_rules('studiensemester', 'Studiensemester', 'required');
+ $this->form_validation->set_rules('prestudent_id', 'Prestudent ID', 'required');
+ $this->form_validation->set_rules('grund', 'Grund', 'required');
+
+ if ($this->form_validation->run() == false)
+ {
+ return $this->outputJsonError($this->form_validation->error_array());
+ }
+
+ $grund = $this->input->post('grund');
+ $studiensemester = $this->input->post('studiensemester');
+ $prestudent_id = $this->input->post('prestudent_id');
+
+ $result = $this->antraglib->getPrestudentAbmeldeBerechtigt($prestudent_id);
+ if (isError($result)) {
+ return $this->outputJsonError(['db' => getError($result)]);
+ }
+ $result = $result->retval;
+ if (!$result)
+ {
+ return $this->outputJsonError(['db' => $this->p->t('studierendenantrag', 'error_no_student')]);
+ }
+ elseif ($result == -3)
+ {
+ return $this->outputJsonError(['db' => $this->p->t('studierendenantrag', 'error_stg_blacklist')]);
+ }
+ elseif ($result < 0)
+ {
+ return $this->outputJsonError(['db' => $this->p->t('studierendenantrag', 'error_antrag_exists')]);
+ }
+
+ $result = $this->antraglib->createAbmeldung($prestudent_id, $studiensemester, getAuthUID(), $grund);
+ if (isError($result))
+ {
+ return $this->outputJsonError(['db' => getError($result)]);
+ }
+
+ $result = $this->antraglib->getDetailsForAntrag(getData($result));
+ if (!hasData($result))
+ return $this->outputJsonSuccess(true);
+
+ $data = getData($result);
+ $data->canCancel = (boolean)$this->antraglib->isEntitledToCancelAntrag($data->studierendenantrag_id);
+
+ $this->outputJsonSuccess($data);
+ }
+
+ public function cancelAntrag()
+ {
+ $this->load->library('form_validation');
+
+ $_POST = json_decode($this->input->raw_input_stream, true);
+
+ $this->form_validation->set_rules('antrag_id', 'Antrag ID', 'required');
+
+ if ($this->form_validation->run() == false)
+ {
+ return $this->outputJsonError($this->form_validation->error_array());
+ }
+
+ $antrag_id = $this->input->post('antrag_id');
+ if(!$this->antraglib->isEntitledToCancelAntrag($antrag_id))
+ {
+ $this->output->set_status_header(403);
+
+ return $this->outputJsonError('Forbidden');
+ }
+
+ $result = $this->antraglib->cancelAntrag($antrag_id, getAuthUID());
+ if(isError($result))
+ {
+ return $this->outputJsonError(['db' => getError($result)]);
+ }
+
+ $result = $this->antraglib->getDetailsForAntrag($antrag_id);
+
+ if (!hasData($result))
+ return $this->outputJsonSuccess($antrag_id);
+ $this->outputJsonSuccess(getData($result));
+ }
+
+ public function getStudiengaengeAssistenz()
+ {
+ $this->load->library('PermissionLib');
+
+ $_POST = json_decode($this->input->raw_input_stream, true);
+ $query = $this->input->post('query');
+
+ $studiengaenge = $this->permissionlib->getSTG_isEntitledFor('student/studierendenantrag');
+
+ $result = $this->antraglib->getAktivePrestudentenInStgs($studiengaenge, $query);
+ if (isError($result)) {
+ return $this->outputJsonError(getError($result));
+ }
+ $result = getData($result);
+ if (!$result) {
+ return $this->outputJsonSuccess([]);
+ }
+
+ return $this->outputJsonSuccess($result);
+ }
+}
diff --git a/application/controllers/components/Antrag/Leitung.php b/application/controllers/components/Antrag/Leitung.php
new file mode 100755
index 000000000..8d333d5b8
--- /dev/null
+++ b/application/controllers/components/Antrag/Leitung.php
@@ -0,0 +1,389 @@
+load->library('AuthLib');
+ $this->load->library('AntragLib');
+
+ // Load language phrases
+ $this->loadPhrases([
+ 'studierendenantrag'
+ ]);
+ }
+
+
+ //------------------------------------------------------------------------------------------------------------------
+ // Public methods
+
+ public function getActiveStgs()
+ {
+ $studiengaenge = $this->permissionlib->getSTG_isEntitledFor('student/antragfreigabe') ?: [];
+ $studiengaenge = array_merge($studiengaenge, $this->permissionlib->getSTG_isEntitledFor('student/studierendenantrag') ?: []);
+
+ $result = $this->StudierendenantragModel->loadStgsWithAntraege($studiengaenge);
+ if (isError($result)) {
+ $this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
+ }
+ $this->outputJson($result);
+ }
+
+ public function getAntraege($studiengang = null, $extra = null)
+ {
+ if ($studiengang && $studiengang == 'todo') {
+ $studiengang = $extra;
+ $extra = true;
+ } else {
+ $extra = false;
+ }
+
+ if ($studiengang) {
+ $studiengaenge = [$studiengang];
+ } else {
+ $studiengaenge =$this->permissionlib->getSTG_isEntitledFor('student/antragfreigabe');
+ if(!is_array($studiengaenge))
+ $studiengaenge = [];
+
+
+ $stgsNeuanlage = $this->permissionlib->getSTG_isEntitledFor('student/studierendenantrag');
+ if(!is_array($stgsNeuanlage))
+ $stgsNeuanlage = [];
+
+ $studiengaenge = array_unique(array_merge($studiengaenge, $stgsNeuanlage));
+ }
+
+
+ $antraege = [];
+ if ($studiengaenge) {
+ $result = $extra
+ ? $this->StudierendenantragModel->loadActiveForStudiengaenge($studiengaenge)
+ : $this->StudierendenantragModel->loadForStudiengaenge($studiengaenge);
+ if (isError($result)) {
+ $this->output->set_status_header(500);
+ return $this->outputJson('Internal Server Error');
+ }
+ if(hasData($result))
+ {
+ $antraege = getData($result);
+ }
+ }
+
+ $this->outputJson($antraege);
+ }
+
+ public function reopenAntrag()
+ {
+ $this->load->library('form_validation');
+
+ $_POST = json_decode($this->input->raw_input_stream, true);
+
+ $this->form_validation->set_rules(
+ 'studierendenantrag_id',
+ 'Studierenden Antrag',
+ 'required|callback_isEntitledToReopenAntrag',
+ [
+ 'isEntitledToReopenAntrag' => $this->p->t('studierendenantrag', 'error_no_right')
+ ]
+ );
+
+ if ($this->form_validation->run() == false)
+ {
+ return $this->outputJsonError($this->form_validation->error_array());
+ }
+
+ $studierendenantrag_id = $this->input->post('studierendenantrag_id');
+
+ $result = $this->antraglib->reopenWiederholung($studierendenantrag_id, getAuthUID());
+
+ if (isError($result))
+ return $this->outputJsonError(['studierendenantrag_id' => getError($result)]);
+
+ $this->outputJsonSuccess($studierendenantrag_id);
+ }
+
+ public function objectAntrag()
+ {
+ $this->load->library('form_validation');
+
+ $_POST = json_decode($this->input->raw_input_stream, true);
+
+ $this->form_validation->set_rules(
+ 'studierendenantrag_id',
+ 'Studierenden Antrag',
+ 'required|callback_isEntitledToObjectAntrag|callback_canBeObjected',
+ [
+ 'isEntitledToObjectAntrag' => $this->p->t('studierendenantrag', 'error_no_right'),
+ 'canBeObjected' => $this->p->t('studierendenantrag', 'error_no_objection')
+ ]
+ );
+
+ if ($this->form_validation->run() == false)
+ {
+ return $this->outputJsonError($this->form_validation->error_array());
+ }
+
+ $studierendenantrag_id = $this->input->post('studierendenantrag_id');
+
+ $result = $this->antraglib->objectAbmeldung($studierendenantrag_id, getAuthUID());
+
+ if (isError($result))
+ return $this->outputJsonError(['studierendenantrag_id' => getError($result)]);
+
+ $this->outputJsonSuccess($studierendenantrag_id);
+ }
+
+ public function objectionDeny()
+ {
+ $this->load->library('form_validation');
+
+ $_POST = json_decode($this->input->raw_input_stream, true);
+
+ $this->form_validation->set_rules(
+ 'studierendenantrag_id',
+ 'Studierenden Antrag',
+ 'required|callback_isEntitledToObjectAntrag|callback_isObjected',
+ [
+ 'isEntitledToObjectAntrag' => $this->p->t('studierendenantrag', 'error_no_right'),
+ 'isObjected' => $this->p->t('studierendenantrag', 'error_not_objected')
+ ]
+ );
+
+ if ($this->form_validation->run() == false)
+ {
+ return $this->outputJsonError($this->form_validation->error_array());
+ }
+
+ $studierendenantrag_id = $this->input->post('studierendenantrag_id');
+ $grund = $this->input->post('grund');
+
+ $result = $this->antraglib->denyObjectionAbmeldung($studierendenantrag_id, getAuthUID(), $grund);
+
+ if (isError($result))
+ return $this->outputJsonError(['studierendenantrag_id' => getError($result)]);
+
+ $this->outputJsonSuccess($studierendenantrag_id);
+ }
+
+ public function objectionApprove()
+ {
+ $this->load->library('form_validation');
+
+ $_POST = json_decode($this->input->raw_input_stream, true);
+
+ $this->form_validation->set_rules(
+ 'studierendenantrag_id',
+ 'Studierenden Antrag',
+ 'required|callback_isEntitledToObjectAntrag|callback_isObjected',
+ [
+ 'isEntitledToObjectAntrag' => $this->p->t('studierendenantrag', 'error_no_right'),
+ 'isObjected' => $this->p->t('studierendenantrag', 'error_not_objected')
+ ]
+ );
+
+ if ($this->form_validation->run() == false)
+ {
+ return $this->outputJsonError($this->form_validation->error_array());
+ }
+
+ $studierendenantrag_id = $this->input->post('studierendenantrag_id');
+
+ $result = $this->antraglib->cancelAntrag($studierendenantrag_id, getAuthUID());
+
+ if (isError($result))
+ return $this->outputJsonError(['studierendenantrag_id' => getError($result)]);
+
+ $this->outputJsonSuccess($studierendenantrag_id);
+ }
+
+ public function isEntitledToReopenAntrag($studierendenantrag_id)
+ {
+ return $this->antraglib->isEntitledToReopenAntrag($studierendenantrag_id);
+ }
+
+ public function isEntitledToObjectAntrag($studierendenantrag_id)
+ {
+ return $this->antraglib->isEntitledToObjectAntrag($studierendenantrag_id);
+ }
+
+ public function isEntitledToRejectAntrag($studierendenantrag_id)
+ {
+ return $this->antraglib->isEntitledToRejectAntrag($studierendenantrag_id);
+ }
+
+ public function canBeObjected($studierendenantrag_id)
+ {
+ return $this->antraglib->hasType($studierendenantrag_id, Studierendenantrag_model::TYP_ABMELDUNG_STGL);
+ }
+
+ public function isObjected($studierendenantrag_id)
+ {
+ return $this->antraglib->hasStatus($studierendenantrag_id, Studierendenantragstatus_model::STATUS_OBJECTED);
+ }
+
+
+ public function approveAbmeldung()
+ {
+ $this->load->library('form_validation');
+
+ $_POST = json_decode($this->input->raw_input_stream, true);
+
+ $this->form_validation->set_rules(
+ 'studierendenantrag_id',
+ 'Studierenden Antrag',
+ 'required|callback_isEntitledToApproveAntrag',
+ [
+ 'isEntitledToApproveAntrag' => $this->p->t('studierendenantrag', 'error_no_right')
+ ]
+ );
+
+ if ($this->form_validation->run() == false)
+ {
+ return $this->outputJsonError($this->form_validation->error_array());
+ }
+
+ $studierendenantrag_id = $this->input->post('studierendenantrag_id');
+
+ $result = $this->antraglib->approveAbmeldung([$studierendenantrag_id], getAuthUID());
+ if (isError($result))
+ {
+ return $this->outputJsonError(['db' => getError($result)]);
+ }
+
+ return $this->outputJsonSuccess($studierendenantrag_id);
+ }
+
+ public function approveAbmeldungStgl()
+ {
+ return $this->approveAbmeldung();
+ }
+
+ public function approveUnterbrechung()
+ {
+ $this->load->library('form_validation');
+
+ $_POST = json_decode($this->input->raw_input_stream, true);
+
+ $this->form_validation->set_rules(
+ 'studierendenantrag_id',
+ 'Studierenden Antrag',
+ 'required|callback_isEntitledToApproveAntrag',
+ [
+ 'isEntitledToApproveAntrag' => $this->p->t('studierendenantrag', 'error_no_right')
+ ]
+ );
+
+ if ($this->form_validation->run() == false)
+ {
+ return $this->outputJsonError($this->form_validation->error_array());
+ }
+
+ $studierendenantrag_id = $this->input->post('studierendenantrag_id');
+
+ $result = $this->antraglib->approveUnterbrechung([$studierendenantrag_id], getAuthUID());
+ if (isError($result))
+ {
+ return $this->outputJsonError(['db' => getError($result)]);
+ }
+
+ return $this->outputJsonSuccess($studierendenantrag_id);
+ }
+
+ public function rejectUnterbrechung()
+ {
+ $this->load->library('form_validation');
+
+ $_POST = json_decode($this->input->raw_input_stream, true);
+
+ $this->form_validation->set_rules(
+ 'studierendenantrag_id',
+ 'Studierenden Antrag',
+ 'required|callback_isEntitledToRejectAntrag',
+ [
+ 'isEntitledToRejectAntrag' => $this->p->t('studierendenantrag', 'error_no_right')
+ ]
+ );
+ $this->form_validation->set_rules('grund', 'Grund', 'required');
+
+ if ($this->form_validation->run() == false)
+ {
+ return $this->outputJsonError($this->form_validation->error_array());
+ }
+
+ $studierendenantrag_id = $this->input->post('studierendenantrag_id');
+ $grund = $this->input->post('grund');
+
+ $result = $this->antraglib->rejectUnterbrechung([$studierendenantrag_id], getAuthUID(), $grund);
+ if (isError($result))
+ {
+ return $this->outputJsonError(['db' => getError($result)]);
+ }
+
+ return $this->outputJsonSuccess($studierendenantrag_id);
+ }
+
+ public function approveWiederholung()
+ {
+ $this->load->library('form_validation');
+
+ $_POST = json_decode($this->input->raw_input_stream, true);
+
+ $this->form_validation->set_rules(
+ 'studierendenantrag_id',
+ 'Studierenden Antrag',
+ 'required|callback_isEntitledToApproveAntrag',
+ [
+ 'isEntitledToApproveAntrag' => $this->p->t('studierendenantrag', 'error_no_right')
+ ]
+ );
+
+ if ($this->form_validation->run() == false)
+ {
+ return $this->outputJsonError($this->form_validation->error_array());
+ }
+
+ $studierendenantrag_id = $this->input->post('studierendenantrag_id');
+
+ $result = $this->antraglib->approveWiederholung($studierendenantrag_id, getAuthUID());
+ if (isError($result))
+ {
+ return $this->outputJsonError(['db' => getError($result)]);
+ }
+
+ return $this->outputJsonSuccess($studierendenantrag_id);
+ }
+
+ public function isEntitledToApproveAntrag($studierendenantrag_id)
+ {
+ return $this->antraglib->isEntitledToApproveAntrag($studierendenantrag_id);
+ }
+
+ public function getHistory($studierendenantrag_id)
+ {
+ if (!$this->antraglib->isEntitledToSeeHistoryForAntrag($studierendenantrag_id)) {
+ $this->output->set_status_header(403);
+ return $this->outputJson('Forbidden');
+ }
+
+ $result = $this->antraglib->getAntragHistory($studierendenantrag_id);
+ if (isError($result)) {
+ return $this->outputJsonError(getError($result));
+ }
+
+ $this->outputJsonSuccess(getData($result) ?: []);
+ }
+}
diff --git a/application/controllers/components/Antrag/Wiederholung.php b/application/controllers/components/Antrag/Wiederholung.php
new file mode 100755
index 000000000..418d05f45
--- /dev/null
+++ b/application/controllers/components/Antrag/Wiederholung.php
@@ -0,0 +1,371 @@
+load->config('studierendenantrag');
+
+ // Libraries
+ $this->load->library('AuthLib');
+ $this->load->library('PermissionLib');
+ $this->load->library('AntragLib');
+
+ $requiredPermissions = [
+ 'saveLvs' => ['student/studierendenantrag:w'],
+ 'getLvsAsRdf' => ['student/studierendenantrag:r', 'student/noten:r'],
+ 'moveLvsToZeugnis' => ['student/studierendenantrag:w', 'student/noten:w']
+ ];
+
+ if (isset($requiredPermissions[$this->router->method])) {
+ if (!$this->permissionlib->isEntitled($requiredPermissions, $this->router->method)) {
+ $this->output->set_status_header(REST_Controller::HTTP_FORBIDDEN);
+ $this->outputJson('Forbidden');
+ exit;
+ }
+ }
+
+ // Load language phrases
+ $this->loadPhrases([
+ 'global',
+ 'studierendenantrag'
+ ]);
+ }
+
+
+ //------------------------------------------------------------------------------------------------------------------
+ // Public methods
+
+ /**
+ * Retrieves data of the current studiengang for the current user
+ */
+
+ public function getDetailsForNewAntrag($prestudent_id)
+ {
+ if (!$this->antraglib->isEntitledToCreateAntragFor($prestudent_id, false)) {
+ $this->output->set_status_header(REST_Controller::HTTP_FORBIDDEN);
+ return $this->outputJsonError('Forbidden');
+ }
+ $result = $this->antraglib->getPrestudentWiederholungsBerechtigt($prestudent_id);
+ if (isError($result)) {
+ $this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
+ return $this->outputJsonError(getError($result));
+ }
+ $result = $result->retval;
+ if (!$result) {
+ $this->output->set_status_header(REST_Controller::HTTP_FORBIDDEN);
+ return $this->outputJsonError($this->p->t('studierendenantrag', 'error_no_student_no_failed_exam'));
+ }
+ elseif ($result == -1)
+ {
+ $result = $this->antraglib->getDetailsForLastAntrag($prestudent_id, Studierendenantrag_model::TYP_WIEDERHOLUNG);
+ if (isError($result)) {
+ return $this->outputJsonError(getError($result));
+ }
+ $data = getData($result);
+
+ $result = $this->antraglib->getFailedExamForPrestudent($prestudent_id, $data->datum, $data->studiensemester_kurzbz);
+ // NOTE(chris): error handling for this function should already happenden in antraglib->getPrestudentWiederholungsBerechtigt()
+ $pruefungsdata = current(getData($result));
+
+ $data->studiensemester_kurzbz = $pruefungsdata->studiensemester_kurzbz;
+ $data->lvbezeichnung = $pruefungsdata->lvbezeichnung;
+ $data->pruefungsdatum = $pruefungsdata->datum;
+
+ return $this->outputJsonSuccess($data);
+ }
+ elseif ($result == -2)
+ {
+ $result = $this->antraglib->getDetailsForLastAntrag($prestudent_id);
+ if (isError($result)) {
+ return $this->outputJsonError(getError($result));
+ }
+
+ $result = getData($result);
+ $this->output->set_status_header(REST_Controller::HTTP_BAD_REQUEST);
+ return $this->outputJsonError($this->p->t('studierendenantrag', 'error_antrag_pending', [
+ 'typ' => $this->p->t('studierendenantrag', 'antrag_typ_' . $result->typ)
+ ]));
+ }
+ elseif ($result == -3)
+ {
+ $this->output->set_status_header(REST_Controller::HTTP_BAD_REQUEST);
+ return $this->outputJsonError($this->p->t('studierendenantrag', 'error_stg_blacklist'));
+ }
+
+ $result = $this->antraglib->getDetailsForNewAntrag($prestudent_id);
+ if (isError($result)) {
+ return $this->outputJsonError(getError($result));
+ }
+
+ $data = getData($result);
+
+ $result = $this->antraglib->getFailedExamForPrestudent($prestudent_id);
+ // NOTE(chris): error handling for this function should already happenden in antraglib->getPrestudentWiederholungsBerechtigt()
+ $pruefungsdata = current(getData($result));
+
+ $data->studiensemester_kurzbz = $pruefungsdata->studiensemester_kurzbz;
+ $data->lvbezeichnung = $pruefungsdata->lvbezeichnung;
+ $data->pruefungsdatum = $pruefungsdata->datum;
+
+ $this->outputJsonSuccess($data);
+ }
+
+ public function createAntrag()
+ {
+ $this->createAntragWithStatus(true);
+ }
+
+ public function cancelAntrag()
+ {
+ $this->createAntragWithStatus(false);
+ }
+
+ protected function createAntragWithStatus($repeat)
+ {
+ $this->load->library('form_validation');
+
+ $_POST = json_decode($this->input->raw_input_stream, true);
+
+ $this->form_validation->set_rules('prestudent_id', 'Prestudent ID', 'required');
+ $this->form_validation->set_rules('studiensemester', 'Studiensemester', 'required');
+
+ if ($this->form_validation->run() == false)
+ {
+ return $this->outputJsonError($this->form_validation->error_array());
+ }
+
+ $prestudent_id = $this->input->post('prestudent_id');
+ $studiensemester = $this->input->post('studiensemester');
+
+ $result = $this->antraglib->getPrestudentWiederholungsBerechtigt($prestudent_id);
+ if (isError($result)) {
+ return $this->outputJsonError(['db' => getError($result)]);
+ }
+ $result = $result->retval;
+ if (!$result)
+ {
+ return $this->outputJsonError(['db' => $this->p->t('studierendenantrag', 'error_no_student')]);
+ }
+ elseif ($result == -2)
+ {
+ return $this->outputJsonError(['db' => $this->p->t('studierendenantrag', 'error_antrag_exists')]);
+ }
+ elseif ($result == -3)
+ {
+ return $this->outputJsonError(['db' => $this->p->t('studierendenantrag', 'error_stg_blacklist')]);
+ }
+
+ $result = $this->antraglib->createWiederholung($prestudent_id, $studiensemester, getAuthUID(), $repeat);
+ if(isError($result))
+ {
+ return $this->outputJsonError(['db' => getError($result)]);
+ }
+
+ $antragId = getData($result);
+ $result = $this->antraglib->getDetailsForAntrag($antragId);
+
+ if(!hasData($result))
+ return $this->outputJsonSuccess(true);
+
+ $data = getData($result);
+
+ $result = $this->antraglib->getFailedExamForPrestudent($prestudent_id);
+ // NOTE(chris): error handling for this function should already happenden in antraglib->getPrestudentWiederholungsBerechtigt()
+ $pruefungsdata = current(getData($result));
+
+ $data->studiensemester_kurzbz = $pruefungsdata->studiensemester_kurzbz;
+ $data->lvbezeichnung = $pruefungsdata->lvbezeichnung;
+ $data->pruefungsdatum = $pruefungsdata->datum;
+
+ $this->outputJsonSuccess($data);
+ }
+
+
+ public function getLvs($antrag_id)
+ {
+ $result = $this->antraglib->getLvsForAntrag($antrag_id);
+ if (isError($result)) {
+ $error = getError($result);
+ if ($error == 'Forbidden')
+ $this->output->set_status_header(REST_Controller::HTTP_FORBIDDEN);
+ return $this->outputJsonError(getError($result));
+ }
+ $lvs = getData($result);
+
+ $this->outputJsonSuccess($lvs);
+ }
+
+ public function saveLvs()
+ {
+ $result = $this->getPostJSON();
+ $antragsLvs = array_merge($result->forbiddenLvs, $result->mandatoryLvs);
+
+ $insert = array_map(function ($lv) {
+ return [
+ 'studierendenantrag_id' => $lv->studierendenantrag_id,
+ 'lehrveranstaltung_id' => $lv->lehrveranstaltung_id,
+ 'note' => $lv->zugelassen
+ ? ($lv->zugelassen == 1 ? 0 : $this->config->item('wiederholung_note_angerechnet'))
+ : $this->config->item('wiederholung_note_nicht_zugelassen'),
+ 'anmerkung' => $lv->anmerkung,
+ 'insertvon' => getAuthUID(),
+ 'studiensemester_kurzbz' => $lv->studiensemester_kurzbz
+ ];
+ }, $antragsLvs);
+
+ $antrag_ids = array_unique(array_map(function ($lv) {
+ return $lv['studierendenantrag_id'];
+ }, $insert));
+
+ foreach ($antrag_ids as $antrag_id) {
+ $result = $this->StudierendenantragModel->loadIdAndStatusWhere([
+ 'studierendenantrag_id' => $antrag_id
+ ]);
+ if (isError($result))
+ return $this->outputJsonError(getError($result));
+ if (!hasData($result))
+ return $this->outputJsonError($this->p->t('studierendenantrag', 'error_no_antrag_found', ['id' => $antrag_id]));
+ $antrag = current(getData($result));
+ if ($antrag->status != Studierendenantragstatus_model::STATUS_CREATED && $antrag->status != Studierendenantragstatus_model::STATUS_LVSASSIGNED)
+ return $this->outputJsonError($this->p->t('studierendenantrag', 'error_antrag_locked'));
+ }
+
+ if(!$antragsLvs)
+ return $this->outputJsonError($this->p->t('studierendenantrag', 'error_no_lv'));
+
+ $result = $this->antraglib->saveLvs($insert);
+
+ if (isError($result))
+ return $this->outputJsonError(getError($result));
+
+ $this->outputJsonSuccess(getData($result));
+ }
+
+ public function getLvsAsRdf($prestudent_id)
+ {
+ // header für no cache
+ $this->output->set_header("Cache-Control: no-cache");
+ $this->output->set_header("Cache-Control: post-check=0, pre-check=0", false);
+ $this->output->set_header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
+ $this->output->set_header("Pragma: no-cache");
+ $this->output->set_header("Content-type: application/xhtml+xml");
+
+ $this->load->library('VariableLib', ['uid' => getAuthUID()]);
+ $sem_akt = $this->variablelib->getVar('semester_aktuell');
+
+
+ $result = $this->antraglib->getLvsForPrestudent($prestudent_id, $sem_akt);
+ if (isError($result)) {
+ return $this->outputJsonError(getError($result));
+ }
+
+ $lvs = getData($result) ?: [];
+ $rdf_url = 'http://www.technikum-wien.at/antragnote';
+
+ $this->load->view('lehre/Antrag/Wiederholung/getLvs.rdf.php', [
+ 'url' => $rdf_url,
+ 'lvs' => $lvs
+ ]);
+ }
+
+ public function moveLvsToZeugnis()
+ {
+ $anzahl = $this->input->post('anzahl');
+ $student_uid = $this->input->post('student_uid');
+ $this->load->model('education/Studierendenantraglehrveranstaltung_model', 'StudierendenantraglehrveranstaltungModel');
+ $this->load->model('education/Zeugnisnote_model', 'ZeugnisnoteModel');
+
+ $errormsg = array();
+
+ for($i=0; $i<$anzahl; $i++)
+ {
+ $id = $this->input->post('studierendenantrag_lehrveranstaltung_id_' . $i);
+ $result =$this->StudierendenantraglehrveranstaltungModel->load($id);
+ if(isError($result))
+ {
+ $errormsg[] = getError($result);
+ }
+ elseif(!hasData($result))
+ {
+ $errormsg[] = $this->p->t('studierendenantrag', 'error_no_lv_in_application');
+ }
+ else
+ {
+ $antragLv = getData($result)[0];
+ $result= $this->ZeugnisnoteModel->load([
+ 'lehrveranstaltung_id'=> $antragLv->lehrveranstaltung_id,
+ 'student_uid'=> $student_uid,
+ 'studiensemester_kurzbz' => $antragLv->studiensemester_kurzbz
+ ]);
+ if(isError($result))
+ {
+ $errormsg[] = getError($result);
+ }
+ else
+ {
+ if (hasData($result))
+ {
+ $result = $this->ZeugnisnoteModel->update(
+ [
+ 'lehrveranstaltung_id'=> $antragLv->lehrveranstaltung_id,
+ 'student_uid'=> $student_uid,
+ 'studiensemester_kurzbz' => $antragLv->studiensemester_kurzbz
+ ],
+ [
+ 'note'=> $antragLv->note,
+ 'uebernahmedatum' => date('c'),
+ 'benotungsdatum' => $antragLv->insertamum,
+ 'updateamum' => date('c'),
+ 'bemerkung'=>$antragLv->anmerkung,
+ 'updatevon'=>getAuthUID()
+ ]
+ );
+ }
+ else
+ {
+ $result = $this->ZeugnisnoteModel->insert([
+ 'lehrveranstaltung_id'=> $antragLv->lehrveranstaltung_id,
+ 'student_uid'=> $student_uid,
+ 'studiensemester_kurzbz' => $antragLv->studiensemester_kurzbz,
+ 'note'=> $antragLv->note,
+ 'uebernahmedatum' => date('c'),
+ 'benotungsdatum' => $antragLv->insertamum,
+ 'insertamum' => date('c'),
+ 'bemerkung'=>$antragLv->anmerkung,
+ 'insertvon'=>getAuthUID()
+ ]);
+ }
+ if(isError($result))
+ {
+ $errormsg[] = getError($result);
+ }
+ }
+ }
+ }
+
+ if($errormsg)
+ $return = false;
+ else
+ $return = true;
+
+ $this->load->view('lehre/Antrag/Wiederholung/moveLvs.rdf.php', [
+ 'return' => $return,
+ 'errormsg' => $errormsg
+ ]);
+ }
+}
diff --git a/application/controllers/components/Cis/Mylv.php b/application/controllers/components/Cis/Mylv.php
old mode 100644
new mode 100755
diff --git a/application/controllers/components/Cis/Stundenplan.php b/application/controllers/components/Cis/Stundenplan.php
old mode 100644
new mode 100755
diff --git a/application/controllers/components/CisVue.php b/application/controllers/components/CisVue.php
old mode 100644
new mode 100755
diff --git a/application/controllers/components/Filter.php b/application/controllers/components/Filter.php
old mode 100644
new mode 100755
diff --git a/application/controllers/components/Phrasen.php b/application/controllers/components/Phrasen.php
old mode 100644
new mode 100755
diff --git a/application/controllers/components/SearchBar.php b/application/controllers/components/SearchBar.php
old mode 100644
new mode 100755
diff --git a/application/controllers/crm/Statusgrund.php b/application/controllers/crm/Statusgrund.php
old mode 100644
new mode 100755
diff --git a/application/controllers/dashboard/Api.php b/application/controllers/dashboard/Api.php
old mode 100644
new mode 100755
diff --git a/application/controllers/dashboard/Config.php b/application/controllers/dashboard/Config.php
old mode 100644
new mode 100755
diff --git a/application/controllers/dashboard/Dashboard.php b/application/controllers/dashboard/Dashboard.php
old mode 100644
new mode 100755
diff --git a/application/controllers/dashboard/DashboardDemo.php b/application/controllers/dashboard/DashboardDemo.php
old mode 100644
new mode 100755
diff --git a/application/controllers/dashboard/Widget.php b/application/controllers/dashboard/Widget.php
old mode 100644
new mode 100755
diff --git a/application/controllers/extensions/.placeholder b/application/controllers/extensions/.placeholder
old mode 100644
new mode 100755
diff --git a/application/controllers/index.html b/application/controllers/index.html
old mode 100644
new mode 100755
diff --git a/application/controllers/jobs/AmpelMail.php b/application/controllers/jobs/AmpelMail.php
old mode 100644
new mode 100755
diff --git a/application/controllers/jobs/AnrechnungJob.php b/application/controllers/jobs/AnrechnungJob.php
old mode 100644
new mode 100755
diff --git a/application/controllers/jobs/AntragJob.php b/application/controllers/jobs/AntragJob.php
old mode 100644
new mode 100755
diff --git a/application/controllers/jobs/LVPlanJob.php b/application/controllers/jobs/LVPlanJob.php
old mode 100644
new mode 100755
diff --git a/application/controllers/jobs/LehrauftragJob.php b/application/controllers/jobs/LehrauftragJob.php
old mode 100644
new mode 100755
diff --git a/application/controllers/jobs/MailJob.php b/application/controllers/jobs/MailJob.php
old mode 100644
new mode 100755
diff --git a/application/controllers/jobs/OneTimeMessages.php b/application/controllers/jobs/OneTimeMessages.php
old mode 100644
new mode 100755
diff --git a/application/controllers/jobs/PlausiIssueProducer.php b/application/controllers/jobs/PlausiIssueProducer.php
old mode 100644
new mode 100755
diff --git a/application/controllers/jobs/Prestudentstatus.php b/application/controllers/jobs/Prestudentstatus.php
old mode 100644
new mode 100755
diff --git a/application/controllers/jobs/ReihungstestJob.php b/application/controllers/jobs/ReihungstestJob.php
old mode 100644
new mode 100755
diff --git a/application/controllers/lehre/Antrag/Attachment.php b/application/controllers/lehre/Antrag/Attachment.php
old mode 100644
new mode 100755
diff --git a/application/controllers/lehre/Antrag/Wiederholung.php b/application/controllers/lehre/Antrag/Wiederholung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/lehre/Pruefungsprotokoll.php b/application/controllers/lehre/Pruefungsprotokoll.php
old mode 100644
new mode 100755
diff --git a/application/controllers/lehre/Studierendenantrag.php b/application/controllers/lehre/Studierendenantrag.php
old mode 100644
new mode 100755
diff --git a/application/controllers/lehre/anrechnung/AdminAnrechnung.php b/application/controllers/lehre/anrechnung/AdminAnrechnung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php b/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php
old mode 100644
new mode 100755
diff --git a/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php b/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php
old mode 100644
new mode 100755
diff --git a/application/controllers/lehre/anrechnung/CreateAnrechnung.php b/application/controllers/lehre/anrechnung/CreateAnrechnung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/lehre/anrechnung/RequestAnrechnung.php b/application/controllers/lehre/anrechnung/RequestAnrechnung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/lehre/anrechnung/ReviewAnrechnungDetail.php b/application/controllers/lehre/anrechnung/ReviewAnrechnungDetail.php
old mode 100644
new mode 100755
diff --git a/application/controllers/lehre/anrechnung/ReviewAnrechnungUebersicht.php b/application/controllers/lehre/anrechnung/ReviewAnrechnungUebersicht.php
old mode 100644
new mode 100755
diff --git a/application/controllers/lehre/lehrauftrag/Lehrauftrag.php b/application/controllers/lehre/lehrauftrag/Lehrauftrag.php
old mode 100644
new mode 100755
diff --git a/application/controllers/lehre/lehrauftrag/LehrauftragAkzeptieren.php b/application/controllers/lehre/lehrauftrag/LehrauftragAkzeptieren.php
old mode 100644
new mode 100755
diff --git a/application/controllers/lehre/lehrauftrag/LehrauftragErteilen.php b/application/controllers/lehre/lehrauftrag/LehrauftragErteilen.php
old mode 100644
new mode 100755
diff --git a/application/controllers/lehre/lvplanung/AdminZeitverfuegbarkeit.php b/application/controllers/lehre/lvplanung/AdminZeitverfuegbarkeit.php
old mode 100644
new mode 100755
diff --git a/application/controllers/organisation/Reihungstest.php b/application/controllers/organisation/Reihungstest.php
old mode 100644
new mode 100755
diff --git a/application/controllers/organisation/Studienjahr.php b/application/controllers/organisation/Studienjahr.php
old mode 100644
new mode 100755
diff --git a/application/controllers/organisation/Studiensemester.php b/application/controllers/organisation/Studiensemester.php
old mode 100644
new mode 100755
diff --git a/application/controllers/person/BPKWartung.php b/application/controllers/person/BPKWartung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/person/Gradelist.php b/application/controllers/person/Gradelist.php
old mode 100644
new mode 100755
diff --git a/application/controllers/person/Gruppenmanagement.php b/application/controllers/person/Gruppenmanagement.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/FAS_UDF.php b/application/controllers/system/FAS_UDF.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/Login.php b/application/controllers/system/Login.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/Logout.php b/application/controllers/system/Logout.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/LogsViewer.php b/application/controllers/system/LogsViewer.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/Navigation.php b/application/controllers/system/Navigation.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/Phrases.php b/application/controllers/system/Phrases.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/TestSearch.php b/application/controllers/system/TestSearch.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/Variables.php b/application/controllers/system/Variables.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/Vorlage.php b/application/controllers/system/Vorlage.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/aufnahme/PrestudentMultiAssign.php b/application/controllers/system/aufnahme/PrestudentMultiAssign.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/extensions/CLI_Manager.php b/application/controllers/system/extensions/CLI_Manager.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/extensions/Manager.php b/application/controllers/system/extensions/Manager.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/infocenter/Rueckstellung.php b/application/controllers/system/infocenter/Rueckstellung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/infocenter/ZGVUeberpruefung.php b/application/controllers/system/infocenter/ZGVUeberpruefung.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/issues/Issues.php b/application/controllers/system/issues/Issues.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/issues/IssuesKonfiguration.php b/application/controllers/system/issues/IssuesKonfiguration.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/issues/IssuesZustaendigkeiten.php b/application/controllers/system/issues/IssuesZustaendigkeiten.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/issues/Plausichecks.php b/application/controllers/system/issues/Plausichecks.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/jq/JobsQueueManager.php b/application/controllers/system/jq/JobsQueueManager.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/jq/JobsQueueViewer.php b/application/controllers/system/jq/JobsQueueViewer.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/messages/FASMessages.php b/application/controllers/system/messages/FASMessages.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/messages/MessageClient.php b/application/controllers/system/messages/MessageClient.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/messages/Messages.php b/application/controllers/system/messages/Messages.php
old mode 100644
new mode 100755
diff --git a/application/controllers/system/messages/ViewMessage.php b/application/controllers/system/messages/ViewMessage.php
old mode 100644
new mode 100755
diff --git a/application/controllers/widgets/Filters.php b/application/controllers/widgets/Filters.php
old mode 100644
new mode 100755
diff --git a/application/controllers/widgets/Language.php b/application/controllers/widgets/Language.php
old mode 100644
new mode 100755
diff --git a/application/controllers/widgets/Tables.php b/application/controllers/widgets/Tables.php
old mode 100644
new mode 100755
diff --git a/application/controllers/widgets/UDF.php b/application/controllers/widgets/UDF.php
old mode 100644
new mode 100755
diff --git a/application/core/API_Controller.php b/application/core/API_Controller.php
old mode 100644
new mode 100755
diff --git a/application/core/Auth_Controller.php b/application/core/Auth_Controller.php
old mode 100644
new mode 100755
diff --git a/application/core/CLI_Controller.php b/application/core/CLI_Controller.php
old mode 100644
new mode 100755
diff --git a/application/core/DB_Model.php b/application/core/DB_Model.php
old mode 100644
new mode 100755
diff --git a/application/core/FHC_Controller.php b/application/core/FHC_Controller.php
old mode 100644
new mode 100755
diff --git a/application/core/FS_Model.php b/application/core/FS_Model.php
old mode 100644
new mode 100755
diff --git a/application/core/IIssueResolvedChecker.php b/application/core/IIssueResolvedChecker.php
old mode 100644
new mode 100755
diff --git a/application/core/JOB_Controller.php b/application/core/JOB_Controller.php
old mode 100644
new mode 100755
diff --git a/application/core/JQW_Controller.php b/application/core/JQW_Controller.php
old mode 100644
new mode 100755
diff --git a/application/core/PlausiIssueProducer_Controller.php b/application/core/PlausiIssueProducer_Controller.php
old mode 100644
new mode 100755
diff --git a/application/core/RESTFul_Controller.php b/application/core/RESTFul_Controller.php
old mode 100644
new mode 100755
diff --git a/application/core/index.html b/application/core/index.html
old mode 100644
new mode 100755
diff --git a/application/extensions/.placeholder b/application/extensions/.placeholder
old mode 100644
new mode 100755
diff --git a/application/helpers/extensions/.placeholder b/application/helpers/extensions/.placeholder
old mode 100644
new mode 100755
diff --git a/application/helpers/hlp_authentication_helper.php b/application/helpers/hlp_authentication_helper.php
old mode 100644
new mode 100755
diff --git a/application/helpers/hlp_common_helper.php b/application/helpers/hlp_common_helper.php
old mode 100644
new mode 100755
diff --git a/application/helpers/hlp_header_helper.php b/application/helpers/hlp_header_helper.php
old mode 100644
new mode 100755
diff --git a/application/helpers/hlp_language_helper.php b/application/helpers/hlp_language_helper.php
old mode 100644
new mode 100755
diff --git a/application/helpers/hlp_return_object_helper.php b/application/helpers/hlp_return_object_helper.php
old mode 100644
new mode 100755
diff --git a/application/helpers/hlp_sancho_helper.php b/application/helpers/hlp_sancho_helper.php
old mode 100644
new mode 100755
diff --git a/application/helpers/hlp_session_helper.php b/application/helpers/hlp_session_helper.php
old mode 100644
new mode 100755
diff --git a/application/helpers/index.html b/application/helpers/index.html
old mode 100644
new mode 100755
diff --git a/application/hooks/extensions/.placeholder b/application/hooks/extensions/.placeholder
old mode 100644
new mode 100755
diff --git a/application/hooks/index.html b/application/hooks/index.html
old mode 100644
new mode 100755
diff --git a/application/index.html b/application/index.html
old mode 100644
new mode 100755
diff --git a/application/language/index.html b/application/language/index.html
old mode 100644
new mode 100755
diff --git a/application/libraries/AkteLib.php b/application/libraries/AkteLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/AnrechnungLib.php b/application/libraries/AnrechnungLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/AntragLib.php b/application/libraries/AntragLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/AuthLDAPLib.php b/application/libraries/AuthLDAPLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/AuthLib.php b/application/libraries/AuthLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/CisHmvc/Loader.php b/application/libraries/CisHmvc/Loader.php
old mode 100644
new mode 100755
diff --git a/application/libraries/CmsLib.php b/application/libraries/CmsLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/CryptLib.php b/application/libraries/CryptLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/DmsLib.php b/application/libraries/DmsLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/DocsboxLib.php b/application/libraries/DocsboxLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/DocumentLib.php b/application/libraries/DocumentLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/EPrintfLib.php b/application/libraries/EPrintfLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/ExtensionsLib.php b/application/libraries/ExtensionsLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/FilterCmptLib.php b/application/libraries/FilterCmptLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/FilterWidgetLib.php b/application/libraries/FilterWidgetLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/IssuesLib.php b/application/libraries/IssuesLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/JobsQueueLib.php b/application/libraries/JobsQueueLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/LogLib.php b/application/libraries/LogLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/MailLib.php b/application/libraries/MailLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/MessageLib.php b/application/libraries/MessageLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/NavigationLib.php b/application/libraries/NavigationLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/OrganisationseinheitLib.php b/application/libraries/OrganisationseinheitLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/PermissionLib.php b/application/libraries/PermissionLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/PersonLogLib.php b/application/libraries/PersonLogLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/PhrasesLib.php b/application/libraries/PhrasesLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/PrestudentLib.php b/application/libraries/PrestudentLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/ReihungstestLib.php b/application/libraries/ReihungstestLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/SearchBarLib.php b/application/libraries/SearchBarLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/SignatureLib.php b/application/libraries/SignatureLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/StudienplanLib.php b/application/libraries/StudienplanLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/TableWidgetLib.php b/application/libraries/TableWidgetLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/UDFLib.php b/application/libraries/UDFLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/VariableLib.php b/application/libraries/VariableLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/VorlageLib.php b/application/libraries/VorlageLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/WidgetLib.php b/application/libraries/WidgetLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/dashboard/DashboardLib.php b/application/libraries/dashboard/DashboardLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/extensions/.placeholder b/application/libraries/extensions/.placeholder
old mode 100644
new mode 100755
diff --git a/application/libraries/index.html b/application/libraries/index.html
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/PlausicheckDefinitionLib.php b/application/libraries/issues/PlausicheckDefinitionLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/PlausicheckProducerLib.php b/application/libraries/issues/PlausicheckProducerLib.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/AbbrecherAktiv.php b/application/libraries/issues/plausichecks/AbbrecherAktiv.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/AbschlussstatusFehlt.php b/application/libraries/issues/plausichecks/AbschlussstatusFehlt.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/AktSemesterNull.php b/application/libraries/issues/plausichecks/AktSemesterNull.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/AktiverStudentOhneStatus.php b/application/libraries/issues/plausichecks/AktiverStudentOhneStatus.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/AktiverStudentstatusOhneKontobuchung.php b/application/libraries/issues/plausichecks/AktiverStudentstatusOhneKontobuchung.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/AusbildungssemPrestudentUngleichAusbildungssemStatus.php b/application/libraries/issues/plausichecks/AusbildungssemPrestudentUngleichAusbildungssemStatus.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/BewerberNichtZumRtAngetreten.php b/application/libraries/issues/plausichecks/BewerberNichtZumRtAngetreten.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/DatumAbschlusspruefungFehlt.php b/application/libraries/issues/plausichecks/DatumAbschlusspruefungFehlt.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/DatumSponsionFehlt.php b/application/libraries/issues/plausichecks/DatumSponsionFehlt.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/DatumStudiensemesterFalscheReihenfolge.php b/application/libraries/issues/plausichecks/DatumStudiensemesterFalscheReihenfolge.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/FalscheAnzahlAbschlusspruefungen.php b/application/libraries/issues/plausichecks/FalscheAnzahlAbschlusspruefungen.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/FalscheAnzahlHeimatadressen.php b/application/libraries/issues/plausichecks/FalscheAnzahlHeimatadressen.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/FalscheAnzahlZustelladressen.php b/application/libraries/issues/plausichecks/FalscheAnzahlZustelladressen.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/GbDatumWeitZurueck.php b/application/libraries/issues/plausichecks/GbDatumWeitZurueck.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/InaktiverStudentAktiverStatus.php b/application/libraries/issues/plausichecks/InaktiverStudentAktiverStatus.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/IncomingHeimatNationOesterreich.php b/application/libraries/issues/plausichecks/IncomingHeimatNationOesterreich.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/IncomingOhneIoDatensatz.php b/application/libraries/issues/plausichecks/IncomingOhneIoDatensatz.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/IncomingOrGsFoerderrelevant.php b/application/libraries/issues/plausichecks/IncomingOrGsFoerderrelevant.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/InskriptionVorLetzerBismeldung.php b/application/libraries/issues/plausichecks/InskriptionVorLetzerBismeldung.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/NationNichtOesterreichAberGemeinde.php b/application/libraries/issues/plausichecks/NationNichtOesterreichAberGemeinde.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/OrgformStgUngleichOrgformPrestudent.php b/application/libraries/issues/plausichecks/OrgformStgUngleichOrgformPrestudent.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/PlausiChecker.php b/application/libraries/issues/plausichecks/PlausiChecker.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/PrestudentMischformOhneOrgform.php b/application/libraries/issues/plausichecks/PrestudentMischformOhneOrgform.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/StgPrestudentUngleichStgStudent.php b/application/libraries/issues/plausichecks/StgPrestudentUngleichStgStudent.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/StgPrestudentUngleichStgStudienplan.php b/application/libraries/issues/plausichecks/StgPrestudentUngleichStgStudienplan.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/StudentstatusNachAbbrecher.php b/application/libraries/issues/plausichecks/StudentstatusNachAbbrecher.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/plausichecks/StudienplanUngueltig.php b/application/libraries/issues/plausichecks/StudienplanUngueltig.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_INOUT_0001.php b/application/libraries/issues/resolvers/CORE_INOUT_0001.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_INOUT_0002.php b/application/libraries/issues/resolvers/CORE_INOUT_0002.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_INOUT_0003.php b/application/libraries/issues/resolvers/CORE_INOUT_0003.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_INOUT_0004.php b/application/libraries/issues/resolvers/CORE_INOUT_0004.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_INOUT_0005.php b/application/libraries/issues/resolvers/CORE_INOUT_0005.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_INOUT_0006.php b/application/libraries/issues/resolvers/CORE_INOUT_0006.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_INOUT_0007.php b/application/libraries/issues/resolvers/CORE_INOUT_0007.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_INOUT_0008.php b/application/libraries/issues/resolvers/CORE_INOUT_0008.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_INOUT_0009.php b/application/libraries/issues/resolvers/CORE_INOUT_0009.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_PERSON_0001.php b/application/libraries/issues/resolvers/CORE_PERSON_0001.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_PERSON_0002.php b/application/libraries/issues/resolvers/CORE_PERSON_0002.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_PERSON_0003.php b/application/libraries/issues/resolvers/CORE_PERSON_0003.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_PERSON_0004.php b/application/libraries/issues/resolvers/CORE_PERSON_0004.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_STG_0001.php b/application/libraries/issues/resolvers/CORE_STG_0001.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_STG_0002.php b/application/libraries/issues/resolvers/CORE_STG_0002.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_STG_0003.php b/application/libraries/issues/resolvers/CORE_STG_0003.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_STG_0004.php b/application/libraries/issues/resolvers/CORE_STG_0004.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0001.php b/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0001.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0002.php b/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0002.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0003.php b/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0003.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0004.php b/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0004.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0005.php b/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0005.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0006.php b/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0006.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0007.php b/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0007.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0008.php b/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0008.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0009.php b/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0009.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0010.php b/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0010.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0011.php b/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0011.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0012.php b/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0012.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0013.php b/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0013.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0014.php b/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0014.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0015.php b/application/libraries/issues/resolvers/CORE_STUDENTSTATUS_0015.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_ZGV_0001.php b/application/libraries/issues/resolvers/CORE_ZGV_0001.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_ZGV_0002.php b/application/libraries/issues/resolvers/CORE_ZGV_0002.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_ZGV_0003.php b/application/libraries/issues/resolvers/CORE_ZGV_0003.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_ZGV_0004.php b/application/libraries/issues/resolvers/CORE_ZGV_0004.php
old mode 100644
new mode 100755
diff --git a/application/libraries/issues/resolvers/CORE_ZGV_0005.php b/application/libraries/issues/resolvers/CORE_ZGV_0005.php
old mode 100644
new mode 100755
diff --git a/application/logs/index.html b/application/logs/index.html
old mode 100644
new mode 100755
diff --git a/application/models/CL/Messages_model.php b/application/models/CL/Messages_model.php
old mode 100644
new mode 100755
diff --git a/application/models/accounting/Aufteilung_model.php b/application/models/accounting/Aufteilung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/accounting/Bestelldetail_model.php b/application/models/accounting/Bestelldetail_model.php
old mode 100644
new mode 100755
diff --git a/application/models/accounting/Bestelldetailtag_model.php b/application/models/accounting/Bestelldetailtag_model.php
old mode 100644
new mode 100755
diff --git a/application/models/accounting/Bestellstatus_model.php b/application/models/accounting/Bestellstatus_model.php
old mode 100644
new mode 100755
diff --git a/application/models/accounting/Bestellung_model.php b/application/models/accounting/Bestellung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/accounting/Bestellungtag_model.php b/application/models/accounting/Bestellungtag_model.php
old mode 100644
new mode 100755
diff --git a/application/models/accounting/Buchung_model.php b/application/models/accounting/Buchung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/accounting/Buchungstyp_model.php b/application/models/accounting/Buchungstyp_model.php
old mode 100644
new mode 100755
diff --git a/application/models/accounting/Budget_model.php b/application/models/accounting/Budget_model.php
old mode 100644
new mode 100755
diff --git a/application/models/accounting/Konto_model.php b/application/models/accounting/Konto_model.php
old mode 100644
new mode 100755
diff --git a/application/models/accounting/Kostenstelle_model.php b/application/models/accounting/Kostenstelle_model.php
old mode 100644
new mode 100755
diff --git a/application/models/accounting/Rechnung_model.php b/application/models/accounting/Rechnung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/accounting/Rechnungsbetrag_model.php b/application/models/accounting/Rechnungsbetrag_model.php
old mode 100644
new mode 100755
diff --git a/application/models/accounting/Rechnungstyp_model.php b/application/models/accounting/Rechnungstyp_model.php
old mode 100644
new mode 100755
diff --git a/application/models/accounting/Vertrag_model.php b/application/models/accounting/Vertrag_model.php
old mode 100644
new mode 100755
diff --git a/application/models/accounting/Vertragsstatus_model.php b/application/models/accounting/Vertragsstatus_model.php
old mode 100644
new mode 100755
diff --git a/application/models/accounting/Vertragstyp_model.php b/application/models/accounting/Vertragstyp_model.php
old mode 100644
new mode 100755
diff --git a/application/models/accounting/Vertragvertragsstatus_model.php b/application/models/accounting/Vertragvertragsstatus_model.php
old mode 100644
new mode 100755
diff --git a/application/models/accounting/Zahlungstyp_model.php b/application/models/accounting/Zahlungstyp_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Abschluss_model.php b/application/models/codex/Abschluss_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Akadgrad_model.php b/application/models/codex/Akadgrad_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Archiv_model.php b/application/models/codex/Archiv_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Aufenthaltfoerderung_model.php b/application/models/codex/Aufenthaltfoerderung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Aufmerksamdurch_model.php b/application/models/codex/Aufmerksamdurch_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Ausbildung_model.php b/application/models/codex/Ausbildung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Berufstaetigkeit_model.php b/application/models/codex/Berufstaetigkeit_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Beschaeftigungsausmass_model.php b/application/models/codex/Beschaeftigungsausmass_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Besqual_model.php b/application/models/codex/Besqual_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Bisfunktion_model.php b/application/models/codex/Bisfunktion_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Bisio_model.php b/application/models/codex/Bisio_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Bisioaufenthaltfoerderung_model.php b/application/models/codex/Bisioaufenthaltfoerderung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Bisiozweck_model.php b/application/models/codex/Bisiozweck_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Bisorgform_model.php b/application/models/codex/Bisorgform_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Bisverwendung_model.php b/application/models/codex/Bisverwendung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Bundesland_model.php b/application/models/codex/Bundesland_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Entwicklungsteam_model.php b/application/models/codex/Entwicklungsteam_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Gemeinde_model.php b/application/models/codex/Gemeinde_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Gsprogramm_model.php b/application/models/codex/Gsprogramm_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Hauptberuf_model.php b/application/models/codex/Hauptberuf_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Lehrform_model.php b/application/models/codex/Lehrform_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Lgartcode_model.php b/application/models/codex/Lgartcode_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Mobilitaet_model.php b/application/models/codex/Mobilitaet_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Mobilitaetsprogramm_model.php b/application/models/codex/Mobilitaetsprogramm_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Nation_model.php b/application/models/codex/Nation_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Note_model.php b/application/models/codex/Note_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Oehbeitrag_model.php b/application/models/codex/Oehbeitrag_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Orgform_model.php b/application/models/codex/Orgform_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Uhstat1daten_model.php b/application/models/codex/Uhstat1daten_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Verwendung_model.php b/application/models/codex/Verwendung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Zgv_model.php b/application/models/codex/Zgv_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Zgvdoktor_model.php b/application/models/codex/Zgvdoktor_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Zgvgruppe_model.php b/application/models/codex/Zgvgruppe_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Zgvmaster_model.php b/application/models/codex/Zgvmaster_model.php
old mode 100644
new mode 100755
diff --git a/application/models/codex/Zweck_model.php b/application/models/codex/Zweck_model.php
old mode 100644
new mode 100755
diff --git a/application/models/content/Ampel_model.php b/application/models/content/Ampel_model.php
old mode 100644
new mode 100755
diff --git a/application/models/content/Content_model.php b/application/models/content/Content_model.php
old mode 100644
new mode 100755
index 9bc3ab03d..ef073fcf3
--- a/application/models/content/Content_model.php
+++ b/application/models/content/Content_model.php
@@ -99,6 +99,15 @@ class Content_model extends DB_Model
{
"content_id": 1000002,
"template_kurzbz": "redirect",
+ "titel": "Profil",
+ "content": "",
+ "menu_open": false,
+ "aktiv": true,
+ "childs": []
+ },
+ {
+ "content_id": 1000003,
+ "template_kurzbz": "redirect",
"titel": "COVID-19",
"content": "",
"menu_open": false,
@@ -106,7 +115,7 @@ class Content_model extends DB_Model
"childs": []
},
{
- "content_id": 1000003,
+ "content_id": 1000004,
"template_kurzbz": "redirect",
"titel": "Meine LV",
"content": "",
@@ -115,7 +124,7 @@ class Content_model extends DB_Model
"childs": []
},
{
- "content_id": 1000004,
+ "content_id": 1000005,
"template_kurzbz": "redirect",
"titel": "Stundenplan",
"content": "",
@@ -124,7 +133,7 @@ class Content_model extends DB_Model
"childs": []
},
{
- "content_id": 1000005,
+ "content_id": 1000006,
"template_kurzbz": "redirect",
"titel": "Dokumente",
"content": "",
@@ -133,13 +142,22 @@ class Content_model extends DB_Model
"childs": []
},
{
- "content_id": 1000006,
+ "content_id": 1000007,
"template_kurzbz": "redirect",
"titel": "Studierendenstatus",
"content": "",
"menu_open": false,
"aktiv": true,
"childs": []
+ },
+ {
+ "content_id": 1000007,
+ "template_kurzbz": "redirect",
+ "titel": "Anrechnung",
+ "content": "",
+ "menu_open": false,
+ "aktiv": true,
+ "childs": []
}
]
}');
diff --git a/application/models/content/Contentchild_model.php b/application/models/content/Contentchild_model.php
old mode 100644
new mode 100755
diff --git a/application/models/content/Contentgruppe_model.php b/application/models/content/Contentgruppe_model.php
old mode 100644
new mode 100755
diff --git a/application/models/content/Contentlog_model.php b/application/models/content/Contentlog_model.php
old mode 100644
new mode 100755
diff --git a/application/models/content/Contentsprache_model.php b/application/models/content/Contentsprache_model.php
old mode 100644
new mode 100755
diff --git a/application/models/content/DmsFS_model.php b/application/models/content/DmsFS_model.php
old mode 100644
new mode 100755
diff --git a/application/models/content/DmsVersion_model.php b/application/models/content/DmsVersion_model.php
old mode 100644
new mode 100755
diff --git a/application/models/content/Dms_model.php b/application/models/content/Dms_model.php
old mode 100644
new mode 100755
diff --git a/application/models/content/Infoscreen_model.php b/application/models/content/Infoscreen_model.php
old mode 100644
new mode 100755
diff --git a/application/models/content/News_model.php b/application/models/content/News_model.php
old mode 100644
new mode 100755
diff --git a/application/models/content/TempFS_model.php b/application/models/content/TempFS_model.php
old mode 100644
new mode 100755
diff --git a/application/models/content/Template_model.php b/application/models/content/Template_model.php
old mode 100644
new mode 100755
diff --git a/application/models/content/Veranstaltung_model.php b/application/models/content/Veranstaltung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/content/Veranstaltungskategorie_model.php b/application/models/content/Veranstaltungskategorie_model.php
old mode 100644
new mode 100755
diff --git a/application/models/crm/Akte_model.php b/application/models/crm/Akte_model.php
old mode 100644
new mode 100755
diff --git a/application/models/crm/Aufnahmeschluessel_model.php b/application/models/crm/Aufnahmeschluessel_model.php
old mode 100644
new mode 100755
diff --git a/application/models/crm/Bewerbungstermine_model.php b/application/models/crm/Bewerbungstermine_model.php
old mode 100644
new mode 100755
diff --git a/application/models/crm/Buchungstyp_model.php b/application/models/crm/Buchungstyp_model.php
old mode 100644
new mode 100755
diff --git a/application/models/crm/Dokument_model.php b/application/models/crm/Dokument_model.php
old mode 100644
new mode 100755
diff --git a/application/models/crm/Dokumentprestudent_model.php b/application/models/crm/Dokumentprestudent_model.php
old mode 100644
new mode 100755
diff --git a/application/models/crm/Dokumentstudiengang_model.php b/application/models/crm/Dokumentstudiengang_model.php
old mode 100644
new mode 100755
diff --git a/application/models/crm/Konto_model.php b/application/models/crm/Konto_model.php
old mode 100644
new mode 100755
diff --git a/application/models/crm/Preincoming_model.php b/application/models/crm/Preincoming_model.php
old mode 100644
new mode 100755
diff --git a/application/models/crm/Preinteressent_model.php b/application/models/crm/Preinteressent_model.php
old mode 100644
new mode 100755
diff --git a/application/models/crm/Preinteressentstudiengang_model.php b/application/models/crm/Preinteressentstudiengang_model.php
old mode 100644
new mode 100755
diff --git a/application/models/crm/Preoutgoing_model.php b/application/models/crm/Preoutgoing_model.php
old mode 100644
new mode 100755
diff --git a/application/models/crm/Prestudent_model.php b/application/models/crm/Prestudent_model.php
old mode 100644
new mode 100755
diff --git a/application/models/crm/Prestudentstatus_model.php b/application/models/crm/Prestudentstatus_model.php
old mode 100644
new mode 100755
diff --git a/application/models/crm/Reihungstest_model.php b/application/models/crm/Reihungstest_model.php
old mode 100644
new mode 100755
diff --git a/application/models/crm/RtPerson_model.php b/application/models/crm/RtPerson_model.php
old mode 100644
new mode 100755
diff --git a/application/models/crm/RtStudienplan_model.php b/application/models/crm/RtStudienplan_model.php
old mode 100644
new mode 100755
diff --git a/application/models/crm/RueckstellungStatus_model.php b/application/models/crm/RueckstellungStatus_model.php
old mode 100644
new mode 100755
diff --git a/application/models/crm/Rueckstellung_model.php b/application/models/crm/Rueckstellung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/crm/Status_model.php b/application/models/crm/Status_model.php
old mode 100644
new mode 100755
diff --git a/application/models/crm/Statusgrund_model.php b/application/models/crm/Statusgrund_model.php
old mode 100644
new mode 100755
diff --git a/application/models/crm/Student_model.php b/application/models/crm/Student_model.php
old mode 100644
new mode 100755
index 4b0a70b1a..6d4bc479b
--- a/application/models/crm/Student_model.php
+++ b/application/models/crm/Student_model.php
@@ -13,6 +13,28 @@ class Student_model extends DB_Model
$this->hasSequence = false;
}
+ /**
+ * Checks if the user is a Student.
+ * @param string $uid
+ * @return array
+ */
+ public function isStudent($uid)
+ {
+ $this->addSelect('1');
+
+ $result = $this->loadWhere(array('student_uid' => $uid));
+
+
+ if(hasData($result))
+ {
+ return success(true);
+ }
+ else
+ {
+ return success(false);
+ }
+ }
+
// ****
// * Generiert die Matrikelnummer
// * FORMAT: 0710254001
diff --git a/application/models/crm/ZGVPruefungStatus_model.php b/application/models/crm/ZGVPruefungStatus_model.php
old mode 100644
new mode 100755
diff --git a/application/models/crm/ZGVPruefung_model.php b/application/models/crm/ZGVPruefung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/dashboard/Dashboard_Override_model.php b/application/models/dashboard/Dashboard_Override_model.php
old mode 100644
new mode 100755
diff --git a/application/models/dashboard/Dashboard_Preset_model.php b/application/models/dashboard/Dashboard_Preset_model.php
old mode 100644
new mode 100755
diff --git a/application/models/dashboard/Dashboard_Widget_model.php b/application/models/dashboard/Dashboard_Widget_model.php
old mode 100644
new mode 100755
diff --git a/application/models/dashboard/Dashboard_model.php b/application/models/dashboard/Dashboard_model.php
old mode 100644
new mode 100755
diff --git a/application/models/dashboard/Widget_model.php b/application/models/dashboard/Widget_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Abgabe_model.php b/application/models/education/Abgabe_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Abschlussbeurteilung_model.php b/application/models/education/Abschlussbeurteilung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Abschlusspruefung_model.php b/application/models/education/Abschlusspruefung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Anrechnung_model.php b/application/models/education/Anrechnung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Anrechnungbegruendung_model.php b/application/models/education/Anrechnungbegruendung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Anrechnungstatus_model.php b/application/models/education/Anrechnungstatus_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Anrechnungszeitraum_model.php b/application/models/education/Anrechnungszeitraum_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Anwesenheit_model.php b/application/models/education/Anwesenheit_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Beispiel_model.php b/application/models/education/Beispiel_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Betreuerart_model.php b/application/models/education/Betreuerart_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Feedback_model.php b/application/models/education/Feedback_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/LeNotenschluessel_model.php b/application/models/education/LeNotenschluessel_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/LePruefung_model.php b/application/models/education/LePruefung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Legesamtnote_model.php b/application/models/education/Legesamtnote_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Lehreinheit_model.php b/application/models/education/Lehreinheit_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Lehreinheitgruppe_model.php b/application/models/education/Lehreinheitgruppe_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Lehreinheitmitarbeiter_model.php b/application/models/education/Lehreinheitmitarbeiter_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Lehrfach_model.php b/application/models/education/Lehrfach_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Lehrfunktion_model.php b/application/models/education/Lehrfunktion_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Lehrtyp_model.php b/application/models/education/Lehrtyp_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Lehrveranstaltung_model.php b/application/models/education/Lehrveranstaltung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Lvangebot_model.php b/application/models/education/Lvangebot_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Lvgesamtnote_model.php b/application/models/education/Lvgesamtnote_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Lvinfo_model.php b/application/models/education/Lvinfo_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Lvregel_model.php b/application/models/education/Lvregel_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Lvregeltyp_model.php b/application/models/education/Lvregeltyp_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Notenschluessel_model.php b/application/models/education/Notenschluessel_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Notenschluesselaufteilung_model.php b/application/models/education/Notenschluesselaufteilung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Notenschluesseluebung_model.php b/application/models/education/Notenschluesseluebung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Notenschluesselzuordnung_model.php b/application/models/education/Notenschluesselzuordnung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Paabgabe_model.php b/application/models/education/Paabgabe_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Paabgabetyp_model.php b/application/models/education/Paabgabetyp_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Projektarbeit_model.php b/application/models/education/Projektarbeit_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Projektbetreuer_model.php b/application/models/education/Projektbetreuer_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Projekttyp_model.php b/application/models/education/Projekttyp_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Pruefung_model.php b/application/models/education/Pruefung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Pruefungsanmeldung_model.php b/application/models/education/Pruefungsanmeldung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Pruefungsfenster_model.php b/application/models/education/Pruefungsfenster_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Pruefungsstatus_model.php b/application/models/education/Pruefungsstatus_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Pruefungstermin_model.php b/application/models/education/Pruefungstermin_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Pruefungstyp_model.php b/application/models/education/Pruefungstyp_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Studentbeispiel_model.php b/application/models/education/Studentbeispiel_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Studentlehrverband_model.php b/application/models/education/Studentlehrverband_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Studentuebung_model.php b/application/models/education/Studentuebung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Studierendenantrag_model.php b/application/models/education/Studierendenantrag_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Studierendenantraglehrveranstaltung_model.php b/application/models/education/Studierendenantraglehrveranstaltung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Studierendenantragstatus_model.php b/application/models/education/Studierendenantragstatus_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Uebung_model.php b/application/models/education/Uebung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Zeugnis_model.php b/application/models/education/Zeugnis_model.php
old mode 100644
new mode 100755
diff --git a/application/models/education/Zeugnisnote_model.php b/application/models/education/Zeugnisnote_model.php
old mode 100644
new mode 100755
diff --git a/application/models/extensions/.placeholder b/application/models/extensions/.placeholder
old mode 100644
new mode 100755
diff --git a/application/models/index.html b/application/models/index.html
old mode 100644
new mode 100755
diff --git a/application/models/organisation/Erhalter_model.php b/application/models/organisation/Erhalter_model.php
old mode 100644
new mode 100755
diff --git a/application/models/organisation/Fachbereich_model.php b/application/models/organisation/Fachbereich_model.php
old mode 100644
new mode 100755
diff --git a/application/models/organisation/Ferien_model.php b/application/models/organisation/Ferien_model.php
old mode 100644
new mode 100755
diff --git a/application/models/organisation/Geschaeftsjahr_model.php b/application/models/organisation/Geschaeftsjahr_model.php
old mode 100644
new mode 100755
diff --git a/application/models/organisation/Gruppe_model.php b/application/models/organisation/Gruppe_model.php
old mode 100644
new mode 100755
diff --git a/application/models/organisation/Lehrverband_model.php b/application/models/organisation/Lehrverband_model.php
old mode 100644
new mode 100755
diff --git a/application/models/organisation/Organisationseinheit_model.php b/application/models/organisation/Organisationseinheit_model.php
old mode 100644
new mode 100755
diff --git a/application/models/organisation/Organisationseinheittyp_model.php b/application/models/organisation/Organisationseinheittyp_model.php
old mode 100644
new mode 100755
diff --git a/application/models/organisation/Semesterwochen_model.php b/application/models/organisation/Semesterwochen_model.php
old mode 100644
new mode 100755
diff --git a/application/models/organisation/Service_model.php b/application/models/organisation/Service_model.php
old mode 100644
new mode 100755
diff --git a/application/models/organisation/Standort_model.php b/application/models/organisation/Standort_model.php
old mode 100644
new mode 100755
diff --git a/application/models/organisation/Statistik_model.php b/application/models/organisation/Statistik_model.php
old mode 100644
new mode 100755
diff --git a/application/models/organisation/Studiengang_model.php b/application/models/organisation/Studiengang_model.php
old mode 100644
new mode 100755
diff --git a/application/models/organisation/Studiengangstyp_model.php b/application/models/organisation/Studiengangstyp_model.php
old mode 100644
new mode 100755
diff --git a/application/models/organisation/Studienjahr_model.php b/application/models/organisation/Studienjahr_model.php
old mode 100644
new mode 100755
diff --git a/application/models/organisation/Studienordnung_model.php b/application/models/organisation/Studienordnung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/organisation/Studienordnungstatus_model.php b/application/models/organisation/Studienordnungstatus_model.php
old mode 100644
new mode 100755
diff --git a/application/models/organisation/Studienplan_model.php b/application/models/organisation/Studienplan_model.php
old mode 100644
new mode 100755
diff --git a/application/models/organisation/Studienplatz_model.php b/application/models/organisation/Studienplatz_model.php
old mode 100644
new mode 100755
diff --git a/application/models/organisation/Studiensemester_model.php b/application/models/organisation/Studiensemester_model.php
old mode 100644
new mode 100755
diff --git a/application/models/person/Adresse_model.php b/application/models/person/Adresse_model.php
old mode 100644
new mode 100755
diff --git a/application/models/person/Adressentyp_model.php b/application/models/person/Adressentyp_model.php
old mode 100644
new mode 100755
diff --git a/application/models/person/Bankverbindung_model.php b/application/models/person/Bankverbindung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/person/Benutzer_model.php b/application/models/person/Benutzer_model.php
old mode 100644
new mode 100755
diff --git a/application/models/person/Benutzerfunktion_model.php b/application/models/person/Benutzerfunktion_model.php
old mode 100644
new mode 100755
diff --git a/application/models/person/Benutzergruppe_model.php b/application/models/person/Benutzergruppe_model.php
old mode 100644
new mode 100755
diff --git a/application/models/person/Fotostatus_model.php b/application/models/person/Fotostatus_model.php
old mode 100644
new mode 100755
diff --git a/application/models/person/Fotostatusperson_model.php b/application/models/person/Fotostatusperson_model.php
old mode 100644
new mode 100755
diff --git a/application/models/person/Freebusy_model.php b/application/models/person/Freebusy_model.php
old mode 100644
new mode 100755
diff --git a/application/models/person/Freebusytyp_model.php b/application/models/person/Freebusytyp_model.php
old mode 100644
new mode 100755
diff --git a/application/models/person/Geschlecht_model.php b/application/models/person/Geschlecht_model.php
old mode 100644
new mode 100755
diff --git a/application/models/person/Kontakt_model.php b/application/models/person/Kontakt_model.php
old mode 100644
new mode 100755
diff --git a/application/models/person/Kontaktmedium_model.php b/application/models/person/Kontaktmedium_model.php
old mode 100644
new mode 100755
diff --git a/application/models/person/Kontakttyp_model.php b/application/models/person/Kontakttyp_model.php
old mode 100644
new mode 100755
diff --git a/application/models/person/Notiz_model.php b/application/models/person/Notiz_model.php
old mode 100644
new mode 100755
diff --git a/application/models/person/Notizzuordnung_model.php b/application/models/person/Notizzuordnung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/person/Person_model.php b/application/models/person/Person_model.php
old mode 100644
new mode 100755
diff --git a/application/models/person/Profil_update_model.php b/application/models/person/Profil_update_model.php
new file mode 100755
index 000000000..68394dd9a
--- /dev/null
+++ b/application/models/person/Profil_update_model.php
@@ -0,0 +1,172 @@
+dbTable = 'public.tbl_profil_update';
+ $this->pk = ['profil_update_id'];
+ $this->hasSequence = true;
+
+
+ $this->load->model('crm/Student_model', 'StudentModel');
+ $this->load->model('ressource/Mitarbeiter_model', 'MitarbeiterModel');
+
+ $this->load->library('PermissionLib');
+ }
+
+ /**
+ * getTimestamp
+ * returns insert or update timestamp of a certain profil update
+ *
+ * @param boolean $update: conditional whether to return insertamum or updateamum
+ */
+ //TODO: function wird nicht verwendet
+ public function getTimestamp($id, $update = false)
+ {
+ $selectStatement = $update ? 'updateamum' : 'insertamum';
+ $this->addSelect([$selectStatement]);
+ $res = $this->load([$id]);
+ return hasData($res) ? getData($res)[0]->$selectStatement : null;
+ }
+
+ /**
+ * getFilesFromChangeRequest
+ *
+ * returns all files associated to a profil update request in the following format:
+ * {dms_id:123 , name:"test"}
+ *
+ * @param boolean $profil_update_id primary key of the profil update request
+ * @return array
+ */
+ //TODO: function wird nicht verwendet
+ public function getFilesFromChangeRequest($profil_update_id)
+ {
+ $this->addSelect(["requested_change"]);
+ $res = $this->load([$profil_update_id]);
+ $res = hasData($res) ? getData($res)[0] : null;
+ return json_decode($res->requested_change)->files ?: [];
+ }
+
+
+ //? queries the tbl_profil_updates without permissions of the user
+ public function getProfilUpdatesWhere($whereClause)
+ {
+ if (array_key_exists("uid", $whereClause)) {
+ $whereClause["public.tbl_profil_update.uid"] = $whereClause["uid"];
+ unset($whereClause["uid"]);
+ }
+ $this->addSelect(["public.tbl_profil_update.*", "public.tbl_person.vorname"]);
+ $this->addJoin("public.tbl_benutzer", "public.tbl_benutzer.uid = public.tbl_profil_update.uid");
+ $this->addJoin("public.tbl_person", "public.tbl_person.person_id = public.tbl_benutzer.person_id");
+ $res = $this->loadWhere($whereClause);
+ if (isError($res)) {
+ return $res;
+ }
+ if (hasData($res)) {
+ foreach (getData($res) as $request) {
+ $this->formatProfilRequest($request);
+ }
+ }
+
+ return $res;
+
+ }
+
+
+ /**
+ * getProfilUpdateWithPermission
+ *
+ * queries the profil updates and checks if the user trying to query the data has permissions to get the profil updates
+ *
+ * @param string $whereClause additional where clause that will be appended to the db query
+ * @return array array with all the profil updates that the user is eligible to see
+ */
+ public function getProfilUpdateWithPermission($whereClause = null)
+ {
+
+ $studentBerechtigung = $this->permissionlib->isBerechtigt('student/stammdaten', 's');
+ $mitarbeiterBerechtigung = $this->permissionlib->isBerechtigt('mitarbeiter/stammdaten', 's');
+ $oe_berechtigung = $this->permissionlib->getOE_isEntitledFor('student/stammdaten');
+
+ $lang = "select index from public.tbl_sprache where sprache =" . $this->escape(getUserLanguage());
+ $res = [];
+
+ if ($studentBerechtigung) {
+
+
+ //? Nur wenn der/die AssistentIn auch die Berechtigung in der gleichen Organisationseinheit des Studenten hat
+ $parameters = [];
+ $query = "
+ SELECT
+ profil_update_id, tbl_profil_update.uid, (tbl_person.vorname || ' ' || tbl_person.nachname) AS name , topic, requested_change, tbl_profil_update.updateamum, tbl_profil_update.updatevon, tbl_profil_update.insertamum, tbl_profil_update.insertvon, status, public.tbl_profil_update_status.bezeichnung_mehrsprachig[(" . $lang . ")] as status_translated, status_timestamp, status_message, attachment_id
+ FROM public.tbl_profil_update
+ JOIN public.tbl_profil_update_status ON public.tbl_profil_update_status.status_kurzbz = public.tbl_profil_update.status
+ JOIN public.tbl_student ON public.tbl_student.student_uid=public.tbl_profil_update.uid
+ JOIN public.tbl_benutzer ON public.tbl_benutzer.uid = public.tbl_student.student_uid
+ JOIN public.tbl_person ON public.tbl_benutzer.person_id=public.tbl_person.person_id
+ JOIN public.tbl_studiengang ON public.tbl_studiengang.studiengang_kz=public.tbl_student.studiengang_kz
+ Where public.tbl_studiengang.oe_kurzbz IN ? ";
+ $parameters[] = $oe_berechtigung;
+ if ($whereClause) {
+ foreach ($whereClause as $key => $value) {
+ $parameters[] = $value;
+ $query .= " AND " . $key . " = ?";
+ }
+ }
+
+ $studentRequests = $this->execReadOnlyQuery($query, $parameters);
+
+ if (isError($studentRequests))
+ return error("db error: " . getData($studentRequests));
+ $studentRequests = getData($studentRequests) ?: [];
+ foreach ($studentRequests as $request) {
+ array_push($res, $request);
+ }
+ }
+ if ($mitarbeiterBerechtigung) {
+ $this->addSelect(["profil_update_id", "tbl_profil_update.uid", "(tbl_person.vorname || ' ' || tbl_person.nachname) AS name", "topic", "requested_change", "tbl_profil_update.updateamum", "tbl_profil_update.updatevon", "tbl_profil_update.insertamum", "tbl_profil_update.insertvon", "status", "public.tbl_profil_update_status.bezeichnung_mehrsprachig[(" . $lang . ")] AS status_translated", "status_timestamp", "status_message", "attachment_id"]);
+ $this->addJoin('tbl_profil_update_status', 'tbl_profil_update_status.status_kurzbz=tbl_profil_update.status');
+ $this->addJoin('tbl_mitarbeiter', 'tbl_mitarbeiter.mitarbeiter_uid=tbl_profil_update.uid');
+ $this->addJoin('tbl_benutzer', 'tbl_benutzer.uid=tbl_profil_update.uid');
+ $this->addJoin('tbl_person', 'tbl_benutzer.person_id=tbl_person.person_id');
+ $mitarbeiterRequests = $this->loadWhere($whereClause);
+ if (isError($mitarbeiterRequests))
+ return error("db error: " . getData($mitarbeiterRequests));
+ $mitarbeiterRequests = getData($mitarbeiterRequests) ?: [];
+ foreach ($mitarbeiterRequests as $request) {
+ array_push($res, $request);
+ }
+ }
+ if ($res) {
+
+ foreach ($res as $request) {
+ $this->formatProfilRequest($request);
+ }
+ }
+
+ return $res;
+
+ }
+
+ /**
+ * formatProfilRequest
+ *
+ * formats the the properties of a profilUpdate request row result
+ *
+ * @param stdClass $request unflitered profilUpdate row result from the database
+ * @return void
+ */
+ private function formatProfilRequest($request)
+ {
+ $request->requested_change = json_decode($request->requested_change);
+ $request->insertamum = !is_null($request->insertamum) ? date_create($request->insertamum)->format('d.m.Y') : null;
+ $request->updateamum = !is_null($request->updateamum) ? date_create($request->updateamum)->format('d.m.Y') : null;
+ $request->status_timestamp = !is_null($request->status_timestamp) ? date_create($request->status_timestamp)->format('d.m.Y') : null;
+ }
+
+}
diff --git a/application/models/person/Profil_update_status_model.php b/application/models/person/Profil_update_status_model.php
new file mode 100644
index 000000000..e69f9a047
--- /dev/null
+++ b/application/models/person/Profil_update_status_model.php
@@ -0,0 +1,18 @@
+dbTable = 'public.tbl_profil_update_status';
+ $this->pk = ['status_kurzbz'];
+ $this->hasSequence = false;
+
+
+
+ }
+}
\ No newline at end of file
diff --git a/application/models/person/Profil_update_topic_model.php b/application/models/person/Profil_update_topic_model.php
new file mode 100644
index 000000000..0b7ad61e3
--- /dev/null
+++ b/application/models/person/Profil_update_topic_model.php
@@ -0,0 +1,16 @@
+dbTable = 'public.tbl_profil_update_topic';
+ $this->pk = ['topic_kurzbz'];
+ $this->hasSequence = false;
+
+ }
+}
\ No newline at end of file
diff --git a/application/models/project/Aktivitaet_model.php b/application/models/project/Aktivitaet_model.php
old mode 100644
new mode 100755
diff --git a/application/models/project/Aufwandstyp_model.php b/application/models/project/Aufwandstyp_model.php
old mode 100644
new mode 100755
diff --git a/application/models/project/Projekt_model.php b/application/models/project/Projekt_model.php
old mode 100644
new mode 100755
diff --git a/application/models/project/Projekt_ressource_model.php b/application/models/project/Projekt_ressource_model.php
old mode 100644
new mode 100755
diff --git a/application/models/project/Projektphase_model.php b/application/models/project/Projektphase_model.php
old mode 100644
new mode 100755
diff --git a/application/models/project/Projekttask_model.php b/application/models/project/Projekttask_model.php
old mode 100644
new mode 100755
diff --git a/application/models/project/Ressource_model.php b/application/models/project/Ressource_model.php
old mode 100644
new mode 100755
diff --git a/application/models/project/Scrumsprint_model.php b/application/models/project/Scrumsprint_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Betriebsmittel_model.php b/application/models/ressource/Betriebsmittel_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Betriebsmittelperson_model.php b/application/models/ressource/Betriebsmittelperson_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Betriebsmittelstatus_model.php b/application/models/ressource/Betriebsmittelstatus_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Betriebsmitteltyp_model.php b/application/models/ressource/Betriebsmitteltyp_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Coodle_model.php b/application/models/ressource/Coodle_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Erreichbarkeit_model.php b/application/models/ressource/Erreichbarkeit_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Firma_model.php b/application/models/ressource/Firma_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Firmatag_model.php b/application/models/ressource/Firmatag_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Firmentyp_model.php b/application/models/ressource/Firmentyp_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Funktion_model.php b/application/models/ressource/Funktion_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Lehrmittel_model.php b/application/models/ressource/Lehrmittel_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Mitarbeiter_model.php b/application/models/ressource/Mitarbeiter_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Ort_model.php b/application/models/ressource/Ort_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Ortraumtyp_model.php b/application/models/ressource/Ortraumtyp_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Personfunktionstandort_model.php b/application/models/ressource/Personfunktionstandort_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Raumtyp_model.php b/application/models/ressource/Raumtyp_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Reservierung_model.php b/application/models/ressource/Reservierung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Stunde_model.php b/application/models/ressource/Stunde_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Stundenplan_model.php b/application/models/ressource/Stundenplan_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Stundenplandev_model.php b/application/models/ressource/Stundenplandev_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Zeitaufzeichnung_model.php b/application/models/ressource/Zeitaufzeichnung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Zeitsperre_model.php b/application/models/ressource/Zeitsperre_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Zeitsperretyp_model.php b/application/models/ressource/Zeitsperretyp_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Zeitwunsch_gueltigkeit_model.php b/application/models/ressource/Zeitwunsch_gueltigkeit_model.php
old mode 100644
new mode 100755
diff --git a/application/models/ressource/Zeitwunsch_model.php b/application/models/ressource/Zeitwunsch_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Appdaten_model.php b/application/models/system/Appdaten_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Attachment_model.php b/application/models/system/Attachment_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Benutzerrolle_model.php b/application/models/system/Benutzerrolle_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Berechtigung_model.php b/application/models/system/Berechtigung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Cronjob_model.php b/application/models/system/Cronjob_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Dokument_model.php b/application/models/system/Dokument_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Extensions_model.php b/application/models/system/Extensions_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Fehler_model.php b/application/models/system/Fehler_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Fehlerkonfiguration_model.php b/application/models/system/Fehlerkonfiguration_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Fehlerkonfigurationstyp_model.php b/application/models/system/Fehlerkonfigurationstyp_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Fehlerzustaendigkeiten_model.php b/application/models/system/Fehlerzustaendigkeiten_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Filter_model.php b/application/models/system/Filter_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Filters_model.php b/application/models/system/Filters_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Issue_model.php b/application/models/system/Issue_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/JobStatuses_model.php b/application/models/system/JobStatuses_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/JobTriggers_model.php b/application/models/system/JobTriggers_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/JobTypes_model.php b/application/models/system/JobTypes_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/JobsQueue_model.php b/application/models/system/JobsQueue_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Log_model.php b/application/models/system/Log_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/MessageToken_model.php b/application/models/system/MessageToken_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Message_model.php b/application/models/system/Message_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/MsgStatus_model.php b/application/models/system/MsgStatus_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/PersonLock_model.php b/application/models/system/PersonLock_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/PersonLog_model.php b/application/models/system/PersonLog_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Phrase_model.php b/application/models/system/Phrase_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Phrasentext_model.php b/application/models/system/Phrasentext_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Recipient_model.php b/application/models/system/Recipient_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Rolle_model.php b/application/models/system/Rolle_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Rolleberechtigung_model.php b/application/models/system/Rolleberechtigung_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Server_model.php b/application/models/system/Server_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Sprache_model.php b/application/models/system/Sprache_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Tag_model.php b/application/models/system/Tag_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/UDF_model.php b/application/models/system/UDF_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Variable_model.php b/application/models/system/Variable_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Variablenname_model.php b/application/models/system/Variablenname_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Vorlage_model.php b/application/models/system/Vorlage_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Vorlagedokument_model.php b/application/models/system/Vorlagedokument_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Vorlagestudiengang_model.php b/application/models/system/Vorlagestudiengang_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Webservicelog_model.php b/application/models/system/Webservicelog_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Webservicerecht_model.php b/application/models/system/Webservicerecht_model.php
old mode 100644
new mode 100755
diff --git a/application/models/system/Webservicetyp_model.php b/application/models/system/Webservicetyp_model.php
old mode 100644
new mode 100755
diff --git a/application/models/testtool/Ablauf_model.php b/application/models/testtool/Ablauf_model.php
old mode 100644
new mode 100755
diff --git a/application/models/testtool/Antwort_model.php b/application/models/testtool/Antwort_model.php
old mode 100644
new mode 100755
diff --git a/application/models/testtool/Frage_model.php b/application/models/testtool/Frage_model.php
old mode 100644
new mode 100755
diff --git a/application/models/testtool/Gebiet_model.php b/application/models/testtool/Gebiet_model.php
old mode 100644
new mode 100755
diff --git a/application/models/testtool/Kategorie_model.php b/application/models/testtool/Kategorie_model.php
old mode 100644
new mode 100755
diff --git a/application/models/testtool/Kriterien_model.php b/application/models/testtool/Kriterien_model.php
old mode 100644
new mode 100755
diff --git a/application/models/testtool/Pruefling_model.php b/application/models/testtool/Pruefling_model.php
old mode 100644
new mode 100755
diff --git a/application/models/testtool/Vorschlag_model.php b/application/models/testtool/Vorschlag_model.php
old mode 100644
new mode 100755
diff --git a/application/third_party/index.html b/application/third_party/index.html
old mode 100644
new mode 100755
diff --git a/application/tmp/.placeholder b/application/tmp/.placeholder
old mode 100644
new mode 100755
diff --git a/application/views/Cis/Cms/News/Xml/Address/Detailed.php b/application/views/Cis/Cms/News/Xml/Address/Detailed.php
old mode 100644
new mode 100755
diff --git a/application/views/Cis/Cms/News/Xml/Address/Short.php b/application/views/Cis/Cms/News/Xml/Address/Short.php
old mode 100644
new mode 100755
diff --git a/application/views/Cis/Cms/News/Xml/NewsExtras.php b/application/views/Cis/Cms/News/Xml/NewsExtras.php
old mode 100644
new mode 100755
diff --git a/application/views/Cis/Documents.php b/application/views/Cis/Documents.php
old mode 100644
new mode 100755
diff --git a/application/views/Cis/Login.php b/application/views/Cis/Login.php
old mode 100644
new mode 100755
diff --git a/application/views/Cis/MyLv.php b/application/views/Cis/MyLv.php
old mode 100644
new mode 100755
diff --git a/application/views/Cis/Profil.php b/application/views/Cis/Profil.php
new file mode 100755
index 000000000..cb3d28711
--- /dev/null
+++ b/application/views/Cis/Profil.php
@@ -0,0 +1,18 @@
+ 'Stundenplan',
+ 'customJSModules' => ['public/js/apps/Cis/Profil.js'],
+ 'tabulator5' => true,
+ 'primevue3' => true,
+ 'customCSSs' => ['public/css/components/calendar.css', 'public/css/components/FilterComponent.css','public/css/components/Profil.css','public/css/components/FormUnderline.css'],
+
+);
+
+$this->load->view('templates/CISHTML-Header', $includesArray);
+?>
+
+
+
+
+
+load->view('templates/CISHTML-Footer', $includesArray); ?>
diff --git a/application/views/Cis/ProfilUpdate.php b/application/views/Cis/ProfilUpdate.php
new file mode 100755
index 000000000..ff303b159
--- /dev/null
+++ b/application/views/Cis/ProfilUpdate.php
@@ -0,0 +1,16 @@
+ 'Profil Änderungen',
+ 'customJSModules'=> ['public/js/apps/Cis/ProfilUpdateRequests.js'],
+ 'tabulator5'=> true,
+ 'customCSSs'=>['public/css/components/FilterComponent.css','public/css/components/FormUnderline.css'],
+ ];
+
+$this->load->view('templates/CISHTML-Header',$includesArray);
+?>
+
+
+
+
+load->view('templates/CISHTML-Footer',$includesArray); ?>
\ No newline at end of file
diff --git a/application/views/Cis/Stundenplan.php b/application/views/Cis/Stundenplan.php
old mode 100644
new mode 100755
diff --git a/application/views/CisHmvc/Cms/Content.php b/application/views/CisHmvc/Cms/Content.php
old mode 100644
new mode 100755
diff --git a/application/views/CisHmvc/Cms/Legacy.php b/application/views/CisHmvc/Cms/Legacy.php
old mode 100644
new mode 100755
diff --git a/application/views/CisHmvc/Dashboard.php b/application/views/CisHmvc/Dashboard.php
old mode 100644
new mode 100755
diff --git a/application/views/CisHmvc/Error.php b/application/views/CisHmvc/Error.php
old mode 100644
new mode 100755
diff --git a/application/views/CisHtml/Cms/Content.php b/application/views/CisHtml/Cms/Content.php
old mode 100644
new mode 100755
diff --git a/application/views/CisHtml/Dashboard.php b/application/views/CisHtml/Dashboard.php
old mode 100644
new mode 100755
diff --git a/application/views/CisHtml/Error.php b/application/views/CisHtml/Error.php
old mode 100644
new mode 100755
diff --git a/application/views/CisVue/Cms/Content.php b/application/views/CisVue/Cms/Content.php
old mode 100644
new mode 100755
diff --git a/application/views/CisVue/Dashboard.php b/application/views/CisVue/Dashboard.php
old mode 100644
new mode 100755
diff --git a/application/views/codex/oehbeitrag.php b/application/views/codex/oehbeitrag.php
old mode 100644
new mode 100755
diff --git a/application/views/codex/uhstat1.php b/application/views/codex/uhstat1.php
old mode 100644
new mode 100755
diff --git a/application/views/crm/statusEdit.php b/application/views/crm/statusEdit.php
old mode 100644
new mode 100755
diff --git a/application/views/crm/statusGrundList.php b/application/views/crm/statusGrundList.php
old mode 100644
new mode 100755
diff --git a/application/views/crm/statusList.php b/application/views/crm/statusList.php
old mode 100644
new mode 100755
diff --git a/application/views/crm/statusgrund.php b/application/views/crm/statusgrund.php
old mode 100644
new mode 100755
diff --git a/application/views/crm/statusgrundEdit.php b/application/views/crm/statusgrundEdit.php
old mode 100644
new mode 100755
diff --git a/application/views/crm/statusgrundNew.php b/application/views/crm/statusgrundNew.php
old mode 100644
new mode 100755
diff --git a/application/views/dashboard/dashboard_demo.php b/application/views/dashboard/dashboard_demo.php
old mode 100644
new mode 100755
diff --git a/application/views/dashboard/dashboard_demo_admin.php b/application/views/dashboard/dashboard_demo_admin.php
old mode 100644
new mode 100755
diff --git a/application/views/errors/cli/error_404.php b/application/views/errors/cli/error_404.php
old mode 100644
new mode 100755
diff --git a/application/views/errors/cli/error_db.php b/application/views/errors/cli/error_db.php
old mode 100644
new mode 100755
diff --git a/application/views/errors/cli/error_exception.php b/application/views/errors/cli/error_exception.php
old mode 100644
new mode 100755
diff --git a/application/views/errors/cli/error_general.php b/application/views/errors/cli/error_general.php
old mode 100644
new mode 100755
diff --git a/application/views/errors/cli/error_php.php b/application/views/errors/cli/error_php.php
old mode 100644
new mode 100755
diff --git a/application/views/errors/cli/index.html b/application/views/errors/cli/index.html
old mode 100644
new mode 100755
diff --git a/application/views/errors/html/error_404.php b/application/views/errors/html/error_404.php
old mode 100644
new mode 100755
diff --git a/application/views/errors/html/error_db.php b/application/views/errors/html/error_db.php
old mode 100644
new mode 100755
diff --git a/application/views/errors/html/error_exception.php b/application/views/errors/html/error_exception.php
old mode 100644
new mode 100755
diff --git a/application/views/errors/html/error_general.php b/application/views/errors/html/error_general.php
old mode 100644
new mode 100755
diff --git a/application/views/errors/html/error_php.php b/application/views/errors/html/error_php.php
old mode 100644
new mode 100755
diff --git a/application/views/errors/html/index.html b/application/views/errors/html/index.html
old mode 100644
new mode 100755
diff --git a/application/views/errors/index.html b/application/views/errors/index.html
old mode 100644
new mode 100755
diff --git a/application/views/extensions/.placeholder b/application/views/extensions/.placeholder
old mode 100644
new mode 100755
diff --git a/application/views/home.php b/application/views/home.php
old mode 100644
new mode 100755
diff --git a/application/views/index.html b/application/views/index.html
old mode 100644
new mode 100755
diff --git a/application/views/lehre/Antrag/Create.php b/application/views/lehre/Antrag/Create.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/Antrag/Leitung/List.php b/application/views/lehre/Antrag/Leitung/List.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/Antrag/Student/List.php b/application/views/lehre/Antrag/Student/List.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/Antrag/Wiederholung/Student.php b/application/views/lehre/Antrag/Wiederholung/Student.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/Antrag/Wiederholung/getLvs.rdf.php b/application/views/lehre/Antrag/Wiederholung/getLvs.rdf.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/Antrag/Wiederholung/moveLvs.rdf.php b/application/views/lehre/Antrag/Wiederholung/moveLvs.rdf.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/anrechnung/adminAnrechnung.php b/application/views/lehre/anrechnung/adminAnrechnung.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/anrechnung/adminAnrechnungData.php b/application/views/lehre/anrechnung/adminAnrechnungData.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/anrechnung/approveAnrechnungDetail.php b/application/views/lehre/anrechnung/approveAnrechnungDetail.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/anrechnung/approveAnrechnungUebersicht.php b/application/views/lehre/anrechnung/approveAnrechnungUebersicht.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/anrechnung/approveAnrechnungUebersichtData.php b/application/views/lehre/anrechnung/approveAnrechnungUebersichtData.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/anrechnung/createAnrechnung.php b/application/views/lehre/anrechnung/createAnrechnung.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/anrechnung/createAnrechnungData.php b/application/views/lehre/anrechnung/createAnrechnungData.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/anrechnung/requestAnrechnung.php b/application/views/lehre/anrechnung/requestAnrechnung.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/anrechnung/requestAnrechnungImportant.php b/application/views/lehre/anrechnung/requestAnrechnungImportant.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/anrechnung/reviewAnrechnungDetail.php b/application/views/lehre/anrechnung/reviewAnrechnungDetail.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/anrechnung/reviewAnrechnungInfo.php b/application/views/lehre/anrechnung/reviewAnrechnungInfo.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/anrechnung/reviewAnrechnungUebersicht.php b/application/views/lehre/anrechnung/reviewAnrechnungUebersicht.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/anrechnung/reviewAnrechnungUebersichtData.php b/application/views/lehre/anrechnung/reviewAnrechnungUebersichtData.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/lehrauftrag/Dashboard.php b/application/views/lehre/lehrauftrag/Dashboard.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/lehrauftrag/LehrendeUebersicht.php b/application/views/lehre/lehrauftrag/LehrendeUebersicht.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftragHelp.php b/application/views/lehre/lehrauftrag/acceptLehrauftragHelp.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/lehrauftrag/approveLehrauftrag.php b/application/views/lehre/lehrauftrag/approveLehrauftrag.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/lehrauftrag/approveLehrauftragData.php b/application/views/lehre/lehrauftrag/approveLehrauftragData.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/lehrauftrag/approveLehrauftragHelp.php b/application/views/lehre/lehrauftrag/approveLehrauftragHelp.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php b/application/views/lehre/lehrauftrag/cancelledLehrauftragData.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/lehrauftrag/orderLehrauftrag.php b/application/views/lehre/lehrauftrag/orderLehrauftrag.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/lehrauftrag/orderLehrauftragData.php b/application/views/lehre/lehrauftrag/orderLehrauftragData.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/lehrauftrag/orderLehrauftragHelp.php b/application/views/lehre/lehrauftrag/orderLehrauftragHelp.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/lvplanung/adminZeitverfuegbarkeit.php b/application/views/lehre/lvplanung/adminZeitverfuegbarkeit.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/lvplanung/adminZeitverfuegbarkeitData.php b/application/views/lehre/lvplanung/adminZeitverfuegbarkeitData.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/pruefungsprotokoll.php b/application/views/lehre/pruefungsprotokoll.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/pruefungsprotokollUebersicht.php b/application/views/lehre/pruefungsprotokollUebersicht.php
old mode 100644
new mode 100755
diff --git a/application/views/lehre/pruefungsprotokollUebersichtData.php b/application/views/lehre/pruefungsprotokollUebersichtData.php
old mode 100644
new mode 100755
diff --git a/application/views/organisation/reihungstest/ReihungstestUebersichtData.php b/application/views/organisation/reihungstest/ReihungstestUebersichtData.php
old mode 100644
new mode 100755
diff --git a/application/views/organisation/reihungstest/reihungstest.php b/application/views/organisation/reihungstest/reihungstest.php
old mode 100644
new mode 100755
diff --git a/application/views/organisation/studienjahr.php b/application/views/organisation/studienjahr.php
old mode 100644
new mode 100755
diff --git a/application/views/organisation/studienjahrEdit.php b/application/views/organisation/studienjahrEdit.php
old mode 100644
new mode 100755
diff --git a/application/views/organisation/studienjahrForm.php b/application/views/organisation/studienjahrForm.php
old mode 100644
new mode 100755
diff --git a/application/views/organisation/studienjahrNew.php b/application/views/organisation/studienjahrNew.php
old mode 100644
new mode 100755
diff --git a/application/views/organisation/studiensemester.php b/application/views/organisation/studiensemester.php
old mode 100644
new mode 100755
diff --git a/application/views/organisation/studiensemesterEdit.php b/application/views/organisation/studiensemesterEdit.php
old mode 100644
new mode 100755
diff --git a/application/views/organisation/studiensemesterForm.php b/application/views/organisation/studiensemesterForm.php
old mode 100644
new mode 100755
diff --git a/application/views/organisation/studiensemesterNew.php b/application/views/organisation/studiensemesterNew.php
old mode 100644
new mode 100755
diff --git a/application/views/person/bpk/bpkData.php b/application/views/person/bpk/bpkData.php
old mode 100644
new mode 100755
diff --git a/application/views/person/bpk/bpkDetails.php b/application/views/person/bpk/bpkDetails.php
old mode 100644
new mode 100755
diff --git a/application/views/person/bpk/bpkwartung.php b/application/views/person/bpk/bpkwartung.php
old mode 100644
new mode 100755
diff --git a/application/views/person/cli/view.php b/application/views/person/cli/view.php
old mode 100644
new mode 100755
diff --git a/application/views/person/gradelist/course.php b/application/views/person/gradelist/course.php
old mode 100644
new mode 100755
diff --git a/application/views/person/gradelist/gradelist.php b/application/views/person/gradelist/gradelist.php
old mode 100644
new mode 100755
diff --git a/application/views/person/gradelist/semester.php b/application/views/person/gradelist/semester.php
old mode 100644
new mode 100755
diff --git a/application/views/person/gruppenmanagement/benutzergruppe.php b/application/views/person/gruppenmanagement/benutzergruppe.php
old mode 100644
new mode 100755
diff --git a/application/views/person/gruppenmanagement/gruppenmanagement.php b/application/views/person/gruppenmanagement/gruppenmanagement.php
old mode 100644
new mode 100755
diff --git a/application/views/person/gruppenmanagement/gruppenmanagementData.php b/application/views/person/gruppenmanagement/gruppenmanagementData.php
old mode 100644
new mode 100755
diff --git a/application/views/person/index.php b/application/views/person/index.php
old mode 100644
new mode 100755
diff --git a/application/views/person/view.php b/application/views/person/view.php
old mode 100644
new mode 100755
diff --git a/application/views/system/aufnahme/prestudentMultiAssign.php b/application/views/system/aufnahme/prestudentMultiAssign.php
old mode 100644
new mode 100755
diff --git a/application/views/system/extensions/manager.php b/application/views/system/extensions/manager.php
old mode 100644
new mode 100755
diff --git a/application/views/system/fas_udf.php b/application/views/system/fas_udf.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/absageModal.php b/application/views/system/infocenter/absageModal.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/addNotiz.php b/application/views/system/infocenter/addNotiz.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/anmerkungenZurBewerbung.php b/application/views/system/infocenter/anmerkungenZurBewerbung.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/dokNachzureichend.php b/application/views/system/infocenter/dokNachzureichend.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/dokpruefung.php b/application/views/system/infocenter/dokpruefung.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/infocenter.php b/application/views/system/infocenter/infocenter.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/infocenterAbgewiesen.php b/application/views/system/infocenter/infocenterAbgewiesen.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/infocenterAbgewiesenData.php b/application/views/system/infocenter/infocenterAbgewiesenData.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/infocenterAufgenommen.php b/application/views/system/infocenter/infocenterAufgenommen.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/infocenterAufgenommenData.php b/application/views/system/infocenter/infocenterAufgenommenData.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/infocenterData.php b/application/views/system/infocenter/infocenterData.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/infocenterDetails.php b/application/views/system/infocenter/infocenterDetails.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/infocenterFreigegeben.php b/application/views/system/infocenter/infocenterFreigegeben.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/infocenterFreigegebenData.php b/application/views/system/infocenter/infocenterFreigegebenData.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/infocenterReihungstestAbsolviert.php b/application/views/system/infocenter/infocenterReihungstestAbsolviert.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php b/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/infocenterZgvDetails.php b/application/views/system/infocenter/infocenterZgvDetails.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/infocenterZgvUeberpruefung.php b/application/views/system/infocenter/infocenterZgvUeberpruefung.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/infocenterZgvUeberpruefungData.php b/application/views/system/infocenter/infocenterZgvUeberpruefungData.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/logs.php b/application/views/system/infocenter/logs.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/messageList.php b/application/views/system/infocenter/messageList.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/notizen.php b/application/views/system/infocenter/notizen.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/stammdaten.php b/application/views/system/infocenter/stammdaten.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/studiengangZgvInfo.php b/application/views/system/infocenter/studiengangZgvInfo.php
old mode 100644
new mode 100755
diff --git a/application/views/system/infocenter/zgvpruefungen.php b/application/views/system/infocenter/zgvpruefungen.php
old mode 100644
new mode 100755
diff --git a/application/views/system/issues/issues.php b/application/views/system/issues/issues.php
old mode 100644
new mode 100755
diff --git a/application/views/system/issues/issuesData.php b/application/views/system/issues/issuesData.php
old mode 100644
new mode 100755
diff --git a/application/views/system/issues/issuesKonfiguration.php b/application/views/system/issues/issuesKonfiguration.php
old mode 100644
new mode 100755
diff --git a/application/views/system/issues/issuesKonfigurationData.php b/application/views/system/issues/issuesKonfigurationData.php
old mode 100644
new mode 100755
diff --git a/application/views/system/issues/issuesZustaendigkeiten.php b/application/views/system/issues/issuesZustaendigkeiten.php
old mode 100644
new mode 100755
diff --git a/application/views/system/issues/issuesZustaendigkeitenData.php b/application/views/system/issues/issuesZustaendigkeitenData.php
old mode 100644
new mode 100755
diff --git a/application/views/system/issues/plausichecks.php b/application/views/system/issues/plausichecks.php
old mode 100644
new mode 100755
diff --git a/application/views/system/jq/jobsQueueViewer.php b/application/views/system/jq/jobsQueueViewer.php
old mode 100644
new mode 100755
diff --git a/application/views/system/jq/jobsQueueViewerData.php b/application/views/system/jq/jobsQueueViewerData.php
old mode 100644
new mode 100755
diff --git a/application/views/system/login/usernamePassword.php b/application/views/system/login/usernamePassword.php
old mode 100644
new mode 100755
diff --git a/application/views/system/logs/logsViewer.php b/application/views/system/logs/logsViewer.php
old mode 100644
new mode 100755
diff --git a/application/views/system/logs/testSearch.php b/application/views/system/logs/testSearch.php
old mode 100644
new mode 100755
diff --git a/application/views/system/messages/FAShtmlWriteTemplate.php b/application/views/system/messages/FAShtmlWriteTemplate.php
old mode 100644
new mode 100755
diff --git a/application/views/system/messages/ajaxRead.php b/application/views/system/messages/ajaxRead.php
old mode 100644
new mode 100755
diff --git a/application/views/system/messages/ajaxWrite.php b/application/views/system/messages/ajaxWrite.php
old mode 100644
new mode 100755
diff --git a/application/views/system/messages/ajaxWriteReply.php b/application/views/system/messages/ajaxWriteReply.php
old mode 100644
new mode 100755
diff --git a/application/views/system/messages/htmlMessageSentError.php b/application/views/system/messages/htmlMessageSentError.php
old mode 100644
new mode 100755
diff --git a/application/views/system/messages/htmlMessageSentSuccess.php b/application/views/system/messages/htmlMessageSentSuccess.php
old mode 100644
new mode 100755
diff --git a/application/views/system/messages/htmlRead.php b/application/views/system/messages/htmlRead.php
old mode 100644
new mode 100755
diff --git a/application/views/system/messages/htmlWriteReply.php b/application/views/system/messages/htmlWriteReply.php
old mode 100644
new mode 100755
diff --git a/application/views/system/messages/htmlWriteTemplate.php b/application/views/system/messages/htmlWriteTemplate.php
old mode 100644
new mode 100755
diff --git a/application/views/system/phrases/phraseinhaltEdit.php b/application/views/system/phrases/phraseinhaltEdit.php
old mode 100644
new mode 100755
diff --git a/application/views/system/phrases/phrases.php b/application/views/system/phrases/phrases.php
old mode 100644
new mode 100755
diff --git a/application/views/system/phrases/phrasesEdit.php b/application/views/system/phrases/phrasesEdit.php
old mode 100644
new mode 100755
diff --git a/application/views/system/phrases/phrasesList.php b/application/views/system/phrases/phrasesList.php
old mode 100644
new mode 100755
diff --git a/application/views/system/phrases/phrasesinhaltList.php b/application/views/system/phrases/phrasesinhaltList.php
old mode 100644
new mode 100755
diff --git a/application/views/system/vorlage/templateLinkDocuments.php b/application/views/system/vorlage/templateLinkDocuments.php
old mode 100644
new mode 100755
diff --git a/application/views/system/vorlage/templates.php b/application/views/system/vorlage/templates.php
old mode 100644
new mode 100755
diff --git a/application/views/system/vorlage/templatesEdit.php b/application/views/system/vorlage/templatesEdit.php
old mode 100644
new mode 100755
diff --git a/application/views/system/vorlage/templatesList.php b/application/views/system/vorlage/templatesList.php
old mode 100644
new mode 100755
diff --git a/application/views/system/vorlage/templatetextEdit.php b/application/views/system/vorlage/templatetextEdit.php
old mode 100644
new mode 100755
diff --git a/application/views/system/vorlage/templatetextList.php b/application/views/system/vorlage/templatetextList.php
old mode 100644
new mode 100755
diff --git a/application/views/system/vorlage/templatetextPreview.php b/application/views/system/vorlage/templatetextPreview.php
old mode 100644
new mode 100755
diff --git a/application/views/templates/CISHMVC-Footer.php b/application/views/templates/CISHMVC-Footer.php
old mode 100644
new mode 100755
diff --git a/application/views/templates/CISHMVC-Header.php b/application/views/templates/CISHMVC-Header.php
old mode 100644
new mode 100755
diff --git a/application/views/templates/CISHMVC-Menu/Entry.php b/application/views/templates/CISHMVC-Menu/Entry.php
old mode 100644
new mode 100755
diff --git a/application/views/templates/CISHTML-Footer.php b/application/views/templates/CISHTML-Footer.php
old mode 100644
new mode 100755
diff --git a/application/views/templates/CISHTML-Header.php b/application/views/templates/CISHTML-Header.php
old mode 100644
new mode 100755
index 2ae90bda8..58d6f2443
--- a/application/views/templates/CISHTML-Header.php
+++ b/application/views/templates/CISHTML-Header.php
@@ -46,7 +46,7 @@ if (!isset($menu)) {