EvernoteSettings   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 91
Duplicated Lines 0 %

Coupling/Cohesion

Components 2
Dependencies 9

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 6
c 1
b 0
f 0
lcom 2
cbo 9
dl 0
loc 91
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A getCMSFields() 0 22 1
A current_Evernote_settings() 0 5 2
A make_evernote_settings() 0 6 1
A getCMSActions() 0 14 2
1
<?php
2
3
/**
4
 * EvernoteSettings
5
 *
6
 * @property string APIKey Api key from Evernote.
7
 * @property string APISecret Api Secret from Evernote.
8
 * @property string CallbackURL Callback URL.
9
 * @property Boolean Sandbox Enable of disable Sandbox.
10
 * @property Boolean China Type Enable country china.
11
 *
12
 * @package EvernoteSettings
13
 */
14
class EvernoteSettings extends DataObject {
0 ignored issues
show
Coding Style Compatibility introduced by
PSR1 recommends that each class must be in a namespace of at least one level to avoid collisions.

You can fix this by adding a namespace to your class:

namespace YourVendor;

class YourClass { }

When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.

Loading history...
15
16
    private static $db = array(
0 ignored issues
show
Comprehensibility introduced by
Consider using a different property name as you override a private property of the parent class.
Loading history...
Unused Code introduced by
The property $db is not used and could be removed.

This check marks private properties in classes that are never used. Those properties can be removed.

Loading history...
17
        "APIKey" => "Varchar",
18
        "APISecret" => "Varchar",
19
        "CallbackURL" => "Varchar(512)",
20
        "Sandbox" => "Boolean",
21
        "China" => "Boolean"
22
    );
23
24
    /**
25
  	 * Default permission to check for 'LoggedInUsers' to create or edit pages
26
  	 *
27
  	 * @var array
28
  	 * @config
29
  	 */
30
  	private static $required_permission = array('CMS_ACCESS_CMSMain', 'CMS_ACCESS_LeftAndMain');
0 ignored issues
show
Unused Code introduced by
The property $required_permission is not used and could be removed.

This check marks private properties in classes that are never used. Those properties can be removed.

Loading history...
31
32
33
    /**
34
     * @return FieldList
35
     */
36
    public function getCMSFields() {
37
38
      $fields = new FieldList(
39
        new TabSet("Root",
40
          $tabMain = new Tab('Evernote',
41
            $apiKey = new TextField('APIKey', 'API key', $this->APIKey),
42
            $apiSecret = new TextField('APISecret', 'API secret', $this->APISecret),
43
            $callbackURL = new TextField('CallbackURL',
44
                    'CallbackURL - where user will be returned after authenticated from evernote',
45
                    $this->CallbackURL
46
            ),
47
            $sanbox = new CheckBoxField('Sandbox', 'Enable Sandbox', $this->Sandbox),
48
            $china = new CheckBoxField('China', 'Are you in China?', $this->China)
49
          )
50
          ),
51
          new HiddenField('ID')
52
        );
53
54
        $this->extend('updateCMSFields', $fields);
55
56
    		return $fields;
57
    }
58
59
    /**
60
     * Get the current Evernote Settings, and creates a new one through
61
     * {@link make_evernote_settings()} if none is found.
62
     *
63
     * @return EvernoteSettings
64
     */
65
    public static function current_Evernote_settings() {
66
      if ($evernoteSettings = DataObject::get_one('EvernoteSettings')) return $evernoteSettings;
67
68
      return self::make_evernote_settings();
69
    }
70
71
    /**
72
  	 * Create EvernoteSettings with defaults from language file.
73
  	 *
74
  	 * @return EvernoteSettings
75
  	 */
76
  	public static function make_evernote_settings() {
77
  		$config = EvernoteSettings::create();
78
  		$config->write();
79
80
  		return $config;
81
  	}
82
83
    /**
84
     * Get the actions that are sent to the CMS.
85
     *
86
     * In your extensions: updateEditFormActions($actions)
87
     *
88
     * @return FieldList
89
     */
90
    public function getCMSActions() {
91
      if (Permission::check('ADMIN')) {
92
        $actions = new FieldList(
93
          FormAction::create('save_evernotesettings', _t('CMSMain.SAVE','Save'))
94
            ->addExtraClass('ss-ui-action-constructive')->setAttribute('data-icon', 'accept')
95
        );
96
      } else {
97
        $actions = new FieldList();
98
      }
99
100
      $this->extend('updateCMSActions', $actions);
101
102
      return $actions;
103
    }
104
}
105