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.

DataObjectManager Module /

Discuss the DataObjectManager module, and the related ImageGallery module.

Moderators: martimiz, UncleCheese, Sean, biapar, Willr, Ingo, swaiba, simon_w

Bug Reports


Reply


297 Posts   52947 Views

Avatar
wmk

Community Member, 46 Posts

20 August 2009 at 2:43am

ok. left my comment there.

using translation sometimes makes me think about the advantages of esperanto... ;)

Avatar
theAlien

Community Member, 131 Posts

21 August 2009 at 2:11am

Edited: 21/08/2009 2:16am

Two minor template-bugs:
1) Setting $myDOM->setPermissions('add') won't remove either the delete or the edit buttons. This can easily be solved by adding <% if Can(delete) %> ... <% end_if %> around line 76 and <% if Can(edit) %> ... <% end_if %> aroundline 75 of DataObjectManager.ss. I guess it's the same for the other templates (but haven't tested it)

2) Not really a bug, more of an improvement: Removing the add-button with setPermissions will leave a huge blank space above the DOM. This can either be solved by putting the title of the DOM instead of the button with <% else %> or by removing the whole block by adding <% if HasFilter || Can(add) %> ... <% end_if %> around lines 3-14 of DOM.ss (and again I guess it's the same for the other DOM-templates)

BTW, did you deliberately choose not to support the $myDOM->setPermissions('show') option?

Avatar
UncleCheese

Forum Moderator, 4096 Posts

21 August 2009 at 2:46am

setPermissions() takes an array, not a string.

$myDom->setPermissions(array('add','edit','upload'));

Avatar
theAlien

Community Member, 131 Posts

22 August 2009 at 1:33am

Sorry,
That's a typo in the post...
The issue still exists

(literal quote from my code, which doesn't hide the delete-button (though disables it's functionality): $accountobject->setPermissions(array('edit')); // turn add- and delete-buttons off)

Avatar
silk78

Community Member, 8 Posts

25 August 2009 at 1:25am

Hi!

When trying to import existing images to an image gallery I get the following error:

Error: Uncaught Exception: Object->__call(): the method 'backlinktracking' does not exist on 'ImageGalleryImage'
At line 551 in /srv/rsv-kanu_neu/sapphire/core/Object.php

I am using the latest releases of Silverstripe and Image Gallery.

Best Regards,
Christian

Avatar
UncleCheese

Forum Moderator, 4096 Posts

25 August 2009 at 3:16am

I'm not sure why that happens. Looks like an SS bug to me. For now I've put in a temporary fix that you should get if you update your svn.

Avatar
silk78

Community Member, 8 Posts

26 August 2009 at 6:16am

Unfortunatly, the problem remains.
The error message also is still the same.

I found an entry in apache error-log, though:

File does not exist: /srv/rsv-kanu_neu/bulk_uploader

I reinstalled Silverstripe and also image gallery.
A side effect: When the error occurs, the first selected image gets destroyed.

Thank's a lot for your effort!
Christian

Avatar
zenmonkey

Community Member, 532 Posts

28 August 2009 at 2:48am

Okay I'm running Safari 4.03 OS X 10.5.8 and SS 2.2.3 on MAMP

And the Delete Record Icon isn't showing up.

Here is the Code for my DataObject

class UserApplication extends DataObject {
   static $db = array(
         'FirstName' => 'Text',
         'LastName' => 'Text',
         'Email' => 'Text',
         'CompanyName' => 'Text',
         'CompanyType' => "Text",
         'CompanyURL' => 'Text',
         'CompanyPhone' => 'Text',
         'Address' => 'Text',
         'Address2' => 'Text',
         'City' => 'Text',
         'Country' => 'Text',
         'TaxIDNumber' => 'Text',
         'Distributor' => 'Text',
         'SalesRep' => 'Text',
         'Description' => 'Text',
         'ApprovedMember' => 'Boolean',
         'Password' => 'Text'
   );
   
   static $has_one = array(
      'RegistrationPage' => 'RegistrationPage',      
   );
   
   public function getCMSFields_forPopup()
   {
      $companyTypeList = array(
         'Retail' => 'Retail',
         'Online' => 'Online',
         'Distributor' => 'Distributor',
         'Press' => 'Press'
      );
      
      return new FieldSet (
         new CheckBoxField('ApprovedMember', 'Approved Member'),
         new TextField('FirstName', 'First Name'),
         new TextField('LastName','Last Name'),
         new EmailField('Email'),
         new TextField('CompanyName','Company Name'),
         new DropdownField('CompanyType','Company Type',$companyTypeList),
         new TextField('CompanyURL','Company Website'),
         new TextField('CompanyPhone','CompanyPhone'),
         new TextField('Address','Address'),
         new TextField('Address2','Address Line 2'),
         new TextField('City','City'),
         new TextField('Country','Country'),
         new TextField('TaxIDNumber','TaxIDNumber'),
         new TextField('Distributor','Distributor'),
         new TextField('SalesRep','Sales Rep'),
         new TextareaField('Description','Description'),
         new ConfirmedPasswordField('Password')
      );
      
   }

}

And from the Pagetype

class RegistrationPage extends Page
{
   static $has_many = array (
      'UserApplications' => 'UserApplication'
   );
   
   public function getCMSFields()
   {
      $f = parent::getCMSFields();
      $applicationManager = new DataObjectManager(
         $this,
         'UserApplications',
         'UserApplication',
         array('FirstName' => 'FirstName','LastName' => 'LastName','Email' => 'Email','CompanyName' => 'CompanyName','CompanyType' => "CompanyType",'CompanyURL' => 'CompanyURL','CompanyPhone' => 'CompanyPhone','Address' => 'Address','Address2' => 'Address2','City' => 'City','Country' => 'Country','TaxIDNumber' => 'TaxIDNumber','Distributor' => 'Distributor','SalesRep' => 'SalesRep','Description' => 'Description','ApprovedMember' => 'ApprovedMember','Password' => 'Password'),
         'getCMSFields_forPopup'
      );
      
      $f->addFieldToTab("Root.Content.Applications", $applicationManager);
      
      $f->removeFieldFromTab('Root.Content.Main', 'Content');
      $f->removeFieldFromTab('Root.Content.Main', 'LifestyleText');
      
      return $f;
   }
   
}

class RegistrationPage_Controller extends Page_Controller
{
   
}

But in the CMS the delete button doesn't show up in any of my DataObjectManagers, though it does in the FileDataObjectManager

Attachments are disabled so I Can't post a screen Cap