PageSourceSearch

https://montague-ma.gov/RFAssets/js/joey.js?ver=20260911135248

js montague-ma.gov collected 2026-09-24 10:10:55 UTC 3,593 bytes, 107 lines download raw bytes

1// --- Edit Image Change
2// --- to display the tr when there is an image uploaded success in dropzone-script-main
3let giveFeedbackText = 'Please add image alt text under image info'
4function doImageChange(display, alt, feedback){
5  let _allDisplay = Array.from(document.querySelectorAll(display));
6  let _allAlt = Array.from(document.querySelectorAll(alt));
7  let _allFeedback = Array.from(document.querySelectorAll(feedback));
8  if(_allDisplay.length > 0){
9    _allDisplay.forEach(function(e){
10      e.setAttribute('style', 'transform: scale(1)');
11      e.classList.add('dis');
12    });
13  };
14  if(_allAlt.length > 0){
15    _allAlt.forEach(function(e){
16      e.required = true;
17    });
18  };
19};
20function doGiveFeedbackOnClick({button: button, field: field, feedbackDiv: feedbackDiv, feedback: feedback, doThis: doThis}){
21  // Find the Button
22  let _thisButton = Array.from(document.querySelectorAll(button));
23  // The field that the button is looking for
24  let _thisField = Array.from(document.querySelectorAll(field));
25  // The div the feedback will appear in
26  let _thisFeedback = Array.from(document.querySelectorAll(feedbackDiv));
27  // Give each button the same onClick function
28  _thisButton.forEach(function(b){
29    if(b.getAttribute('type') == 'Submit'){
30      b.addEventListener('click', function(event){
31        _thisField.forEach(function(el){
32          // Does the field has a value and is required
33          // if so run function "doThis" and feedback
34          if(!el.value && el.required){
35            _thisFeedback.forEach(function(ef){
36              ef.innerHTML = feedback
37            })
38            doThis()
39          }
40        })
41      })
42    }
43  })
44}
45
46//----- JSColor Picker
47let inputTarget;
48let myColor;
49$('.modal').on('hide.bs.modal', function (event) {
50    // Modal Hide
51    if(inputTarget){
52       inputTarget = '';
53       myColor = '';
54    }
55});
56//------ End JSColor Picker
57
58//-------------------------------
59
60//------ Mobile Dropdown-Menu
61//---Pagenav
62let navDropdown = document.querySelectorAll('.pagenav-dropdown .dropdown');
63let navDropArray = Array.from(navDropdown)
64navDropArray.forEach(function(item){
65  let dropToggle = $( item ).find( 'a.dropdown-toggle' );
66  let spanInA = dropToggle.find('span');
67  let spanInAText = dropToggle.find('span').text();
68  let dropDown = $( item ).find( 'ul.dropdown-menu');
69  let href = dropToggle.attr( 'href' );
70  if(dropToggle[0]){
71    $( '.collapse' ).on('show.bs.collapse', function(){
72      let changeSpan = spanInA.replaceWith(spanInAText)
73      let removehref = dropToggle.removeAttr( 'href' );
74      let hovered = false
75      dropToggle[0].addEventListener("click", function(event){
76        if(hovered){
77          $(event.target).attr( 'href', href );
78        } else {
79          hovered = true
80        }
81      });
82    })
83  }
84})
85
86//---DropShade
87let navDropShade = document.querySelectorAll('.pagenav-dropshade .dropdown');
88let navDropShadeArray = Array.from(navDropShade)
89navDropShadeArray.forEach(function(item){
90  let dropToggle = $( item ).find( 'a.dropdown-toggle' );
91  if(dropToggle[0]){
92    let href = dropToggle.attr( 'href' );
93    $( '.collapse' ).on('show.bs.collapse', function(){
94      let removehref = dropToggle.removeAttr( 'href' );
95      let hovered = false
96      dropToggle[0].addEventListener("click", function(event){
97        if(hovered){
98          $(event.target).attr( 'href', href );
99        } else {
100          hovered = true
101        }
102      });
103    })
104  }
105})
106//------ End Mobile Dropdown-Menu
107

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.