@@ -479,11 +479,20 @@ define([
479
479
if ( data . metadata !== undefined ) {
480
480
this . metadata = data . metadata ;
481
481
}
482
+ // upgrade cell's editable metadata if not defined
483
+ if ( this . metadata . editable === undefined ) {
484
+ this . metadata . editable = this . is_editable ( ) ;
485
+ }
486
+ // upgrade cell's deletable metadata if not defined
487
+ if ( this . metadata . deletable === undefined ) {
488
+ this . metadata . deletable = this . is_deletable ( ) ;
489
+ }
482
490
} ;
483
491
484
492
485
493
/**
486
494
* can the cell be split into two cells (false if not deletable)
495
+ *
487
496
* @method is_splittable
488
497
**/
489
498
Cell . prototype . is_splittable = function ( ) {
@@ -500,14 +509,28 @@ define([
500
509
} ;
501
510
502
511
/**
503
- * is the cell deletable ? only false (undeletable ) if
504
- * metadata.deletable is explicitly false -- everything else
512
+ * is the cell edtitable ? only false (readonly ) if
513
+ * metadata.editable is explicitly false -- everything else
505
514
* counts as true
506
515
*
516
+ * @method is_editable
517
+ **/
518
+ Cell . prototype . is_editable = function ( ) {
519
+ if ( this . metadata . editable === false ) {
520
+ return false ;
521
+ }
522
+ return true ;
523
+ } ;
524
+
525
+ /**
526
+ * is the cell deletable? only false (undeletable) if
527
+ * metadata.deletable is explicitly false or if the cell is not
528
+ * editable -- everything else counts as true
529
+ *
507
530
* @method is_deletable
508
531
**/
509
532
Cell . prototype . is_deletable = function ( ) {
510
- if ( this . metadata . deletable === false ) {
533
+ if ( this . metadata . deletable === false || ! this . is_editable ( ) ) {
511
534
return false ;
512
535
}
513
536
return true ;
0 commit comments