Skip to content

Commit d4db078

Browse files
committed
fixup: changes after @ybon's review.
1 parent ba96212 commit d4db078

File tree

4 files changed

+19
-32
lines changed

4 files changed

+19
-32
lines changed

umap/static/umap/js/modules/schema.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -313,15 +313,15 @@ export const SCHEMA = {
313313
},
314314
outlink: {
315315
type: String,
316-
impacts: ['data'],
316+
impacts: [],
317317
label: translate('Link to…'),
318318
helpEntries: 'outlink',
319319
placeholder: 'http://...',
320320
inheritable: true,
321321
},
322322
outlinkTarget: {
323323
type: String,
324-
impacts: ['data'],
324+
impacts: [],
325325
label: translate('Open link in…'),
326326
inheritable: true,
327327
default: 'blank',
@@ -511,6 +511,7 @@ export const SCHEMA = {
511511
label: translate('Default zoom level'),
512512
inheritable: true,
513513
},
514+
// FIXME This is an internal Leaflet property, we might want to do this differently.
514515
_latlng: {
515516
type: Object,
516517
impacts: ['data'],

umap/static/umap/js/modules/sync/engine.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { MapUpdater, DataLayerUpdater, FeatureUpdater } from './updaters.js'
44
export class SyncEngine {
55
constructor(map) {
66
this.map = map
7-
this.receiver = new MessagesDispatcher(this.map)
7+
this.dispatcher = new MessagesDispatcher(this.map)
88
this._initialize()
99
}
1010
_initialize() {
@@ -22,7 +22,7 @@ export class SyncEngine {
2222
}
2323

2424
start(webSocketURI, authToken) {
25-
this.transport = new WebSocketTransport(webSocketURI, authToken, this.receiver)
25+
this.transport = new WebSocketTransport(webSocketURI, authToken, this.dispatcher)
2626
this.sender = new MessagesSender(this.transport)
2727
this.upsert = this.sender.upsert.bind(this.sender)
2828
this.update = this.sender.update.bind(this.sender)

umap/static/umap/js/modules/sync/updaters.js

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ export class DataLayerUpdater extends BaseUpdater {
5151
upsert({ value }) {
5252
// Inserts does not happen (we use multiple updates instead).
5353
this.map.createDataLayer(value, false)
54+
this.map.render()
5455
}
5556

5657
update({ key, metadata, value }) {
@@ -60,14 +61,6 @@ export class DataLayerUpdater extends BaseUpdater {
6061
}
6162
}
6263

63-
/**
64-
* This is an abstract base class
65-
* And needs to be subclassed to be used.
66-
*
67-
* The child classes need to expose:
68-
* - `featureClass`: the name of the class to create the feature
69-
* - `featureArgument`: an object with the properties to pass to the class when bulding it.
70-
**/
7164
export class FeatureUpdater extends BaseUpdater {
7265
getFeatureFromMetadata({ id, layerId }) {
7366
const datalayer = this.getDataLayerFromID(layerId)
@@ -79,16 +72,14 @@ export class FeatureUpdater extends BaseUpdater {
7972
let { id, layerId } = metadata
8073
const datalayer = this.getDataLayerFromID(layerId)
8174
let feature = this.getFeatureFromMetadata(metadata, value)
82-
if (feature === undefined) {
83-
console.log(`Unable to find feature with id = ${metadata.id}. Creating a new one`)
84-
}
75+
8576
feature = datalayer.geometryToFeature({
8677
geometry: value.geometry,
8778
geojson: value,
8879
id,
8980
feature,
9081
})
91-
feature.addTo(datalayer)
82+
datalayer.addLayer(feature)
9283
}
9384

9485
// Update a property of an object
@@ -103,9 +94,9 @@ export class FeatureUpdater extends BaseUpdater {
10394
datalayer.geometryToFeature({ geometry: value, id: metadata.id, feature })
10495
default:
10596
this.updateObjectValue(feature, key, value)
97+
feature.datalayer.indexProperties(feature)
10698
}
10799

108-
feature.datalayer.indexProperties(feature)
109100
feature.render([key])
110101
}
111102

umap/views.py

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -792,23 +792,18 @@ def get_websocket_auth_token(request, map_id, map_inst):
792792
"""
793793
map_object: Map = Map.objects.get(pk=map_id)
794794

795-
if map_object.can_edit(request.user, request):
796-
permissions = ["edit"]
797-
if map_object.is_owner(request.user, request):
798-
permissions.append("owner")
795+
permissions = ["edit"]
796+
if map_object.is_owner(request.user, request):
797+
permissions.append("owner")
799798

800-
if request.user.is_authenticated:
801-
user = request.user.pk
802-
else:
803-
user = "anonymous"
804-
signed_token = TimestampSigner().sign_object(
805-
{"user": user, "map_id": map_id, "permissions": permissions}
806-
)
807-
return simple_json_response(token=signed_token)
799+
if request.user.is_authenticated:
800+
user = request.user.pk
808801
else:
809-
return HttpResponseForbidden(
810-
_("You cannot edit this map with your current permissions.")
811-
)
802+
user = "anonymous"
803+
signed_token = TimestampSigner().sign_object(
804+
{"user": user, "map_id": map_id, "permissions": permissions}
805+
)
806+
return simple_json_response(token=signed_token)
812807

813808

814809
class MapUpdate(FormLessEditMixin, PermissionsMixin, UpdateView):

0 commit comments

Comments
 (0)