Giter Club home page Giter Club logo

systemapic.js's Introduction

Front-end client lib for Mapic

systemapic.js's People

Contributors

knutole avatar jorgenevil avatar

Watchers

Shahjada Talukdar avatar James Cloos avatar  avatar Magdalini Fotiadou avatar  avatar  avatar  avatar

Forkers

knutole mapic

systemapic.js's Issues

Restricted endpoints

List of restricted endpoints:

var restricted_endpoints = [
'api',
'undefined',
'forgot',
'register',
'invite',
'logout', 
'login',
'privacy-policy', // move to /api/
'reset', // move to api
'pixels', // move to api
'oauth', // move to api
]

Disable styler if CartoCSS has been written

If the "Save" button on the custom CartoCSS pane has been clicked, the styling in the styler is void, and has to be "grayed out". Perhaps with a message on top of it saying "You have written custom styling code! By unlocking the styler, you will loose all your customizations".

screen shot 2016-02-08 at 9 52 14 am

Bugs in default styling

  • All files containing polygons come with point style by default.
  • Also, the point style rendered in the layer by default is not the same as in the styler.

To see what i mean, load a file with points, and click save style in styler. You will then see that the size of the dots change.

Css bugs on iPhone 6+

Input fields not working (not possible to type in them)

Overlapping popup/legend

Searcher goes off screen

Buttons are not leveled. Also, try to use font where possible (not sprite). Reason for this is that sprite gets lowres on retina. If we cannot find icons in awesome fonts, we can make our own systemapic icon font kit from vector drawn icons. Not very hard to do.

Enable complete collapse of legend on phone - it takes up almost the whole screen - on iPhone 6+!!!

Sometimes the page crashes on iphone. Too many requests???

One legend looks off.

Improvements/refactor popup/chart

When you have a lot of data, all the pop-ups appear on top of each other – which is very annoying.

In general the whole pop-up is a bit messy, and needs some work:

  • Allow multiple popups
  • Separate the chart graph completely – keep it in a file on its own, and put it in as a plugin.
  • Allow option to have pop-up appear on point (not only in bottom right corner) as an option.
  • Allow option to have pop-up appear on hover.

socket.io 500 (Internal Server Error)

Getting this error on load, it's a failed first attempt to connect only - but this should be cleaned up.

GET https://dev.systemapic.com/socket.io/1/?t=1454596592071 500 (Internal Server Error)
screen shot 2016-02-04 at 5 51 12 pm

Add more analytics

Both Google Analytics and Slack notifications.

  • refactor and clean up analytics
  • track all api routes
  • track user actions (all clicks), track uploads, styling, zoom, pan
  • etc.

css overflow on chart

Regression on bottom falls outside frame. Probably due to many columns listed on top.

screen shot 2016-02-13 at 12 19 54 am

timeseries detection is buggy

Need to improve how detecting timeseries for different types of data.

  • should always detect timeseries in InSAR data
  • should not detect timeseries in normal data
  • should not include certain non-timeseries fields in timeseries data

Save styling on dataset (not only on layer)

It's getting quite annoying that I have to spend lots of time styling layers over and over again.

It would be very nice to be able to have my data styles, so that i can browse through my pre designed layers when creating a project.

I discussed this with Knut, and i think the best option is to have a list of active stylesheets collected from the projects where this data is loaded as a layer. You may also want to choose one master stylesheet, so that you have a pre designed "template style" that you can work from. This is also interesting when sharing a dataset.

share <input> bugs

  1. When writing beginning of a name, "Jo..", then "jorgen" is highlighted. However, if pressing [Enter], "Igor" is selected. (This is for sharing "Spectators of project" when editing project.)

screen shot 2016-02-12 at 2 42 28 pm
screen shot 2016-02-12 at 2 42 31 pm

More options for Styler

Styler

  • Have a more intelligent way of knowing if a column has numbers in it or not, so that we don't have the option to create a color range based on invalid data.
  • Get histogram pop-up when choosing color range (instead of numbers), so that it's easier to choose range.
  • Point: have option to use from a selection of markers in addition of styling a point.
  • Polygon: have option to use preset patterns
  • Lines: have option to choose a dash array
  • Have blending mode on them all

Legend

  • Choose if you want legend or not on the layer. Have option to customize, and write own name for legend.
  • Also have option to edit color, add fields, etc. This is because if we write CartoCSS now, there is no way of getting corresponding legend.

Move tile loading to websocket

Currently, one of the main bottlenecks for loading tiles is the browser-limitations of 6 parallel requests per domain, and 24 parallel requests in total.

Both grid tiles and raster tiles (as well as vector tiles) could be moved to websockets and loaded in full parallel.

We should write this as a Leaflet extension.

legends bug

first problem: Style->select layer -> no tiles, console contains TypeError: Wu.Legend is not a constructor
this._legendStyler = new Wu.Legend(legendOptions);
that's line 98 of chrome.settings.styler.js
this._legendStyler = new Wu.Legend(legendOptions);
if I click on the error shown in console, firebog takes me to the "Script" tab, showing the code

Uncaught TypeError: Wu.Legend is not a functionListPicker._handleMouseUp @ about:blank:504

"Set bounds" not clearing when changing projects

Sometimes (quite often), the bounds does not refresh when I'm changing projects, meaning that I'm not allowed to go to the area of interest in the project. I have to set and clear bounds to refresh properly.

Merging layers (not data) feature

We have talked about merging files (that you add one file to another in PostGIS), but I also think it could be interesting to load a set of data as one layer (without merging the data). That way we can reduce requests dramatically, and you can build layers based on files. This could be practical i.e. for downloaded data at different WFS's, that often only gives you small sections per download. It might also be practical to do it this way (and not to merge files directly) to keep the PostGIS tables small.

Does this depend on ::pseudo feature?

Styling presets

It would be nice to develop a few sets of default styling presets that can be tweaked (not unlike CartoDB's) – this is particularly interesting for polygons that often appear as one large flat polygon when it in reality is many smaller polygons that's next to each other.

I also think that a color range based on the GID column and a random color could be good as a default style sheet for polygons. It would make the data appear more "finished" without having to do anything.

Create pretty dropdown instead of basic <select> dropdown

Need a pretty dropdown - not the default ugly <select> dropdown. Should be created from scratch as Wu.Dropdown class, and take content as options param on creation.

  • create new file with Wu.Dropdown class
  • change old dropdown for baselayers (under Data tab)
  • change dropdowns in Styler

Dropdown should be created thus:

var pretty_dropdown = new Wu.Dropdown({
    content : ['layer1', 'layer2'],
    fn : this._dropdownSelected // function runs when dropdown item selected
})

New file can be put in /js/src/ext/dropdown.js, and built like this:

Wu.Dropdown = Wu.Class.extend({

   // this function will run automatically on new Wu.Dropdown()
   initialize : function (options) {
      Wu.setOptions(this, options); // will put options in this.options

   },

   build : function () {
      var content = this.options.content;
   },
});

a few legend bugs

A few bugs on legend:

When uploading new layer, the legend is not created immediately. This is normal.

  • However, when clicking "Update Style", legend is still not created. On reload, correct legend is there (or perhaps just turning layer on/off).
  • Perhaps change text "No leged!" til "Create legend in Styler"
  • Switch-button is in on-position, even when turning off.
  • Not possible to turn legend back on.
  • Perhaps actually add the default legend immediately?
  • Layermenu jumps a lot when selecting layer, because of legend box changing size. This is partly due to layermenu being scrolled to top again when clicking (so jump is extra big when user had already scrolled down in layermenu).

screen shot 2016-02-13 at 10 22 44 pm

screen shot 2016-02-13 at 10 17 26 pm
screen shot 2016-02-13 at 10 17 15 pm
screen shot 2016-02-13 at 10 16 52 pm

screen shot 2016-02-13 at 10 23 59 pm

screen shot 2016-02-13 at 10 26 13 pm

zooming on chart is buggy

When mousescroll-zooming on chart, something is buggy - at least some of the time. Scrolls too fast. Need to look at the algorithm for scrolling.

adjustments to satellite meta boxes

jeg har gjort en lit feil på figuren lengst nede til høyere
i steden for ordet "satellittkurs" så sku det vært "sikteretning"
og en annen justering:
under figuren målevinkel, kunne dere lagt på en "arrow" mot bakken slik at man skjønner at målingen går den veien

  • "sikteretning"
  • arrow

Update Style stops retriving tiles

Continues from systemapic/pile#13

After clicking on "Update Style" all my data tiles disappear and no further tiles are loaded, even on navigating the map.

It might be related, I see a POST going to: https://localhost/api/error/log -- the payload is an absurd JSON with an array with a letter of the message in each element.

"{\"message\":\"Error: No value provided for variable {layerUuid}\",\"file\":\"https://localhost/js/lib
/leaflet.js/leaflet-0.7.3-src.js\",\"line\":141,\"user\":\"Sandro Santilli\",\"stack\":\"L.Util.template
/<@https://localhost/js/lib/leaflet.js/leaflet-0.7.3-src.js:141:11\\nL.Util.template@https://localhost
/js/lib/leaflet.js/leaflet-0.7.3-src.js:138:1\\nL.TileLayer<.getTileUrl@https://localhost/js/lib/leaflet
.js/leaflet-0.7.3-src.js:2898:1\\nL.TileLayer<._loadTile@https://localhost/js/lib/leaflet.js/leaflet-0
.7.3-src.js:2972:18\\nL.TileLayer<._addTile@https://localhost/js/lib/leaflet.js/leaflet-0.7.3-src.js
:2866:3\\nL.TileLayer<._addTilesFromCenterOut@https://localhost/js/lib/leaflet.js/leaflet-0.7.3-src.js
:2773:4\\nL.TileLayer<._update@https://localhost/js/lib/leaflet.js/leaflet-0.7.3-src.js:2730:3\\nL.TileLayer
<.redraw@https://localhost/js/lib/leaflet.js/leaflet-0.7.3-src.js:2608:4\\n.setOptions@https://localhost
/js/src/models/model.layers.js:1408:3\\nWu.PostGISLayer<._refreshLayer@https://localhost/js/src/models
/model.layers.js:733:1\\nWu.PostGISLayer<.updateStyle@https://localhost/js/src/models/model.layers.js
:699:3\\nWu.Styler<._updateLayer/<@https://localhost/js/src/chrome/settings/styler.js:1170:4\\nWu.Api
<.post/<@https://localhost/js/src/core/api.js:284:12\\nWu.Api<._post/http.onreadystatechange@https:/
/localhost/js/src/core/api.js:302:14\\n\",\"project\":\"test\"}"

Refactor api calls

All Wu.post, Wu.postcb, Wu.send, Wu.save calls etc should be moved into /src/js/core/api.js. See here and here for types of calls (and search the repo for Wu.post, Wu.Util.post etc).

The goal is to have a single file with the full list of API endpoints, so it's easy to mirror and maintain with the server-side routes.js.

Examples of calls to be moved:

Example of already refactored call:

checklist

  • move all api calls to api.js
  • move all actual http requests to api.js (ie. Wu.post and all the others in class.js)
  • use one POST function (not Wu.post, Wu.save, Wu.send etc., only one of them is needed.) Make sure to include callback capability.

small fixes for legends- and popup box

  • Looks like perhaps the second, third item does not get its content description included (only title)?
    screen shot 2016-02-12 at 12 13 09 pm
  • Perhaps wrap this legend with a border or something, make it look a bit more "set." Also, it's a bit unaligned vertically.
    screen shot 2016-02-12 at 12 12 42 pm
  • Perhaps move the opacity slider to one line. As it is now, it takes up too much space.
    screen shot 2016-02-12 at 12 19 09 pm

invite by link flow is confusing

When inviting people by Get shareable link..., the user expects the current project to be included in the invite. It's not.

Solution:

  • add current project automatically to READ.

screen shot 2016-01-18 at 6 51 54 pm

Implement sorting in lists

Lists like these should filter and sort when starting writing into the input box (much like Slack's functionality).

screen shot 2016-01-29 at 7 53 14 pm

Deleting a dataset doesn't "redirect"

moved here from systemapic/wu#374

I'm continuously uploading and deleting datasets, but everytime I delete the only dataset I have to reload the page manually because the browser (firefox) sits there on the same page, letting me click "DELETE" again and again...

Moreover, clicking on the X widget to close the options popup still shows the dataset, as if it wasn't deleted (thus the need to reload the page)

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.