Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

SS3 Data Grid. When adding item and clicking back Page must be refreshed


Go to End


1024 Views

Avatar
Fraser

Community Member, 48 Posts

1 August 2012 at 2:26pm

I have put together a couple of Data Grids to allow users to upload images and videos into a gallery system. It all works fine for adding items, however once you enter that "add new xxx" section and try to come back out of it with the back button, 2 throbbers appear rather than 1 and then main page area goes blank requiring a page refresh to view anything.

Does anyone have any ideas what could be happening here?

GalleryImage.php

<?php
 
class GalleryImage extends DataObject {
 
  	static $db = array (
		'Title' => 'Varchar',
		'Description' => 'Text'
	);

  	static $has_one = array ( 
		'Gallery' => 'Gallery', 
	 	'GalleryImage' => 'Image' 
	);
 
	public static $summary_fields = array(
    	'Title' => 'Image Title',
    	'Description' => 'Image Description'
  	);
 
  	public function getCMSFields_forPopup() {
 
	    $imageField = new UploadField('GalleryImage', 'Image');
	    $imageField->allowedExtensions = array('jpg', 'png', 'gif');
	 
	    // Name, Description and Website fields
	    return new FieldList(
	    	new TextField('Title', 'Title'),
	     	new TextareaField('Description', 'Image Description'),
	      	$imageField
	    );
	}
}

LinkedVideo.php

<?php
 
class LinkedVideo extends DataObject {
 
  	static $db = array (
  		'URL' => 'Varchar',
		'Title' => 'Varchar',
		'Description' => 'Text'
	);

  	static $has_one = array ( 
		'Gallery' => 'Gallery'
	);
 
	public static $summary_fields = array(
    	'URL' => 'Video URL (Youtube or Vimeo)',
    	'Title' => 'Image Title',
    	'Description' => 'Image Description'
  	);
 
  	public function getCMSFields_forPopup() {
	    return new FieldList(
	    	new TextField('URL', 'URL (Youtube or Vimeo)'),
	    	new TextField('Title', 'Title'),
	     	new TextareaField('Description', 'Image Description')
	    );
	}
}

Gallery.php

.....
public static $has_many = array(
		'GalleryImages' => 'GalleryImage',
		'LinkedVideos' => 'LinkedVideo'
	);
	
	function getCMSFields() {
		$fields = parent::getCMSFields();
		$gridFieldConfig = GridFieldConfig::create()->addComponents(
	    new GridFieldToolbarHeader(),
	    new GridFieldAddNewButton('toolbar-header-right'),
	    new GridFieldSortableHeader(),
	    new GridFieldDataColumns(),
	    new GridFieldPaginator(10),
	    new GridFieldEditButton(),
	    new GridFieldDeleteAction(),
	    new GridFieldDetailForm()
	    );
	    
	    $gridField = new GridField("GalleryImages", "Images:", $this->GalleryImages(), $gridFieldConfig);
	    $fields->addFieldToTab("Root.Images", $gridField);
	    
	    $gridFieldConfig = GridFieldConfig::create()->addComponents(
	    new GridFieldToolbarHeader(),
	    new GridFieldAddNewButton('toolbar-header-right'),
	    new GridFieldSortableHeader(),
	    new GridFieldDataColumns(),
	    new GridFieldPaginator(10),
	    new GridFieldEditButton(),
	    new GridFieldDeleteAction(),
	    new GridFieldDetailForm()
	    );
	    
	    $gridField = new GridField("LinkedVideos", "Videos:", $this->LinkedVideos(), $gridFieldConfig);
	    $fields->addFieldToTab("Root.Videos", $gridField);
		
		return $fields;
	}

}
.....

Attached Files