Git Product home page Git Product logo

huhwt-xtv's Introduction

ℍ&ℍwt - HuH Extensions for webtrees - Treeview-Extended

==========================================================

Latest Release webtrees major version Downloads

Extensions for web trees to check and display the contents in the database.

This is a webtrees 2.1 module - It cannot be used with webtrees 1.x.

Introduction


The 'Interactive Treeview' in webtrees is a great tool to visualize the existing relationships in a compact way at a glance.

When using it, however, it is sometimes irritating that you don't really know whether the tree is now complete and it would be nice to have an overview of which and how many people are actually in the representation.

This is where the expansion comes in:

The initial state is defined via form control fields. If the view is open, it can be extensively analyzed and its status can be changed reversibly. You get information about the number of people shown at any time and you can navigate to a desired person in the view. The additional functions can be triggered via control fields in the view.

Description of the functions


Form controls:

  • You can specify the number of generations shown from the start
    • '-' N '+' - option in the form's header - Min: 2, Max: 25 - Default: 4
  • (The more generations given, the longer the primary dissolution takes.)
  • You can control whether the patri- or matri-linear approach is used for the parent resolution
    • Patri-linear -> father's side takes precedence / Matri-linear -> mother's side takes precedence
    • (If there is no hit on the priority line, the other line is called automatically)
  • Checkbox 'Paternal side takes precedence' in header - Default: Paternal (webtrees-Standard)
  • In the person boxes, the generation rank in relation to the starting person is displayed
    • (Decedants < 0, Ancestors > 0)

View controls:

  • Compact layout, click toggles layout mode

    • By default, the family boxes have a fixed width. The more generations are contained in the view, the broader it becomes and it can no longer be displayed in its entirety.
    • In the compact layout, the width of the family boxes is dynamically adjusted so that all generations are visible without horizontal scrolling.
  • Submenu 'Expand Next Links' - automatically opened, click closes/opens

    • You can specifically expand by 1 level.
      • button 'Expand next links' - option '1 level'
      • You can specifically expand the view completely.
      • button 'Expand next links' - option 'All'
    • The extension actions automatically open the statistics view.
  • You can display the number of people displayed and the links that are currently still open

    • 'Current state' button - click opens, next click closes
      • Number of names in the view Number of links still open in the view Span of generations in the view View dimensions - width/height in pixels
  • You can display a list of the names of the people shown.

    • 'Show list of names' button - click opens, next click closes
      • Clicking on an entry in the list of names marks the associated person box and scrolls it into the visible area as the case may be
      • The list of names can be moved freely in the viewport
      • The content of the list of names can be downloaded as a txt file
  • You can have the state of the view exported as PNG.

    • It will translate the current view into a PNG. Caution: Depending on the browser, the image be incomplete or certain elements are missing (this depends on the size and width of the Viewports, from a height of 16,384 pixels it becomes critical.)

On/off fold buttons are displayed for the family boxes.

  • You can completely hide or show the respective sub-tree
    • The last connections that have not yet been queried are each 1 level further by Ajax call queried. Existing partial trees become complete depending on their status set visible/invisible.
    • (Not yet known subtree extensions are highlighted in red, known and collapsed ones are colored greenish when hovering)

The view is scrollable.

The view knows 3 states:

  1. Normal view
    • The webtrees header with all menus and selection options as well as the form control fields of the module are visible, the view itself is only a few 100px high.
  2. Expanded state
    • The view covers the whole Webtrees screen. The browser header with tabs, address bar and bookmarks bar is still visible.
  3. Fullscreen mode
    • The view covers the entire screen including the browser header.
  • The view opens in the expanded state.

The expanded state was taken from another Webtrees extension. The owner of this extension has suspended this module due to the integration of fullscreen mode. However, the expanded state is more meaningful than the normal view, it has also been shown that the combination of the expanded view and the full-screen option helps to avoid the problem of truncated PNG content. You can switch between the states using buttons in the view.

The view is technically implemented as a construct of nested table elements. This method is robust and fast, but has one disadvantage: there is no zoom option.

Dependencies

  • None

Caveat

  • It was developed on Firefox and tested on Chrome. For other browsers the expected functions may not be available.
  • Development and testing took place with the 'minimal' and 'webtrees' theme. There may be restrictions on other theme.
  • The largest possible screen is required - FullHD or even better 1900x1200 ...
  • Mobile phones and tablets have not been taken into account so far, it is a desktop module with mouse operation. Other environments support certain features only to a limited extent, possibly not at all. The resulting complexity is not yet in focus or out of my reach, support here would be very welcome!

Thanks

  • The html2canvas library is used to implement exporting the viewport to PNG .

  • ( https://html2canvas.hertzen.com/ | Apache License, Version 2.0 )

  • The library is automatically copied with the HuHwt installation.

  • Special thanks to Hermann Harthentaler for test, suggestion and criticism. -> https://github.com/hartenthaler

  • Translation into Dutch - thanks to TheDutchJewel.

Installation and upgrading


... in the usual way: download the zip file, extract it to the modules_v4 directory, and that's it. You should completely remove the existing version beforehand.

Development

[TODO]

.. it would be nice if you could navigate in the viewport using a mini-map. .. Increase font size for PNG export.

Bugs and feature requests

If you experience any bugs or have a feature request for this theme you can create a new issue.

huhwt-xtv's People

Contributors

huhwt avatar arbor95 avatar thedutchjewel avatar

Stargazers

Oliver Surke avatar JPS avatar  avatar  avatar  avatar Sir Peter avatar

Watchers

jan gloeckner avatar  avatar

Forkers

baskar-yahoo

huhwt-xtv's Issues

Diagramme aufrufen alternative Möglichkeit

Ich nutze auch eine sogenannte alternative Möglichkeit Diagramme aufzurufen.

Da gibt es bisher 4 Möglichkeiten zur Auswahl, wovon eine das "Interaktive Sanduhr Diagramm" ist.

Da wird allerdings der Standard, mit Ganzseiten Erweterung, aufgerufen.

Könntest du das so machen, das da, falls installiert, deine Erweiterung verwendet wird?
Screenshot_20210710-180145_Chrome
Screenshot_20210710-180954_Chrome

version 2.1.1.0: error: undefined method ageAtEvent()

Call to undefined method Fisharebest\Webtrees\Age::ageAtEvent() …/modules_v4/huhwt-xtv/Traits/ModuleChartTrait.php:78
#0 …/modules_v4/huhwt-xtv/InteractiveTreeXT.php(297): HuHwt\WebtreesMods\InteractiveTreeXT\InteractiveTreeXT->chartSubTitle()
#1 …/app/Http/RequestHandlers/ModuleAction.php(85): HuHwt\WebtreesMods\InteractiveTreeXT\InteractiveTreeXT->getChartAction()

Cannot access private constant HuHwt\WebtreesMods\InteractiveTreeXT\Configuration::DEFAULT_GENERATIONS

Cannot access private constant HuHwt\WebtreesMods\InteractiveTreeXT\Configuration::DEFAULT_GENERATIONS …/modules_v4/huhwt-xtv/InteractiveTreeXT.php:294
#0 …/modules_v4/huhwt-xtv/Traits/ModuleTabTrait.php(141): HuHwt\WebtreesMods\InteractiveTreeXT\InteractiveTreeXT->getTabContent()
#1 …/app/Http/RequestHandlers/ModuleAction.php(85): HuHwt\WebtreesMods\InteractiveTreeXT\InteractiveTreeXT->getTabAction()
#2 …/app/Http/Middleware/RequestHandler.php(55): Fisharebest\Webtrees\Http\RequestHandlers\ModuleAction->handle()
#3 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\RequestHandler->process()
#4 …/modules_v4/vesta_research_suggestions/ResearchSuggestionsModule.php(277): Middleland\Dispatcher->handle()
#5 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): 

modified language handling results in no translation

After the update to v1.0.7 (with modified language handling) the translation no longer works: all text is in English only.

The problem can be fixed by changing this line in the InteractiveTreeXT.php file:

$languageFile = $this->resourcesFolder() . 'lang/' . $_language . '.po';

into:

$languageFile = $this->resourcesFolder() . 'lang/' . $language . '/messages.po';

Existing module "Interactive Tree" is disturbed

When this module is activated then the existing module "Interactive Tree" (in the tab on individual page as well in diagrams) is disturbed by showing a scroll bar that was there never before.

Mosule is crasing when run in personal tab

Chart is working when i run report from menu Chart->Interactive tree XT H&Hwt
When i run report from view tab i see error
obraz

Cannot access private constant HuHwt\WebtreesMods\InteractiveTreeXT\Configuration::DEFAULT_GENERATIONS …/modules_v4/huhwt-xtv/InteractiveTreeXT.php:294
#0 …/modules_v4/huhwt-xtv/Traits/ModuleTabTrait.php(141): HuHwt\WebtreesMods\InteractiveTreeXT\InteractiveTreeXT->getTabContent()
#1 …/app/Http/RequestHandlers/ModuleAction.php(85): HuHwt\WebtreesMods\InteractiveTreeXT\InteractiveTreeXT->getTabAction()
#2 …/app/Http/Middleware/RequestHandler.php(55): Fisharebest\Webtrees\Http\RequestHandlers\ModuleAction->handle()
#3 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\RequestHandler->process()
#4 …/modules_v4/vesta_research_suggestions/ResearchSuggestionsModule.php(277): Middleland\Dispatcher->handle()
#5 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Cissee\Webtrees\Module\ResearchSuggestions\ResearchSuggestionsModule->process()
#6 …/app/Module/HitCountFooterModule.php(154): Middleland\Dispatcher->handle()
#7 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Module\HitCountFooterModule->process()
#8 …/app/Module/CheckForNewVersion.php(122): Middleland\Dispatcher->handle()
#9 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Module\CheckForNewVersion->process()
#10 …/app/Http/Middleware/CheckCsrf.php(80): Middleland\Dispatcher->handle()
#11 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\CheckCsrf->process()
#12 …/vendor/oscarotero/middleland/src/Dispatcher.php(118): Middleland\Dispatcher->handle()
#13 …/app/Webtrees.php(275): Middleland\Dispatcher->dispatch()
#14 …/app/Http/Middleware/Router.php(163): Fisharebest\Webtrees\Webtrees::dispatch()
#15 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\Router->process()
#16 …/app/Http/Middleware/BootModules.php(60): Middleland\Dispatcher->handle()
#17 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\BootModules->process()
#18 …/app/Http/Middleware/RegisterGedcomTags.php(54): Middleland\Dispatcher->handle()
#19 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\RegisterGedcomTags->process()
#20 …/app/Http/Middleware/LoadRoutes.php(75): Middleland\Dispatcher->handle()
#21 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\LoadRoutes->process()
#22 …/app/Http/Middleware/CheckForNewVersion.php(57): Middleland\Dispatcher->handle()
#23 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\CheckForNewVersion->process()
#24 …/app/Http/Middleware/UseTransaction.php(45): Middleland\Dispatcher->handle()
#25 …/vendor/illuminate/database/Concerns/ManagesTransactions.php(29): Fisharebest\Webtrees\Http\Middleware\UseTransaction::Fisharebest\Webtrees\Http\Middleware{closure}()
#26 …/app/Http/Middleware/UseTransaction.php(44): Illuminate\Database\Connection->transaction()
#27 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\UseTransaction->process()
#28 …/app/Http/Middleware/DoHousekeeping.php(73): Middleland\Dispatcher->handle()
#29 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\DoHousekeeping->process()
#30 …/app/Http/Middleware/UseTheme.php(69): Middleland\Dispatcher->handle()
#31 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\UseTheme->process()
#32 …/app/Http/Middleware/CheckForMaintenanceMode.php(51): Middleland\Dispatcher->handle()
#33 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\CheckForMaintenanceMode->process()
#34 …/app/Http/Middleware/UseLanguage.php(71): Middleland\Dispatcher->handle()
#35 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\UseLanguage->process()
#36 …/app/Http/Middleware/UseSession.php(78): Middleland\Dispatcher->handle()
#37 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\UseSession->process()
#38 …/app/Http/Middleware/UpdateDatabaseSchema.php(57): Middleland\Dispatcher->handle()
#39 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\UpdateDatabaseSchema->process()
#40 …/app/Http/Middleware/UseDatabase.php(122): Middleland\Dispatcher->handle()
#41 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\UseDatabase->process()
#42 …/app/Http/Middleware/BadBotBlocker.php(287): Middleland\Dispatcher->handle()
#43 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\BadBotBlocker->process()
#44 …/app/Http/Middleware/CompressResponse.php(73): Middleland\Dispatcher->handle()
#45 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\CompressResponse->process()
#46 …/app/Http/Middleware/ContentLength.php(40): Middleland\Dispatcher->handle()
#47 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\ContentLength->process()
#48 …/vendor/middlewares/client-ip/src/ClientIp.php(65): Middleland\Dispatcher->handle()
#49 …/app/Http/Middleware/ClientIp.php(47): Middlewares\ClientIp->process()
#50 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\ClientIp->process()
#51 …/app/Http/Middleware/HandleExceptions.php(90): Middleland\Dispatcher->handle()
#52 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\HandleExceptions->process()
#53 …/app/Http/Middleware/BaseUrl.php(73): Middleland\Dispatcher->handle()
#54 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\BaseUrl->process()
#55 …/app/Http/Middleware/ReadConfigIni.php(68): Middleland\Dispatcher->handle()
#56 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\ReadConfigIni->process()
#57 …/app/Http/Middleware/SecurityHeaders.php(48): Middleland\Dispatcher->handle()
#58 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\SecurityHeaders->process()
#59 …/app/Http/Middleware/EmitResponse.php(57): Middleland\Dispatcher->handle()
#60 …/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\EmitResponse->process()
#61 …/vendor/oscarotero/middleland/src/Dispatcher.php(118): Middleland\Dispatcher->handle()
#62 …/app/Webtrees.php(275): Middleland\Dispatcher->dispatch()
#63 …/app/Webtrees.php(262): Fisharebest\Webtrees\Webtrees::dispatch()
#64 …/index.php(51): Fisharebest\Webtrees\Webtrees->httpRequest()
#65 {main}

ModuleChartTrait' not found

On Webtrees 2.0.17, using

  • tree_view_full_screen
    an installing
  • huhwt-xtv

I got following error
Fatal error: Trait 'HuHwt\WebtreesMods\InteractiveTreeXT\Traits\ModuleChartTrait' not found in /htdocs/webtrees/modules_v4/huhwt-xtv/InteractiveTreeXT.php on line 53

Thanks for help

Chris

not compatible with wt 2.1

seems to be not compatible with wt 2.1:
first error: Call to undefined method Fisharebest\Webtrees\Age::ageAtEvent() …/modules_v4/huhwt-xtv/Traits/ModuleChartTrait.php:82

moving view

I would like to have the view fixed. How can I achive this. May be so, that the scrollbars are always at bottom and right of the view and not movable.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.