Changeset 1966845
- Timestamp:
- 10/31/2018 10:33:25 PM (7 years ago)
- Location:
- jarvis/trunk
- Files:
-
- 9 added
- 7 edited
-
README.md (modified) (4 diffs)
-
assets (added)
-
assets/icon-128x128.png (added)
-
assets/icon-256x256.png (added)
-
assets/screenshot-1.png (added)
-
assets/screenshot-2.png (added)
-
assets/screenshot-3.png (added)
-
assets/screenshot-4.png (added)
-
assets/screenshot-5.png (added)
-
dist (modified) (1 prop)
-
gulpfile.js (modified) (1 diff)
-
jarvis.php (modified) (1 diff)
-
package-lock.json (added)
-
package.json (modified) (2 diffs)
-
readme.txt (modified) (4 diffs)
-
src (modified) (1 prop)
Legend:
- Unmodified
- Added
- Removed
-
jarvis/trunk/README.md
r1405943 r1966845 14 14 * Edit your contact page: `/` + `Contact` + enter and you're there. 15 15 * Access your post about caving in Nigeria from last year: `/` + `Nigeria Caving` + enter and you're there. 16 * Flush the site rewrite rules: `/` + `Flush Rewrite Rules` + enter 16 17 17 18 The idea is to make it easier for anyone using the admin side of WordPress to get to the pages they're looking for. … … 35 36 ### It's still not working... 36 37 37 You may be on a page that's focusing on a text area or input box. If this is the case just click somewhere on the page outside of these boxes and the hit /. 38 You may be on a page that's focusing on a text area or input box. If this is the case just click somewhere on the page outside of these boxes and the hit /. You can also click the search icon next to the avatar in the top admin menu bar. 39 40 ## Extend 41 42 Jarvis is extendable to include your custom plugin data though filters. See https://github.com/WDGDC/Jarvis/wiki/Extending-Jarvis 38 43 39 44 ## Changelog … … 56 61 7. 0.51.0 57 62 * Add post type check to search query to only query post types shown in wp-admin 63 8. 1.0.0 64 * Rewrite most of Jarvis 65 * User search 66 * Mobile compatibility 67 * Add Instant Actions that can be selected that are not in the admin menu 68 * Nonce security for searches 69 * Theme support! 70 * Improved icon detection methods such as dashicons with custom fonts 71 * Hi-DPI loading icon 72 * Drop support for IE < 11 73 * New gulp build pipeline 74 * Remove Hogan in favor of underscore templates 58 75 76 ## Develop 77 78 The plugin now uses a gulp based build pipeline that can be executed through npm scripts. 79 80 * requires `node` 8 and `npm` 5 or higher, should work with `node` 6 but haven't tested 81 * Public dependencies should be installed with npm using `npm i package-name --save`, while dev depenedencies like gulp should be installed with `npm i package-name --save-dev` 82 83 ### Commands 84 85 * `npm run build:js` will compile javascript files using babel into the dist directory 86 * `npm run build:scss` will compile scss files using sass & autoprefixer into the dist directory 87 * `npm run vendor` will copy front end dependencies from node_modules to dist/vendor 88 * `npm run build` will run the build:js, build:scss, and vendor tasks simultaneously 89 * `npm run watch` will start watching for changes in js and scss files 90 * `npm start` will run the build and vendor tasks simultaneously followed by the watch task - this is the default task 91 * `npm run release` will create a zip the current build of the plugin to be included in a github release` 59 92 60 93 ## Authors … … 63 96 * Joan Piedra 64 97 * Kurtis Shaner 98 * Doug Axelrod 65 99 66 Learn more about [The Web Development Group](http://www.webdevelopmentgroup.com), our [services]( www.webdevelopmentgroup.com/services/) and [WordPress work](http://www.webdevelopmentgroup.com/work/).100 Learn more about [The Web Development Group](http://www.webdevelopmentgroup.com), our [services](https://www.webdevelopmentgroup.com/services/) and [WordPress work](http://www.webdevelopmentgroup.com/work/). -
jarvis/trunk/dist
-
Property
svn:ignore
set to
.git
-
Property
svn:ignore
set to
-
jarvis/trunk/gulpfile.js
r1393311 r1966845 1 var package = require('./package.json'); 2 var gulp = require('gulp'); 3 var concat = require('gulp-concat'); 4 var uglify = require('gulp-uglify'); 5 var header = require('gulp-header'); 6 var insert = require('gulp-insert'); 1 const package = require('./package.json'); 2 const nodePath = require('path'); 7 3 8 var banner = [ 9 '/**', 10 ' * <%= pkg.name %> - <%= pkg.description %>', 11 ' * @version v<%= pkg.version %>', 12 ' * @link <%= pkg.homepage %>', 13 ' * @license <%= pkg.license %>', 14 ' */', 15 '', 16 '' 17 ].join('\n');4 const autoprefixer = require('gulp-autoprefixer'); 5 const babel = require('gulp-babel'); 6 const concat = require('gulp-concat'); 7 const gulp = require('gulp'); 8 const header = require('gulp-header'); 9 const sass = require('gulp-sass'); 10 const sassGlob = require('gulp-sass-glob'); 11 const sourcemaps = require('gulp-sourcemaps'); 12 const uglify = require('gulp-uglify'); 13 const zip = require('gulp-zip'); 18 14 19 var dist = __dirname + '/dist'; 15 const project = { 16 root: nodePath.posix.normalize(__dirname) 17 }; 20 18 21 gulp.task('vendor', function() { 22 gulp.src('node_modules/hogan.js/dist/*.js').pipe(gulp.dest(dist + '/hogan')); 23 gulp.src('node_modules/typeahead.js/dist/*.js').pipe(gulp.dest(dist + '/typeahead')); 24 }); 19 project.node = nodePath.posix.normalize(`${project.root}/node_modules`); 20 project.src = nodePath.posix.normalize(`${project.root}/src`); 21 project.js = nodePath.posix.normalize(`${project.src}/js`); 22 project.scss = nodePath.posix.normalize(`${project.src}/scss`); 23 project.dist = nodePath.posix.normalize(`${project.root}/dist`); 24 project.vendor = nodePath.posix.normalize(`${project.dist}/vendor`); 25 project.release = nodePath.posix.normalize(`${project.dist}/release`); 25 26 26 gulp.task('js', function() { 27 gulp.src([ 28 __dirname + '/src/util.js', 29 __dirname + '/src/jarvis.js' 30 ]) 31 .pipe(concat('jarvis.js')) 32 .pipe(insert.wrap('(function(window, $, options, Bloodhound, Hogan) {\n\n', '\n\n})(this, window.jQuery, window.jarvisOptions, window.Bloodhound, window.Hogan);')) 33 .pipe(header(banner, { pkg : package } )) 34 .pipe(gulp.dest(dist)); 35 }); 27 const banner = `/** 28 * <%= package.name %> - <%= package.description %> 29 * @version v<%= package.version %> 30 * @link <%= package.homepage %> 31 * @license <%= package.license %> 32 */ 36 33 37 gulp.task('uglify', function() { 38 var pipe = gulp.src(dist + '/jarvis.js') 39 .pipe(uglify({ 40 preserveComments: 'license' 41 }).on('error', function(err) { 42 console.error(err); 43 })) 44 .pipe(concat('jarvis.min.js')) 45 .pipe(gulp.dest(dist)); 34 `; 46 35 47 return pipe; 48 }); 36 const js = () => { 37 return gulp.src( `${project.js}` + '/**/*.js' ) 38 .pipe( sourcemaps.init() ) 39 .pipe( babel( { 40 presets: [ 41 [ 42 '@babel/preset-env', 43 { 44 "useBuiltIns": "entry" 45 } 46 ] 47 ] 48 } ) ) 49 .pipe( uglify() ) 50 .pipe( header( banner, { package: package } ) ) 51 .pipe( sourcemaps.write('.') ) 52 .pipe( gulp.dest( project.dist ) ); 53 } 49 54 50 gulp.task('build', [ 51 'vendor', 52 'js', 53 'uglify' 54 ]); 55 const scss = () => { 56 return gulp.src( [`${project.scss}/**/*.scss`, `!_*.scss`] ) 57 .pipe( sourcemaps.init() ) 58 .pipe( sassGlob() ) 59 .pipe( sass( { 60 outputStyle: 'expanded' 61 } ).on( 'error', sass.logError ) ) 62 .pipe( autoprefixer() ) 63 .pipe( header( banner, { package: package } ) ) 64 .pipe( sourcemaps.write('.') ) 65 .pipe( gulp.dest( project.dist ) ); 66 } 55 67 56 gulp.task('watch', function() { 57 gulp.watch(__dirname + '/templates/*.hbs', ['templates']); 58 gulp.watch(__dirname + '/src/*.js', ['js']); 59 gulp.watch(dist + '/jarvis.js', ['uglify']); 60 }); 68 const vendor = () => { 69 const npmFiles = Object.keys(package.dependencies).map((name) => `${project.node}/${name}/**/*`); 61 70 62 gulp.task('default', [ 63 'build', 64 'watch' 65 ]); 71 return gulp.src(npmFiles, { base: project.node }) 72 .pipe(gulp.dest(project.vendor)); 73 } 74 75 const watch = () => { 76 gulp.watch( `${project.js}/**/*.js`, js ); 77 gulp.watch( `${project.scss}/**/*.scss`, scss ); 78 } 79 80 const release = () => { 81 // exlude folders from being included like svn / git / node_modules 82 return gulp.src( [ 83 `./**/*`, 84 `./**/.*`, 85 `!.git`, 86 `!.git/**/*`, 87 `!.svn`, 88 `!.svn/**/*`, 89 `!branches`, 90 `!branches/**/*`, 91 `!node_modules`, 92 `!node_modules/**/*`, 93 `!tags`, 94 `!tags/**/*`, 95 `!trunk`, 96 `!trunk/**/*`, 97 `!jarvis-release.zip`, 98 ]) 99 .pipe( zip( 'jarvis-release.zip' ) ) 100 .pipe( gulp.dest( project.root ) ); 101 } 102 103 const build = gulp.parallel( vendor, js, scss ); 104 105 gulp.task( 'build', build ); 106 gulp.task( 'build:js', js ); 107 gulp.task( 'build:scss`', scss ); 108 gulp.task( 'vendor', vendor ); 109 gulp.task( 'watch', watch ); 110 gulp.task( 'release', release ); 111 gulp.task( 'default', gulp.series( build, watch ) ); -
jarvis/trunk/jarvis.php
r1405943 r1966845 1 1 <?php 2 2 /* 3 Plugin Name: Jarvis4 Plugin URI: http://www.wpjarvis.com5 Description: Jarvis is your administration assistant, putting WordPress at your fingertips.6 Version: 0.51.07 Author: wdgdc, David Everett, Joan Piedra, Kurtis Shaner8 Author URI: http://www.webdevelopmentgroup.com9 License: GPLv2 or later10 Text Domain: jarvis3 Plugin Name: Jarvis 4 Plugin URI: http://www.wpjarvis.com 5 Description: Jarvis is your administration assistant, putting WordPress at your fingertips. 6 Version: 1.0.0 7 Author: The Web Development Group, David Everett, Joan Piedra, Kurtis Shaner, Doug Axelrod 8 Author URI: http://www.wdg.co 9 License: GPLv2 or later 10 Text Domain: jarvis 11 11 */ 12 12 13 class Jarvis { 13 namespace Jarvis; 14 14 15 private static $_instance;16 public static function get_instance() { 17 if (empty(self::$_instance)) { 18 self::$_instance = new self(); 19 }20 return self::$_instance;15 define( 'JARVIS_PATH', __DIR__ ); 16 define( 'JARVIS_URI', plugins_url( '', __FILE__ ) ); 17 18 spl_autoload_register( function( $class_name ) { 19 if ( ! preg_match( '/^' . __NAMESPACE__ . '/', $class_name ) ) { 20 return; 21 21 } 22 22 23 private $options = array( 24 'hotkey' => '/', 25 'keyCode' => 191, 26 'loadingimg' => 'img/wpspin.gif', 27 'dashicons' => false 28 ); 23 $path = preg_replace( '/^' . __NAMESPACE__. '/', __DIR__ . '/src/php', $class_name ); 24 $path = strtolower( str_replace( [ '\\', '_' ], [ '/', '-' ], $path ) ) . '.php'; 29 25 30 private function __construct() {31 global $wp_version;32 $this->options['loadingimg'] = plugins_url($this->options['loadingimg'], __FILE__);33 $this->options['dashicons'] = (version_compare($wp_version, '3.8', '>=')) ? true : false;26 if ( file_exists( $path ) ) { 27 require_once $path; 28 } 29 } ); 34 30 35 add_action('admin_bar_menu', array($this, 'menubar_icon'), 100); 36 add_action('admin_enqueue_scripts', array($this, 'admin_enqueue_scripts')); 37 add_action('admin_init', array($this, 'admin_init')); 38 add_action('edit_user_profile', array($this, 'show_user_profile')); 39 add_action('edit_user_profile_update', array($this, 'edit_user_profile_update')); 40 add_action('personal_options_update', array($this, 'edit_user_profile_update')); 41 add_action('show_user_profile', array($this, 'show_user_profile')); 42 add_action('wp_ajax_jarvis-search', array($this, 'get_search_results'), 1); 43 44 } 45 46 /** 47 * Grab the users keycode setting 48 * 49 * @access public 50 * @action admin_init 51 */ 52 public function admin_init() { 53 if ($user_keycode = get_user_meta(get_current_user_id(), 'jarvis_keycode', true)) { 54 $this->options['keyCode'] = (int) $user_keycode; 55 } 56 if ($user_hotkey = get_user_meta(get_current_user_id(), 'jarvis_hotkey', true)) { 57 $this->options['hotkey'] = $user_hotkey; 58 } 59 } 60 61 /** 62 * Add the field and script to customize the Jarvis keyCode 63 * 64 * @access public 65 * @action show_user_profile, edit_user_profile 66 */ 67 public function show_user_profile( $user ) { ?> 68 <h3>Jarvis</h3> 69 70 <table class="form-table"> 71 <tr> 72 <th><label for="jarvis-hotkey">Hotkey</label></th> 73 <td> 74 <p><input type="text" name="jarvis_hotkey" id="jarvis_hotkey" value="<?php echo $this->options['hotkey']; ?>" class="regular-text" autocomplete="off" style="width:25px;text-align:center;" /></p> 75 <p><span class="description">Enter the key you would like to invoke jarvis with. Supports lowercase a-z, 0-9, and any of these special characters: ; = , - . / ` [ \ ] ' only.</span></p> 76 <input type="hidden" id="jarvis_keycode" name="jarvis_keycode" value="<?php echo $this->options['keyCode']; ?>"> 77 </td> 78 </tr> 79 </table> 80 81 <script> 82 (function() { 83 var hotKey = document.getElementById('jarvis_hotkey'); 84 var keyCode = document.getElementById('jarvis_keycode'); 85 var keys = { 86 "0":48,"1":49,"2":50,"3":51,"4":52,"5":53,"6":54,"7":55,"8":56,"9":57,"a":65,"b":66,"c":67,"d":68,"e":69,"f":70, 87 "g":71,"h":72,"i":73,"j":74,"k":75,"l":76,"m":77,"n":78,"o":79,"p":80,"q":81,"r":82,"s":83,"t":84,"u":85,"v":86, 88 "w":87,"x":88,"y":89,"z":90,";":186,"=":187,",":188,"-":189,".":190,"/":191,"`":192,"[":219,"\\":220,"]":221,"'":222 89 }; 90 var keyCodes = []; 91 for(var key in keys) { 92 if (keys.hasOwnProperty(key)) { 93 keyCodes.push(keys[key]); 94 } 95 } 96 97 var keyUp = function(e) { 98 if (keyCodes.indexOf(e.which) > -1) { 99 this.value = this.value.charAt(0).toLowerCase(); 100 keyCode.value = keys[this.value]; 101 } else { 102 this.value = ''; 103 keyCode.value = ''; 104 } 105 } 106 jQuery(hotKey).on('keyup', keyUp); 107 })(); 108 </script> 109 <?php } 110 111 /** 112 * Save user fields 113 * 114 * @access public 115 * @action personal_options_update, edit_user_profile_update 116 */ 117 public function edit_user_profile_update( $user_id ) { 118 if ( current_user_can( 'edit_user', $user_id ) ) { 119 update_user_meta( $user_id, 'jarvis_hotkey', $_POST['jarvis_hotkey'] ); 120 update_user_meta( $user_id, 'jarvis_keycode', $_POST['jarvis_keycode'] ); 121 } 122 } 123 124 /** 125 * Enqueue jarvis style and scripts 126 * 127 * @access public 128 * @action admin_enqueue_scripts 129 */ 130 public function admin_enqueue_scripts() { 131 if (is_user_logged_in()) { 132 wp_enqueue_style('wp-jarvis', plugins_url('css/jarvis.css', __FILE__)); 133 wp_register_script('typeahead', plugins_url('dist/typeahead/typeahead.bundle.min.js', __FILE__), array('jquery')); 134 wp_register_script('hogan', plugins_url('dist/hogan/hogan-3.0.2.min.js', __FILE__), null, '3.0.2'); 135 wp_enqueue_script('wp-jarvis', plugins_url('dist/jarvis.min.js', __FILE__), array('jquery', 'typeahead', 'hogan'), '0.50.0'); 136 wp_localize_script('wp-jarvis', 'jarvisOptions', $this->options); 137 } 138 } 139 140 /** 141 * Add Jarvis to the menu bar as a search icon 142 * 143 * @access public 144 * @action admin_footer 145 */ 146 public function menubar_icon($admin_bar) { 147 $className = ($this->options['dashicons'] === true) ? 'dashicon' : 'image'; 148 149 $admin_bar->add_menu(array( 150 'id' => 'jarvis_menubar_icon', 151 'title' => '<span>Jarvis Search</span>', 152 'href' => '#jarvis', 153 'meta' => array( 154 'title' => 'Invoke Jarvis', 155 'class' => $className 156 ), 157 'parent' => 'top-secondary' 158 )); 159 } 160 161 /** 162 * Prepend post_id search to main search query 163 * 164 * @access private 165 */ 166 private function search_post_id($id = null) { 167 if (!empty($id)) { 168 $post = get_post($id); 169 170 if (!empty($post)) { 171 172 $post_result = (object) array( 173 'id' => $post->ID, 174 'title' => apply_filters('the_title', $post->post_title) . " - (ID $id)", 175 'type' => $post->post_type, 176 'kind' => $post->post_type, 177 'isId' => true 178 ); 179 180 array_unshift($this->results, $post_result); 181 } 182 } 183 } 184 185 /** 186 * Grab the item edit url's and thumbnails 187 * 188 * @access private 189 */ 190 private function normalize($result) { 191 $typeEditPaths = array( 192 '_default_' => 'post.php?post=%s&action=edit', 193 'term' => 'edit-tags.php?action=edit&tag_ID=%s&taxonomy=%s', 194 'post' => 'post.php?post=%s&action=edit' 195 ); 196 $editUrl = (isset($typeEditPaths[$result->kind])) ? $typeEditPaths[$result->kind] : $typeEditPaths['_default_']; 197 198 $result->href = admin_url(sprintf($editUrl, $result->id, $result->type)); 199 200 switch($result->type) { 201 case 'attachment': 202 $result->att_src = wp_get_attachment_image_src($result->id, array(28,28)); 203 $result->att_src = $result->att_src[0]; 204 break; 205 case 'post': 206 $result->att_src = wp_get_attachment_image_src(get_post_thumbnail_id($result->id, array(28,28))); 207 $result->att_src = $result->att_src[0]; 208 break; 209 } 210 211 return $result; 212 } 213 214 /** 215 * Grab the item edit url's and thumbnails 216 * 217 * @access public 218 * @action wp_ajax_jarvis-search 219 */ 220 221 public function get_search_results() { 222 global $wpdb; 223 224 // Don't break the json if debug is off 225 if (!defined('WP_DEBUG') || !WP_DEBUG) { 226 error_reporting(0); 227 } 228 229 $_REQUEST['q'] = isset($_REQUEST['q']) ? $_REQUEST['q'] : ''; 230 231 $srch_qry = $wpdb->esc_like($_REQUEST['q']); 232 $srch_escaped_spaces = '%'.str_replace(' ', '%', $srch_qry).'%'; 233 234 $post_types = "'".implode("','", array_values(get_post_types(array('show_ui' => true))))."'"; 235 236 $strQry = "SELECT 237 $wpdb->terms.term_id as 'id', 238 $wpdb->terms.`name` as 'title', 239 $wpdb->term_taxonomy.taxonomy as 'type', 240 'term' as 'kind', 241 $wpdb->terms.slug as 'slug', 242 FLOOR( (LENGTH($wpdb->terms.term_id) - LENGTH(REPLACE(LOWER($wpdb->terms.term_id), LOWER(%s), '')) / LENGTH(%s)) ) as 'relv_id', 243 FLOOR( (LENGTH($wpdb->term_taxonomy.taxonomy) - LENGTH(REPLACE(LOWER($wpdb->term_taxonomy.taxonomy), LOWER(%s), '')) / LENGTH(%s)) ) as 'relv_title', 244 FLOOR( (LENGTH($wpdb->terms.`name`) - LENGTH(REPLACE(LOWER($wpdb->terms.`name`), LOWER(%s), '')) / LENGTH(%s)) ) as 'relv_type', 245 FLOOR( LENGTH($wpdb->terms.slug) / LENGTH(REPLACE(LOWER($wpdb->terms.slug), LOWER(%s), '')) ) as 'relv_slug' 246 FROM 247 $wpdb->terms 248 INNER JOIN 249 $wpdb->term_taxonomy ON $wpdb->term_taxonomy.term_id = $wpdb->terms.term_id 250 WHERE 251 $wpdb->terms.`name` LIKE %s 252 OR 253 $wpdb->terms.slug LIKE %s 254 UNION 255 SELECT 256 $wpdb->posts.ID as 'id', 257 $wpdb->posts.post_title as 'title', 258 $wpdb->posts.post_type as 'type', 259 'post' as 'kind', 260 $wpdb->posts.post_name as 'slug', 261 FLOOR( (LENGTH($wpdb->posts.ID) - LENGTH(REPLACE(LOWER($wpdb->posts.ID), LOWER(%s), '')) / LENGTH(%s)) ) as 'relv_id', 262 FLOOR( (LENGTH($wpdb->posts.post_title) - LENGTH(REPLACE(LOWER($wpdb->posts.post_title), LOWER(%s), '')) / LENGTH(%s)) ) as 'relv_title', 263 FLOOR( (LENGTH($wpdb->posts.post_type) - LENGTH(REPLACE(LOWER($wpdb->posts.post_type), LOWER(%s), '')) / LENGTH(%s)) ) as 'relv_type', 264 FLOOR( (LENGTH($wpdb->posts.post_name) / LENGTH(REPLACE(LOWER($wpdb->posts.post_name), LOWER(%s), '')) ) ) as 'relv_slug' 265 FROM 266 $wpdb->posts 267 WHERE 268 $wpdb->posts.post_status NOT IN ('revision', 'auto-draft') AND $wpdb->posts.post_type <> 'revision' 269 AND 270 $wpdb->posts.post_type IN ($post_types) 271 AND ( 272 $wpdb->posts.post_title LIKE %s 273 OR 274 $wpdb->posts.post_name LIKE %s 275 ) 276 ORDER BY relv_id, relv_slug, relv_type, relv_title DESC 277 LIMIT 20 278 "; 279 280 $sql_prepared = array( 281 $srch_qry, $srch_qry, $srch_qry, $srch_qry, $srch_qry, $srch_qry, $srch_qry, 282 $srch_escaped_spaces, $srch_escaped_spaces, 283 $srch_qry, $srch_qry, $srch_qry, $srch_qry, $srch_qry, $srch_qry, $srch_qry, 284 $srch_escaped_spaces, $srch_escaped_spaces 285 ); 286 287 $this->results = $wpdb->get_results( $wpdb->prepare($strQry, $sql_prepared) ); 288 289 $this->search_post_id($_REQUEST['q']); 290 $this->results = array_map(array($this, 'normalize'), $this->results); 291 292 wp_send_json_success($this->results); 293 } 294 } 295 296 if (is_admin()) { 297 Jarvis::get_instance(); 298 } 299 ?> 31 add_action( 'plugins_loaded', __NAMESPACE__ . '\Plugin::get_instance' ); -
jarvis/trunk/package.json
r1405943 r1966845 1 1 { 2 2 "name": "jarvis", 3 "version": " 0.51.0",3 "version": "1.0.0", 4 4 "description": " Jarvis is your admin assistant, putting WordPress at your fingertips via a quicksearch interface.", 5 5 "main": "index.js", 6 6 "scripts": { 7 "gulp": "gulp" 7 "build": "gulp build", 8 "build:js": "gulp build:js", 9 "build:scss": "gulp build:scss", 10 "watch": "gulp watch", 11 "vendor": "gulp vendor", 12 "release": "gulp release", 13 "start": "gulp" 8 14 }, 9 15 "repository": { … … 18 24 "homepage": "https://github.com/WDGDC/Jarvis#readme", 19 25 "devDependencies": { 20 "gulp": "^3.9.1", 26 "@babel/core": "^7.1.2", 27 "@babel/preset-env": "^7.1.0", 28 "gulp": "^4.0.0", 29 "gulp-autoprefixer": "^6.0.0", 30 "gulp-babel": "^8.0.0", 21 31 "gulp-concat": "^2.6.0", 22 "gulp-header": "^ 1.7.1",32 "gulp-header": "^2.0.5", 23 33 "gulp-insert": "^0.5.0", 24 "gulp-uglify": "^1.5.3" 34 "gulp-sass": "^4.0.1", 35 "gulp-sass-glob": "^1.0.9", 36 "gulp-sourcemaps": "^2.6.4", 37 "gulp-uglify": "^3.0.1", 38 "gulp-zip": "^4.2.0" 25 39 }, 26 40 "dependencies": { 27 "hogan.js": "^3.0.2",28 41 "typeahead.js": "^0.11.1" 29 42 } -
jarvis/trunk/readme.txt
r1405943 r1966845 6 6 Author URI: http://www.webdevelopmentgroup.com 7 7 Author: wdgdc 8 Requires at least: 3.39 Tested up to: 4. 5.110 Stable tag: 0.51.011 Version: 0.51.08 Requires at least: 4.8 9 Tested up to: 4.9.8 10 Stable tag: 1.0.0 11 Version: 1.0.0 12 12 License: GPLv2 or later 13 13 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 25 25 * Edit your contact page: `/` + `Contact` + enter and you're there. 26 26 * Access your post about caving in Nigeria from last year: `/` + `Nigeria Caving` + enter and you're there. 27 * Flush the site rewrite rules: `/` + `Flush Rewrite Rules` + enter 27 28 28 29 The idea is to make it easier for anyone using the admin side of WordPress to get to the pages they're looking for. 29 30 30 Learn more about [The Web Development Group](http://www.webdevelopmentgroup.com), our [web design process](http://www.webdevelopmentgroup.com/services/web-design) and [WordPress development experience](http://www.webdevelopmentgroup.com/services/wordpress-development). 31 Each user can also cusomize their own quick key, and color scheme! 32 33 Learn more about [The Web Development Group](http://www.webdevelopmentgroup.com) 31 34 32 35 33 36 == Installation == 34 37 35 1. Upload the plugin folder to the /wp-content/plugins/ directory 36 1. Activate the plugin through the 'Plugins' menu in WordPress 37 1. Type `/` anywhere in the admin section of WordPress or click the Jarvis button in the toolbar. 38 38 1. Upload the plugin folder to the /wp-content/plugins/ directory 39 2. Activate the plugin through the 'Plugins' menu in WordPress 40 3. Type `/` anywhere in the admin section of WordPress or click the Jarvis button in the toolbar. 39 41 or 40 42 41 43 Install using the Plugin Installer. 42 44 43 == Upgrade Notice ==44 45 You'll want to upgrade to this version, I guarantee it.46 47 45 == Screenshots == 48 46 49 47 1. First click the Jarvis button or hit the / button. 48 50 49 2. Then start typing your search query. Results will show up below the search box. 50 51 3. Ectoplasm theme - showing the Flush Rewrite Rules action 52 53 4. View image thumbnails for both attachments and featured images 54 55 5. Jarvis on mobile 51 56 52 57 == Frequently Asked Questions == … … 61 66 == Changelog == 62 67 63 = 0.1 = 64 * Internal testing at WDG. 68 = 1.0.0 = 69 * Rewrite most of Jarvis 70 * New - User search 71 * New - Mobile compatibility 72 * New - Add Instant Actions that can be selected that are not in the admin menu 73 * New - Nonce security for searches 74 * New - Theme support! 75 * Improved - icon detection methods such as dashicons with custom fonts 76 * Improved - Hi-DPI loading icon 77 * Drop support for IE < 11 78 * New gulp build pipeline 79 * Remove Hogan in favor of underscore templates 80 * Removed - support for old versions of wordpress 81 * Removed - support for IE < 11 65 82 66 = 0. 2=67 * Official initial release.83 = 0.51.0 = 84 * Add post type check to search query to only query post types shown in wp-admin 68 85 69 = 0.3 = 70 * Updated to work with dashicons of WP 3.8+ 71 * Use search icon instead of J as a more intuitive icon 72 73 = 0.31 = 74 * Quick bug fix for icon issue that lead to database results not being shown 86 = 0.50.0 = 87 * Refactored to use the latest Twitter Typeahead 75 88 76 89 = 0.40 = … … 79 92 * add user setting for invoking jarvis 80 93 81 = 0. 50.0=82 * Refactored to use the latest Twitter Typeahead94 = 0.31 = 95 * Quick bug fix for icon issue that lead to database results not being shown 83 96 84 = 0.51.0 = 85 * Add post type check to search query to only query post types shown in wp-admin 97 = 0.3 = 98 * Updated to work with dashicons of WP 3.8+ 99 * Use search icon instead of J as a more intuitive icon 100 101 = 0.2 = 102 * Official initial release. 103 104 = 0.1 = 105 * Internal testing at WDG. 106 -
jarvis/trunk/src
-
Property
svn:ignore
set to
.git
-
Property
svn:ignore
set to
Note: See TracChangeset
for help on using the changeset viewer.