diff --git a/wecker_manufaktur/sai/saimod_person/js/saimod_person.js b/wecker_manufaktur/sai/saimod_person/js/saimod_person.js index cebecd7..1be0d4b 100644 --- a/wecker_manufaktur/sai/saimod_person/js/saimod_person.js +++ b/wecker_manufaktur/sai/saimod_person/js/saimod_person.js @@ -357,6 +357,71 @@ function init_saimod_person_details(){ } }); + // Project New Button + $('#btn-person-project-new').click(function(){ + person = $(this).attr('person'); + project = $('#input-project').val(); + $.ajax({ + async: true, + url: this.endpoint, + type: 'POST', + dataType: 'JSON', + data: { + sai_mod: '.SAI.saimod_person', + action: 'person_project_new', + data: { + person: person, + project: project + } + }, + success: function(data){ + if(data.status){ + system.reload(); + } else { + alert('Something happend - try again!'); + } + }, + error: function(){ + alert('Something happend - try again!'); + } + }); + }); + + // Projects Delete + $('#btn-projects-del').click(function(){ + person = $(this).attr('person'); + var projects = []; + $(this).parent().parent().parent().parent().find('.project-check:checked').each(function() { + projects.push($(this).attr('project')); + }); + if (confirm('Are you sure you want to delete '+projects.length+' Projects PERMANENTLY?')) { + $.ajax({ + async: true, + url: this.endpoint, + type: 'POST', + dataType: 'JSON', + data: { + sai_mod: '.SAI.saimod_person', + action: 'person_project_delete', + data: { + person: person, + projects: projects + } + }, + success: function(data){ + if(data.status){ + system.reload(); + } else { + alert('Something happend - try again!'); + } + }, + error: function(){ + alert('Something happend - try again!'); + } + }); + } + }); + // Back Button $('.btn-person-back').click(function(){ system.back(); diff --git a/wecker_manufaktur/sai/saimod_person/saimod_person.php b/wecker_manufaktur/sai/saimod_person/saimod_person.php index b7f7e8c..e3ab371 100644 --- a/wecker_manufaktur/sai/saimod_person/saimod_person.php +++ b/wecker_manufaktur/sai/saimod_person/saimod_person.php @@ -118,9 +118,39 @@ class saimod_person extends \SYSTEM\SAI\sai_module{ $vars['abilities'] .= \SYSTEM\PAGE\replace::replaceFile((new \SAI\PPERSON('tpl/saimod_person_badge_tr.tpl'))->SERVERPATH(),$row); } + // Projects + $vars['projects'] = ''; + $projects = \SQL\SELECT_PERSON_PROJECTS_PERSON::QQ(array($person)); + while($row = $projects->next()){ + $row['visible'] = $row['visible'] == 1 ? 'visible' : 'invisible'; + $vars['projects'] .= \SYSTEM\PAGE\replace::replaceFile((new \SAI\PPERSON('tpl/saimod_person_project_tr.tpl'))->SERVERPATH(),$row); + } + $vars['select_projects'] = ''; + $select_projects = \SQL\SELECT_PERSON_PROJECTS_MISSING::QQ(array($person)); + while($row = $select_projects->next()){ + $row['selected'] = ''; + $row['value'] = $row['id']; + $row['text'] = $row['name'].' - '.$row['website']; + $vars['select_projects'] .= \SYSTEM\PAGE\replace::replaceFile((new \SAI\PPERSON('tpl/select_option.tpl'))->SERVERPATH(),$row); + } + return \SYSTEM\PAGE\replace::replaceFile((new \SAI\PPERSON('tpl/saimod_person_details.tpl'))->SERVERPATH(),$vars); } + public static function sai_mod__SAI_saimod_person_action_person_project_new($data){ + return \SYSTEM\LOG\JsonResult::status( + \SQL\INSERT_PERSON_PROJECT::QI(array( $data['person'], + $data['project'])) + ); + } + + public static function sai_mod__SAI_saimod_person_action_person_project_delete($data){ + foreach($data['projects'] as $id){ + \SQL\DELETE_PERSON_PROJECT::QI(array($data['person'],$id)); + } + return \JsonResult::ok(); + } + public static function sai_mod__SAI_saimod_person_action_person_update($data){ return \SYSTEM\LOG\JsonResult::status( \SQL\UPDATE_PERSON::QI(array( $data['img'], diff --git a/wecker_manufaktur/sai/saimod_person/sql/DELETE_PERSON_PROJECT.php b/wecker_manufaktur/sai/saimod_person/sql/DELETE_PERSON_PROJECT.php new file mode 100644 index 0000000..a8d3734 --- /dev/null +++ b/wecker_manufaktur/sai/saimod_person/sql/DELETE_PERSON_PROJECT.php @@ -0,0 +1,33 @@ +${value} \ No newline at end of file diff --git a/wecker_manufaktur/sai/saimod_person/tpl/saimod_person_details.tpl b/wecker_manufaktur/sai/saimod_person/tpl/saimod_person_details.tpl index 3353f68..64f5514 100644 --- a/wecker_manufaktur/sai/saimod_person/tpl/saimod_person_details.tpl +++ b/wecker_manufaktur/sai/saimod_person/tpl/saimod_person_details.tpl @@ -79,6 +79,40 @@ + + Projects + + + + + + + + + + + + + + + + ${projects} + + + + + +
ImageNameWebsiteOrderVisible + +
+ + + +
+ + diff --git a/wecker_manufaktur/sai/saimod_person/tpl/saimod_person_project_tr.tpl b/wecker_manufaktur/sai/saimod_person/tpl/saimod_person_project_tr.tpl new file mode 100644 index 0000000..b462c47 --- /dev/null +++ b/wecker_manufaktur/sai/saimod_person/tpl/saimod_person_project_tr.tpl @@ -0,0 +1,10 @@ + + Img not found + ${name} + ${website} + ${order} + ${visible} + + + + \ No newline at end of file diff --git a/wecker_manufaktur/sai/saimod_person/tpl/select_option.tpl b/wecker_manufaktur/sai/saimod_person/tpl/select_option.tpl new file mode 100644 index 0000000..85db3d4 --- /dev/null +++ b/wecker_manufaktur/sai/saimod_person/tpl/select_option.tpl @@ -0,0 +1 @@ + \ No newline at end of file