Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Nov 30 20:02
    FrankHossfeld commented #611
  • Nov 30 18:22
    FrankHossfeld commented #611
  • Nov 30 18:21
    vegegoku commented #611
  • Nov 30 18:20
    FrankHossfeld commented #611
  • Nov 30 18:19
    vegegoku commented #611
  • Nov 30 18:16
    FrankHossfeld edited #611
  • Nov 30 18:14
    FrankHossfeld opened #611
  • Nov 30 18:13
    vegegoku milestoned #610
  • Nov 30 18:13
    vegegoku labeled #610
  • Nov 30 18:13
    vegegoku assigned #610
  • Nov 30 18:10
    FrankHossfeld opened #610
  • Nov 26 02:58
    josepowera starred DominoKit/domino-ui
  • Nov 25 16:42
    salashnik opened #609
  • Nov 25 06:50
    vegegoku milestoned #608
  • Nov 25 06:50
    vegegoku labeled #608
  • Nov 25 06:50
    vegegoku assigned #608
  • Nov 25 06:50
    vegegoku review_requested #608
  • Nov 24 11:05
    morettoni starred DominoKit/domino-ui
  • Nov 24 09:19
    salashnik opened #608
  • Nov 21 14:55
    lababidy starred DominoKit/domino-cli
Ahmad K. Bawaneh
@vegegoku
<!-- https://mvnrepository.com/artifact/com.github.tdesjardins/gwt-ol3 -->
<dependency>
    <groupId>com.github.tdesjardins</groupId>
    <artifactId>gwt-ol3</artifactId>
    <version>8.1.0-gwt2_9</version>
</dependency>
Ahmad K. Bawaneh
@vegegoku
@howudodat If you are welling to gve this a test I have fixed the depndencies and added github actions to the repository, a HEAD-SNAPSHOT is in its way ... and if you test this and it works for you we can do a release
Tino Desjardins
@TDesjardins
<!-- https://mvnrepository.com/artifact/com.github.tdesjardins/gwt-ol3 -->
<dependency>
    <groupId>com.github.tdesjardins</groupId>
    <artifactId>gwt-ol3</artifactId>
    <version>8.1.0-gwt2_9</version>
</dependency>
Yes, the last three releases of gwt-ol have a separate releases for GWT 2.9-support (version with suffix 'gwt2_9'). Actually I updated the demos and plugins when releasing but used the GWT-2.8 version I think. I think all should work fine when using the version '8.1.0-gwt2_9'. Let me know if it shouldn't work or if I can help on this!
Ahmad K. Bawaneh
@vegegoku
@TDesjardins I have updated the project, added github actions to release it but since I am runing maven enforcer plugin ..there was a dependency mix that I tried to solve, can you please give it a quick check.
Pavlo Iatsiuk
@bykka
Hi, could someone point me to the examples/documentation on how to guard some pages with login access in domino-mvp ?
Ahmad K. Bawaneh
@vegegoku
I can help and share how we do it, intellij is indexing and not lettin navigate classes
there is 2 ways to do it depends on how you need to handle things and what is your security implementation
first you can use a @RevealCondition in your presenters, in the condition you decide if the view should be revealed based on user authentication status
the other way to do it is to wrap the Token filter in a custom token filter that does the check for authentication/authorization
we use the second method

public abstract class AuthorizationProxy<V extends View> extends LoadableProxy<V> {

    @RoutingTokenFilter
    public static TokenFilter onRoutingToken(String token) {
        return AuthorizationTokenFilter.make(TokenFilter.endsWithPathFilter(token));
    }

    @StartupTokenFilter
    public static TokenFilter onStartupToken(String token) {
        return AuthorizationTokenFilter.make(TokenFilter.endsWithPathFilter(token));
    }
}
Ahmad K. Bawaneh
@vegegoku
we do this in an abstract proxy and let all proxies that need authorization extend from it
public class AuthorizationTokenFilter implements TokenFilter {

    private static final Logger LOGGER = LoggerFactory.getLogger(AuthorizationTokenFilter.class);

    private final TokenFilter tokenFilter;
    private StateHistoryToken historyToken;

    private AuthorizationTokenFilter(TokenFilter tokenFilter) {
        this.tokenFilter = tokenFilter;
    }

    public static AuthorizationTokenFilter make(TokenFilter tokenFilter){
        return new AuthorizationTokenFilter(tokenFilter);
    }

    @Override
    public boolean filter(HistoryToken token) {
        boolean filter = tokenFilter.filter(token);
        boolean authorized = isAuthorized();
        return filter && authorized;
    }

    private boolean isAuthorized() {
        return TokenAuthorizationChecker.isAuthorized(historyToken);
    }

    @Override
    public NormalizedToken normalizeToken(String rootPath, String token) {
        this.historyToken = new StateHistoryToken(rootPath, token);
        return tokenFilter.normalizeToken(rootPath, token);
    }
}
Pavlo Iatsiuk
@bykka
honestly, my application should not have any public access - all pages should be protected
Ahmad K. Bawaneh
@vegegoku
same here except the bootsrapping page here as we show system loading stuff, so the filter wrapper solution is very cheap and simple to implement
Pavlo Iatsiuk
@bykka
Thanks for the advice.
Tino Desjardins
@TDesjardins

@TDesjardins I have updated the project, added github actions to release it but since I am runing maven enforcer plugin ..there was a dependency mix that I tried to solve, can you please give it a quick check.

I will have a look in the evening. Have you updated the plugin project or also the demo app for plugin integration?

Ahmad K. Bawaneh
@vegegoku
there were few needed changes in the sample
I updated all
Or I think so
Tino Desjardins
@TDesjardins
I will update this later.
Thanks for updating the map plugin @vegegoku
Hm, don't see any changes here: https://github.com/DominoKit/domino-ui-addons
Ahmad K. Bawaneh
@vegegoku
there is 2 branches now, development and master , development publish snapshots and master publish releases
Pavlo Iatsiuk
@bykka
in the documentation https://github.com/DominoKit/domino-mvp/wiki/Layout there is "@Slot(DOCUMENT_BODY)" but I do not see where is "DOCUMENT_BODY" coming from?
Ahmad K. Bawaneh
@vegegoku
It is a string constant in the Predefined slots, Domino-mvp will register that slot by default
4 replies
Pavlo Iatsiuk
@bykka
looks like I have missed some dependencies because IDE does not provide any hints
Ahmad K. Bawaneh
@vegegoku
How did you create the project?
Pavlo Iatsiuk
@bykka
manually and trying to follow domino-mvp-samples but it's a little bit outdated
Ahmad K. Bawaneh
@vegegoku
Yes I was planing to update it this weekend
Also a new cli version will land soon
Ahmad K. Bawaneh
@vegegoku
I recommend creating the project using the cli tool..it will left a lot of work for you
howudodat
@howudodat

@howudodat If you are welling to gve this a test I have fixed the depndencies and added github actions to the repository, a HEAD-SNAPSHOT is in its way ... and if you test this and it works for you we can do a release

ok the app compiles now, so I think we are good there.

I also have the demo running, but I dont get a map in my app. I am probably missing a simple step. One that I can't deduce from the nalu framework

howudodat
@howudodat
here is how I am setting up the panel (BTW, this is the method I use for all of my panels. I left in all empty code in case you see something crazy wrong with the overall method)
public class PnlHomes extends FlexLayout implements IToolbarListener {
    protected FlexLayout content = FlexLayout.create();
    protected Map map = null;
    protected MapView mapview = null;

    public PnlHomes() {
        initUI();
    }

    protected void initUI() {
        content.setDirection(FlexDirection.TOP_TO_BOTTOM);
        this.appendChild(content);

        initHeader();
        initContent();

        Scheduler.get().scheduleDeferred(new Command() {
            @Override
            public void execute() {
                initPostVisible();
            }
        });
    }

    protected void initHeader() {}

    protected void initContent() {
        // create all the elements
        mapview = new MapView("homesmap");
        map = MapPresets.getOsmMap("homesmap");

        // set attributes necessary to the elements

        // add to the container
        content.appendChild(mapview.element());
    }

    protected void initPostVisible() {}
}
Ahmad K. Bawaneh
@vegegoku
I will check ..but as a quick confirmation... you sure the div size isnt too small to render the map?
howudodat
@howudodat
I tried setting the div width and height to 100%
Inspecting, I see nothing inside the div, it's as if there is nothing injected into the div
image.png
Ahmad K. Bawaneh
@vegegoku
ok I guess I know what is going on ..maybe
maybe you are attaching the map too eqarly before the div is actually attached
what is content btw?
howudodat
@howudodat
protected FlexLayout content = FlexLayout.create();
Ahmad K. Bawaneh
@vegegoku
for flexlayout you should append FlexItems
and can you please use the MapCard for now I need to understand something
howudodat
@howudodat
ok, I used a map card and the header is there. at first the body was 0px high even if I called MapCard#setHeight("90%"), so I set height to 1000px and the body is visible.
I decided to call map.updateSize(); and the console shows this error:
PluggableMap.js:1590 No map visible because the map container's width or height are 0.
        mapcard = new MapCard("homesmap");
        mapcard.setHeight("1000px");
        map = MapPresets.getOsmMap("homesmap");
        content.appendChild(FlexItem.create().appendChild(mapcard));
        Scheduler.get().scheduleDeferred(new Command() {
            @Override
            public void execute() {
                map.updateSize();
            }
        });
howudodat
@howudodat
ok, I got it working
I need to clean up the code and figure out what I did to get it working, then I'll post the code
howudodat
@howudodat
ok, here is the code that gets it to work, but I suspect that it's still not right
public class PnlHomes extends FlexLayout {
    protected Map map = null;
    protected MapView mapview = null;

    public PnlHomes() {
        initUI();
    }

    protected void initUI() {
        mapview = new MapView("homesmap");
        mapview.setWidth("100%");
        mapview.setHeight("100%");

        this.setHeight("900px");

        this.appendChild(FlexItem.create().appendChild(mapview).setFlexGrow(1));
//        this.appendChild(mapview);

        Scheduler.get().scheduleDeferred(new Command() {
            @Override
            public void execute() {
                map = MapPresets.getOsmMap("homesmap");
                map.updateSize();
            }
        });
    }
}
1: whether I wrap the view in flexitem makes no difference
2: nothing is visible unless I call setHeight with PIXELS. Why should I have to dictate pixel height? every screen could be different sizes. I just want the layout to handle this. it should be 100% of the viewport
howudodat
@howudodat
@TDesjardins what's the difference between ol.layer.Vector and ol.source.Vector? I'm trying to add some markers to the panel