78 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
{{define "body"}}
 | 
						|
    <h2 class="form-categories-heading">Categories</h2>
 | 
						|
    {{template "flashes" .}}
 | 
						|
    {{range $category := .categories}}
 | 
						|
                {{template "row-category" dict "category" $category "categories" $.categories}}
 | 
						|
    {{end}}
 | 
						|
    
 | 
						|
    <div class="row">
 | 
						|
        <form method="POST" action="/categories/add">
 | 
						|
        <div class="col-xs-3">
 | 
						|
        <input name="name" class="form-control" placeholder="Name" />
 | 
						|
        </div>
 | 
						|
        <div class="col-xs-3">
 | 
						|
            {{template "select-category" dict "categories" .categories "id" -1}}
 | 
						|
        </div>
 | 
						|
        <div class="col-xs-2">
 | 
						|
            <input type="submit" class="add-submit btn btn-primary btn-block" value="Add Category" />
 | 
						|
         </div>
 | 
						|
         </form>
 | 
						|
    </div>
 | 
						|
{{end}}
 | 
						|
 | 
						|
<!-- 
 | 
						|
Print a category admin option row including it's name, delete option and
 | 
						|
new category select
 | 
						|
    category: a category object - the current top level category to handle
 | 
						|
    categories: flat map of all categories, sorted by parents
 | 
						|
 -->
 | 
						|
{{define "row-category"}}
 | 
						|
    <div class="row">
 | 
						|
        <div class="col-xs-2">
 | 
						|
            {{stringTimes .category.Depth "- "}}
 | 
						|
            {{.category.Name}}
 | 
						|
        </div>
 | 
						|
        <div class="col-xs-1">
 | 
						|
            <a href="/categories/delete?id={{.category.Id}}">delete</a>
 | 
						|
        </div>
 | 
						|
        <div class="col-xs-3">
 | 
						|
        <form action="/categories/change-parent?cid={{.category.Id}}" method="POST">
 | 
						|
            {{if $.category.Parent.Valid }}
 | 
						|
                {{template "select-category" dict "categories" .categories "id" $.category.Parent.Value}}
 | 
						|
            {{else}}
 | 
						|
                {{template "select-category" dict "categories" .categories "id" -1}}
 | 
						|
            {{end}}
 | 
						|
        </form>
 | 
						|
        </div>
 | 
						|
    </div>
 | 
						|
 | 
						|
    {{range $child := .category.Children}}
 | 
						|
        {{template "row-category" dict "category" $child "categories" $.categories}}
 | 
						|
     {{end}}    
 | 
						|
 | 
						|
{{end}}
 | 
						|
 | 
						|
<!--
 | 
						|
Print a full <select> of categories with one selected
 | 
						|
    categories: a flat map of categories ordered by parent
 | 
						|
    id: the category id that should be selected (or -1 for none)
 | 
						|
-->
 | 
						|
{{define "select-category"}}
 | 
						|
    <select class="form-control category-change-parent" name="parent" >
 | 
						|
        <option value="none" {{if not .category.Parent.Valid}} selected="true"{{end}}>-- None --</option>
 | 
						|
        {{range $category := .categories}}
 | 
						|
            {{template "option-category" dict "category" $category "id" $.id}}
 | 
						|
        {{end}}
 | 
						|
    </select>
 | 
						|
{{end}}
 | 
						|
<!--
 | 
						|
print all the <option> inside a select for a category and its children
 | 
						|
    category: the category to print as an option (and it's nested children)
 | 
						|
    id: the category id that should be selected
 | 
						|
-->
 | 
						|
{{define "option-category"}}
 | 
						|
    <option value="{{.category.Id}}" {{if eq .id .category.Id}}selected="true"{{end}}>{{.category.ToString}}</option>
 | 
						|
    {{range $child := .category.Children}}
 | 
						|
        {{template "option-category" dict "category" $child "id" $.id}}
 | 
						|
    {{end}}            
 | 
						|
{{end}} |