diff --git a/boards/forms/__init__.py b/boards/forms/__init__.py --- a/boards/forms/__init__.py +++ b/boards/forms/__init__.py @@ -83,6 +83,10 @@ MIMETYPE_EXTENSIONS = { 'image/bmp': 'bmp', } +DOWN_MODE_DOWNLOAD = 'DOWNLOAD' +DOWN_MODE_URL = 'URL' +DOWN_MODE_TRY = 'TRY' + logger = logging.getLogger('boards.forms') @@ -180,7 +184,14 @@ class PostForm(NeboardForm): ATTRIBUTE_ROWS: TEXTAREA_ROWS, }), required=False, label=LABEL_TEXT) - no_download = forms.BooleanField(required=False, label=LABEL_URL) + download_mode = forms.ChoiceField( + choices=( + (DOWN_MODE_TRY, _('Download if possible')), + (DOWN_MODE_DOWNLOAD, _('Download')), + (DOWN_MODE_URL, _('Insert as URLs')), + ), + initial=DOWN_MODE_TRY, + label=_('URL download mode')) file = UrlFileField(required=False, label=LABEL_FILE) # This field is for spam prevention only @@ -347,7 +358,8 @@ class PostForm(NeboardForm): file = None if url: - if self.cleaned_data['no_download']: + mode = self.cleaned_data['download_mode'] + if mode == DOWN_MODE_URL: return url try: @@ -366,7 +378,7 @@ class PostForm(NeboardForm): self._update_file_extension(file) except forms.ValidationError as e: # Assume we will get the plain URL instead of a file and save it - if REGEX_URL.match(url) or REGEX_MAGNET.match(url): + if mode == DOWN_MODE_TRY and (REGEX_URL.match(url) or REGEX_MAGNET.match(url)): logger.info('Error in forms: {}'.format(e)) return url else: diff --git a/boards/locale/ru/LC_MESSAGES/django.mo b/boards/locale/ru/LC_MESSAGES/django.mo index 86b1b7e347b04fa5a201dcef15b70ec02cf55647..fde29f49c406965a1c452dd5e89534466bebc410 GIT binary patch literal 11964 zc$~#qdvH|eb^qenZAxo_B;>?cm=BCV0(OxgcI`D7gb}uC2@xdOwUdTkX|JSfcK5FD z-34S5N8)J*0vSriiQ^Zsr*)diR0xEGgv7MzcqWfOb~DpSI+G^TY1~fwnyK45&D3@J zJLi0N_pY>CJZ;)8zB>1QkMo_!?>z4Hk7{oIqQdVCu6kUjZ&vC$=zAYg{QI|GR|-Sw z=b+7??}Kgz-S`_yY0!Sq)u6{fw}5^PbTQ~(gA$8(L6?C30<;En$*oG=0(uuHSg9sM z?*_$xsuh2J6|@WV!=R6WR)KyJ^jAQi1pPJ8r*0K~&wwr^`OUu9L90Q(Zurg`zTYzQ z-v_M&{ju5iueXYvi>lgZX8jq^MW8P) z7QSzSE(87cV)5(SX8xunLT_Cn^B-Fx{5CHUyKV#h7@fC7@cE&ke`EN+Q!VHItXkxJzgqnCks6t=t`Ym)2I_-0fNlW&a*f#S ztr|J+uWE$v-x>ODjo|M?wZIJM(pr(Tu~yEzr&jR0wO07I*2;N%Y9&s3&GR|XHJ~rl zik;?aMXztyiXU>dBKJ?t_&?W*{eN!uuLNkfgRWUBxF1|9_8(p<`wlM^IZuH0kX}pW z{C@~-_5?N+l1ELCVcB}6Fw_JCqD$-oAI|ls+2=GGPDQA=p*}pK1%BmG|z$_x?OPm zGtfIgYnF*Uqss)Zy`ZZ=pIIhyzOqd4a>+b@bD8M%gJmN3+h+Z{%f$Y-gXs#;O?L<` z_JXbh{VXU%ReyMgtp8(Bh^l^K=zC^VKtE3UfZj`TAc-`B#zEUbKYyp# z>-%>~e7%3C*kvh{ZUt>xA%5Hs+64Oi3en@z3c>vkRtTTJUmH5sK%PB3Ioi*}ra;@O@yF;H7t! z=>Nnj@td=ptjmn=YY_Rp208a6=%*mpYoNRF{2yz?KOJjDkK=1a z&+}_#-}*gzulP6MjEgC;HvI9`~TjL5D$a z0@$AfJ-or>=M7@dcQ%L~ACAa*%OWx#0o@6DZ$#!l6A?R{kBA+tWIlS2y{ce1hu~uKSf>fa>Le&|Zp<9pqaj zHl<(G&}~Zc0p+O0p*<9%go~rN+RT`X%T^M%T}tZ4<7SR+X6`>_=+?!{cUnm&|W1mL%-iulHXG1 z`FUKOxc1}vZ8JvkOc=k#JU?qF<>h0z08#an5}Z-4BU~TC^$f0EO7Kj-1g^Le{B@Wy zihaUyvw1$Kq+UIyBwpy(V(4$;+NuP{BT8^cG1IT4rqPdbB*lw`>men%iSm$NG@Ux3 zq&9C-QWL|!J)wJw+q-dnPDw7M-@af{J1MOi8vEUBD%0d^t3Tr$uytn0v#ofgaX&oa z^$%etUS>W?cow4f zTO`thZZc`7upS3yY@Mgi zr`(K=y9ZMV7pCmp+kvI#sc@s60b=bteFIJyuCWa8@Uo^)tH9 z))3qF?08h|vZ4AenracUNeE7sn_x!*{sw25uEB=`GurWS7gY~giG=M9tB0L<+)lA4 zV)S6Eb^?(;;J_?Nm!4BrI_&mn8|4_O{CYVN?H}LyumszX(d21h#-KS?wkP% zB8cs)uKlVjZKqV1z?A{ChvWbuEp2_!0;(Gt5wF&8Q=Alb5x#vk;*r!(kuM4<>c86K zSKLHir9UPW?(u8_u247Yizz>mb&)UjB6qmSAV==ClP+vK0Oy3V)m|G}!q8#)OYkv~ ziD%b$GOkBczD;KFlB(M}V5@GMvNQ<$6ej4lGZ{$gtL`E9pz0L zlEwmKY1KWP%2~-6RzGRqW3nZCmx9%^ zpUOI%Drt)U2!|oKt28SX6P7IVjW9!y0Dm1p5wbf>M`@meM)f$b=hFxj++`Bx?*}=; zv$1$MZ3iIM2p>DDdjWpJlf}5fktsXDl`BcWx8et^R6i9R+7eaBip6rnX}UM9z{1lh z3sOIh0!m&^N-lD}C=c~R8uBI75Vj&;qvX6e!{dXm^ovU~9*~5@Mv@bZxOh>mPD?-r z;{aPWkztKvwAs_`dnl`WWUL{J;v6XM;+$RwPk@k4xQD6hX5Yu~FAAF?sp*HuHB0$>3Eq)r$6Y#BRjH#ex%2Z=|y|GdLo>*u_>~XtKFvNmb)V@&5`E&^rp?R zO)cx2H#aw9VPr3S;1}0D-qyM|(%BW+*{UDzigmWHf1+!5+afBQksb)_C&$jiW;^=n-`I55#A9Bgc!qRV>)3usrxxpkXyI*_Uww>TU?~nxOhQh|UBubfa@TV+Sac0s zj+7o^Ec1bvR$Q3-LIwB6RPH>9iaq1BHh)@U(*&lcb5mvJ#>H-8wORa|Bkr{9I<6Tu z1+kvVpPuht$Z(ki;x(gSHv&3>UE|D(?3+6W(@lgVpjOxn7WtfmMe;|nZ35dT=$LK9 zd>kw0fE%oM0UR$1R}y={0F)pOmoYL^x?~3OOo!!CxmQUstiHm-q|{XrW}386xi7&U z*9;1TH;qG-ldRRW&L0D#t6)6_W`;9F&!3g$vxJ4qIN&0?Y#QJ{LQ1@dh1Y~L*o~37 z0HoXn3{R5i!EUh2AI+Z$40KfGUJq-g$ulBp>3DHHX?U3hyGZ<4d^rC#oH3faP7}so zut)wZ`3BEtnQ`v2%Dqf3o5bWLC`EP>(XeI|#+nf%y)b{i%#a4_QIZchV=b@Y?-deh zftAac-GGJ^nm<=m^{av32*-3%;2gMs0epo#j37eV5x|qPFvmCp7{3zuL*?EuJ6npk zo4E4{JN%9L?6Ez>UZk9W1snVg>`fRUcL{{e&1&RF_?0;Kd+a<0J<<(;FimJDu$071 ztT06g7Gu2zrdKE*=)j+3Tk&b7Oh|rZsjmZG3<(N9io{XQEaMy(lAMCW$MVOcA9SNc zHklG5Gr-kVa#IOxOmIL@_JBz$R1XA?bA=;IIEiVesb0-PAxS2AL*kg<4i=2kJN<$| z3Iz&nI#j$_HsckGRqjQoKf*eXmq{D1vKMC9RDysY{z!?S8r?WeNq; zBrW8``4U%bG5VMYNcoyfGskJ*Bn2FV8YjF3pvC#~zcrNOBnpK=T7-S*TLkB;l3K{Q zLYt5}y^)m{@1EJnoRC}cCt`Hy98J&}`4e1Xd5AL9ad!SSkpjNr972(Wu7O~EmP1T4 zgDDyoIr$iNI3>-}>U2STL8%n7a`RG1dN}+91@i@oP4XBWF-xeg)D{V@Fb}g80u{3+ zR)C_yit+&%W-!l$QC%zpCTxI4vJ}PE#LB`>k)-l!(w0}FaF)8(r1e>LDf^1D@arZU zlI>>-olowS+%*1h_7z2ua?UdtFA+NDC8w}e(Sc|wKv($mqY#iI*;E&vxGW(S`tCv< z0i}8{fyV-MAekhK>wLgC44+~mSu^AdsZ70y@_(j^rh0ww1SP^e^>Ts_D}_#xDxQ%hW94aD`JNznF|dwj)v;xg;Dh zy~ssI29Dv ziagis5j@VafMvQ03R{LJLrpq$?iv>K`(fx(pFyRPyC^R8`BAF3rmv&m46;d~ISKWB z^kP?B9=@&6Sci|7=GwHTurLiVM>u~$!(RT)pPMK2kdth*LN^u-b^ImGfB9}aaOX+x z$4mNE!eSW{g^W)|`l|Wdk^2S%^Xk0ZNJ`F1kITpp@I|&#xj*3dtvNpLs=T(HB`0ue z7sx=#q|DGfji$sig*Ob~;JHdVoi~+boO0_qo(YQ4!bX!sKSPZKT=OMviRakXlU&tI zYca+>-3*<6nfh^#8g?_YoC)6Qj09L+(wCMH$DY$Ma?x1+Ir^jyrkD9O zc9esUUXLfse}3WKbsT|xMIcF>G;JGO@G;4_k$O`_Qp=;_$~r0C2d7)fJpA_}w>2jz zy{dBGwPuPh`{lnkR_bIbyir$NJ`nAjfF&yhczl@=PZc`s!HW H9rr&0S!yR2 diff --git a/boards/locale/ru/LC_MESSAGES/django.po b/boards/locale/ru/LC_MESSAGES/django.po --- a/boards/locale/ru/LC_MESSAGES/django.po +++ b/boards/locale/ru/LC_MESSAGES/django.po @@ -599,3 +599,14 @@ msgstr "Вы уверены?" msgid "Ban" msgstr "Забанить" +msgid "URL download mode" +msgstr "Режим загрузки ссылок" + +msgid "Download if possible" +msgstr "Загружать если возможно" + +msgid "Download" +msgstr "Загружать" + +msgid "Insert as URLs" +msgstr "Вставлять как ссылки" diff --git a/boards/locale/uk/LC_MESSAGES/django.mo b/boards/locale/uk/LC_MESSAGES/django.mo index dc82ba92b85f0f4a3f0206bbfb49c7e4b7ee7c49..31b5bee10e7c7f44495ade201390c42f546b0091 GIT binary patch literal 12127 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 bnMcr4g+5|l^HurrCryZxzoiaN0~GbY5Wt?0 diff --git a/boards/locale/uk/LC_MESSAGES/django.po b/boards/locale/uk/LC_MESSAGES/django.po --- a/boards/locale/uk/LC_MESSAGES/django.po +++ b/boards/locale/uk/LC_MESSAGES/django.po @@ -599,3 +599,14 @@ msgstr "Чи ви певні?" msgid "Ban" msgstr "Заблокувати" +msgid "URL download mode" +msgstr "Режим завантаження посилань" + +msgid "Download if possible" +msgstr "Завантажувати якщо можливо" + +msgid "Download" +msgstr "Завантажувати" + +msgid "Insert as URLs" +msgstr "Вставляти як посилання" diff --git a/boards/static/js/thread.js b/boards/static/js/thread.js --- a/boards/static/js/thread.js +++ b/boards/static/js/thread.js @@ -43,7 +43,7 @@ function getForm() { function resetForm() { var form = getForm(); - form.find('input:text, input:password, input:file, select, textarea').val(''); + form.find('input:text, input:password, input:file, textarea').val(''); form.find('input:radio, input:checkbox').removeAttr('checked').removeAttr('selected'); $('.file_wrap').find('.file-thumb').remove(); $('#preview-text').hide();