Skip to content
This repository has been archived by the owner on May 19, 2021. It is now read-only.

Commit

Permalink
Fix Firefox issues
Browse files Browse the repository at this point in the history
  • Loading branch information
KyrneDev committed Sep 26, 2018
1 parent ee075b9 commit 6774aaf
Show file tree
Hide file tree
Showing 5 changed files with 92 additions and 79 deletions.
94 changes: 49 additions & 45 deletions js/forum/dist/extension.js
Original file line number Diff line number Diff line change
Expand Up @@ -135,10 +135,6 @@ $.fn.locationPicker = function (options) {
return data
}

this.getAddress = function () {
return data.formatted_address
}

var setAddressInternal = function (lat, long) {
setMapLocation(lat, long)
data = {
Expand All @@ -148,7 +144,7 @@ $.fn.locationPicker = function (options) {
onLocationChanged()
}

this.setLocation = function (lat, long) {
this.setLocation = function(lat, long) {
setAddressInternal(lat, long)
}

Expand Down Expand Up @@ -228,7 +224,7 @@ System.register('reflar/geotags/addGeotagsList', ['flarum/extend', 'flarum/app',
href: '#',
onclick: function onclick(e) {
e.preventDefault();
app.modal.show(new GeotagModal({ geotags: [geotag] }));
app.modal.show(new GeotagModal({ geotags: [geotag], wait: false }));
}
}, geotag.lat() + '°, ' + geotag.lng() + '°')];
}
Expand Down Expand Up @@ -292,7 +288,8 @@ System.register('reflar/geotags/components/GeotagCreateModal', ['flarum/app', 'f
value: function init() {
this.textAreaObj = this.props.textAreaObj;
this.loading = false;
this.mapField = null;

this.map = null;

this.geotagData = {
lat: m.prop(38.8977),
Expand All @@ -311,10 +308,19 @@ System.register('reflar/geotags/components/GeotagCreateModal', ['flarum/app', 'f
value: function title() {
return app.translator.trans('reflar-geotags.forum.create_modal.default_title');
}
}, {
key: 'onhide',
value: function onhide() {
this.map.setLocation(38.8977, -77.0365);
}
}, {
key: 'onready',
value: function onready() {
this.loadLocationPicker();
var _this2 = this;

$('#modal').on('shown.bs.modal', function () {
_this2.loadLocationPicker();
});
}
}, {
key: 'content',
Expand Down Expand Up @@ -396,26 +402,32 @@ System.register('reflar/geotags/components/GeotagCreateModal', ['flarum/app', 'f
value: function updateLocation(type, value) {
if (type === 'lng') {
this.geotagData.lng(value);
this.mapField.setLocation(this.geotagData.lat(), value);
} else {
this.map.setLocation(this.geotagData.lat(), value);
} else if (type === 'lat') {
this.geotagData.lat(value);
this.mapField.setLocation(value, this.geotagData.lng());
this.map.setLocation(value, this.geotagData.lng());
} else if (this.map) {
var data = this.map.getData();
this.geotagData.lat(data.lat);
this.geotagData.lng(data.long);
}
if (window.chrome && window.chrome.webstore) {
m.redraw();
}

m.redraw();
}
}, {
key: 'getLocation',
value: function getLocation() {
var _this2 = this;
var _this3 = this;

if ('geolocation' in navigator) {
m.startComputation();
navigator.geolocation.getCurrentPosition(function (position) {
_this2.geotagData.lat(position.coords.latitude);
_this2.geotagData.lng(position.coords.longitude);
_this2.mapField.setLocation(position.coords.latitude, position.coords.longitude);
m.endComputation();
_this3.geotagData.lat(position.coords.latitude);
_this3.geotagData.lng(position.coords.longitude);
_this3.map.setLocation(position.coords.latitude, position.coords.longitude);
if (window.chrome && window.chrome.webstore) {
m.redraw();
}
});
}
}
Expand All @@ -436,28 +448,21 @@ System.register('reflar/geotags/components/GeotagCreateModal', ['flarum/app', 'f
}
}, {
key: 'loadLocationPicker',
value: function loadLocationPicker(element) {
var _this3 = this;

this.mapField = $(element).find('.Map-field');

$('#modal').on('shown.bs.modal', function () {
if ($('#map.olMap').length === 0) {
_this3.mapField.locationPicker({
init: {
location: {
latitude: _this3.geotagData.lat(),
longitude: _this3.geotagData.lng()
}
},
locationChanged: function locationChanged(location) {
_this3.geotagData.lat(location.lat !== undefined ? location.lat : _this3.geotagData.lat());
_this3.geotagData.lng(location.long !== undefined ? location.long : _this3.geotagData.lng());
m.redraw();
value: function loadLocationPicker() {
var mapField = $('.Map-field').find('.Map-field');

if ($('#map.olMap').length === 0) {
mapField.locationPicker({
init: {
location: {
latitude: this.geotagData.lat(),
longitude: this.geotagData.lng()
}
});
}
});
},
locationChanged: this.updateLocation.bind(this)
});
this.map = mapField;
}
}
}]);
return GeotagCreateModal;
Expand Down Expand Up @@ -521,7 +526,7 @@ System.register('reflar/geotags/components/GeotagListModal', ['flarum/app', 'fla
onclick: function onclick(e) {
e.preventDefault();
parent.hide();
app.modal.show(new GeotagModal({ geotags: [parent.geotag] }));
app.modal.show(new GeotagModal({ geotags: [parent.geotag], wait: true }));
}
}, this.geotag.lat() + '°, ' + this.geotag.lng() + '°'), Button.component({
className: 'Button Button--icon Button--link',
Expand Down Expand Up @@ -563,9 +568,7 @@ System.register('reflar/geotags/components/GeotagModal', ['flarum/components/Mod

babelHelpers.createClass(GeotagModal, [{
key: 'init',
value: function init() {
this.geotags = this.props.geotags;
}
value: function init() {}
}, {
key: 'className',
value: function className() {
Expand All @@ -581,7 +584,8 @@ System.register('reflar/geotags/components/GeotagModal', ['flarum/components/Mod
value: function onready() {
var _this2 = this;

if (m.route().includes('/t/') || this.geotags.length > 1) {
this.geotags = this.props.geotags;
if (m.route().includes('/t/') || this.geotags.length > 1 || typeof InstallTrigger !== 'undefined' && this.props.wait !== true || this.props.wait === false) {
$('#modal').on('shown.bs.modal', function () {
_this2.loadMap();
});
Expand Down
2 changes: 1 addition & 1 deletion js/forum/src/addGeotagsList.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ export default function () {
href: '#',
onclick: function (e) {
e.preventDefault();
app.modal.show(new GeotagModal({geotags: [geotag]}));
app.modal.show(new GeotagModal({geotags: [geotag], wait: false}));
}
}, geotag.lat() + '°, ' + geotag.lng() + '°')
];
Expand Down
69 changes: 39 additions & 30 deletions js/forum/src/components/GeotagCreateModal.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@ export default class GeotagCreateModal extends Modal {
init() {
this.textAreaObj = this.props.textAreaObj;
this.loading = false;
this.mapField = null;


this.map = null;

this.geotagData = {
lat: m.prop(38.8977),
Expand All @@ -25,8 +27,14 @@ export default class GeotagCreateModal extends Modal {
return app.translator.trans('reflar-geotags.forum.create_modal.default_title');
}

onhide() {
this.map.setLocation(38.8977, -77.0365)
}

onready() {
this.loadLocationPicker()
$('#modal').on('shown.bs.modal', () => {
this.loadLocationPicker()
});
}

content() {
Expand All @@ -37,7 +45,7 @@ export default class GeotagCreateModal extends Modal {
<div className="Form-group">
<label>{app.translator.trans('reflar-geotags.forum.create_modal.address_label')}</label>
</div>
<input type="hidden" data-type="location-store" />
<input type="hidden" data-type="location-store"/>

<div className="Map-container" style="margin: 10px 0;">
<div data-type="map" id="map" style="height: 400px; width: 100%;"/>
Expand Down Expand Up @@ -91,23 +99,29 @@ export default class GeotagCreateModal extends Modal {
updateLocation(type, value) {
if (type === 'lng') {
this.geotagData.lng(value);
this.mapField.setLocation(this.geotagData.lat(), value)
} else {
this.map.setLocation(this.geotagData.lat(), value)
} else if (type === 'lat') {
this.geotagData.lat(value);
this.mapField.setLocation(value, this.geotagData.lng())
this.map.setLocation(value, this.geotagData.lng())
} else if (this.map) {
var data = this.map.getData()
this.geotagData.lat(data.lat);
this.geotagData.lng(data.long);
}
if (window.chrome && window.chrome.webstore) {
m.redraw()
}

m.redraw();
}

getLocation() {
if('geolocation' in navigator) {
m.startComputation();
if ('geolocation' in navigator) {
navigator.geolocation.getCurrentPosition(position => {
this.geotagData.lat(position.coords.latitude);
this.geotagData.lng(position.coords.longitude);
this.mapField.setLocation(position.coords.latitude, position.coords.longitude);
m.endComputation();
this.map.setLocation(position.coords.latitude, position.coords.longitude);
if (window.chrome && window.chrome.webstore) {
m.redraw()
}
});
}
}
Expand All @@ -126,25 +140,20 @@ export default class GeotagCreateModal extends Modal {
this.hide();
}

loadLocationPicker(element) {
this.mapField = $(element).find('.Map-field');
loadLocationPicker() {
var mapField = $('.Map-field').find('.Map-field');

$('#modal').on('shown.bs.modal', () => {
if ($('#map.olMap').length === 0) {
this.mapField.locationPicker({
init: {
location: {
latitude: this.geotagData.lat(),
longitude: this.geotagData.lng()
},
if ($('#map.olMap').length === 0) {
mapField.locationPicker({
init: {
location: {
latitude: this.geotagData.lat(),
longitude: this.geotagData.lng()
},
locationChanged: (location => {
this.geotagData.lat(location.lat !== undefined ? location.lat : this.geotagData.lat());
this.geotagData.lng(location.long !== undefined ? location.long : this.geotagData.lng());
m.redraw();
})
});
}
});
},
locationChanged: this.updateLocation.bind(this)
})
this.map = mapField;
}
}
}
2 changes: 1 addition & 1 deletion js/forum/src/components/GeotagListModal.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ export default class GeotagListModal extends Modal {
onclick: function (e) {
e.preventDefault();
parent.hide();
app.modal.show(new GeotagModal({geotags: [parent.geotag]}));
app.modal.show(new GeotagModal({geotags: [parent.geotag], wait: true}));
}
}, this.geotag.lat() + '°, ' + this.geotag.lng() + '°'),
Button.component({
Expand Down
4 changes: 2 additions & 2 deletions js/forum/src/components/GeotagModal.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import Modal from 'flarum/components/Modal';

export default class GeotagModal extends Modal {
init() {
this.geotags = this.props.geotags;
}

className() {
Expand All @@ -14,7 +13,8 @@ export default class GeotagModal extends Modal {
}

onready() {
if (m.route().includes('/t/') || this.geotags.length > 1) {
this.geotags = this.props.geotags;
if (m.route().includes('/t/') || this.geotags.length > 1 || (typeof InstallTrigger !== 'undefined' && this.props.wait !== true) || this.props.wait === false) {
$('#modal').on('shown.bs.modal', () => {
this.loadMap()
})
Expand Down

0 comments on commit 6774aaf

Please sign in to comment.