From 363edb3c84c27c360426cabd42e2e8b553cde8ea Mon Sep 17 00:00:00 2001 From: Victor Wagner Date: Tue, 1 Apr 2008 10:10:31 +0000 Subject: [PATCH] Added form to dynamically add new file input while entering message --- templates/basicset/TODO | 10 +++++----- templates/basicset/common.js | 34 ++++++++++++++++++++++++++++++++++ templates/basicset/reply.html | 2 +- templates/basicset/topic.html | 2 +- 4 files changed, 41 insertions(+), 7 deletions(-) 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 открывает форму прямо на странице (находящуюся в
). - Форма должна открываться непосредственно под текущей ссылкой. + Форма должна открываться непосредственно под текущей ссылкой. 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> selected>Без разметки -Картинка +Картинка 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> selected>Без разметки -Картинка +Картинка -- 2.39.5