diff options
-rw-r--r-- | Zotlabs/Module/Mail.php | 74 | ||||
-rw-r--r-- | include/conversation.php | 8 | ||||
-rwxr-xr-x | include/items.php | 20 | ||||
-rw-r--r-- | include/message.php | 19 | ||||
-rw-r--r-- | include/text.php | 20 | ||||
-rw-r--r-- | install/schema_mysql.sql | 545 | ||||
-rwxr-xr-x | view/tpl/conv_item.tpl | 106 | ||||
-rwxr-xr-x | view/tpl/conv_list.tpl | 102 | ||||
-rw-r--r-- | view/tpl/item_binary.tpl | 3 |
9 files changed, 453 insertions, 444 deletions
diff --git a/Zotlabs/Module/Mail.php b/Zotlabs/Module/Mail.php index d605a78a9..f6add7778 100644 --- a/Zotlabs/Module/Mail.php +++ b/Zotlabs/Module/Mail.php @@ -22,32 +22,40 @@ class Mail extends \Zotlabs\Web\Controller { $recipient = ((x($_REQUEST,'messageto')) ? notags(trim($_REQUEST['messageto'])) : ''); $rstr = ((x($_REQUEST,'messagerecip')) ? notags(trim($_REQUEST['messagerecip'])) : ''); $preview = ((x($_REQUEST,'preview')) ? intval($_REQUEST['preview']) : 0); - $expires = ((x($_REQUEST,'expires')) ? datetime_convert(date_default_timezone_get(),'UTC', $_REQUEST['expires']) : NULL_DATE); + $expires = ((x($_REQUEST,'expires')) ? datetime_convert(date_default_timezone_get(),'UTC', $_REQUEST['expires']) : NULL_DATE); + $raw = ((x($_REQUEST,'raw')) ? intval($_REQUEST['raw']) : 0); + $mimetype = ((x($_REQUEST,'mimetype')) ? notags(trim($_REQUEST['mimetype'])) : 'text/bbcode'); if($preview) { - $body = cleanup_bbcode($body); - $results = linkify_tags($a, $body, local_channel()); + if($raw) { + $body = mail_prepare_binary(['id' => 'M0']); + echo json_encode(['preview' => $body]); + } + else { + $body = cleanup_bbcode($body); + $results = linkify_tags($a, $body, local_channel()); - if(preg_match_all('/(\[attachment\](.*?)\[\/attachment\])/',$body,$match)) { - $attachments = array(); - foreach($match[2] as $mtch) { - $hash = substr($mtch,0,strpos($mtch,',')); - $rev = intval(substr($mtch,strpos($mtch,','))); - $r = attach_by_hash_nodata($hash,get_observer_hash(),$rev); - if($r['success']) { - $attachments[] = array( - 'href' => z_root() . '/attach/' . $r['data']['hash'], - 'length' => $r['data']['filesize'], - 'type' => $r['data']['filetype'], - 'title' => urlencode($r['data']['filename']), - 'revision' => $r['data']['revision'] - ); + if(preg_match_all('/(\[attachment\](.*?)\[\/attachment\])/',$body,$match)) { + $attachments = array(); + foreach($match[2] as $mtch) { + $hash = substr($mtch,0,strpos($mtch,',')); + $rev = intval(substr($mtch,strpos($mtch,','))); + $r = attach_by_hash_nodata($hash,get_observer_hash(),$rev); + if($r['success']) { + $attachments[] = array( + 'href' => z_root() . '/attach/' . $r['data']['hash'], + 'length' => $r['data']['filesize'], + 'type' => $r['data']['filetype'], + 'title' => urlencode($r['data']['filename']), + 'revision' => $r['data']['revision'] + ); + } + $body = trim(str_replace($match[1],'',$body)); } - $body = trim(str_replace($match[1],'',$body)); + echo json_encode(['preview' => zidify_links(smilies(bbcode($body)))]); } } - echo json_encode(['preview' => zidify_links(smilies(bbcode($body)))]); killme(); } @@ -102,36 +110,10 @@ class Mail extends \Zotlabs\Web\Controller { } } - // if(feature_enabled(local_channel(),'richtext')) { - // $body = fix_mce_lf($body); - // } - require_once('include/text.php'); linkify_tags($a, $body, local_channel()); - // I don't think this is used any more. - - if($preview) { - $mail = [ - 'mailbox' => 'outbox', - 'id' => 0, - 'mid' => 'M0', - 'from_name' => $channel['xchan_name'], - 'from_url' => $channel['xchan_url'], - 'from_photo' => $channel['xchan_photo_s'], - 'subject' => zidify_links(smilies(bbcode($subject))), - 'body' => zidify_links(smilies(bbcode($body))), - 'attachments' => '', - 'can_recall' => false, - 'is_recalled' => '', - 'date' => datetime_convert('UTC',date_default_timezone_get(),$message['created'], 'c') - ]; - - echo replace_macros(get_markup_template('mail_conv.tpl'), [ '$mail' => $mail ] ); - killme(); - } - if(! $recipient) { notice('No recipient found.'); \App::$argc = 2; @@ -141,7 +123,7 @@ class Mail extends \Zotlabs\Web\Controller { // We have a local_channel, let send_message use the session channel and save a lookup - $ret = send_message(0, $recipient, $body, $subject, $replyto, $expires); + $ret = send_message(0, $recipient, $body, $subject, $replyto, $expires, $mimetype, $raw); if($ret['success']) { xchan_mail_query($ret['mail']); diff --git a/include/conversation.php b/include/conversation.php index c325a516f..3f9ee5cfa 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -353,14 +353,6 @@ function localize_item(&$item){ } */ - // if item body was obscured and we changed it, re-obscure it - // FIXME - we need a better filter than just the string 'data'; try and - // match the fact that it's json encoded - - if(intval($item['item_obscured']) - && strlen($item['body']) && (! strpos($item['body'],'data'))) { - $item['body'] = z_obscure($item['body']); - } } diff --git a/include/items.php b/include/items.php index f7fddad33..206a97c42 100755 --- a/include/items.php +++ b/include/items.php @@ -1359,6 +1359,8 @@ function encode_mail($item,$extended = false) { $x['body'] = $item['body']; $x['from'] = encode_item_xchan($item['from']); $x['to'] = encode_item_xchan($item['to']); + $x['raw'] = $item['mail_raw']; + $x['mimetype'] = $item['mail_mimetype']; if($item['attach']) $x['attach'] = json_decode($item['attach'],true); @@ -1392,9 +1394,16 @@ function get_mail_elements($x) { $arr = array(); - $arr['body'] = (($x['body']) ? htmlspecialchars($x['body'], ENT_COMPAT,'UTF-8',false) : ''); - $arr['title'] = (($x['title'])? htmlspecialchars($x['title'],ENT_COMPAT,'UTF-8',false) : ''); + if(intval($x['raw'])) { + $arr['mail_raw'] = intval($x['raw']); + $arr['body'] = $x['body']; + } + else { + $arr['body'] = (($x['body']) ? htmlspecialchars($x['body'], ENT_COMPAT,'UTF-8',false) : ''); + } + $arr['title'] = (($x['title'])? htmlspecialchars($x['title'],ENT_COMPAT,'UTF-8',false) : ''); + $arr['mail_mimetype'] = (($x['mimetype']) ? htmlspecialchars($x['mimetype'],ENT_COMPAT,'UTF-8',false) : 'text/bbcode'); $arr['conv_guid'] = (($x['conv_guid'])? htmlspecialchars($x['conv_guid'],ENT_COMPAT,'UTF-8',false) : ''); $arr['created'] = datetime_convert('UTC','UTC',$x['created']); @@ -3032,8 +3041,10 @@ function mail_store($arr) { $arr['body'] = ((x($arr,'body')) ? trim($arr['body']) : ''); $arr['sig'] = ((x($arr,'sig')) ? trim($arr['sig']) : ''); $arr['conv_guid'] = ((x($arr,'conv_guid')) ? trim($arr['conv_guid']) : ''); + $arr['mail_mimetype'] = ((x($arr,'mail_mimetype')) ? trim($arr['mail_mimetype']) : 'text/bbcode'); $arr['mail_flags'] = ((x($arr,'mail_flags')) ? intval($arr['mail_flags']) : 0 ); + $arr['mail_raw'] = ((x($arr,'mail_raw')) ? intval($arr['mail_raw']) : 0 ); if(! $arr['parent_mid']) { logger('mail_store: missing parent'); @@ -4350,10 +4361,7 @@ function sync_an_item($channel_id,$item_id) { if($r) { xchan_query($r); $sync_item = fetch_post_tags($r); - $rid = q("select * from item_id where iid = %d", - intval($item_id) - ); - build_sync_packet($channel_d,array('item' => array(encode_item($sync_item[0],true)),'item_id' => $rid)); + build_sync_packet($channel_d,array('item' => array(encode_item($sync_item[0],true)))); } } diff --git a/include/message.php b/include/message.php index 609ceb354..5458eeb0e 100644 --- a/include/message.php +++ b/include/message.php @@ -5,10 +5,20 @@ require_once('include/crypto.php'); require_once('include/attach.php'); + +function mail_prepare_binary($item) { + + return replace_macros(get_markup_template('item_binary.tpl'), [ + '$download' => t('Download binary/encrypted content'), + '$url' => z_root() . '/mail/' . $item['id'] . '/download' + ]); +} + + // send a private message -function send_message($uid = 0, $recipient = '', $body = '', $subject = '', $replyto = '', $expires = NULL_DATE) { +function send_message($uid = 0, $recipient = '', $body = '', $subject = '', $replyto = '', $expires = NULL_DATE, $mimetype = 'text/bbcode', $raw = false) { $ret = array('success' => false); $is_reply = false; @@ -192,8 +202,8 @@ function send_message($uid = 0, $recipient = '', $body = '', $subject = '', $rep $sig = ''; // placeholder $mimetype = ''; //placeholder - $r = q("INSERT INTO mail ( account_id, conv_guid, mail_obscured, channel_id, from_xchan, to_xchan, mail_mimetype, title, body, sig, attach, mid, parent_mid, created, expires, mail_isreply ) - VALUES ( %d, '%s', %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d )", + $r = q("INSERT INTO mail ( account_id, conv_guid, mail_obscured, channel_id, from_xchan, to_xchan, mail_mimetype, title, body, sig, attach, mid, parent_mid, created, expires, mail_isreply, mail_raw ) + VALUES ( %d, '%s', %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d )", intval($channel['channel_account_id']), dbesc($conv_guid), intval(1), @@ -209,7 +219,8 @@ function send_message($uid = 0, $recipient = '', $body = '', $subject = '', $rep dbesc($replyto), dbesc(datetime_convert()), dbescdate($expires), - intval($is_reply) + intval($is_reply), + intval($raw) ); // verify the save diff --git a/include/text.php b/include/text.php index 6f5c48679..d8438b2b1 100644 --- a/include/text.php +++ b/include/text.php @@ -1562,7 +1562,12 @@ function prepare_body(&$item,$attach = false) { } } - $s .= prepare_text($item['body'],$item['mimetype'], false); + if($item['item_obscured']) { + $s .= prepare_binary($item); + } + else { + $s .= prepare_text($item['body'],$item['mimetype'], false); + } $event = (($item['obj_type'] === ACTIVITY_OBJ_EVENT) ? format_event_obj($item['obj']) : false); @@ -1625,6 +1630,17 @@ function prepare_body(&$item,$attach = false) { return $prep_arr; } + +function prepare_binary($item) { + return replace_macros(get_markup_template('item_binary.tpl'), [ + '$download' => t('Download binary/encrypted content'), + '$url' => z_root() . '/viewsrc/' . $item['id'] . '/download' + ]); +} + + + + /** * @brief Given a text string, convert from bbcode to html and add smilie icons. * @@ -2897,7 +2913,7 @@ function pdl_selector($uid, $current='') { $sql_extra = item_permissions_sql($uid); - $r = q("select iconfig.*, mid from item_id left join item on iconfig.iid = item.id + $r = q("select iconfig.*, mid from iconfig left join item on iconfig.iid = item.id where item.uid = %d and iconfig.cat = 'system' and iconfig.k = 'PDL' $sql_extra order by v asc", intval($uid) ); diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql index f46d344de..3ef65f454 100644 --- a/install/schema_mysql.sql +++ b/install/schema_mysql.sql @@ -11,13 +11,13 @@ CREATE TABLE IF NOT EXISTS `abconfig` ( KEY `xchan` (`xchan`), KEY `cat` (`cat`), KEY `k` (`k`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `abook` ( `abook_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `abook_account` int(10) unsigned NOT NULL DEFAULT 0 , `abook_channel` int(10) unsigned NOT NULL DEFAULT 0 , - `abook_xchan` char(255) NOT NULL DEFAULT '', + `abook_xchan` char(191) NOT NULL DEFAULT '', `abook_my_perms` int(11) NOT NULL DEFAULT 0 , `abook_their_perms` int(11) NOT NULL DEFAULT 0 , `abook_closeness` tinyint(3) unsigned NOT NULL DEFAULT 99, @@ -35,7 +35,7 @@ CREATE TABLE IF NOT EXISTS `abook` ( `abook_self` tinyint(4) NOT NULL DEFAULT 0 , `abook_feed` tinyint(4) NOT NULL DEFAULT 0 , `abook_not_here` tinyint(4) NOT NULL DEFAULT 0 , - `abook_profile` char(64) NOT NULL DEFAULT '', + `abook_profile` char(191) NOT NULL DEFAULT '', `abook_incl` text NOT NULL, `abook_excl` text NOT NULL, `abook_instance` text NOT NULL, @@ -61,22 +61,22 @@ CREATE TABLE IF NOT EXISTS `abook` ( KEY `abook_self` (`abook_self`), KEY `abook_not_here` (`abook_not_here`), KEY `abook_feed` (`abook_feed`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `account` ( `account_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `account_parent` int(10) unsigned NOT NULL DEFAULT 0 , `account_default_channel` int(10) unsigned NOT NULL DEFAULT 0 , `account_salt` char(32) NOT NULL DEFAULT '', - `account_password` char(255) NOT NULL DEFAULT '', - `account_email` char(255) NOT NULL DEFAULT '', - `account_external` char(255) NOT NULL DEFAULT '', + `account_password` char(191) NOT NULL DEFAULT '', + `account_email` char(191) NOT NULL DEFAULT '', + `account_external` char(191) NOT NULL DEFAULT '', `account_language` char(16) NOT NULL DEFAULT 'en', `account_created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `account_lastlog` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `account_flags` int(10) unsigned NOT NULL DEFAULT 0 , `account_roles` int(10) unsigned NOT NULL DEFAULT 0 , - `account_reset` char(255) NOT NULL DEFAULT '', + `account_reset` char(191) NOT NULL DEFAULT '', `account_expires` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `account_expire_notified` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `account_service_class` char(32) NOT NULL DEFAULT '', @@ -94,12 +94,12 @@ CREATE TABLE IF NOT EXISTS `account` ( KEY `account_external` (`account_external`), KEY `account_level` (`account_level`), KEY `account_password_changed` (`account_password_changed`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `addon` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `aname` char(255) NOT NULL DEFAULT '', - `version` char(255) NOT NULL DEFAULT '', + `aname` char(191) NOT NULL DEFAULT '', + `version` char(191) NOT NULL DEFAULT '', `installed` tinyint(1) NOT NULL DEFAULT 0 , `hidden` tinyint(1) NOT NULL DEFAULT 0 , `tstamp` bigint(20) NOT NULL DEFAULT 0 , @@ -108,26 +108,26 @@ CREATE TABLE IF NOT EXISTS `addon` ( KEY `hidden` (`hidden`), KEY `aname` (`aname`), KEY `installed` (`installed`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `app` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `app_id` char(255) NOT NULL DEFAULT '', - `app_sig` char(255) NOT NULL DEFAULT '', - `app_author` char(255) NOT NULL DEFAULT '', - `app_name` char(255) NOT NULL DEFAULT '', + `app_id` char(191) NOT NULL DEFAULT '', + `app_sig` char(191) NOT NULL DEFAULT '', + `app_author` char(191) NOT NULL DEFAULT '', + `app_name` char(191) NOT NULL DEFAULT '', `app_desc` text NOT NULL, - `app_url` char(255) NOT NULL DEFAULT '', - `app_photo` char(255) NOT NULL DEFAULT '', - `app_version` char(255) NOT NULL DEFAULT '', + `app_url` char(191) NOT NULL DEFAULT '', + `app_photo` char(191) NOT NULL DEFAULT '', + `app_version` char(191) NOT NULL DEFAULT '', `app_channel` int(11) NOT NULL DEFAULT 0 , - `app_addr` char(255) NOT NULL DEFAULT '', - `app_price` char(255) NOT NULL DEFAULT '', - `app_page` char(255) NOT NULL DEFAULT '', - `app_requires` char(255) NOT NULL DEFAULT '', + `app_addr` char(191) NOT NULL DEFAULT '', + `app_price` char(191) NOT NULL DEFAULT '', + `app_page` char(191) NOT NULL DEFAULT '', + `app_requires` char(191) NOT NULL DEFAULT '', `app_deleted` int(11) NOT NULL DEFAULT 0 , `app_system` int(11) NOT NULL DEFAULT 0 , - `app_plugin` char(255) NOT NULL DEFAULT '', + `app_plugin` char(191) NOT NULL DEFAULT '', `app_created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `app_edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY (`id`), @@ -142,15 +142,15 @@ CREATE TABLE IF NOT EXISTS `app` ( KEY `app_deleted` (`app_deleted`), KEY `app_system` (`app_system`), KEY `app_edited` (`app_edited`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `atoken` ( `atoken_id` int(11) NOT NULL AUTO_INCREMENT, `atoken_aid` int(11) NOT NULL DEFAULT 0, `atoken_uid` int(11) NOT NULL DEFAULT 0, - `atoken_name` char(255) NOT NULL DEFAULT '', - `atoken_token` char(255) NOT NULL DEFAULT '', + `atoken_name` char(191) NOT NULL DEFAULT '', + `atoken_token` char(191) NOT NULL DEFAULT '', `atoken_expires` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY (`atoken_id`), KEY `atoken_aid` (`atoken_aid`), @@ -159,7 +159,7 @@ CREATE TABLE IF NOT EXISTS `atoken` ( KEY `atoken_name` (`atoken_name`), KEY `atoken_token` (`atoken_token`), KEY `atoken_expires` (`atoken_expires`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `attach` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, @@ -167,7 +167,7 @@ CREATE TABLE IF NOT EXISTS `attach` ( `uid` int(10) unsigned NOT NULL DEFAULT 0 , `hash` char(64) NOT NULL DEFAULT '', `creator` char(128) NOT NULL DEFAULT '', - `filename` char(255) NOT NULL DEFAULT '', + `filename` char(191) NOT NULL DEFAULT '', `filetype` char(64) NOT NULL DEFAULT '', `filesize` int(10) unsigned NOT NULL DEFAULT 0 , `revision` int(10) unsigned NOT NULL DEFAULT 0 , @@ -201,7 +201,7 @@ CREATE TABLE IF NOT EXISTS `attach` ( KEY `is_dir` (`is_dir`), KEY `is_photo` (`is_photo`), KEY `os_storage` (`os_storage`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `auth_codes` ( `id` varchar(40) NOT NULL DEFAULT '', @@ -210,14 +210,14 @@ CREATE TABLE IF NOT EXISTS `auth_codes` ( `expires` int(11) NOT NULL DEFAULT 0 , `auth_scope` varchar(512) NOT NULL DEFAULT '', PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `cache` ( - `k` char(255) NOT NULL DEFAULT '', + `k` char(191) NOT NULL DEFAULT '', `v` text NOT NULL, `updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY (`k`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `cal` ( `cal_id` int(10) unsigned NOT NULL AUTO_INCREMENT, @@ -237,21 +237,21 @@ CREATE TABLE IF NOT EXISTS `cal` ( KEY `cal_hash` (`cal_hash`), KEY `cal_name` (`cal_name`), KEY `cal_types` (`cal_types`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `channel` ( `channel_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `channel_account_id` int(10) unsigned NOT NULL DEFAULT 0 , `channel_primary` tinyint(1) unsigned NOT NULL DEFAULT 0 , - `channel_name` char(255) NOT NULL DEFAULT '', - `channel_address` char(255) NOT NULL DEFAULT '', - `channel_guid` char(255) NOT NULL DEFAULT '', + `channel_name` char(191) NOT NULL DEFAULT '', + `channel_address` char(191) NOT NULL DEFAULT '', + `channel_guid` char(191) NOT NULL DEFAULT '', `channel_guid_sig` text NOT NULL, - `channel_hash` char(255) NOT NULL DEFAULT '', + `channel_hash` char(191) NOT NULL DEFAULT '', `channel_timezone` char(128) NOT NULL DEFAULT 'UTC', - `channel_location` char(255) NOT NULL DEFAULT '', - `channel_theme` char(255) NOT NULL DEFAULT '', - `channel_startpage` char(255) NOT NULL DEFAULT '', + `channel_location` char(191) NOT NULL DEFAULT '', + `channel_theme` char(191) NOT NULL DEFAULT '', + `channel_startpage` char(191) NOT NULL DEFAULT '', `channel_pubkey` text NOT NULL, `channel_prvkey` text NOT NULL, `channel_notifyflags` int(10) unsigned NOT NULL DEFAULT 65535, @@ -262,8 +262,8 @@ CREATE TABLE IF NOT EXISTS `channel` ( `channel_max_anon_mail` int(10) unsigned NOT NULL DEFAULT 10, `channel_max_friend_req` int(10) unsigned NOT NULL DEFAULT 10, `channel_expire_days` int(11) NOT NULL DEFAULT 0 , - `channel_passwd_reset` char(255) NOT NULL DEFAULT '', - `channel_default_group` char(255) NOT NULL DEFAULT '', + `channel_passwd_reset` char(191) NOT NULL DEFAULT '', + `channel_default_group` char(191) NOT NULL DEFAULT '', `channel_allow_cid` mediumtext NOT NULL, `channel_allow_gid` mediumtext NOT NULL, `channel_deny_cid` mediumtext NOT NULL, @@ -288,11 +288,11 @@ CREATE TABLE IF NOT EXISTS `channel` ( `channel_w_like` int(10) unsigned NOT NULL DEFAULT 0 , `channel_removed` tinyint(1) NOT NULL DEFAULT 0 , `channel_system` tinyint(1) NOT NULL DEFAULT 0 , - `channel_moved` char(255) NOT NULL DEFAULT '', + `channel_moved` char(191) NOT NULL DEFAULT '', `channel_password` varchar(255) NOT NULL, `channel_salt` varchar(255) NOT NULL, PRIMARY KEY (`channel_id`), - UNIQUE KEY `channel_address_unique` (`channel_address`), + KEY `channel_address` (`channel_address`), KEY `channel_account_id` (`channel_account_id`), KEY `channel_primary` (`channel_primary`), KEY `channel_name` (`channel_name`), @@ -331,39 +331,39 @@ CREATE TABLE IF NOT EXISTS `channel` ( KEY `channel_system` (`channel_system`), KEY `channel_lastpost` (`channel_lastpost`), KEY `channel_moved` (`channel_moved`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `chat` ( `chat_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `chat_room` int(10) unsigned NOT NULL DEFAULT 0 , - `chat_xchan` char(255) NOT NULL DEFAULT '', + `chat_xchan` char(191) NOT NULL DEFAULT '', `chat_text` mediumtext NOT NULL, `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY (`chat_id`), KEY `chat_room` (`chat_room`), KEY `chat_xchan` (`chat_xchan`), KEY `created` (`created`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `chatpresence` ( `cp_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `cp_room` int(10) unsigned NOT NULL DEFAULT 0 , - `cp_xchan` char(255) NOT NULL DEFAULT '', + `cp_xchan` char(191) NOT NULL DEFAULT '', `cp_last` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', - `cp_status` char(255) NOT NULL DEFAULT '', + `cp_status` char(191) NOT NULL DEFAULT '', `cp_client` char(128) NOT NULL DEFAULT '', PRIMARY KEY (`cp_id`), KEY `cp_room` (`cp_room`), KEY `cp_xchan` (`cp_xchan`), KEY `cp_last` (`cp_last`), KEY `cp_status` (`cp_status`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `chatroom` ( `cr_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `cr_aid` int(10) unsigned NOT NULL DEFAULT 0 , `cr_uid` int(10) unsigned NOT NULL DEFAULT 0 , - `cr_name` char(255) NOT NULL DEFAULT '', + `cr_name` char(191) NOT NULL DEFAULT '', `cr_created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `cr_edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `cr_expire` int(10) unsigned NOT NULL DEFAULT 0 , @@ -378,7 +378,7 @@ CREATE TABLE IF NOT EXISTS `chatroom` ( KEY `cr_created` (`cr_created`), KEY `cr_edited` (`cr_edited`), KEY `cr_expire` (`cr_expire`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `clients` ( `client_id` varchar(20) NOT NULL DEFAULT '', @@ -388,41 +388,41 @@ CREATE TABLE IF NOT EXISTS `clients` ( `icon` text, `uid` int(11) NOT NULL DEFAULT 0 , PRIMARY KEY (`client_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `config` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `cat` char(255) CHARACTER SET ascii NOT NULL DEFAULT '', - `k` char(255) CHARACTER SET ascii NOT NULL DEFAULT '', + `cat` char(191) NOT NULL DEFAULT '', + `k` char(191) NOT NULL DEFAULT '', `v` text NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `access` (`cat`,`k`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `conv` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `guid` char(255) NOT NULL DEFAULT '', + `guid` char(191) NOT NULL DEFAULT '', `recips` mediumtext NOT NULL, `uid` int(11) NOT NULL DEFAULT 0 , - `creator` char(255) NOT NULL DEFAULT '', + `creator` char(191) NOT NULL DEFAULT '', `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `subject` mediumtext NOT NULL, PRIMARY KEY (`id`), KEY `created` (`created`), KEY `updated` (`updated`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `dreport` ( `dreport_id` int(11) NOT NULL AUTO_INCREMENT, `dreport_channel` int(11) NOT NULL DEFAULT 0 , - `dreport_mid` char(255) NOT NULL DEFAULT '', - `dreport_site` char(255) NOT NULL DEFAULT '', - `dreport_recip` char(255) NOT NULL DEFAULT '', - `dreport_result` char(255) NOT NULL DEFAULT '', + `dreport_mid` char(191) NOT NULL DEFAULT '', + `dreport_site` char(191) NOT NULL DEFAULT '', + `dreport_recip` char(191) NOT NULL DEFAULT '', + `dreport_result` char(191) NOT NULL DEFAULT '', `dreport_time` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', - `dreport_xchan` char(255) NOT NULL DEFAULT '', - `dreport_queue` char(255) NOT NULL DEFAULT '', + `dreport_xchan` char(191) NOT NULL DEFAULT '', + `dreport_queue` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`dreport_id`), KEY `dreport_mid` (`dreport_mid`), KEY `dreport_site` (`dreport_site`), @@ -430,15 +430,15 @@ CREATE TABLE IF NOT EXISTS `dreport` ( KEY `dreport_xchan` (`dreport_xchan`), KEY `dreport_queue` (`dreport_queue`), KEY `dreport_channel` (`dreport_channel`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `event` ( `id` int(11) NOT NULL AUTO_INCREMENT, `aid` int(10) unsigned NOT NULL DEFAULT 0 , `uid` int(11) NOT NULL DEFAULT 0 , `cal_id` int(11) unsigned NOT NULL DEFAULT 0 , - `event_xchan` char(255) NOT NULL DEFAULT '', - `event_hash` char(255) NOT NULL DEFAULT '', + `event_xchan` char(191) NOT NULL DEFAULT '', + `event_hash` char(191) NOT NULL DEFAULT '', `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `dtstart` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', @@ -446,7 +446,7 @@ CREATE TABLE IF NOT EXISTS `event` ( `summary` text NOT NULL, `description` text NOT NULL, `location` text NOT NULL, - `etype` char(255) NOT NULL DEFAULT '', + `etype` char(191) NOT NULL DEFAULT '', `nofinish` tinyint(1) NOT NULL DEFAULT 0 , `adjust` tinyint(1) NOT NULL DEFAULT 1, `dismissed` tinyint(1) NOT NULL DEFAULT 0 , @@ -454,7 +454,7 @@ CREATE TABLE IF NOT EXISTS `event` ( `allow_gid` mediumtext NOT NULL, `deny_cid` mediumtext NOT NULL, `deny_gid` mediumtext NOT NULL, - `event_status` char(255) NOT NULL DEFAULT '', + `event_status` char(191) NOT NULL DEFAULT '', `event_status_date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `event_percent` smallint(6) NOT NULL DEFAULT 0 , `event_repeat` text NOT NULL, @@ -476,61 +476,61 @@ CREATE TABLE IF NOT EXISTS `event` ( KEY `event_status` (`event_status`), KEY `event_sequence` (`event_sequence`), KEY `event_priority` (`event_priority`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `groups` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `hash` char(255) NOT NULL DEFAULT '', + `hash` char(191) NOT NULL DEFAULT '', `uid` int(10) unsigned NOT NULL DEFAULT 0 , `visible` tinyint(1) NOT NULL DEFAULT 0 , `deleted` tinyint(1) NOT NULL DEFAULT 0 , - `gname` char(255) NOT NULL DEFAULT '', + `gname` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `uid` (`uid`), KEY `visible` (`visible`), KEY `deleted` (`deleted`), KEY `hash` (`hash`), KEY `gname` (`gname`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `group_member` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(10) unsigned NOT NULL DEFAULT 0 , `gid` int(10) unsigned NOT NULL DEFAULT 0 , - `xchan` char(255) NOT NULL DEFAULT '', + `xchan` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `uid` (`uid`), KEY `gid` (`gid`), KEY `xchan` (`xchan`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `hook` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `hook` char(255) NOT NULL DEFAULT '', - `file` char(255) NOT NULL DEFAULT '', - `fn` char(255) NOT NULL DEFAULT '', + `hook` char(191) NOT NULL DEFAULT '', + `file` char(191) NOT NULL DEFAULT '', + `fn` char(191) NOT NULL DEFAULT '', `priority` smallint NOT NULL DEFAULT 0 , `hook_version` int(11) NOT NULL DEFAULT 0 , PRIMARY KEY (`id`), KEY `hook` (`hook`), KEY `priority` (`priority`), KEY `hook_version` (`hook_version`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `hubloc` ( `hubloc_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `hubloc_guid` char(255) NOT NULL DEFAULT '', + `hubloc_guid` char(191) NOT NULL DEFAULT '', `hubloc_guid_sig` text NOT NULL, - `hubloc_hash` char(255) NOT NULL DEFAULT '', - `hubloc_addr` char(255) NOT NULL DEFAULT '', + `hubloc_hash` char(191) NOT NULL DEFAULT '', + `hubloc_addr` char(191) NOT NULL DEFAULT '', `hubloc_network` char(32) NOT NULL DEFAULT '', `hubloc_flags` int(10) unsigned NOT NULL DEFAULT 0 , `hubloc_status` int(10) unsigned NOT NULL DEFAULT 0 , - `hubloc_url` char(255) NOT NULL DEFAULT '', + `hubloc_url` char(191) NOT NULL DEFAULT '', `hubloc_url_sig` text NOT NULL, - `hubloc_host` char(255) NOT NULL DEFAULT '', - `hubloc_callback` char(255) NOT NULL DEFAULT '', - `hubloc_connect` char(255) NOT NULL DEFAULT '', + `hubloc_host` char(191) NOT NULL DEFAULT '', + `hubloc_callback` char(191) NOT NULL DEFAULT '', + `hubloc_connect` char(191) NOT NULL DEFAULT '', `hubloc_sitekey` text NOT NULL, `hubloc_updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `hubloc_connected` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', @@ -553,14 +553,14 @@ CREATE TABLE IF NOT EXISTS `hubloc` ( KEY `hubloc_orphancheck` (`hubloc_orphancheck`), KEY `hubloc_deleted` (`hubloc_deleted`), KEY `hubloc_error` (`hubloc_error`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `iconfig` ( `id` int(11) NOT NULL AUTO_INCREMENT, `iid` int(11) NOT NULL DEFAULT 0 , - `cat` char(255) NOT NULL DEFAULT '', - `k` char(255) NOT NULL DEFAULT '', + `cat` char(191) NOT NULL DEFAULT '', + `k` char(191) NOT NULL DEFAULT '', `v` mediumtext NOT NULL, `sharing` int(11) NOT NULL DEFAULT 0 , PRIMARY KEY (`id`), @@ -568,16 +568,16 @@ CREATE TABLE IF NOT EXISTS `iconfig` ( KEY `cat` (`cat`), KEY `k` (`k`), KEY `sharing` (`sharing`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `issue` ( `issue_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `issue_created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `issue_updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', - `issue_assigned` char(255) NOT NULL DEFAULT '', + `issue_assigned` char(191) NOT NULL DEFAULT '', `issue_priority` int(11) NOT NULL DEFAULT 0 , `issue_status` int(11) NOT NULL DEFAULT 0 , - `issue_component` char(255) NOT NULL DEFAULT '', + `issue_component` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`issue_id`), KEY `issue_created` (`issue_created`), KEY `issue_updated` (`issue_updated`), @@ -585,16 +585,16 @@ CREATE TABLE IF NOT EXISTS `issue` ( KEY `issue_priority` (`issue_priority`), KEY `issue_status` (`issue_status`), KEY `issue_component` (`issue_component`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `item` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `mid` char(255) CHARACTER SET ascii NOT NULL DEFAULT '', + `mid` char(191) NOT NULL DEFAULT '', `aid` int(10) unsigned NOT NULL DEFAULT 0 , `uid` int(10) unsigned NOT NULL DEFAULT 0 , `parent` int(10) unsigned NOT NULL DEFAULT 0 , - `parent_mid` char(255) CHARACTER SET ascii NOT NULL DEFAULT '', - `thr_parent` char(255) NOT NULL DEFAULT '', + `parent_mid` char(191) NOT NULL DEFAULT '', + `thr_parent` char(191) NOT NULL DEFAULT '', `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `expires` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', @@ -602,35 +602,35 @@ CREATE TABLE IF NOT EXISTS `item` ( `received` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `changed` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `comments_closed` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', - `owner_xchan` char(255) NOT NULL DEFAULT '', - `author_xchan` char(255) NOT NULL DEFAULT '', - `source_xchan` char(255) NOT NULL DEFAULT '', - `mimetype` char(255) NOT NULL DEFAULT '', + `owner_xchan` char(191) NOT NULL DEFAULT '', + `author_xchan` char(191) NOT NULL DEFAULT '', + `source_xchan` char(191) NOT NULL DEFAULT '', + `mimetype` char(191) NOT NULL DEFAULT '', `title` text NOT NULL, `body` mediumtext NOT NULL, `html` mediumtext NOT NULL, - `app` char(255) NOT NULL DEFAULT '', + `app` char(191) NOT NULL DEFAULT '', `lang` char(64) NOT NULL DEFAULT '', `revision` int(10) unsigned NOT NULL DEFAULT 0 , - `verb` char(255) NOT NULL DEFAULT '', - `obj_type` char(255) NOT NULL DEFAULT '', + `verb` char(191) NOT NULL DEFAULT '', + `obj_type` char(191) NOT NULL DEFAULT '', `obj` text NOT NULL, - `tgt_type` char(255) NOT NULL DEFAULT '', + `tgt_type` char(191) NOT NULL DEFAULT '', `target` text NOT NULL, - `layout_mid` char(255) NOT NULL DEFAULT '', + `layout_mid` char(191) NOT NULL DEFAULT '', `postopts` text NOT NULL, `route` text NOT NULL, - `llink` char(255) NOT NULL DEFAULT '', - `plink` char(255) NOT NULL DEFAULT '', - `resource_id` char(255) NOT NULL DEFAULT '', + `llink` char(191) NOT NULL DEFAULT '', + `plink` char(191) NOT NULL DEFAULT '', + `resource_id` char(191) NOT NULL DEFAULT '', `resource_type` char(16) NOT NULL DEFAULT '', `attach` mediumtext NOT NULL, `sig` text NOT NULL, `diaspora_meta` mediumtext NOT NULL, - `location` char(255) NOT NULL DEFAULT '', - `coord` char(255) NOT NULL DEFAULT '', - `public_policy` char(255) NOT NULL DEFAULT '', - `comment_policy` char(255) NOT NULL DEFAULT '', + `location` char(191) NOT NULL DEFAULT '', + `coord` char(191) NOT NULL DEFAULT '', + `public_policy` char(191) NOT NULL DEFAULT '', + `comment_policy` char(191) NOT NULL DEFAULT '', `allow_cid` mediumtext NOT NULL, `allow_gid` mediumtext NOT NULL, `deny_cid` mediumtext NOT NULL, @@ -712,27 +712,21 @@ CREATE TABLE IF NOT EXISTS `item` ( KEY `item_unpublished` (`item_unpublished`), KEY `item_delayed` (`item_delayed`), KEY `item_pending_remove` (`item_pending_remove`), - KEY `item_blocked` (`item_blocked`), - FULLTEXT KEY `title` (`title`), - FULLTEXT KEY `body` (`body`), - FULLTEXT KEY `allow_cid` (`allow_cid`), - FULLTEXT KEY `allow_gid` (`allow_gid`), - FULLTEXT KEY `deny_cid` (`deny_cid`), - FULLTEXT KEY `deny_gid` (`deny_gid`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; + KEY `item_blocked` (`item_blocked`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `item_id` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `iid` int(11) NOT NULL DEFAULT 0 , `uid` int(11) NOT NULL DEFAULT 0 , - `sid` char(255) NOT NULL DEFAULT '', - `service` char(255) NOT NULL DEFAULT '', + `sid` char(191) NOT NULL DEFAULT '', + `service` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `uid` (`uid`), KEY `sid` (`sid`), KEY `service` (`service`), KEY `iid` (`iid`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `likes` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, @@ -740,9 +734,9 @@ CREATE TABLE IF NOT EXISTS `likes` ( `liker` char(128) NOT NULL DEFAULT '', `likee` char(128) NOT NULL DEFAULT '', `iid` int(11) unsigned NOT NULL DEFAULT 0 , - `i_mid` char(255) NOT NULL DEFAULT '', - `verb` char(255) NOT NULL DEFAULT '', - `target_type` char(255) NOT NULL DEFAULT '', + `i_mid` char(191) NOT NULL DEFAULT '', + `verb` char(191) NOT NULL DEFAULT '', + `target_type` char(191) NOT NULL DEFAULT '', `target_id` char(128) NOT NULL DEFAULT '', `target` mediumtext NOT NULL, PRIMARY KEY (`id`), @@ -754,15 +748,15 @@ CREATE TABLE IF NOT EXISTS `likes` ( KEY `target_type` (`target_type`), KEY `channel_id` (`channel_id`), KEY `target_id` (`target_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `mail` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `convid` int(10) unsigned NOT NULL DEFAULT 0 , - `conv_guid` char(255) NOT NULL DEFAULT '', + `conv_guid` char(191) NOT NULL DEFAULT '', `mail_flags` int(10) unsigned NOT NULL DEFAULT 0 , - `from_xchan` char(255) NOT NULL DEFAULT '', - `to_xchan` char(255) NOT NULL DEFAULT '', + `from_xchan` char(191) NOT NULL DEFAULT '', + `to_xchan` char(191) NOT NULL DEFAULT '', `account_id` int(10) unsigned NOT NULL DEFAULT 0 , `channel_id` int(10) unsigned NOT NULL DEFAULT 0 , `mail_mimetype` char(64) NOT NULL DEFAULT 'text/bbcode', @@ -770,8 +764,8 @@ CREATE TABLE IF NOT EXISTS `mail` ( `body` mediumtext NOT NULL, `sig` text NOT NULL, `attach` mediumtext NOT NULL, - `mid` char(255) NOT NULL DEFAULT '', - `parent_mid` char(255) NOT NULL DEFAULT '', + `mid` char(191) NOT NULL DEFAULT '', + `parent_mid` char(191) NOT NULL DEFAULT '', `mail_deleted` tinyint(4) NOT NULL DEFAULT 0 , `mail_replied` tinyint(4) NOT NULL DEFAULT 0 , `mail_isreply` tinyint(4) NOT NULL DEFAULT 0 , @@ -799,13 +793,13 @@ CREATE TABLE IF NOT EXISTS `mail` ( KEY `mail_seen` (`mail_seen`), KEY `mail_recalled` (`mail_recalled`), KEY `mail_obscured` (`mail_obscured`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `menu` ( `menu_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `menu_channel_id` int(10) unsigned NOT NULL DEFAULT 0 , - `menu_name` char(255) NOT NULL DEFAULT '', - `menu_desc` char(255) NOT NULL DEFAULT '', + `menu_name` char(191) NOT NULL DEFAULT '', + `menu_desc` char(191) NOT NULL DEFAULT '', `menu_flags` int(11) NOT NULL DEFAULT 0 , `menu_created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `menu_edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', @@ -815,12 +809,12 @@ CREATE TABLE IF NOT EXISTS `menu` ( KEY `menu_flags` (`menu_flags`), KEY `menu_created` (`menu_created`), KEY `menu_edited` (`menu_edited`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `menu_item` ( `mitem_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `mitem_link` char(255) NOT NULL DEFAULT '', - `mitem_desc` char(255) NOT NULL DEFAULT '', + `mitem_link` char(191) NOT NULL DEFAULT '', + `mitem_desc` char(191) NOT NULL DEFAULT '', `mitem_flags` int(11) NOT NULL DEFAULT 0 , `allow_cid` mediumtext NOT NULL, `allow_gid` mediumtext NOT NULL, @@ -833,23 +827,23 @@ CREATE TABLE IF NOT EXISTS `menu_item` ( KEY `mitem_channel_id` (`mitem_channel_id`), KEY `mitem_menu_id` (`mitem_menu_id`), KEY `mitem_flags` (`mitem_flags`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `notify` ( `id` int(11) NOT NULL AUTO_INCREMENT, `hash` char(64) NOT NULL DEFAULT '', - `xname` char(255) NOT NULL DEFAULT '', - `url` char(255) NOT NULL DEFAULT '', - `photo` char(255) NOT NULL DEFAULT '', + `xname` char(191) NOT NULL DEFAULT '', + `url` char(191) NOT NULL DEFAULT '', + `photo` char(191) NOT NULL DEFAULT '', `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `msg` mediumtext NOT NULL, `aid` int(11) NOT NULL DEFAULT 0 , `uid` int(11) NOT NULL DEFAULT 0 , - `link` char(255) NOT NULL DEFAULT '', - `parent` char(255) NOT NULL DEFAULT '', + `link` char(191) NOT NULL DEFAULT '', + `parent` char(191) NOT NULL DEFAULT '', `seen` tinyint(1) NOT NULL DEFAULT 0 , `ntype` int(11) NOT NULL DEFAULT 0 , - `verb` char(255) NOT NULL DEFAULT '', + `verb` char(191) NOT NULL DEFAULT '', `otype` char(16) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `ntype` (`ntype`), @@ -861,18 +855,18 @@ CREATE TABLE IF NOT EXISTS `notify` ( KEY `link` (`link`), KEY `otype` (`otype`), KEY `aid` (`aid`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `obj` ( `obj_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `obj_page` char(64) NOT NULL DEFAULT '', - `obj_verb` char(255) NOT NULL DEFAULT '', + `obj_verb` char(191) NOT NULL DEFAULT '', `obj_type` int(10) unsigned NOT NULL DEFAULT 0 , - `obj_obj` char(255) NOT NULL DEFAULT '', + `obj_obj` char(191) NOT NULL DEFAULT '', `obj_channel` int(10) unsigned NOT NULL DEFAULT 0 , - `obj_term` char(255) NOT NULL DEFAULT '', - `obj_url` char(255) NOT NULL DEFAULT '', - `obj_imgurl` char(255) NOT NULL DEFAULT '', + `obj_term` char(191) NOT NULL DEFAULT '', + `obj_url` char(191) NOT NULL DEFAULT '', + `obj_imgurl` char(191) NOT NULL DEFAULT '', `obj_created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `obj_edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `obj_quantity` int(11) NOT NULL DEFAULT 0 , @@ -892,14 +886,14 @@ CREATE TABLE IF NOT EXISTS `obj` ( KEY `obj_edited` (`obj_edited`), KEY `obj_quantity` (`obj_quantity`), KEY `obj_obj` (`obj_obj`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `outq` ( - `outq_hash` char(255) NOT NULL, + `outq_hash` char(191) NOT NULL, `outq_account` int(10) unsigned NOT NULL DEFAULT 0 , `outq_channel` int(10) unsigned NOT NULL DEFAULT 0 , `outq_driver` char(32) NOT NULL DEFAULT '', - `outq_posturl` char(255) NOT NULL DEFAULT '', + `outq_posturl` char(191) NOT NULL DEFAULT '', `outq_async` tinyint(1) NOT NULL DEFAULT 0 , `outq_delivered` tinyint(1) NOT NULL DEFAULT 0 , `outq_created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', @@ -918,31 +912,30 @@ CREATE TABLE IF NOT EXISTS `outq` ( KEY `outq_async` (`outq_async`), KEY `outq_delivered` (`outq_delivered`), KEY `outq_priority` (`outq_priority`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `pconfig` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL DEFAULT 0 , - `cat` char(255) CHARACTER SET ascii NOT NULL DEFAULT '', - `k` char(255) CHARACTER SET ascii NOT NULL DEFAULT '', + `cat` char(191) NOT NULL DEFAULT '', + `k` char(191) NOT NULL DEFAULT '', `v` mediumtext NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `access` (`uid`,`cat`,`k`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `photo` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `aid` int(10) unsigned NOT NULL DEFAULT 0 , `uid` int(10) unsigned NOT NULL DEFAULT 0 , - `xchan` char(255) NOT NULL DEFAULT '', - `resource_id` char(255) NOT NULL DEFAULT '', + `xchan` char(191) NOT NULL DEFAULT '', + `resource_id` char(191) NOT NULL DEFAULT '', `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', - `title` char(255) NOT NULL DEFAULT '', + `title` char(191) NOT NULL DEFAULT '', `description` text NOT NULL, - `album` char(255) NOT NULL DEFAULT '', - `filename` char(255) NOT NULL DEFAULT '', + `album` char(191) NOT NULL DEFAULT '', + `filename` char(191) NOT NULL DEFAULT '', `mimetype` char(128) NOT NULL DEFAULT 'image/jpeg', `height` smallint(6) NOT NULL DEFAULT 0 , `width` smallint(6) NOT NULL DEFAULT 0 , @@ -974,7 +967,7 @@ CREATE TABLE IF NOT EXISTS `photo` ( KEY `is_nsfw` (`is_nsfw`), KEY `os_storage` (`os_storage`), KEY `photo_usage` (`photo_usage`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `poll` ( `poll_id` int(10) unsigned NOT NULL AUTO_INCREMENT, @@ -986,7 +979,7 @@ CREATE TABLE IF NOT EXISTS `poll` ( KEY `poll_channel` (`poll_channel`), KEY `poll_flags` (`poll_flags`), KEY `poll_votes` (`poll_votes`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `poll_elm` ( `pelm_id` int(10) unsigned NOT NULL AUTO_INCREMENT, @@ -997,62 +990,62 @@ CREATE TABLE IF NOT EXISTS `poll_elm` ( PRIMARY KEY (`pelm_id`), KEY `pelm_poll` (`pelm_poll`), KEY `pelm_result` (`pelm_result`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `profdef` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `field_name` char(255) NOT NULL DEFAULT '', + `field_name` char(191) NOT NULL DEFAULT '', `field_type` char(16) NOT NULL DEFAULT '', - `field_desc` char(255) NOT NULL DEFAULT '', - `field_help` char(255) NOT NULL DEFAULT '', + `field_desc` char(191) NOT NULL DEFAULT '', + `field_help` char(191) NOT NULL DEFAULT '', `field_inputs` mediumtext NOT NULL, PRIMARY KEY (`id`), KEY `field_name` (`field_name`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `profext` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `channel_id` int(10) unsigned NOT NULL DEFAULT 0 , - `hash` char(255) NOT NULL DEFAULT '', - `k` char(255) NOT NULL DEFAULT '', + `hash` char(191) NOT NULL DEFAULT '', + `k` char(191) NOT NULL DEFAULT '', `v` mediumtext NOT NULL, PRIMARY KEY (`id`), KEY `channel_id` (`channel_id`), KEY `hash` (`hash`), KEY `k` (`k`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `profile` ( `id` int(11) NOT NULL AUTO_INCREMENT, `profile_guid` char(64) NOT NULL DEFAULT '', `aid` int(10) unsigned NOT NULL DEFAULT 0 , `uid` int(11) NOT NULL DEFAULT 0 , - `profile_name` char(255) NOT NULL DEFAULT '', + `profile_name` char(191) NOT NULL DEFAULT '', `is_default` tinyint(1) NOT NULL DEFAULT 0 , `hide_friends` tinyint(1) NOT NULL DEFAULT 0 , - `fullname` char(255) NOT NULL DEFAULT '', - `pdesc` char(255) NOT NULL DEFAULT '', + `fullname` char(191) NOT NULL DEFAULT '', + `pdesc` char(191) NOT NULL DEFAULT '', `chandesc` text NOT NULL, `dob` char(32) NOT NULL DEFAULT '0000-00-00', - `dob_tz` char(255) NOT NULL DEFAULT 'UTC', - `address` char(255) NOT NULL DEFAULT '', - `locality` char(255) NOT NULL DEFAULT '', - `region` char(255) NOT NULL DEFAULT '', + `dob_tz` char(191) NOT NULL DEFAULT 'UTC', + `address` char(191) NOT NULL DEFAULT '', + `locality` char(191) NOT NULL DEFAULT '', + `region` char(191) NOT NULL DEFAULT '', `postal_code` char(32) NOT NULL DEFAULT '', - `country_name` char(255) NOT NULL DEFAULT '', - `hometown` char(255) NOT NULL DEFAULT '', + `country_name` char(191) NOT NULL DEFAULT '', + `hometown` char(191) NOT NULL DEFAULT '', `gender` char(32) NOT NULL DEFAULT '', - `marital` char(255) NOT NULL DEFAULT '', + `marital` char(191) NOT NULL DEFAULT '', `partner` text NOT NULL, `howlong` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', - `sexual` char(255) NOT NULL DEFAULT '', - `politic` char(255) NOT NULL DEFAULT '', - `religion` char(255) NOT NULL DEFAULT '', + `sexual` char(191) NOT NULL DEFAULT '', + `politic` char(191) NOT NULL DEFAULT '', + `religion` char(191) NOT NULL DEFAULT '', `keywords` text NOT NULL, `likes` text NOT NULL, `dislikes` text NOT NULL, `about` text NOT NULL, - `summary` char(255) NOT NULL DEFAULT '', + `summary` char(191) NOT NULL DEFAULT '', `music` text NOT NULL, `book` text NOT NULL, `tv` text NOT NULL, @@ -1063,9 +1056,9 @@ CREATE TABLE IF NOT EXISTS `profile` ( `education` text NOT NULL, `contact` text NOT NULL, `channels` text NOT NULL, - `homepage` char(255) NOT NULL DEFAULT '', - `photo` char(255) NOT NULL DEFAULT '', - `thumb` char(255) NOT NULL DEFAULT '', + `homepage` char(191) NOT NULL DEFAULT '', + `photo` char(191) NOT NULL DEFAULT '', + `thumb` char(191) NOT NULL DEFAULT '', `publish` tinyint(1) NOT NULL DEFAULT 0 , `profile_vcard` text NOT NULL, PRIMARY KEY (`id`), @@ -1083,14 +1076,14 @@ CREATE TABLE IF NOT EXISTS `profile` ( KEY `postal_code` (`postal_code`), KEY `country_name` (`country_name`), KEY `profile_guid` (`profile_guid`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `profile_check` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(10) unsigned NOT NULL DEFAULT 0 , `cid` int(10) unsigned NOT NULL DEFAULT 0 , - `dfrn_id` char(255) NOT NULL DEFAULT '', - `sec` char(255) NOT NULL DEFAULT '', + `dfrn_id` char(191) NOT NULL DEFAULT '', + `sec` char(191) NOT NULL DEFAULT '', `expire` int(11) NOT NULL DEFAULT 0 , PRIMARY KEY (`id`), KEY `uid` (`uid`), @@ -1098,41 +1091,41 @@ CREATE TABLE IF NOT EXISTS `profile_check` ( KEY `dfrn_id` (`dfrn_id`), KEY `sec` (`sec`), KEY `expire` (`expire`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `register` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `hash` char(255) NOT NULL DEFAULT '', + `hash` char(191) NOT NULL DEFAULT '', `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `uid` int(10) unsigned NOT NULL DEFAULT 0 , - `password` char(255) NOT NULL DEFAULT '', + `password` char(191) NOT NULL DEFAULT '', `lang` char(16) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `hash` (`hash`), KEY `created` (`created`), KEY `uid` (`uid`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `session` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `sid` char(255) NOT NULL DEFAULT '', + `sid` char(191) NOT NULL DEFAULT '', `sess_data` text NOT NULL, `expire` bigint(20) unsigned NOT NULL DEFAULT 0 , PRIMARY KEY (`id`), KEY `sid` (`sid`), KEY `expire` (`expire`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `shares` ( `share_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `share_type` int(11) NOT NULL DEFAULT 0 , `share_target` int(10) unsigned NOT NULL DEFAULT 0 , - `share_xchan` char(255) NOT NULL DEFAULT '', + `share_xchan` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`share_id`), KEY `share_type` (`share_type`), KEY `share_target` (`share_target`), KEY `share_xchan` (`share_xchan`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `sign` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, @@ -1140,28 +1133,28 @@ CREATE TABLE IF NOT EXISTS `sign` ( `retract_iid` int(10) unsigned NOT NULL DEFAULT 0 , `signed_text` mediumtext NOT NULL, `signature` text NOT NULL, - `signer` char(255) NOT NULL DEFAULT '', + `signer` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `iid` (`iid`), KEY `retract_iid` (`retract_iid`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `site` ( - `site_url` char(255) NOT NULL, + `site_url` char(191) NOT NULL, `site_access` int(11) NOT NULL DEFAULT 0 , `site_flags` int(11) NOT NULL DEFAULT 0 , `site_update` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `site_pull` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `site_sync` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', - `site_directory` char(255) NOT NULL DEFAULT '', + `site_directory` char(191) NOT NULL DEFAULT '', `site_register` int(11) NOT NULL DEFAULT 0 , - `site_sellpage` char(255) NOT NULL DEFAULT '', - `site_location` char(255) NOT NULL DEFAULT '', - `site_realm` char(255) NOT NULL DEFAULT '', + `site_sellpage` char(191) NOT NULL DEFAULT '', + `site_location` char(191) NOT NULL DEFAULT '', + `site_realm` char(191) NOT NULL DEFAULT '', `site_valid` smallint NOT NULL DEFAULT 0 , `site_dead` smallint NOT NULL DEFAULT 0 , `site_type` smallint NOT NULL DEFAULT 0 , - `site_project` char(255) NOT NULL DEFAULT '', + `site_project` char(191) NOT NULL DEFAULT '', `site_version` varchar(32) NOT NULL DEFAULT '', `site_crypto` text NOT NULL, PRIMARY KEY (`site_url`), @@ -1177,29 +1170,29 @@ CREATE TABLE IF NOT EXISTS `site` ( KEY `site_dead` (`site_dead`), KEY `site_type` (`site_type`), KEY `site_project` (`site_project`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `source` ( `src_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `src_channel_id` int(10) unsigned NOT NULL DEFAULT 0 , - `src_channel_xchan` char(255) NOT NULL DEFAULT '', - `src_xchan` char(255) NOT NULL DEFAULT '', + `src_channel_xchan` char(191) NOT NULL DEFAULT '', + `src_xchan` char(191) NOT NULL DEFAULT '', `src_patt` mediumtext NOT NULL, `src_tag` mediumtext NOT NULL, PRIMARY KEY (`src_id`), KEY `src_channel_id` (`src_channel_id`), KEY `src_channel_xchan` (`src_channel_xchan`), KEY `src_xchan` (`src_xchan`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `sys_perms` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `cat` char(255) NOT NULL DEFAULT '', - `k` char(255) NOT NULL DEFAULT '', + `cat` char(191) NOT NULL DEFAULT '', + `k` char(191) NOT NULL DEFAULT '', `v` mediumtext NOT NULL, `public_perm` tinyint(1) unsigned NOT NULL DEFAULT 0 , PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `term` ( `tid` int(10) unsigned NOT NULL AUTO_INCREMENT, @@ -1208,11 +1201,11 @@ CREATE TABLE IF NOT EXISTS `term` ( `oid` int(10) unsigned NOT NULL DEFAULT 0 , `otype` tinyint(3) unsigned NOT NULL DEFAULT 0 , `ttype` tinyint(3) unsigned NOT NULL DEFAULT 0 , - `term` char(255) NOT NULL DEFAULT '', - `url` char(255) NOT NULL DEFAULT '', - `imgurl` char(255) NOT NULL DEFAULT '', - `term_hash` char(255) NOT NULL DEFAULT '', - `parent_hash` char(255) NOT NULL DEFAULT '', + `term` char(191) NOT NULL DEFAULT '', + `url` char(191) NOT NULL DEFAULT '', + `imgurl` char(191) NOT NULL DEFAULT '', + `term_hash` char(191) NOT NULL DEFAULT '', + `parent_hash` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`tid`), KEY `oid` (`oid`), KEY `otype` (`otype`), @@ -1223,7 +1216,7 @@ CREATE TABLE IF NOT EXISTS `term` ( KEY `imgurl` (`imgurl`), KEY `term_hash` (`term_hash`), KEY `parent_hash` (`parent_hash`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `tokens` ( `id` varchar(40) NOT NULL DEFAULT '', @@ -1236,16 +1229,16 @@ CREATE TABLE IF NOT EXISTS `tokens` ( KEY `client_id` (`client_id`), KEY `expires` (`expires`), KEY `uid` (`uid`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `updates` ( `ud_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `ud_hash` char(128) NOT NULL DEFAULT '', - `ud_guid` char(255) NOT NULL DEFAULT '', + `ud_guid` char(191) NOT NULL DEFAULT '', `ud_date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `ud_last` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `ud_flags` int(11) NOT NULL DEFAULT 0 , - `ud_addr` char(255) NOT NULL DEFAULT '', + `ud_addr` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`ud_id`), KEY `ud_date` (`ud_date`), KEY `ud_guid` (`ud_guid`), @@ -1253,14 +1246,14 @@ CREATE TABLE IF NOT EXISTS `updates` ( KEY `ud_flags` (`ud_flags`), KEY `ud_addr` (`ud_addr`), KEY `ud_last` (`ud_last`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `verify` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `channel` int(10) unsigned NOT NULL DEFAULT 0 , `vtype` char(32) NOT NULL DEFAULT '', - `token` char(255) NOT NULL DEFAULT '', - `meta` char(255) NOT NULL DEFAULT '', + `token` char(191) NOT NULL DEFAULT '', + `meta` char(191) NOT NULL DEFAULT '', `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY (`id`), KEY `channel` (`channel`), @@ -1268,37 +1261,37 @@ CREATE TABLE IF NOT EXISTS `verify` ( KEY `token` (`token`), KEY `meta` (`meta`), KEY `created` (`created`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `vote` ( `vote_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `vote_poll` int(11) NOT NULL DEFAULT 0 , `vote_element` int(11) NOT NULL DEFAULT 0 , `vote_result` text NOT NULL, - `vote_xchan` char(255) NOT NULL DEFAULT '', + `vote_xchan` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`vote_id`), UNIQUE KEY `vote_vote` (`vote_poll`,`vote_element`,`vote_xchan`), KEY `vote_poll` (`vote_poll`), KEY `vote_element` (`vote_element`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `xchan` ( - `xchan_hash` char(255) NOT NULL, - `xchan_guid` char(255) NOT NULL DEFAULT '', + `xchan_hash` char(191) NOT NULL, + `xchan_guid` char(191) NOT NULL DEFAULT '', `xchan_guid_sig` text NOT NULL, `xchan_pubkey` text NOT NULL, `xchan_photo_mimetype` char(32) NOT NULL DEFAULT 'image/jpeg', - `xchan_photo_l` char(255) NOT NULL DEFAULT '', - `xchan_photo_m` char(255) NOT NULL DEFAULT '', - `xchan_photo_s` char(255) NOT NULL DEFAULT '', - `xchan_addr` char(255) NOT NULL DEFAULT '', - `xchan_url` char(255) NOT NULL DEFAULT '', - `xchan_connurl` char(255) NOT NULL DEFAULT '', - `xchan_follow` char(255) NOT NULL DEFAULT '', - `xchan_connpage` char(255) NOT NULL DEFAULT '', - `xchan_name` char(255) NOT NULL DEFAULT '', - `xchan_network` char(255) NOT NULL DEFAULT '', - `xchan_instance_url` char(255) NOT NULL DEFAULT '', + `xchan_photo_l` char(191) NOT NULL DEFAULT '', + `xchan_photo_m` char(191) NOT NULL DEFAULT '', + `xchan_photo_s` char(191) NOT NULL DEFAULT '', + `xchan_addr` char(191) NOT NULL DEFAULT '', + `xchan_url` char(191) NOT NULL DEFAULT '', + `xchan_connurl` char(191) NOT NULL DEFAULT '', + `xchan_follow` char(191) NOT NULL DEFAULT '', + `xchan_connpage` char(191) NOT NULL DEFAULT '', + `xchan_name` char(191) NOT NULL DEFAULT '', + `xchan_network` char(191) NOT NULL DEFAULT '', + `xchan_instance_url` char(191) NOT NULL DEFAULT '', `xchan_flags` int(10) unsigned NOT NULL DEFAULT 0 , `xchan_photo_date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `xchan_name_date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', @@ -1326,46 +1319,46 @@ CREATE TABLE IF NOT EXISTS `xchan` ( KEY `xchan_system` (`xchan_system`), KEY `xchan_pubforum` (`xchan_pubforum`), KEY `xchan_deleted` (`xchan_deleted`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `xchat` ( `xchat_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `xchat_url` char(255) NOT NULL DEFAULT '', - `xchat_desc` char(255) NOT NULL DEFAULT '', - `xchat_xchan` char(255) NOT NULL DEFAULT '', + `xchat_url` char(191) NOT NULL DEFAULT '', + `xchat_desc` char(191) NOT NULL DEFAULT '', + `xchat_xchan` char(191) NOT NULL DEFAULT '', `xchat_edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY (`xchat_id`), KEY `xchat_url` (`xchat_url`), KEY `xchat_desc` (`xchat_desc`), KEY `xchat_xchan` (`xchat_xchan`), KEY `xchat_edited` (`xchat_edited`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `xconfig` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `xchan` char(255) NOT NULL DEFAULT '', - `cat` char(255) NOT NULL DEFAULT '', - `k` char(255) NOT NULL DEFAULT '', + `xchan` char(191) NOT NULL DEFAULT '', + `cat` char(191) NOT NULL DEFAULT '', + `k` char(191) NOT NULL DEFAULT '', `v` mediumtext NOT NULL, PRIMARY KEY (`id`), KEY `xchan` (`xchan`), KEY `cat` (`cat`), KEY `k` (`k`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `xign` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL DEFAULT 0 , - `xchan` char(255) NOT NULL DEFAULT '', + `xchan` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `uid` (`uid`), KEY `xchan` (`xchan`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `xlink` ( `xlink_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `xlink_xchan` char(255) NOT NULL DEFAULT '', - `xlink_link` char(255) NOT NULL DEFAULT '', + `xlink_xchan` char(191) NOT NULL DEFAULT '', + `xlink_link` char(191) NOT NULL DEFAULT '', `xlink_rating` int(11) NOT NULL DEFAULT 0 , `xlink_rating_text` text NOT NULL, `xlink_updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', @@ -1377,7 +1370,7 @@ CREATE TABLE IF NOT EXISTS `xlink` ( KEY `xlink_updated` (`xlink_updated`), KEY `xlink_rating` (`xlink_rating`), KEY `xlink_static` (`xlink_static`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `xperm` ( `xp_id` int(10) unsigned NOT NULL AUTO_INCREMENT, @@ -1388,24 +1381,24 @@ CREATE TABLE IF NOT EXISTS `xperm` ( KEY `xp_client` (`xp_client`), KEY `xp_channel` (`xp_channel`), KEY `xp_perm` (`xp_perm`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `xprof` ( - `xprof_hash` char(255) NOT NULL, + `xprof_hash` char(191) NOT NULL, `xprof_age` tinyint(3) unsigned NOT NULL DEFAULT 0 , - `xprof_desc` char(255) NOT NULL DEFAULT '', + `xprof_desc` char(191) NOT NULL DEFAULT '', `xprof_dob` char(12) NOT NULL DEFAULT '', - `xprof_gender` char(255) NOT NULL DEFAULT '', - `xprof_marital` char(255) NOT NULL DEFAULT '', - `xprof_sexual` char(255) NOT NULL DEFAULT '', - `xprof_locale` char(255) NOT NULL DEFAULT '', - `xprof_region` char(255) NOT NULL DEFAULT '', + `xprof_gender` char(191) NOT NULL DEFAULT '', + `xprof_marital` char(191) NOT NULL DEFAULT '', + `xprof_sexual` char(191) NOT NULL DEFAULT '', + `xprof_locale` char(191) NOT NULL DEFAULT '', + `xprof_region` char(191) NOT NULL DEFAULT '', `xprof_postcode` char(32) NOT NULL DEFAULT '', - `xprof_country` char(255) NOT NULL DEFAULT '', + `xprof_country` char(191) NOT NULL DEFAULT '', `xprof_keywords` text NOT NULL, `xprof_about` text NOT NULL, - `xprof_homepage` char(255) NOT NULL DEFAULT '', - `xprof_hometown` char(255) NOT NULL DEFAULT '', + `xprof_homepage` char(191) NOT NULL DEFAULT '', + `xprof_hometown` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`xprof_hash`), KEY `xprof_desc` (`xprof_desc`), KEY `xprof_dob` (`xprof_dob`), @@ -1418,15 +1411,15 @@ CREATE TABLE IF NOT EXISTS `xprof` ( KEY `xprof_country` (`xprof_country`), KEY `xprof_age` (`xprof_age`), KEY `xprof_hometown` (`xprof_hometown`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `xtag` ( `xtag_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `xtag_hash` char(255) NOT NULL DEFAULT '', - `xtag_term` char(255) NOT NULL DEFAULT '', + `xtag_hash` char(191) NOT NULL DEFAULT '', + `xtag_term` char(191) NOT NULL DEFAULT '', `xtag_flags` int(11) NOT NULL DEFAULT 0 , PRIMARY KEY (`xtag_id`), KEY `xtag_term` (`xtag_term`), KEY `xtag_hash` (`xtag_hash`), KEY `xtag_flags` (`xtag_flags`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; diff --git a/view/tpl/conv_item.tpl b/view/tpl/conv_item.tpl index 2d51af4ff..36cb4cc83 100755 --- a/view/tpl/conv_item.tpl +++ b/view/tpl/conv_item.tpl @@ -84,9 +84,9 @@ </div> {{/if}} <div class="p-2 clearfix wall-item-tools"> - <div class="wall-item-tools-right pull-right"> + <div class="float-right wall-item-tools-right"> {{if $item.toplevel && $item.emojis && $item.reactions}} - <div class="btn-group dropdown"> + <div class="btn-group"> <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown" id="wall-item-react-{{$item.id}}"> <i class="fa fa-smile-o"></i> </button> @@ -97,7 +97,7 @@ </div> </div> {{/if}} - <div class="btn-group dropdown"> + <div class="btn-group"> {{if $item.like}} <button type="button" title="{{$item.like.0}}" class="btn btn-outline-secondary btn-sm" onclick="dolike({{$item.id}},'like'); return false;"> <i class="fa fa-thumbs-o-up{{if $item.my_responses.like}} ivoted{{/if}}" ></i> @@ -109,11 +109,11 @@ </button> {{/if}} {{if $item.isevent}} - <div class="btn-group dropdown"> + <div class="btn-group"> <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown" id="wall-item-attend-menu-{{$item.id}}" title="{{$item.attend_title}}"> <i class="fa fa-calendar-check-o"></i> </button> - <div class="dropdown-menu"> + <div class="dropdown-menu dropdown-menu-right"> <a class="dropdown-item" href="#" title="{{$item.attend.0}}" onclick="itemAddToCal({{$item.id}}); dolike({{$item.id}},'attendyes'); return false;"> <i class="item-act-list fa fa-check{{if $item.my_responses.attend}} ivoted{{/if}}" ></i> {{$item.attend.0}} </a> @@ -127,11 +127,11 @@ </div> {{/if}} {{if $item.canvote}} - <div class="btn-group dropdown"> + <div class="btn-group"> <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown" id="wall-item-consensus-menu-{{$item.id}}" title="{{$item.vote_title}}"> <i class="fa fa-check-square-o"></i> </button> - <div class="dropdown-menu" role="menu" aria-labelledby="wall-item-consensus-menu-{{$item.id}}"> + <div class="dropdown-menu dropdown-menu-right" role="menu" aria-labelledby="wall-item-consensus-menu-{{$item.id}}"> <a class="dropdown-item" href="#" title="{{$item.conlabels.0}}" onclick="dolike({{$item.id}},'agree'); return false;"> <i class="item-act-list fa fa-check{{if $item.my_responses.agree}} ivoted{{/if}}" ></i> {{$item.conlabels.0}} </a> @@ -144,51 +144,53 @@ </div> </div> {{/if}} - <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown" id="wall-item-menu-{{$item.id}}"> - <i class="fa fa-cog"></i> - </button> - <div class="dropdown-menu dropdown-menu-right" role="menu" aria-labelledby="wall-item-menu-{{$item.id}}"> - {{if $item.share}} - <a class="dropdown-item" href="#" onclick="jotShare({{$item.id}}); return false"><i class="generic-icons-nav fa fa-fw fa-retweet" title="{{$item.share.0}}"></i>{{$item.share.0}}</a> - {{/if}} - {{if $item.plink}} - <a class="dropdown-item" href="{{$item.plink.href}}" title="{{$item.plink.title}}" class="u-url"><i class="generic-icons-nav fa fa-fw fa-external-link"></i>{{$item.plink.title}}</a> - {{/if}} - {{if $item.edpost}} - <a class="dropdown-item" href="{{$item.edpost.0}}" title="{{$item.edpost.1}}"><i class="generic-icons-nav fa fa-fw fa-pencil"></i>{{$item.edpost.1}}</a> - {{/if}} - {{if $item.tagger}} - <a class="dropdown-item" href="#" onclick="itemTag({{$item.id}}); return false;"><i id="tagger-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-tag" title="{{$item.tagger.tagit}}"></i>{{$item.tagger.tagit}}</a> - {{/if}} - {{if $item.filer}} - <a class="dropdown-item" href="#" onclick="itemFiler({{$item.id}}); return false;"><i id="filer-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-folder-open" title="{{$item.filer}}"></i>{{$item.filer}}</a> - {{/if}} - {{if $item.bookmark}} - <a class="dropdown-item" href="#" onclick="itemBookmark({{$item.id}}); return false;"><i id="bookmarker-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-bookmark" title="{{$item.bookmark}}"></i>{{$item.bookmark}}</a> - {{/if}} - {{if $item.addtocal}} - <a class="dropdown-item" href="#" onclick="itemAddToCal({{$item.id}}); return false;"><i id="addtocal-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-calendar" title="{{$item.addtocal}}"></i>{{$item.addtocal}}</a> - {{/if}} - {{if $item.star}} - <a class="dropdown-item" href="#" onclick="dostar({{$item.id}}); return false;"><i id="starred-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-star {{$item.star.isstarred}}" title="{{$item.star.toggle}}"></i>{{$item.star.toggle}}</a> - {{/if}} - {{if $item.thread_action_menu}} - {{foreach $item.thread_action_menu as $mitem}} - <a class="dropdown-item" {{if $mitem.href}}href="{{$mitem.href}}"{{/if}} {{if $mitem.action}}onclick="{{$mitem.action}}"{{/if}} {{if $mitem.title}}title="{{$mitem.title}}"{{/if}} ><i class="generic-icons-nav fa fa-fw fa-{{$mitem.icon}}"></i>{{$mitem.title}}</a> - {{/foreach}} - {{/if}} - {{if $item.drop.dropping}} - <a class="dropdown-item" href="#" onclick="dropItem('item/drop/{{$item.id}}', '#thread-wrapper-{{$item.id}}'); return false;" title="{{$item.drop.delete}}" ><i class="generic-icons-nav fa fa-fw fa-trash-o"></i>{{$item.drop.delete}}</a> - {{/if}} - {{if $item.thread_author_menu}} - <div class="dropdown-divider"></div> - {{foreach $item.thread_author_menu as $mitem}} - <a class="dropdown-item" {{if $mitem.href}}href="{{$mitem.href}}"{{/if}} {{if $mitem.action}}onclick="{{$mitem.action}}"{{/if}} {{if $mitem.title}}title="{{$mitem.title}}"{{/if}} >{{$mitem.title}}</a> - {{/foreach}} - {{/if}} - {{if $item.edpost && $item.dreport}} - <a class="dropdown-item" href="dreport/{{$item.mid}}">{{$item.dreport}}</a> - {{/if}} + <div class="btn-group"> + <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown" id="wall-item-menu-{{$item.id}}"> + <i class="fa fa-cog"></i> + </button> + <div class="dropdown-menu dropdown-menu-right" role="menu" aria-labelledby="wall-item-menu-{{$item.id}}"> + {{if $item.share}} + <a class="dropdown-item" href="#" onclick="jotShare({{$item.id}}); return false"><i class="generic-icons-nav fa fa-fw fa-retweet" title="{{$item.share.0}}"></i>{{$item.share.0}}</a> + {{/if}} + {{if $item.plink}} + <a class="dropdown-item" href="{{$item.plink.href}}" title="{{$item.plink.title}}" class="u-url"><i class="generic-icons-nav fa fa-fw fa-external-link"></i>{{$item.plink.title}}</a> + {{/if}} + {{if $item.edpost}} + <a class="dropdown-item" href="{{$item.edpost.0}}" title="{{$item.edpost.1}}"><i class="generic-icons-nav fa fa-fw fa-pencil"></i>{{$item.edpost.1}}</a> + {{/if}} + {{if $item.tagger}} + <a class="dropdown-item" href="#" onclick="itemTag({{$item.id}}); return false;"><i id="tagger-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-tag" title="{{$item.tagger.tagit}}"></i>{{$item.tagger.tagit}}</a> + {{/if}} + {{if $item.filer}} + <a class="dropdown-item" href="#" onclick="itemFiler({{$item.id}}); return false;"><i id="filer-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-folder-open" title="{{$item.filer}}"></i>{{$item.filer}}</a> + {{/if}} + {{if $item.bookmark}} + <a class="dropdown-item" href="#" onclick="itemBookmark({{$item.id}}); return false;"><i id="bookmarker-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-bookmark" title="{{$item.bookmark}}"></i>{{$item.bookmark}}</a> + {{/if}} + {{if $item.addtocal}} + <a class="dropdown-item" href="#" onclick="itemAddToCal({{$item.id}}); return false;"><i id="addtocal-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-calendar" title="{{$item.addtocal}}"></i>{{$item.addtocal}}</a> + {{/if}} + {{if $item.star}} + <a class="dropdown-item" href="#" onclick="dostar({{$item.id}}); return false;"><i id="starred-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-star {{$item.star.isstarred}}" title="{{$item.star.toggle}}"></i>{{$item.star.toggle}}</a> + {{/if}} + {{if $item.thread_action_menu}} + {{foreach $item.thread_action_menu as $mitem}} + <a class="dropdown-item" {{if $mitem.href}}href="{{$mitem.href}}"{{/if}} {{if $mitem.action}}onclick="{{$mitem.action}}"{{/if}} {{if $mitem.title}}title="{{$mitem.title}}"{{/if}} ><i class="generic-icons-nav fa fa-fw fa-{{$mitem.icon}}"></i>{{$mitem.title}}</a> + {{/foreach}} + {{/if}} + {{if $item.drop.dropping}} + <a class="dropdown-item" href="#" onclick="dropItem('item/drop/{{$item.id}}', '#thread-wrapper-{{$item.id}}'); return false;" title="{{$item.drop.delete}}" ><i class="generic-icons-nav fa fa-fw fa-trash-o"></i>{{$item.drop.delete}}</a> + {{/if}} + {{if $item.thread_author_menu}} + <div class="dropdown-divider"></div> + {{foreach $item.thread_author_menu as $mitem}} + <a class="dropdown-item" {{if $mitem.href}}href="{{$mitem.href}}"{{/if}} {{if $mitem.action}}onclick="{{$mitem.action}}"{{/if}} {{if $mitem.title}}title="{{$mitem.title}}"{{/if}} >{{$mitem.title}}</a> + {{/foreach}} + {{/if}} + {{if $item.edpost && $item.dreport}} + <a class="dropdown-item" href="dreport/{{$item.mid}}">{{$item.dreport}}</a> + {{/if}} + </div> </div> </div> </div> diff --git a/view/tpl/conv_list.tpl b/view/tpl/conv_list.tpl index 59153e41f..e442dd3cc 100755 --- a/view/tpl/conv_list.tpl +++ b/view/tpl/conv_list.tpl @@ -84,9 +84,9 @@ </div> {{/if}} <div class="p-2 clearfix wall-item-tools"> - <div class="wall-item-tools-right pull-right"> + <div class="float-right wall-item-tools-right"> {{if $item.toplevel && $item.emojis && $item.reactions}} - <div class="btn-group dropdown"> + <div class="btn-group"> <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown" id="wall-item-react-{{$item.id}}"> <i class="fa fa-smile-o"></i> </button> @@ -97,7 +97,7 @@ </div> </div> {{/if}} - <div class="btn-group dropdown"> + <div class="btn-group"> {{if $item.like}} <button type="button" title="{{$item.like.0}}" class="btn btn-outline-secondary btn-sm" onclick="dolike({{$item.id}},'like'); return false;"> <i class="fa fa-thumbs-o-up{{if $item.my_responses.like}} ivoted{{/if}}" ></i> @@ -109,7 +109,7 @@ </button> {{/if}} {{if $item.isevent}} - <div class="btn-group dropdown"> + <div class="btn-group"> <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown" id="wall-item-attend-menu-{{$item.id}}" title="{{$item.attend_title}}"> <i class="fa fa-calendar-check-o"></i> </button> @@ -127,7 +127,7 @@ </div> {{/if}} {{if $item.canvote}} - <div class="btn-group dropdown"> + <div class="btn-group"> <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown" id="wall-item-consensus-menu-{{$item.id}}" title="{{$item.vote_title}}"> <i class="fa fa-check-square-o"></i> </button> @@ -144,51 +144,53 @@ </div> </div> {{/if}} - <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown" id="wall-item-menu-{{$item.id}}"> - <i class="fa fa-cog"></i> - </button> - <div class="dropdown-menu dropdown-menu-right" role="menu" aria-labelledby="wall-item-menu-{{$item.id}}"> - {{if $item.share}} - <a class="dropdown-item" href="#" onclick="jotShare({{$item.id}}); return false"><i class="generic-icons-nav fa fa-fw fa-retweet" title="{{$item.share.0}}"></i>{{$item.share.0}}</a> - {{/if}} - {{if $item.plink}} - <a class="dropdown-item" href="{{$item.plink.href}}" title="{{$item.plink.title}}" class="u-url"><i class="generic-icons-nav fa fa-fw fa-external-link"></i>{{$item.plink.title}}</a> - {{/if}} - {{if $item.edpost}} - <a class="dropdown-item" href="{{$item.edpost.0}}" title="{{$item.edpost.1}}"><i class="generic-icons-nav fa fa-fw fa-pencil"></i>{{$item.edpost.1}}</a> - {{/if}} - {{if $item.tagger}} - <a class="dropdown-item" href="#" onclick="itemTag({{$item.id}}); return false;"><i id="tagger-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-tag" title="{{$item.tagger.tagit}}"></i>{{$item.tagger.tagit}}</a> - {{/if}} - {{if $item.filer}} - <a class="dropdown-item" href="#" onclick="itemFiler({{$item.id}}); return false;"><i id="filer-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-folder-open" title="{{$item.filer}}"></i>{{$item.filer}}</a> - {{/if}} - {{if $item.bookmark}} - <a class="dropdown-item" href="#" onclick="itemBookmark({{$item.id}}); return false;"><i id="bookmarker-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-bookmark" title="{{$item.bookmark}}"></i>{{$item.bookmark}}</a> - {{/if}} - {{if $item.addtocal}} - <a class="dropdown-item" href="#" onclick="itemAddToCal({{$item.id}}); return false;"><i id="addtocal-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-calendar" title="{{$item.addtocal}}"></i>{{$item.addtocal}}</a> - {{/if}} - {{if $item.star}} - <a class="dropdown-item" href="#" onclick="dostar({{$item.id}}); return false;"><i id="starred-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-star {{$item.star.isstarred}}" title="{{$item.star.toggle}}"></i>{{$item.star.toggle}}</a> - {{/if}} - {{if $item.thread_action_menu}} - {{foreach $item.thread_action_menu as $mitem}} - <a class="dropdown-item" {{if $mitem.href}}href="{{$mitem.href}}"{{/if}} {{if $mitem.action}}onclick="{{$mitem.action}}"{{/if}} {{if $mitem.title}}title="{{$mitem.title}}"{{/if}} ><i class="generic-icons-nav fa fa-fw fa-{{$mitem.icon}}"></i>{{$mitem.title}}</a> - {{/foreach}} - {{/if}} - {{if $item.drop.dropping}} - <a class="dropdown-item" href="#" onclick="dropItem('item/drop/{{$item.id}}', '#thread-wrapper-{{$item.id}}'); return false;" title="{{$item.drop.delete}}" ><i class="generic-icons-nav fa fa-fw fa-trash-o"></i>{{$item.drop.delete}}</a> - {{/if}} - {{if $item.thread_author_menu}} - <div class="dropdown-divider"></div> - {{foreach $item.thread_author_menu as $mitem}} - <a class="dropdown-item" {{if $mitem.href}}href="{{$mitem.href}}"{{/if}} {{if $mitem.action}}onclick="{{$mitem.action}}"{{/if}} {{if $mitem.title}}title="{{$mitem.title}}"{{/if}} >{{$mitem.title}}</a> - {{/foreach}} - {{/if}} - {{if $item.edpost && $item.dreport}} - <a class="dropdown-item" href="dreport/{{$item.mid}}">{{$item.dreport}}</a> - {{/if}} + <div class="btn-group"> + <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown" id="wall-item-menu-{{$item.id}}"> + <i class="fa fa-cog"></i> + </button> + <div class="dropdown-menu dropdown-menu-right" role="menu" aria-labelledby="wall-item-menu-{{$item.id}}"> + {{if $item.share}} + <a class="dropdown-item" href="#" onclick="jotShare({{$item.id}}); return false"><i class="generic-icons-nav fa fa-fw fa-retweet" title="{{$item.share.0}}"></i>{{$item.share.0}}</a> + {{/if}} + {{if $item.plink}} + <a class="dropdown-item" href="{{$item.plink.href}}" title="{{$item.plink.title}}" class="u-url"><i class="generic-icons-nav fa fa-fw fa-external-link"></i>{{$item.plink.title}}</a> + {{/if}} + {{if $item.edpost}} + <a class="dropdown-item" href="{{$item.edpost.0}}" title="{{$item.edpost.1}}"><i class="generic-icons-nav fa fa-fw fa-pencil"></i>{{$item.edpost.1}}</a> + {{/if}} + {{if $item.tagger}} + <a class="dropdown-item" href="#" onclick="itemTag({{$item.id}}); return false;"><i id="tagger-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-tag" title="{{$item.tagger.tagit}}"></i>{{$item.tagger.tagit}}</a> + {{/if}} + {{if $item.filer}} + <a class="dropdown-item" href="#" onclick="itemFiler({{$item.id}}); return false;"><i id="filer-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-folder-open" title="{{$item.filer}}"></i>{{$item.filer}}</a> + {{/if}} + {{if $item.bookmark}} + <a class="dropdown-item" href="#" onclick="itemBookmark({{$item.id}}); return false;"><i id="bookmarker-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-bookmark" title="{{$item.bookmark}}"></i>{{$item.bookmark}}</a> + {{/if}} + {{if $item.addtocal}} + <a class="dropdown-item" href="#" onclick="itemAddToCal({{$item.id}}); return false;"><i id="addtocal-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-calendar" title="{{$item.addtocal}}"></i>{{$item.addtocal}}</a> + {{/if}} + {{if $item.star}} + <a class="dropdown-item" href="#" onclick="dostar({{$item.id}}); return false;"><i id="starred-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-star {{$item.star.isstarred}}" title="{{$item.star.toggle}}"></i>{{$item.star.toggle}}</a> + {{/if}} + {{if $item.thread_action_menu}} + {{foreach $item.thread_action_menu as $mitem}} + <a class="dropdown-item" {{if $mitem.href}}href="{{$mitem.href}}"{{/if}} {{if $mitem.action}}onclick="{{$mitem.action}}"{{/if}} {{if $mitem.title}}title="{{$mitem.title}}"{{/if}} ><i class="generic-icons-nav fa fa-fw fa-{{$mitem.icon}}"></i>{{$mitem.title}}</a> + {{/foreach}} + {{/if}} + {{if $item.drop.dropping}} + <a class="dropdown-item" href="#" onclick="dropItem('item/drop/{{$item.id}}', '#thread-wrapper-{{$item.id}}'); return false;" title="{{$item.drop.delete}}" ><i class="generic-icons-nav fa fa-fw fa-trash-o"></i>{{$item.drop.delete}}</a> + {{/if}} + {{if $item.thread_author_menu}} + <div class="dropdown-divider"></div> + {{foreach $item.thread_author_menu as $mitem}} + <a class="dropdown-item" {{if $mitem.href}}href="{{$mitem.href}}"{{/if}} {{if $mitem.action}}onclick="{{$mitem.action}}"{{/if}} {{if $mitem.title}}title="{{$mitem.title}}"{{/if}} >{{$mitem.title}}</a> + {{/foreach}} + {{/if}} + {{if $item.edpost && $item.dreport}} + <a class="dropdown-item" href="dreport/{{$item.mid}}">{{$item.dreport}}</a> + {{/if}} + </div> </div> </div> </div> diff --git a/view/tpl/item_binary.tpl b/view/tpl/item_binary.tpl new file mode 100644 index 000000000..b19f7e7dd --- /dev/null +++ b/view/tpl/item_binary.tpl @@ -0,0 +1,3 @@ +<p> +<center><a class="zrl" href="{{$url}}"><button class="btn btn-warning fakelink">{{$download}}</button></a></center> +</p> |