Migrated some more SQL changes
This commit is contained in:
parent
d29ec0374e
commit
2c8a4ad86e
@ -1,15 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
abstract class AbstractUpdateMigration extends AbstractMigration {
|
|
||||||
abstract function getUpVersion();
|
|
||||||
|
|
||||||
abstract function getDownVersion();
|
|
||||||
|
|
||||||
function up($hesk_settings) {
|
|
||||||
$this->updateVersion($this->getUpVersion(), $hesk_settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
function down($hesk_settings) {
|
|
||||||
$this->updateVersion($this->getDownVersion(), $hesk_settings);
|
|
||||||
}
|
|
||||||
}
|
|
19
install/migrations/UpdateMigration.php
Normal file
19
install/migrations/UpdateMigration.php
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class UpdateMigration extends AbstractMigration {
|
||||||
|
private $upVersion;
|
||||||
|
private $downVersion;
|
||||||
|
|
||||||
|
public function __construct($upVersion, $downVersion) {
|
||||||
|
$this->upVersion = $upVersion;
|
||||||
|
$this->downVersion = $downVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
function up($hesk_settings) {
|
||||||
|
$this->updateVersion($this->upVersion, $hesk_settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
function down($hesk_settings) {
|
||||||
|
$this->updateVersion($this->downVersion, $hesk_settings);
|
||||||
|
}
|
||||||
|
}
|
@ -22,57 +22,100 @@ function getAllMigrations() {
|
|||||||
14 => new \v160\CreateSettingsTable(),
|
14 => new \v160\CreateSettingsTable(),
|
||||||
15 => new \v160\InsertVersionRecord(),
|
15 => new \v160\InsertVersionRecord(),
|
||||||
//1.6.1
|
//1.6.1
|
||||||
16 => new \v161\UpdateVersion(),
|
16 => new UpdateMigration('1.6.1', '1.6.0'),
|
||||||
//1.7.0
|
//1.7.0
|
||||||
17 => new \v170\CreateVerifiedEmailsTable(),
|
17 => new \v170\CreateVerifiedEmailsTable(),
|
||||||
18 => new \v170\CreatePendingVerificationEmailsTable(),
|
18 => new \v170\CreatePendingVerificationEmailsTable(),
|
||||||
19 => new \v170\CreateStageTicketsTable(),
|
19 => new \v170\CreateStageTicketsTable(),
|
||||||
20 => new \v170\UpdateVersion(),
|
20 => new UpdateMigration('1.7.0', '1.6.1'),
|
||||||
//2.0.0
|
//2.0.0
|
||||||
21 => new \v200\RemoveNoteIdFromAttachments(),
|
21 => new \v200\RemoveNoteIdFromAttachments(),
|
||||||
22 => new \v200\RemoveEditInfoFromNotes(),
|
22 => new \v200\RemoveEditInfoFromNotes(),
|
||||||
23 => new \v200\RemoveDefaultNotifyCustomerEmailPreference(),
|
23 => new \v200\RemoveDefaultNotifyCustomerEmailPreference(),
|
||||||
24 => new \v200\AddMissingKeyToTickets(),
|
24 => new \v200\AddMissingKeyToTickets(),
|
||||||
25 => new \v200\MigrateIpAndEmailBans(),
|
25 => new \v200\MigrateIpAndEmailBans(),
|
||||||
26 => new \v200\UpdateVersion(),
|
26 => new UpdateMigration('2.0.0', '1.7.0'),
|
||||||
//2.0.1
|
//2.0.1
|
||||||
27 => new \v201\UpdateVersion(),
|
27 => new UpdateMigration('2.0.1', '2.0.0'),
|
||||||
//2.1.0
|
//2.1.0
|
||||||
28 => new \v210\UpdateVersion(),
|
28 => new UpdateMigration('2.1.0', '2.0.1'),
|
||||||
//2.1.1
|
//2.1.1
|
||||||
29 => new \v211\FixStageTicketsTable(),
|
29 => new \v211\FixStageTicketsTable(),
|
||||||
30 => new \v211\UpdateVersion(),
|
30 => new UpdateMigration('2.1.1', '2.1.0'),
|
||||||
//2.2.0
|
//2.2.0
|
||||||
31 => new \v220\AddIsAutocloseOptionToStatuses(),
|
31 => new \v220\AddIsAutocloseOptionToStatuses(),
|
||||||
32 => new \v220\AddClosableColumnToStatuses(),
|
32 => new \v220\AddClosableColumnToStatuses(),
|
||||||
33 => new \v220\UpdateVersion(),
|
33 => new UpdateMigration('2.2.0', '2.1.1'),
|
||||||
//2.2.1
|
//2.2.1
|
||||||
34 => new \v221\UpdateVersion(),
|
34 => new UpdateMigration('2.2.1', '2.2.0'),
|
||||||
//2.3.0
|
//2.3.0
|
||||||
35 => new \v230\AddIconToServiceMessages(),
|
35 => new \v230\AddIconToServiceMessages(),
|
||||||
36 => new \v230\ConsolidateStatusColumns(),
|
36 => new \v230\ConsolidateStatusColumns(),
|
||||||
37 => new \v230\AddCoordinatesToTickets(),
|
37 => new \v230\AddCoordinatesToTickets(),
|
||||||
38 => new \v230\AddCategoryManager(),
|
38 => new \v230\AddCategoryManager(),
|
||||||
39 => new \v230\MovePermissionsToHeskPrivilegesColumn(),
|
39 => new \v230\MovePermissionsToHeskPrivilegesColumn(),
|
||||||
40 => new \v230\UpdateVersion(),
|
40 => new UpdateMigration('2.3.0', '2.2.1'),
|
||||||
//2.3.1
|
//2.3.1
|
||||||
41 => new \v231\UpdateVersion(),
|
41 => new UpdateMigration('2.3.1', '2.3.0'),
|
||||||
//2.3.2
|
//2.3.2
|
||||||
42 => new \v232\UpdateVersion(),
|
42 => new UpdateMigration('2.3.2', '2.3.1'),
|
||||||
//2.4.0
|
//2.4.0
|
||||||
43 => new \v240\CreateQuickHelpSectionsTable(),
|
43 => new \v240\CreateQuickHelpSectionsTable(),
|
||||||
44 => new \v240\CreateNewStatusNameTable(),
|
44 => new \v240\CreateNewStatusNameTable(),
|
||||||
45 => new \v240\AddDownloadCountToAttachments(),
|
45 => new \v240\AddDownloadCountToAttachments(),
|
||||||
46 => new \v240\AddHtmlColumnToTickets(),
|
46 => new \v240\AddHtmlColumnToTickets(),
|
||||||
47 => new \v240\UpdateVersion(),
|
47 => new UpdateMigration('2.4.0', '2.3.2'),
|
||||||
//2.4.1
|
//2.4.1
|
||||||
48 => new \v241\UpdateVersion(),
|
48 => new UpdateMigration('2.4.1', '2.4.0'),
|
||||||
//2.4.2
|
//2.4.2
|
||||||
49 => new \v242\UpdateVersion(),
|
49 => new UpdateMigration('2.4.2', '2.4.1'),
|
||||||
//2.5.0
|
//2.5.0
|
||||||
50 => new \v250\MigrateSettingsToDatabase(),
|
50 => new \v250\MigrateSettingsToDatabase(),
|
||||||
51 => new \v250\AddUserAgentAndScreenResToTickets(),
|
51 => new \v250\AddUserAgentAndScreenResToTickets(),
|
||||||
52 => new \v250\AddNavbarTitleUrl(),
|
52 => new \v250\AddNavbarTitleUrl(),
|
||||||
53 => new \v250\UpdateVersion(),
|
53 => new UpdateMigration('2.5.0', '2.4.2'),
|
||||||
|
//2.5.1
|
||||||
|
54 => new UpdateMigration('2.5.1', '2.5.0'),
|
||||||
|
//2.5.2
|
||||||
|
55 => new UpdateMigration('2.5.2', '2.5.1'),
|
||||||
|
//2.5.3
|
||||||
|
56 => new UpdateMigration('2.5.3', '2.5.2'),
|
||||||
|
//2.5.4
|
||||||
|
57 => new UpdateMigration('2.5.4', '2.5.3'),
|
||||||
|
//2.5.5
|
||||||
|
58 => new UpdateMigration('2.5.5', '2.5.4'),
|
||||||
|
//2.6.0
|
||||||
|
59 => new \v260\AddApiTables(),
|
||||||
|
60 => new \v260\AddLoggingTable(),
|
||||||
|
61 => new \v260\AddTempAttachmentTable(),
|
||||||
|
62 => new \v260\AddCalendarModule(),
|
||||||
|
63 => new \v260\AddPrimaryKeyToSettings(),
|
||||||
|
64 => new \v260\ConvertStatusPropertiesToInts(),
|
||||||
|
65 => new UpdateMigration('2.6.0', '2.5.5'),
|
||||||
|
//2.6.1
|
||||||
|
66 => new UpdateMigration('2.6.1', '2.6.0'),
|
||||||
|
//2.6.2
|
||||||
|
67 => new \v262\AddMissingColumnsToStageTickets(),
|
||||||
|
68 => new UpdateMigration('2.6.2', '2.6.1'),
|
||||||
|
//2.6.3
|
||||||
|
69 => new UpdateMigration('2.6.3', '2.6.2'),
|
||||||
|
//2.6.4
|
||||||
|
70 => new UpdateMigration('2.6.4', '2.6.3'),
|
||||||
|
//3.0.0
|
||||||
|
71 => new \v300\MigrateHeskCustomStatuses(),
|
||||||
|
72 => new \v300\MigrateAutorefreshOption(),
|
||||||
|
73 => new \v300\AddColorSchemeSetting(),
|
||||||
|
74 => new UpdateMigration('3.0.0', '2.6.4'),
|
||||||
|
//3.0.1
|
||||||
|
75 => new UpdateMigration('3.0.1', '3.0.0'),
|
||||||
|
//3.0.2
|
||||||
|
76 => new \v302\AddMissingCustomFields(),
|
||||||
|
77 => new UpdateMigration('3.0.2', '3.0.1'),
|
||||||
|
//3.0.3 - 3.0.7
|
||||||
|
78 => new UpdateMigration('3.0.3', '3.0.2'),
|
||||||
|
79 => new UpdateMigration('3.0.4', '3.0.3'),
|
||||||
|
80 => new UpdateMigration('3.0.5', '3.0.4'),
|
||||||
|
81 => new UpdateMigration('3.0.6', '3.0.5'),
|
||||||
|
82 => new UpdateMigration('3.0.7', '3.0.6'),
|
||||||
);
|
);
|
||||||
}
|
}
|
@ -1,15 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace v161;
|
|
||||||
|
|
||||||
|
|
||||||
class UpdateVersion extends \AbstractMigration {
|
|
||||||
|
|
||||||
function up($hesk_settings) {
|
|
||||||
$this->updateVersion('1.6.1', $hesk_settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
function down($hesk_settings) {
|
|
||||||
$this->updateVersion('1.6.0', $hesk_settings);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace v170;
|
|
||||||
|
|
||||||
|
|
||||||
class UpdateVersion extends \AbstractMigration {
|
|
||||||
|
|
||||||
function up($hesk_settings) {
|
|
||||||
$this->updateVersion('1.7.0', $hesk_settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
function down($hesk_settings) {
|
|
||||||
$this->updateVersion('1.6.1', $hesk_settings);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace v200;
|
|
||||||
|
|
||||||
|
|
||||||
class UpdateVersion extends \AbstractMigration {
|
|
||||||
|
|
||||||
function up($hesk_settings) {
|
|
||||||
$this->updateVersion('2.0.0', $hesk_settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
function down($hesk_settings) {
|
|
||||||
$this->updateVersion('1.7.0', $hesk_settings);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace v201;
|
|
||||||
|
|
||||||
|
|
||||||
class UpdateVersion extends \AbstractMigration {
|
|
||||||
|
|
||||||
function up($hesk_settings) {
|
|
||||||
$this->updateVersion('2.0.1', $hesk_settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
function down($hesk_settings) {
|
|
||||||
$this->updateVersion('2.0.0', $hesk_settings);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace v210;
|
|
||||||
|
|
||||||
|
|
||||||
class UpdateVersion extends \AbstractMigration {
|
|
||||||
|
|
||||||
function up($hesk_settings) {
|
|
||||||
$this->updateVersion('2.1.0', $hesk_settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
function down($hesk_settings) {
|
|
||||||
$this->updateVersion('2.0.1', $hesk_settings);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace v211;
|
|
||||||
|
|
||||||
|
|
||||||
class UpdateVersion extends \AbstractMigration {
|
|
||||||
|
|
||||||
function up($hesk_settings) {
|
|
||||||
$this->updateVersion('2.1.1', $hesk_settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
function down($hesk_settings) {
|
|
||||||
$this->updateVersion('2.1.0', $hesk_settings);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace v220;
|
|
||||||
|
|
||||||
|
|
||||||
class UpdateVersion extends \AbstractMigration {
|
|
||||||
|
|
||||||
function up($hesk_settings) {
|
|
||||||
$this->updateVersion('2.2.0', $hesk_settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
function down($hesk_settings) {
|
|
||||||
$this->updateVersion('2.1.1', $hesk_settings);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace v221;
|
|
||||||
|
|
||||||
|
|
||||||
class UpdateVersion extends \AbstractMigration {
|
|
||||||
|
|
||||||
function up($hesk_settings) {
|
|
||||||
$this->updateVersion('2.2.1', $hesk_settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
function down($hesk_settings) {
|
|
||||||
$this->updateVersion('2.2.0', $hesk_settings);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace v230;
|
|
||||||
|
|
||||||
|
|
||||||
class UpdateVersion extends \AbstractUpdateMigration {
|
|
||||||
|
|
||||||
function getUpVersion() {
|
|
||||||
return '2.3.0';
|
|
||||||
}
|
|
||||||
|
|
||||||
function getDownVersion() {
|
|
||||||
return '2.2.1';
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace v231;
|
|
||||||
|
|
||||||
|
|
||||||
class UpdateVersion extends \AbstractUpdateMigration {
|
|
||||||
|
|
||||||
function getUpVersion() {
|
|
||||||
return '2.3.1';
|
|
||||||
}
|
|
||||||
|
|
||||||
function getDownVersion() {
|
|
||||||
return '2.3.0';
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace v232;
|
|
||||||
|
|
||||||
|
|
||||||
class UpdateVersion extends \AbstractUpdateMigration {
|
|
||||||
|
|
||||||
function getUpVersion() {
|
|
||||||
return '2.3.2';
|
|
||||||
}
|
|
||||||
|
|
||||||
function getDownVersion() {
|
|
||||||
return '2.3.1';
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace v240;
|
|
||||||
|
|
||||||
|
|
||||||
class UpdateVersion extends \AbstractUpdateMigration {
|
|
||||||
|
|
||||||
function getUpVersion() {
|
|
||||||
return '2.4.0';
|
|
||||||
}
|
|
||||||
|
|
||||||
function getDownVersion() {
|
|
||||||
return '2.3.2';
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace v241;
|
|
||||||
|
|
||||||
|
|
||||||
class UpdateVersion extends \AbstractUpdateMigration {
|
|
||||||
|
|
||||||
function getUpVersion() {
|
|
||||||
return '2.4.1';
|
|
||||||
}
|
|
||||||
|
|
||||||
function getDownVersion() {
|
|
||||||
return '2.4.0';
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace v242;
|
|
||||||
|
|
||||||
|
|
||||||
class UpdateVersion extends \AbstractUpdateMigration {
|
|
||||||
|
|
||||||
function getUpVersion() {
|
|
||||||
return '2.4.2';
|
|
||||||
}
|
|
||||||
|
|
||||||
function getDownVersion() {
|
|
||||||
return '2.4.1';
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace v250;
|
|
||||||
|
|
||||||
|
|
||||||
class UpdateVersion extends \AbstractUpdateMigration {
|
|
||||||
|
|
||||||
function getUpVersion() {
|
|
||||||
return '2.5.0';
|
|
||||||
}
|
|
||||||
|
|
||||||
function getDownVersion() {
|
|
||||||
return '2.4.2';
|
|
||||||
}
|
|
||||||
}
|
|
20
install/migrations/v260/AddApiTables.php
Normal file
20
install/migrations/v260/AddApiTables.php
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace v260;
|
||||||
|
|
||||||
|
|
||||||
|
class AddApiTables extends \AbstractMigration {
|
||||||
|
|
||||||
|
function up($hesk_settings) {
|
||||||
|
$this->executeQuery("INSERT INTO `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` (`Key`, `Value`) VALUES ('public_api', '0')");
|
||||||
|
$this->executeQuery("CREATE TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "user_api_tokens` (
|
||||||
|
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
`user_id` INT NOT NULL,
|
||||||
|
`token` VARCHAR(500) NOT NULL) ENGINE = MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci");
|
||||||
|
}
|
||||||
|
|
||||||
|
function down($hesk_settings) {
|
||||||
|
$this->executeQuery("DELETE FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` WHERE `Key` = 'public_api'");
|
||||||
|
$this->executeQuery("DROP TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "user_api_tokens`");
|
||||||
|
}
|
||||||
|
}
|
49
install/migrations/v260/AddCalendarModule.php
Normal file
49
install/migrations/v260/AddCalendarModule.php
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace v260;
|
||||||
|
|
||||||
|
|
||||||
|
class AddCalendarModule extends \AbstractMigration {
|
||||||
|
|
||||||
|
function up($hesk_settings) {
|
||||||
|
$this->executeQuery("CREATE TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "calendar_event` (
|
||||||
|
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
`start` DATETIME,
|
||||||
|
`end` DATETIME,
|
||||||
|
`all_day` ENUM('0','1') NOT NULL,
|
||||||
|
`name` VARCHAR(255) NOT NULL,
|
||||||
|
`location` VARCHAR(255),
|
||||||
|
`comments` MEDIUMTEXT,
|
||||||
|
`category` INT NOT NULL) ENGINE = MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci");
|
||||||
|
$this->executeQuery("CREATE TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "calendar_event_reminder` (
|
||||||
|
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
`user_id` INT NOT NULL,
|
||||||
|
`event_id` INT NOT NULL,
|
||||||
|
`amount` INT NOT NULL,
|
||||||
|
`unit` INT NOT NULL,
|
||||||
|
`email_sent` ENUM('0', '1') NOT NULL DEFAULT '0') ENGINE = MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci");
|
||||||
|
$this->executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "tickets` ADD COLUMN `due_date` DATETIME");
|
||||||
|
$this->executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "tickets` ADD COLUMN `overdue_email_sent` ENUM('0','1')");
|
||||||
|
$this->executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` ADD COLUMN `color` VARCHAR(7)");
|
||||||
|
$this->executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` ADD COLUMN `usage` INT NOT NULL DEFAULT 0");
|
||||||
|
$this->executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users` ADD COLUMN `notify_overdue_unassigned` ENUM('0', '1') NOT NULL DEFAULT '0' AFTER `notify_note_unassigned`");
|
||||||
|
$this->executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users` ADD COLUMN `default_calendar_view` INT NOT NULL DEFAULT '0' AFTER `notify_note_unassigned`");
|
||||||
|
$this->executeQuery("INSERT INTO `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` (`Key`, `Value`) VALUES ('enable_calendar', '1')");
|
||||||
|
$this->executeQuery("INSERT INTO `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` (`Key`, `Value`) VALUES ('first_day_of_week', '0')");
|
||||||
|
$this->executeQuery("INSERT INTO `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` (`Key`, `Value`) VALUES ('default_calendar_view', 'month')");
|
||||||
|
}
|
||||||
|
|
||||||
|
function down($hesk_settings) {
|
||||||
|
$this->executeQuery("DROP TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "calendar_event`");
|
||||||
|
$this->executeQuery("DROP TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "calendar_event_reminder`");
|
||||||
|
$this->executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "tickets` DROP COLUMN `due_date`");
|
||||||
|
$this->executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "tickets` DROP COLUMN `overdue_email_sent`");
|
||||||
|
$this->executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` DROP COLUMN `color`");
|
||||||
|
$this->executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` DROP COLUMN `usage`");
|
||||||
|
$this->executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users` DROP COLUMN `notify_overdue_unassigned`");
|
||||||
|
$this->executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users` DROP COLUMN `default_calendar_view`");
|
||||||
|
$this->executeQuery("DELETE FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` WHERE `Key` = 'enable_calendar'");
|
||||||
|
$this->executeQuery("DELETE FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` WHERE `Key` = 'first_day_of_week'");
|
||||||
|
$this->executeQuery("DELETE FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` WHERE `Key` = 'default_calendar_view'");
|
||||||
|
}
|
||||||
|
}
|
21
install/migrations/v260/AddLoggingTable.php
Normal file
21
install/migrations/v260/AddLoggingTable.php
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace v260;
|
||||||
|
|
||||||
|
|
||||||
|
class AddLoggingTable extends \AbstractMigration {
|
||||||
|
|
||||||
|
function up($hesk_settings) {
|
||||||
|
$this->executeQuery("CREATE TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "logging` (
|
||||||
|
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
`username` VARCHAR(200),
|
||||||
|
`message` MEDIUMTEXT NOT NULL,
|
||||||
|
`severity` INT NOT NULL,
|
||||||
|
`location` MEDIUMTEXT,
|
||||||
|
`timestamp` TIMESTAMP NOT NULL) ENGINE = MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci");
|
||||||
|
}
|
||||||
|
|
||||||
|
function down($hesk_settings) {
|
||||||
|
$this->executeQuery("DROP TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "logging`");
|
||||||
|
}
|
||||||
|
}
|
14
install/migrations/v260/AddPrimaryKeyToSettings.php
Normal file
14
install/migrations/v260/AddPrimaryKeyToSettings.php
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace v260;
|
||||||
|
|
||||||
|
|
||||||
|
class AddPrimaryKeyToSettings extends \AbstractMigration {
|
||||||
|
|
||||||
|
function up($hesk_settings) {
|
||||||
|
$this->executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` ADD PRIMARY KEY (`Key`)");
|
||||||
|
}
|
||||||
|
|
||||||
|
function down($hesk_settings) {
|
||||||
|
}
|
||||||
|
}
|
21
install/migrations/v260/AddTempAttachmentTable.php
Normal file
21
install/migrations/v260/AddTempAttachmentTable.php
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace v260;
|
||||||
|
|
||||||
|
|
||||||
|
class AddTempAttachmentTable extends \AbstractMigration {
|
||||||
|
|
||||||
|
function up($hesk_settings) {
|
||||||
|
$this->executeQuery("CREATE TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "temp_attachment` (
|
||||||
|
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
`file_name` VARCHAR(255) NOT NULL,
|
||||||
|
`saved_name` VARCHAR(255) NOT NULL,
|
||||||
|
`size` INT(10) UNSIGNED NOT NULL,
|
||||||
|
`type` ENUM('0','1') NOT NULL,
|
||||||
|
`date_uploaded` TIMESTAMP NOT NULL) ENGINE = MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci");
|
||||||
|
}
|
||||||
|
|
||||||
|
function down($hesk_settings) {
|
||||||
|
$this->executeQuery("DROP TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "temp_attachment`");
|
||||||
|
}
|
||||||
|
}
|
29
install/migrations/v260/ConvertStatusPropertiesToInts.php
Normal file
29
install/migrations/v260/ConvertStatusPropertiesToInts.php
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace v260;
|
||||||
|
|
||||||
|
|
||||||
|
class ConvertStatusPropertiesToInts extends \AbstractMigration {
|
||||||
|
|
||||||
|
function up($hesk_settings) {
|
||||||
|
$this->executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "statuses` CHANGE `IsNewTicketStatus` `IsNewTicketStatus` INT( 1 ) NOT NULL DEFAULT '0',
|
||||||
|
CHANGE `IsClosed` `IsClosed` INT( 1 ) NOT NULL DEFAULT '0',
|
||||||
|
CHANGE `IsClosedByClient` `IsClosedByClient` INT( 1 ) NOT NULL DEFAULT '0',
|
||||||
|
CHANGE `IsCustomerReplyStatus` `IsCustomerReplyStatus` INT( 1 ) NOT NULL DEFAULT '0',
|
||||||
|
CHANGE `IsStaffClosedOption` `IsStaffClosedOption` INT( 1 ) NOT NULL DEFAULT '0',
|
||||||
|
CHANGE `IsStaffReopenedStatus` `IsStaffReopenedStatus` INT( 1 ) NOT NULL DEFAULT '0',
|
||||||
|
CHANGE `IsDefaultStaffReplyStatus` `IsDefaultStaffReplyStatus` INT( 1 ) NOT NULL DEFAULT '0',
|
||||||
|
CHANGE `LockedTicketStatus` `LockedTicketStatus` INT( 1 ) NOT NULL DEFAULT '0'");
|
||||||
|
}
|
||||||
|
|
||||||
|
function down($hesk_settings) {
|
||||||
|
$this->executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "statuses` CHANGE `IsNewTicketStatus` `IsNewTicketStatus` INT( 1 ) NOT NULL DEFAULT '0',
|
||||||
|
CHANGE `IsClosed` `IsClosed` ENUM('0','1') NOT NULL DEFAULT '0',
|
||||||
|
CHANGE `IsClosedByClient` `IsClosedByClient` ENUM('0','1') NOT NULL DEFAULT '0',
|
||||||
|
CHANGE `IsCustomerReplyStatus` `IsCustomerReplyStatus` ENUM('0','1') NOT NULL DEFAULT '0',
|
||||||
|
CHANGE `IsStaffClosedOption` `IsStaffClosedOption` ENUM('0','1') NOT NULL DEFAULT '0',
|
||||||
|
CHANGE `IsStaffReopenedStatus` `IsStaffReopenedStatus` ENUM('0','1') NOT NULL DEFAULT '0',
|
||||||
|
CHANGE `IsDefaultStaffReplyStatus` `IsDefaultStaffReplyStatus` ENUM('0','1') NOT NULL DEFAULT '0',
|
||||||
|
CHANGE `LockedTicketStatus` `LockedTicketStatus` ENUM('0','1') NOT NULL DEFAULT '0'");
|
||||||
|
}
|
||||||
|
}
|
17
install/migrations/v262/AddMissingColumnsToStageTickets.php
Normal file
17
install/migrations/v262/AddMissingColumnsToStageTickets.php
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace v262;
|
||||||
|
|
||||||
|
|
||||||
|
class AddMissingColumnsToStageTickets extends \AbstractMigration {
|
||||||
|
|
||||||
|
function up($hesk_settings) {
|
||||||
|
$this->executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "stage_tickets` ADD COLUMN `due_date` DATETIME");
|
||||||
|
$this->executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "stage_tickets` ADD COLUMN `overdue_email_sent` ENUM('0','1')");
|
||||||
|
}
|
||||||
|
|
||||||
|
function down($hesk_settings) {
|
||||||
|
$this->executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "stage_tickets` DROP COLUMN `due_date`");
|
||||||
|
$this->executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "stage_tickets` DROP COLUMN `overdue_email_sent`");
|
||||||
|
}
|
||||||
|
}
|
15
install/migrations/v300/AddColorSchemeSetting.php
Normal file
15
install/migrations/v300/AddColorSchemeSetting.php
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace v300;
|
||||||
|
|
||||||
|
|
||||||
|
class AddColorSchemeSetting extends \AbstractMigration {
|
||||||
|
|
||||||
|
function up($hesk_settings) {
|
||||||
|
$this->executeQuery("INSERT INTO `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` (`Key`, `Value`) VALUES ('admin_color_scheme', 'skin-blue')");
|
||||||
|
}
|
||||||
|
|
||||||
|
function down($hesk_settings) {
|
||||||
|
$this->executeQuery("DELETE FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` WHERE `Key` = 'admin_color_scheme'");
|
||||||
|
}
|
||||||
|
}
|
17
install/migrations/v300/MigrateAutorefreshOption.php
Normal file
17
install/migrations/v300/MigrateAutorefreshOption.php
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace v300;
|
||||||
|
|
||||||
|
|
||||||
|
class MigrateAutorefreshOption extends \AbstractMigration {
|
||||||
|
|
||||||
|
function up($hesk_settings) {
|
||||||
|
$this->executeQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users` SET `autoreload` = `autorefresh` / 10");
|
||||||
|
$this->executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users` DROP COLUMN `autorefresh`");
|
||||||
|
}
|
||||||
|
|
||||||
|
function down($hesk_settings) {
|
||||||
|
$this->executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users` ADD COLUMN `autorefresh` BIGINT NOT NULL DEFAULT 0");
|
||||||
|
$this->executeQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users` SET `autorefresh` = `autoreload` * 10");
|
||||||
|
}
|
||||||
|
}
|
65
install/migrations/v300/MigrateHeskCustomStatuses.php
Normal file
65
install/migrations/v300/MigrateHeskCustomStatuses.php
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace v300;
|
||||||
|
|
||||||
|
|
||||||
|
class MigrateHeskCustomStatuses extends \AbstractMigration {
|
||||||
|
|
||||||
|
function up($hesk_settings) {
|
||||||
|
$hesk_statuses = $this->executeQuery("SELECT * FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "custom_statuses` ORDER BY `order`");
|
||||||
|
|
||||||
|
$next_status_id_rs = $this->executeQuery("SELECT MAX(`ID`) AS `last_id` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "statuses`");
|
||||||
|
$next_status_id_row = hesk_dbFetchAssoc($next_status_id_rs);
|
||||||
|
$next_status_id = intval($next_status_id_row['last_id']) + 1;
|
||||||
|
|
||||||
|
$next_sort_rs = $this->executeQuery("SELECT MAX(`sort`) AS `last_sort` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "statuses`");
|
||||||
|
$next_sort_row = hesk_dbFetchAssoc($next_sort_rs);
|
||||||
|
$next_sort = intval($next_sort_row['last_sort']) + 10;
|
||||||
|
|
||||||
|
while ($row = hesk_dbFetchAssoc($hesk_statuses)) {
|
||||||
|
$closable = $row['can_customers_change'] == '1' ? 'yes' : 'sonly';
|
||||||
|
|
||||||
|
$this->executeQuery("INSERT INTO `" . hesk_dbEscape($hesk_settings['db_pfix']) . "statuses` (`ID`,
|
||||||
|
`TextColor`,
|
||||||
|
`IsNewTicketStatus`,
|
||||||
|
`IsClosed`,
|
||||||
|
`IsClosedByClient`,
|
||||||
|
`IsCustomerReplyStatus`,
|
||||||
|
`IsStaffClosedOption`,
|
||||||
|
`IsStaffReopenedStatus`,
|
||||||
|
`IsDefaultStaffReplyStatus`,
|
||||||
|
`LockedTicketStatus`,
|
||||||
|
`IsAutocloseOption`,
|
||||||
|
`Closable`,
|
||||||
|
`Key`,
|
||||||
|
`sort`)
|
||||||
|
VALUES (" . $next_status_id . ",
|
||||||
|
'#" . $row['color'] . "',
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'" . $closable . "',
|
||||||
|
'STORED IN XREF TABLE',
|
||||||
|
" . $next_sort . ")");
|
||||||
|
|
||||||
|
$languages = json_decode($row['name']);
|
||||||
|
foreach ($languages as $language => $text) {
|
||||||
|
$this->executeQuery("INSERT INTO `" . hesk_dbEscape($hesk_settings['db_pfix']) . "text_to_status_xref` (`language`, `text`, `status_id`)
|
||||||
|
VALUES ('" . $language . "', '" . $text . "', " . $next_status_id . ")");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Increment the next ID and sort
|
||||||
|
$next_status_id++;
|
||||||
|
$next_sort += 10;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function down($hesk_settings) {
|
||||||
|
}
|
||||||
|
}
|
75
install/migrations/v302/AddMissingCustomFields.php
Normal file
75
install/migrations/v302/AddMissingCustomFields.php
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace v302;
|
||||||
|
|
||||||
|
|
||||||
|
class AddMissingCustomFields extends \AbstractMigration {
|
||||||
|
|
||||||
|
function up($hesk_settings) {
|
||||||
|
$this->executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "stage_tickets`
|
||||||
|
ADD COLUMN `custom21` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom22` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom23` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom24` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom25` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom26` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom27` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom28` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom29` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom30` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom31` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom32` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom33` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom34` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom35` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom36` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom37` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom38` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom39` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom40` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom41` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom42` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom43` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom44` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom45` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom46` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom47` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom48` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom49` MEDIUMTEXT,
|
||||||
|
ADD COLUMN `custom50` MEDIUMTEXT");
|
||||||
|
}
|
||||||
|
|
||||||
|
function down($hesk_settings) {
|
||||||
|
$this->executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "stage_tickets`
|
||||||
|
DROP COLUMN `custom21`,
|
||||||
|
DROP COLUMN `custom22`,
|
||||||
|
DROP COLUMN `custom23`,
|
||||||
|
DROP COLUMN `custom24`,
|
||||||
|
DROP COLUMN `custom25`,
|
||||||
|
DROP COLUMN `custom26`,
|
||||||
|
DROP COLUMN `custom27`,
|
||||||
|
DROP COLUMN `custom28`,
|
||||||
|
DROP COLUMN `custom29`,
|
||||||
|
DROP COLUMN `custom30`,
|
||||||
|
DROP COLUMN `custom31`,
|
||||||
|
DROP COLUMN `custom32`,
|
||||||
|
DROP COLUMN `custom33`,
|
||||||
|
DROP COLUMN `custom34`,
|
||||||
|
DROP COLUMN `custom35`,
|
||||||
|
DROP COLUMN `custom36`,
|
||||||
|
DROP COLUMN `custom37`,
|
||||||
|
DROP COLUMN `custom38`,
|
||||||
|
DROP COLUMN `custom39`,
|
||||||
|
DROP COLUMN `custom40`,
|
||||||
|
DROP COLUMN `custom41`,
|
||||||
|
DROP COLUMN `custom42`,
|
||||||
|
DROP COLUMN `custom43`,
|
||||||
|
DROP COLUMN `custom44`,
|
||||||
|
DROP COLUMN `custom45`,
|
||||||
|
DROP COLUMN `custom46`,
|
||||||
|
DROP COLUMN `custom47`,
|
||||||
|
DROP COLUMN `custom48`,
|
||||||
|
DROP COLUMN `custom49`,
|
||||||
|
DROP COLUMN `custom50`");
|
||||||
|
}
|
||||||
|
}
|
@ -1,351 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
require(HESK_PATH . 'hesk_settings.inc.php');
|
|
||||||
|
|
||||||
function executeQuery($sql)
|
|
||||||
{
|
|
||||||
global $hesk_last_query;
|
|
||||||
global $hesk_db_link;
|
|
||||||
if (function_exists('mysqli_connect')) {
|
|
||||||
|
|
||||||
if (!$hesk_db_link && !hesk_dbConnect()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$hesk_last_query = $sql;
|
|
||||||
|
|
||||||
if ($res = @mysqli_query($hesk_db_link, $sql)) {
|
|
||||||
return $res;
|
|
||||||
} else {
|
|
||||||
http_response_code(500);
|
|
||||||
print "Could not execute query: $sql. MySQL said: " . mysqli_error($hesk_db_link);
|
|
||||||
die();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (!$hesk_db_link && !hesk_dbConnect()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$hesk_last_query = $sql;
|
|
||||||
|
|
||||||
if ($res = @mysql_query($sql, $hesk_db_link)) {
|
|
||||||
return $res;
|
|
||||||
} else {
|
|
||||||
http_response_code(500);
|
|
||||||
print "Could not execute query: $sql. MySQL said: " . mysql_error();
|
|
||||||
die();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Version 2.5.1
|
|
||||||
function execute251Scripts()
|
|
||||||
{
|
|
||||||
global $hesk_settings;
|
|
||||||
hesk_dbConnect();
|
|
||||||
|
|
||||||
executeQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` SET `Value` = '2.5.1' WHERE `Key` = 'modsForHeskVersion'");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Version 2.5.2
|
|
||||||
function execute252Scripts()
|
|
||||||
{
|
|
||||||
global $hesk_settings;
|
|
||||||
hesk_dbConnect();
|
|
||||||
|
|
||||||
executeQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` SET `Value` = '2.5.2' WHERE `Key` = 'modsForHeskVersion'");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Version 2.5.3
|
|
||||||
function execute253Scripts()
|
|
||||||
{
|
|
||||||
global $hesk_settings;
|
|
||||||
hesk_dbConnect();
|
|
||||||
|
|
||||||
executeQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` SET `Value` = '2.5.3' WHERE `Key` = 'modsForHeskVersion'");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Version 2.5.4
|
|
||||||
function execute254Scripts()
|
|
||||||
{
|
|
||||||
global $hesk_settings;
|
|
||||||
hesk_dbConnect();
|
|
||||||
|
|
||||||
executeQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` SET `Value` = '2.5.4' WHERE `Key` = 'modsForHeskVersion'");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Version 2.5.5
|
|
||||||
function execute255Scripts()
|
|
||||||
{
|
|
||||||
updateVersion('2.5.5');
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateVersion($version) {
|
|
||||||
global $hesk_settings;
|
|
||||||
|
|
||||||
hesk_dbConnect();
|
|
||||||
|
|
||||||
executeQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` SET `Value` = '{$version}' WHERE `Key` = 'modsForHeskVersion'");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Version 2.6.0
|
|
||||||
function execute260Scripts()
|
|
||||||
{
|
|
||||||
global $hesk_settings;
|
|
||||||
hesk_dbConnect();
|
|
||||||
|
|
||||||
executeQuery("INSERT INTO `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` (`Key`, `Value`) VALUES ('public_api', '0')");
|
|
||||||
executeQuery("CREATE TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "logging` (
|
|
||||||
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
`username` VARCHAR(200),
|
|
||||||
`message` MEDIUMTEXT NOT NULL,
|
|
||||||
`severity` INT NOT NULL,
|
|
||||||
`location` MEDIUMTEXT,
|
|
||||||
`timestamp` TIMESTAMP NOT NULL) ENGINE = MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci");
|
|
||||||
executeQuery("CREATE TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "user_api_tokens` (
|
|
||||||
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
`user_id` INT NOT NULL,
|
|
||||||
`token` VARCHAR(500) NOT NULL) ENGINE = MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci");
|
|
||||||
executeQuery("CREATE TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "temp_attachment` (
|
|
||||||
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
`file_name` VARCHAR(255) NOT NULL,
|
|
||||||
`saved_name` VARCHAR(255) NOT NULL,
|
|
||||||
`size` INT(10) UNSIGNED NOT NULL,
|
|
||||||
`type` ENUM('0','1') NOT NULL,
|
|
||||||
`date_uploaded` TIMESTAMP NOT NULL) ENGINE = MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci");
|
|
||||||
executeQuery("CREATE TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "calendar_event` (
|
|
||||||
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
`start` DATETIME,
|
|
||||||
`end` DATETIME,
|
|
||||||
`all_day` ENUM('0','1') NOT NULL,
|
|
||||||
`name` VARCHAR(255) NOT NULL,
|
|
||||||
`location` VARCHAR(255),
|
|
||||||
`comments` MEDIUMTEXT,
|
|
||||||
`category` INT NOT NULL) ENGINE = MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci");
|
|
||||||
executeQuery("CREATE TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "calendar_event_reminder` (
|
|
||||||
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
`user_id` INT NOT NULL,
|
|
||||||
`event_id` INT NOT NULL,
|
|
||||||
`amount` INT NOT NULL,
|
|
||||||
`unit` INT NOT NULL,
|
|
||||||
`email_sent` ENUM('0', '1') NOT NULL DEFAULT '0') ENGINE = MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci");
|
|
||||||
executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "tickets` ADD COLUMN `due_date` DATETIME");
|
|
||||||
executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "tickets` ADD COLUMN `overdue_email_sent` ENUM('0','1')");
|
|
||||||
executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` ADD COLUMN `color` VARCHAR(7)");
|
|
||||||
executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` ADD COLUMN `usage` INT NOT NULL DEFAULT 0");
|
|
||||||
executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users` ADD COLUMN `notify_overdue_unassigned` ENUM('0', '1') NOT NULL DEFAULT '0' AFTER `notify_note_unassigned`");
|
|
||||||
executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users` ADD COLUMN `default_calendar_view` INT NOT NULL DEFAULT '0' AFTER `notify_note_unassigned`");
|
|
||||||
executeQuery("INSERT INTO `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` (`Key`, `Value`) VALUES ('enable_calendar', '1')");
|
|
||||||
executeQuery("INSERT INTO `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` (`Key`, `Value`) VALUES ('first_day_of_week', '0')");
|
|
||||||
executeQuery("INSERT INTO `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` (`Key`, `Value`) VALUES ('default_calendar_view', 'month')");
|
|
||||||
executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` ADD PRIMARY KEY ( `Key` )");
|
|
||||||
executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "statuses` CHANGE `IsNewTicketStatus` `IsNewTicketStatus` INT( 1 ) NOT NULL DEFAULT '0',
|
|
||||||
CHANGE `IsClosed` `IsClosed` INT( 1 ) NOT NULL DEFAULT '0',
|
|
||||||
CHANGE `IsClosedByClient` `IsClosedByClient` INT( 1 ) NOT NULL DEFAULT '0',
|
|
||||||
CHANGE `IsCustomerReplyStatus` `IsCustomerReplyStatus` INT( 1 ) NOT NULL DEFAULT '0',
|
|
||||||
CHANGE `IsStaffClosedOption` `IsStaffClosedOption` INT( 1 ) NOT NULL DEFAULT '0',
|
|
||||||
CHANGE `IsStaffReopenedStatus` `IsStaffReopenedStatus` INT( 1 ) NOT NULL DEFAULT '0',
|
|
||||||
CHANGE `IsDefaultStaffReplyStatus` `IsDefaultStaffReplyStatus` INT( 1 ) NOT NULL DEFAULT '0',
|
|
||||||
CHANGE `LockedTicketStatus` `LockedTicketStatus` INT( 1 ) NOT NULL DEFAULT '0'");
|
|
||||||
|
|
||||||
updateVersion('2.6.0');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Version 2.6.1
|
|
||||||
function execute261Scripts() {
|
|
||||||
updateVersion('2.6.1');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Version 2.6.2
|
|
||||||
function execute262Scripts() {
|
|
||||||
global $hesk_settings;
|
|
||||||
hesk_dbConnect();
|
|
||||||
|
|
||||||
executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "stage_tickets` ADD COLUMN `due_date` DATETIME");
|
|
||||||
executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "stage_tickets` ADD COLUMN `overdue_email_sent` ENUM('0','1')");
|
|
||||||
|
|
||||||
updateVersion('2.6.2');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Version 2.6.3
|
|
||||||
function execute263Scripts() {
|
|
||||||
global $hesk_settings;
|
|
||||||
hesk_dbConnect();
|
|
||||||
|
|
||||||
updateVersion('2.6.3');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Version 2.6.4
|
|
||||||
function execute264Scripts() {
|
|
||||||
global $hesk_settings;
|
|
||||||
hesk_dbConnect();
|
|
||||||
|
|
||||||
updateVersion('2.6.4');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Verison 3.0.0 Beta 1
|
|
||||||
function execute300Beta1Scripts() {
|
|
||||||
global $hesk_settings;
|
|
||||||
hesk_dbConnect();
|
|
||||||
|
|
||||||
$hesk_statuses = executeQuery("SELECT * FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "custom_statuses` ORDER BY `order`");
|
|
||||||
|
|
||||||
$next_status_id_rs = executeQuery("SELECT MAX(`ID`) AS `last_id` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "statuses`");
|
|
||||||
$next_status_id_row = hesk_dbFetchAssoc($next_status_id_rs);
|
|
||||||
$next_status_id = intval($next_status_id_row['last_id']) + 1;
|
|
||||||
|
|
||||||
$next_sort_rs = executeQuery("SELECT MAX(`sort`) AS `last_sort` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "statuses`");
|
|
||||||
$next_sort_row = hesk_dbFetchAssoc($next_sort_rs);
|
|
||||||
$next_sort = intval($next_sort_row['last_sort']) + 10;
|
|
||||||
|
|
||||||
while ($row = hesk_dbFetchAssoc($hesk_statuses)) {
|
|
||||||
$closable = $row['can_customers_change'] == '1' ? 'yes' : 'sonly';
|
|
||||||
|
|
||||||
executeQuery("INSERT INTO `" . hesk_dbEscape($hesk_settings['db_pfix']) . "statuses` (`ID`,
|
|
||||||
`TextColor`,
|
|
||||||
`IsNewTicketStatus`,
|
|
||||||
`IsClosed`,
|
|
||||||
`IsClosedByClient`,
|
|
||||||
`IsCustomerReplyStatus`,
|
|
||||||
`IsStaffClosedOption`,
|
|
||||||
`IsStaffReopenedStatus`,
|
|
||||||
`IsDefaultStaffReplyStatus`,
|
|
||||||
`LockedTicketStatus`,
|
|
||||||
`IsAutocloseOption`,
|
|
||||||
`Closable`,
|
|
||||||
`Key`,
|
|
||||||
`sort`)
|
|
||||||
VALUES (" . $next_status_id . ",
|
|
||||||
'#" . $row['color'] . "',
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
'" . $closable . "',
|
|
||||||
'STORED IN XREF TABLE',
|
|
||||||
" . $next_sort . ")");
|
|
||||||
|
|
||||||
$languages = json_decode($row['name']);
|
|
||||||
foreach ($languages as $language => $text) {
|
|
||||||
executeQuery("INSERT INTO `" . hesk_dbEscape($hesk_settings['db_pfix']) . "text_to_status_xref` (`language`, `text`, `status_id`)
|
|
||||||
VALUES ('" . $language . "', '" . $text . "', " . $next_status_id . ")");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Increment the next ID and sort
|
|
||||||
$next_status_id++;
|
|
||||||
$next_sort += 10;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Migrate user's autorefresh columns to the new autoreload column
|
|
||||||
// Mods for HESK is in millis; HESK is in seconds.
|
|
||||||
executeQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users` SET `autoreload` = `autorefresh` / 10");
|
|
||||||
|
|
||||||
// Add the admin_color_scheme setting
|
|
||||||
executeQuery("INSERT INTO `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` (`Key`, `Value`) VALUES ('admin_color_scheme', 'skin-blue')");
|
|
||||||
|
|
||||||
updateVersion('3.0.0 beta 1');
|
|
||||||
}
|
|
||||||
|
|
||||||
function execute300RC1Scripts() {
|
|
||||||
global $hesk_settings;
|
|
||||||
hesk_dbConnect();
|
|
||||||
|
|
||||||
executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users` DROP COLUMN `autorefresh`");
|
|
||||||
|
|
||||||
updateVersion('3.0.0 RC 1');
|
|
||||||
}
|
|
||||||
|
|
||||||
function execute300Scripts() {
|
|
||||||
global $hesk_settings;
|
|
||||||
hesk_dbConnect();
|
|
||||||
|
|
||||||
updateVersion('3.0.0');
|
|
||||||
}
|
|
||||||
|
|
||||||
function execute301Scripts() {
|
|
||||||
global $hesk_settings;
|
|
||||||
hesk_dbConnect();
|
|
||||||
|
|
||||||
updateVersion('3.0.1');
|
|
||||||
}
|
|
||||||
|
|
||||||
function execute302Scripts() {
|
|
||||||
global $hesk_settings;
|
|
||||||
hesk_dbConnect();
|
|
||||||
|
|
||||||
executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "stage_tickets`
|
|
||||||
ADD COLUMN `custom21` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom22` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom23` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom24` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom25` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom26` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom27` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom28` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom29` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom30` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom31` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom32` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom33` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom34` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom35` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom36` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom37` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom38` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom39` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom40` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom41` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom42` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom43` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom44` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom45` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom46` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom47` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom48` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom49` MEDIUMTEXT,
|
|
||||||
ADD COLUMN `custom50` MEDIUMTEXT");
|
|
||||||
|
|
||||||
updateVersion('3.0.2');
|
|
||||||
}
|
|
||||||
|
|
||||||
function execute303Scripts() {
|
|
||||||
global $hesk_settings;
|
|
||||||
hesk_dbConnect();
|
|
||||||
|
|
||||||
updateVersion('3.0.3');
|
|
||||||
}
|
|
||||||
|
|
||||||
function execute304Scripts() {
|
|
||||||
global $hesk_settings;
|
|
||||||
hesk_dbConnect();
|
|
||||||
|
|
||||||
updateVersion('3.0.4');
|
|
||||||
}
|
|
||||||
|
|
||||||
function execute305Scripts() {
|
|
||||||
global $hesk_settings;
|
|
||||||
hesk_dbConnect();
|
|
||||||
|
|
||||||
updateVersion('3.0.5');
|
|
||||||
}
|
|
||||||
|
|
||||||
function execute306Scripts() {
|
|
||||||
global $hesk_settings;
|
|
||||||
hesk_dbConnect();
|
|
||||||
|
|
||||||
updateVersion('3.0.6');
|
|
||||||
}
|
|
||||||
|
|
||||||
function execute307Scripts() {
|
|
||||||
global $hesk_settings;
|
|
||||||
hesk_dbConnect();
|
|
||||||
|
|
||||||
updateVersion('3.0.7');
|
|
||||||
}
|
|
||||||
|
|
||||||
function execute310Scripts() {
|
function execute310Scripts() {
|
||||||
global $hesk_settings;
|
global $hesk_settings;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user