root/branches/release-29/tmpl/cms/list_tag.tmpl @ 1355

Revision 1355, 10.9 kB (checked in by mpaschal, 22 months ago)

Adjust client code to use the structured JSON response from js_tag_check, not the old simple text/plain one
BugzID: 67816

  • Property svn:keywords set to Id Revision
Line 
1<mt:setvarblock name="page_title"><__trans phrase="Manage Tags"></mt:setvarblock>
2<mt:setvar name="organize-tags" value="1">
3<mt:setvarblock name="system_msg">
4    <mt:if name="saved">
5        <mtapp:statusmsg
6            id="saved"
7            class="success"
8            rebuild="all">
9            <__trans phrase="Your tag changes and additions have been made.">
10        </mtapp:statusmsg>
11    </mt:if>
12    <mt:if name="saved_deleted">
13        <mtapp:statusmsg
14            id="saved-deleted"
15            class="success">
16            <__trans phrase="You have successfully deleted the selected tags.">
17        </mtapp:statusmsg>
18    </mt:if>
19</mt:setvarblock>
20<mt:setvarblock name="related_content">
21    <mtapp:widget
22        id="quickfilters"
23        label="<__trans phrase="Quickfilters">">
24        <$mtapp:ListFilters$>
25    </mtapp:widget>
26    <$mtapp:PageActions$>
27</mt:setvarblock>
28<mt:setvarblock name="html_body_footer">
29    <$mt:include name="include/display_options.tmpl"$>
30</mt:setvarblock>
31<mt:setvarblock name="list_filter_form">
32<div class="listing-filter">
33    <div class="listing-filter-inner inner pkg">
34        <div class="filter">
35           <div class="filter-title">
36               <strong><__trans phrase="Showing only: [_1]" params="<mt:var name="filter_label">"></strong>
37           </div>
38        </div>
39    </div>
40</div>
41</mt:setvarblock>
42<mt:setvarblock name="action_buttons">
43    <a href="javascript:void(0)"
44        onclick="doRemoveItems(getByID('tag-listing-form'), '<__trans phrase="tag" escape="js">', '<__trans phrase="tags" escape="js">'); return false;"
45        accesskey="x"
46        title="<__trans phrase="Delete selected [_1] (x)" params="<$mt:var name="object_label_plural"$>">"
47        ><__trans phrase="Delete"></a>
48</mt:setvarblock>
49<mt:setvarblock name="html_head" append="1">
50    <script type="text/javascript" src="<mt:var name="static_uri">js/tc/client.js"></script>
51
52    <script type="text/javascript">
53    /* <![CDATA[ */
54//trans("The tag '[_2]' already exists. Are you sure you want to merge '[_1]' with '[_2]'?");
55//trans("The tag '[_2]' already exists. Are you sure you want to merge '[_1]' with '[_2]' across all blogs?");
56    var current_edit = 0;
57    var old_tag_name = '';
58    <mt:if name="blog_id">var tag_rename_warning = "The tag '[_2]' already exists. Are you sure you want to merge '[_1]' with '[_2]'?";
59    <mt:else>var tag_rename_warning = "The tag '[_2]' already exists. Are you sure you want to merge '[_1]' with '[_2]' across all blogs?";
60    </mt:if>
61    function edit_tag(id) {
62        if (current_edit) return;
63        var tag_link = getByID('tag-link-' + id);
64        var tag_field = getByID('tag-field-' + id);
65        var tag_name = getByID('tag-name-' + id);
66        if (!tag_link || !tag_field || !tag_name) return;
67        current_edit = id;
68        old_tag_name = tag_name.value;
69        tag_link.style.display = 'none';
70        tag_field.style.display = 'inline';
71        DOM.addClassName(getByID('tag-' + id), 'create-inline');
72        tag_name.focus();
73        tag_name.select();
74        return false;
75    }
76
77    function cancel_edit(id) {
78        var tag_link = getByID('tag-link-' + id);
79        var tag_field = getByID('tag-field-' + id);
80        var tag_name = getByID('tag-name-' + id);
81        if (!tag_link || !tag_field || !tag_name) return;
82        tag_name.value = old_tag_name;
83        old_tag_name = '';
84        current_edit = 0;
85        tag_link.style.display = 'inline';
86        tag_field.style.display = 'none';
87        DOM.removeClassName(getByID('tag-' + id), 'create-inline');
88    }
89
90    function submit_edit(id) {
91        if ((0 != current_edit) && (id != current_edit))
92            id = current_edit;
93        // if old name matches new name, ignore submission (same as cancel)
94        // if new name is already in our tagList array, warn user
95        // if not in tagList and not in range of tagList tags, check with server.
96        var tag_form = getByID('tag-listing-form');
97        var tag_name = getByID('tag-name-' + id);
98        if (!tag_form || !tag_name) return false;
99        var new_tag_name = tag_name.value;
100        if (!new_tag_name) {
101            alert('<__trans phrase="Specify new name of the tag.">');
102            return false;
103        }
104        if (old_tag_name == new_tag_name) {
105            cancel_edit(id);
106            return false;
107        }
108        if ((new_tag_name >= tagList[0]) &&
109            (new_tag_name <= tagList[tagList.length-1])) {
110            // in range of our view, so check for this tag
111            for (var i = 0; i < tagList.length; i++) {
112                if (tagList[i] == new_tag_name) {
113                    // overwrite warning
114                    if (!confirm(trans(tag_rename_warning, old_tag_name,
115                                       new_tag_name))) {
116                        cancel_edit(id);
117                        return false;
118                    }
119                }
120            }
121        } else {
122            // check with server for existing tag that is out of our view
123            var server_check = false;
124            if (new_tag_name <= tagList[0]) {
125                <mt:if name="prev_offset">server_check = true;</mt:if>
126            } else if (new_tag_name >= tagList[tagList.length-1]) {
127                <mt:if name="next_offset">server_check = true;</mt:if>
128            }
129            if (server_check) {
130                TC.Client.call({
131                    'load': function(r) { server_confirm_edit(id, r) },
132                    'error': function(r) { server_confirm_edit(id, r) },
133                        'method': 'POST',
134                    'uri': '<mt:var name="script_url">',
135                    'arguments': {
136                        '__mode' : 'js_tag_check',<mt:if name="blog_id">
137                        'blog_id' : <mt:var name="blog_id">,</mt:if>
138                        'tag_name' : new_tag_name
139                    }
140                });
141                return false;
142            }
143        }
144        return submit_edit_form(id);
145    }
146
147    function server_confirm_edit(id, response) {
148        var result = '';
149        try {
150            result = eval('(' + response.responseText + ')');
151        } catch ( e ) {
152        }
153        if (!result || !result.result) {
154            alert(trans("An error occurred while testing for the new tag name."));
155            return cancel_edit(id);
156        }
157        if (result.result.exists) {
158            var tag_name = getByID('tag-name-' + id);
159            var new_tag_name = tag_name.value;
160            if (!confirm(trans(tag_rename_warning, old_tag_name,
161                               new_tag_name))) {
162                cancel_edit(id);
163                return false;
164            }
165        }
166        submit_edit_form(id);
167    }
168
169    function submit_edit_form(id) {
170        var tag_form = getByID('tag-listing-form');
171        var tag_name = getByID('tag-name-' + id);
172        if (!tag_form || !tag_name) return false;
173        tag_form['__mode'].value = 'rename_tag';
174        tag_form['__id'].value = id;
175        tag_form['tag_name'].value = tag_name.value;
176        tag_form.submit();
177        return true;
178    }
179
180    var tagList = [];
181    <mt:loop name="tag_table"><mt:loop name="object_loop">
182    tagList[tagList.length] = '<mt:var name="tag_name" escape="js">';</mt:loop></mt:loop>
183
184    var tableSelect;
185    function init()
186    {
187        // setup
188        tableSelect = new TC.TableSelect( "tag-listing-table" );
189    }
190
191    TC.attachLoadEvent( init );
192    /* ]]> */
193    </script>
194</mt:setvarblock>
195
196<mt:include name="include/header.tmpl">
197<$mt:var name="list_filter_form"$>
198<mtapp:listing
199    type="tag">
200    <mt:if name="__first__">
201    <input type="hidden" name="__id" value="">
202    <input type="hidden" name="__type" value="<$MT:Var name="tag_object_type"$>">
203    <input type="hidden" name="tag_name" value="">
204    <thead>
205        <tr>
206            <th class="cb"><input type="checkbox" name="id-head" value="all" class="select" /></th>
207            <th id="tag-name"><__trans phrase="Tag Name"></th>
208            <th id="tag-count"><mt:var name="tag_object_label_plural"></th>
209        </tr>
210    </thead>
211    <tbody>
212    </mt:if>
213        <tr class="<mt:if name="__odd__">odd<mt:else>even</mt:if>" id="tag-<mt:var name="tag_id">">
214            <td class="cb" id="delete-<mt:var name="tag_id">"><input type="checkbox" name="id" value="<mt:var name="tag_id">" class="select" /></td>
215            <td class="edit-col" id="tag-cell-<mt:var name="tag_id">">
216                <a href="javascript:void(0)" title="<__trans phrase="Click to edit tag name">" class="edit-link" id="tag-link-<mt:var name="tag_id">" onclick="return edit_tag(<mt:var name="tag_id">)"><mt:var name="tag_name" escape="html"></a>
217                <span id="tag-field-<mt:var name="tag_id">" class="" style="display: none">
218                    <mt:setvarblock name="new_label"><__trans phrase="Rename [_1]" params="<mt:var name="object_label">"></mt:setvarblock>
219                    <mtapp:setting
220                        id="rename_tag"
221                        label="$new_label"
222                        label_class="inline field-no-header"
223                        hint="">
224                        <input
225                            type="text"
226                            name="tag-name-<mt:var name="tag_id">"
227                            id="tag-name-<mt:var name="tag_id">"
228                            value="<mt:var name="tag_name" escape="html">"
229                        />
230                    </mtapp:setting>
231                    <mtapp:setting
232                        id="actions"
233                        label="<__trans phrase="Actions">"
234                        label_class="inline field-no-header"
235                        hint=""
236                        show_hint="0">
237                        <span class="buttons">
238                            <a href="javascript:void(0)"
239                                onclick="submit_edit(<mt:var name="tag_id">); return false;"
240                                title="<__trans phrase="Rename [_1]" params="<mt:var name="object_label">">"
241                                ><__trans phrase="Rename"></a>
242                            <a href="javascript:void(0)"
243                                onclick="cancel_edit(<mt:var name="tag_id">)"
244                                ><__trans phrase="Cancel"></a>
245                        </span>
246                    </mtapp:setting>
247                </span>
248            </td>
249            <td class="tag-count"><mt:if name="tag_count"><a href="<mt:var name="script_url">?__mode=<$mt:var name="link_to"$><mt:if name="blog_id">&amp;blog_id=<mt:var name="blog_id"></mt:if>&amp;filter=exacttag&amp;filter_val=<mt:var name="tag_name" escape="url">" title="<__trans phrase="Show all [_1] with this tag", params="<$mt:var name="tag_object_label_plural"$>">"><__trans phrase="[quant,_1,_2,_3]" params="<$mt:var name="tag_count"$>%%<$mt:var name="tag_object_label"$>%%<$mt:var name="tag_object_label_plural"$>"></a><mt:else><__trans phrase="[quant,_1,entry,entries]" params="<mt:var name="tag_count">"></mt:if></td>
250        </tr>
251    <mt:if name="__last__">
252    </tbody>
253    </mt:if>
254</mtapp:listing>
255
256<mt:include name="include/footer.tmpl">
Note: See TracBrowser for help on using the browser.