@@ -891,24 +891,28 @@ ui.toolbar.both.click(function () {
891891//permission
892892//freely
893893ui . infobar . permission . freely . click ( function ( ) {
894- updatePermission ( "freely" ) ;
894+ emitPermission ( "freely" ) ;
895895} ) ;
896896//editable
897897ui . infobar . permission . editable . click ( function ( ) {
898- updatePermission ( "editable" ) ;
898+ emitPermission ( "editable" ) ;
899899} ) ;
900900//locked
901901ui . infobar . permission . locked . click ( function ( ) {
902- updatePermission ( "locked" ) ;
902+ emitPermission ( "locked" ) ;
903903} ) ;
904904
905- function updatePermission ( _permission ) {
905+ function emitPermission ( _permission ) {
906906 if ( _permission != permission ) {
907907 socket . emit ( 'permission' , _permission ) ;
908908 }
909909}
910910
911- function checkPermission ( ) {
911+ function updatePermission ( newPermission ) {
912+ if ( permission != newPermission ) {
913+ permission = newPermission ;
914+ refreshView ( ) ;
915+ }
912916 var label = null ;
913917 var title = null ;
914918 switch ( permission ) {
@@ -934,6 +938,30 @@ function checkPermission() {
934938 ui . infobar . permission . label . html ( label ) . attr ( 'title' , title ) ;
935939}
936940
941+ function havePermission ( ) {
942+ var bool = false ;
943+ switch ( permission ) {
944+ case "freely" :
945+ bool = true ;
946+ break ;
947+ case "editable" :
948+ if ( ! personalInfo . login ) {
949+ bool = false ;
950+ } else {
951+ bool = true ;
952+ }
953+ break ;
954+ case "locked" :
955+ if ( personalInfo . userid != owner ) {
956+ bool = false ;
957+ } else {
958+ bool = true ;
959+ }
960+ break ;
961+ }
962+ return bool ;
963+ }
964+
937965//socket.io actions
938966var socket = io . connect ( ) ;
939967//overwrite original event for checking login state
@@ -981,8 +1009,7 @@ socket.on('check', function (data) {
9811009 updateLastChange ( ) ;
9821010} ) ;
9831011socket . on ( 'permission' , function ( data ) {
984- permission = data . permission ;
985- checkPermission ( ) ;
1012+ updatePermission ( data . permission ) ;
9861013} ) ;
9871014var docmaxlength = null ;
9881015var otk = null ;
@@ -993,11 +1020,10 @@ socket.on('refresh', function (data) {
9931020 editor . setOption ( "maxLength" , docmaxlength ) ;
9941021 otk = data . otk ;
9951022 owner = data . owner ;
996- permission = data . permission ;
1023+ updatePermission ( data . permission ) ;
9971024 lastchangetime = data . updatetime ;
9981025 lastchangeui = ui . infobar . lastchange ;
9991026 updateLastChange ( ) ;
1000- checkPermission ( ) ;
10011027 if ( ! loaded ) {
10021028 changeMode ( currentMode ) ;
10031029 loaded = true ;
0 commit comments