WordPress.org

Make WordPress Core


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/cat-js.php

    r4187 r3500  
    11<?php
    2 require_once('../wp-config.php');
    3 cache_javascript_headers();
     2require_once('admin.php');
     3header('Content-type: text/javascript; charset=' . get_settings('blog_charset'), true);
    44?>
    5 addLoadEvent(function(){catList=new listMan('categorychecklist');catList.ajaxRespEl='jaxcat';catList.topAdder=1;catList.alt=0;catList.showLink=0;});
     5var ajaxCat = new sack();
     6var newcat;
     7 
     8function newCatAddIn() {
     9    if ( !document.getElementById('jaxcat') ) return false;
     10    var ajaxcat = document.createElement('span');
     11    ajaxcat.id = 'ajaxcat';
     12
     13    newcat = document.createElement('input');
     14    newcat.type = 'text';
     15    newcat.name = 'newcat';
     16    newcat.id = 'newcat';
     17    newcat.size = '16';
     18    newcat.setAttribute('autocomplete', 'off');
     19    newcat.onkeypress = ajaxNewCatKeyPress;
     20
     21    var newcatSub = document.createElement('input');
     22    newcatSub.type = 'button';
     23    newcatSub.name = 'Button';
     24    newcatSub.id = 'catadd';
     25    newcatSub.value = '<?php echo addslashes(__('Add')); ?>';
     26    newcatSub.onclick = ajaxNewCat;
     27
     28    ajaxcat.appendChild(newcat);
     29    ajaxcat.appendChild(newcatSub);
     30    document.getElementById('jaxcat').appendChild(ajaxcat);
     31
     32    howto = document.createElement('span');
     33    howto.innerHTML = '<?php echo addslashes(__('Separate multiple categories with commas.')); ?>';
     34    howto.id = 'howto';
     35    ajaxcat.appendChild(howto);
     36}
     37
    638addLoadEvent(newCatAddIn);
    7 function newCatAddIn() {
    8     var jaxcat = $('jaxcat');
    9     if ( !jaxcat )
     39
     40function getResponseElement() {
     41    var p = document.getElementById('ajaxcatresponse');
     42    if (!p) {
     43        p = document.createElement('span');
     44        document.getElementById('jaxcat').appendChild(p);
     45        p.id = 'ajaxcatresponse';
     46    }
     47    return p;
     48}
     49
     50function newCatLoading() {
     51    var p = getResponseElement();
     52    p.innerHTML = '<?php echo addslashes(__('Sending Data...')); ?>';
     53}
     54
     55function newCatLoaded() {
     56    var p = getResponseElement();
     57    p.innerHTML = '<?php echo addslashes(__('Data Sent...')); ?>';
     58}
     59
     60function newCatInteractive() {
     61    var p = getResponseElement();
     62    p.innerHTML = '<?php echo addslashes(__('Processing Request...')); ?>';
     63}
     64
     65function newCatCompletion() {
     66    var p = getResponseElement();
     67    var id    = 0;
     68    var ids   = new Array();
     69    var names = new Array();
     70   
     71    ids   = myPload( ajaxCat.response );
     72    names = myPload( newcat.value );
     73    for ( i = 0; i < ids.length; i++ ) {
     74        id = ids[i].replace(/[\n\r]+/g, "");
     75        if ( id == '-1' ) {
     76            p.innerHTML = "<?php echo addslashes(__("You don't have permission to do that.")); ?>";
     77            return;
     78        }
     79        if ( id == '0' ) {
     80            p.innerHTML = "<?php echo addslashes(__('That category name is invalid.  Try something else.')); ?>";
     81            return;
     82        }
     83       
     84        var exists = document.getElementById('category-' + id);
     85       
     86        if (exists) {
     87            var moveIt = exists.parentNode;
     88            var container = moveIt.parentNode;
     89            container.removeChild(moveIt);
     90            container.insertBefore(moveIt, container.firstChild);
     91            moveIt.id = 'new-category-' + id;
     92            exists.checked = 'checked';
     93            var nowClass = moveIt.className;
     94            moveIt.className = nowClass + ' fade';
     95            Fat.fade_all();
     96            moveIt.className = nowClass;
     97        } else {
     98            var catDiv = document.getElementById('categorychecklist');
     99            var newLabel = document.createElement('label');
     100            newLabel.setAttribute('for', 'category-' + id);
     101            newLabel.id = 'new-category-' + id;
     102            newLabel.className = 'selectit fade';
     103   
     104            var newCheck = document.createElement('input');
     105            newCheck.type = 'checkbox';
     106            newCheck.value = id;
     107            newCheck.name = 'post_category[]';
     108            newCheck.id = 'category-' + id;
     109            newLabel.appendChild(newCheck);
     110   
     111            var newLabelText = document.createTextNode(' ' + names[i]);
     112            newLabel.appendChild(newLabelText);
     113   
     114            catDiv.insertBefore(newLabel, catDiv.firstChild);
     115            newCheck.checked = 'checked';
     116   
     117            Fat.fade_all();
     118            newLabel.className = 'selectit';
     119        }
     120        newcat.value = '';
     121    }
     122    p.parentNode.removeChild(p);
     123//  var id = parseInt(ajaxCat.response, 10);
     124}
     125
     126function ajaxNewCatKeyPress(e) {
     127    if (!e) {
     128        if (window.event) {
     129            e = window.event;
     130        } else {
     131            return;
     132        }
     133    }
     134    if (e.keyCode == 13) {
     135        ajaxNewCat();
     136        e.returnValue = false;
     137        e.cancelBubble = true;
    10138        return false;
    11     jaxcat.update('<span id="ajaxcat"><input type="text" name="newcat" id="newcat" size="16" autocomplete="off"/><input type="button" name="Button" id="catadd" value="<?php _e('Add'); ?>"/><span id="howto"><?php _e('Separate multiple categories with commas.'); ?></span></span>');
    12     $('newcat').onkeypress = function(e) { return killSubmit("catList.ajaxAdder('category','jaxcat');", e); };
    13     $('catadd').onclick = function() { catList.ajaxAdder('category', 'jaxcat'); };
     139    }
    14140}
     141
     142function ajaxNewCat() {
     143    var newcat = document.getElementById('newcat');
     144    var split_cats = new Array(1);
     145    var catString = '';
     146
     147    catString = 'ajaxnewcat=' + encodeURIComponent(newcat.value);
     148    ajaxCat.requestFile = 'edit-form-ajax-cat.php';
     149    ajaxCat.method = 'GET';
     150    ajaxCat.onLoading = newCatLoading;
     151    ajaxCat.onLoaded = newCatLoaded;
     152    ajaxCat.onInteractive = newCatInteractive;
     153    ajaxCat.onCompletion = newCatCompletion;
     154    ajaxCat.runAJAX(catString);
     155}
     156
     157function myPload( str ) {
     158    var fixedExplode = new Array();
     159    var comma = new String(',');
     160    var count = 0;
     161    var currentElement = '';
     162
     163    for( x=0; x < str.length; x++) {
     164        andy = str.charAt(x);
     165        if ( comma.indexOf(andy) != -1 ) {
     166            currentElement = currentElement.replace(new RegExp('^\\s*(.*?)\\s*$', ''), '$1'); // trim
     167            fixedExplode[count] = currentElement;
     168            currentElement = "";
     169            count++;
     170        } else {
     171            currentElement += andy;
     172        }
     173    }
     174
     175    if ( currentElement != "" )
     176        fixedExplode[count] = currentElement;
     177    return fixedExplode;
     178}
Note: See TracChangeset for help on using the changeset viewer.