From cfd31f7c9ae761b71e60214b8b2edcf31a698f44 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Mon, 26 Aug 2019 16:59:48 +0200 Subject: [PATCH] grey out inactive persons/projects, refactor js to be more compact/reusable --- .../page/default_page/css/default_page.scss | 8 ++ .../page/default_page/default_page.php | 4 +- .../page/default_page/js/default_page.js | 93 ++++++++++++------- .../page/default_page/tpl/person_img.tpl | 4 +- .../page/default_page/tpl/project_img.tpl | 4 +- 5 files changed, 72 insertions(+), 41 deletions(-) diff --git a/wecker_manufaktur/page/default_page/css/default_page.scss b/wecker_manufaktur/page/default_page/css/default_page.scss index 19f57dd..2a45e8f 100644 --- a/wecker_manufaktur/page/default_page/css/default_page.scss +++ b/wecker_manufaktur/page/default_page/css/default_page.scss @@ -80,6 +80,10 @@ body { #persons{ padding-top: $padding_heading_top; padding-bottom: $padding_heading_bottom; + + .person.disabled{ + filter: grayscale(100%); + } } #projects{ @@ -87,6 +91,10 @@ body { padding-top: $padding_heading_top; padding-bottom: $padding_heading_bottom; } + + .project.disabled{ + filter: grayscale(100%); + } } #apply{ diff --git a/wecker_manufaktur/page/default_page/default_page.php b/wecker_manufaktur/page/default_page/default_page.php index 91abcbf..5dd75e4 100644 --- a/wecker_manufaktur/page/default_page/default_page.php +++ b/wecker_manufaktur/page/default_page/default_page.php @@ -41,9 +41,9 @@ class default_page implements \SYSTEM\PAGE\DefaultPage { $project['link'] = $project['visible'] != 1 ? $project['website'] : '#project-'.$project['project']; $project['target'] = $project['visible'] != 1 ? '_blank' : ''; $row['projects'] .= \SYSTEM\PAGE\replace::replaceFile((new PPAGE('default_page/tpl/person_project.tpl'))->SERVERPATH(),$project); - $row['projects'] .= ', '; + $row['projects'] .= ' | '; } - $row['projects'] = substr($row['projects'],0,-2); + $row['projects'] = substr($row['projects'],0,-3); $_content_imgs .= \SYSTEM\PAGE\replace::replaceFile((new PPAGE('default_page/tpl/person_img.tpl'))->SERVERPATH(),$row); $_content_details .= \SYSTEM\PAGE\replace::replaceFile((new PPAGE('default_page/tpl/person_details.tpl'))->SERVERPATH(),$row); diff --git a/wecker_manufaktur/page/default_page/js/default_page.js b/wecker_manufaktur/page/default_page/js/default_page.js index f16b065..c5438da 100644 --- a/wecker_manufaktur/page/default_page/js/default_page.js +++ b/wecker_manufaktur/page/default_page/js/default_page.js @@ -1,41 +1,64 @@ $(document).ready(function() { //new SYSTEM('./api.php',1,'start'); - $('.person-link').click(function(e){ - e.preventDefault(); - $person = $(this).attr('person'); - $isHidden = $('#person-details-'+$person).hasClass('d-none'); - $('.person-details').addClass('d-none'); - if($isHidden){ - $('#person-details-'+$person).removeClass('d-none'); - } - }) + $('.person-link').click(function(e){showPerson(e,$(this).attr('person'),false,true)}) - $('.person-project-link').click(function(e){ - $project = $(this).attr('project'); - $isHidden = $('#project-details-'+$project).hasClass('d-none'); - $('.project-details').addClass('d-none'); - if($isHidden){ - $('#project-details-'+$project).removeClass('d-none'); - } - }) + $('.person-project-link').click(function(e){showProject(e,$(this).attr('project'),true,false)}) - $('.project-link').click(function(e){ - e.preventDefault(); - $project = $(this).attr('project'); - $isHidden = $('#project-details-'+$project).hasClass('d-none'); - $('.project-details').addClass('d-none'); - if($isHidden){ - $('#project-details-'+$project).removeClass('d-none'); - } - }) + $('.project-link').click(function(e){showProject(e,$(this).attr('project'),false,true)}) - $('.project-person-link').click(function(e){ - $person = $(this).attr('person'); - $isHidden = $('#person-details-'+$person).hasClass('d-none'); - $('.person-details').addClass('d-none'); - if($isHidden){ - $('#person-details-'+$person).removeClass('d-none'); - } - }) -}); \ No newline at end of file + $('.project-person-link').click(function(e){showPerson(e,$(this).attr('person'),true,false)}) +}); + +function showPerson(event,subject_id,jump,toggle){ + // Jump to anchor + if(!jump){ + event.preventDefault(); + } + + // Is the element already shown? + isHidden = $('#person-details-'+subject_id).hasClass('d-none'); + + // Grey out all + if(isHidden){ + $('.person').addClass('disabled'); + $('#person-'+subject_id).removeClass('disabled'); + } else { + $('.person').removeClass('disabled'); + } + // Hide all details + $('.person-details').addClass('d-none'); + + // Toggle or ensure visibility of specific detail + console.log(toggle, isHidden) + if(!toggle || isHidden){ + $('#person-details-'+subject_id).removeClass('d-none'); + } +} + +function showProject(event,subject_id,jump,toggle){ + // Jump to anchor + if(!jump){ + event.preventDefault(); + } + + // Is the element already shown? + isHidden = $('#project-details-'+subject_id).hasClass('d-none'); + + // Grey out all others + if(isHidden){ + $('.project').addClass('disabled'); + $('#project-'+subject_id).removeClass('disabled'); + } else { + $('.project').removeClass('disabled'); + } + + // Hide all details + $('.project-details').addClass('d-none'); + + // Toggle or ensure visibility of specific detail + console.log(toggle, isHidden) + if(!toggle || isHidden){ + $('#project-details-'+subject_id).removeClass('d-none'); + } +} \ No newline at end of file diff --git a/wecker_manufaktur/page/default_page/tpl/person_img.tpl b/wecker_manufaktur/page/default_page/tpl/person_img.tpl index 184acb9..58a40f1 100644 --- a/wecker_manufaktur/page/default_page/tpl/person_img.tpl +++ b/wecker_manufaktur/page/default_page/tpl/person_img.tpl @@ -1,5 +1,5 @@ -
- +