diff options
27 files changed, 188 insertions, 423 deletions
diff --git a/Zotlabs/Module/Import.php b/Zotlabs/Module/Import.php index 3969f25e0..55c1a8d8b 100644 --- a/Zotlabs/Module/Import.php +++ b/Zotlabs/Module/Import.php @@ -2,26 +2,32 @@ namespace Zotlabs\Module; -// Import a channel, either by direct file upload or via -// connection to original server. - - require_once('include/zot.php'); require_once('include/channel.php'); require_once('include/import.php'); require_once('include/perm_upgrade.php'); - +/** + * @brief Module for channel import. + * + * Import a channel, either by direct file upload or via + * connection to another server. + */ class Import extends \Zotlabs\Web\Controller { + /** + * @brief Import channel into account. + * + * @param int $account_id + */ function import_account($account_id) { - + if(! $account_id){ - logger("import_account: No account ID supplied"); + logger('No account ID supplied'); return; } - + $max_friends = account_service_class_fetch($account_id,'total_channels'); $max_feeds = account_service_class_fetch($account_id,'total_feeds'); $data = null; @@ -32,35 +38,39 @@ class Import extends \Zotlabs\Web\Controller { $filename = basename($_FILES['filename']['name']); $filesize = intval($_FILES['filename']['size']); $filetype = $_FILES['filename']['type']; - + // import channel from file if($src) { - - // This is OS specific and could also fail if your tmpdir isn't very large - // mostly used for Diaspora which exports gzipped files. - + + // This is OS specific and could also fail if your tmpdir isn't very + // large mostly used for Diaspora which exports gzipped files. + if(strpos($filename,'.gz')){ @rename($src,$src . '.gz'); @system('gunzip ' . escapeshellarg($src . '.gz')); } - + if($filesize) { $data = @file_get_contents($src); } unlink($src); } - + + // import channel from another server if(! $src) { $old_address = ((x($_REQUEST,'old_address')) ? $_REQUEST['old_address'] : ''); if(! $old_address) { - logger('mod_import: nothing to import.'); + logger('Nothing to import.'); notice( t('Nothing to import.') . EOL); return; + } else if(strpos($old_address, '@')) { + // if you copy the identity address from your profile page, make it work for convenience + $old_address = str_replace('@', '@', $old_address); } - + $email = ((x($_REQUEST,'email')) ? $_REQUEST['email'] : ''); $password = ((x($_REQUEST,'password')) ? $_REQUEST['password'] : ''); - + $channelname = substr($old_address,0,strpos($old_address,'@')); $servername = substr($old_address,strpos($old_address,'@')+1); @@ -85,19 +95,18 @@ class Import extends \Zotlabs\Web\Controller { return; } } - + if(! $data) { - logger('mod_import: empty file.'); + logger('Empty import file.'); notice( t('Imported file is empty.') . EOL); return; } - + $data = json_decode($data,true); - + // logger('import: data: ' . print_r($data,true)); // print_r($data); - - + if(! array_key_exists('compatibility',$data)) { call_hooks('import_foreign_channel_data',$data); if($data['handled']) @@ -108,24 +117,24 @@ class Import extends \Zotlabs\Web\Controller { $v1 = substr($data['compatibility']['database'],-4); $v2 = substr(DB_UPDATE_VERSION,-4); if($v2 > $v1) { - $t = sprintf( t('Warning: Database versions differ by %1$d updates.'), $v2 - $v1 ); + $t = sprintf( t('Warning: Database versions differ by %1$d updates.'), $v2 - $v1 ); notice($t); } if(array_key_exists('server_role',$data['compatibility']) && $data['compatibility']['server_role'] == 'basic') $moving = true; } - + if($moving) $seize = 1; - + // import channel - + $relocate = ((array_key_exists('relocate',$data)) ? $data['relocate'] : null); if(array_key_exists('channel',$data)) { - + $max_identities = account_service_class_fetch($account_id,'total_identities'); - + if($max_identities !== false) { $r = q("select channel_id from channel where channel_account_id = %d", intval($account_id) @@ -137,46 +146,40 @@ class Import extends \Zotlabs\Web\Controller { } $channel = import_channel($data['channel'], $account_id, $seize); - } else { $moving = false; $channel = \App::get_channel(); } - + if(! $channel) { - logger('mod_import: channel not found. ', print_r($channel,true)); + logger('Channel not found. ', print_r($channel,true)); notice( t('No channel. Import failed.') . EOL); return; } - - if(is_array($data['config'])) { import_config($channel,$data['config']); } - + logger('import step 2'); - - - if(array_key_exists('channel',$data)) { if($data['photo']) { require_once('include/photo/photo_driver.php'); import_channel_photo(base64url_decode($data['photo']['data']),$data['photo']['type'],$account_id,$channel['channel_id']); } - + if(is_array($data['profile'])) import_profiles($channel,$data['profile']); } - + logger('import step 3'); - + if(is_array($data['hubloc'])) { import_hublocs($channel,$data['hubloc'],$seize,$moving); } - + logger('import step 4'); // create new hubloc for the new channel at this site @@ -200,7 +203,7 @@ class Import extends \Zotlabs\Web\Controller { ); // reset the original primary hubloc if it is being seized - + if($seize) { $r = q("update hubloc set hubloc_primary = 0 where hubloc_primary = 1 and hubloc_hash = '%s' and hubloc_url != '%s' ", dbesc($channel['channel_hash']), @@ -210,20 +213,18 @@ class Import extends \Zotlabs\Web\Controller { } logger('import step 5'); - - - + + // import xchans and contact photos - + if(array_key_exists('channel',$data) && $seize) { - + // replace any existing xchan we may have on this site if we're seizing control - + $r = q("delete from xchan where xchan_hash = '%s'", dbesc($channel['channel_hash']) ); - $r = xchan_store_lowlevel( [ 'xchan_hash' => $channel['channel_hash'], @@ -242,23 +243,22 @@ class Import extends \Zotlabs\Web\Controller { 'xchan_photo_date' => datetime_convert(), 'xchan_name_date' => datetime_convert() ] - ); + ); } - + logger('import step 6'); - - + $xchans = $data['xchan']; if($xchans) { foreach($xchans as $xchan) { - + $hash = make_xchan_hash($xchan['xchan_guid'],$xchan['xchan_guid_sig']); if($xchan['xchan_network'] === 'zot' && $hash !== $xchan['xchan_hash']) { logger('forged xchan: ' . print_r($xchan,true)); continue; } - + if(! array_key_exists('xchan_hidden',$xchan)) { $xchan['xchan_hidden'] = (($xchan['xchan_flags'] & 0x0001) ? 1 : 0); $xchan['xchan_orphan'] = (($xchan['xchan_flags'] & 0x0002) ? 1 : 0); @@ -268,22 +268,22 @@ class Import extends \Zotlabs\Web\Controller { $xchan['xchan_pubforum'] = (($xchan['xchan_flags'] & 0x0020) ? 1 : 0); $xchan['xchan_deleted'] = (($xchan['xchan_flags'] & 0x1000) ? 1 : 0); } - + $r = q("select xchan_hash from xchan where xchan_hash = '%s' limit 1", dbesc($xchan['xchan_hash']) ); if($r) continue; - create_table_from_array('xchan',$xchan); - + create_table_from_array('xchan',$xchan); + require_once('include/photo/photo_driver.php'); $photos = import_xchan_photo($xchan['xchan_photo_l'],$xchan['xchan_hash']); if($photos[4]) $photodate = NULL_DATE; else $photodate = $xchan['xchan_photo_date']; - + $r = q("update xchan set xchan_photo_l = '%s', xchan_photo_m = '%s', xchan_photo_s = '%s', xchan_photo_mimetype = '%s', xchan_photo_date = '%s' where xchan_hash = '%s'", dbesc($photos[0]), dbesc($photos[1]), @@ -292,27 +292,27 @@ class Import extends \Zotlabs\Web\Controller { dbesc($photodate), dbesc($xchan['xchan_hash']) ); - + } - logger('import step 7'); + logger('import step 7'); } - + $friends = 0; $feeds = 0; - + // import contacts $abooks = $data['abook']; if($abooks) { foreach($abooks as $abook) { $abook_copy = $abook; - + $abconfig = null; if(array_key_exists('abconfig',$abook) && is_array($abook['abconfig']) && count($abook['abconfig'])) $abconfig = $abook['abconfig']; - + unset($abook['abook_id']); unset($abook['abook_rating']); unset($abook['abook_rating_text']); @@ -332,7 +332,7 @@ class Import extends \Zotlabs\Web\Controller { $abook['abook_self'] = (($abook['abook_flags'] & 0x0080 ) ? 1 : 0); $abook['abook_feed'] = (($abook['abook_flags'] & 0x0100 ) ? 1 : 0); } - + if($abook['abook_self']) { $role = get_pconfig($channel['channel_id'],'system','permissions_role'); if(($role === 'forum') || ($abook['abook_my_perms'] & PERMS_W_TAGWALL)) { @@ -340,14 +340,14 @@ class Import extends \Zotlabs\Web\Controller { dbesc($abook['abook_xchan']) ); } - } + } else { if($max_friends !== false && $friends > $max_friends) continue; if($max_feeds !== false && intval($abook['abook_feed']) && ($feeds > $max_feeds)) continue; } - + create_table_from_array('abook',$abook); $friends ++; @@ -355,9 +355,9 @@ class Import extends \Zotlabs\Web\Controller { $feeds ++; translate_abook_perms_inbound($channel,$abook_copy); - + if($abconfig) { - // @fixme does not handle sync of del_abconfig + /// @FIXME does not handle sync of del_abconfig foreach($abconfig as $abc) { set_abconfig($channel['channel_id'],$abc['xchan'],$abc['cat'],$abc['k'],$abc['v']); } @@ -366,7 +366,7 @@ class Import extends \Zotlabs\Web\Controller { logger('import step 8'); } - + $groups = $data['group']; if($groups) { $saved = array(); @@ -388,10 +388,10 @@ class Import extends \Zotlabs\Web\Controller { foreach($r as $rr) { $saved[$rr['hash']]['new'] = $rr['id']; } - } + } } - - + + $group_members = $data['group_member']; if($group_members) { foreach($group_members as $group_member) { @@ -406,31 +406,31 @@ class Import extends \Zotlabs\Web\Controller { } logger('import step 9'); - + if(is_array($data['obj'])) import_objs($channel,$data['obj']); - + if(is_array($data['likes'])) import_likes($channel,$data['likes']); - + if(is_array($data['app'])) import_apps($channel,$data['app']); - + if(is_array($data['chatroom'])) import_chatrooms($channel,$data['chatroom']); - + if(is_array($data['conv'])) import_conv($channel,$data['conv']); - + if(is_array($data['mail'])) import_mail($channel,$data['mail']); - + if(is_array($data['event'])) import_events($channel,$data['event']); - + if(is_array($data['event_item'])) import_items($channel,$data['event_item'],false,$relocate); - + if(is_array($data['menu'])) import_menus($channel,$data['menu']); @@ -439,56 +439,61 @@ class Import extends \Zotlabs\Web\Controller { if(is_array($data['webpages'])) import_items($channel,$data['webpages'],false,$relocate); - + $addon = array('channel' => $channel,'data' => $data); call_hooks('import_channel',$addon); - + $saved_notification_flags = notifications_off($channel['channel_id']); - + if($import_posts && array_key_exists('item',$data) && $data['item']) import_items($channel,$data['item'],false,$relocate); - + notifications_on($channel['channel_id'],$saved_notification_flags); - - + + if(array_key_exists('item_id',$data) && $data['item_id']) import_item_ids($channel,$data['item_id']); - + // send out refresh requests // notify old server that it may no longer be primary. - + \Zotlabs\Daemon\Master::Summon(array('Notifier','location',$channel['channel_id'])); - + // This will indirectly perform a refresh_all *and* update the directory - + \Zotlabs\Daemon\Master::Summon(array('Directory', $channel['channel_id'])); - - + + notice( t('Import completed.') . EOL); - + change_channel($channel['channel_id']); - + goaway(z_root() . '/network' ); - } - - + + /** + * @brief Handle POST action on channel import page. + */ function post() { - $account_id = get_account_id(); if(! $account_id) return; - + $this->import_account($account_id); } - + + /** + * @brief Generate channel import page. + * + * @return string with parsed HTML. + */ function get() { - + if(! get_account_id()) { notice( t('You must be logged in to use this feature.')); return ''; } - + $o = replace_macros(get_markup_template('channel_import.tpl'),array( '$title' => t('Import Channel'), '$desc' => t('Use this form to import an existing channel from a different server/hub. You may retrieve the channel identity from the old server/hub via the network or provide an export file.'), @@ -501,14 +506,13 @@ class Import extends \Zotlabs\Web\Controller { '$label_import_primary' => t('Make this hub my primary location'), '$label_import_moving' => t('Move this channel (disable all previous locations)'), '$label_import_posts' => t('Import a few months of posts if possible (limited by available memory'), - '$pleasewait' => t('This process may take several minutes to complete. Please submit the form only once and leave this page open until finished.'), + '$pleasewait' => t('This process may take several minutes to complete. Please submit the form only once and leave this page open until finished.'), '$email' => '', '$pass' => '', '$submit' => t('Submit') )); - + return $o; - } - + } diff --git a/app/admin.png b/app/admin.png Binary files differdeleted file mode 100644 index cde922e8e..000000000 --- a/app/admin.png +++ /dev/null diff --git a/app/features.apd b/app/features.apd deleted file mode 100644 index bffbdffec..000000000 --- a/app/features.apd +++ /dev/null @@ -1,6 +0,0 @@ -version: 1 -url: $baseurl/settings/features -requires: local_channel -name: Features -photo: icon:cogs -categories: System diff --git a/app/features.png b/app/features.png Binary files differdeleted file mode 100644 index 5faf14bc3..000000000 --- a/app/features.png +++ /dev/null diff --git a/app/manage.apd b/app/manage.apd deleted file mode 100644 index b525efa6c..000000000 --- a/app/manage.apd +++ /dev/null @@ -1,6 +0,0 @@ -version: 1 -url: $baseurl/manage -requires: local_channel -name: Channel Manager -photo: icon:id-card-o -categories: Personal diff --git a/app/manage.png b/app/manage.png Binary files differdeleted file mode 100644 index 38a4dcbae..000000000 --- a/app/manage.png +++ /dev/null diff --git a/app/profile.apd b/app/profile.apd deleted file mode 100644 index c8205df63..000000000 --- a/app/profile.apd +++ /dev/null @@ -1,6 +0,0 @@ -version: 1 -url: $baseurl/profile/$nick -requires: local_channel -name: View Profile -photo: icon:user -categories: Personal diff --git a/app/profile.png b/app/profile.png Binary files differdeleted file mode 100644 index e6e137c82..000000000 --- a/app/profile.png +++ /dev/null diff --git a/app/settings.apd b/app/settings.apd deleted file mode 100644 index b244f6774..000000000 --- a/app/settings.apd +++ /dev/null @@ -1,6 +0,0 @@ -version: 1 -url: $baseurl/settings -requires: local_channel -name: Settings -photo: icon:cog -categories: System diff --git a/app/settings.png b/app/settings.png Binary files differdeleted file mode 100644 index 2ba11a79a..000000000 --- a/app/settings.png +++ /dev/null diff --git a/include/import.php b/include/import.php index 5c73b7ca3..ac634639e 100644 --- a/include/import.php +++ b/include/import.php @@ -85,12 +85,6 @@ function import_channel($channel, $account_id, $seize) { create_table_from_array('channel',$clean); } - if(! $r) { - logger('mod_import: channel clone failed. ' . print_r($channel,true)); - notice( t('Channel clone failed. Import failed.') . EOL); - return false; - } - $r = q("select * from channel where channel_account_id = %d and channel_guid = '%s' limit 1", intval($account_id), $channel['channel_guid'] // Already dbesc'd diff --git a/view/css/conversation.css b/view/css/conversation.css index 289e389fa..27601b453 100644 --- a/view/css/conversation.css +++ b/view/css/conversation.css @@ -182,19 +182,20 @@ a.wall-item-name-link { .comment-edit-text-empty, .comment-edit-text-full { padding: 0.5rem; - line-height: 1.25; width: 100%; display: inherit; } .comment-edit-text-empty { - height: 2.25rem; + height: 2rem; + line-height: 1; overflow: hidden; resize: none; } .comment-edit-text-full { height: 7rem; + line-height: 1.25; overflow: auto; resize: vertical; } diff --git a/view/css/mod_apps.css b/view/css/mod_apps.css index 0a231bc84..5e6000fb4 100644 --- a/view/css/mod_apps.css +++ b/view/css/mod_apps.css @@ -1,8 +1,7 @@ .app-container { float: left; - width: 150px; - height: 180px; - padding: 20px; + width: 148px; + margin: 20px; } .app-name { diff --git a/view/css/mod_mail.css b/view/css/mod_mail.css index 6a98267f0..8072b4668 100644 --- a/view/css/mod_mail.css +++ b/view/css/mod_mail.css @@ -1,34 +1,3 @@ -.mail-conv-sender { - float: left; - margin-right: 10px; - margin-bottom: 10px; -} - -.mail-conv-sender img{ - width: 2.2rem; - height: 2.2rem; -} - -.mail-conv-sender-name { - font-weight: bold; -} - -.mail-conv-body { - margin-bottom: 10px; -} - .mail-conv-body img { max-width: 100%; } - -#prvmail-rotator { - margin: 15px; -} - -#prvmail-text { - height: 15.0em; -} - -.mail-conv-outside-wrapper { - margin-bottom: 20px; -} diff --git a/view/css/widgets.css b/view/css/widgets.css index 622c1cb86..880745ba2 100644 --- a/view/css/widgets.css +++ b/view/css/widgets.css @@ -155,3 +155,9 @@ li:hover .group-edit-icon { a.wikilist { z-index: 1; } + +/* mail list */ + +.active .conv-participants { + color: #fff; +} diff --git a/view/js/main.js b/view/js/main.js index 150f517a9..38b9754a1 100644 --- a/view/js/main.js +++ b/view/js/main.js @@ -369,10 +369,10 @@ function NavUpdate() { updateCountsOnly = false; if(data.network || data.home || data.intros || data.mail || data.all_events || data.notify) { - $('#notifications-btn').removeClass('text-muted').addClass('text-white'); + $('#notifications-btn').css('opacity', 1); } else { - $('#notifications-btn').removeClass('text-white').addClass('text-muted'); + $('#notifications-btn').css('opacity', 0.5); $('#navbar-collapse-1').removeClass('in'); } diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css index d00547e36..0e5ff2bfb 100644 --- a/view/theme/redbasic/css/style.css +++ b/view/theme/redbasic/css/style.css @@ -78,6 +78,8 @@ h6, .h6 { } #banner { + color: $banner_colour; + font-weight: bold; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; @@ -97,10 +99,6 @@ abbr { } /* icons */ -.tool-icons, -.cat-icons { - color: $toolicon_colour; -} a, .fakelink { @@ -283,8 +281,6 @@ footer { padding: 0px 10px 10px 10px; background-color: rgba(254,254,254,0.5); border: 1px solid rgba(254,254,254,0.5); - -moz-border-radius: $radius; - -webkit-border-radius: $radius; border-radius: $radius; word-wrap: break-word; } @@ -378,7 +374,6 @@ footer { .photo, .contact-block-img { border-radius: $radius; - -moz-border-radius: $radius; box-shadow: $shadowpx $shadowpx $shadowpx 0 #444444; } @@ -393,7 +388,6 @@ footer { .profile-match-photo img, .directory-photo-img { border-radius: $radius; - -moz-border-radius: $radius; box-shadow: $shadowpx $shadowpx $shadowpx 0 #444444; } @@ -739,26 +733,10 @@ div.jGrowl div.jGrowl-notification { text-align: center; } -a.rconnect, a.rateme, div.rateme { - color: $nav_active_icon_colour; - text-decoration: none; - font-weight: normal; - outline: none; -} - -a.rconnect:hover, a.rateme:hover, div.rateme:hover { - color: #0080FF; - text-decoration: none; -} - .conv-participants { color: $font_colour; } -.active .conv-participants { - color: #fff; -} - .contactname { font-weight: bold; display: block; @@ -902,19 +880,14 @@ margin-right: 50px; .generic-icons { font-size: 1rem; - color: $toolicon_colour; margin-right: 0.5rem; } .generic-icons-right { font-size: 1rem; - color: $toolicon_colour; margin-left: 0.5rem; } -.generic-icons:hover { - color: $toolicon_colour; -} .generic-icons-nav { font-size: 1.2em; @@ -923,13 +896,11 @@ margin-right: 50px; .admin-icons { font-size: 1.2em; - color: $toolicon_colour; margin-right: 7px; } .drop-icons, a .drop-icons { - color: $toolicon_colour; font-size: 1.2em; text-decoration: none; cursor: pointer; @@ -975,7 +946,6 @@ th,td { /* mail */ img.mail-conv-sender-photo { - -moz-border-radius: $radius; border-radius: $radius; } @@ -1099,23 +1069,21 @@ img.mail-conv-sender-photo { border-top: 0px solid $comment_item_colour; } + .wall-item-photo { + width: $top_photo; + height: $top_photo; border: none; - width: $top_photo !important; - height: $top_photo !important; - + border-radius: $radius; + box-shadow: $shadowpx $shadowpx $shadowpx 0 #444444; } .comment .wall-item-photo { - width: $reply_photo !important; - height: $reply_photo !important; + width: $reply_photo; + height: $reply_photo; } -.wall-item-photo { - border-radius: $radius; - -moz-border-radius: $radius; - box-shadow: $shadowpx $shadowpx $shadowpx 0 #444444; -} + .wall-item-ago, a:hover .wall-item-ago, @@ -1125,9 +1093,10 @@ a:hover .dropdown-sub-text { } .active .wall-item-ago, -a:active .wall-item-ago, +a.active:hover .wall-item-ago, .active .dropdown-sub-text, -a:active .dropdown-sub-text { +a:active .dropdown-sub-text, +a.active:hover .dropdown-sub-text { color: #fff; } @@ -1139,14 +1108,6 @@ a:active .dropdown-sub-text { font-size: 1rem; } -.item-tool { - font-size: 1.2em; - color: $toolicon_colour; -} - -.like-rotator { - color: $toolicon_colour; -} .comment-edit-text-empty, .comment-edit-text-full { @@ -1177,19 +1138,12 @@ a:active .dropdown-sub-text { .widget { background-color: rgba(254,254,254,.5); border: 1px solid rgba(254,254,254,.5); - -moz-border-radius: $radius; - -webkit-border-radius: $radius; border-radius: $radius; } -.widget h3 { - color: $toolicon_colour; -} - #note-text { border: 1px solid #ccc; border-radius: $radius; - -moz-border-radius: $radius; } .fileas-ul { @@ -1199,7 +1153,6 @@ a:active .dropdown-sub-text { #datebrowse-sidebar select { border: 1px solid #ccc; border-radius: $radius; - -moz-border-radius: $radius; } .thing-show img { @@ -1439,62 +1392,22 @@ blockquote { border-radius: $radius; } -/* -.navbar-inverse { - background-image: -webkit-linear-gradient(top, $nav_gradient_top 0%, $nav_gradient_bottom 100%); - background-image: linear-gradient(to bottom, $nav_gradient_top 0%, $nav_gradient_bottom 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=$nav_gradient_top, endColorstr=$nav_gradient_bottom, GradientType=0); - background-color: $nav_bg; - border-color: $nav_bd; -} - - -.navbar-inverse .navbar-collapse { - border-color: $nav_bd; -} - -.navbar-inverse .navbar-nav > .active > a { - background-image: -webkit-linear-gradient(top, $nav_active_gradient_top 0%, $nav_active_gradient_bottom 100%); - background-image: linear-gradient(to bottom, $nav_active_gradient_top 0%, $nav_active_gradient_bottom 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=$nav_active_gradient_top, endColorstr=$nav_active_gradient_bottom, GradientType=0); +.bg-inverse { + background-color: $nav_bg !important; } - -.navbar-inverse .navbar-nav > li > a { +.navbar-inverse .navbar-nav .nav-link, +.usermenu i { color: $nav_icon_colour; } -.navbar-inverse .navbar-nav > li > a:hover, -.navbar-inverse .navbar-nav > li > a:focus { - color: $nav_active_icon_colour; -} - -.navbar-inverse .navbar-nav > .active > a, -.navbar-inverse .navbar-nav > .active > a:hover, -.navbar-inverse .navbar-nav > .active > a:focus { +.navbar-inverse .navbar-nav .nav-link:focus, +.navbar-inverse .navbar-nav .nav-link:hover, +.usermenu:focus i, +.usermenu:hover i { color: $nav_active_icon_colour; } -.navbar-inverse .navbar-nav > .open > a, -.navbar-inverse .navbar-nav > .open > a:hover, -.navbar-inverse .navbar-nav > .open > a:focus { - background-color: $nav_bd; - color: $nav_active_icon_colour; -} - -.navbar-inverse .navbar-toggle { - border-color: $nav_bd; -} -.navbar-inverse .navbar-toggle:hover, -.navbar-inverse .navbar-toggle:focus { - background-color: $nav_bg; -} - -.navbar-inverse .navbar-toggle .icon-bar { - background-color: $nav_active_icon_colour; -} -*/ - @media screen and (max-width: 767px) { aside#region_1 { @@ -1693,13 +1606,9 @@ dl.bb-dl > dd > li { border-left: 0.2rem solid #eee; } -.w100 { - width: 100%; -} - .app-icon { + color: #777; font-size: 80px; - color: $toolicon_colour; text-shadow: 3px 3px 3px lightgrey; } diff --git a/view/theme/redbasic/php/config.php b/view/theme/redbasic/php/config.php index 04516df78..042a495e5 100644 --- a/view/theme/redbasic/php/config.php +++ b/view/theme/redbasic/php/config.php @@ -28,11 +28,6 @@ class RedbasicConfig { $arr = array(); $arr['narrow_navbar'] = get_pconfig(local_channel(),'redbasic', 'narrow_navbar' ); $arr['nav_bg'] = get_pconfig(local_channel(),'redbasic', 'nav_bg' ); - $arr['nav_gradient_top'] = get_pconfig(local_channel(),'redbasic', 'nav_gradient_top' ); - $arr['nav_gradient_bottom'] = get_pconfig(local_channel(),'redbasic', 'nav_gradient_bottom' ); - $arr['nav_active_gradient_top'] = get_pconfig(local_channel(),'redbasic', 'nav_active_gradient_top' ); - $arr['nav_active_gradient_bottom'] = get_pconfig(local_channel(),'redbasic', 'nav_active_gradient_bottom' ); - $arr['nav_bd'] = get_pconfig(local_channel(),'redbasic', 'nav_bd' ); $arr['nav_icon_colour'] = get_pconfig(local_channel(),'redbasic', 'nav_icon_colour' ); $arr['nav_active_icon_colour'] = get_pconfig(local_channel(),'redbasic', 'nav_active_icon_colour' ); $arr['link_colour'] = get_pconfig(local_channel(),'redbasic', 'link_colour' ); @@ -41,17 +36,12 @@ class RedbasicConfig { $arr['background_image'] = get_pconfig(local_channel(),'redbasic', 'background_image' ); $arr['item_colour'] = get_pconfig(local_channel(),'redbasic', 'item_colour' ); $arr['comment_item_colour'] = get_pconfig(local_channel(),'redbasic', 'comment_item_colour' ); - $arr['comment_border_colour'] = get_pconfig(local_channel(),'redbasic', 'comment_border_colour' ); - $arr['comment_indent'] = get_pconfig(local_channel(),'redbasic', 'comment_indent' ); - $arr['toolicon_colour'] = get_pconfig(local_channel(),'redbasic','toolicon_colour'); - $arr['toolicon_activecolour'] = get_pconfig(local_channel(),'redbasic','toolicon_activecolour'); $arr['font_size'] = get_pconfig(local_channel(),'redbasic', 'font_size' ); $arr['font_colour'] = get_pconfig(local_channel(),'redbasic', 'font_colour' ); $arr['radius'] = get_pconfig(local_channel(),'redbasic', 'radius' ); $arr['shadow'] = get_pconfig(local_channel(),'redbasic', 'photo_shadow' ); $arr['converse_width']=get_pconfig(local_channel(),"redbasic","converse_width"); $arr['align_left']=get_pconfig(local_channel(),"redbasic","align_left"); - $arr['nav_min_opacity']=get_pconfig(local_channel(),"redbasic","nav_min_opacity"); $arr['top_photo']=get_pconfig(local_channel(),"redbasic","top_photo"); $arr['reply_photo']=get_pconfig(local_channel(),"redbasic","reply_photo"); return $this->form($arr); @@ -65,11 +55,6 @@ class RedbasicConfig { if (isset($_POST['redbasic-settings-submit'])) { set_pconfig(local_channel(), 'redbasic', 'narrow_navbar', $_POST['redbasic_narrow_navbar']); set_pconfig(local_channel(), 'redbasic', 'nav_bg', $_POST['redbasic_nav_bg']); - set_pconfig(local_channel(), 'redbasic', 'nav_gradient_top', $_POST['redbasic_nav_gradient_top']); - set_pconfig(local_channel(), 'redbasic', 'nav_gradient_bottom', $_POST['redbasic_nav_gradient_bottom']); - set_pconfig(local_channel(), 'redbasic', 'nav_active_gradient_top', $_POST['redbasic_nav_active_gradient_top']); - set_pconfig(local_channel(), 'redbasic', 'nav_active_gradient_bottom', $_POST['redbasic_nav_active_gradient_bottom']); - set_pconfig(local_channel(), 'redbasic', 'nav_bd', $_POST['redbasic_nav_bd']); set_pconfig(local_channel(), 'redbasic', 'nav_icon_colour', $_POST['redbasic_nav_icon_colour']); set_pconfig(local_channel(), 'redbasic', 'nav_active_icon_colour', $_POST['redbasic_nav_active_icon_colour']); set_pconfig(local_channel(), 'redbasic', 'link_colour', $_POST['redbasic_link_colour']); @@ -78,17 +63,12 @@ class RedbasicConfig { set_pconfig(local_channel(), 'redbasic', 'background_image', $_POST['redbasic_background_image']); set_pconfig(local_channel(), 'redbasic', 'item_colour', $_POST['redbasic_item_colour']); set_pconfig(local_channel(), 'redbasic', 'comment_item_colour', $_POST['redbasic_comment_item_colour']); - set_pconfig(local_channel(), 'redbasic', 'comment_border_colour', $_POST['redbasic_comment_border_colour']); - set_pconfig(local_channel(), 'redbasic', 'comment_indent', $_POST['redbasic_comment_indent']); - set_pconfig(local_channel(), 'redbasic', 'toolicon_colour', $_POST['redbasic_toolicon_colour']); - set_pconfig(local_channel(), 'redbasic', 'toolicon_activecolour', $_POST['redbasic_toolicon_activecolour']); set_pconfig(local_channel(), 'redbasic', 'font_size', $_POST['redbasic_font_size']); set_pconfig(local_channel(), 'redbasic', 'font_colour', $_POST['redbasic_font_colour']); set_pconfig(local_channel(), 'redbasic', 'radius', $_POST['redbasic_radius']); set_pconfig(local_channel(), 'redbasic', 'photo_shadow', $_POST['redbasic_shadow']); set_pconfig(local_channel(), 'redbasic', 'converse_width', $_POST['redbasic_converse_width']); set_pconfig(local_channel(), 'redbasic', 'align_left', $_POST['redbasic_align_left']); - set_pconfig(local_channel(), 'redbasic', 'nav_min_opacity', $_POST['redbasic_nav_min_opacity']); set_pconfig(local_channel(), 'redbasic', 'top_photo', $_POST['redbasic_top_photo']); set_pconfig(local_channel(), 'redbasic', 'reply_photo', $_POST['redbasic_reply_photo']); } @@ -108,30 +88,20 @@ class RedbasicConfig { '$title' => t("Theme settings"), '$narrow_navbar' => array('redbasic_narrow_navbar',t('Narrow navbar'),$arr['narrow_navbar'], '', array(t('No'),t('Yes'))), '$nav_bg' => array('redbasic_nav_bg', t('Navigation bar background color'), $arr['nav_bg']), - '$nav_gradient_top' => array('redbasic_nav_gradient_top', t('Navigation bar gradient top color'), $arr['nav_gradient_top']), - '$nav_gradient_bottom' => array('redbasic_nav_gradient_bottom', t('Navigation bar gradient bottom color'), $arr['nav_gradient_bottom']), - '$nav_active_gradient_top' => array('redbasic_nav_active_gradient_top', t('Navigation active button gradient top color'), $arr['nav_active_gradient_top']), - '$nav_active_gradient_bottom' => array('redbasic_nav_active_gradient_bottom', t('Navigation active button gradient bottom color'), $arr['nav_active_gradient_bottom']), - '$nav_bd' => array('redbasic_nav_bd', t('Navigation bar border color '), $arr['nav_bd']), '$nav_icon_colour' => array('redbasic_nav_icon_colour', t('Navigation bar icon color '), $arr['nav_icon_colour']), '$nav_active_icon_colour' => array('redbasic_nav_active_icon_colour', t('Navigation bar active icon color '), $arr['nav_active_icon_colour']), - '$link_colour' => array('redbasic_link_colour', t('link color'), $arr['link_colour'], '', $link_colours), + '$link_colour' => array('redbasic_link_colour', t('Link color'), $arr['link_colour'], '', $link_colours), '$banner_colour' => array('redbasic_banner_colour', t('Set font-color for banner'), $arr['banner_colour']), '$bgcolour' => array('redbasic_background_colour', t('Set the background color'), $arr['bgcolour']), '$background_image' => array('redbasic_background_image', t('Set the background image'), $arr['background_image']), '$item_colour' => array('redbasic_item_colour', t('Set the background color of items'), $arr['item_colour']), '$comment_item_colour' => array('redbasic_comment_item_colour', t('Set the background color of comments'), $arr['comment_item_colour']), - '$comment_border_colour' => array('redbasic_comment_border_colour', t('Set the border color of comments'), $arr['comment_border_colour']), - '$comment_indent' => array('redbasic_comment_indent', t('Set the indent for comments'), $arr['comment_indent']), - '$toolicon_colour' => array('redbasic_toolicon_colour',t('Set the basic color for item icons'),$arr['toolicon_colour']), - '$toolicon_activecolour' => array('redbasic_toolicon_activecolour',t('Set the hover color for item icons'),$arr['toolicon_activecolour']), '$font_size' => array('redbasic_font_size', t('Set font-size for the entire application'), $arr['font_size'], t('Examples: 87.5%, 14px')), '$font_colour' => array('redbasic_font_colour', t('Set font-color for posts and comments'), $arr['font_colour']), '$radius' => array('redbasic_radius', t('Set radius of corners'), $arr['radius'], t('Example: 4px')), '$shadow' => array('redbasic_shadow', t('Set shadow depth of photos'), $arr['shadow']), '$converse_width' => array('redbasic_converse_width',t('Set maximum width of content region in pixel'),$arr['converse_width'], t('Leave empty for default width')), '$align_left' => array('redbasic_align_left',t('Left align page content'),$arr['align_left'], '', array(t('No'),t('Yes'))), - '$nav_min_opacity' => array('redbasic_nav_min_opacity',t('Set minimum opacity of nav bar - to hide it'),$arr['nav_min_opacity']), '$top_photo' => array('redbasic_top_photo', t('Set size of conversation author photo'), $arr['top_photo']), '$reply_photo' => array('redbasic_reply_photo', t('Set size of followup author photos'), $arr['reply_photo']), )); diff --git a/view/theme/redbasic/php/style.php b/view/theme/redbasic/php/style.php index 6a993ac28..ab760fdc1 100644 --- a/view/theme/redbasic/php/style.php +++ b/view/theme/redbasic/php/style.php @@ -11,32 +11,22 @@ if(! App::$install) { // Load the owners pconfig $nav_bg = get_pconfig($uid, 'redbasic', 'nav_bg'); - $nav_gradient_top = get_pconfig($uid, 'redbasic', 'nav_gradient_top'); - $nav_gradient_bottom = get_pconfig($uid, 'redbasic', 'nav_gradient_bottom'); - $nav_active_gradient_top = get_pconfig($uid, 'redbasic', 'nav_active_gradient_top'); - $nav_active_gradient_bottom = get_pconfig($uid, 'redbasic', 'nav_active_gradient_bottom'); - $nav_bd = get_pconfig($uid, 'redbasic', 'nav_bd'); $nav_icon_colour = get_pconfig($uid, 'redbasic', 'nav_icon_colour'); $nav_active_icon_colour = get_pconfig($uid, 'redbasic', 'nav_active_icon_colour'); - $narrow_navbar = get_pconfig($uid,'redbasic','narrow_navbar'); $banner_colour = get_pconfig($uid,'redbasic','banner_colour'); + $narrow_navbar = get_pconfig($uid,'redbasic','narrow_navbar'); $link_colour = get_pconfig($uid, 'redbasic', 'link_colour'); $schema = get_pconfig($uid,'redbasic','schema'); $bgcolour = get_pconfig($uid, 'redbasic', 'background_colour'); $background_image = get_pconfig($uid, 'redbasic', 'background_image'); - $toolicon_colour = get_pconfig($uid,'redbasic','toolicon_colour'); - $toolicon_activecolour = get_pconfig($uid,'redbasic','toolicon_activecolour'); $item_colour = get_pconfig($uid, 'redbasic', 'item_colour'); $comment_item_colour = get_pconfig($uid, 'redbasic', 'comment_item_colour'); - $comment_border_colour = get_pconfig($uid, 'redbasic', 'comment_border_colour'); - $comment_indent = get_pconfig($uid, 'redbasic', 'comment_indent'); $font_size = get_pconfig($uid, 'redbasic', 'font_size'); $font_colour = get_pconfig($uid, 'redbasic', 'font_colour'); $radius = get_pconfig($uid, 'redbasic', 'radius'); $shadow = get_pconfig($uid,'redbasic','photo_shadow'); $converse_width=get_pconfig($uid,'redbasic','converse_width'); $align_left=get_pconfig($uid,'redbasic','align_left'); - $nav_min_opacity=get_pconfig($uid,'redbasic','nav_min_opacity'); $top_photo=get_pconfig($uid,'redbasic','top_photo'); $reply_photo=get_pconfig($uid,'redbasic','reply_photo'); } @@ -86,20 +76,10 @@ if (! $schema) { //individually. If we don't, we'll have problems if a user has set one, but not all options. if (! $nav_bg) $nav_bg = '#222'; -if (! $nav_gradient_top) - $nav_gradient_top = '#3c3c3c'; -if (! $nav_gradient_bottom) - $nav_gradient_bottom = '#222'; -if (! $nav_active_gradient_top) - $nav_active_gradient_top = '#222'; -if (! $nav_active_gradient_bottom) - $nav_active_gradient_bottom = '#282828'; -if (! $nav_bd) - $nav_bd = '#222'; if (! $nav_icon_colour) - $nav_icon_colour = '#999'; + $nav_icon_colour = 'rgba(255, 255, 255, 0.5)'; if (! $nav_active_icon_colour) - $nav_active_icon_colour = '#fff'; + $nav_active_icon_colour = 'rgba(255, 255, 255, 0.75)'; if (! $link_colour) $link_colour = '#0275d8'; if (! $banner_colour) @@ -112,12 +92,6 @@ if (! $item_colour) $item_colour = 'rgb(238,238,238)'; if (! $comment_item_colour) $comment_item_colour = 'rgb(255,255,255)'; -if (! $comment_border_colour) - $comment_border_colour = 'rgb(255,255,255)'; -if (! $toolicon_colour) - $toolicon_colour = '#777'; -if (! $toolicon_activecolour) - $toolicon_activecolour = '#000'; if (! $item_opacity) $item_opacity = '1'; if (! $font_size) @@ -132,18 +106,8 @@ if (! $converse_width) $converse_width = '790'; if(! $top_photo) $top_photo = '2.3rem'; -if(! $comment_indent) - $comment_indent = '0px'; if(! $reply_photo) $reply_photo = '2.3rem'; -if($nav_min_opacity === false || $nav_min_opacity === '') { - $nav_float_min_opacity = 1.0; - $nav_percent_min_opacity = 100; -} -else { - $nav_float_min_opacity = (float) $nav_min_opacity; - $nav_percent_min_opacity = (int) 100 * $nav_min_opacity; -} // Apply the settings if(file_exists('view/theme/redbasic/css/style.css')) { @@ -176,11 +140,6 @@ if(file_exists('view/theme/redbasic/css/style.css')) { $options = array ( '$nav_bg' => $nav_bg, - '$nav_gradient_top' => $nav_gradient_top, - '$nav_gradient_bottom' => $nav_gradient_bottom, - '$nav_active_gradient_top' => $nav_active_gradient_top, - '$nav_active_gradient_bottom' => $nav_active_gradient_bottom, - '$nav_bd' => $nav_bd, '$nav_icon_colour' => $nav_icon_colour, '$nav_active_icon_colour' => $nav_active_icon_colour, '$link_colour' => $link_colour, @@ -189,9 +148,6 @@ if(file_exists('view/theme/redbasic/css/style.css')) { '$background_image' => $background_image, '$item_colour' => $item_colour, '$comment_item_colour' => $comment_item_colour, - '$comment_border_colour' => $comment_border_colour, - '$toolicon_colour' => $toolicon_colour, - '$toolicon_activecolour' => $toolicon_activecolour, '$font_size' => $font_size, '$font_colour' => $font_colour, '$radius' => $radius, @@ -203,7 +159,6 @@ if(file_exists('view/theme/redbasic/css/style.css')) { '$reply_photo' => $reply_photo, '$pmenu_top' => $pmenu_top, '$pmenu_reply' => $pmenu_reply, - '$comment_indent' => $comment_indent, '$main_width' => $main_width, '$aside_width' => $aside_width ); diff --git a/view/theme/redbasic/tpl/theme_settings.tpl b/view/theme/redbasic/tpl/theme_settings.tpl index 3d748464c..f90e37ac3 100644 --- a/view/theme/redbasic/tpl/theme_settings.tpl +++ b/view/theme/redbasic/tpl/theme_settings.tpl @@ -4,14 +4,9 @@ {{include file="field_input.tpl" field=$font_size}} {{if $expert}} {{include file="field_colorinput.tpl" field=$nav_bg}} - {{include file="field_colorinput.tpl" field=$nav_gradient_top}} - {{include file="field_colorinput.tpl" field=$nav_gradient_bottom}} - {{include file="field_colorinput.tpl" field=$nav_active_gradient_top}} - {{include file="field_colorinput.tpl" field=$nav_active_gradient_bottom}} - {{include file="field_colorinput.tpl" field=$nav_bd}} {{include file="field_colorinput.tpl" field=$nav_icon_colour}} {{include file="field_colorinput.tpl" field=$nav_active_icon_colour}} - {{include file="field_input.tpl" field=$nav_min_opacity}} + {{include file="field_colorinput.tpl" field=$banner_colour}} {{include file="field_colorinput.tpl" field=$bgcolour}} {{include file="field_colorinput.tpl" field=$background_image}} {{include file="field_colorinput.tpl" field=$item_colour}} @@ -20,9 +15,6 @@ {{*include file="field_input.tpl" field=$comment_indent*}} {{include file="field_colorinput.tpl" field=$font_colour}} {{include file="field_colorinput.tpl" field=$link_colour}} - {{include file="field_colorinput.tpl" field=$banner_colour}} - {{include file="field_colorinput.tpl" field=$toolicon_colour}} - {{include file="field_colorinput.tpl" field=$toolicon_activecolour}} {{include file="field_input.tpl" field=$radius}} {{include file="field_input.tpl" field=$shadow}} {{include file="field_input.tpl" field=$top_photo}} @@ -30,8 +22,8 @@ <script> $(function(){ - $('#id_redbasic_nav_bg,#id_redbasic_nav_gradient_top,#id_redbasic_nav_gradient_bottom,#id_redbasic_nav_active_gradient_top,#id_redbasic_nav_active_gradient_bottom').colorpicker({format: 'rgba'}); - $('#id_redbasic_nav_bd,#id_redbasic_nav_icon_colour ,#id_redbasic_nav_active_icon_colour,#id_redbasic_banner_colour,#id_redbasic_link_colour,#id_redbasic_background_colour').colorpicker(); + $('#id_redbasic_nav_bg, #id_redbasic_nav_icon_colour, #id_redbasic_nav_active_icon_colour, #id_redbasic_banner_colour').colorpicker({format: 'rgba'}); + $('#id_redbasic_link_colour,#id_redbasic_background_colour').colorpicker(); $('#id_redbasic_toolicon_colour,#id_redbasic_toolicon_activecolour,#id_redbasic_font_colour').colorpicker(); $('#id_redbasic_item_colour,#id_redbasic_comment_item_colour,#id_redbasic_comment_border_colour').colorpicker({format: 'rgba'}); }); diff --git a/view/tpl/app_create.tpl b/view/tpl/app_create.tpl index 7a0521436..5075ce5e2 100644 --- a/view/tpl/app_create.tpl +++ b/view/tpl/app_create.tpl @@ -3,7 +3,7 @@ <h2>{{$banner}}</h2> </div> - <div class="section-content-wrapper"> + <div class="clearfix section-content-wrapper"> <form action="appman" method="post"> {{if $guid}} <input type="hidden" name="guid" value="{{$guid}}" /> @@ -33,7 +33,7 @@ {{include file="field_textarea.tpl" field=$embed}} {{/if}} - <input type="submit" name="submit" value="{{$submit}}" /> + <button class="btn btn-primary float-right" type="submit" name="submit" value="{{$submit}}">{{$submit}}</button> </form> </div> diff --git a/view/tpl/events_tools_side.tpl b/view/tpl/events_tools_side.tpl index bc6f09ae8..e22f95c1e 100755 --- a/view/tpl/events_tools_side.tpl +++ b/view/tpl/events_tools_side.tpl @@ -8,7 +8,7 @@ <div class="sub-menu"> <form action="events" enctype="multipart/form-data" method="post" name="event-upload-form" id="event-upload-form"> <div class="form-group"> - <input id="event-upload-choose" class="form-control-file w100" type="file" name="userfile" /> + <input id="event-upload-choose" class="form-control-file w-100" type="file" name="userfile" /> </div> <button id="dbtn-submit" class="btn btn-primary btn-sm" type="submit" name="submit" >{{$submit}}</button> </form> diff --git a/view/tpl/mail_conv.tpl b/view/tpl/mail_conv.tpl index ad13ba96d..759517b7f 100755 --- a/view/tpl/mail_conv.tpl +++ b/view/tpl/mail_conv.tpl @@ -1,47 +1,38 @@ -<div id="mail-{{$mail.id}}" class="mail-conv-outside-wrapper"> - <div class="mail-conv-sender" > - <a href="{{$mail.from_url}}"><img class="mail-conv-sender-photo" src="{{$mail.from_photo}}" alt="{{$mail.from_name}}" /></a> - </div> - <div class="mail-conv-detail"> - {{if $mail.is_recalled}}<strong>{{$mail.is_recalled}}</strong>{{/if}} - <div class="mail-conv-sender-name"><a href="{{$mail.from_url}}">{{$mail.from_name}}</a></div> - <div class="mail-conv-date autotime wall-item-ago" title="{{$mail.date}}">{{$mail.date}}</div> +<div id="mail-{{$mail.id}}" class="mb-2 clearfix mail-conv-outside-wrapper"> + <div class="mb-2 clearfix wall-item-head"> + <div class="wall-item-info" > + <a href="{{$mail.from_url}}"><img class="wall-item-photo" src="{{$mail.from_photo}}" alt="{{$mail.from_name}}" /></a> + </div> + <div class="mail-conv-detail"> + {{if $mail.is_recalled}}<strong>{{$mail.is_recalled}}</strong>{{/if}} + <div class="wall-item-name"><a class="wall-item-name-link" href="{{$mail.from_url}}">{{$mail.from_name}}</a></div> + <div class="autotime wall-item-ago" title="{{$mail.date}}">{{$mail.date}}</div> + </div> </div> - <div class="clear"></div> - <div class="mail-conv-content"> - <div class="mail-conv-body"> + <div class="clearfix mail-conv-content"> + <div class="clearfix mail-conv-body"> {{$mail.body}} - <div class="clear"></div> </div> {{if $mail.attachments}} - <div class="dropdown pull-left"> - <button type="button" class="btn btn-outline-secondary btn-sm wall-item-like dropdown-toggle" data-toggle="dropdown" id="attachment-menu-{{$item.id}}"><i class="fa fa-paperclip"></i></button> - <ul class="dropdown-menu" role="menu" aria-labelledby="attachment-menu-{{$item.id}}">{{$mail.attachments}}</ul> + <div class="dropdown float-left"> + <button type="button" class="btn btn-outline-secondary btn-sm wall-item-like dropdown-toggle" data-toggle="dropdown" id="attachment-menu-{{$item.id}}"><i class="fa fa-fw fa-paperclip"></i></button> + <div class="dropdown-menu" role="menu" aria-labelledby="attachment-menu-{{$item.id}}">{{$mail.attachments}}</div> </div> {{/if}} - <div class="pull-right dropdown"> + <div class="float-right dropdown"> <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown" id="mail-item-menu-{{$mail.id}}"> <i class="fa fa-cog"></i> </button> - <ul class="dropdown-menu" role="menu" aria-labelledby="mail-item-menu-{{$mail.id}}"> + <div class="dropdown-menu dropdown-menu-right" role="menu" aria-labelledby="mail-item-menu-{{$mail.id}}"> {{if $mail.can_recall}} - <li> - <a href="mail/{{$mail.mailbox}}/recall/{{$mail.id}}" title="{{$mail.recall}}" id="mail-conv-recall-icon-{{$mail.id}}"><i class="fa fa-undo mail-icons"></i> {{$mail.recall}}</a> - </li> + <a class="dropdown-item" href="mail/{{$mail.mailbox}}/recall/{{$mail.id}}" title="{{$mail.recall}}" id="mail-conv-recall-icon-{{$mail.id}}"><i class="fa fa-fw fa-undo"></i> {{$mail.recall}}</a> {{/if}} - <li> - <a href="#" onclick="dropItem('mail/{{$mail.mailbox}}/drop/{{$mail.id}}', '#mail-{{$mail.id}}'); return false;" title="{{$mail.delete}}" id="mail-conv-delete-icon-{{$mail.id}}"><i class="fa fa-trash-o mail-icons"></i> {{$mail.delete}}</a> - </li> + <a class="dropdown-item" href="#" onclick="dropItem('mail/{{$mail.mailbox}}/drop/{{$mail.id}}', '#mail-{{$mail.id}}'); return false;" title="{{$mail.delete}}" id="mail-conv-delete-icon-{{$mail.id}}"><i class="fa fa-fw fa-trash-o"></i> {{$mail.delete}}</a> {{if $mail.can_recall}} - <li class="divider"></li> - <li> - <a href="dreport/mail/{{$mail.mid}}" title="{{$mail.dreport}}" id="mail-conv-dreport-icon-{{$mail.id}}">{{$mail.dreport}}</a> - </li> + <div class="dropdown-divider"></div> + <a class="dropdown-item" href="dreport/mail/{{$mail.mid}}" title="{{$mail.dreport}}" id="mail-conv-dreport-icon-{{$mail.id}}">{{$mail.dreport}}</a> {{/if}} - </ul> - + </div> </div> - <div class="clear"></div> </div> - <div class="clear"></div> </div> diff --git a/view/tpl/myapps.tpl b/view/tpl/myapps.tpl index b9f59b9c3..ccefa4a49 100755 --- a/view/tpl/myapps.tpl +++ b/view/tpl/myapps.tpl @@ -9,10 +9,9 @@ {{/if}} <h2>{{$title}}{{if $cat}} - {{$cat}}{{/if}}</h2> </div> - <div class="section-content-wrapper"> + <div class="clearfix section-content-wrapper"> {{foreach $apps as $ap}} {{$ap}} {{/foreach}} - <div class="clear"></div> </div> </div> diff --git a/view/tpl/nav.tpl b/view/tpl/nav.tpl index 2544ccf52..0a9b94758 100755 --- a/view/tpl/nav.tpl +++ b/view/tpl/nav.tpl @@ -20,7 +20,7 @@ <i class="fa fa-arrow-circle-right" id="expand-aside-icon"></i> </button> {{if $localuser}} - <button id="notifications-btn" type="button" class="navbar-toggler border-0 text-muted" data-toggle="collapse" data-target="#navbar-collapse-1"> + <button id="notifications-btn" type="button" class="navbar-toggler border-0 text-white" data-toggle="collapse" data-target="#navbar-collapse-1"> <i class="fa fa-exclamation-circle"></i> </button> {{/if}} @@ -32,7 +32,7 @@ <div class="dropdown usermenu"> <div class="fakelink" data-toggle="dropdown"> <img id="avatar" src="{{$userinfo.icon}}" alt="{{$userinfo.name}}"> - <i class="fa fa-caret-down text-white"></i> + <i class="fa fa-caret-down"></i> </div> {{if $localuser}} <div class="dropdown-menu"> @@ -169,7 +169,7 @@ {{/if}} </ul> - <div id="banner" class="navbar-text text-white font-weight-bold d-none d-md-flex">{{$banner}}</div> + <div id="banner" class="navbar-text d-none d-md-flex">{{$banner}}</div> <ul id="nav-right" class="navbar-nav ml-auto d-none d-md-flex"> <li class="nav-item collapse clearfix" id="nav-search"> diff --git a/view/tpl/prv_message.tpl b/view/tpl/prv_message.tpl index 20b8ac209..925447ff2 100755 --- a/view/tpl/prv_message.tpl +++ b/view/tpl/prv_message.tpl @@ -28,7 +28,7 @@ {{/if}} <div class="form-group"> <label for="prvmail-text">{{$yourmessage}}</label> - <textarea class="form-control" id="prvmail-text" name="body">{{$text}}</textarea> + <textarea class="form-control" id="prvmail-text" name="body"{{if $new}} style="height: 10em;"{{/if}}>{{$text}}</textarea> </div> <div id="prvmail-submit-wrapper" class="form-group"> <div id="prvmail-submit" class="float-right btn-group"> diff --git a/view/tpl/website_portation_tools.tpl b/view/tpl/website_portation_tools.tpl index 4ee1376ea..0d131cb17 100644 --- a/view/tpl/website_portation_tools.tpl +++ b/view/tpl/website_portation_tools.tpl @@ -15,7 +15,7 @@ <!-- Or upload a zipped file containing the website --> <p class="descriptive-text">{{$file_upload_text}}</p> <div class="form-group"> - <input class="form-control-file w100" type="file" name="zip_file" /> + <input class="form-control-file w-100" type="file" name="zip_file" /> </div> <div class="form-group"> <button class="btn btn-primary btn-sm" type="submit" name="w_upload" value="w_upload">Submit</button> |