Line 1: #pragma checksum "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "29CCB0A26234E9A7643618728ECD37239FC1277A"
Line 2: //------------------------------------------------------------------------------
Line 3: // <auto-generated>
Line 4: // This code was generated by a tool.
Line 5: // Runtime Version:4.0.30319.42000
Line 6: //
Line 7: // Changes to this file may cause incorrect behavior and will be lost if
Line 8: // the code is regenerated.
Line 9: // </auto-generated>
Line 10: //------------------------------------------------------------------------------
Line 11:
Line 12: namespace ASP {
Line 13: using System;
Line 14: using System.Collections.Generic;
Line 15: using System.IO;
Line 16: using System.Linq;
Line 17: using System.Net;
Line 18: using System.Web;
Line 19: using System.Web.Helpers;
Line 20: using System.Web.Security;
Line 21: using System.Web.UI;
Line 22: using System.Web.WebPages;
Line 23: using System.Web.Mvc;
Line 24: using System.Web.Mvc.Ajax;
Line 25: using System.Web.Mvc.Html;
Line 26: using System.Web.Routing;
Line 27: using Umbraco.Web;
Line 28: using Umbraco.Core;
Line 29: using Umbraco.Core.Models;
Line 30: using Umbraco.Web.Mvc;
Line 31: using umbraco;
Line 32: using Examine;
Line 33: using Umbraco.Web.PublishedContentModels;
Line 34:
Line 35: #line 2 "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml"
Line 36: using ContentModels = Umbraco.Web.PublishedContentModels;
Line 37:
Line 38: #line default
Line 39: #line hidden
Line 40:
Line 41: #line 2 "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml"
Line 42: using Lucene.Net.Search;
Line 43:
Line 44: #line default
Line 45: #line hidden
Line 46:
Line 47: #line 3 "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml"
Line 48: using Newtonsoft.Json;
Line 49:
Line 50: #line default
Line 51: #line hidden
Line 52:
Line 53: #line 4 "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml"
Line 54: using TWB.Facet;
Line 55:
Line 56: #line default
Line 57: #line hidden
Line 58:
Line 59: #line 5 "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml"
Line 60: using TWB;
Line 61:
Line 62: #line default
Line 63: #line hidden
Line 64:
Line 65:
Line 66: public class _Page_Views_Events_cshtml : Umbraco.Web.Mvc.UmbracoTemplatePage {
Line 67:
Line 68: #line hidden
Line 69:
Line 70: public _Page_Views_Events_cshtml() {
Line 71: }
Line 72:
Line 73: protected ASP.global_asax ApplicationInstance {
Line 74: get {
Line 75: return ((ASP.global_asax)(Context.ApplicationInstance));
Line 76: }
Line 77: }
Line 78:
Line 79: public override void Execute() {
Line 80:
Line 81: #line 7 "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml"
Line 82:
Line 83:
Line 84: Layout = "Master.cshtml";
Line 85:
Line 86: //Each facet needs a unique ID. This is to store the original facet in memory
Line 87:
Line 88: IPublishedContent filterPage = Model.Content;
Line 89: bool fromCategoryPage = false;
Line 90:
Line 91: if (Model.Content.DocumentTypeAlias == "Category")
Line 92: {
Line 93: filterPage = Model.Content.Ancestor("businesses");
Line 94: fromCategoryPage = true;
Line 95: }
Line 96:
Line 97: var partialViewName = "_FacetResults";
Line 98: bool whatsOn = false;
Line 99: bool eventsFestivals = false;
Line 100:
Line 101: if (Model.Content.Path.Contains(TWB.Constants.Nodes.WhatsOn.ToString()))
Line 102: {
Line 103: //partialViewName = "_FacetResultsEvents";
Line 104: whatsOn = true;
Line 105: }
Line 106:
Line 107: if (Model.Content.Path.Contains(TWB.Constants.Nodes.EventsFestivals.ToString()))
Line 108: {
Line 109: //partialViewName = "_FacetResultsEvents";
Line 110: eventsFestivals = true;
Line 111: }
Line 112:
Line 113: string facetId = Model.Content.Id.ToString();/// filterPage.UrlName;
Line 114:
Line 115: Facet facet = Facet.GetById(facetId);
Line 116:
Line 117: List<string> docTypeAlias = new List<string>();
Line 118: docTypeAlias.Add("business");
Line 119: docTypeAlias.Add("event");
Line 120:
Line 121: int defaultSortId = whatsOn ? 3 : 1;
Line 122: int sortId = defaultSortId;
Line 123:
Line 124: //if the facet is null, let's build it.
Line 125:
Line 126: if (facet == null)
Line 127: {
Line 128: //Here we initialize the facet using the ExternalIndexer
Line 129: facet = Facet.Create(facetId, "ExternalIndexer")
Line 130: //Set this facet to work out the counts for the facet group items
Line 131: .DoCounts()
Line 132: .SetSearchField("Search", new[] { "nodeName", "bodyText" })
Line 133:
Line 134: //Here we are adding a group from an Umbraco node using a LINQ statement to convert list of IPublishedContent to list of FacetGroupOption
Line 135: .AddGroup("Features", "features", "filtersIndexed", FacetSearchType.GroupedOr, Umbraco.TypedContent(9178).Children.Select(x => new FacetGroupOption(x.Name, x.Id, x.GetKey())))
Line 136: .AddGroup("Location", "location", "filtersIndexed", FacetSearchType.GroupedOr, Umbraco.TypedContent(TWB.Constants.Nodes.TownFilter).Children.Select(x => new FacetGroupOption(x.Name, x.Id, x.GetKey())))
Line 137:
Line 138: //Add sortable options
Line 139: .AddSortOption(1, "Name Asc", new SortField("sort_nodeName", SortField.STRING, false))
Line 140: .AddSortOption(2, "Name Desc", new SortField("sort_nodeName", SortField.STRING, true))
Line 141: .AddSortOption(3, "Date Asc", new SortField("__startDate", SortField.STRING, false))
Line 142:
Line 143:
Line 144:
Line 145: //.AddSortOption(4, "Create Date Desc", new SortField("createDate", SortField.LONG, true))
Line 146:
Line 147: //Set which sort to use as default (using the sortId)
Line 148: .SetDefaultSort(sortId)
Line 149: //Set the paging size (default is 10 if unspecified)
Line 150: .SetDefaultPageSize(12)
Line 151: //We can restrict the search to a specific doc type alias
Line 152: .RestrictToDocumentTypeAlias(docTypeAlias)
Line 153: .RestrictToParentId(filterPage.Id)
Line 154: //set the results partial view.
Line 155: .SetResultsView(partialViewName);
Line 156:
Line 157: //todo: check the existence of a category doc and add it as a group
Line 158: IPublishedContent categoryGroup;
Line 159: if ((categoryGroup = filterPage.Descendants("CategoryGroup").FirstOrDefault()) != null)
Line 160: {
Line 161: facet.AddGroup("Categories", "category", "categoriesIndexed", FacetSearchType.GroupedOr, categoryGroup.Children.Select(x => new FacetGroupOption(x.Name, x.Id, x.GetKey())));
Line 162: }
Line 163:
Line 164: if (whatsOn) {
Line 165: facet.SetMinimumDate(DateTime.Now);
Line 166: //facet.SetMinimumDate(DateTime.Now.AddDays(1));
Line 167:
Line 168:
Line 169: //facet.AddDateRangeSearch("__dateTime", "__dateTime", "start", "end");
Line 170: facet.AddDateRangeSearch("__startDate", "__endDate", "start", "end");
Line 171: }
Line 172: facet.Build();
Line 173: }
Line 174:
Line 175: /*
Line 176: * The facet has been built at this point so we are free to modify the collection. This is because .Build() returns a
Line 177: * clone of the facet.
Line 178: *
Line 179: * This allows us to now check the querystring for values and set selected values before we call search.
Line 180: *
Line 181: * Before we do though, we need a reset facet object. This is the facet is it's orginal form with no selections.
Line 182: * When the form is reset, we bind to this model and then call ajax search.
Line 183: * NOTE: We need this in Json so we can send it through to the angular container.
Line 184: */
Line 185:
Line 186: var facetGroupResetState = JsonConvert.SerializeObject(facet.FacetGroups);
Line 187:
Line 188: int page = 1; int.TryParse(Request["page"], out page);
Line 189: int.TryParse(Request["sortId"], out sortId);
Line 190: string query = Server.UrlDecode(Request["q"]).PrepareForLucene();
Line 191:
Line 192: if (page == 0) { page = 1; }
Line 193: if (sortId == 0) { sortId = defaultSortId; }
Line 194:
Line 195: string filterValues = Request["f"];
Line 196:
Line 197: List<FacetUXTag> tags = new List<FacetUXTag>();
Line 198:
Line 199: if (fromCategoryPage) {
Line 200:
Line 201: //add the category filter to the request
Line 202: if (filterValues == null)
Line 203: {
Line 204: filterValues = Model.Content.Id.ToString();
Line 205:
Line 206: }
Line 207: else {
Line 208: filterValues += "," + Model.Content.Id.ToString();
Line 209: }
Line 210: }
Line 211:
Line 212: if (filterValues != null)
Line 213: {
Line 214: string[] filterValuesSplit = filterValues.Split(',');
Line 215: foreach (var group in facet.FacetGroups)
Line 216: {
Line 217: foreach (var option in group.Options)
Line 218: {
Line 219: option.IsSelected = filterValuesSplit.Contains(option.Value.ToString());
Line 220:
Line 221: if (option.IsSelected) {
Line 222: tags.Add(new FacetUXTag() { Id = (int)(option.Value), Name = option.Name });
Line 223: }
Line 224: }
Line 225: }
Line 226: }
Line 227:
Line 228: if (!query.IsNullOrWhiteSpace() && facet.HasSearchField())
Line 229: {
Line 230: facet.SearchFieldText.Value = query;
Line 231: }
Line 232:
Line 233: var facetResults = facet.Search(filterPage.Id, sortId, page);
Line 234:
Line 235:
Line 236: //We need this in Json so we can send it through to the angular container.
Line 237: var facetGroupStateJson = JsonConvert.SerializeObject(facetResults.Groups);
Line 238:
Line 239: var mapLocations = facetResults.Paged.Select(x => Umbraco.TypedContent(x)).Select(x => new
Line 240: {
Line 241: id = x.Id,
Line 242: title = x.Name,
Line 243: url = x.Url,
Line 244: lat = x.GetPropertyValue<string>("latLong").SplitString(0, ','),
Line 245: lng = x.GetPropertyValue<string>("latLong").SplitString(1, ','),
Line 246: address = x.GetPropertyValue<string>("address")
Line 247: }
Line 248: ).Where(y => y.lat != "" && y.lng != "");
Line 249:
Line 250: var json = Newtonsoft.Json.JsonConvert.SerializeObject(mapLocations);
Line 251:
Line 252: var mapLocationsMob = facetResults.Results.Where(x => Umbraco.TypedContent(x) != null).Select(x => Umbraco.TypedContent(x)).Select(x => new
Line 253: {
Line 254: id = x.Id,
Line 255: title = x.Name,
Line 256: url = x.Url,
Line 257: lat = x.GetPropertyValue<string>("latLong").SplitString(0, ','),
Line 258: lng = x.GetPropertyValue<string>("latLong").SplitString(1, ','),
Line 259: address = x.GetPropertyValue<string>("address")
Line 260: }
Line 261: ).Where(y => y.lat != "" && y.lng != "");
Line 262:
Line 263:
Line 264: var jsonMob = Newtonsoft.Json.JsonConvert.SerializeObject(mapLocationsMob);
Line 265:
Line 266: //Tags from query string.
Line 267: var tagsJson = Newtonsoft.Json.JsonConvert.SerializeObject(tags);
Line 268:
Line 269:
Line 270:
Line 271:
Line 272:
Line 273: #line default
Line 274: #line hidden
Line 275: WriteLiteral("\r\n\r\n<style>\r\n\tul {\r\n\t\tmargin: 0;\r\n\t}\r\n\r\n\t\tul li {\r\n\t\t\tlist-style: none;\r\n\t\t}\r\n\r\n\t" +
Line 276: ".strike-through {\r\n\t\ttext-decoration: line-through;\r\n\t\tcolor: gray;\r\n\t}\r\n</style" +
Line 277: ">\r\n\r\n\r\n");
Line 278:
Line 279:
Line 280: #line 214 "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml"
Line 281: Write(Html.Partial("~/Views/Partials/_Banner.cshtml"));
Line 282:
Line 283:
Line 284: #line default
Line 285: #line hidden
Line 286: WriteLiteral("\r\n\r\n\r\n<div");
Line 287:
Line 288: WriteLiteral(" ng-app=\"facetApp\"");
Line 289:
Line 290: WriteLiteral(">\r\n\t<div");
Line 291:
Line 292: WriteLiteral(" ng-controller=\"facetController\"");
Line 293:
Line 294: WriteAttribute("ng-init", Tuple.Create(" ng-init=\"", 7665), Tuple.Create("\"", 7725)
Line 295: , Tuple.Create(Tuple.Create("", 7675), Tuple.Create("start(", 7675), true)
Line 296:
Line 297: #line 218 "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml"
Line 298: , Tuple.Create(Tuple.Create("", 7681), Tuple.Create<System.Object, System.Int32>(facetGroupStateJson
Line 299:
Line 300: #line default
Line 301: #line hidden
Line 302: , 7681), false)
Line 303: , Tuple.Create(Tuple.Create("", 7701), Tuple.Create(",", 7701), true)
Line 304:
Line 305: #line 218 "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml"
Line 306: , Tuple.Create(Tuple.Create(" ", 7702), Tuple.Create<System.Object, System.Int32>(facetGroupResetState
Line 307:
Line 308: #line default
Line 309: #line hidden
Line 310: , 7703), false)
Line 311: , Tuple.Create(Tuple.Create("", 7724), Tuple.Create(")", 7724), true)
Line 312: );
Line 313:
Line 314: WriteLiteral(">\r\n\r\n\r\n");
Line 315:
Line 316: WriteLiteral("\t\t");
Line 317:
Line 318:
Line 319: #line 221 "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml"
Line 320: Write(Html.Partial("~/Views/Partials/_BreadcrumbTrail.cshtml"));
Line 321:
Line 322:
Line 323: #line default
Line 324: #line hidden
Line 325: WriteLiteral("\r\n\r\n\r\n\r\n\t\t<div");
Line 326:
Line 327: WriteLiteral(" class=\"grid-x grid-padding-x\"");
Line 328:
Line 329: WriteLiteral(">\r\n\t\t\t<div");
Line 330:
Line 331: WriteLiteral(" class=\"cell small-11 medium-8 large-7 small-centered text-center\"");
Line 332:
Line 333: WriteLiteral(" id=\"page-heading\"");
Line 334:
Line 335: WriteLiteral(">\r\n\t\t\t\t<h1>");
Line 336:
Line 337:
Line 338: #line 227 "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml"
Line 339: Write(Model.Content.GetPropertyValue("h1Tag"));
Line 340:
Line 341:
Line 342: #line default
Line 343: #line hidden
Line 344: WriteLiteral("</h1>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<div");
Line 345:
Line 346: WriteLiteral(" class=\"events-filter mt--48\"");
Line 347:
Line 348: WriteLiteral(">\r\n\t\t\t<form");
Line 349:
Line 350: WriteLiteral(" ng-submit=\"search()\"");
Line 351:
Line 352: WriteLiteral(">\r\n\t\t\t\t<div");
Line 353:
Line 354: WriteLiteral(" class=\"grid-container\"");
Line 355:
Line 356: WriteLiteral(">\r\n\t\t\t\t\t<div");
Line 357:
Line 358: WriteLiteral(" class=\"grid-x grid-padding-x\"");
Line 359:
Line 360: WriteLiteral(">\r\n\t\t\t\t\t\t<div");
Line 361:
Line 362: WriteLiteral(" class=\"cell small-12 msmall-8 medium-8 large-10\"");
Line 363:
Line 364: WriteLiteral(" ng-cloak");
Line 365:
Line 366: WriteLiteral(" style=\"position:relative;\"");
Line 367:
Line 368: WriteLiteral(">\r\n\t\t\t\t\t\t\t<ul");
Line 369:
Line 370: WriteLiteral(" class=\"dropdown-menu__list\"");
Line 371:
Line 372: WriteLiteral(">\r\n\t\t\t\t\t\t\t\t<li");
Line 373:
Line 374: WriteLiteral(" ng-repeat=\"g in groups\"");
Line 375:
Line 376: WriteLiteral(" ng-show=\"hasOptionCountGreaterThanZero(g)\"");
Line 377:
Line 378: WriteLiteral(">\r\n\t\t\t\t\t\t\t\t\t<div");
Line 379:
Line 380: WriteLiteral(" class=\"select-container\"");
Line 381:
Line 382: WriteLiteral(">\r\n\t\t\t\t\t\t\t\t\t\t<span");
Line 383:
Line 384: WriteLiteral(" ng-click=\"toggleFilter(g, $event)\"");
Line 385:
Line 386: WriteLiteral(">\r\n\t\t\t\t\t\t\t\t\t\t\t{{g.name}}\r\n\t\t\t\t\t\t\t\t\t\t\t<i");
Line 387:
Line 388: WriteLiteral(" class=\"far fa-chevron-down icon\"");
Line 389:
Line 390: WriteLiteral("></i>\r\n\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</li>\r\n\r\n");
Line 391:
Line 392:
Line 393: #line 246 "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml"
Line 394:
Line 395:
Line 396: #line default
Line 397: #line hidden
Line 398:
Line 399: #line 246 "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml"
Line 400: if(Model.Content.Path.Contains(TWB.Constants.Nodes.EventsFestivals.ToString()) ||
Line 401: Model.Content.Path.Contains(TWB.Constants.Nodes.WhatsOn.ToString()))
Line 402: {
Line 403:
Line 404:
Line 405: #line default
Line 406: #line hidden
Line 407: WriteLiteral("\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t<div");
Line 408:
Line 409: WriteLiteral(" class=\"select-container\"");
Line 410:
Line 411: WriteLiteral(">\r\n\t\t\t\t\t\t\t\t\t\t<span");
Line 412:
Line 413: WriteLiteral(" ng-click=\"toggleDateFilter($event)\"");
Line 414:
Line 415: WriteLiteral(">\r\n\t\t\t\t\t\t\t\t\t\t\tDate <i");
Line 416:
Line 417: WriteLiteral(" class=\"far fa-chevron-down icon\"");
Line 418:
Line 419: WriteLiteral("></i>\r\n\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</li>\r\n");
Line 420:
Line 421:
Line 422: #line 256 "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml"
Line 423: }
Line 424:
Line 425:
Line 426: #line default
Line 427: #line hidden
Line 428: WriteLiteral("\t\t\t\t\t\t\t</ul>\r\n\r\n\t\t\t\t\t\t\t<!-- Filter Dropdown -->\r\n\t\t\t\t\t\t\t<div");
Line 429:
Line 430: WriteLiteral(" ng-repeat=\"g in groups\"");
Line 431:
Line 432: WriteLiteral(" ng-show=\"g.shouldShow\"");
Line 433:
Line 434: WriteLiteral(" id=\"filter-{{g.name}}\"");
Line 435:
Line 436: WriteLiteral(" ng-cloak>\r\n\t\t\t\t\t\t\t\t<div");
Line 437:
Line 438: WriteLiteral(" class=\"filter-inner\"");
Line 439:
Line 440: WriteLiteral(">\r\n\t\t\t\t\t\t\t\t\t<ul");
Line 441:
Line 442: WriteLiteral(" class=\"menu\"");
Line 443:
Line 444: WriteLiteral(">\r\n\t\t\t\t\t\t\t\t\t\t<li");
Line 445:
Line 446: WriteLiteral(" ng-repeat=\"o in g.options\"");
Line 447:
Line 448: WriteLiteral(" ng-class=\"{ \'hidden\' : o.count <= 0 }\"");
Line 449:
Line 450: WriteLiteral(">\r\n\t\t\t\t\t\t\t\t\t\t\t<input");
Line 451:
Line 452: WriteLiteral(" type=\"checkbox\"");
Line 453:
Line 454: WriteLiteral(" ng-model=\"o.isSelected\"");
Line 455:
Line 456: WriteLiteral(" ng-disabled=\"o.count <= 0\"");
Line 457:
Line 458: WriteLiteral(" id=\"{{o.key}}\"");
Line 459:
Line 460: WriteLiteral(" ng-change=\"addTag(o)\"");
Line 461:
Line 462: WriteLiteral(" />\r\n\t\t\t\t\t\t\t\t\t\t\t<label");
Line 463:
Line 464: WriteLiteral(" for=\"{{o.key}}\"");
Line 465:
Line 466: WriteLiteral(">{{o.name}} <span>({{o.count}})</span></label>\r\n\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t</ul>\r\n" +
Line 467: "\t\t\t\t\t\t\t\t\t<a");
Line 468:
Line 469: WriteLiteral(" ng-click=\"search()\"");
Line 470:
Line 471: WriteLiteral(" class=\"button\"");
Line 472:
Line 473: WriteLiteral(">Apply</a>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t<div");
Line 474:
Line 475: WriteLiteral(" id=\"filter-Date\"");
Line 476:
Line 477: WriteLiteral(" ng-show=\"dateFilterOpened\"");
Line 478:
Line 479: WriteLiteral(" ng-cloak>\r\n\t\t\t\t\t\t\t\t<!-- <div id=\"datePicker\" style=\"display:none\"> -->\r\n\t\t\t\t\t\t\t\t" +
Line 480: "<div");
Line 481:
Line 482: WriteLiteral(" class=\"filter-inner\"");
Line 483:
Line 484: WriteLiteral(">\r\n\t\t\t\t\t\t\t\t\t<div");
Line 485:
Line 486: WriteLiteral(" class=\"row\"");
Line 487:
Line 488: WriteLiteral(">\r\n\t\t\t\t\t\t\t\t\t\t<div");
Line 489:
Line 490: WriteLiteral(" class=\"column\"");
Line 491:
Line 492: WriteLiteral(">\r\n\t\t\t\t\t\t\t\t\t\t\t<!-- http://t1m0n.name/air-datepicker/docs/ -->\r\n\t\t\t\t\t\t\t\t\t\t\t<div");
Line 493:
Line 494: WriteLiteral(" id=\"datepicker\"");
Line 495:
Line 496: WriteLiteral(" class=\"datepicker-here\"");
Line 497:
Line 498: WriteLiteral(" data-range=\'true\'");
Line 499:
Line 500: WriteLiteral(" minDate=\'today\'");
Line 501:
Line 502: WriteLiteral(" data-language=\'en\'");
Line 503:
Line 504: WriteLiteral("></div>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t<div");
Line 505:
Line 506: WriteLiteral(" class=\"row\"");
Line 507:
Line 508: WriteLiteral(">\r\n\t\t\t\t\t\t\t\t\t\t<div");
Line 509:
Line 510: WriteLiteral(" class=\"column medium-3\"");
Line 511:
Line 512: WriteLiteral(">\r\n\t\t\t\t\t\t\t\t\t\t\t<a");
Line 513:
Line 514: WriteLiteral(" ng-click=\"toggleDateFilter($event);search()\"");
Line 515:
Line 516: WriteLiteral(" class=\"button\"");
Line 517:
Line 518: WriteLiteral(">Apply</a>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<div");
Line 519:
Line 520: WriteLiteral(" class=\"column medium-9 text-right\"");
Line 521:
Line 522: WriteLiteral(">\r\n\t\t\t\t\t\t\t\t\t\t\t<span");
Line 523:
Line 524: WriteLiteral(" class=\"select-date\"");
Line 525:
Line 526: WriteLiteral(">Select a date range</span>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t" +
Line 527: "\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div");
Line 528:
Line 529: WriteLiteral(" class=\"cell small-12 msmall-4 medium-4 large-2 text-right show-for-medium\"");
Line 530:
Line 531: WriteLiteral(">\r\n\t\t\t\t\t\t\t<div");
Line 532:
Line 533: WriteLiteral(" class=\"select-container map\"");
Line 534:
Line 535: WriteLiteral(">\r\n\t\t\t\t\t\t\t\t<span");
Line 536:
Line 537: WriteLiteral(" id=\"toggle-grid-view\"");
Line 538:
Line 539: WriteLiteral(">\r\n\t\t\t\t\t\t\t\t\tMap View\r\n\t\t\t\t\t\t\t\t\t<i");
Line 540:
Line 541: WriteLiteral(" class=\"far fa-map-marker-alt icon\"");
Line 542:
Line 543: WriteLiteral("></i>\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t</div>\r\n\t" +
Line 544: "\t\t</form>\r\n\t\t</div>\r\n\r\n\t\t");
Line 545:
Line 546: WriteLiteral("\r\n\r\n\t\t<section");
Line 547:
Line 548: WriteLiteral(" id=\"listing-filters-selected\"");
Line 549:
Line 550: WriteLiteral(" class=\"mt--32\"");
Line 551:
Line 552: WriteLiteral(">\r\n\t\t\t<div");
Line 553:
Line 554: WriteLiteral(" class=\"grid-container\"");
Line 555:
Line 556: WriteLiteral(">\r\n\t\t\t\t<div");
Line 557:
Line 558: WriteLiteral(" class=\"grid-x grid-padding-x\"");
Line 559:
Line 560: WriteLiteral(">\r\n\r\n\t\t\t\t\t<div");
Line 561:
Line 562: WriteLiteral(" class=\"cell small-12\"");
Line 563:
Line 564: WriteLiteral(" ng-cloak>\r\n\t\t\t\t\t\t<!-- Currently selected: -->\r\n\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t<li");
Line 565:
Line 566: WriteLiteral(" ng-repeat=\"tag in tags\"");
Line 567:
Line 568: WriteLiteral("><a");
Line 569:
Line 570: WriteLiteral(" ng-click=\"removeTag(tag)\"");
Line 571:
Line 572: WriteLiteral(">{{tag.name}} <i");
Line 573:
Line 574: WriteLiteral(" class=\"far fa-times\"");
Line 575:
Line 576: WriteLiteral("></i></a></li>\r\n\t\t\t\t\t\t\t<li");
Line 577:
Line 578: WriteLiteral(" class=\"float-right\"");
Line 579:
Line 580: WriteLiteral("><a");
Line 581:
Line 582: WriteLiteral(" ng-click=\"reset()\"");
Line 583:
Line 584: WriteLiteral(">Clear All <i");
Line 585:
Line 586: WriteLiteral(" class=\"far fa-times\"");
Line 587:
Line 588: WriteLiteral("></i></a></li>\r\n\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\r\n\t\t</section>" +
Line 589: "\r\n\r\n\r\n\t\t");
Line 590:
Line 591: WriteLiteral("\r\n\r\n\t\t<div");
Line 592:
Line 593: WriteLiteral(" class=\"event-listing pt--md--40 pb--48\"");
Line 594:
Line 595: WriteLiteral(">\r\n\t\t\t<div");
Line 596:
Line 597: WriteLiteral(" class=\"grid-container\"");
Line 598:
Line 599: WriteLiteral(">\r\n\t\t\t\t<div");
Line 600:
Line 601: WriteLiteral(" class=\"grid-x grid-padding-x\"");
Line 602:
Line 603: WriteLiteral(" data-equalizer>\r\n");
Line 604:
Line 605: WriteLiteral("\t\t\t\t\t");
Line 606:
Line 607:
Line 608: #line 455 "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml"
Line 609: Write(Html.Partial(partialViewName, facetResultsEvents));
Line 610:
Line 611:
Line 612: #line default
Line 613: #line hidden
Line 614: WriteLiteral("\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\r\n\t</div>\r\n</div>\r\n\r\n");
Line 615:
Line 616: DefineSection("Scripts", () => {
Line 617:
Line 618: WriteLiteral(@"
Line 619:
Line 620: <script>
Line 621: var g_OnSearchListeners = [];
Line 622:
Line 623: $('#datepicker').datepicker({
Line 624: language: 'en',
Line 625: minDate: new Date(), // Now can select only dates, which goes after today
Line 626: clearButton: true
Line 627: })
Line 628: </script>
Line 629:
Line 630: <script>
Line 631:
Line 632: /*
Line 633: You would declare ng-app on the master page in a live project. not here - otherwise you'll just
Line 634: have a lot of conflicts.
Line 635: */
Line 636:
Line 637: var app = angular.module('facetApp', []);
Line 638:
Line 639: var resultModel = {};
Line 640:
Line 641: app.controller('facetController',
Line 642: [
Line 643: '$scope', '$http', '$timeout', function ($scope, $http, $timeout) {
Line 644:
Line 645: /*
Line 646: This the main model of the facet navigation!
Line 647: */
Line 648: $scope.groups = [];
Line 649:
Line 650: $scope.sortId = '");
Line 651:
Line 652:
Line 653: #line 496 "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml"
Line 654: Write(sortId);
Line 655:
Line 656:
Line 657: #line default
Line 658: #line hidden
Line 659: WriteLiteral("\';\r\n\r\n $scope.page = \'");
Line 660:
Line 661:
Line 662: #line 498 "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml"
Line 663: Write(page);
Line 664:
Line 665:
Line 666: #line default
Line 667: #line hidden
Line 668: WriteLiteral("\';\r\n\r\n $scope.searchText = \'");
Line 669:
Line 670:
Line 671: #line 500 "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml"
Line 672: Write(query);
Line 673:
Line 674:
Line 675: #line default
Line 676: #line hidden
Line 677: WriteLiteral("\';\r\n\r\n /*\r\n Initialisation function called from the markup " +
Line 678: "to set the facet.\r\n */\r\n $scope.start = function (groups, " +
Line 679: "resettedGroups) {\r\n\r\n $scope.originalGroups = [];\r\n\r\n " +
Line 680: " $scope.groups = groups;\r\n\r\n angular.copy(resettedGroups, $sco" +
Line 681: "pe.originalGroups);\r\n }\r\n\r\n /*\r\n variable to de" +
Line 682: "tect if we are moving back in the history.\r\n */\r\n var isPo" +
Line 683: "pping = false;\r\n\r\n /*\r\n This is the ajax search - we call " +
Line 684: "an Umbraco Surface and we send over\r\n the $scope.groups collection\r\n " +
Line 685: " */\r\n $scope.search = function (page) {\r\n\r\n " +
Line 686: "$scope.page = page || 1;\r\n\r\n var onSuccess = function (res) {\r\n\r\n" +
Line 687: " var results = document.getElementById(\'results-placeholder\')" +
Line 688: ";\r\n\r\n var $html = $(res.data);\r\n var $resu" +
Line 689: "lts = $html.find(\'.result\');\r\n var $paging = $html.find(\'.pag" +
Line 690: "ing-container\');\r\n\r\n $(\'#flexi-grid\').html($results);\r\n " +
Line 691: " $(\'.paging-container\').html($paging.contents())\r\n\r\n " +
Line 692: " for (var i = 0; i < $html.length; i++) {\r\n if ($($ht" +
Line 693: "ml[i]).is(\"script\")) {\r\n eval($html[i].text);\r\n " +
Line 694: " }\r\n }\r\n\r\n $scope.resultM" +
Line 695: "odel = resultModel;\r\n $scope.groups = $scope.resultModel.grou" +
Line 696: "ps;\r\n\r\n historyPush($scope.resultModel);\r\n\r\n " +
Line 697: " isPopping = false;\r\n\r\n for (var i = 0; i < g_OnSearchListe" +
Line 698: "ners.length; i++) {\r\n g_OnSearchListeners[i]($scope.resul" +
Line 699: "tModel);\r\n }\r\n }\r\n\r\n var onErro" +
Line 700: "r = function (res) { }\r\n\r\n var url = \'/umbraco/surface/facet/sear" +
Line 701: "ch?\' +\r\n \'nodeId=");
Line 702:
Line 703:
Line 704: #line 559 "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml"
Line 705: Write(filterPage.Id);
Line 706:
Line 707:
Line 708: #line default
Line 709: #line hidden
Line 710: WriteLiteral("&id=");
Line 711:
Line 712:
Line 713: #line 559 "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml"
Line 714: Write(facetId);
Line 715:
Line 716:
Line 717: #line default
Line 718: #line hidden
Line 719: WriteLiteral(@"&sortId=' + $scope.sortId + '&q=' + ($scope.searchText || '') + '&page=' + $scope.page +
Line 720: '&start=' + $scope.formatDate($scope.startDate) + '&end=' + $scope.formatDate($scope.endDate);
Line 721: console.log($scope.groups);
Line 722: $http.post(url, $scope.groups).then(onSuccess, onError);
Line 723:
Line 724: }
Line 725:
Line 726: $scope.startDate = '';
Line 727: $scope.endDate = '';
Line 728:
Line 729: $scope.formatDate = function (dateVal) {
Line 730:
Line 731: var d = new Date(dateVal);
Line 732: //return !isNaN(d.valueOf());
Line 733: if (isNaN(d.valueOf()))
Line 734: return """";
Line 735:
Line 736: console.log(dateVal);
Line 737: //todo.... get date to yyyyMMddHHmmss
Line 738: var dte = moment(dateVal).format('YYYYMMDDHHmmss')
Line 739: console.log(dte);
Line 740: return dte;
Line 741: }
Line 742:
Line 743: /*
Line 744: This will reset the form to the original state of the facet.
Line 745: */
Line 746: $scope.reset = function () {
Line 747:
Line 748: $scope.tags = [];
Line 749: $scope.sortId = '");
Line 750:
Line 751:
Line 752: #line 589 "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml"
Line 753: Write(sortId);
Line 754:
Line 755:
Line 756: #line default
Line 757: #line hidden
Line 758: WriteLiteral("\';\r\n $scope.searchText = \'\';\r\n angular.copy($scope." +
Line 759: "originalGroups, $scope.groups);\r\n\r\n $scope.search();\r\n " +
Line 760: " }\r\n\r\n /*\r\n Set up the event to intercept clicks for the p" +
Line 761: "agination.\r\n */\r\n angular.element(document).on(\'click\', \'." +
Line 762: "pagination a\', function (e) {\r\n\r\n e.preventDefault();\r\n\r\n " +
Line 763: " $scope.$apply(function () {\r\n\r\n //do a search sending" +
Line 764: " through the page number.\r\n $scope.search(e.target.innerHTML)" +
Line 765: ";\r\n\r\n });\r\n\r\n $(\'html, body\').animate({\r\n " +
Line 766: " scrollTop: $(\"#listing-filters\").offset().top\r\n }, 200" +
Line 767: "0);\r\n\r\n });\r\n\r\n /*\r\n This pushes the state of t" +
Line 768: "he form into the browsers history\r\n whenever we \'pop\' back we use thi" +
Line 769: "s data to perform the search\r\n */\r\n function historyPush(r" +
Line 770: "esults) {\r\n\r\n if (isPopping) return;\r\n\r\n var qs = " +
Line 771: "results.queryString;\r\n\r\n if (window.history.pushState) {\r\n\r\n " +
Line 772: " var stateObject = { groups: results.groups, sortId: $scope.sortId" +
Line 773: ", page: $scope.page, q: $scope.searchText };\r\n\r\n history.push" +
Line 774: "State(stateObject, null, qs);\r\n\r\n }\r\n\r\n }\r\n\r\n " +
Line 775: " /*\r\n This event captures the press of the back/forward buttons on " +
Line 776: "the browser.\r\n We read the state (if any) and then perform the ajax s" +
Line 777: "earch once we set the facet state.\r\n */\r\n window.onpopstat" +
Line 778: "e = function (e) {\r\n\r\n isPopping = true;\r\n\r\n if (e" +
Line 779: ".state) {\r\n $scope.$apply(function () {\r\n\r\n " +
Line 780: " $scope.groups = e.state.groups;\r\n $scope.sortId = e" +
Line 781: ".state.sortId;\r\n $scope.searchText = e.state.q;\r\n " +
Line 782: " $scope.search(e.state.page);\r\n\r\n });\r\n " +
Line 783: " } else {\r\n //we can\'t go back any further - so we ju" +
Line 784: "st rest the facet to it\'s\r\n //original state...\r\n " +
Line 785: " $scope.reset();\r\n }\r\n }\r\n\r\n\r\n $scop" +
Line 786: "e.toggleFilter = function (group, event) {\r\n $scope.dateFilterOpe" +
Line 787: "ned = false;\r\n for (var i = 0; i < $scope.groups.length; i++) {\r\n" +
Line 788: " if ($scope.groups[i] === group) {\r\n c" +
Line 789: "ontinue;\r\n }\r\n $scope.groups[i].shouldShow" +
Line 790: " = false;\r\n }\r\n\r\n group.shouldShow = !group.should" +
Line 791: "Show;\r\n event.stopPropagation();\r\n };\r\n\r\n $" +
Line 792: "scope.dateFilterOpened = false;\r\n\r\n $scope.toggleDateFilter = functio" +
Line 793: "n ($event) {\r\n $scope.groups.forEach((group, index) => {\r\n " +
Line 794: " $scope.groups[index].shouldShow = false;\r\n });\r\n " +
Line 795: " //var element = $(\'#filter-Date\');\r\n //element.toggle" +
Line 796: "();\r\n $scope.dateFilterOpened = !($scope.dateFilterOpened);\r\n " +
Line 797: " event.stopPropagation();\r\n };\r\n\r\n //$(document" +
Line 798: ").on(\"click\", function (event) {\r\n // var datePicker = document.ge" +
Line 799: "tElementById(\'filter-Date\');\r\n // var isClickedElementChildOfPopup" +
Line 800: " = datePicker == event.target || datePicker.contains(event.target); //$(this).fi" +
Line 801: "nd(event.target).length > 0;\r\n\r\n // if (isClickedElementChildOfPop" +
Line 802: "up)\r\n // return;\r\n\r\n // //for (var i = 0; i < $s" +
Line 803: "cope.groups.length; i++) {\r\n // // $scope.groups[i].shouldShow " +
Line 804: "= false;\r\n // //}\r\n // //if ($scope.dateFilterOpened" +
Line 805: ") {\r\n // // $scope.dateFilterOpened = false;\r\n // " +
Line 806: " //}\r\n // $scope.$apply();\r\n //});\r\n\r\n $scop" +
Line 807: "e.hasOptionCountGreaterThanZero = function (g) {\r\n var count = 0;" +
Line 808: "\r\n for (var i = 0; i < g.options.length; i++) {\r\n " +
Line 809: " count += g.options[i].count;\r\n }\r\n return coun" +
Line 810: "t > 0;\r\n };\r\n\r\n $scope.tags = [];\r\n $scope.tags" +
Line 811: " = ");
Line 812:
Line 813:
Line 814: #line 711 "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml"
Line 815: Write(Html.Raw(tagsJson));
Line 816:
Line 817:
Line 818: #line default
Line 819: #line hidden
Line 820: WriteLiteral(";\r\n\r\n $scope.addTag = function (tag) {\r\n console.log(\'t" +
Line 821: "ag\', tag)\r\n if (!tag.isSelected) {\r\n //remove " +
Line 822: "it\r\n for (var i = 0; i < $scope.tags.length; i++) {\r\n " +
Line 823: " if (tag.value == $scope.tags[i].id) {\r\n " +
Line 824: " $scope.tags.splice(i, 1);\r\n break;\r\n " +
Line 825: " }\r\n }\r\n } else {\r\n " +
Line 826: " $scope.tags.push({ id: tag.value, name: tag.name });\r\n }\r\n\r\n " +
Line 827: " //$scope.search();\r\n }\r\n\r\n $scope.removeTag =" +
Line 828: " function (tag) {\r\n\r\n //find the option in groups to switch off c" +
Line 829: "heckbox\r\n for (var i = 0; i < $scope.groups.length; i++) {\r\n " +
Line 830: " var g = $scope.groups[i];\r\n for (var j = 0; j " +
Line 831: "< g.options.length; j++) {\r\n //console.log(g.options[j].v" +
Line 832: "alue == tag.id);\r\n if (g.options[j].value == tag.id) {\r\n\r" +
Line 833: "\n g.options[j].isSelected = false;\r\n " +
Line 834: " //angular.element(\'#\' + g.options[j].key).prop(\'checked\', false);\r\n " +
Line 835: " break;\r\n }\r\n " +
Line 836: " }\r\n }\r\n\r\n for (var i = 0; i < $scope.tags.length;" +
Line 837: " i++) {\r\n if (tag.id == $scope.tags[i].id) {\r\n\r\n " +
Line 838: " $scope.tags.splice(i, 1);\r\n\r\n break;\r\n " +
Line 839: " }\r\n }\r\n\r\n $scope.search();\r\n " +
Line 840: " }\r\n\r\n //datepicker\r\n $(\'#datepicker\').datepicker({\r\n " +
Line 841: " language: \'en\',\r\n onSelect: function (fd, d, picker) " +
Line 842: "{\r\n // Do nothing if selection was cleared\r\n " +
Line 843: " //if (!d) return;\r\n\r\n console.log(d);\r\n " +
Line 844: " var date1 = d[0];\r\n var date2 = d[1];\r\n\r\n " +
Line 845: " console.log(date1);\r\n console.log(date2);\r\n\r\n " +
Line 846: " if (date1 && date2) {\r\n $scope.startDate = date1;\r\n " +
Line 847: " $scope.endDate = date2;\r\n }\r\n\r\n " +
Line 848: " //var day = d.getDay();\r\n // Trigger only if dat" +
Line 849: "e is changed\r\n //if (prevDay != undefined && prevDay == day) " +
Line 850: "return;\r\n //prevDay = day;\r\n }\r\n })" +
Line 851: "\r\n\r\n }\r\n\r\n ]);\r\n\r\n\t</script>\r\n\r\n\t<script");
Line 852:
Line 853: WriteLiteral(" type=\"text/javascript\"");
Line 854:
Line 855: WriteLiteral(">\r\n var markerarray = ");
Line 856:
Line 857:
Line 858: #line 791 "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml"
Line 859: Write(Html.Raw(json));
Line 860:
Line 861:
Line 862: #line default
Line 863: #line hidden
Line 864: WriteLiteral(";\r\n var markerarray2 = ");
Line 865:
Line 866:
Line 867: #line 792 "D:\inetpub\wwwroot\Donegal Live\Views\Events.cshtml"
Line 868: Write(Html.Raw(jsonMob));
Line 869:
Line 870:
Line 871: #line default
Line 872: #line hidden
Line 873: WriteLiteral(";\r\n var normalIcon = \'/images/icn-map_marker.png\';\r\n var selectedIc" +
Line 874: "on = \'/images/icn-map_marker-active.png\';\r\n\t</script>\r\n\t<script");
Line 875:
Line 876: WriteLiteral(" type=\"text/javascript\"");
Line 877:
Line 878: WriteLiteral(" src=\"https://maps.googleapis.com/maps/api/js?key=AIzaSyAJa-WkePV4dpARb3K35V57yWb" +
Line 879: "6gB6M0cM\"");
Line 880:
Line 881: WriteLiteral("></script>\r\n\r\n\t<script>\r\n\r\n\t\tapp.controller(\'mapCtrl\', [\'$scope\', function ($scop" +
Line 882: "e) {\r\n\r\n\t\t\t$scope.activeMarker = false;\r\n\r\n\t\t\tvar map = null;\r\n\t\t\tvar infowindow" +
Line 883: " = null;\r\n\t\t\tvar bounds = new google.maps.LatLngBounds();\r\n\r\n\t\t\tif (markerarray." +
Line 884: "length == 0)\r\n\t\t\t\t$(\"#toggle-grid-view\").hide();\r\n\r\n\t\t\tfor (var i = 0; i < marke" +
Line 885: "rarray.length; i++)\r\n\t\t\t\tmarkerarray[i].latlng = new google.maps.LatLng(markerar" +
Line 886: "ray[i].lat, markerarray[i].lng);\r\n\r\n\r\n\t\t\tfor (var i = 0; i < markerarray2.length" +
Line 887: "; i++)\r\n\t\t\t\tmarkerarray2[i].latlng = new google.maps.LatLng(markerarray2[i].lat," +
Line 888: " markerarray2[i].lng);\r\n\r\n\t\t\t//console.log(markerarray);\r\n\r\n\t\t\tvar windowWidth =" +
Line 889: " $(window).width();\r\n\r\n\t\t\tvar zoom = 9;\r\n\r\n\t\t\tif (windowWidth < 600) {\r\n\t\t\t\tzoom" +
Line 890: " = 8;\r\n\t\t\t}\r\n\r\n\t\t\tvar markers = [];\r\n\r\n\t\t\tvar initialize = function () {\r\n\r\n\t\t\t\t" +
Line 891: "if (map) return;\r\n\r\n\t\t\t\tconsole.log(\'init map\', markerarray);\r\n\t\t\t\tvar mapCanvas" +
Line 892: " = document.getElementById(\'map_canvas\');\r\n\t\t\t\t// Basic options for a simple Goo" +
Line 893: "gle Map\r\n\t\t\t\t// For more options see: https://developers.google.com/maps/documen" +
Line 894: "tation/javascript/reference#MapOptions\r\n\t\t\t\tvar mapOptions = {\r\n\t\t\t\t\t// How zoom" +
Line 895: "ed in you want the map to start at (always required)\r\n\t\t\t\t\tzoom: zoom,\r\n\t\t\t\t\t//d" +
Line 896: "raggable: windowWidth > 768,\r\n\t\t\t\t\tscrollwheel: false,\r\n\r\n\t\t\t\t\t// The latitude a" +
Line 897: "nd longitude to center the map (always required)\r\n\t\t\t\t\t//center: new google.maps" +
Line 898: ".LatLng(51.896892, -8.486316), // Average centre point\r\n\t\t\t\t\tcenter: bounds.getC" +
Line 899: "enter(),\r\n\t\t\t\t};\r\n\r\n\r\n\t\t\t\tmap = new google.maps.Map(mapCanvas, mapOptions);\r\n\r\n\t" +
Line 900: "\t\t\tdisplaymarkers(markerarray);\r\n\r\n\t\t\t}\r\n\t\t\tvar initialize2 = function () {\r\n\r\n\t" +
Line 901: "\t\t\tif (map) return;\r\n\r\n\t\t\t\tconsole.log(\'init map\', markerarray2);\r\n\t\t\t\tvar mapCa" +
Line 902: "nvas = document.getElementById(\'map_canvas2\');\r\n\r\n\t\t\t\tconsole.log(mapCanvas);\r\n\t" +
Line 903: "\t\t\t// Basic options for a simple Google Map\r\n\t\t\t\t// For more options see: https:" +
Line 904: "//developers.google.com/maps/documentation/javascript/reference#MapOptions\r\n\t\t\t\t" +
Line 905: "var mapOptions = {\r\n\t\t\t\t\t// How zoomed in you want the map to start at (always r" +
Line 906: "equired)\r\n\t\t\t\t\tzoom: zoom,\r\n\t\t\t\t\t//draggable: windowWidth > 768,\r\n\t\t\t\t\tscrollwhe" +
Line 907: "el: true,\r\n\r\n\t\t\t\t\t// The latitude and longitude to center the map (always requir" +
Line 908: "ed)\r\n\t\t\t\t\t//center: new google.maps.LatLng(51.896892, -8.486316), // Average cen" +
Line 909: "tre point\r\n\t\t\t\t\tcenter: bounds.getCenter(),\r\n\t\t\t\t};\r\n\r\n\r\n\t\t\t\tmap = new google.ma" +
Line 910: "ps.Map(mapCanvas, mapOptions);\r\n\r\n\t\t\t\tdisplaymarkers(markerarray2);\r\n\r\n\t\t\t}\r\n\r\n\t" +
Line 911: "\t\tvar displaymarkers = function (array) {\r\n\t\t\t\tfor (var i = 0; i < array.length;" +
Line 912: " i++) {\r\n\t\t\t\t\t//console.log(array[i]);\r\n\t\t\t\t\tAddMarker(array[i]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t" +
Line 913: "if (map) {\r\n\t\t\t\t\tmap.fitBounds(bounds); // auto - zoom\r\n\t\t\t\t\tmap.panToBounds(bou" +
Line 914: "nds); // auto - center\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar clearOverlays = function () {\r\n\t\t\t" +
Line 915: "\tfor (var i = 0; i < markerarray.length; i++) {\r\n\t\t\t\t\tmarkerarray[i].setMap(null" +
Line 916: ");\r\n\t\t\t\t}\r\n\t\t\t\tmarkerarray.length = 0;\r\n\t\t\t}\r\n\r\n\t\t\tvar selectedMarker;\r\n\r\n\t\t\tvar" +
Line 917: " AddMarker = function (info) {\r\n\r\n\t\t\t\tvar marker = new google.maps.Marker({\r\n\t\t\t" +
Line 918: "\t\tposition: info.latlng,\r\n\t\t\t\t\tmap: map,\r\n\t\t\t\t\ticon: normalIcon\r\n\t\t\t\t});\r\n\r\n\t\t\t\t" +
Line 919: "marker.resultId = info.id;\r\n\r\n\t\t\t\tvar dropdown = markerInfoPopup(info);\r\n\t\t\t\tvar" +
Line 920: " loc = new google.maps.LatLng(marker.position.lat(), marker.position.lng());\r\n\t\t" +
Line 921: "\t\tbounds.extend(loc);\r\n\r\n\t\t\t\tmakeInfoWindowEvent(map, dropdown, marker, info);\r\n" +
Line 922: "\r\n\t\t\t\tmarkers.push(marker);\r\n\t\t\t}\r\n\r\n\t\t\tvar makeInfoWindowEvent = function (map," +
Line 923: " contentString, marker, data) {\r\n\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \'cl" +
Line 924: "ick\', function () {\r\n\r\n\t\t\t\t\tif (selectedMarker) {\r\n\t\t\t\t\t\tselectedMarker.setIcon(" +
Line 925: "normalIcon);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tmarker.setIcon(selectedIcon);\r\n\t\t\t\t\tselectedMarker = " +
Line 926: "marker;\r\n\r\n\t\t\t\t\tif (infowindow) { infowindow.close(); infowindow = null; }\r\n\t\t\t\t" +
Line 927: "\tinfowindow = new google.maps.InfoWindow();\r\n\t\t\t\t\tinfowindow.setContent(contentS" +
Line 928: "tring);\r\n\t\t\t\t\tinfowindow.open(map, marker);\r\n\r\n\t\t\t\t\t//$scope.$apply(function () " +
Line 929: "{\r\n\t\t\t\t\t// $scope.activeMarker = data;\r\n\t\t\t\t\t//})\r\n\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\r\n\t\t\tva" +
Line 930: "r markerInfoPopup = function (info) {\r\n\t\t\t\tvar output = \'\';\r\n\r\n\t\t\t\toutput = \'<di" +
Line 931: "v class=\"info\">\'\r\n\t\t\t\toutput += \'<span class=\"\"map-title\"\"><a href=\"\' + info.url" +
Line 932: " + \'\">\' + info.title + \'</a></span>\'\r\n\t\t\t\tif (info.address != null) {\r\n\t\t\t\t\toutp" +
Line 933: "ut += \'<p>\' + info.address + \'</p>\'\r\n\t\t\t\t}\r\n\t\t\t\toutput += \'</div>\';\r\n\t\t\t\treturn " +
Line 934: "output;\r\n\t\t\t};\r\n\r\n\t\t\t//google.maps.event.addDomListener(window, \'load\', initiali" +
Line 935: "ze);\r\n\t\t\tvar showMap = $(\'#toggle-grid-view\').get(0);\r\n\t\t\tgoogle.maps.event.addD" +
Line 936: "omListener(showMap, \'click\', initialize);\r\n\r\n\t\t\tvar showMapMob = $(\'#toggle-grid" +
Line 937: "-view2\').get(0);\r\n\t\t\tgoogle.maps.event.addDomListener(showMapMob, \'click\', initi" +
Line 938: "alize2);\r\n\r\n\t\t\t//$(\'#toggle-grid-view\').click(function () { initialize(); });\r\n\r" +
Line 939: "\n\t\t\t//console.log(markers);\r\n\r\n\t\t\t//$(\'#flexi-grid .column\').hover(\r\n\t\t\t// //" +
Line 940: " mouse in\r\n\t\t\t// function () {\r\n\t\t\t// // first we need to know which <" +
Line 941: "div class=\"marker\"></div> we hovered\r\n\t\t\t// var index = $(\'#flexi-grid .c" +
Line 942: "olumn\').index(this);\r\n\t\t\t// markers[index].marker.setIcon(selectedIcon);\r" +
Line 943: "\n\t\t\t// },\r\n\t\t\t// // mouse out\r\n\t\t\t// function () {\r\n\t\t\t// // fir" +
Line 944: "st we need to know which <div class=\"marker\"></div> we hovered\r\n\t\t\t// var" +
Line 945: " index = $(\'#flexi-grid .column\').index(this);\r\n\t\t\t// markers[index].mark" +
Line 946: "er.setIcon(normalIcon);\r\n\t\t\t// }\r\n\t\t\t//);\r\n\r\n\t\t\tvar googleMapsSearchCallback " +
Line 947: "= function (res) {\r\n\r\n\t\t\t\tif (!map) return;\r\n\r\n\t\t\t\tfor (var i = 0; i < markers.l" +
Line 948: "ength; i++) {\r\n\t\t\t\t\tmarkers[i].setMap(null);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tmarkers = [];\r\n\r\n\t\t\t\t" +
Line 949: "//markerarray has been updated in the partial view and eval on script!\r\n\r\n\t\t\t\t//" +
Line 950: "update the latlng\r\n\t\t\t\tfor (var i = 0; i < markerarray.length; i++)\r\n\t\t\t\t\tmarker" +
Line 951: "array[i].latlng = new google.maps.LatLng(markerarray[i].lat, markerarray[i].lng)" +
Line 952: ";\r\n\r\n\t\t\t\tconsole.log(markerarray);\r\n\t\t\t\t//now display them:\r\n\t\t\t\tdisplaymarkers(" +
Line 953: "markerarray);\r\n\t\t\t};\r\n\r\n\t\t\tg_OnSearchListeners.push(googleMapsSearchCallback);\r\n" +
Line 954: "\r\n\t\t\tfunction isMapShown() {\r\n\r\n\t\t\t\t//todo::\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\t$(doc" +
Line 955: "ument).on(\'mouseover\', \'.result-hover\', function (e) {\r\n\t\t\t\t// console.log(e);\r\n" +
Line 956: "\r\n\t\t\t\tif (!isMapShown()) return;\r\n\r\n\t\t\t\tvar $ele = $(e.currentTarget);\r\n\r\n\t\t\t\tva" +
Line 957: "r dataId = $ele.attr(\'data-id\');\r\n\r\n\t\t\t\t//find marker in marker array\r\n\t\t\t\tfor (" +
Line 958: "var i = 0; i < markers.length; i++) {\r\n\t\t\t\t\tmarkers[i].setIcon(normalIcon);\r\n\t\t\t" +
Line 959: "\t}\r\n\t\t\t\tfor (var i = 0; i < markers.length; i++) {\r\n\t\t\t\t\tif (markers[i].resultId" +
Line 960: " == dataId) {\r\n\t\t\t\t\t\t//do something:\r\n\t\t\t\t\t\tmarkers[i].setIcon(selectedIcon);\r\n\t" +
Line 961: "\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}])\r\n\r\n\r\n\r\n\t\t//\r\n\t\t$(document).ready(function () {\r\n\t\t" +
Line 962: "\t// initiate Google maps\r\n\t\t\t//initialize();\r\n\t\t\t// make a .hover event\r\n\r\n\t\t});" +
Line 963: "\r\n\r\n\t</script>\r\n\r\n");
Line 964:
Line 965: });
Line 966:
Line 967: }
Line 968: }
Line 969: }
Line 970:
|