From: Victor Wagner <vitus@wagner.pp.ru> Date: Tue, 1 Apr 2008 10:10:31 +0000 (+0000) Subject: Added form to dynamically add new file input while entering message X-Git-Url: http://wagner.pp.ru/gitweb/?a=commitdiff_plain;h=363edb3c84c27c360426cabd42e2e8b553cde8ea;p=oss%2Fstilllife.git Added form to dynamically add new file input while entering message --- diff --git a/templates/basicset/TODO b/templates/basicset/TODO index a4500d7..06741f5 100644 --- a/templates/basicset/TODO +++ b/templates/basicset/TODO @@ -1,15 +1,15 @@ Roadmap Ð´Ð»Ñ client-side ÑкÑипÑов и дизайна + 1. ÐоÑмалÑнÑй полноÑеннÑй CSS и более пÑилиÑнÑе ÑÐ°Ð±Ð»Ð¾Ð½Ñ ÑÐµÐ¼Ñ Ð¸ ÑоÑÑма. - 2. СкÑÐ¸Ð¿Ñ ÐºÐ¾ÑоÑÑй по нажаÑÐ¸Ñ ÑÑÑлки reply оÑкÑÑÐ²Ð°ÐµÑ ÑоÑÐ¼Ñ Ð¿ÑÑмо на ++ 2. СкÑÐ¸Ð¿Ñ ÐºÐ¾ÑоÑÑй по нажаÑÐ¸Ñ ÑÑÑлки reply оÑкÑÑÐ²Ð°ÐµÑ ÑоÑÐ¼Ñ Ð¿ÑÑмо на ÑÑÑаниÑе (Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑÑÑ Ð² <div id="reply">). - ФоÑма должна оÑкÑÑваÑÑÑÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно под ÑекÑÑей ÑÑÑлкой. + ФоÑма должна оÑкÑÑваÑÑÑÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно под ÑекÑÑей ÑÑÑлкой. vitus - 3. ÐналогиÑнÑй ÑкÑÐ¸Ð¿Ñ Ð´Ð»Ñ ÑÑÑлки login +- 3. ÐналогиÑнÑй ÑкÑÐ¸Ð¿Ñ Ð´Ð»Ñ ÑÑÑлки login. (наÑиг не надо) + 4. client-side пÑовеÑка пÑав доÑÑÑпа done, safir + 5 ÑкÑÑÑие ÑлеменÑов ÑпÑавлениÑ, недоÑÑÑпнÑÑ ÑекÑÑÐµÐ¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ. done, vitus 6. Ð¨Ð°Ð±Ð»Ð¾Ð½Ñ Ð¾ÑÑалÑнÑÑ Ð¾Ð¿ÐµÑаÑий - по меÑе ÑеализаÑии онÑÑ . 7. ÐпеÑаÑÐ¸Ñ ÑиÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ñеплики, на коÑоÑÑÑ Ð¾ÑвеÑаеÑÑ (веÑоÑÑно, Ñ server-side поддеÑжкой) - 8. СкÑÐ¸Ð¿Ñ ÐºÐ¾ÑоÑÑй пÑи заполнении оÑеÑедного Ð¿Ð¾Ð»Ñ Ð°Ð¿Ð»Ð¾Ð°Ð´Ð° каÑÑинки в - ÑоÑме Ñеплики, добавлÑÐµÑ ÑледÑÑÑее пÑÑÑое поле. ++ 8. СкÑÐ¸Ð¿Ñ ÐºÐ¾ÑоÑÑй пÑи заполнении оÑеÑедного Ð¿Ð¾Ð»Ñ Ð°Ð¿Ð»Ð¾Ð°Ð´Ð° каÑÑинки в + ÑоÑме Ñеплики, добавлÑÐµÑ ÑледÑÑÑее пÑÑÑое поле. vitus diff --git a/templates/basicset/common.js b/templates/basicset/common.js index 7f54c75..30377b5 100644 --- a/templates/basicset/common.js +++ b/templates/basicset/common.js @@ -16,3 +16,37 @@ function selectSite( element) { password_field.disabled=0; } } +// +// ÐÑзÑваеÑÑÑ Ð¿Ñи заполнении оÑеÑедного Ð¿Ð¾Ð»Ñ Ð°Ð¿Ð»Ð¾Ð°Ð´Ð° каÑÑинки и +// добавлÑÐµÑ ÐµÑе одно Ñакое же. +// +function addPictureInput(tag) { + // ÐÑем ввеÑÑ Ð¿Ð¾ деÑÐµÐ²Ñ ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ñ ÐºÐ»Ð°ÑÑом pictureinput + while (tag.className != "pictureinput") { + if (!tag.parentNode) { + // Ðе наÑли + break; + } + tag=tag.parentNode; + } + // ТепеÑÑ Ð¿Ð¾Ñли вниз по Ñиблингам иÑкаÑÑ, еÑÑÑ Ð»Ð¸ пÑÑÑое поле + var prev=tag; + while (tag && tag.className == "pictureinput") { + prev = tag; + tag=tag.nextSibling; + } + var inputs = prev.getElementsByTagName("input"); + if (!inputs[0].value) { + // ÐоÑледний ÑÐ»ÐµÐ¼ÐµÐ½Ñ ÐµÑе не заполнен. ÐовÑй не нÑжен. + return; + } + var copy = prev.cloneNode(true); + inputs = copy.getElementsByTagName("input"); + inputs[0].value = ""; + inputs[0].name="image"+(parseInt(inputs[0].name.substring(5, + inputs[0].name.length))+1); + inputs[0].title = inputs[0].name; + prev.parentNode.insertBefore(copy,tag); + return; +} +// diff --git a/templates/basicset/reply.html b/templates/basicset/reply.html index 50efcbe..d1ed9dd 100644 --- a/templates/basicset/reply.html +++ b/templates/basicset/reply.html @@ -33,7 +33,7 @@ cols=72></textarea></td></tr> selected>Ðез ÑазмеÑки</option> <option value="bbcode">BBCode</option> <option value="html">Html</option></select></td></tr> -<tr><td>ÐаÑÑинка</td> <td><input onchange="addPictureInput(this);" type=file name="image1"></td></tr> +<tr class="pictureinput"><td>ÐаÑÑинка</td> <td><input onchange="addPictureInput(this);" type=file name="image1"></td></tr> <tr><td colspan=2 align=right><input type=submit name="reply" value="ÐÑÑказаÑÑÑÑ"> </table> diff --git a/templates/basicset/topic.html b/templates/basicset/topic.html index 69f9f88..936ad67 100644 --- a/templates/basicset/topic.html +++ b/templates/basicset/topic.html @@ -75,7 +75,7 @@ cols=72></textarea></td></tr> selected>Ðез ÑазмеÑки</option> <option value="bbcode">BBCode</option> <option value="html">Html</option></select></td></tr> -<tr><td>ÐаÑÑинка</td> <td><input onchange="addPictureInput(this);" type=file name="image1"></td></tr> +<tr class="pictureinput"><td>ÐаÑÑинка</td> <td><input onchange="addPictureInput(this);" type=file name="image1"></td></tr> <tr><td colspan=2 align="right"> <input type="button" value="ÐÑмена" onclick="return hideForm('replyform');"> <input type=submit name="reply" value="ÐÑÑказаÑÑÑÑ"></td></tr>