Skip to content

Base frontend code for GeoDash (Javascript, less, etc.).

License

Notifications You must be signed in to change notification settings

geodashio/geodash-base

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GeoDash Base

GeoDash Base is the base front-end framework for GeoDash and is used in most implementing projects. In the code, it is sometimes referred to plainly as "geodash". Implementing projects use this as a dependency in their Gulp build pipeline; as such, there is no direct distributable from this repo.

Contributing

Conventions

HTML 5 Data (data-* Attributes)

HTML 5 data (or data-* Attributes) is a useful mechanism for sharing information between backend Angular components and front-end jquery-based components. http://www.w3schools.com/tags/att_global_data.asp

As a convention, when the data you need to pass gets to unweidly to input directly into a template, use a function in the controller called html5data. You don't need a custom function definitiion, just use the special arguments function. That will simplify maintainability and visibility over time.

<a
  class="geodash-intent"
  data-intent-name="toggleModal"
  data-intent-data="{{ html5data('toggleModal', 'geodash-modal-layer-config', 'featurelayer', layer) }}"
  data-intent-ctrl="geodash-map-legend">
  <i class="fa fa-cog"></i>
</a>
// controller_legend.js
$scope.html5data = function()
{
  var args = arguments;
  var zero_lc = args[0].toLowerCase();
  if(zero_lc == "toggleModal")
  {
    var id = args[1];
    var layer = args[2];
    return {
      "id": args[1],
      "static": {
        "layerID": layer.id,
      },
      "dynamic" : {
        "layer": ["featurelayer", layer.id]
      }
    };
  }
  else
  {
    return "";
  }
};