Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

MINOR removed concurrent editing

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@91198 467b73ca-7a2a-4603-9d3b-597d59a354a9
  • Loading branch information...
commit d22e4d17a0400e803d4fcaabe93e2e531056fd41 1 parent 2f7004f
@rixth rixth authored
View
2  code/CMSBatchAction.php
@@ -138,7 +138,7 @@ function run(DataObjectSet $pages) {
}
/**
- * Delete items batch action.
+ * Unpublish (delete from live site) items batch action.
*
* @package cms
* @subpackage batchaction
View
46 code/LeftAndMain.php
@@ -32,8 +32,6 @@ class LeftAndMain extends Controller {
static $tree_class = null;
- static $edit_timeout = 180;
-
static $ForceReload;
static $allowed_actions = array(
@@ -51,7 +49,6 @@ class LeftAndMain extends Controller {
'Member_ProfileForm',
'EditorToolbar',
'EditForm',
- 'pageStatus',
);
/**
@@ -719,9 +716,6 @@ public function save($urlParams, $form) {
FormResponse::add("\$('Form_EditForm_StageURLSegment').value = \"{$record->URLSegment}\";");
}
- $newVersion = ((int)$record->Version) + 1;
- FormResponse::add("if(\$('Form_EditForm_Version')) \$('Form_EditForm_Version').value = {$newVersion};");
-
// If the 'Save & Publish' button was clicked, also publish the page
if (isset($urlParams['publish']) && $urlParams['publish'] == 1) {
$this->extend('onAfterSave', $record);
@@ -751,7 +745,7 @@ public function save($urlParams, $form) {
$result .= $this->getActionUpdateJS($record);
FormResponse::status_message($message, "good");
FormResponse::update_status($record->Status);
-
+
$this->extend('onAfterSave', $record);
return FormResponse::respond();
@@ -1062,44 +1056,6 @@ public function isCurrentPage(DataObject $page) {
* when multiple users are editing a single page. It echoes a json
* encoded string to the UA.
*/
- public function pageStatus() {
- // If no ID is set, we're merely keeping the session alive
- if (!isset($_REQUEST['ID'])) return 1;
-
- $page = $this->getRecord($_REQUEST['ID']);
- if (!$page) {
- // Page has not been found
- $return = array('status' => 'not_found');
- } elseif ($page->getIsDeletedFromStage()) {
- // Page has been deleted from stage
- $return = array('status' => 'deleted');
- } else {
- // Mark me as editing if I'm not already
- $page->UsersCurrentlyEditing()->add(Member::currentUser());
- DB::query("UPDATE SiteTree_UsersCurrentlyEditing SET LastPing = '".date('Y-m-d H:i:s')."'
- WHERE MemberID = ".Member::currentUserID()." AND SiteTreeID = {$page->ID}");
-
- // Page exists, who else is editing it?
- $names = array();
- foreach($page->UsersCurrentlyEditing() as $user) {
- if ($user->ID == Member::currentUserId()) continue;
- $names[] = trim($user->FirstName . ' ' . $user->Surname);
- }
- $return = array('status' => 'editing', 'names' => $names);
-
- // Has it been published since the CMS first loaded it?
- $usersCurrentVersion = isset($_REQUEST['Version']) ? $_REQUEST['Version'] : $page->Version;
- if ($usersCurrentVersion < $page->Version) {
- $return = array('status' => 'not_current_version');
- }
- }
-
- // Delete pings older than 3 minutes from the cache...
- DB::query("DELETE FROM SiteTree_UsersCurrentlyEditing WHERE LastPing < '".date('Y-m-d H:i:s', time()-self::$edit_timeout)."'");
-
- echo Convert::array2json($return);
- return;
- }
/**
* Return the CMS's HTML-editor toolbar
View
63 javascript/LeftAndMain.js
@@ -1,5 +1,4 @@
var _AJAX_LOADING = false;
-var pagePingInterval = 15;
// Resize the tabs once the document is properly loaded
// @todo most of this file needs to be tidied up using jQuery
@@ -866,67 +865,9 @@ function hideIndicator(id) {
Effect.Fade(id, {duration: 0.3});
}
-var CurrentPage = {
- id: function() { if($('Form_EditForm_ID')) return $('Form_EditForm_ID').value; },
- version: function() { if($('Form_EditForm_Version')) return parseInt($('Form_EditForm_Version').value, 10); },
- setVersion: function(version) { $('Form_EditForm_Version').value = version; },
- isDeleted: function() { if($('SiteTree_Alert')) return $('SiteTree_Alert').getAttribute('deletedfromstage'); }
-}
-
setInterval(function() {
- if ($('Form_EditForm_ID')) {
- new Ajax.Request("admin/pageStatus?ID="+CurrentPage.id()+'&Version='+CurrentPage.version(), {
- onSuccess: function(t) {
- var data = eval('('+t.responseText+')');
- var hasAlert = false;
-
- switch(data.status) {
- case 'editing':
- $('SiteTree_Alert').style.border = '2px solid #B5D4FE';
- $('SiteTree_Alert').style.backgroundColor = '#F8FAFC';
- if (data.names.length) {
- hasAlert = true;
- $('SiteTree_Alert').innerHTML = "This page is also being edited by: "+data.names.join(', ');
- }
- break;
- case 'deleted':
- // handle deletion by another user (but not us, or if we're already looking at a deleted version)
- if (CurrentPage.isDeleted() == 0) {
- $('SiteTree_Alert').style.border = '2px solid #ffd324';
- $('SiteTree_Alert').style.backgroundColor = '#fff6bf';
- $('SiteTree_Alert').innerHTML = "This page has been deleted since you opened it.";
- hasAlert = true;
- }
- break;
- case 'not_current_version':
- // handle another user publishing
- $('SiteTree_Alert').style.border = '2px solid #FFD324';
- $('SiteTree_Alert').style.backgroundColor = '#fff6bf';
- $('SiteTree_Alert').innerHTML = "This page has been saved since you opened it. You may want to reload it, or risk overwriting changes.";
- hasAlert = true;
- break;
- case 'not_found':
- break;
- }
-
- if (hasAlert) {
- $('SiteTree_Alert').style.padding = '5px';
- $('SiteTree_Alert').style.marginBottom = '5px';
- $('SiteTree_Alert').style.display = 'block';
- } else {
- $('SiteTree_Alert').innerHTML = '';
- $('SiteTree_Alert').style.padding = '0px';
- $('SiteTree_Alert').style.marginBottom = '0px';
- if ($('SiteTree_Alert').style.display != 'none') $('SiteTree_Alert').style.display = 'none';
- }
- }
- });
- } else {
- // We're not looking at a page, so at this stage, we're just
- // pinging to keep the session alive.
- new Ajax.Request("admin/pageStatus");
- }
-}, pagePingInterval*1000);
+ new Ajax.Request("Security/ping");
+}, 180*1000);
/**
* Find and enable TinyMCE on all htmleditor fields
Please sign in to comment.
Something went wrong with that request. Please try again.