Merge branch 'master' into glitch-soc/merge-upstream
This commit is contained in:
		
						commit
						cf4fd8bcfe
					
				
					 6 changed files with 21 additions and 1 deletions
				
			
		| 
						 | 
					@ -60,6 +60,7 @@ export const COMPOSE_POLL_SETTINGS_CHANGE = 'COMPOSE_POLL_SETTINGS_CHANGE';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const messages = defineMessages({
 | 
					const messages = defineMessages({
 | 
				
			||||||
  uploadErrorLimit: { id: 'upload_error.limit', defaultMessage: 'File upload limit exceeded.' },
 | 
					  uploadErrorLimit: { id: 'upload_error.limit', defaultMessage: 'File upload limit exceeded.' },
 | 
				
			||||||
 | 
					  uploadErrorPoll:  { id: 'upload_error.poll', defaultMessage: 'File upload not allowed with polls.' },
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export function changeCompose(text) {
 | 
					export function changeCompose(text) {
 | 
				
			||||||
| 
						 | 
					@ -207,6 +208,12 @@ export function uploadCompose(files) {
 | 
				
			||||||
      dispatch(showAlert(undefined, messages.uploadErrorLimit));
 | 
					      dispatch(showAlert(undefined, messages.uploadErrorLimit));
 | 
				
			||||||
      return;
 | 
					      return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (getState().getIn(['compose', 'poll'])) {
 | 
				
			||||||
 | 
					      dispatch(showAlert(undefined, messages.uploadErrorPoll));
 | 
				
			||||||
 | 
					      return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    dispatch(uploadComposeRequest());
 | 
					    dispatch(uploadComposeRequest());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (const [i, f] of Array.from(files).entries()) {
 | 
					    for (const [i, f] of Array.from(files).entries()) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -86,6 +86,7 @@ export default class IconButton extends React.PureComponent {
 | 
				
			||||||
          onClick={this.handleClick}
 | 
					          onClick={this.handleClick}
 | 
				
			||||||
          style={style}
 | 
					          style={style}
 | 
				
			||||||
          tabIndex={tabIndex}
 | 
					          tabIndex={tabIndex}
 | 
				
			||||||
 | 
					          disabled={disabled}
 | 
				
			||||||
        >
 | 
					        >
 | 
				
			||||||
          <Icon id={icon} fixedWidth aria-hidden='true' />
 | 
					          <Icon id={icon} fixedWidth aria-hidden='true' />
 | 
				
			||||||
        </button>
 | 
					        </button>
 | 
				
			||||||
| 
						 | 
					@ -104,6 +105,7 @@ export default class IconButton extends React.PureComponent {
 | 
				
			||||||
            onClick={this.handleClick}
 | 
					            onClick={this.handleClick}
 | 
				
			||||||
            style={style}
 | 
					            style={style}
 | 
				
			||||||
            tabIndex={tabIndex}
 | 
					            tabIndex={tabIndex}
 | 
				
			||||||
 | 
					            disabled={disabled}
 | 
				
			||||||
          >
 | 
					          >
 | 
				
			||||||
            <Icon id={icon} style={{ transform: `rotate(${rotate}deg)` }} fixedWidth aria-hidden='true' />
 | 
					            <Icon id={icon} style={{ transform: `rotate(${rotate}deg)` }} fixedWidth aria-hidden='true' />
 | 
				
			||||||
          </button>
 | 
					          </button>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,6 +15,7 @@
 | 
				
			||||||
#  last_fetched_at :datetime
 | 
					#  last_fetched_at :datetime
 | 
				
			||||||
#  created_at      :datetime         not null
 | 
					#  created_at      :datetime         not null
 | 
				
			||||||
#  updated_at      :datetime         not null
 | 
					#  updated_at      :datetime         not null
 | 
				
			||||||
 | 
					#  lock_version    :integer          default(0), not null
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Poll < ApplicationRecord
 | 
					class Poll < ApplicationRecord
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -32,5 +32,8 @@ class PollVote < ApplicationRecord
 | 
				
			||||||
  def increment_counter_cache
 | 
					  def increment_counter_cache
 | 
				
			||||||
    poll.cached_tallies[choice] = (poll.cached_tallies[choice] || 0) + 1
 | 
					    poll.cached_tallies[choice] = (poll.cached_tallies[choice] || 0) + 1
 | 
				
			||||||
    poll.save
 | 
					    poll.save
 | 
				
			||||||
 | 
					  rescue ActiveRecord::StaleObjectError
 | 
				
			||||||
 | 
					    poll.reload
 | 
				
			||||||
 | 
					    retry
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										6
									
								
								db/migrate/20190306145741_add_lock_version_to_polls.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								db/migrate/20190306145741_add_lock_version_to_polls.rb
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,6 @@
 | 
				
			||||||
 | 
					class AddLockVersionToPolls < ActiveRecord::Migration[5.2]
 | 
				
			||||||
 | 
					  def change
 | 
				
			||||||
 | 
					    add_column :polls, :lock_version, :integer, null: false, default: 0
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,7 +10,7 @@
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# It's strongly recommended that you check this file into your version control system.
 | 
					# It's strongly recommended that you check this file into your version control system.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ActiveRecord::Schema.define(version: 2019_03_04_152020) do
 | 
					ActiveRecord::Schema.define(version: 2019_03_06_145741) do
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # These are extensions that must be enabled in order to support this database
 | 
					  # These are extensions that must be enabled in order to support this database
 | 
				
			||||||
  enable_extension "plpgsql"
 | 
					  enable_extension "plpgsql"
 | 
				
			||||||
| 
						 | 
					@ -475,6 +475,7 @@ ActiveRecord::Schema.define(version: 2019_03_04_152020) do
 | 
				
			||||||
    t.datetime "last_fetched_at"
 | 
					    t.datetime "last_fetched_at"
 | 
				
			||||||
    t.datetime "created_at", null: false
 | 
					    t.datetime "created_at", null: false
 | 
				
			||||||
    t.datetime "updated_at", null: false
 | 
					    t.datetime "updated_at", null: false
 | 
				
			||||||
 | 
					    t.integer "lock_version", default: 0, null: false
 | 
				
			||||||
    t.index ["account_id"], name: "index_polls_on_account_id"
 | 
					    t.index ["account_id"], name: "index_polls_on_account_id"
 | 
				
			||||||
    t.index ["status_id"], name: "index_polls_on_status_id"
 | 
					    t.index ["status_id"], name: "index_polls_on_status_id"
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue