Source of file Device.php
Size: 2,493 Bytes - Last Modified: 2021-12-24T06:33:55+00:00
/var/www/docs.ssmods.com/process/src/src/Model/Device.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 | <?php namespace Broarm\EventTickets\App\Model; use SilverStripe\Forms\ReadonlyField; use SilverStripe\Forms\TextareaField; use SilverStripe\Forms\TextField; use SilverStripe\ORM\DataObject; use SilverStripe\Security\Member; /** * Class Device * * @property string Title * @property string Note * @property string Token * @property string UniqueID * @property string Brand * @property string Model * @property string DeviceID * @property string BundleID * @property string LastLogin * @method \ManyManyList Members() */ class Device extends DataObject { private static $table_name = 'EventTickets_Device'; private static $db = [ 'Note' => 'Text', 'Token' => 'Text', 'UniqueID' => 'Varchar', 'LastLogin' => 'DBDatetime' ]; private static $has_one = [ 'Members' => Member::class ]; private static $summary_fields = [ 'Title' => 'Name', 'UniqueID' => 'Device ID', 'Created.Nice' => 'Connected on', 'LastLogin.Nice' => 'Last use' ]; public function getCMSFields() { $fields = parent::getCMSFields(); $fields->addFieldsToTab('Root.Main', [ TextField::create('Title', 'Name'), TextareaField::create('Note', 'Note'), ReadonlyField::create('Token', 'Token'), ReadonlyField::create('UniqueID', 'UniqueID'), ReadonlyField::create('Brand', 'Brand'), ReadonlyField::create('Model', 'Model') ]); $this->extend('updateCMSFields', $fields); return $fields; } /** * Get the title * * @return string */ public function getTitle() { if (($brand = $this->Brand) && $model = $this->Model) { return "{$brand}, {$model}"; } else { return parent::getTitle(); } } /** * Find or make a new device * * @param $uniqueID * @param null $brand * @param null $model * @return Device|DataObject|null * @throws \ValidationException */ public static function findOrMake($uniqueID, $brand = null, $model = null) { if (!$device = self::get()->find('UniqueID', $uniqueID)) { $device = self::create(); $device->UniqueID = $uniqueID; $device->Brand = $brand; $device->Model = $model; } $device->LastLogin = time(); $device->write(); return $device; } } |