diff options
-rw-r--r-- | CHANGELOG.md | 246 | ||||
-rw-r--r-- | LICENSE.txt | 2 | ||||
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | doc/README.md | 6 | ||||
-rw-r--r-- | doc/config/smtp-email-setup.md | 41 | ||||
-rw-r--r-- | doc/install/aws-ebs-setup.md | 4 | ||||
-rw-r--r-- | doc/install/release-numbering.md | 17 | ||||
-rw-r--r-- | doc/install/single-container-install.md | 7 | ||||
-rw-r--r-- | docker/0.7/Dockerfile | 2 | ||||
-rw-r--r-- | web/react/components/textbox.jsx | 6 | ||||
-rw-r--r-- | web/react/components/user_settings.jsx | 3 | ||||
-rw-r--r-- | web/react/components/user_settings_general.jsx | 35 | ||||
-rw-r--r-- | web/react/utils/utils.jsx | 2 | ||||
-rw-r--r-- | web/sass-files/sass/partials/_responsive.scss | 33 |
14 files changed, 364 insertions, 42 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..5876dc894 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,246 @@ +# Mattermost Changelog + +## UNDER DEVELOPMENT - Release v0.8.0 (Beta2) + +The "UNDER DEVELOPMENT" section of the Mattermost changelog appears in the product's `master` branch to note key changes committed to master and are on their way to the next stable release. When a stable release is pushed the "UNDER DEVELOPMENT" heading is removed from the final changelog of the release. + +- **Release candidate anticipated:** September 28, 2015 +- **Final release anticipated:** October 2, 2015 + +### Release Highlights + +- [See Product Roadmap for anticipated features](https://mattermost.atlassian.net/issues/?filter=10002) + +### New Features + +- [See Product Roadmap for anticipated features](https://mattermost.atlassian.net/issues/?filter=10002) + +### Improvements + +Documentation + +- Updated software and hardware requirements documentation +- Re-organized install instructions out of README and into separate files +- Consolidated licensing information into LICENSE.txt and NOTICE.txt + +Performance + +- Enabled Javascript optimizations + +Code Quality + +- Reformatted Javascript per Mattermost Style Guide + +### Bug Fixes + +- Fixed performance issue with slow typing on iOS + +### Contributors + +Many thanks to our external contributors. In no particular order: + +- TBA + +## Release v0.7.0 (Beta1) + +Released 2015-09-05 + +### Release Highlights + +#### Improved GitLab Mattermost support + +Following the release of Mattermost v0.6.0 Alpha, GitLab 7.14 offered an automated install of Mattermost with GitLab Single-Sign-On (co-branded as "GitLab Mattermost") in its omnibus installer. + +New features, improvements, and bug fixes recommended by the GitLab community were incorporated into Mattermost v0.7.0 Beta1--in particular, extending support of GitLab SSO to team creation, and restricting team creation to users with verified emails from a configurable list of domains. + +#### Slack Import (Preview) + +Preview of Slack import functionality supports the processing of an "Export" file from Slack containing account information and public channel archives from a Slack team. + +- In the feature preview, emails and usernames from Slack are used to create new Mattermost accounts, which users can activate by going to the Password Reset screen in Mattermost to set new credentials. +- Once logged in, users will have access to previous Slack messages shared in public channels, now imported to Mattermost. + +Limitations: + +- Slack does not export files or images your team has stored in Slack's database. Mattermost will provide links to the location of your assets in Slack's web UI. +- Slack does not export any content from private groups or direct messages that your team has stored in Slack's database. +- The Preview release of Slack Import does not offer pre-checks or roll-back and will not import Slack accounts with username or email address collisions with existing Mattermost accounts. Also, Slack channel names with underscores will not import. Also, mentions do not yet resolve as Mattermost usernames (still show Slack ID). These issues are being addressed in [Mattermost v0.8.0 Migration Support](https://mattermost.atlassian.net/browse/PLT-22?filter=10002). + +### New Features + +GitLab Mattermost + +- Ability to create teams using GitLab SSO (previously GitLab SSO only supported account creation and sign-in) +- Ability to restrict team creation to GitLab SSO and/or users with email verified from a specific list of domains. + +File and Image Sharing + +- New drag-and-drop file sharing to messages and comments +- Ability to paste images from clipboard to messages and comments + +Messaging, Comments and Notifications + +- Send messages faster with from optimistic posting and retry on failure + +Documentation + +- New style guidelines for Go, React and Javascript + +### Improvements + +Messaging, Comments and Notifications + +- Performance improvements to channel rendering +- Added "Unread posts" in left hand sidebar when notification indicator is off-screen + +Documentation + +- Install documentation improved based on early adopter feedback + +### Bug Fixes + +- Fixed multiple issues with GitLab SSO, installation and on-boarding +- Fixed multiple IE 10 issues +- Fixed broken link in verify email function +- Fixed public links not working on mobile + +### Contributors + +Many thanks to our external contributors. In no particular order: + +- [asubset](https://github.com/asubset) +- [felixbuenemann](https://github.com/felixbuenemann) +- [CtrlZvi](https://github.com/CtrlZvi) +- [BastienDurel](https://github.com/BastienDurel) +- [manusajith](https://github.com/manusajith) +- [doosp](https://github.com/doosp) +- [zackify](https://github.com/zackify) +- [willstacey](https://github.com/willstacey) + +Special thanks to the GitLab Mattermost early adopter community who influenced this release, and who play a pivotal role in bringing Mattermost to over 100,000 organizations using GitLab today. In no particular order: + +- [cifvts](http://forum.mattermost.org/users/cifvts/activity) +- [Chryb](https://gitlab.com/u/Chryb) +- [cookacounty](https://gitlab.com/u/cookacounty) +- [bweston92](https://gitlab.com/u/bweston92) +- [mablae](https://gitlab.com/u/mablae) +- [picharmer](https://gitlab.com/u/picharmer) +- [cmtonkinson](https://gitlab.com/u/cmtonkinson) +- [cmthomps](https://gitlab.com/u/cmthomps) +- [m.gamperl](https://gitlab.com/u/m.gamperl) +- [StanMarsh](https://gitlab.com/u/StanMarsh) +- [alx1](https://gitlab.com/u/alx1) +- [jeanmarc-leroux](https://gitlab.com/u/jeanmarc-leroux) +- [dnoe](https://gitlab.com/u/dnoe) +- [dblessing](https://gitlab.com/u/dblessing) +- [mechanicjay](https://gitlab.com/u/mechanicjay) +- [larsemil](https://gitlab.com/u/larsemil) +- [vga](https://gitlab.com/u/vga) +- [stanhu](https://gitlab.com/u/stanhu) +- [kohenkatz](https://gitlab.com/u/kohenkatz) +- [RavenB1](https://gitlab.com/u/RavenB1) +- [booksprint](http://forum.mattermost.org/users/booksprint/activity) +- [scottcorscadden](http://forum.mattermost.org/users/scottcorscadden/activity) +- [sskmani](http://forum.mattermost.org/users/sskmani/activity) +- [gosure](http://forum.mattermost.org/users/gosure/activity) +- [jigarshah](http://forum.mattermost.org/users/jigarshah/activity) + +Extra special thanks to GitLab community leaders for successful release of GitLab Mattermost Alpha: + +- [marin](https://gitlab.com/u/marin) +- [sytse](https://gitlab.com/u/sytse) + + +## Release v0.6.0 (Alpha) + +Released 2015-08-07 + +### Release Highlights + +- Simplified on-prem install +- Support for GitLab Mattermost (GitLab SSO, Postgres support, IE 10+ support) + +### Compatibility + +*Note: While use of Mattermost Preview (v0.5.0) and Mattermost Alpha (v0.6.0) in production is not recommended, we document compatibility considerations for a small number of organizations running Mattermost in production, supported directly by Mattermost product team.* + +- Switched Team URLs from team.domain.com to domain.com/team + +### New Features + +GitLab Mattermost + +- OAuth2 support for GitLab Single-Sign-On +- PostgreSQL support for GitLab Mattermost users +- Support for Internet Explorer 10+ for GitLab Mattermost users + +File and Image Sharing + +- New thumbnails and formatting for files and images + +Messaging, Comments and Notifications + +- Users now see posts they sent highlighted in a different color +- Mentions can now also trigger on user-defined words + +Security and Administration + +- Enable users to view and log out of active sessions +- Team Admin can now delete posts from any user + +On-boarding + +- “Off-Topic” now available as default channel, in addition to “Town Square” + +### Improvements + +Installation + +- New "ByPassEmail" setting enables Mattermost to operate without having to set up email +- New option to use local storage instead of S3 +- Removed use of Redis to simplify on-premise installation + +On-boarding + +- Team setup wizard updated with usability improvements + +Documentation + +- Install documentation improved based on early adopter feedback + +### Contributors + +Many thanks to our external contributors. In no particular order: + +- [ralder](https://github.com/ralder) +- [jedisct1](https://github.com/jedisct1) +- [faebser](https://github.com/faebser) +- [firstrow](https://github.com/firstrow) +- [haikoschol](https://github.com/haikoschol) +- [adamenger](https://github.com/adamenger) + +## Release v0.5.0 (Preview) + +Released 2015-06-24 + +### Release Highlights + +- First release of Mattermost as a team communication service for sharing messagse and files across PCs and phones, with archiving and instant search. + +### New Features + +Messaging and File Sharing + +- Send messages, comments, files and images across public, private and 1-1 channels +- Personalize notifications for unreads and mentions by channel +- Use #hashtags to tag and find messages, discussions and files + +Archiving and Search + +- Search public and private channels for historical messages and comments +- View recent mentions of your name, username, nickname, and custom search terms + +Anywhere Access + +- Use Mattermost from web-enabled PCs and phones +- Define team-specific branding and color themes across your devices diff --git a/LICENSE.txt b/LICENSE.txt index aba905e79..f7e182eac 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -7,7 +7,7 @@ Mattermost server is made available under two separate licensing options: - Free Software Foundation’s GNU AGPL v.3.0, subject to the exceptions outlined in this policy; or - Commercial licenses available from SpinPunch, Inc. by contacting commercial@mattermost.com -Admin Tools and Configuration Files (model/, web/static/, web/templates/, web/react/utils/, api/templates/ and all +Admin Tools and Configuration Files (api/templates/, config/, model/, web/react/utils/, web/static/, web/templates/ and all subdirectories thereof) are made available under: - Apache License v2.0 @@ -60,6 +60,6 @@ There are multiple ways to install Mattermost depending on your needs. Prior to production installation, please review [Mattermost system requirements](doc/install/requirements.md). -- [GitLab Mattermost Production Installation](https://about.gitlab.com/downloads/) - Install Mattermost for production environments bundled with GitLab, a leading open source Git repository, using an omnibus package for Ubuntu 12.04, Ubuntu 14.04, Debian 7, Debian 8, and CentOS 6 (and RedHat/Oracle/Scientific Linux 6), CentOS 7 (and RedHat/Oracle/Scientific Linux 7). +- [GitLab Mattermost Production Installation](https://gitlab.com/gitlab-org/gitlab-mattermost) - Install Mattermost for production environments bundled with GitLab, a leading open source Git repository, using an omnibus package for Ubuntu 12.04, Ubuntu 14.04, Debian 7, Debian 8, and CentOS 6 (and RedHat/Oracle/Scientific Linux 6), CentOS 7 (and RedHat/Oracle/Scientific Linux 7). For technical questions and answers, please visit the [Mattermost forum](http://forum.mattermost.org). diff --git a/doc/README.md b/doc/README.md index 4926ba2f9..36d16b744 100644 --- a/doc/README.md +++ b/doc/README.md @@ -1,5 +1,9 @@ # Mattermost Documentation +## General Information + +- [Mattermost Release Numbering Scheme](install/release-numbering.md) + ## Administrator Documentation ### Installation @@ -7,6 +11,7 @@ - [Software and Hardware Requirements](install/requirements.md) - [Local Machine Setup ](install/single-container-install.md) - [AWS Elastic Beanstalk Setup](install/aws-ebs-setup.md) +- [Developer Machine Setup](doc/install/dev-setup.md) ### Configuration @@ -15,4 +20,5 @@ ## Developer Documentation +- [Developer Machine Setup](doc/install/dev-setup.md) - [Mattermost Style Guide](developer/style-guide.md) diff --git a/doc/config/smtp-email-setup.md b/doc/config/smtp-email-setup.md index b90d78919..86e2bb20e 100644 --- a/doc/config/smtp-email-setup.md +++ b/doc/config/smtp-email-setup.md @@ -1,37 +1,40 @@ ## SMTP Email Setup -The following instructions maybe used when SMTP email is not setup as part of the installation process. +In some product evaluation setups email is intentionally bypassed using a `ByPassEmail=true` option. This option allows account creation and system operation without having to set up an email service (e.g. no email verification is required for account creation). This also means neither email notifications nor password reset by email are available. -1. Setup an email sending service. If you already have credentials for a SMTP server you can skip this step. +To enable email, turn this option off by setting `ByPassEmail=false` and configuring an SMTP email service as follows: + +1. **Set up an SMTP email sending service.** (If you already have credentials for a SMTP server you can skip this step.) 1. [Setup Amazon Simple Email Service](https://console.aws.amazon.com/ses) 2. From the `SMTP Settings` menu click `Create My SMTP Credentials` 3. Copy the `Server Name`, `Port`, `SMTP Username`, and `SMTP Password` 4. From the `Domains` menu setup and verify a new domain. It it also a good practice to enable `Generate DKIM Settings` for this domain. 5. Choose an email address like `feedback@example.com` for Mattermost to send emails from. 6. Test sending an email from `feedback@example.com` by clicking the `Send a Test Email` button and verify everything appears to be working correctly. -2. Modify the Mattermost configuration file config.json or config_docker.json with the SMTP information. +2. **Modify the Mattermost configuration file config.json or config_docker.json with the SMTP information.** 1. If you're running Mattermost on Amazon Beanstalk you can shell into the instance with the following commands 2. `ssh ec2-user@[domain for the docker instance]` 3. `sudo gpasswd -a ec2-user docker` 4. Retrieve the name of the container with `sudo docker ps` 5. `sudo docker exec -ti container_name /bin/bash` -3. Edit the config file `vi /config_docker.json` with the settings you captured from the step above. See an example below and notice `ByPassEmail` has been set to `false` -``` bash -"EmailSettings": { - "ByPassEmail" : false, - "SMTPUsername": "AKIADTOVBGERKLCBV", - "SMTPPassword": "jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY", - "SMTPServer": "email-smtp.us-east-1.amazonaws.com:465", - "UseTLS": true, - "FeedbackEmail": "feedback@example.com", - "FeedbackName": "Feedback", - "ApplePushServer": "", - "ApplePushCertPublic": "", - "ApplePushCertPrivate": "" -} -``` -4. Restart Mattermost +3. **Edit the config file `vi /config_docker.json` with the settings you captured from the step above.** + 1. See an example below and notice `ByPassEmail` has been set to `false` + ``` bash + "EmailSettings": { + "ByPassEmail" : false, + "SMTPUsername": "AKIADTOVBGERKLCBV", + "SMTPPassword": "jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY", + "SMTPServer": "email-smtp.us-east-1.amazonaws.com:465", + "UseTLS": true, + "FeedbackEmail": "feedback@example.com", + "FeedbackName": "Feedback", + "ApplePushServer": "", + "ApplePushCertPublic": "", + "ApplePushCertPrivate": "" + } + ``` +4. **Restart Mattermost** 1. Find the process id with `ps -A` and look for the process named `platform` 2. Kill the process `kill pid` 3. The service should restart automatically. Verify the Mattermost service is running with `ps -A` diff --git a/doc/install/aws-ebs-setup.md b/doc/install/aws-ebs-setup.md index 452cfcb4f..e186fa9c1 100644 --- a/doc/install/aws-ebs-setup.md +++ b/doc/install/aws-ebs-setup.md @@ -1,14 +1,14 @@ ## AWS Elastic Beanstalk Setup (Docker) -1. Create a new Elastic Beanstalk Docker application using the [Dockerrun.aws.zip](docker/0.6/Dockerrun.aws//Dockerrun.aws.zip) file provided. +1. Create a new Elastic Beanstalk Docker application using the [Dockerrun.aws.zip](/docker/0.7/Dockerrun.aws.zip) file provided. 1. From the AWS console select Elastic Beanstalk. 2. Select "Create New Application" from the top right. 3. Name the application and press next. 4. Select "Create a web server" environment. 5. If asked, select create an IAM role and instance profile and press next. 6. For predefined configuration select under Generic: Docker. For environment type select single instance. - 7. For application source, select upload your own and upload Dockerrun.aws.zip from [Dockerrun.aws.zip](docker/0.6/Dockerrun.aws//Dockerrun.aws.zip). Everything else may be left at default. + 7. For application source, select upload your own and upload Dockerrun.aws.zip from [Dockerrun.aws.zip](/docker/0.7/Dockerrun.aws.zip). Everything else may be left at default. 8. Select an environment name, this is how you will refer to your environment. Make sure the URL is available then press next. 9. The options on the additional resources page may be left at default unless you wish to change them. Press Next. 10. On the configuration details place. Select an instance type of t2.small or larger. diff --git a/doc/install/release-numbering.md b/doc/install/release-numbering.md new file mode 100644 index 000000000..71374f7ef --- /dev/null +++ b/doc/install/release-numbering.md @@ -0,0 +1,17 @@ +### Mattermost Release Numbering + +Mattermost numbers its stable releases based on the following format: + + `[Version Number].[Major Build Number].[Minor Build Number]` + +Version Number: + +- Indicates a major system release (e.g. 1.x.x, 2.x.x) + +Major Build Number: + +- Indicates significant new functionality, (e.g. 0.5.x, 0.6.x, 0.7.x) + +Minor Build Number: + +- Indicates bugfix/security releases (e.g. 1.2.5, 1.2.6) diff --git a/doc/install/single-container-install.md b/doc/install/single-container-install.md index 3e307ca74..772f3becf 100644 --- a/doc/install/single-container-install.md +++ b/doc/install/single-container-install.md @@ -1,10 +1,7 @@ -# Single Container Installation and Upgrade +# Local Machine Setup and Upgrade The following install instructions are for single-container installs of Mattermost using Docker for exploring product functionality and upgrading to newer versions. -Local Machine Setup (Docker) ------------------------------ - ### Mac OSX ### 1. Install Boot2Docker using instructions at: http://docs.docker.com/installation/mac/ @@ -89,7 +86,7 @@ There are a few configuration settings you might want to adjust when setting up The default single-container Docker instance for Mattermost is designed for product evaluation, and sets `ByPassEmail=true` so the product can run without enabling email, when doing so maybe difficult. -To see the product's full functionality, [enabling SMTP email is recommended](doc/config/smtp-email-setup.md). +To see the product's full functionality, [enabling SMTP email is recommended](/doc/config/smtp-email-setup.md). ## Upgrading Mattermost diff --git a/docker/0.7/Dockerfile b/docker/0.7/Dockerfile index 66aac0fa3..4a8623d33 100644 --- a/docker/0.7/Dockerfile +++ b/docker/0.7/Dockerfile @@ -34,7 +34,7 @@ VOLUME /var/lib/mysql WORKDIR /mattermost # Copy over files -ADD https://github.com/mattermost/platform/releases/download/v0.7.0-rc1/mattermost.tar.gz / +ADD https://github.com/mattermost/platform/releases/download/v0.7.0/mattermost.tar.gz / RUN tar -zxvf /mattermost.tar.gz --strip-components=1 && rm /mattermost.tar.gz ADD config_docker.json / ADD docker-entry.sh / diff --git a/web/react/components/textbox.jsx b/web/react/components/textbox.jsx index b4518fe80..ea8126bec 100644 --- a/web/react/components/textbox.jsx +++ b/web/react/components/textbox.jsx @@ -242,7 +242,7 @@ export default class Textbox extends React.Component { const e = React.findDOMNode(this.refs.message); const w = React.findDOMNode(this.refs.wrapper); - let prevHeight = $(e).height(); + const prevHeight = $(e).height(); const lht = parseInt($(e).css('lineHeight'), 10); const lines = e.scrollHeight / lht; @@ -260,7 +260,7 @@ export default class Textbox extends React.Component { $(w).css({height: 'auto'}).height(167); } - if (prevHeight !== $(e).height()) { + if (prevHeight !== $(e).height() && this.props.onHeightChange) { this.props.onHeightChange(); } } @@ -320,6 +320,6 @@ Textbox.propTypes = { messageText: React.PropTypes.string.isRequired, onUserInput: React.PropTypes.func.isRequired, onKeyPress: React.PropTypes.func.isRequired, - onHeightChange: React.PropTypes.func.isRequired, + onHeightChange: React.PropTypes.func, createMessage: React.PropTypes.string.isRequired }; diff --git a/web/react/components/user_settings.jsx b/web/react/components/user_settings.jsx index 282fb7681..2a607b3e0 100644 --- a/web/react/components/user_settings.jsx +++ b/web/react/components/user_settings.jsx @@ -40,6 +40,7 @@ export default class UserSettings extends React.Component { user={this.state.user} activeSection={this.props.activeSection} updateSection={this.props.updateSection} + updateTab={this.props.updateTab} /> </div> ); @@ -86,4 +87,4 @@ UserSettings.propTypes = { activeSection: React.PropTypes.string, updateSection: React.PropTypes.func, updateTab: React.PropTypes.func -};
\ No newline at end of file +}; diff --git a/web/react/components/user_settings_general.jsx b/web/react/components/user_settings_general.jsx index ead7ac1d5..f2127ce0c 100644 --- a/web/react/components/user_settings_general.jsx +++ b/web/react/components/user_settings_general.jsx @@ -267,6 +267,28 @@ export default class UserSettingsGeneralTab extends React.Component { </div> ); + function notifClick(e) { + e.preventDefault(); + this.updateSection(''); + this.props.updateTab('notifications'); + } + + const notifLink = ( + <a + href='#' + onClick={notifClick.bind(this)} + > + Notifications + </a> + ); + + const extraInfo = ( + <span> + By default, you will receive mention notifications when someone types your first name. + Go to {notifLink} settings to change this default. + </span> + ); + nameSection = ( <SettingItemMax title='Full Name' @@ -278,6 +300,7 @@ export default class UserSettingsGeneralTab extends React.Component { this.updateSection(''); e.preventDefault(); }.bind(this)} + extraInfo={extraInfo} /> ); } else { @@ -326,6 +349,13 @@ export default class UserSettingsGeneralTab extends React.Component { </div> ); + const extraInfo = ( + <span> + Use Nickname for a name you might be called that is different from your first name and user name. + This is most often used when two or more people have similar sounding names and usernames. + </span> + ); + nicknameSection = ( <SettingItemMax title='Nickname' @@ -337,6 +367,7 @@ export default class UserSettingsGeneralTab extends React.Component { this.updateSection(''); e.preventDefault(); }.bind(this)} + extraInfo={extraInfo} /> ); } else { @@ -375,6 +406,8 @@ export default class UserSettingsGeneralTab extends React.Component { </div> ); + const extraInfo = (<span>Pick something easy for teammates to recognize and recall.</span>); + usernameSection = ( <SettingItemMax title='Username' @@ -386,6 +419,7 @@ export default class UserSettingsGeneralTab extends React.Component { this.updateSection(''); e.preventDefault(); }.bind(this)} + extraInfo={extraInfo} /> ); } else { @@ -524,5 +558,6 @@ export default class UserSettingsGeneralTab extends React.Component { UserSettingsGeneralTab.propTypes = { user: React.PropTypes.object, updateSection: React.PropTypes.func, + updateTab: React.PropTypes.func, activeSection: React.PropTypes.string }; diff --git a/web/react/utils/utils.jsx b/web/react/utils/utils.jsx index ea42256aa..71cd1d344 100644 --- a/web/react/utils/utils.jsx +++ b/web/react/utils/utils.jsx @@ -498,7 +498,7 @@ export function textToJsx(textin, options) { // do both a non-case sensitive and case senstive check let mClass = ''; - if (('@' + name.toLowerCase()) !== -1 || implicitKeywords.indexOf('@' + name) !== -1) { + if (implicitKeywords.indexOf('@' + name.toLowerCase()) !== -1 || implicitKeywords.indexOf('@' + name) !== -1) { mClass = mentionClass; } diff --git a/web/sass-files/sass/partials/_responsive.scss b/web/sass-files/sass/partials/_responsive.scss index 682809f02..c56625b88 100644 --- a/web/sass-files/sass/partials/_responsive.scss +++ b/web/sass-files/sass/partials/_responsive.scss @@ -243,6 +243,23 @@ } } @media screen and (max-width: 768px) { + .file-details__container { + display: block; + .file-details__preview { + display: block; + width: 100%; + height: 150px; + border-right: none; + border-bottom: 1px solid #ddd; + img { + width: 64px; + height: 64px; + } + } + .file-details { + height: auto; + } + } .center-file-overlay { font-size: 1.3em; } @@ -405,23 +422,23 @@ margin-top: 0; } .remove-preview { - width: 50px; - height: 50px; - left: 50%; - top: 50%; + width: 28px; + height: 28px; + left: auto; + right: 0; + top: 0; background: #444; - margin: -25px 0 0 -25px; - @include border-radius(50px); + background: rgba(#000, 0.5); text-align: center; &:after { display: none; } i { - line-height: 50px; + line-height: 29px; top: auto; right: auto; position: relative; - font-size: 28px; + font-size: 16px; } } } |