]> git.plutz.net Git - serve0/blobdiff - templates/tagger.html.sh
split up functions in tagger
[serve0] / templates / tagger.html.sh
index 10e657c020d57ccd543bb0b1c4b3315bc6a6fc0e..779f29c95801759f1e584107a264274490535142 100755 (executable)
 # You should have received a copy of the GNU Affero General Public License
 # along with Serve0  If not, see <http://www.gnu.org/licenses/>. 
 
+category_options(){
+  cat="${1}:"
+  [ "$cat" = "none:" ] && cat=''
+
+  printf %s "$taglist" \
+  | sed -rn 's;^('"$cat"')([^:]+)$;<option value="\1\2">\2</option>;p'
+}
+
+category_box(){
+  for cat in "$@"; do
+  cat <<EOF
+  <p class="newtag">
+    <label class="category">${cat}:</label>
+    <input type="hidden" name="category" value="$cat">
+    <select name="ctag" size="12" multiple>
+      $(category_options "$cat")
+    </select>
+  </p>
+EOF
+  done
+}
+
 cat <<EOF
   <div class="panel footer" id="tagger">
     <a class="panel tagger hide" href="#foot">Hide</a>
     <hr>
     <p class="help">Add selectetd tags to selected videos.</p>
-    <p class="newtag">
-      <label class="category">None:</label>
-      <select name="ctag" size="12" multiple id="${n}_none">
-       $(echo "$taglist" |sed -rn 's;^([^:]+)$;<option value="\1">\1</option>;p')
-      </select>
-    </p>
-    $(echo "$taglist" |sed -rn 's;^([^:]+):.*$;\1;p' |sort -u |while read cat; do echo "
-    <p class=\"newtag\">
-      <label class=\"category\">${cat}:</label>
-      <input type=\"hidden\" name=\"category\" value=\"$cat\">
-      <select name=\"ctag\" size=\"12\" multiple id=\"${n}_$cat\">
-       $(echo "$taglist" |sed -rn "s;^${cat}:(.*)$;<option value=\"${cat}:\\1\">\\1</option>;p")
-      </select>
-    </p>"
-    done)
+    $(category_box $(list_categories))
     <p class="newtag additional">
       <label class="additional">Additional Tags (one per line):</label>
       <textarea name="tags" rows="2"></textarea>