diff --git a/changelog.md b/changelog.md index eb5e0512f..663b6752a 100644 --- a/changelog.md +++ b/changelog.md @@ -6,9 +6,10 @@ - Added a button to quickly share your brew to reddit :) - Disabled Partial Page Rendering unless your brew hits 75 pages or longer - The brew renderer will now try and use your first page to judge the page size of each of your brews. This allows you now to set landscape and other weird sizes and everthing should work fine :) -- UI on the user page improved slightly +- UI on the user page improved (thanks u/PalaNolho) - Fixed lists not breaking across columns (thanks u/tyson-nw) -- +- Added a table of contents snippet (thanks u/tullisar) +- Added a multicolumn snippet diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx index 174143e5e..7e1c432aa 100644 --- a/client/homebrew/brewRenderer/brewRenderer.jsx +++ b/client/homebrew/brewRenderer/brewRenderer.jsx @@ -16,6 +16,8 @@ const BrewRenderer = React.createClass({ }; }, getInitialState: function() { + const pages = this.props.text.split('\\page'); + return { viewablePageNumber: 0, height : 0, @@ -23,7 +25,8 @@ const BrewRenderer = React.createClass({ usePPR : true, - pages : [], + pages : pages, + usePPR : pages.length >= PPR_THRESHOLD, errors : [] }; diff --git a/client/homebrew/pages/sharePage/sharePage.jsx b/client/homebrew/pages/sharePage/sharePage.jsx index 6bf1e58e1..c15a8ecf6 100644 --- a/client/homebrew/pages/sharePage/sharePage.jsx +++ b/client/homebrew/pages/sharePage/sharePage.jsx @@ -5,6 +5,7 @@ const cx = require('classnames'); const Nav = require('naturalcrit/nav/nav.jsx'); const Navbar = require('../../navbar/navbar.jsx'); const PrintLink = require('../../navbar/print.navitem.jsx'); +const ReportIssue = require('../../navbar/issue.navitem.jsx'); //const RecentlyViewed = require('../../navbar/recent.navitem.jsx').viewed; const Account = require('../../navbar/account.navitem.jsx'); @@ -34,10 +35,12 @@ const SharePage = React.createClass({ }, handleControlKeys : function(e){ if(!(e.ctrlKey || e.metaKey)) return; - e.stopPropagation(); - e.preventDefault(); const P_KEY = 80; - if(e.keyCode == P_KEY) window.open(`/print/${this.props.brew.shareId}?dialog=true`, '_blank').focus(); + if(e.keyCode == P_KEY){ + window.open(`/print/${this.props.brew.shareId}?dialog=true`, '_blank').focus(); + e.stopPropagation(); + e.preventDefault(); + } }, render : function(){ @@ -48,6 +51,7 @@ const SharePage = React.createClass({ + {/**/} diff --git a/client/homebrew/pages/userPage/brewItem/brewItem.jsx b/client/homebrew/pages/userPage/brewItem/brewItem.jsx index c74a736be..fe694b2e1 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/userPage/brewItem/brewItem.jsx @@ -15,23 +15,39 @@ const BrewItem = React.createClass({ }; }, + renderEditLink: function(){ + if(!this.props.brew.editId) return; + + return + + + }, + render : function(){ const brew = this.props.brew; - return
-

{brew.title}

-

{brew.description}

+ return
+

{brew.title}

+

{brew.description}


-
    -
  • Authors: {brew.authors.join(', ')}
  • -
  • - Last updated: - {moment(brew.updatedAt).fromNow()} -
  • -
  • Views: {brew.views}
  • -
- Share link - {(!!brew.editId ? Edit link : null)} +
+ + {brew.authors.join(', ')} + + + {brew.views} + + + {moment(brew.updatedAt).fromNow()} + +
+ +
+ + + + {this.renderEditLink()} +
} }); diff --git a/client/homebrew/pages/userPage/brewItem/brewItem.less b/client/homebrew/pages/userPage/brewItem/brewItem.less index b0d307f48..3dcbd5090 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.less +++ b/client/homebrew/pages/userPage/brewItem/brewItem.less @@ -1,21 +1,60 @@ .brewItem{ + position : relative; display : inline-block; vertical-align : top; box-sizing : border-box; - width : 30%; + box-sizing : border-box; + overflow : hidden; + width : 48%; + margin-right : 15px; margin-bottom : 15px; + padding : 5px 15px 5px 8px; padding-right : 15px; + border : 1px solid #c9ad6a; + border-radius : 5px; -webkit-column-break-inside : avoid; page-break-inside : avoid; break-inside : avoid; - p.description{ - //overflow : hidden; - //width : 90%; - //text-overflow : ellipsis; - white-space : nowrap; + h4{ + margin-bottom : 5px; + font-size : 2.2em; } - a{ - margin-right : 10px; + .info{ + font-family : ScalySans; + font-size : 1.2em; + &>span{ + margin-right : 15px; + } + } + &:hover{ + .links{ + opacity : 1; + } + } + &:nth-child(2n + 1){ + margin-right : 0px; + } + .links{ + .animate(opacity); + position : absolute; + top : 0px; + right : 0px; + height : 100%; + width : 2em; + opacity : 0; + background-color : fade(black, 60%); + text-align : center; + a{ + .animate(opacity); + display : block; + margin : 8px 0px; + opacity : 0.6; + font-size : 1.3em; + color : white; + &:hover{ + opacity : 1; + } + } } } \ No newline at end of file diff --git a/client/homebrew/pages/userPage/userPage.jsx b/client/homebrew/pages/userPage/userPage.jsx index 4756da7f7..6d583e90a 100644 --- a/client/homebrew/pages/userPage/userPage.jsx +++ b/client/homebrew/pages/userPage/userPage.jsx @@ -26,9 +26,11 @@ const UserPage = React.createClass({ }, renderBrews : function(brews){ - if(!brews || !brews.length) return
No Brews.
+ if(!brews || !brews.length) return
No Brews.
; - return _.map(brews, (brew, idx) => { + const sortedBrews = _.sortBy(brews, (brew)=>{ return brew.title; }); + + return _.map(sortedBrews, (brew, idx) => { return }); }, diff --git a/client/homebrew/pages/userPage/userPage.less b/client/homebrew/pages/userPage/userPage.less index 3bab937ee..dcd0d6360 100644 --- a/client/homebrew/pages/userPage/userPage.less +++ b/client/homebrew/pages/userPage/userPage.less @@ -27,6 +27,7 @@ font-size : 1.3em; font-style : italic; } + } } } \ No newline at end of file diff --git a/package.json b/package.json index 4675d0dd7..e67844dfa 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "homebrewery", "description": "Create authentic looking D&D homebrews using only markdown", - "version": "2.5.2", + "version": "2.6.0", "scripts": { "build": "node_modules/.bin/gulp prod", "watch": "node_modules/.bin/gulp",