archi-contribs / jarchi-single-page-html-export

Generate a single-page HTML export from Archi
23 stars 6 forks source link

Allow deeplinks to easily bookmark one specific view #7

Open jbsarrodie opened 4 years ago

jbsarrodie commented 4 years ago

Note: that's (finally not so) easy to do but the link should not show when loaded in an iFrame or else Sharepoint/Onedrive preview will show a blank page if navigated. ~This last part can be done simply through a preference (now that we have them)~

jbsarrodie commented 4 years ago

There's a first implementation in the deeplink branch. The enable this model, simply open the generated report with #model appended to the URL.

Phillipus commented 4 years ago

Can you explain (at least to me) what this means? ;-)

jbsarrodie commented 4 years ago

Can you explain (at least to me) what this means? ;-)

Look at this sample: https://wonderful-lichterman-a2c560.netlify.com/#model

Navigate a bit and look at the URL in your browser: it gets updated each time you change a view, which allows you to bookmark a specific view (instead of having to navigate each time).

Phillipus commented 4 years ago

Got it, thanks.

Looking rather good. :-)

jbsarrodie commented 4 years ago

Looking rather good. :-)

Yes, but CSS starts to be, er, tricky ;-) I don't know if I'll keep it like than or simply fork. Maybe that's something that should go in a full feature web version (ie. not single page one)

jbsarrodie commented 4 years ago

I don't know if I'll keep it like than or simply fork. Maybe that's something that should go in a full feature web version (ie. not single page one)

I've thought about another (easier) approach...

My key issue is that I want a report which can be opened through OneDrive/Sharepoint preview. In this contexte, JS is not executed, and trying to navigate a link will end up with a blank page instead of the preview. So I don't want to "enable" deeplinks when opened in OneDrive or Sharepoint.

So the trick is to have a (global) checkbox (set to off by default) to make "enhanced" features visible. Then, simply use the onLoad() event on the page with a small JS code to switch this checkbox on.

This is quite easy to implement, and provide an easy way to hide (through CSS) things in (let's call it) "Sharepoint mode". So when run outside of the "Sharepoint mode", advanced features relaying on JS can be used. One of these first features can be to look at the fragment in the URL and if there's some, find the matching checkbox and set it on, thus leading to showing the associated view.

Onther feature which could easily be implemented is to integrated AlaSql and allow a reporting mode (opening the page with some specific options in the URL containing the SQL query). But that's for another issue ;-)

davidsara commented 4 years ago

Can you explain (at least to me) what this means? ;-)

Look at this sample: https://wonderful-lichterman-a2c560.netlify.com/#model

Navigate a bit and look at the URL in your browser: it gets updated each time you change a view, which allows you to bookmark a specific view (instead of having to navigate each time).

Hello, is it possible to get source .archimate file for this sample? Thanks!

jbsarrodie commented 4 years ago

Hello, is it possible to get source .archimate file for this sample?

I'll have to update it a bit before, but it should be possible in the near future (it was the basis of the talk I gave at The Open Group Amsterdam event last november).