146 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			146 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| jQuery(function(){
 | |
| 
 | |
|     var $extmgr = jQuery('#extension__manager');
 | |
| 
 | |
|     /**
 | |
|      * Confirm uninstalling
 | |
|      */
 | |
|     $extmgr.find('button.uninstall').on('click', function(e){
 | |
|         if(!window.confirm(LANG.plugins.extension.reallydel)){
 | |
|             e.preventDefault();
 | |
|             return false;
 | |
|         }
 | |
|         return true;
 | |
|     });
 | |
| 
 | |
|     /**
 | |
|      * very simple lightbox
 | |
|      * @link http://webdesign.tutsplus.com/tutorials/htmlcss-tutorials/super-simple-lightbox-with-css-and-jquery/
 | |
|      */
 | |
|     $extmgr.find('a.extension_screenshot').on('click', function(e) {
 | |
|         e.preventDefault();
 | |
| 
 | |
|         //Get clicked link href
 | |
|         var image_href = jQuery(this).attr("href");
 | |
| 
 | |
|         // create lightbox if needed
 | |
|         var $lightbox = jQuery('#plugin__extensionlightbox');
 | |
|         if(!$lightbox.length){
 | |
|             $lightbox = jQuery('<div id="plugin__extensionlightbox"><p>Click to close</p><div></div></div>')
 | |
|                 .appendTo(jQuery('body'))
 | |
|                 .hide()
 | |
|                 .on('click', function(){
 | |
|                     $lightbox.hide();
 | |
|                 });
 | |
|         }
 | |
| 
 | |
|         // fill and show it
 | |
|         $lightbox
 | |
|             .show()
 | |
|             .find('div').html('<img src="' + image_href + '" />');
 | |
| 
 | |
| 
 | |
|         return false;
 | |
|     });
 | |
| 
 | |
|     /**
 | |
|      * Enable/Disable extension via AJAX
 | |
|      */
 | |
|     $extmgr.find('button.disable, button.enable').on('click', function (e) {
 | |
|         e.preventDefault();
 | |
|         var $btn = jQuery(this);
 | |
| 
 | |
|         // get current state
 | |
|         var extension = $btn.attr('name').split('[')[2];
 | |
|         extension = extension.substr(0, extension.length - 1);
 | |
|         var act = ($btn.hasClass('disable')) ? 'disable' : 'enable';
 | |
| 
 | |
|         // disable while we wait
 | |
|         $btn.attr('disabled', 'disabled');
 | |
|         $btn.css('cursor', 'wait');
 | |
| 
 | |
|         // execute
 | |
|         jQuery.get(
 | |
|             DOKU_BASE + 'lib/exe/ajax.php',
 | |
|             {
 | |
|                 call: 'plugin_extension',
 | |
|                 ext:  extension,
 | |
|                 act:  act
 | |
|             },
 | |
|             function (data) {
 | |
|                 $btn.css('cursor', '')
 | |
|                     .removeAttr('disabled')
 | |
|                     .removeClass('disable')
 | |
|                     .removeClass('enable')
 | |
|                     .text(data.label)
 | |
|                     .addClass(data.reverse)
 | |
|                 .parents('li')
 | |
|                     .removeClass('disabled')
 | |
|                     .removeClass('enabled')
 | |
|                     .addClass(data.state);
 | |
|             }
 | |
|         );
 | |
|     });
 | |
| 
 | |
|     /**
 | |
|      * AJAX detail infos
 | |
|      */
 | |
|     $extmgr.find('a.info').on('click', function(e){
 | |
|         e.preventDefault();
 | |
| 
 | |
|         var $link = jQuery(this);
 | |
|         var $details = $link.parent().find('dl.details');
 | |
|         if($details.length){
 | |
|             $link.toggleClass('close');
 | |
|             $details.toggle();
 | |
|             return;
 | |
|         }
 | |
| 
 | |
|         $link.addClass('close');
 | |
|         jQuery.get(
 | |
|             DOKU_BASE + 'lib/exe/ajax.php',
 | |
|             {
 | |
|                 call: 'plugin_extension',
 | |
|                 ext: $link.data('extid'),
 | |
|                 act: 'info'
 | |
|             },
 | |
|             function(data){
 | |
|                 $link.parent().append(data);
 | |
|             }
 | |
|         );
 | |
|     });
 | |
| 
 | |
|     /**
 | |
|         Create section for enabling/disabling viewing options
 | |
|      */
 | |
|     if ( $extmgr.find('.plugins, .templates').hasClass('active') ) {
 | |
|         var $extlist = jQuery('#extension__list');
 | |
|         $extlist.addClass('hasDisplayOptions');
 | |
| 
 | |
|         var $displayOpts = jQuery('<p>', { id: 'extension__viewoptions'} ).appendTo($extmgr.find( '.panelHeader' ));
 | |
|         $displayOpts.append(LANG.plugins.extension.display_viewoptions);
 | |
| 
 | |
|         var displayOptionsHandler = function(){
 | |
|             $extlist.toggleClass( this.name );
 | |
|             DokuCookie.setValue('ext_'+this.name, $extlist.hasClass(this.name) ? '1' : '0');
 | |
|         };
 | |
| 
 | |
|         jQuery(['enabled', 'disabled', 'updatable']).each(function(index, chkName){
 | |
|             var $label = jQuery( '<label></label>' )
 | |
|                 .appendTo($displayOpts);
 | |
|             var $input = jQuery( '<input />', { type: 'checkbox', name: chkName })
 | |
|                 .on('change', displayOptionsHandler)
 | |
|                 .appendTo($label);
 | |
| 
 | |
|             var previous = DokuCookie.getValue('ext_'+chkName);
 | |
|             if(typeof previous === "undefined" || previous == '1') {
 | |
|                 $input.trigger('click');
 | |
|             }
 | |
| 
 | |
|             jQuery( '<span/>' )
 | |
|                 .append(' '+LANG.plugins.extension['display_'+chkName])
 | |
|                 .appendTo($label);
 | |
|         });
 | |
|     }
 | |
| });
 |