| 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">&blog_id=<mt:var name="blog_id"></mt:if>&filter=exacttag&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"> |
|---|