Skip to content

Commit

Permalink
If resource has value readonly === true, it's readonly.
Browse files Browse the repository at this point in the history
  • Loading branch information
Jarno Kurlin committed Nov 4, 2012
1 parent 483abaf commit 839806c
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 6 deletions.
15 changes: 13 additions & 2 deletions src/common/SelectionManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,10 @@ function SelectionManager() {


function reportSelection(startDate, endDate, allDay, ev, resource) {
if (typeof resource == 'object' && resource.readonly === true) {
return false;
}

selected = true;
trigger('select', null, startDate, endDate, allDay, ev, '', resource);
}
Expand All @@ -71,7 +75,8 @@ function SelectionManager() {
var hoverListener = t.getHoverListener();
var reportDayClick = t.reportDayClick; // this is hacky and sort of weird
var row;
var resources = t.getResources;
var resources = t.getResources || [];
var resourceRO;

var viewName = getViewName();
if (ev.which == 1 && opt('selectable')) { // which==1 means left mouse button
Expand All @@ -80,7 +85,13 @@ function SelectionManager() {
var dates;
hoverListener.start(function(cell, origCell) { // TODO: maybe put cellDate/cellIsAllDay info in cell
clearSelection();
if (cell && cellIsAllDay(cell)) {

if (cell) {
resourceRO = typeof resources[cell.row] == 'object' ? resources[cell.row].readonly : false;
}


if (cell && cellIsAllDay(cell) && resourceRO !== true) {
dates = [ cellDate(origCell), cellDate(cell) ].sort(cmp);
renderSelection(dates[0], dates[1], (viewName == 'resourceDay' ? false : true), cell.row);
row = cell.row;
Expand Down
28 changes: 24 additions & 4 deletions src/resource/ResourceEventRenderer.js
Original file line number Diff line number Diff line change
Expand Up @@ -143,22 +143,32 @@ function ResourceEventRenderer() {

function draggableResourceEvent(event, eventElement) {
var hoverListener = getHoverListener();
var dayDelta, minuteDelta, resourceDelta, newResourceId, resources, viewName = getViewName(), weekendTestDate, daysToAdd, daysToDel, dayDeltaStart, dayDeltaEnd, i;
var dayDelta, minuteDelta, resourceDelta, newResourceId, resources = t.getResources, viewName = getViewName(), weekendTestDate, daysToAdd, daysToDel, dayDeltaStart, dayDeltaEnd, i;

var denyEventDragging = false;
$(resources).each(function(i, resource) {
if (resource.id == event.resource && resource.readonly) {
denyEventDragging = true;
}
});

eventElement.draggable({
zIndex: 9,
delay: 50,
disabled: denyEventDragging,
opacity: opt('dragOpacity'),
revertDuration: opt('dragRevertDuration'),
start: function(ev, ui) {
trigger('eventDragStart', eventElement, event, ev, ui);
hideEvents(event, eventElement);
hoverListener.start(function(cell, origCell, rowDelta, colDelta) {
eventElement.draggable('option', 'revert', !cell || !rowDelta && !colDelta);
eventElement.draggable('option', 'revert', !cell || !rowDelta && !colDelta || resources[cell.row].readonly === true);

clearOverlays();
if (cell) {

if (cell && !resources[cell.row].readonly) {
//setOverflowHidden(true);
resourceDelta = rowDelta;
resources = t.getResources;
newResourceId = resources[cell.row].id;

if (viewName == 'resourceDay') {
Expand Down Expand Up @@ -277,6 +287,16 @@ function ResourceEventRenderer() {
var handle = element.find('div.ui-resizable-' + direction);
var isResizing = false;

// let's check if resource is readonly?
var denyEventResizing = false;
$(t.getResources).each(function(i, resource) {
if (resource.id == event.resource && resource.readonly) {
denyEventResizing = true;
}
});

if (denyEventResizing) return false;

// TODO: look into using jquery-ui mouse widget for this stuff
disableTextSelection(element); // prevent native <a> selection for IE
element
Expand Down

0 comments on commit 839806c

Please sign in to comment.