Option 1
If a student is viewing someone else's program in mission control, it is read-only (I think there's a flag we can set on the Blockly workspace that disables the blocks from even moving).
Within Mission Control, there is a "Remix this Program!" button, which copies the program to the users' account, and makes it editable.
Pro: The user can view someone else's program without copying it into her account.
Con: It might not be clear to the user why a program is read-only, and it may appear like Mission Control is frozen when the blocks don't move.
Option 2
From the program list view, every program that does not belong to the user has a "Remix" button instead of the "View" button. When the user clicks the remix button, the program is copied into her account and she is immediately taken to Mission Control where she can edit it.
Pro: If the user can see a program, it is hers and she can edit it. Never are the blocks frozen.
Con: The user's program list will become cluttered with programs she just wanted to view.
Note: Scratch and Glitch both use Option 1.
@cabarnes, it's possible that remixing could be a UI-only ticket, since the UI has the ability fetch and create new programs. Or, can you think of a specialized API endpoint that would make this easier on the UI?
Option 1
If a student is viewing someone else's program in mission control, it is read-only (I think there's a flag we can set on the Blockly workspace that disables the blocks from even moving).
Within Mission Control, there is a "Remix this Program!" button, which copies the program to the users' account, and makes it editable.
Pro: The user can view someone else's program without copying it into her account.
Con: It might not be clear to the user why a program is read-only, and it may appear like Mission Control is frozen when the blocks don't move.
Option 2
From the program list view, every program that does not belong to the user has a "Remix" button instead of the "View" button. When the user clicks the remix button, the program is copied into her account and she is immediately taken to Mission Control where she can edit it.
Pro: If the user can see a program, it is hers and she can edit it. Never are the blocks frozen.
Con: The user's program list will become cluttered with programs she just wanted to view.
Note: Scratch and Glitch both use Option 1.
@cabarnes, it's possible that remixing could be a UI-only ticket, since the UI has the ability fetch and create new programs. Or, can you think of a specialized API endpoint that would make this easier on the UI?