@bmlt-enabled/croutonjs 3.18.10 → 3.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/crouton-core.js CHANGED
@@ -13270,6 +13270,7 @@ function CroutonLocalization(language) {
13270
13270
  'enter a city or zip code': 'أدخل المدينة أو الرمز البريدي',
13271
13271
  'toggle fullscreen mode': 'تبديل وضع ملء الشاشة',
13272
13272
  'close': "قريب",
13273
+ "bmlt2ics": "Add to your calendar",
13273
13274
  'meeting page': "صفحة الاجتماع",
13274
13275
  'meeting details': "تفاصيل الاجتماع"
13275
13276
  },
@@ -13316,6 +13317,7 @@ function CroutonLocalization(language) {
13316
13317
  'google_directions': 'Google directions to meeting',
13317
13318
  'all': 'All',
13318
13319
  'menu': 'Menu',
13320
+ "bmlt2ics": "Add to your calendar",
13319
13321
  'search for meetings': 'Search for meetings',
13320
13322
  'show meetings near...': 'Show meetings near...',
13321
13323
  'filter meetings': 'Filter meetings',
@@ -13373,6 +13375,7 @@ function CroutonLocalization(language) {
13373
13375
  'enter a city or zip code': 'Stadt oder PLZ',
13374
13376
  'toggle fullscreen mode': 'Umschalten Vollbildmodus',
13375
13377
  'close': "Schliessen",
13378
+ "bmlt2ics": "Zu Kalender hinzufügen",
13376
13379
  'meeting page': "Meeting Seite",
13377
13380
  'meeting details': "Genaueres zum Meeting"
13378
13381
  },
@@ -13416,6 +13419,7 @@ function CroutonLocalization(language) {
13416
13419
  "no_meetings_for_this_day": "No meetings for this day.",
13417
13420
  'css-textalign': '',
13418
13421
  'css-floatdirection': '',
13422
+ "bmlt2ics": "Add to your calendar",
13419
13423
  'all': 'All',
13420
13424
  'menu': 'Menu',
13421
13425
  'search for meetings': 'Search for meetings',
@@ -13478,6 +13482,7 @@ function CroutonLocalization(language) {
13478
13482
  'enter a city or zip code': 'Enter a city or zip code',
13479
13483
  'toggle fullscreen mode': 'Toggle fullscreen mode',
13480
13484
  'close': "Close",
13485
+ "bmlt2ics": "Add to your calendar",
13481
13486
  'meeting page': "Meeting Page",
13482
13487
  'meeting details': "Meeting Details"
13483
13488
  },
@@ -13531,6 +13536,7 @@ function CroutonLocalization(language) {
13531
13536
  'enter a city or zip code': 'Enter a city or zip code',
13532
13537
  'toggle fullscreen mode': 'Toggle fullscreen mode',
13533
13538
  'close': "Close",
13539
+ "bmlt2ics": "Add to your calendar",
13534
13540
  'meeting page': "Meeting Page",
13535
13541
  'meeting details': "Meeting Details"
13536
13542
  },
@@ -13577,6 +13583,7 @@ function CroutonLocalization(language) {
13577
13583
  'css-floatdirection': '',
13578
13584
  'all': 'All',
13579
13585
  'menu': "Menu",
13586
+ "bmlt2ics": "Add to your calendar",
13580
13587
  'search for meetings': 'Search for meetings',
13581
13588
  'show meetings near...': 'Show meetings near...',
13582
13589
  'filter meetings': 'Filter meetings',
@@ -13637,6 +13644,7 @@ function CroutonLocalization(language) {
13637
13644
  'enter a city or zip code': 'Enter a city or zip code',
13638
13645
  'toggle fullscreen mode': 'Toggle fullscreen mode',
13639
13646
  'close': "Close",
13647
+ "bmlt2ics": "Add to your calendar",
13640
13648
  'meeting page': "Meeting Page",
13641
13649
  'meeting details': "Meeting Details"
13642
13650
  },
@@ -13690,6 +13698,7 @@ function CroutonLocalization(language) {
13690
13698
  'enter a city or zip code': 'Enter a city or zip code',
13691
13699
  'toggle fullscreen mode': 'Toggle fullscreen mode',
13692
13700
  'close': "Close",
13701
+ "bmlt2ics": "Add to your calendar",
13693
13702
  'meeting page': "Meeting Page",
13694
13703
  'meeting details': "Meeting Details"
13695
13704
  },
@@ -13743,6 +13752,7 @@ function CroutonLocalization(language) {
13743
13752
  'enter a city or zip code': 'Enter a city or zip code',
13744
13753
  'toggle fullscreen mode': 'Toggle fullscreen mode',
13745
13754
  'close': "Close",
13755
+ "bmlt2ics": "Add to your calendar",
13746
13756
  'meeting page': "Meeting Page",
13747
13757
  'meeting details': "Meeting Details"
13748
13758
  },
@@ -13796,6 +13806,7 @@ function CroutonLocalization(language) {
13796
13806
  "enter a city or zip code": "Entrer une ville ou un code postal",
13797
13807
  "toggle fullscreen mode": "Basculer en mode plein écran",
13798
13808
  "close": "Fermer",
13809
+ "bmlt2ics": "Ajouter au calendrier",
13799
13810
  "meeting page": "Page de la réunion",
13800
13811
  "meeting details": "Détails de la réunion"
13801
13812
  },
@@ -13849,6 +13860,7 @@ function CroutonLocalization(language) {
13849
13860
  'enter a city or zip code': 'Inserire una città o un codice postale',
13850
13861
  'toggle fullscreen mode': 'Attiva/disattiva la modalità a schermo intero',
13851
13862
  'close': "Close",
13863
+ "bmlt2ics": "Aggiungi al tuo calendario",
13852
13864
  'meeting page': "Meeting Page",
13853
13865
  'meeting details': "Meeting Details"
13854
13866
  },
@@ -13902,6 +13914,7 @@ function CroutonLocalization(language) {
13902
13914
  'enter a city or zip code': 'Enter a city or zip code',
13903
13915
  'toggle fullscreen mode': 'Toggle fullscreen mode',
13904
13916
  'close': "Close",
13917
+ "bmlt2ics": "Add to your calendar",
13905
13918
  'meeting page': "Meeting Page",
13906
13919
  'meeting details': "Meeting Details"
13907
13920
  },
@@ -13955,6 +13968,7 @@ function CroutonLocalization(language) {
13955
13968
  'enter a city or zip code': 'Enter a city or zip code',
13956
13969
  'toggle fullscreen mode': 'Toggle fullscreen mode',
13957
13970
  'close': "Close",
13971
+ "bmlt2ics": "Add to your calendar",
13958
13972
  'meeting page': "Meeting Page",
13959
13973
  'meeting details': "Meeting Details"
13960
13974
  },
@@ -14001,6 +14015,7 @@ function CroutonLocalization(language) {
14001
14015
  'css-floatdirection': '',
14002
14016
  'all': 'All',
14003
14017
  'menu': "Menu",
14018
+ "bmlt2ics": "Add to your calendar",
14004
14019
  'search for meetings': 'Search for meetings',
14005
14020
  'show meetings near...': 'Show meetings near...',
14006
14021
  'filter meetings': 'Filter meetings',
@@ -14032,12 +14047,15 @@ function CroutonLocalization(language) {
14032
14047
  "pan_and_zoom": "Pan + Zoom",
14033
14048
  "languages": "Языки",
14034
14049
  "common_needs": "Common Needs",
14035
- "meeting_count": "Weekly Meetings:",
14036
- "venue_types": "Venue Types",
14037
- "venue_type_choices": {
14038
- IN_PERSON: "In Person",
14039
- VIRTUAL: "Virtual",
14040
- },
14050
+ "meeting_count": "Еженедельные собрания:",
14051
+ "venue_types": "Типы собрания",
14052
+ "venue_type_choices": {
14053
+ IN_PERSON: "Офлайн",
14054
+ VIRTUAL: "Онлайн",
14055
+ },
14056
+ "share": "поделиться",
14057
+ 'tabular': "Как таблица",
14058
+ 'google_directions': 'На карте',
14041
14059
  "service_body_types": {
14042
14060
  AS: "Area Service Committee",
14043
14061
  RS: "Regional Service Committee",
@@ -14046,23 +14064,21 @@ function CroutonLocalization(language) {
14046
14064
  LS: "Local Service Forum",
14047
14065
  GS: "Group Support Forum"
14048
14066
  },
14049
- "share": "share",
14050
- 'tabular': "As table",
14051
- 'google_directions': 'Google directions to meeting',
14052
- "no_meetings_for_this_day": "No meetings for this day.",
14067
+ "no_meetings_for_this_day": "В этот день собраний нет",
14053
14068
  'css-textalign': '',
14054
14069
  'css-floatdirection': '',
14055
14070
  'all': 'All',
14056
- 'menu': "Menu",
14057
- 'search for meetings': 'Search for meetings',
14058
- 'show meetings near...': 'Show meetings near...',
14059
- 'filter meetings': 'Filter meetings',
14060
- 'visible meeting list': 'Visible meetings as list',
14061
- 'enter a city or zip code': 'Enter a city or zip code',
14062
- 'toggle fullscreen mode': 'Toggle fullscreen mode',
14063
- 'close': "Close",
14064
- 'meeting page': "Meeting Page",
14065
- 'meeting details': "Meeting Details"
14071
+ 'menu': "Меню",
14072
+ "bmlt2ics": "Добавить в календарь",
14073
+ 'search for meetings': 'Поиск собраний',
14074
+ 'show meetings near...': 'Показывать собрания рядом с...',
14075
+ 'filter meetings': 'Фильтровать собрания',
14076
+ 'visible meeting list': 'Собрания в виде списка',
14077
+ 'enter a city or zip code': 'Введите город или почтовый индек',
14078
+ 'toggle fullscreen mode': 'Включить полноэкранный режим',
14079
+ 'close': "Закрыть",
14080
+ 'meeting page': "Страница собрания",
14081
+ 'meeting details': "Подробности собрания"
14066
14082
  },
14067
14083
  "sv-SE": {
14068
14084
  "days_of_the_week" : ["", "Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag"],
@@ -14114,6 +14130,7 @@ function CroutonLocalization(language) {
14114
14130
  'enter a city or zip code': 'Enter a city or zip code',
14115
14131
  'toggle fullscreen mode': 'Toggle fullscreen mode',
14116
14132
  'close': "Close",
14133
+ "bmlt2ics": "Add to your calendar",
14117
14134
  'meeting page': "Meeting Page",
14118
14135
  'meeting details': "Meeting Details"
14119
14136
  }
@@ -14617,6 +14634,7 @@ this["hbs_Crouton"]["templates"]["meetings"] = Handlebars.template({"1":function
14617
14634
  + "</div>\n </td>\n <td class=\"bmlt-column3\">\n"
14618
14635
  + ((stack1 = container.invokePartial(lookupProperty(partials,"metaDataTemplate"),depth0,{"name":"metaDataTemplate","data":data,"indent":"\t\t\t","helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "")
14619
14636
  + ((stack1 = (lookupProperty(helpers,"canShare")||(depth0 && lookupProperty(depth0,"canShare"))||alias2).call(alias1,depth0,{"name":"canShare","hash":{},"fn":container.program(8, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":51,"column":3},"end":{"line":53,"column":16}}})) != null ? stack1 : "")
14637
+ + ((stack1 = container.invokePartial(lookupProperty(partials,"offerIcsButton"),depth0,{"name":"offerIcsButton","data":data,"indent":"\t\t\t","helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "")
14620
14638
  + " </td>\n </tr>\n";
14621
14639
  },"2":function(container,depth0,helpers,partials,data) {
14622
14640
  var lookupProperty = container.lookupProperty || function(parent, propertyName) {
@@ -14746,7 +14764,7 @@ this["hbs_Crouton"]["templates"]["meetings"] = Handlebars.template({"1":function
14746
14764
  return undefined
14747
14765
  };
14748
14766
 
14749
- return ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),depth0,{"name":"each","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":56,"column":9}}})) != null ? stack1 : "");
14767
+ return ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),depth0,{"name":"each","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":57,"column":9}}})) != null ? stack1 : "");
14750
14768
  },"usePartial":true,"useData":true});
14751
14769
  this["hbs_Crouton"]["templates"]["weekdays"] = Handlebars.template({"1":function(container,depth0,helpers,partials,data) {
14752
14770
  var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, lookupProperty = container.lookupProperty || function(parent, propertyName) {
@@ -14832,7 +14850,7 @@ var croutonDefaultTemplates = {
14832
14850
  "{{#isNotTemporarilyClosed this}}",
14833
14851
  " {{#unless (hasFormats 'VM' this)}}",
14834
14852
  " <div>",
14835
- " <a onclick='crouton.meetingModal({{this.id_bigint}})' id='map-button' class='btn btn-primary btn-xs'>",
14853
+ " <a onclick='crouton.meetingModal({{this.id_bigint}})' tabindex='0' href='#' id='map-button' class='btn btn-primary btn-xs'>",
14836
14854
  " <span class='glyphicon glyphicon-search' aria-hidden='true'></span>",
14837
14855
  " {{getWord 'meeting details'}}",
14838
14856
  " </a>",
@@ -14862,10 +14880,10 @@ var croutonDefaultTemplates = {
14862
14880
  "{{/if}}"
14863
14881
  ].join('\n'),
14864
14882
  meeting_modal_template: [
14865
- "<a onclick='crouton.meetingModal({{this.id_bigint}})'><span class='glyphicon glyphicon-search' aria-hidden='true'></span>{{this.meeting_name}}</a>",
14883
+ "<a tabindex='0' href='#' onclick='crouton.meetingModal({{this.id_bigint}})'><span class='glyphicon glyphicon-search' aria-hidden='true'></span>{{this.meeting_name}}</a>",
14866
14884
  ].join('\n'),
14867
14885
  meetingpage_frame_template: `
14868
- <div id="meeting_modal" class="modal bootstrap-bmlt" style="display: none;">
14886
+ <div id="meeting_modal" class="modal bootstrap-bmlt" style="display: none;" tabindex="-1" >
14869
14887
  <div class="modal-content">
14870
14888
  <span class="modal-title">{{getWord "Meeting Details"}}</span><span id="close_meeting_details" class="modal-close">×</span>
14871
14889
  <table id="meeting-details-table" class="bmlt-table table table-striped table-hover table-bordered tablesaw tablesaw-stack meeting-details">
@@ -14881,9 +14899,9 @@ var croutonDefaultTemplates = {
14881
14899
  </tbody>
14882
14900
  </table>
14883
14901
  <div>
14884
- <a id="map-button" class="btn btn-primary btn-xs" href="{{{this.meeting_details_url}}}" target="_blank" rel="noopener noreferrer" style="float:left">
14902
+ <a id="map-button" class="btn btn-primary btn-xs" href="{{{this.meeting_details_url}}}" tabindex="0" target="_blank" rel="noopener noreferrer" style="float:left">
14885
14903
  {{getWord "Meeting Page"}}</a>
14886
- <a id="map-button" class="btn btn-primary btn-xs modal-close" style="float:right">
14904
+ <a id="map-button" class="btn btn-primary btn-xs modal-close" tabindex="0" style="float:right">
14887
14905
  {{getWord "Close"}}</a>
14888
14906
  </div>
14889
14907
  </div></div>`,
@@ -14937,7 +14955,8 @@ var croutonDefaultTemplates = {
14937
14955
  <br/>
14938
14956
  {{/if}}
14939
14957
  <h4>Contact:</h4>
14940
- This meeting is in <a href="{{serviceBodyUrl}}">{{serviceBodyName}}</a>
14958
+ This meeting is in <a href="{{serviceBodyUrl}}">{{serviceBodyName}}</a><br/>
14959
+ {{> offerIcsButton}}
14941
14960
  </td>`,
14942
14961
  marker_contents_template:
14943
14962
  `<h4>{{meeting_name}}</h4>
@@ -16023,6 +16042,7 @@ function Crouton(config) {
16023
16042
  strict_datafields: true, // Only get the datafields that are mentioned in the templates
16024
16043
  meeting_details_href: '', // Link to the meeting details page
16025
16044
  virtual_meeting_details_href: '', // Link to the virtual meeting details page
16045
+ bmlt2ics: '', // URL of feed to generate ICS files from meetings
16026
16046
  exclude_zip_codes: [], // List of zip codes to exclude
16027
16047
  extra_meetings: [], // List of id_bigint of meetings to include
16028
16048
  native_lang: '', // The implied language of meetings with no explicit language specied. May be there as second language, but it still doesn't make sense to search for it.
@@ -17567,7 +17587,13 @@ crouton_Handlebars.registerHelper('times', function(n, block) {
17567
17587
  accum += block.fn(i);
17568
17588
  return accum;
17569
17589
  });
17570
-
17590
+ crouton_Handlebars.registerHelper('hasBMLT2ics', function() {
17591
+ return crouton.config['bmlt2ics'].length>0;});
17592
+ crouton_Handlebars.registerHelper('BMLT2ics', function() {return crouton.config['bmlt2ics'];});
17593
+ crouton_Handlebars.registerPartial('icsButton',
17594
+ '<a href="{{BMLT2ics}}?meeting-id={{id_bigint}}" download="{{meeting_name}}.ics" class="bootstrap-bmlt" ><div class="btn btn-primary bmlt-sharebutton"><span class="glyphicon glyphicon-download-alt"></span> {{getWord "bmlt2ics"}}</div></a>');
17595
+ crouton_Handlebars.registerPartial('offerIcsButton',
17596
+ "{{#if (hasBMLT2ics)}}{{> icsButton}}<br/>{{/if}}");
17571
17597
  function convertToPunyCode(str) {
17572
17598
  return str !== undefined ? punycode.toASCII(str.toLowerCase()).replace(/\W|_/g, "-") : "";
17573
17599
  }