diff options
Diffstat (limited to 'web')
-rw-r--r-- | web/cobrands/bathnes/js.js | 11 | ||||
-rw-r--r-- | web/cobrands/fixmystreet-uk-councils/roadworks.js | 82 | ||||
-rw-r--r-- | web/cobrands/sass/_base.scss | 4 |
3 files changed, 97 insertions, 0 deletions
diff --git a/web/cobrands/bathnes/js.js b/web/cobrands/bathnes/js.js new file mode 100644 index 000000000..f76da5cd5 --- /dev/null +++ b/web/cobrands/bathnes/js.js @@ -0,0 +1,11 @@ +fixmystreet.roadworks.config = { + tag_top: 'h3', + colon: true, + text_after: "<p>If you think this issue needs immediate attention you can continue your report below</p>" +}; + +fixmystreet.roadworks.filter = function(feature) { + var category = $('select#form_category').val(), + categories = ['Damage to pavement', 'Damage to road', 'Faded road markings', 'Damaged Railing, manhole, or drain cover']; + return OpenLayers.Util.indexOf(categories, category) != -1; +}; diff --git a/web/cobrands/fixmystreet-uk-councils/roadworks.js b/web/cobrands/fixmystreet-uk-councils/roadworks.js new file mode 100644 index 000000000..a3eec7b1f --- /dev/null +++ b/web/cobrands/fixmystreet-uk-councils/roadworks.js @@ -0,0 +1,82 @@ +/* Using this file, you also need to include the JavaScript file + * OpenLayers.Projection.OrdnanceSurvey.js for the 27700 conversion, and an + * OpenLayers build that includes OpenLayers.Layer.SphericalMercator and + * OpenLayers.Format.GeoJSON. + */ + +(function(){ + +var roadworks_defaults = { + http_options: { + url: "https://tilma.mysociety.org/streetmanager.php" + }, + srsName: "EPSG:27700", + format_class: OpenLayers.Format.GeoJSON, + strategy_class: OpenLayers.Strategy.FixMyStreet, + stylemap: fixmystreet.assets.stylemap_invisible, + non_interactive: true, + always_visible: true, + nearest_radius: 100, + road: true, + all_categories: true, + actions: { + found: function(layer, feature) { + $(".js-roadworks-message-" + layer.id).remove(); + if (!fixmystreet.roadworks.filter || fixmystreet.roadworks.filter(feature)) { + fixmystreet.roadworks.display_message(feature); + return true; + } + }, + not_found: function(layer) { + $(".js-roadworks-message-" + layer.id).remove(); + } + } +}; + +fixmystreet.roadworks = {}; + +// fixmystreet.map.layers[5].getNearestFeature(new OpenLayers.Geometry.Point(-0.835614, 51.816562).transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:3857")), 10) + +fixmystreet.roadworks.config = {}; + +fixmystreet.roadworks.display_message = function(feature) { + var attr = feature.attributes, + start = new Date(attr.start_date).toDateString(), + end = new Date(attr.end_date).toDateString(), + summary = attr.summary, + desc = attr.description; + + var config = this.config, + summary_heading_text = config.summary_heading_text || 'Summary', + tag_top = config.tag_top || 'p', + colon = config.colon ? ':' : ''; + + var $msg = $('<div class="js-roadworks-message js-roadworks-message-' + feature.layer.id + ' box-warning"><' + tag_top + '>Roadworks are scheduled near this location, so you may not need to report your issue.</' + tag_top + '></div>'); + var $dl = $("<dl></dl>").appendTo($msg); + $dl.append("<dt>Dates" + colon + "</dt>"); + var $dates = $("<dd></dd>").appendTo($dl); + $dates.text(start + " until " + end); + if (config.extra_dates_text) { + $dates.append('<br>' + config.extra_dates_text); + } + $dl.append("<dt>" + summary_heading_text + colon + "</dt>"); + $dl.append($("<dd></dd>").text(summary)); + if (desc) { + $dl.append("<dt>Description" + colon + "</dt>"); + $dl.append($("<dd></dd>").text(desc)); + } + if (attr.promoter) { + $dl.append("<dt>Responsibility</dt>"); + $dl.append($("<dd></dd>").text(attr.promoter)); + } + + if (config.text_after) { + $dl.append(config.text_after); + } + + $msg.prependTo('#js-post-category-messages'); +}; + +fixmystreet.assets.add(roadworks_defaults); + +})(); diff --git a/web/cobrands/sass/_base.scss b/web/cobrands/sass/_base.scss index f86af2386..07bb2baa1 100644 --- a/web/cobrands/sass/_base.scss +++ b/web/cobrands/sass/_base.scss @@ -2184,6 +2184,10 @@ label .muted { margin-bottom: 0.5em; } + dd:last-child { + margin-bottom: 0; + } + .btn, .btn-primary { margin: 0.5em 0 1em 0; |