diff --git a/frontend/src/services/auth.js b/frontend/src/services/auth.js index 3d00fb42e4..ea77289b05 100644 --- a/frontend/src/services/auth.js +++ b/frontend/src/services/auth.js @@ -14,7 +14,7 @@ export class Auth { } syncSession() { - let state = this._store.getState().auth; + const state = this._store.getState().auth; if (state.isAuthenticated) { this._local.set('auth', { isAuthenticated: true, @@ -28,12 +28,17 @@ export class Auth { } watchState() { + const state = this._store.getState().auth; this._local.watch('auth', (newState) => { if (newState.isAuthenticated) { this._store.dispatch(signIn({ username: newState.username })); - } else { + } else if (state.isAuthenticated) { + // check if we are authenticated in this tab + // because some browser plugins prune local store + // aggressively, forcing erroneous message to display here + // tracking bug #955 this._store.dispatch(signOut()); } }); diff --git a/misago/static/misago/js/misago.js b/misago/static/misago/js/misago.js index aa5f14be5a..b606c60dc8 100644 --- a/misago/static/misago/js/misago.js +++ b/misago/static/misago/js/misago.js @@ -1,25 +1,25 @@ -!function e(t,a,n){function r(l,s){if(!a[l]){if(!t[l]){var i="function"==typeof require&&require;if(!s&&i)return i(l,!0);if(o)return o(l,!0);var u=new Error("Cannot find module '"+l+"'");throw u.code="MODULE_NOT_FOUND",u}var c=a[l]={exports:{}};t[l][0].call(c.exports,function(e){var a=t[l][1][e];return r(a?a:e)},c,c.exports,e,t,a,n)}return a[l].exports}for(var o="function"==typeof require&&require,l=0;l=t&&(a=e)}),a}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.size||100,a=e.size2x||t;return s["default"].createElement("img",{alt:"",className:e.className||"user-avatar",src:r(e.user,t),srcSet:r(e.user,a),width:t,height:t})},a.getSrc=r,a.resolveAvatarForSize=o;var l=e("react"),s=n(l),i=e(".."),u=n(i)},{"..":291,react:"react"}],4:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;an.height){var r=n.width*a,o=(r-e.getAvatarSize())/-2;t.cropit("offset",{x:o,y:0})}else if(n.widththis.props.options.upload.limit)return interpolate(gettext("Selected file is too big. (%(filesize)s)"),{filesize:(0,g["default"])(e.size)},!0);var t=gettext("Selected file type is not supported.");if(this.props.options.upload.allowed_mime_types.indexOf(e.type)===-1)return t;var a=!1,n=e.name.toLowerCase();return this.props.options.upload.allowed_extensions.map(function(e){n.substr(e.length*-1)===e&&(a=!0)}),!a&&t}},{key:"getUploadRequirements",value:function(e){var t=e.allowed_extensions.map(function(e){return e.substr(1)});return interpolate(gettext("%(files)s files smaller than %(limit)s"),{files:t.join(", "),limit:(0,g["default"])(e.limit)},!0)}},{key:"getUploadButton",value:function(){return u["default"].createElement("div",{className:"modal-body modal-avatar-upload"},u["default"].createElement(p["default"],{className:"btn-pick-file",onClick:this.pickFile},u["default"].createElement("div",{className:"material-icon"},"input"),gettext("Select file")),u["default"].createElement("p",{className:"text-muted"},this.getUploadRequirements(this.props.options.upload)))}},{key:"getUploadProgressLabel",value:function(){return interpolate(gettext("%(progress)s % complete"),{progress:this.state.progress},!0)}},{key:"getUploadProgress",value:function(){return u["default"].createElement("div",{className:"modal-body modal-avatar-upload"},u["default"].createElement("div",{className:"upload-progress"},u["default"].createElement("img",{src:this.state.preview}),u["default"].createElement("div",{className:"progress"},u["default"].createElement("div",{className:"progress-bar",role:"progressbar","aria-valuenow":"{this.state.progress}","aria-valuemin":"0","aria-valuemax":"100",style:{width:this.state.progress+"%"}},u["default"].createElement("span",{className:"sr-only"},this.getUploadProgressLabel())))))}},{key:"renderUpload",value:function(){return u["default"].createElement("div",null,u["default"].createElement("input",{type:"file",id:"avatar-hidden-upload",className:"hidden-file-upload",onChange:this.uploadFile}),this.state.image?this.getUploadProgress():this.getUploadButton(),u["default"].createElement("div",{className:"modal-footer"},u["default"].createElement("div",{className:"col-md-6 col-md-offset-3"},u["default"].createElement(p["default"],{onClick:this.props.showIndex,disabled:!!this.state.image,className:"btn-default btn-block"},gettext("Cancel")))))}},{key:"renderCrop",value:function(){return u["default"].createElement(d["default"],{options:this.state.options,user:this.props.user,upload:this.state.uploaded,dataUrl:this.state.preview,onComplete:this.props.onComplete,showError:this.props.showError,showIndex:this.props.showIndex})}},{key:"render",value:function(){return this.state.uploaded?this.renderCrop():this.renderUpload()}}]),t}(u["default"].Component);a["default"]=_},{"../../services/ajax":352,"../../services/snackbar":363,"../../utils/file-size":371,"../button":5,"./crop":19,react:"react"}],24:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a0?"!["+n+"]("+a+")":"!("+a+")")}Object.defineProperty(a,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t0?"["+n+"]("+a+")":a)}Object.defineProperty(a,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t%(relative)s',x='%(user)s',j='%(user)s',P=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u%(name)s",p=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u%(name)s"},{"../../../../utils/escape-html":370,react:"react"}],44:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return d["default"].get("user").acl.max_attachment_size?o["default"].createElement("div",{className:"editor-attachments"},o["default"].createElement(s["default"],e),o["default"].createElement(u["default"],e)):null};var r=e("react"),o=n(r),l=e("./list"),s=n(l),i=e("./uploader"),u=n(i),c=e("../../.."),d=n(c)},{"../../..":291,"./list":45,"./uploader":47,react:"react"}],45:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t${username}',insertTpl:"@${username}",searchKey:"username",callbacks:{remoteFilter:function(e,t){$.getJSON(B["default"].get("MENTION_API"),{q:e},t)}}}),$("#editor-textarea").on("inserted.atwho",function(t,a,n){e.props.onChange(t)})}},{key:"render",value:function(){return d["default"].createElement("div",{className:"editor-border"},d["default"].createElement("textarea",{className:"form-control",value:this.props.value,disabled:this.props.loading,id:"editor-textarea",onChange:this.props.onChange,rows:"9"}),d["default"].createElement("div",{className:"editor-footer"},d["default"].createElement("div",{className:"buttons-list pull-left"},d["default"].createElement(N["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,replaceSelection:this.replaceSelection}),d["default"].createElement(h["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,replaceSelection:this.replaceSelection}),d["default"].createElement(O["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,replaceSelection:this.replaceSelection}),d["default"].createElement(b["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,replaceSelection:this.replaceSelection}),d["default"].createElement(E["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,replaceSelection:this.replaceSelection}),d["default"].createElement(g["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,replaceSelection:this.replaceSelection}),d["default"].createElement(j["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,replaceSelection:this.replaceSelection}),d["default"].createElement(p["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,replaceSelection:this.replaceSelection}),d["default"].createElement(S["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading})),d["default"].createElement(D["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,onClick:this.onPreviewClick,type:"button"},gettext("Preview")),d["default"].createElement(D["default"],{className:"btn-primary btn-sm pull-right",loading:this.props.loading},this.props.submitLabel||gettext("Post")),d["default"].createElement("button",{className:"btn btn-default btn-sm pull-right",disabled:this.props.loading,onClick:this.props.onCancel,type:"button"},gettext("Cancel")),d["default"].createElement("div",{className:"clearfix visible-xs-block"}),d["default"].createElement(i,{canProtect:this.props.canProtect,disabled:this.props.loading,onProtect:this.props.onProtect,onUnprotect:this.props.onUnprotect,protect:this.props.protect})),d["default"].createElement(C["default"],{attachments:this.props.attachments,onAttachmentsChange:this.props.onAttachmentsChange,placeholder:this.props.placeholder,replaceSelection:this.replaceSelection}))}}]),t}(d["default"].Component);a["default"]=Y},{"../..":291,"../../services/ajax":352,"../../services/modal":358,"../../services/snackbar":363,"../button":5,"./actions/code":32,"./actions/emphasis":33,"./actions/hr":34,"./actions/image":35,"./actions/link":36,"./actions/quote":37,"./actions/striketrough":38,"./actions/strong":39,"./attachments":44,"./attachments/upload-button/":46,"./markup-preview":49,"./textutils":50,react:"react"}],49:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return o["default"].createElement("div",{className:"modal-dialog",role:"document"},o["default"].createElement("div",{className:"modal-content"},o["default"].createElement("div",{className:"modal-header"},o["default"].createElement("button",{"aria-label":gettext("Close"),className:"close","data-dismiss":"modal",type:"button"},o["default"].createElement("span",{"aria-hidden":"true"},"×")),o["default"].createElement("h4",{className:"modal-title"},gettext("Preview message"))),o["default"].createElement("div",{className:"modal-body markup-preview"},o["default"].createElement(s["default"],{markup:e.markup}))))};var r=e("react"),o=n(r),l=e("../misago-markup"),s=n(l)},{"../misago-markup":56,react:"react"}],50:[function(e,t,a){"use strict";function n(){return document.getElementById(d)}function r(){return document.getElementById(d).value}function o(e,t){return{start:e,end:t}}function l(){var e=n();if(document.selection){e.focus();var t=document.selection.createRange(),a=t.text.length;return t.moveStart("character",-e.value.length),o(t.text.length-a,t.text.length)}if(e.selectionStart||"0"==e.selectionStart)return o(e.selectionStart,e.selectionEnd)}function s(){var e=l();return $.trim(r().substring(e.start,e.end))}function i(e){var t=n();if(t.setSelectionRange)t.focus(),t.setSelectionRange(e.start,e.end);else if(t.createTextRange){var a=t.createTextRange();a.collapse(!0),a.moveStart("character",e.start),a.moveEnd("character",e.end),a.select()}}function u(e,t){var a=n(),r=a.value,l=r.substring(0,e.start);return a.value=r.substring(0,e.start)+t+r.substring(e.end),i(o(l.length+t.length,l.length+t.length)),a.value}function c(e){return u(l(),e)}Object.defineProperty(a,"__esModule",{value:!0}),a.getTextarea=n,a.getValue=r,a.getSelectionRange=o,a.getSelection=l,a.getSelectionText=s,a.setSelection=i,a._replace=u,a.replace=c;var d=a.textareaId="editor-textarea"},{}],51:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a0});return t.map(function(e){return Object.assign({},e,{count:e.results.count,results:e.results.results.slice(0,n)})})};var n=5},{}],60:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0});a.HEADER="HEADER",a.RESULT="RESULT",a.FOOTER="FOOTER"},{}],61:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.children,a=e.onChange,n=e.query;return o["default"].createElement("ul",{className:"dropdown-menu dropdown-search-results",role:"menu"},o["default"].createElement("li",{className:"form-group"},o["default"].createElement(s["default"],{value:n,onChange:a})),t)};var r=e("react"),o=n(r),l=e("./input"),s=n(l)},{"./input":65,react:"react"}],62:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(){return o["default"].createElement("li",{className:"dropdown-search-message"},gettext("Search returned no results."))};var r=e("react"),o=n(r)},{react:"react"}],63:[function(e,t,a){"use strict";function n(e,t){for(var a=e.length,n=0;n0){var t=ngettext("You can change your username %(changes_left)s more time.","You can change your username %(changes_left)s more times.",this.props.options.changes_left);e.push(interpolate(t,{changes_left:this.props.options.changes_left},!0))}if(this.props.user.acl.name_changes_expire>0){var a=ngettext("Used changes become available again after %(name_changes_expire)s day.","Used changes become available again after %(name_changes_expire)s days.",this.props.user.acl.name_changes_expire);e.push(interpolate(a,{name_changes_expire:this.props.user.acl.name_changes_expire},!0))}return e.length?e.join(" "):null}},{key:"clean",value:function(){var e=this.validate();return e.username?(_["default"].error(e.username[0]),!1):this.state.username.trim()!==this.props.user.username||(_["default"].info(gettext("Your new username is same as current one.")),!1)}},{key:"send",value:function(){return y["default"].post(this.props.user.api.username,{username:this.state.username})}},{key:"handleSuccess",value:function(e){this.setState({username:""}),this.props.complete(e.username,e.slug,e.options)}},{key:"handleError",value:function(e){_["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"panel panel-default panel-form"},c["default"].createElement("div",{className:"panel-heading"},c["default"].createElement("h3",{className:"panel-title"},gettext("Change username"))),c["default"].createElement("div",{className:"panel-body"},c["default"].createElement(v["default"],{label:gettext("New username"),"for":"id_username",helpText:this.getHelpText()},c["default"].createElement("input",{type:"text",id:"id_username",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("username"),value:this.state.username}))),c["default"].createElement("div",{className:"panel-footer"},c["default"].createElement(f["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Change username")))))}}]),t}(m["default"]);a["default"]=O},{"../../../services/ajax":352,"../../../services/snackbar":363,"../../../utils/validators":380,"../../button":5,"../../form":52,"../../form-group":51,react:"react"}],77:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a