link persons and projects (UI)
This commit is contained in:
parent
559a114e05
commit
8a7bd1dbac
@ -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();
|
||||
|
||||
@ -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'],
|
||||
|
||||
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
/**
|
||||
* System - PHP Framework
|
||||
*
|
||||
* PHP Version 5.6
|
||||
*
|
||||
* @copyright 2016 Ulf Gebhardt (http://www.webcraft-media.de)
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT
|
||||
* @link https://github.com/webcraftmedia/system
|
||||
* @package SYSTEM\SQL
|
||||
*/
|
||||
namespace SQL;
|
||||
|
||||
/**
|
||||
* QQ to get System Api Tree by group
|
||||
*/
|
||||
class DELETE_PERSON_PROJECT extends \SYSTEM\DB\QP {
|
||||
/**
|
||||
* Get Classname of the QQ
|
||||
*
|
||||
* @return string Returns classname
|
||||
*/
|
||||
public static function get_class(){return \get_class();}
|
||||
|
||||
/**
|
||||
* Get QQs MYSQL Query String
|
||||
*
|
||||
* @return string Returns MYSQL Query String
|
||||
*/
|
||||
public static function mysql(){return
|
||||
'DELETE FROM `person_projects` WHERE `person` = ? AND `project` = ?;';
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
/**
|
||||
* System - PHP Framework
|
||||
*
|
||||
* PHP Version 5.6
|
||||
*
|
||||
* @copyright 2016 Ulf Gebhardt (http://www.webcraft-media.de)
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT
|
||||
* @link https://github.com/webcraftmedia/system
|
||||
* @package SYSTEM\SQL
|
||||
*/
|
||||
namespace SQL;
|
||||
|
||||
/**
|
||||
* QQ to get System Api Tree by group
|
||||
*/
|
||||
class INSERT_PERSON_PROJECT extends \SYSTEM\DB\QP {
|
||||
/**
|
||||
* Get Classname of the QQ
|
||||
*
|
||||
* @return string Returns classname
|
||||
*/
|
||||
public static function get_class(){return \get_class();}
|
||||
|
||||
/**
|
||||
* Get QQs MYSQL Query String
|
||||
*
|
||||
* @return string Returns MYSQL Query String
|
||||
*/
|
||||
public static function mysql(){return
|
||||
'INSERT INTO `person_projects` (`person`, `project`)'.
|
||||
' VALUES(?, ?);';
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
/**
|
||||
* System - PHP Framework
|
||||
*
|
||||
* PHP Version 5.6
|
||||
*
|
||||
* @copyright 2016 Ulf Gebhardt (http://www.webcraft-media.de)
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT
|
||||
* @link https://github.com/webcraftmedia/system
|
||||
* @package SYSTEM\SQL
|
||||
*/
|
||||
namespace SQL;
|
||||
|
||||
/**
|
||||
* QQ to get System Api Tree by group
|
||||
*/
|
||||
class SELECT_PERSON_PROJECTS_MISSING extends \SYSTEM\DB\QP {
|
||||
/**
|
||||
* Get Classname of the QQ
|
||||
*
|
||||
* @return string Returns classname
|
||||
*/
|
||||
public static function get_class(){return \get_class();}
|
||||
|
||||
/**
|
||||
* Get QQs MYSQL Query String
|
||||
*
|
||||
* @return string Returns MYSQL Query String
|
||||
*/
|
||||
public static function mysql(){return
|
||||
'SELECT *'.
|
||||
' FROM `projects`'.
|
||||
' WHERE `id` NOT IN (SELECT `project` FROM `person_projects`WHERE `person` = ?)'.
|
||||
' ORDER BY `order`;';
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/**
|
||||
* System - PHP Framework
|
||||
*
|
||||
* PHP Version 5.6
|
||||
*
|
||||
* @copyright 2016 Ulf Gebhardt (http://www.webcraft-media.de)
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT
|
||||
* @link https://github.com/webcraftmedia/system
|
||||
* @package SYSTEM\SQL
|
||||
*/
|
||||
namespace SQL;
|
||||
|
||||
/**
|
||||
* QQ to get System Api Tree by group
|
||||
*/
|
||||
class SELECT_PERSON_PROJECTS_PERSON extends \SYSTEM\DB\QP {
|
||||
/**
|
||||
* Get Classname of the QQ
|
||||
*
|
||||
* @return string Returns classname
|
||||
*/
|
||||
public static function get_class(){return \get_class();}
|
||||
|
||||
/**
|
||||
* Get QQs MYSQL Query String
|
||||
*
|
||||
* @return string Returns MYSQL Query String
|
||||
*/
|
||||
public static function mysql(){return
|
||||
'SELECT *'.
|
||||
' FROM `person_projects`'.
|
||||
' LEFT JOIN `projects` ON `person_projects`.`project` = `projects`.`id`'.
|
||||
' WHERE `person_projects`.`person` = ?'.
|
||||
' ORDER BY `order`;';
|
||||
}
|
||||
}
|
||||
@ -15,3 +15,5 @@ REPLACE INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `na
|
||||
REPLACE INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (10045, 42, 2, 10000, 'badge_delete', 'data', 'JSON');
|
||||
|
||||
REPLACE INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (10050, 42, 2, 10000, 'person_save', 'data', 'JSON');
|
||||
REPLACE INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (10051, 42, 2, 10000, 'person_project_new', 'data', 'JSON');
|
||||
REPLACE INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (10052, 42, 2, 10000, 'person_project_delete', 'data', 'JSON');
|
||||
|
||||
@ -1 +0,0 @@
|
||||
<option value="${value}" ${selected}>${value}</option>
|
||||
@ -79,6 +79,40 @@
|
||||
</table>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="2">Projects</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="2">
|
||||
<table class="table table-striped table-condensed tablesorter sai_margin_off" id="table-person-projects">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Image</th>
|
||||
<th>Name</th>
|
||||
<th>Website</th>
|
||||
<th>Order</th>
|
||||
<th>Visible</th>
|
||||
<th>
|
||||
<button type="button" id="btn-projects-del" class="btn btn-sm btn-danger pull-right" person="${id}"><i class="fa fa-trash"></i></button>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
${projects}
|
||||
<tr>
|
||||
<td colspan="5">
|
||||
<select id="input-project" class="form-control">
|
||||
${select_projects}
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<button type="button" id="btn-person-project-new" class="btn btn-sm btn-success pull-right" person="${id}"><i class="fa fa-plus"></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="2">
|
||||
<button class="btn btn-sm btn-default btn-person-back" ><i class="fa fa-angle-left"></i> Back</button>
|
||||
|
||||
@ -0,0 +1,10 @@
|
||||
<tr>
|
||||
<td><a href="#!project(details);project.${id}"><img src="./files/projects/${img}" alt="Img not found" style="width: 75px; height: 75px"/></a></td>
|
||||
<td><a href="#!project(details);project.${id}">${name}</a></td>
|
||||
<td><a href="${website}" target="_blank">${website}</a></td>
|
||||
<td>${order}</td>
|
||||
<td>${visible}</td>
|
||||
<td>
|
||||
<input type="checkbox" class="pull-right project-check" project="${id}"/>
|
||||
</td>
|
||||
</tr>
|
||||
@ -0,0 +1 @@
|
||||
<option value="${value}" ${selected}>${text}</option>
|
||||
Loading…
x
Reference in New Issue
Block a user