yourcelf / olwidget

Javascript library to replace textareas that contain WKT data with editable OpenLayers maps, and a django app using it for django forms and admin.
Other
91 stars 44 forks source link

layer is not defined in layer.setUndoButtonStates(); #70

Closed elpaso closed 13 years ago

elpaso commented 13 years ago

olwidget.js (line 1218) layer is not defined layer.setUndoButtonStates();

Missing "ctrl" ?

/*
 * Our editing toolbar.
 */
olwidget.EditingToolbar = OpenLayers.Class(OpenLayers.Control.Panel, {
    onClick: function(ctrl, evt) {
        // Keep undo button states
        OpenLayers.Event.stop(evt ? evt : window.event);
        this.activateControl(ctrl);
        // Missing ctrl ?
        ctrl.layer.setUndoButtonStates();

    },
});
elpaso commented 13 years ago

... it seems like my patch does not work in all situations (for instance: Clear all).

The bug remains: layer is not defined

try this:


/*
 * Our editing toolbar.
 */
olwidget.EditingToolbar = OpenLayers.Class(OpenLayers.Control.Panel, {
    onClick: function(ctrl, evt) {
        // Keep undo button states
        OpenLayers.Event.stop(evt ? evt : window.event);
        // ABP: patched
        this.activateControl(ctrl);
        try {
            ctrl.layer.setUndoButtonStates();
        } catch(e) {
            console.log(e);
        };
    },
});
yourcelf commented 13 years ago

Thanks. Not sure what happened here; but I believe the correct call was "this.layer.setUndoButtonStates()". Please open a new issue if this results in unexpected behavior anywhere.