settingsOption($optionType, $optionName, $optionExtras);
array_push($settings, $setting);
}
return $settings;
}
public function settingsOption($type, $name = null, $extras = null)
{
$type = strtolower(str_replace('-', '', $type));
$setting = [
'name' => $name,
'value' => $this->config[$name] ?? ''
];
switch ($type) {
case 'enable':
$settingMerge = [
'type' => 'switch',
'label' => 'Enable',
];
break;
case 'auth':
$this->setGroupOptionsVariable();
$settingMerge = [
'type' => 'select',
'label' => 'Minimum Authentication',
'options' => $this->groupOptions
];
break;
case 'refresh':
$settingMerge = [
'type' => 'select',
'label' => 'Refresh Seconds',
'options' => $this->timeOptions()
];
break;
case 'combine':
case 'combine-downloader':
$settingMerge = [
'type' => 'switch',
'label' => 'Add to Combined Downloader',
];
break;
case 'test':
$settingMerge = [
'type' => 'button',
'label' => 'Test Connection',
'icon' => 'fa fa-flask',
'class' => 'pull-right',
'text' => 'Test Connection',
'attr' => 'onclick="testAPIConnection(\'' . $name . '\')"',
'help' => 'Remember! Please save before using the test button!'
];
break;
case 'url':
$settingMerge = [
'type' => 'input',
'label' => 'URL',
'help' => 'Please make sure to use local IP address and port - You also may use local dns name too.',
'placeholder' => 'http(s)://hostname:port'
];
break;
case 'multipleurl':
$settingMerge = [
'type' => 'select2',
'class' => 'select2-multiple',
'id' => $name . '-select-' . $this->random_ascii_string(6),
'label' => 'Multiple URL\'s',
'help' => 'Please make sure to use local IP address and port - You also may use local dns name too.',
'placeholder' => 'http(s)://hostname:port',
'options' => $this->makeOptionsFromValues($this->config[$name]),
'settings' => '{tags: true, selectOnClose: true, closeOnSelect: true, allowClear: true}',
];
break;
case 'multiple':
$settingMerge = [
'type' => 'select2',
'class' => 'select2-multiple',
'id' => $name . '-select-' . $this->random_ascii_string(6),
'label' => 'Multiple Values\'s',
'options' => $this->makeOptionsFromValues($this->config[$name]),
'settings' => '{tags: true, selectOnClose: true, closeOnSelect: true, allowClear: true}',
];
break;
case 'cron':
$settingMerge = [
'type' => 'cron',
'label' => 'Cron Schedule',
'help' => 'You may use either Cron format or - @hourly, @daily, @monthly',
'placeholder' => '* * * * *'
];
break;
case 'folder':
$settingMerge = [
'type' => 'folder',
'label' => 'Save Path',
'help' => 'Folder path',
'placeholder' => '/path/to/folder'
];
break;
case 'cronfile':
$path = $this->root . DIRECTORY_SEPARATOR . 'cron.php';
$server = $this->serverIP();
$installInstruction = ($this->docker) ?
'
No action needed. Organizr\'s docker image comes with the Cron job built-in
' :
'Setup a Cron job so it\'s call will originate from either the server\'s IP address or a local IP address. Please use the following information to set up the Cron Job correctly.
Cron Information
Schedule * * * * *
File Path ' . $path . '
Command Examples
* * * * * /path/to/php ' . $path . '
* * * * * curl -XGET -sL "http://' . $server . '/cron.php"
';
$settingMerge = [
'type' => 'html',
'override' => 12,
'label' => '',
'html' => '
Organizr Enable Cron Instructions
Instructions for your install type
' . $installInstruction . '
Check Cron Status
'
];
break;
case 'username':
$settingMerge = [
'type' => 'input',
'label' => 'Username',
];
break;
case 'password':
$settingMerge = [
'type' => 'password',
'label' => 'Password',
];
break;
case 'passwordalt':
$settingMerge = [
'type' => 'password-alt',
'label' => 'Password',
];
break;
case 'passwordaltcopy':
$settingMerge = [
'type' => 'password-alt-copy',
'label' => 'Password',
];
break;
case 'apikey':
case 'token':
$settingMerge = [
'type' => 'password-alt',
'label' => 'API Key/Token',
];
break;
case 'multipleapikey':
case 'multipletoken':
$settingMerge = [
'type' => 'select2',
'class' => 'select2-multiple',
'id' => $name . '-select-' . $this->random_ascii_string(6),
'label' => 'Multiple API Key/Token\'s',
'options' => $this->makeOptionsFromValues($this->config[$name]),
'settings' => '{tags: true, theme: "default", selectionCssClass: "password-alt", selectOnClose: true, closeOnSelect: true, allowClear: true}',
];
break;
case 'notice':
$settingMerge = [
'type' => 'html',
'override' => 12,
'label' => '',
'html' => '
'
];
break;
case 'socks':
$settingMerge = [
'type' => 'html',
'override' => 12,
'label' => '',
'html' => '
' . $this->socksHeadingHTML($name) . '
'
];
break;
case 'about':
$settingMerge = [
'type' => 'html',
'override' => 12,
'label' => '',
'html' => '
' . ucwords($name) . ' Homepage Item
' . $extras["about"] . '
'
];
break;
case 'title':
$settingMerge = [
'type' => 'input',
'label' => 'Title',
'help' => 'Sets the title of this homepage module',
];
break;
case 'toggletitle':
$settingMerge = [
'type' => 'switch',
'label' => 'Toggle Title',
'help' => 'Shows/hides the title of this homepage module'
];
break;
case 'disablecertcheck':
$settingMerge = [
'type' => 'switch',
'label' => 'Disable Certificate Check',
];
break;
case 'usecustomcertificate':
$settingMerge = [
'type' => 'switch',
'label' => 'Use Custom Certificate',
];
break;
case 'hideseeding':
$settingMerge = [
'type' => 'switch',
'label' => 'Hide Seeding',
];
break;
case 'hidecompleted':
$settingMerge = [
'type' => 'switch',
'label' => 'Hide Completed',
];
break;
case 'hidestatus':
$settingMerge = [
'type' => 'switch',
'label' => 'Hide Status',
];
break;
case 'limit':
$settingMerge = [
'type' => 'number',
'label' => 'Item Limit',
];
break;
case 'mediasearchserver':
$settingMerge = [
'type' => 'select',
'label' => 'Media Search Server',
'options' => $this->mediaServerOptions()
];
break;
case 'imagecachequality':
$settingMerge = [
'type' => 'select',
'label' => 'Image Cache Quality',
'options' => [
[
'name' => 'Low',
'value' => '.5'
],
[
'name' => '1x',
'value' => '1'
],
[
'name' => '2x',
'value' => '2'
],
[
'name' => '3x',
'value' => '3'
]
]
];
break;
case 'blank':
$settingMerge = [
'type' => 'blank',
'label' => '',
];
break;
case 'plexlibraryexclude':
$settingMerge = [
'type' => 'select2',
'class' => 'select2-multiple',
'id' => $name . '-exclude-select-' . $this->random_ascii_string(6),
'label' => 'Libraries to Exclude',
'options' => $extras['options']
];
break;
case 'plexlibraryinclude':
$settingMerge = [
'type' => 'select2',
'class' => 'select2-multiple',
'id' => $name . '-include-select-' . $this->random_ascii_string(6),
'label' => 'Libraries to Include',
'options' => $extras['options']
];
break;
// HTML ITEMS
// precodeeditor possibly not needed anymore
case 'precodeeditor':
$settingMerge = [
'type' => 'textbox',
'class' => 'hidden ' . $name . 'Textarea',
'label' => '',
];
break;
case 'codeeditor':
$mode = strtolower($extras['mode'] ?? 'css');
switch ($mode) {
case 'html':
case 'javascript':
$mode = 'ace/mode/' . $mode;
break;
case 'js':
$mode = 'ace/mode/javascript';
break;
default:
$mode = 'ace/mode/css';
break;
}
$settingMerge = [
'type' => 'html',
'override' => 12,
'label' => 'Custom Code',
'html' => '
' . htmlentities($this->config[$name]) . '
'
];
break;
// CALENDAR ITEMS
case 'calendarstart':
$settingMerge = [
'type' => 'number',
'label' => '# of Days Before'
];
break;
case 'calendarend':
$settingMerge = [
'type' => 'number',
'label' => '# of Days After'
];
break;
case 'calendarstartingday':
case 'calendarstartday':
case 'calendarstart':
$settingMerge = [
'type' => 'select',
'label' => 'Start Day',
'options' => $this->daysOptions()
];
break;
case 'calendardefaultview':
$settingMerge = [
'type' => 'select',
'label' => 'Default View',
'options' => $this->calendarDefaultOptions()
];
break;
case 'calendartimeformat':
$settingMerge = [
'type' => 'select',
'label' => 'Time Format',
'options' => $this->timeFormatOptions()
];
break;
case 'calendarlocale':
$settingMerge = [
'type' => 'select',
'label' => 'Locale',
'options' => $this->calendarLocaleOptions()
];
break;
case 'calendarlimit':
$settingMerge = [
'type' => 'select',
'label' => 'Items Per Day',
'options' => $this->limitOptions()
];
break;
case 'color':
$settingMerge = [
'type' => 'input',
'label' => 'Color',
'class' => 'pick-a-color-custom-options',
'attr' => 'data-original="' . $this->config[$name] . '"'
];
break;
case 'calendarlinkurl':
$settingMerge = [
'type' => 'select-input',
'label' => 'Target URL',
'help' => 'Set the primary URL used when clicking on calendar icon.',
'options' => $this->makeOptionsFromValues($this->config[str_replace('CalendarLink', '', $name) . 'URL'], true, 'Use Default'),
];
break;
case 'calendarframetarget':
$settingMerge = [
'type' => 'select',
'label' => 'Target Tab',
'help' => 'Set the tab used when clicking on calendar icon. If not set, link will open in new window.',
'options' => $this->getIframeTabs($this->config[str_replace('FrameTarget', 'CalendarLink', $name)])
];
break;
default:
$settingMerge = [
'type' => strtolower($type),
'label' => ''
];
break;
}
$setting = array_merge($settingMerge, $setting);
if ($extras) {
if (gettype($extras) == 'array') {
$setting = array_merge($setting, $extras);
}
}
return $setting;
}
public function getIframeTabs($url = "")
{
if (!empty($url)) {
$response = [
array(
'function' => 'fetchAll',
'query' => array(
"SELECT * FROM tabs WHERE `enabled`='1' AND `type`='1' AND `group_id`>=? AND (`url` = '" . $url . "' OR `url_local` = '" . $url . "') ORDER BY `order` ASC",
$this->getUserLevel(),
)
)
];
} else {
$response = [
array(
'function' => 'fetchAll',
'query' => array(
"SELECT * FROM tabs WHERE `enabled`='1' AND `type`='1' AND `group_id`>=? ORDER BY `order` ASC",
$this->getUserLevel()
)
)
];
}
$formattedValues[] = [
'name' => 'Open in New Window',
'value' => ''
];
foreach ($this->processQueries($response) as $result) {
$formattedValues[] = [
'name' => $result['name'],
'value' => $result['id']
];
}
return $formattedValues;
}
public function makeOptionsFromValues($values = null, $appendBlank = null, $blankLabel = null)
{
if ($appendBlank === true) {
$formattedValues[] = [
'name' => (!empty($blankLabel)) ? $blankLabel : 'Select option...',
'value' => ''
];
} else {
$formattedValues = [];
}
if (strpos($values, ',') !== false) {
$explode = explode(',', $values);
foreach ($explode as $item) {
$formattedValues[] = [
'name' => $item,
'value' => $item
];
}
} elseif ($values == '') {
$formattedValues = '';
} else {
$formattedValues[] = [
'name' => $values,
'value' => $values
];
}
return $formattedValues;
}
public function logLevels()
{
return [
[
'name' => 'Debug',
'value' => 'DEBUG'
],
[
'name' => 'Info',
'value' => 'INFO'
],
[
'name' => 'Notice',
'value' => 'NOTICE'
],
[
'name' => 'Warning',
'value' => 'WARNING'
],
[
'name' => 'Error',
'value' => 'ERROR'
],
[
'name' => 'Critical',
'value' => 'CRITICAL'
],
[
'name' => 'Alert',
'value' => 'ALERT'
],
[
'name' => 'Emergency',
'value' => 'EMERGENCY'
]
];
}
public function sandboxOptions()
{
return [
[
'name' => 'Allow Presentation',
'value' => 'allow-presentation'
],
[
'name' => 'Allow Forms',
'value' => 'allow-forms'
],
[
'name' => 'Allow Same Origin',
'value' => 'allow-same-origin'
],
[
'name' => 'Allow Orientation Lock',
'value' => 'allow-orientation-lock'
],
[
'name' => 'Allow Pointer Lock',
'value' => 'allow-pointer-lock'
],
[
'name' => 'Allow Scripts',
'value' => 'allow-scripts'
],
[
'name' => 'Allow Popups',
'value' => 'allow-popups'
],
[
'name' => 'Allow Popups To Escape Sandbox',
'value' => 'allow-popups-to-escape-sandbox'
],
[
'name' => 'Allow Modals',
'value' => 'allow-modals'
],
[
'name' => 'Allow Top Navigation',
'value' => 'allow-top-navigation'
],
[
'name' => 'Allow Top Navigation By User Activation',
'value' => 'allow-top-navigation-by-user-activation'
],
[
'name' => 'Allow Downloads',
'value' => 'allow-downloads'
],
];
}
public function iframeAllowOptions()
{
return [
[
'name' => 'Allow Clipboard Read',
'value' => 'clipboard-read'
],
[
'name' => 'Allow Clipboard Write',
'value' => 'clipboard-write'
],
[
'name' => 'Allow Camera',
'value' => 'camera'
],
[
'name' => 'Allow Microphone',
'value' => 'microphone'
],
[
'name' => 'Allow Speaker Selection',
'value' => 'speaker-selection'
],
[
'name' => 'Allow Encrypted Media',
'value' => 'encrypted-media'
],
[
'name' => 'Allow Web Share',
'value' => 'web-share'
],
[
'name' => 'Allow Capture the Screen',
'value' => 'display-capture'
],
[
'name' => 'Allow Screen Wake Lock',
'value' => 'screen-wake-lock'
],
[
'name' => 'Allow Geolocation',
'value' => 'geolocation'
],
[
'name' => 'Allow Autoplay Media',
'value' => 'autoplay'
],
[
'name' => 'Allow USB',
'value' => 'usb'
],
[
'name' => 'Allow MIDI',
'value' => 'midi'
],
[
'name' => 'Allow Fullscreen',
'value' => 'fullscreen'
],
[
'name' => 'Allow Payment',
'value' => 'payment'
],
[
'name' => 'Allow Picture-in-Picture',
'value' => 'picture-in-picture'
],
[
'name' => 'Allow Gamepad',
'value' => 'gamepad'
],
[
'name' => 'Allow WebXR Spatial Tracking (VR)',
'value' => 'xr-spatial-tracking'
],
[
'name' => 'Allow Accelerometer Sensor',
'value' => 'accelerometer'
],
[
'name' => 'Allow Gyroscope Sensor',
'value' => 'gyroscope'
],
[
'name' => 'Allow Magnetometer Sensor',
'value' => 'magnetometer'
],
[
'name' => 'Allow Ambient Light Sensor',
'value' => 'ambient-light-sensor'
],
[
'name' => 'Allow Battery Status',
'value' => 'battery'
],
[
'name' => 'Allow Sync XMLHttpRequest',
'value' => 'sync-xhr'
],
];
}
public function calendarLocaleOptions()
{
return [
[
'name' => 'Arabic (Standard)',
'value' => 'ar',
],
[
'name' => 'Arabic (Morocco)',
'value' => 'ar-ma',
],
[
'name' => 'Arabic (Saudi Arabia)',
'value' => 'ar-sa'
],
[
'value' => 'ar-tn',
'name' => 'Arabic (Tunisia)'
],
[
'value' => 'bg',
'name' => 'Bulgarian'
],
[
'value' => 'ca',
'name' => 'Catalan'
],
[
'value' => 'cs',
'name' => 'Czech'
],
[
'value' => 'da',
'name' => 'Danish'
],
[
'value' => 'de',
'name' => 'German (Standard)'
],
[
'value' => 'de-at',
'name' => 'German (Austria)'
],
[
'value' => 'el',
'name' => 'Greek'
],
[
'value' => 'en',
'name' => 'English'
],
[
'value' => 'en-au',
'name' => 'English (Australia)'
],
[
'value' => 'en-ca',
'name' => 'English (Canada)'
],
[
'value' => 'en-gb',
'name' => 'English (United Kingdom)'
],
[
'value' => 'es',
'name' => 'Spanish'
],
[
'value' => 'fa',
'name' => 'Farsi'
],
[
'value' => 'fi',
'name' => 'Finnish'
],
[
'value' => 'fr',
'name' => 'French (Standard)'
],
[
'value' => 'fr-ca',
'name' => 'French (Canada)'
],
[
'value' => 'he',
'name' => 'Hebrew'
],
[
'value' => 'hi',
'name' => 'Hindi'
],
[
'value' => 'hr',
'name' => 'Croatian'
],
[
'value' => 'hu',
'name' => 'Hungarian'
],
[
'value' => 'id',
'name' => 'Indonesian'
],
[
'value' => 'is',
'name' => 'Icelandic'
],
[
'value' => 'it',
'name' => 'Italian'
],
[
'value' => 'ja',
'name' => 'Japanese'
],
[
'value' => 'ko',
'name' => 'Korean'
],
[
'value' => 'lt',
'name' => 'Lithuanian'
],
[
'value' => 'lv',
'name' => 'Latvian'
],
[
'value' => 'nb',
'name' => 'Norwegian (Bokmal)'
],
[
'value' => 'nl',
'name' => 'Dutch (Standard)'
],
[
'value' => 'pl',
'name' => 'Polish'
],
[
'value' => 'pt',
'name' => 'Portuguese'
],
[
'value' => 'pt-br',
'name' => 'Portuguese (Brazil)'
],
[
'value' => 'ro',
'name' => 'Romanian'
],
[
'value' => 'ru',
'name' => 'Russian'
],
[
'value' => 'sk',
'name' => 'Slovak'
],
[
'value' => 'sl',
'name' => 'Slovenian'
],
[
'value' => 'sr',
'name' => 'Serbian'
],
[
'value' => 'sv',
'name' => 'Swedish'
],
[
'value' => 'th',
'name' => 'Thai'
],
[
'value' => 'tr',
'name' => 'Turkish'
],
[
'value' => 'uk',
'name' => 'Ukrainian'
],
[
'value' => 'vi',
'name' => 'Vietnamese'
],
[
'value' => 'zh-cn',
'name' => 'Chinese (PRC)'
],
[
'value' => 'zh-tw',
'name' => 'Chinese (Taiwan)'
]
];
}
public function daysOptions()
{
return array(
array(
'name' => 'Sunday',
'value' => '0'
),
array(
'name' => 'Monday',
'value' => '1'
),
array(
'name' => 'Tueday',
'value' => '2'
),
array(
'name' => 'Wednesday',
'value' => '3'
),
array(
'name' => 'Thursday',
'value' => '4'
),
array(
'name' => 'Friday',
'value' => '5'
),
array(
'name' => 'Saturday',
'value' => '6'
)
);
}
public function mediaServerOptions()
{
return array(
array(
'name' => 'N/A',
'value' => ''
),
array(
'name' => 'Plex',
'value' => 'plex'
),
array(
'name' => 'Emby [Not Available]',
'value' => 'emby'
)
);
}
public function requestTvOptions($includeUserOption = false)
{
$options = [
[
'name' => 'All Seasons',
'value' => 'all'
],
[
'name' => 'First Season Only',
'value' => 'first'
],
[
'name' => 'Last Season Only',
'value' => 'last'
],
];
$userOption = [
'name' => 'Let User Select',
'value' => 'user'
];
if ($includeUserOption) {
array_push($options, $userOption);
}
return $options;
}
public function requestServiceOptions()
{
return [
[
'name' => 'Ombi',
'value' => 'ombi'
],
[
'name' => 'Overseerr',
'value' => 'overseerr'
]
];
}
public function limitOptions()
{
return array(
array(
'name' => '1 Item',
'value' => '1'
),
array(
'name' => '2 Items',
'value' => '2'
),
array(
'name' => '3 Items',
'value' => '3'
),
array(
'name' => '4 Items',
'value' => '4'
),
array(
'name' => '5 Items',
'value' => '5'
),
array(
'name' => '6 Items',
'value' => '6'
),
array(
'name' => '7 Items',
'value' => '7'
),
array(
'name' => '8 Items',
'value' => '8'
),
array(
'name' => 'Unlimited',
'value' => '1000'
),
);
}
public function notificationTypesOptions()
{
return array(
array(
'name' => 'Toastr',
'value' => 'toastr'
),
array(
'name' => 'Izi',
'value' => 'izi'
),
array(
'name' => 'Alertify',
'value' => 'alertify'
),
array(
'name' => 'Noty',
'value' => 'noty'
),
);
}
public function notificationPositionsOptions()
{
return array(
array(
'name' => 'Bottom Right',
'value' => 'br'
),
array(
'name' => 'Bottom Left',
'value' => 'bl'
),
array(
'name' => 'Bottom Center',
'value' => 'bc'
),
array(
'name' => 'Top Right',
'value' => 'tr'
),
array(
'name' => 'Top Left',
'value' => 'tl'
),
array(
'name' => 'Top Center',
'value' => 'tc'
),
array(
'name' => 'Center',
'value' => 'c'
),
);
}
public function timeOptions()
{
return array(
array(
'name' => '2.5',
'value' => '2500'
),
array(
'name' => '5',
'value' => '5000'
),
array(
'name' => '10',
'value' => '10000'
),
array(
'name' => '15',
'value' => '15000'
),
array(
'name' => '30',
'value' => '30000'
),
array(
'name' => '60 [1 Minute]',
'value' => '60000'
),
array(
'name' => '300 [5 Minutes]',
'value' => '300000'
),
array(
'name' => '600 [10 Minutes]',
'value' => '600000'
),
array(
'name' => '900 [15 Minutes]',
'value' => '900000'
),
array(
'name' => '1800 [30 Minutes]',
'value' => '1800000'
),
array(
'name' => '3600 [1 Hour]',
'value' => '3600000'
),
);
}
public function netdataOptions()
{
return [
[
'name' => 'Disk Read',
'value' => 'disk-read',
],
[
'name' => 'Disk Write',
'value' => 'disk-write',
],
[
'name' => 'CPU',
'value' => 'cpu'
],
[
'name' => 'Network Inbound',
'value' => 'net-in',
],
[
'name' => 'Network Outbound',
'value' => 'net-out',
],
[
'name' => 'Used RAM',
'value' => 'ram-used',
],
[
'name' => 'Used Swap',
'value' => 'swap-used',
],
[
'name' => 'Disk space used',
'value' => 'disk-used',
],
[
'name' => 'Disk space available',
'value' => 'disk-avail',
],
[
'name' => 'Custom',
'value' => 'custom',
]
];
}
public function netdataChartOptions()
{
return [
[
'name' => 'Easy Pie Chart',
'value' => 'easypiechart',
],
[
'name' => 'Gauge',
'value' => 'gauge'
]
];
}
public function netdataColourOptions()
{
return [
[
'name' => 'Red',
'value' => 'fe3912',
],
[
'name' => 'Green',
'value' => '46e302',
],
[
'name' => 'Purple',
'value' => 'CC22AA'
],
[
'name' => 'Blue',
'value' => '5054e6',
],
[
'name' => 'Yellow',
'value' => 'dddd00',
],
[
'name' => 'Orange',
'value' => 'd66300',
]
];
}
public function netdataSizeOptions()
{
return [
[
'name' => 'Large',
'value' => 'lg',
],
[
'name' => 'Medium',
'value' => 'md',
],
[
'name' => 'Small',
'value' => 'sm'
]
];
}
public function timeFormatOptions()
{
return array(
array(
'name' => '6p',
'value' => 'h(:mm)t'
),
array(
'name' => '6:00p',
'value' => 'h:mmt'
),
array(
'name' => '6pm',
'value' => 'h(:mm)a'
),
array(
'name' => '6:00pm',
'value' => 'h:mma'
),
array(
'name' => '6:00',
'value' => 'h:mm'
),
array(
'name' => '18',
'value' => 'H(:mm)'
),
array(
'name' => '18:00',
'value' => 'H:mm'
)
);
}
public function rTorrentSortOptions()
{
return array(
array(
'name' => 'Date Desc',
'value' => 'dated'
),
array(
'name' => 'Date Asc',
'value' => 'datea'
),
array(
'name' => 'Hash Desc',
'value' => 'hashd'
),
array(
'name' => 'Hash Asc',
'value' => 'hasha'
),
array(
'name' => 'Name Desc',
'value' => 'named'
),
array(
'name' => 'Name Asc',
'value' => 'namea'
),
array(
'name' => 'Size Desc',
'value' => 'sized'
),
array(
'name' => 'Size Asc',
'value' => 'sizea'
),
array(
'name' => 'Label Desc',
'value' => 'labeld'
),
array(
'name' => 'Label Asc',
'value' => 'labela'
),
array(
'name' => 'Status Desc',
'value' => 'statusd'
),
array(
'name' => 'Status Asc',
'value' => 'statusa'
),
);
}
public function qBittorrentApiOptions()
{
return array(
array(
'name' => 'V1',
'value' => '1'
),
array(
'name' => 'V2',
'value' => '2'
),
);
}
public function qBittorrentSortOptions()
{
return array(
array(
'name' => 'Hash',
'value' => 'hash'
),
array(
'name' => 'Name',
'value' => 'name'
),
array(
'name' => 'Size',
'value' => 'size'
),
array(
'name' => 'Progress',
'value' => 'progress'
),
array(
'name' => 'Download Speed',
'value' => 'dlspeed'
),
array(
'name' => 'Upload Speed',
'value' => 'upspeed'
),
array(
'name' => 'Priority',
'value' => 'priority'
),
array(
'name' => 'Number of Seeds',
'value' => 'num_seeds'
),
array(
'name' => 'Number of Seeds in Swarm',
'value' => 'num_complete'
),
array(
'name' => 'Number of Leechers',
'value' => 'num_leechs'
),
array(
'name' => 'Number of Leechers in Swarm',
'value' => 'num_incomplete'
),
array(
'name' => 'Ratio',
'value' => 'ratio'
),
array(
'name' => 'ETA',
'value' => 'eta'
),
array(
'name' => 'State',
'value' => 'state'
),
array(
'name' => 'Category',
'value' => 'category'
)
);
}
public function calendarDefaultOptions()
{
return array(
array(
'name' => 'Month',
'value' => 'month'
),
array(
'name' => 'Day',
'value' => 'basicDay'
),
array(
'name' => 'Week',
'value' => 'basicWeek'
),
array(
'name' => 'List',
'value' => 'list'
)
);
}
}