Stream - Version 3.0.2

Version Description

  • October 2, 2015 =

  • Tweak: Helper function for running Stream queries added (#774)

  • Tweak: Migration dialog removed (76e809f)

  • Tweak: Better handling of draft saving and auto-saving (#775)

  • Tweak: Records page title size now matches other admin pages (afcced8)

  • Fix: Database update dialog is now displayed correctly (#773)

  • Fix: The record's connector was being incorrectly stored as the connector name (#773)

  • Fix: Record action links are back (#773)

  • Fix: Jetpack is now able to connect without error while Stream is active (#768)

  • Fix: Reset Filters text no longer wraps to a second line (#765)

Props @lukecarbis

Download this release

Release Info

Developer lukecarbis
Plugin Icon 128x128 Stream
Version 3.0.2
Comparing to
See all releases

Code changes from version 3.0.1 to 3.0.2

.mailmap ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ Luke Carbis <luke@xwp.co> <Luke.Carbis@news.com.au>
2
+ Luke Carbis <luke@xwp.co> <luke.carbis@x-team.com.au>
3
+ Luke Carbis <luke@xwp.co> <luke.carbis@x-team.com>
4
+ Luke Carbis <luke@xwp.co> <luke@carbis.com.au>
classes/class-admin.php CHANGED
@@ -24,11 +24,6 @@ class Admin {
24
  */
25
  public $live_update;
26
 
27
- /**
28
- * @var Migrate
29
- */
30
- public $migrate;
31
-
32
  /**
33
  * Menu page screen id
34
  *
@@ -183,7 +178,6 @@ class Admin {
183
  public function init() {
184
  $this->network = new Network( $this->plugin );
185
  $this->live_update = new Live_Update( $this->plugin );
186
- $this->migrate = new Migrate( $this->plugin );
187
  }
188
 
189
  /**
@@ -394,32 +388,6 @@ class Admin {
394
  );
395
  }
396
 
397
- if ( $this->migrate->show_migrate_notice() ) {
398
- $limit = absint( $this->migrate->limit );
399
- $record_count = absint( $this->migrate->record_count );
400
- $chunks = ceil( $record_count / $limit );
401
- $estimated_time = ( $chunks > 1 ) ? round( ( $chunks * 5 ) / 60 ) : 0;
402
- $migrate_time_message = ( $estimated_time > 1 ) ? sprintf( esc_html__( 'This will take about %d minutes.', 'stream' ), absint( $estimated_time ) ) : esc_html__( 'This could take a few minutes.', 'stream' );
403
-
404
- wp_enqueue_script( 'wp-stream-migrate', $this->plugin->locations['url'] . 'ui/js/migrate.js', array( 'jquery' ), $this->plugin->get_version() );
405
- wp_localize_script(
406
- 'wp-stream-migrate',
407
- 'wp_stream_migrate',
408
- array(
409
- 'i18n' => array(
410
- 'migrate_process_title' => esc_html__( 'Migrating Stream Records', 'stream' ),
411
- 'ignore_migrate_title' => esc_html__( 'No Records Were Migrated', 'stream' ),
412
- 'migrate_process_message' => esc_html__( 'Please do not exit this page until the process has completed.', 'stream' ) . ' ' . esc_html( $migrate_time_message ),
413
- 'confirm_start_migrate' => ( $estimated_time > 1 ) ? sprintf( esc_html__( 'Please note: This process will take about %d minutes to complete.', 'stream' ), absint( $estimated_time ) ) : esc_html__( 'Please note: This process could take a few minutes to complete.', 'stream' ),
414
- 'confirm_migrate_reminder' => esc_html__( 'Please note: Your existing records will not appear in Stream until you have migrated them to your local database.', 'stream' ),
415
- 'confirm_ignore_migrate' => sprintf( esc_html__( 'Are you sure you want to lose all %s existing Stream records without migrating?', 'stream' ), number_format( $record_count ), ( $estimated_time > 1 && is_multisite() ) ? sprintf( esc_html__( 'about %d', 'stream' ), absint( $estimated_time ) ) : esc_html__( 'a few', 'stream' ) ),
416
- ),
417
- 'chunks' => absint( $chunks ),
418
- 'nonce' => wp_create_nonce( 'wp_stream_migrate-' . absint( get_current_blog_id() ) . absint( get_current_user_id() ) ),
419
- )
420
- );
421
- }
422
-
423
  /**
424
  * The maximum number of items that can be updated in bulk without receiving a warning.
425
  *
@@ -538,7 +506,7 @@ class Admin {
538
  background: none !important;
539
  background-repeat: no-repeat;
540
  }
541
- body.{$body_class} #wpbody-content .wrap h2:nth-child(1):before {
542
  font-family: 'WP Stream' !important;
543
  content: '\\73';
544
  padding: 0 8px 0 0;
@@ -713,7 +681,7 @@ class Admin {
713
  $this->list_table->prepare_items();
714
  ?>
715
  <div class="wrap">
716
- <h2><?php echo esc_html( get_admin_page_title() ) ?></h2>
717
  <?php $this->list_table->display() ?>
718
  </div>
719
  <?php
@@ -734,7 +702,7 @@ class Admin {
734
  wp_enqueue_script( 'wp-stream-settings', $this->plugin->locations['url'] . 'ui/js/settings.js', array( 'jquery' ), $this->plugin->get_version(), true );
735
  ?>
736
  <div class="wrap">
737
- <h2><?php echo esc_html( get_admin_page_title() ) ?></h2>
738
 
739
  <?php if ( ! empty( $page_description ) ) : ?>
740
  <p><?php echo esc_html( $page_description ) ?></p>
24
  */
25
  public $live_update;
26
 
 
 
 
 
 
27
  /**
28
  * Menu page screen id
29
  *
178
  public function init() {
179
  $this->network = new Network( $this->plugin );
180
  $this->live_update = new Live_Update( $this->plugin );
 
181
  }
182
 
183
  /**
388
  );
389
  }
390
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
391
  /**
392
  * The maximum number of items that can be updated in bulk without receiving a warning.
393
  *
506
  background: none !important;
507
  background-repeat: no-repeat;
508
  }
509
+ body.{$body_class} #wpbody-content .wrap h1:nth-child(1):before {
510
  font-family: 'WP Stream' !important;
511
  content: '\\73';
512
  padding: 0 8px 0 0;
681
  $this->list_table->prepare_items();
682
  ?>
683
  <div class="wrap">
684
+ <h1><?php echo esc_html( get_admin_page_title() ) ?></h1>
685
  <?php $this->list_table->display() ?>
686
  </div>
687
  <?php
702
  wp_enqueue_script( 'wp-stream-settings', $this->plugin->locations['url'] . 'ui/js/settings.js', array( 'jquery' ), $this->plugin->get_version(), true );
703
  ?>
704
  <div class="wrap">
705
+ <h1><?php echo esc_html( get_admin_page_title() ) ?></h1>
706
 
707
  <?php if ( ! empty( $page_description ) ) : ?>
708
  <p><?php echo esc_html( $page_description ) ?></p>
classes/class-cli.php CHANGED
@@ -111,7 +111,7 @@ class CLI extends \WP_CLI_Command {
111
 
112
  $query_args['fields'] = implode( ',', $fields );
113
 
114
- $records = wp_stream_get_instance()->db->query->query( $query_args );
115
 
116
  // Make structure Formatter compatible
117
  foreach ( (array) $records as $key => $record ) {
@@ -212,7 +212,7 @@ class CLI extends \WP_CLI_Command {
212
  * @return void
213
  */
214
  private function connection() {
215
- $query = wp_stream_get_instance()->db->query->query( array( 'records_per_page' => 1, 'fields' => 'created' ) );
216
 
217
  if ( ! $query ) {
218
  WP_CLI::error( esc_html__( 'SITE IS DISCONNECTED', 'stream' ) );
111
 
112
  $query_args['fields'] = implode( ',', $fields );
113
 
114
+ $records = wp_stream_get_instance()->db->query( $query_args );
115
 
116
  // Make structure Formatter compatible
117
  foreach ( (array) $records as $key => $record ) {
212
  * @return void
213
  */
214
  private function connection() {
215
+ $query = wp_stream_get_instance()->db->query( array( 'records_per_page' => 1, 'fields' => 'created' ) );
216
 
217
  if ( ! $query ) {
218
  WP_CLI::error( esc_html__( 'SITE IS DISCONNECTED', 'stream' ) );
classes/class-connector.php CHANGED
@@ -93,8 +93,7 @@ abstract class Connector {
93
  * @return bool
94
  */
95
  public function log( $message, $args, $object_id, $context, $action, $user_id = null ) {
96
- $class = get_called_class();
97
- $connector = str_replace( array( 'WP_Stream\\', 'Connector_' ), array( '', '' ), $class );
98
 
99
  $data = apply_filters(
100
  'wp_stream_log_data',
93
  * @return bool
94
  */
95
  public function log( $message, $args, $object_id, $context, $action, $user_id = null ) {
96
+ $connector = $this->name;
 
97
 
98
  $data = apply_filters(
99
  'wp_stream_log_data',
classes/class-db.php CHANGED
@@ -198,4 +198,17 @@ class DB {
198
 
199
  return isset( $this->plugin->connectors->term_labels[ $column ] ) ? $this->plugin->connectors->term_labels[ $column ] : array();
200
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
201
  }
198
 
199
  return isset( $this->plugin->connectors->term_labels[ $column ] ) ? $this->plugin->connectors->term_labels[ $column ] : array();
200
  }
201
+
202
+ /**
203
+ * Helper function for calling $this->query->query()
204
+ *
205
+ * @see Query->query()
206
+ *
207
+ * @param array Query args
208
+ *
209
+ * @return array Stream Records
210
+ */
211
+ function query( $args ) {
212
+ return $this->query->query( $args );
213
+ }
214
  }
classes/class-install.php CHANGED
@@ -24,7 +24,7 @@ class Install {
24
 
25
  /**
26
  * Holds version of database at last update
27
- ] *
28
  * @var string
29
  */
30
  public $db_version;
@@ -113,11 +113,7 @@ class Install {
113
  if ( ! $update ) {
114
  $this->update_required = true;
115
  $this->success_db = $this->update( $this->db_version, $this->plugin->get_version(), array( 'type' => 'auto' ) );
116
-
117
- return;
118
- }
119
-
120
- if ( 'update_and_continue' === $update ) {
121
  $this->success_db = $this->update( $this->db_version, $this->plugin->get_version(), array( 'type' => 'user' ) );
122
  }
123
 
@@ -333,7 +329,7 @@ class Install {
333
  <div class="updated">
334
  <form method="post" action="<?php echo esc_url( remove_query_arg( 'wp_stream_update' ) ) ?>" style="display:inline;">
335
  <p><strong><?php esc_html_e( 'Update Complete', 'stream' ) ?></strong></p>
336
- <p><?php esc_html_e( sprintf( 'Your Stream database has been successfully updated from %1$s to %2$s!', esc_html( $this->db_version ), esc_html( WP_Stream::VERSION ) ), 'stream' ) ?></p>
337
  <?php submit_button( esc_html__( 'Continue', 'stream' ), 'secondary', false ) ?>
338
  </form>
339
  </div>
@@ -353,6 +349,7 @@ class Install {
353
  public function db_update_versions() {
354
  $db_update_versions = array(
355
  '3.0.0' /* @version 3.0.0 Drop the stream_context table, changes to stream table */,
 
356
  );
357
 
358
  /**
24
 
25
  /**
26
  * Holds version of database at last update
27
+ *
28
  * @var string
29
  */
30
  public $db_version;
113
  if ( ! $update ) {
114
  $this->update_required = true;
115
  $this->success_db = $this->update( $this->db_version, $this->plugin->get_version(), array( 'type' => 'auto' ) );
116
+ } elseif ( 'update_and_continue' === $update ) {
 
 
 
 
117
  $this->success_db = $this->update( $this->db_version, $this->plugin->get_version(), array( 'type' => 'user' ) );
118
  }
119
 
329
  <div class="updated">
330
  <form method="post" action="<?php echo esc_url( remove_query_arg( 'wp_stream_update' ) ) ?>" style="display:inline;">
331
  <p><strong><?php esc_html_e( 'Update Complete', 'stream' ) ?></strong></p>
332
+ <p><?php esc_html_e( sprintf( 'Your Stream database has been successfully updated from %1$s to %2$s!', esc_html( $this->db_version ), esc_html( $this->plugin->get_version() ) ), 'stream' ) ?></p>
333
  <?php submit_button( esc_html__( 'Continue', 'stream' ), 'secondary', false ) ?>
334
  </form>
335
  </div>
349
  public function db_update_versions() {
350
  $db_update_versions = array(
351
  '3.0.0' /* @version 3.0.0 Drop the stream_context table, changes to stream table */,
352
+ '3.0.2' /* @version 3.0.2 Fix uppercase values in stream table, connector column */,
353
  );
354
 
355
  /**
classes/class-list-table.php CHANGED
@@ -204,7 +204,7 @@ class List_Table extends \WP_List_Table {
204
  $args['records_per_page'] = $this->get_items_per_page( 'edit_stream_per_page', 20 );
205
  }
206
 
207
- $items = $this->plugin->db->query->query( $args );
208
 
209
  return $items;
210
  }
204
  $args['records_per_page'] = $this->get_items_per_page( 'edit_stream_per_page', 20 );
205
  }
206
 
207
+ $items = $this->plugin->db->query( $args );
208
 
209
  return $items;
210
  }
classes/class-migrate.php DELETED
@@ -1,352 +0,0 @@
1
- <?php
2
- namespace WP_Stream;
3
-
4
- class Migrate {
5
- /**
6
- * Hold Plugin class
7
- * @var Plugin
8
- */
9
- public $plugin;
10
-
11
- /**
12
- * Hold site API Key
13
- *
14
- * @var string
15
- */
16
- private $api_key;
17
-
18
- /**
19
- * Hold site UUID
20
- *
21
- * @var string
22
- */
23
- private $site_uuid;
24
-
25
- /**
26
- * Hold the total number of legacy records found in the cloud
27
- *
28
- * @var int
29
- */
30
- public $record_count;
31
-
32
- /**
33
- * Limit payload chunks to a certain number of records
34
- *
35
- * @var int
36
- */
37
- public $limit;
38
-
39
- /**
40
- * Class constructor.
41
- *
42
- * @param Plugin $plugin The main Plugin class.
43
- */
44
- public function __construct( $plugin ) {
45
- $this->plugin = $plugin;
46
-
47
- $this->api_key = get_option( 'wp_stream_site_api_key' );
48
- $this->site_uuid = get_option( 'wp_stream_site_uuid' );
49
-
50
- // Exit early if disconnected
51
- if ( ! $this->is_connected() ) {
52
- return;
53
- }
54
-
55
- $this->limit = absint( apply_filters( 'wp_stream_migrate_chunk_size', 100 ) );
56
-
57
- $this->record_count = $this->get_record_count();
58
-
59
- // Display admin notice
60
- add_action( 'admin_notices', array( $this, 'migrate_notice' ), 9 );
61
-
62
- // AJAX callback for migrate action
63
- add_action( 'wp_ajax_wp_stream_migrate_action', array( $this, 'migrate_action_callback' ) );
64
- }
65
-
66
- /**
67
- * Are we currently connected to WP Stream?
68
- *
69
- * @return bool
70
- */
71
- private function is_connected() {
72
- return ( ! empty( $this->api_key ) && ! empty( $this->site_uuid ) );
73
- }
74
-
75
- /**
76
- * Disconnect from WP Stream
77
- */
78
- private function disconnect() {
79
- delete_option( 'wp_stream_site_api_key' );
80
- delete_option( 'wp_stream_site_uuid' );
81
- delete_option( 'wp_stream_delay_migration' );
82
- delete_option( 'wp_stream_site_restricted' );
83
-
84
- $this->api_key = false;
85
- $this->site_uuid = false;
86
- }
87
-
88
- /**
89
- * Search for records
90
- *
91
- * @param array $query
92
- *
93
- * @return mixed Response body on success, or FALSE on failure
94
- */
95
- private function search( $query = array() ) {
96
- if ( ! $this->is_connected() ) {
97
- return false;
98
- }
99
-
100
- $defaults = array(
101
- 'sort' => array(
102
- array(
103
- 'created' => array(
104
- 'order' => 'asc',
105
- ),
106
- ),
107
- ),
108
- );
109
-
110
- $last = get_option( 'wp_stream_last_migrated' );
111
-
112
- if ( $last ) {
113
- $defaults['filter'] = array(
114
- 'and' => array(
115
- array(
116
- 'range' => array(
117
- 'created' => array(
118
- 'gt' => $last,
119
- ),
120
- ),
121
- ),
122
- ),
123
- );
124
- }
125
-
126
- $body['sites'] = array( $this->site_uuid );
127
- $body['query'] = array_merge( $defaults, (array) $query );
128
-
129
- $args = array(
130
- 'headers' => array(
131
- 'Stream-Site-API-Key' => $this->api_key,
132
- 'Content-Type' => 'application/json',
133
- ),
134
- 'method' => 'POST',
135
- 'body' => wp_stream_json_encode( $body ),
136
- 'sslverify' => true,
137
- );
138
-
139
- $response = wp_safe_remote_request( 'https://api.wp-stream.com/search', $args );
140
-
141
- if ( is_wp_error( $response ) ) {
142
- return false;
143
- }
144
-
145
- return json_decode( wp_remote_retrieve_body( $response ) );
146
- }
147
-
148
- /**
149
- * Get the total number of records found
150
- *
151
- * @return int
152
- */
153
- private function get_record_count() {
154
- $response = $this->search( array( 'size' => 0 ) );
155
-
156
- if ( empty( $response->meta->total ) ) {
157
- return 0;
158
- }
159
-
160
- return absint( $response->meta->total );
161
- }
162
-
163
- /**
164
- * Get a chunk of records
165
- *
166
- * @param int $limit (optional)
167
- * @param int $offset (optional)
168
- *
169
- * @return array|bool An array of record arrays, or FALSE if no records were found
170
- */
171
- private function get_records( $limit = 100, $offset = 0 ) {
172
- $limit = is_int( $limit ) ? $limit : $this->limit;
173
-
174
- $query = array(
175
- 'size' => absint( $limit ),
176
- 'from' => absint( $offset ),
177
- );
178
-
179
- $response = $this->search( $query );
180
-
181
- if ( empty( $response->records ) ) {
182
- return false;
183
- }
184
-
185
- return $response->records;
186
- }
187
-
188
- /**
189
- * Determine where and when the migrate notice should be displayed
190
- *
191
- * @see Admin->admin_enqueue_scripts()
192
- *
193
- * @return bool
194
- */
195
- public function show_migrate_notice() {
196
- if (
197
- ! isset( $_GET['migrate_action'] ) // input var okay
198
- &&
199
- $this->is_connected()
200
- &&
201
- ! empty( $this->record_count )
202
- &&
203
- false === get_transient( 'wp_stream_delay_migration' )
204
- ) {
205
- return true;
206
- }
207
-
208
- return false;
209
- }
210
-
211
- /**
212
- * Give the user options for how to handle their records
213
- *
214
- * @action admin_notices
215
- */
216
- public function migrate_notice() {
217
- if ( ! $this->show_migrate_notice() ) {
218
- return;
219
- }
220
-
221
- $notice = sprintf(
222
- '<h3>%s</h3><strong id="stream-migrate-title">%s</strong></p><p id="stream-migrate-blog-link"><a href="https://wp-stream.com/introducing-stream-3/" target="_blank">%s</a></p><p id="stream-migrate-message">%s</p><div id="stream-migrate-progress"><progress value="0" max="100"></progress> <strong>0&#37;</strong> <em></em> <button id="stream-migrate-actions-close" class="button button-secondary">%s</button><div class="clear"></div></div><p id="stream-migrate-actions"><button id="stream-start-migrate" class="button button-primary">%s</button> <button id="stream-migrate-reminder" class="button button-secondary">%s</button> <a href="#" id="stream-ignore-migrate" class="delete">%s</a>',
223
- __( 'Stream Records Update' ),
224
- __( 'Our cloud storage services will be shutting down permanently on September 1, 2015', 'stream' ),
225
- __( 'Read the announcement post', 'stream' ),
226
- sprintf( esc_html__( 'We found %s activity records in the cloud that need to be migrated to your local database.', 'stream' ), number_format( $this->record_count ) ),
227
- __( 'Close', 'stream' ),
228
- __( 'Start Migration Now', 'stream' ),
229
- __( 'Remind Me Later', 'stream' ),
230
- __( "No thanks, I don't want to migrate", 'stream' )
231
- );
232
-
233
- $this->plugin->admin->notice( $notice, true );
234
- }
235
-
236
- /**
237
- * Ajax callback for processing migrate actions
238
- *
239
- * Break down the total number of records found into reasonably-sized
240
- * chunks and save records from each of those chunks to the local DB.
241
- *
242
- * Disconnects from WP Stream once the migration is complete.
243
- *
244
- * @action wp_ajax_wp_stream_migrate_action
245
- */
246
- public function migrate_action_callback() {
247
- $action = wp_stream_filter_input( INPUT_POST, 'migrate_action' );
248
- $nonce = wp_stream_filter_input( INPUT_POST, 'nonce' );
249
-
250
- if ( ! wp_verify_nonce( $nonce, 'wp_stream_migrate-' . absint( get_current_blog_id() ) . absint( get_current_user_id() ) ) ) {
251
- return;
252
- }
253
-
254
- set_time_limit( 0 ); // Just in case, this could take a while for some
255
-
256
- switch ( $action ) {
257
- case 'migrate':
258
- case 'continue':
259
- $this->migrate();
260
- break;
261
- case 'delay':
262
- $this->delay();
263
- break;
264
- case 'ignore':
265
- $this->ignore();
266
- break;
267
- }
268
-
269
- die();
270
- }
271
-
272
- /**
273
- * Migrate a chunk of records
274
- *
275
- * @return string JSON data
276
- */
277
- private function migrate() {
278
- $records = $this->get_records( $this->limit );
279
-
280
- // Disconnect when there are no records left
281
- if ( ! $records ) {
282
- $this->disconnect();
283
-
284
- wp_send_json_success( esc_html__( 'Migration complete!', 'stream' ) );
285
- }
286
-
287
- $records_saved = $this->save_records( $records );
288
-
289
- if ( true !== $records_saved ) {
290
- wp_send_json_error( esc_html__( 'An unknown error occurred during migration. Please try again later or contact support.', 'stream' ) );
291
- }
292
-
293
- wp_send_json_success( 'continue' );
294
- }
295
-
296
- /**
297
- * Delay the migration of records for 3 hours
298
- *
299
- * @return string JSON data
300
- */
301
- private function delay() {
302
- set_transient( 'wp_stream_delay_migration', "Don't nag me, bro", HOUR_IN_SECONDS * 3 );
303
-
304
- wp_send_json_success( esc_html__( "OK, we'll remind you again in a few hours.", 'stream' ) );
305
- }
306
-
307
- /**
308
- * Don't migrate any records
309
- *
310
- * @return string JSON data
311
- */
312
- private function ignore() {
313
- $this->disconnect();
314
-
315
- wp_send_json_success( esc_html__( 'All new activity will be stored in the local database.', 'stream' ) );
316
- }
317
-
318
- /**
319
- * Save records to the database
320
- *
321
- * @param array $records
322
- *
323
- * @return bool
324
- */
325
- private function save_records( $records ) {
326
- foreach ( $records as $record ) {
327
- // Remove existing meta field
328
- unset( $record->meta );
329
-
330
- // Map fields to the newer data model
331
- $record->user_id = $record->author;
332
- $record->user_role = $record->author_role;
333
- $record->meta = $record->stream_meta;
334
- $record->meta->user_meta = $record->author_meta;
335
-
336
- // Convert the record object to a record array
337
- // @codingStandardsIgnoreStart
338
- $record = json_decode( json_encode( $record ), true );
339
- // @codingStandardsIgnoreEnd
340
-
341
- // Save the record
342
- $inserted = $this->plugin->db->insert( $record );
343
-
344
- // Save the date of the last known migrated record
345
- if ( false !== $inserted ) {
346
- update_option( 'wp_stream_last_migrated', $record['created'] );
347
- }
348
- }
349
-
350
- return true;
351
- }
352
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/class-plugin.php CHANGED
@@ -7,7 +7,7 @@ class Plugin {
7
  *
8
  * @const string
9
  */
10
- const VERSION = '3.0.1';
11
 
12
  /**
13
  * WP-CLI command
7
  *
8
  * @const string
9
  */
10
+ const VERSION = '3.0.2';
11
 
12
  /**
13
  * WP-CLI command
connectors/class-connector-jetpack.php CHANGED
@@ -312,12 +312,23 @@ class Connector_Jetpack extends Connector {
312
  * @param array $entry
313
  */
314
  public function callback_jetpack_log_entry( array $entry ) {
315
- $method = $entry['code'];
316
- $data = $entry['data'];
 
 
 
 
 
 
 
 
 
 
317
  $context = null;
318
  $action = null;
 
319
 
320
- if ( in_array( $method, array( 'activate', 'deactivate' ) ) ) {
321
  $module_slug = $data;
322
  $module = \Jetpack::get_module( $module_slug );
323
  $module_name = $module['name'];
@@ -329,7 +340,7 @@ class Connector_Jetpack extends Connector {
329
  $module_name,
330
  ( 'activated' === $action ) ? esc_html__( 'activated', 'stream' ) : esc_html__( 'deactivated', 'stream' )
331
  );
332
- } elseif ( in_array( $method, array( 'authorize', 'unlink' ) ) ) {
333
  $user_id = intval( $data );
334
 
335
  if ( empty( $user_id ) ) {
@@ -358,8 +369,6 @@ class Connector_Jetpack extends Connector {
358
  return;
359
  }
360
 
361
- $meta = array();
362
-
363
  if ( ! $is_multisite ) {
364
  $message = sprintf(
365
  __( 'Site %s Jetpack', 'stream' ),
312
  * @param array $entry
313
  */
314
  public function callback_jetpack_log_entry( array $entry ) {
315
+ if ( isset( $entry['code'] ) ) {
316
+ $method = $entry['code'];
317
+ } else {
318
+ return;
319
+ }
320
+
321
+ if ( isset( $entry['data'] ) ) {
322
+ $data = $entry['data'];
323
+ } else {
324
+ $data = null;
325
+ }
326
+
327
  $context = null;
328
  $action = null;
329
+ $meta = array();
330
 
331
+ if ( in_array( $method, array( 'activate', 'deactivate' ) ) && ! is_null( $data ) ) {
332
  $module_slug = $data;
333
  $module = \Jetpack::get_module( $module_slug );
334
  $module_name = $module['name'];
340
  $module_name,
341
  ( 'activated' === $action ) ? esc_html__( 'activated', 'stream' ) : esc_html__( 'deactivated', 'stream' )
342
  );
343
+ } elseif ( in_array( $method, array( 'authorize', 'unlink' ) ) && ! is_null( $data ) ) {
344
  $user_id = intval( $data );
345
 
346
  if ( empty( $user_id ) ) {
369
  return;
370
  }
371
 
 
 
372
  if ( ! $is_multisite ) {
373
  $message = sprintf(
374
  __( 'Site %s Jetpack', 'stream' ),
connectors/class-connector-posts.php CHANGED
@@ -152,6 +152,8 @@ class Connector_Posts extends Connector {
152
 
153
  if ( in_array( $new, array( 'auto-draft', 'inherit' ) ) ) {
154
  return;
 
 
155
  } elseif ( 'draft' === $new && 'publish' === $old ) {
156
  $summary = _x(
157
  '"%1$s" %2$s unpublished',
@@ -165,6 +167,12 @@ class Connector_Posts extends Connector {
165
  'stream'
166
  );
167
  $action = 'untrashed';
 
 
 
 
 
 
168
  } elseif ( 'draft' === $new ) {
169
  $summary = _x(
170
  '"%1$s" %2$s drafted',
152
 
153
  if ( in_array( $new, array( 'auto-draft', 'inherit' ) ) ) {
154
  return;
155
+ } elseif ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
156
+ return;
157
  } elseif ( 'draft' === $new && 'publish' === $old ) {
158
  $summary = _x(
159
  '"%1$s" %2$s unpublished',
167
  'stream'
168
  );
169
  $action = 'untrashed';
170
+ } elseif ( 'draft' === $new && 'draft' === $old ) {
171
+ $summary = _x(
172
+ '"%1$s" %2$s draft saved',
173
+ '1: Post title, 2: Post type singular name',
174
+ 'stream'
175
+ );
176
  } elseif ( 'draft' === $new ) {
177
  $summary = _x(
178
  '"%1$s" %2$s drafted',
includes/db-updates.php CHANGED
@@ -1,4 +1,32 @@
1
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  /**
3
  * Version 3.0.0
4
  *
1
  <?php
2
+ /**
3
+ * Version 3.0.2
4
+ *
5
+ * @param string $db_version
6
+ * @param string $current_version
7
+ *
8
+ * @return string
9
+ */
10
+ function wp_stream_update_302( $db_version, $current_version ) {
11
+ global $wpdb;
12
+
13
+ $plugin = wp_stream_get_instance();
14
+ $prefix = $plugin->install->table_prefix;
15
+
16
+ $stream_entries = $wpdb->get_results( "SELECT * FROM {$prefix}stream" );
17
+ foreach ( $stream_entries as $entry ) {
18
+ $class = 'Connector_' . $entry->context;
19
+ if ( class_exists( $class ) ) {
20
+ $connector = new $class();
21
+ $wpdb->update( $prefix . 'stream', array( 'connector' => $connector->name ), array( 'ID' => $entry->ID ) );
22
+ } else {
23
+ $wpdb->update( $prefix . 'stream', array( 'connector' => strtolower( $entry->connector ) ), array( 'ID' => $entry->ID ) );
24
+ }
25
+ }
26
+
27
+ return $current_version;
28
+ }
29
+
30
  /**
31
  * Version 3.0.0
32
  *
languages/stream-en_US.mo CHANGED
Binary file
languages/stream-en_US.po CHANGED
@@ -1,8 +1,8 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Stream\n"
4
- "POT-Creation-Date: 2015-07-22 15:52+1000\n"
5
- "PO-Revision-Date: 2015-07-22 15:53+1000\n"
6
  "Last-Translator: Luke Carbis <luke@wp-stream.com>\n"
7
  "Language-Team: Luke Carbis <luke@wp-stream.com>\n"
8
  "Language: en_US\n"
@@ -22,117 +22,65 @@ msgstr ""
22
  msgid "Stream requires PHP version 5.3+, plugin is currently NOT ACTIVE."
23
  msgstr ""
24
 
25
- #: classes/class-admin.php:201
26
  msgid "All site settings have been successfully reset."
27
  msgstr ""
28
 
29
- #: classes/class-admin.php:276 classes/class-network.php:122
30
  #: connectors/class-connector-settings.php:134
31
  msgid "Stream"
32
  msgstr ""
33
 
34
- #: classes/class-admin.php:292
35
  msgid "Stream Records"
36
  msgstr ""
37
 
38
- #: classes/class-admin.php:309
39
  msgid "Stream Settings"
40
  msgstr ""
41
 
42
- #: classes/class-admin.php:314 classes/class-admin.php:691
43
  #: connectors/class-connector-settings.php:105
44
  #: connectors/class-connector-settings.php:126
45
- #: connectors/class-connector-woocommerce.php:724
46
  msgid "Settings"
47
  msgstr ""
48
 
49
- #: classes/class-admin.php:375
50
  msgid ""
51
  "Are you sure you want to delete all Stream activity records from the "
52
  "database? This cannot be undone."
53
  msgstr ""
54
 
55
- #: classes/class-admin.php:376
56
  msgid ""
57
  "Are you sure you want to reset all site settings to default? This cannot be "
58
  "undone."
59
  msgstr ""
60
 
61
- #: classes/class-admin.php:377
62
  msgid ""
63
  "Are you sure you want to uninstall and deactivate Stream? This will delete "
64
  "all Stream tables from the database and cannot be undone."
65
  msgstr ""
66
 
67
- #: classes/class-admin.php:402
68
- #, php-format
69
- msgid "This will take about %d minutes."
70
- msgstr ""
71
-
72
- #: classes/class-admin.php:402
73
- msgid "This could take a few minutes."
74
- msgstr ""
75
-
76
- #: classes/class-admin.php:410
77
- msgid "Migrating Stream Records"
78
- msgstr ""
79
-
80
- #: classes/class-admin.php:411
81
- msgid "No Records Were Migrated"
82
- msgstr ""
83
-
84
  #: classes/class-admin.php:412
85
- msgid "Please do not exit this page until the process has completed."
86
- msgstr ""
87
-
88
- #: classes/class-admin.php:413
89
- #, php-format
90
- msgid "Please note: This process will take about %d minutes to complete."
91
- msgstr ""
92
-
93
- #: classes/class-admin.php:413
94
- msgid "Please note: This process could take a few minutes to complete."
95
- msgstr ""
96
-
97
- #: classes/class-admin.php:414
98
- msgid ""
99
- "Please note: Your existing records will not appear in Stream until you have "
100
- "migrated them to your local database."
101
- msgstr ""
102
-
103
- #: classes/class-admin.php:415
104
- #, php-format
105
- msgid ""
106
- "Are you sure you want to lose all %s existing Stream records without "
107
- "migrating?"
108
- msgstr ""
109
-
110
- #: classes/class-admin.php:415
111
- #, php-format
112
- msgid "about %d"
113
- msgstr ""
114
-
115
- #: classes/class-admin.php:415
116
- msgid "a few"
117
- msgstr ""
118
-
119
- #: classes/class-admin.php:444
120
  #, php-format
121
  msgid ""
122
  "Are you sure you want to perform bulk actions on over %s items? This process "
123
  "could take a while to complete."
124
  msgstr ""
125
 
126
- #: classes/class-admin.php:579 classes/class-uninstall.php:51
127
  msgid "You don't have sufficient privileges to do this action."
128
  msgstr ""
129
 
130
- #: classes/class-admin.php:701
131
  msgid "Uninstall"
132
  msgstr ""
133
 
134
  #: classes/class-author.php:82 classes/class-author.php:90
135
- #: classes/class-settings.php:771
136
  msgid "N/A"
137
  msgstr ""
138
 
@@ -144,7 +92,7 @@ msgstr ""
144
  msgid "during WP Cron"
145
  msgstr ""
146
 
147
- #: classes/class-cli.php:217
148
  msgid "SITE IS DISCONNECTED"
149
  msgstr ""
150
 
@@ -223,49 +171,49 @@ msgstr ""
223
  msgid "Filter not supported."
224
  msgstr ""
225
 
226
- #: classes/class-install.php:174
227
  msgid "The following table is not present in the WordPress database:"
228
  msgid_plural "The following tables are not present in the WordPress database:"
229
  msgstr[0] ""
230
  msgstr[1] ""
231
 
232
- #: classes/class-install.php:184 classes/class-install.php:186
233
  #, php-format
234
  msgid ""
235
  "Please <a href=\"%s\">uninstall</a> the Stream plugin and activate it again."
236
  msgstr ""
237
 
238
- #: classes/class-install.php:265
239
  msgid "There was an error updating the Stream database. Please try again."
240
  msgstr ""
241
 
242
- #: classes/class-install.php:266
243
  msgid "Database Update Error"
244
  msgstr ""
245
 
246
- #: classes/class-install.php:313
247
  msgid "Stream Database Update Required"
248
  msgstr ""
249
 
250
- #: classes/class-install.php:314
251
  msgid ""
252
  "Stream has updated! Before we send you on your way, we need to update your "
253
  "database to the newest version."
254
  msgstr ""
255
 
256
- #: classes/class-install.php:315
257
  msgid "This process could take a little while, so please be patient."
258
  msgstr ""
259
 
260
- #: classes/class-install.php:316
261
  msgid "Update Database"
262
  msgstr ""
263
 
264
- #: classes/class-install.php:335
265
  msgid "Update Complete"
266
  msgstr ""
267
 
268
- #: classes/class-install.php:337
269
  msgid "Continue"
270
  msgstr ""
271
 
@@ -289,15 +237,15 @@ msgstr ""
289
  msgid "User"
290
  msgstr ""
291
 
292
- #: classes/class-list-table.php:81 classes/class-settings.php:729
293
  msgid "Context"
294
  msgstr ""
295
 
296
- #: classes/class-list-table.php:82 classes/class-settings.php:730
297
  msgid "Action"
298
  msgstr ""
299
 
300
- #: classes/class-list-table.php:83 classes/class-settings.php:731
301
  msgid "IP Address"
302
  msgstr ""
303
 
@@ -372,8 +320,8 @@ msgid "Live updates"
372
  msgstr ""
373
 
374
  #: classes/class-list-table.php:867 classes/class-network.php:271
375
- #: classes/class-settings.php:269 classes/class-settings.php:299
376
- #: classes/class-settings.php:313
377
  msgid "Enabled"
378
  msgstr ""
379
 
@@ -392,57 +340,6 @@ msgid_plural "%s items"
392
  msgstr[0] ""
393
  msgstr[1] ""
394
 
395
- #: classes/class-migrate.php:225
396
- msgid ""
397
- "Our cloud storage services will be shutting down permanently on September 1, "
398
- "2015"
399
- msgstr ""
400
-
401
- #: classes/class-migrate.php:226
402
- msgid "Read the announcement post"
403
- msgstr ""
404
-
405
- #: classes/class-migrate.php:227
406
- #, php-format
407
- msgid ""
408
- "We found %s activity records in the cloud that need to be migrated to your "
409
- "local database."
410
- msgstr ""
411
-
412
- #: classes/class-migrate.php:228
413
- msgid "Close"
414
- msgstr ""
415
-
416
- #: classes/class-migrate.php:229
417
- msgid "Start Migration Now"
418
- msgstr ""
419
-
420
- #: classes/class-migrate.php:230
421
- msgid "Remind Me Later"
422
- msgstr ""
423
-
424
- #: classes/class-migrate.php:231
425
- msgid "No thanks, I don't want to migrate"
426
- msgstr ""
427
-
428
- #: classes/class-migrate.php:285
429
- msgid "Migration complete!"
430
- msgstr ""
431
-
432
- #: classes/class-migrate.php:291
433
- msgid ""
434
- "An unknown error occurred during migration. Please try again later or "
435
- "contact support."
436
- msgstr ""
437
-
438
- #: classes/class-migrate.php:305
439
- msgid "OK, we'll remind you again in a few hours."
440
- msgstr ""
441
-
442
- #: classes/class-migrate.php:316
443
- msgid "All new activity will be stored in the local database."
444
- msgstr ""
445
-
446
  #: classes/class-network.php:78
447
  msgid "Network Admin"
448
  msgstr ""
@@ -544,119 +441,131 @@ msgid "Keep Records for"
544
  msgstr ""
545
 
546
  #: classes/class-settings.php:239
547
- msgid ""
548
- "Maximum number of days to keep activity records. Leave blank to keep records "
549
- "forever."
550
  msgstr ""
551
 
552
  #: classes/class-settings.php:244
553
  msgid "days"
554
  msgstr ""
555
 
556
- #: classes/class-settings.php:249
 
 
 
 
 
 
 
 
 
 
 
 
 
 
557
  msgid "Exclude"
558
  msgstr ""
559
 
560
- #: classes/class-settings.php:253
561
  msgid "Exclude Rules"
562
  msgstr ""
563
 
564
- #: classes/class-settings.php:255
565
  msgid ""
566
  "Create rules to exclude certain kinds of activity from being recorded by "
567
  "Stream."
568
  msgstr ""
569
 
570
- #: classes/class-settings.php:262
571
  msgid "Advanced"
572
  msgstr ""
573
 
574
- #: classes/class-settings.php:266
575
  msgid "Comment Flood Tracking"
576
  msgstr ""
577
 
578
- #: classes/class-settings.php:268
579
  msgid ""
580
  "WordPress will automatically prevent duplicate comments from flooding the "
581
  "database. By default, Stream does not track these attempts unless you opt-in "
582
  "here. Enabling this is not necessary or recommended for most sites."
583
  msgstr ""
584
 
585
- #: classes/class-settings.php:274
586
  msgid "Reset Stream Database"
587
  msgstr ""
588
 
589
- #: classes/class-settings.php:284
590
  msgid "Warning: This will delete all activity records from the database."
591
  msgstr ""
592
 
593
- #: classes/class-settings.php:296
594
  msgid "Akismet Tracking"
595
  msgstr ""
596
 
597
- #: classes/class-settings.php:298
598
  msgid ""
599
  "Akismet already keeps statistics for comment attempts that it blocks as "
600
  "SPAM. By default, Stream does not track these attempts unless you opt-in "
601
  "here. Enabling this is not necessary or recommended for most sites."
602
  msgstr ""
603
 
604
- #: classes/class-settings.php:310
605
  msgid "WP Cron Tracking"
606
  msgstr ""
607
 
608
- #: classes/class-settings.php:312
609
  msgid ""
610
  "By default, Stream does not track activity performed by WordPress cron "
611
  "events unless you opt-in here. Enabling this is not necessary or recommended "
612
  "for most sites."
613
  msgstr ""
614
 
615
- #: classes/class-settings.php:695
616
  #, php-format
617
  msgid "Any %s"
618
  msgstr ""
619
 
620
- #: classes/class-settings.php:710
621
  msgid "Add New Rule"
622
  msgstr ""
623
 
624
- #: classes/class-settings.php:711
625
  msgid "Delete Selected Rules"
626
  msgstr ""
627
 
628
- #: classes/class-settings.php:728
629
  msgid "Author or Role"
630
  msgstr ""
631
 
632
- #: classes/class-settings.php:732
633
  msgid "Filters"
634
  msgstr ""
635
 
636
- #: classes/class-settings.php:758
637
  #, php-format
638
  msgid "1 user"
639
  msgid_plural "%s users"
640
  msgstr[0] ""
641
  msgstr[1] ""
642
 
643
- #: classes/class-settings.php:784
644
  msgid "Any Author or Role"
645
  msgstr ""
646
 
647
- #: classes/class-settings.php:825
648
  msgid "Any Context"
649
  msgstr ""
650
 
651
- #: classes/class-settings.php:844
652
  msgid "Any Action"
653
  msgstr ""
654
 
655
- #: classes/class-settings.php:855
656
  msgid "Any IP Address"
657
  msgstr ""
658
 
659
- #: classes/class-settings.php:892
660
  msgid "No rules found."
661
  msgstr ""
662
 
@@ -1266,8 +1175,8 @@ msgstr ""
1266
  #: connectors/class-connector-edd.php:248
1267
  #: connectors/class-connector-edd.php:293
1268
  #: connectors/class-connector-gravityforms.php:481
1269
- #: connectors/class-connector-jetpack.php:493
1270
- #: connectors/class-connector-jetpack.php:668
1271
  #, php-format
1272
  msgid "\"%s\" setting updated"
1273
  msgstr ""
@@ -1277,8 +1186,8 @@ msgstr ""
1277
  #: connectors/class-connector-gravityforms.php:353
1278
  #: connectors/class-connector-gravityforms.php:399
1279
  #: connectors/class-connector-gravityforms.php:649
1280
- #: connectors/class-connector-jetpack.php:330
1281
- #: connectors/class-connector-jetpack.php:434
1282
  msgid "activated"
1283
  msgstr ""
1284
 
@@ -1286,8 +1195,8 @@ msgstr ""
1286
  #: connectors/class-connector-edd.php:365
1287
  #: connectors/class-connector-gravityforms.php:353
1288
  #: connectors/class-connector-gravityforms.php:399
1289
- #: connectors/class-connector-jetpack.php:330
1290
- #: connectors/class-connector-jetpack.php:434
1291
  msgid "deactivated"
1292
  msgstr ""
1293
 
@@ -2402,133 +2311,133 @@ msgstr ""
2402
  msgid "Tiled Galleries"
2403
  msgstr ""
2404
 
2405
- #: connectors/class-connector-jetpack.php:328
2406
  #, php-format
2407
  msgid "%1$s module %2$s"
2408
  msgstr ""
2409
 
2410
- #: connectors/class-connector-jetpack.php:346
2411
  #, php-format
2412
  msgid "%1$s's account %2$s %3$s Jetpack"
2413
  msgstr ""
2414
 
2415
- #: connectors/class-connector-jetpack.php:348
2416
  msgid "unlinked"
2417
  msgstr ""
2418
 
2419
- #: connectors/class-connector-jetpack.php:348
2420
  msgid "linked"
2421
  msgstr ""
2422
 
2423
- #: connectors/class-connector-jetpack.php:349
2424
  msgid "from"
2425
  msgstr ""
2426
 
2427
- #: connectors/class-connector-jetpack.php:349
2428
  msgid "to"
2429
  msgstr ""
2430
 
2431
- #: connectors/class-connector-jetpack.php:365
2432
  #, php-format
2433
  msgid "Site %s Jetpack"
2434
  msgstr ""
2435
 
2436
- #: connectors/class-connector-jetpack.php:366
2437
- #: connectors/class-connector-jetpack.php:376
2438
  msgid "connected to"
2439
  msgstr ""
2440
 
2441
- #: connectors/class-connector-jetpack.php:366
2442
- #: connectors/class-connector-jetpack.php:376
2443
  msgid "disconnected from"
2444
  msgstr ""
2445
 
2446
- #: connectors/class-connector-jetpack.php:374
2447
  #, php-format
2448
  msgid "\"%1$s\" blog %2$s Jetpack"
2449
  msgstr ""
2450
 
2451
- #: connectors/class-connector-jetpack.php:401
2452
  msgid "Sharing services updated"
2453
  msgstr ""
2454
 
2455
- #: connectors/class-connector-jetpack.php:432
2456
  #, php-format
2457
  msgid "Monitor notifications %s"
2458
  msgstr ""
2459
 
2460
- #: connectors/class-connector-jetpack.php:459
2461
- #: connectors/class-connector-jetpack.php:550
2462
  msgid "enabled"
2463
  msgstr ""
2464
 
2465
- #: connectors/class-connector-jetpack.php:461
2466
- #: connectors/class-connector-jetpack.php:550
2467
  msgid "disabled"
2468
  msgstr ""
2469
 
2470
- #: connectors/class-connector-jetpack.php:463
2471
  msgid "regenerated"
2472
  msgstr ""
2473
 
2474
- #: connectors/class-connector-jetpack.php:469
2475
  #, php-format
2476
  msgid "%1$s %2$s Post by Email"
2477
  msgstr ""
2478
 
2479
- #: connectors/class-connector-jetpack.php:548
2480
  #, php-format
2481
  msgid "G+ profile display %s"
2482
  msgstr ""
2483
 
2484
- #: connectors/class-connector-jetpack.php:565
2485
  #, php-format
2486
  msgid "%1$s's Google+ account %2$s"
2487
  msgstr ""
2488
 
2489
- #: connectors/class-connector-jetpack.php:568
2490
  msgid "connected"
2491
  msgstr ""
2492
 
2493
- #: connectors/class-connector-jetpack.php:568
2494
  msgid "disconnected"
2495
  msgstr ""
2496
 
2497
- #: connectors/class-connector-jetpack.php:585
2498
  #, php-format
2499
  msgid "Sharing CSS/JS %s"
2500
  msgstr ""
2501
 
2502
- #: connectors/class-connector-jetpack.php:624
2503
  msgid "Custom CSS updated"
2504
  msgstr ""
2505
 
2506
- #: connectors/class-connector-jetpack.php:644
2507
  #, php-format
2508
  msgid "%1$s connection %2$s"
2509
  msgstr ""
2510
 
2511
- #: connectors/class-connector-jetpack.php:647
2512
  msgid "added"
2513
  msgstr ""
2514
 
2515
- #: connectors/class-connector-jetpack.php:647
2516
  msgid "removed"
2517
  msgstr ""
2518
 
2519
- #: connectors/class-connector-jetpack.php:657
2520
  msgid "Video Library Access"
2521
  msgstr ""
2522
 
2523
- #: connectors/class-connector-jetpack.php:658
2524
  msgid "Allow users to upload videos"
2525
  msgstr ""
2526
 
2527
- #: connectors/class-connector-jetpack.php:659
2528
  msgid "Free formats"
2529
  msgstr ""
2530
 
2531
- #: connectors/class-connector-jetpack.php:660
2532
  msgid "Default quality"
2533
  msgstr ""
2534
 
@@ -2689,73 +2598,79 @@ msgstr ""
2689
  msgid "Revision"
2690
  msgstr ""
2691
 
2692
- #: connectors/class-connector-posts.php:157
2693
  #, php-format
2694
  msgctxt "1: Post title, 2: Post type singular name"
2695
  msgid "\"%1$s\" %2$s unpublished"
2696
  msgstr ""
2697
 
2698
- #: connectors/class-connector-posts.php:163
2699
  #, php-format
2700
  msgctxt "1: Post title, 2: Post type singular name"
2701
  msgid "\"%1$s\" %2$s restored from trash"
2702
  msgstr ""
2703
 
2704
- #: connectors/class-connector-posts.php:170
 
 
 
 
 
 
2705
  #, php-format
2706
  msgctxt "1: Post title, 2: Post type singular name"
2707
  msgid "\"%1$s\" %2$s drafted"
2708
  msgstr ""
2709
 
2710
- #: connectors/class-connector-posts.php:176
2711
  #, php-format
2712
  msgctxt "1: Post title, 2: Post type singular name"
2713
  msgid "\"%1$s\" %2$s pending review"
2714
  msgstr ""
2715
 
2716
- #: connectors/class-connector-posts.php:182
2717
  #, php-format
2718
  msgctxt "1: Post title, 2: Post type singular name, 3: Scheduled post date"
2719
  msgid "\"%1$s\" %2$s scheduled for %3$s"
2720
  msgstr ""
2721
 
2722
- #: connectors/class-connector-posts.php:188
2723
  #, php-format
2724
  msgctxt "1: Post title, 2: Post type singular name"
2725
  msgid "\"%1$s\" scheduled %2$s published"
2726
  msgstr ""
2727
 
2728
- #: connectors/class-connector-posts.php:194
2729
  #, php-format
2730
  msgctxt "1: Post title, 2: Post type singular name"
2731
  msgid "\"%1$s\" %2$s published"
2732
  msgstr ""
2733
 
2734
- #: connectors/class-connector-posts.php:200
2735
  #, php-format
2736
  msgctxt "1: Post title, 2: Post type singular name"
2737
  msgid "\"%1$s\" %2$s privately published"
2738
  msgstr ""
2739
 
2740
- #: connectors/class-connector-posts.php:206
2741
  #, php-format
2742
  msgctxt "1: Post title, 2: Post type singular name"
2743
  msgid "\"%1$s\" %2$s trashed"
2744
  msgstr ""
2745
 
2746
- #: connectors/class-connector-posts.php:213
2747
  #, php-format
2748
  msgctxt "1: Post title, 2: Post type singular name"
2749
  msgid "\"%1$s\" %2$s updated"
2750
  msgstr ""
2751
 
2752
- #: connectors/class-connector-posts.php:290
2753
  #, php-format
2754
  msgctxt "1: Post title, 2: Post type singular name"
2755
  msgid "\"%1$s\" %2$s deleted from trash"
2756
  msgstr ""
2757
 
2758
- #: connectors/class-connector-posts.php:328
2759
  msgid "Post"
2760
  msgstr ""
2761
 
@@ -3144,8 +3059,29 @@ msgctxt "1: Term name, 2: Taxonomy singular label"
3144
  msgid "\"%1$s\" %2$s updated"
3145
  msgstr ""
3146
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3147
  #: connectors/class-connector-users.php:41
3148
- #: connectors/class-connector-users.php:68
3149
  msgid "Users"
3150
  msgstr ""
3151
 
@@ -3165,66 +3101,78 @@ msgstr ""
3165
  msgid "Log Out"
3166
  msgstr ""
3167
 
3168
- #: connectors/class-connector-users.php:69
 
 
 
 
 
 
 
 
 
 
 
 
3169
  msgid "Sessions"
3170
  msgstr ""
3171
 
3172
- #: connectors/class-connector-users.php:70
3173
  msgid "Profiles"
3174
  msgstr ""
3175
 
3176
- #: connectors/class-connector-users.php:87
3177
  msgid "Edit User"
3178
  msgstr ""
3179
 
3180
- #: connectors/class-connector-users.php:136
3181
  msgid "New user registration"
3182
  msgstr ""
3183
 
3184
- #: connectors/class-connector-users.php:140
3185
  #, php-format
3186
  msgctxt "1: User display name, 2: User role"
3187
  msgid "New user account created for %1$s (%2$s)"
3188
  msgstr ""
3189
 
3190
- #: connectors/class-connector-users.php:172
3191
  #, php-format
3192
  msgid "%s's profile was updated"
3193
  msgstr ""
3194
 
3195
- #: connectors/class-connector-users.php:200
3196
  #, php-format
3197
  msgctxt "1: User display name, 2: Old role, 3: New role"
3198
  msgid "%1$s's role was changed from %2$s to %3$s"
3199
  msgstr ""
3200
 
3201
- #: connectors/class-connector-users.php:224
3202
  #, php-format
3203
  msgid "%s's password was reset"
3204
  msgstr ""
3205
 
3206
- #: connectors/class-connector-users.php:250
3207
  #, php-format
3208
  msgid "%s's password was requested to be reset"
3209
  msgstr ""
3210
 
3211
- #: connectors/class-connector-users.php:276
3212
  #, php-format
3213
  msgid "%s logged in"
3214
  msgstr ""
3215
 
3216
- #: connectors/class-connector-users.php:299
3217
  #, php-format
3218
  msgid "%s logged out"
3219
  msgstr ""
3220
 
3221
- #: connectors/class-connector-users.php:335
3222
  #, php-format
3223
  msgctxt "1: User display name, 2: User roles"
3224
  msgid "%1$s's account was deleted (%2$s)"
3225
  msgstr ""
3226
 
3227
- #: connectors/class-connector-users.php:343
3228
  #, php-format
3229
  msgid "User account #%d was deleted"
3230
  msgstr ""
@@ -3498,7 +3446,7 @@ msgstr ""
3498
  #: connectors/class-connector-woocommerce.php:159
3499
  #: connectors/class-connector-woocommerce.php:166
3500
  #: connectors/class-connector-woocommerce.php:173
3501
- #: connectors/class-connector-woocommerce.php:713
3502
  msgid "setting"
3503
  msgstr ""
3504
 
@@ -3625,24 +3573,24 @@ msgctxt "Tax rate name"
3625
  msgid "\"%s\" tax rate deleted"
3626
  msgstr ""
3627
 
3628
- #: connectors/class-connector-woocommerce.php:642
3629
  #, php-format
3630
  msgid "\"%1$s\" %2$s updated"
3631
  msgstr ""
3632
 
3633
- #: connectors/class-connector-woocommerce.php:740
3634
  msgid "payment gateway"
3635
  msgstr ""
3636
 
3637
- #: connectors/class-connector-woocommerce.php:759
3638
  msgid "shipping method"
3639
  msgstr ""
3640
 
3641
- #: connectors/class-connector-woocommerce.php:778
3642
  msgid "email"
3643
  msgstr ""
3644
 
3645
- #: connectors/class-connector-woocommerce.php:786
3646
  msgid "Tools"
3647
  msgstr ""
3648
 
@@ -4152,3 +4100,15 @@ msgstr ""
4152
  #: includes/feeds/atom.php:7 includes/feeds/rss-2.0.php:21
4153
  msgid "Stream Feed"
4154
  msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Stream\n"
4
+ "POT-Creation-Date: 2015-10-02 11:57+1000\n"
5
+ "PO-Revision-Date: 2015-10-02 11:57+1000\n"
6
  "Last-Translator: Luke Carbis <luke@wp-stream.com>\n"
7
  "Language-Team: Luke Carbis <luke@wp-stream.com>\n"
8
  "Language: en_US\n"
22
  msgid "Stream requires PHP version 5.3+, plugin is currently NOT ACTIVE."
23
  msgstr ""
24
 
25
+ #: classes/class-admin.php:195
26
  msgid "All site settings have been successfully reset."
27
  msgstr ""
28
 
29
+ #: classes/class-admin.php:270 classes/class-network.php:122
30
  #: connectors/class-connector-settings.php:134
31
  msgid "Stream"
32
  msgstr ""
33
 
34
+ #: classes/class-admin.php:286
35
  msgid "Stream Records"
36
  msgstr ""
37
 
38
+ #: classes/class-admin.php:303
39
  msgid "Stream Settings"
40
  msgstr ""
41
 
42
+ #: classes/class-admin.php:308 classes/class-admin.php:662
43
  #: connectors/class-connector-settings.php:105
44
  #: connectors/class-connector-settings.php:126
45
+ #: connectors/class-connector-woocommerce.php:728
46
  msgid "Settings"
47
  msgstr ""
48
 
49
+ #: classes/class-admin.php:369
50
  msgid ""
51
  "Are you sure you want to delete all Stream activity records from the "
52
  "database? This cannot be undone."
53
  msgstr ""
54
 
55
+ #: classes/class-admin.php:370
56
  msgid ""
57
  "Are you sure you want to reset all site settings to default? This cannot be "
58
  "undone."
59
  msgstr ""
60
 
61
+ #: classes/class-admin.php:371
62
  msgid ""
63
  "Are you sure you want to uninstall and deactivate Stream? This will delete "
64
  "all Stream tables from the database and cannot be undone."
65
  msgstr ""
66
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
  #: classes/class-admin.php:412
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  #, php-format
69
  msgid ""
70
  "Are you sure you want to perform bulk actions on over %s items? This process "
71
  "could take a while to complete."
72
  msgstr ""
73
 
74
+ #: classes/class-admin.php:546 classes/class-uninstall.php:51
75
  msgid "You don't have sufficient privileges to do this action."
76
  msgstr ""
77
 
78
+ #: classes/class-admin.php:672
79
  msgid "Uninstall"
80
  msgstr ""
81
 
82
  #: classes/class-author.php:82 classes/class-author.php:90
83
+ #: classes/class-settings.php:779
84
  msgid "N/A"
85
  msgstr ""
86
 
92
  msgid "during WP Cron"
93
  msgstr ""
94
 
95
+ #: classes/class-cli.php:218
96
  msgid "SITE IS DISCONNECTED"
97
  msgstr ""
98
 
171
  msgid "Filter not supported."
172
  msgstr ""
173
 
174
+ #: classes/class-install.php:175
175
  msgid "The following table is not present in the WordPress database:"
176
  msgid_plural "The following tables are not present in the WordPress database:"
177
  msgstr[0] ""
178
  msgstr[1] ""
179
 
180
+ #: classes/class-install.php:185 classes/class-install.php:187
181
  #, php-format
182
  msgid ""
183
  "Please <a href=\"%s\">uninstall</a> the Stream plugin and activate it again."
184
  msgstr ""
185
 
186
+ #: classes/class-install.php:261
187
  msgid "There was an error updating the Stream database. Please try again."
188
  msgstr ""
189
 
190
+ #: classes/class-install.php:262
191
  msgid "Database Update Error"
192
  msgstr ""
193
 
194
+ #: classes/class-install.php:309
195
  msgid "Stream Database Update Required"
196
  msgstr ""
197
 
198
+ #: classes/class-install.php:310
199
  msgid ""
200
  "Stream has updated! Before we send you on your way, we need to update your "
201
  "database to the newest version."
202
  msgstr ""
203
 
204
+ #: classes/class-install.php:311
205
  msgid "This process could take a little while, so please be patient."
206
  msgstr ""
207
 
208
+ #: classes/class-install.php:312
209
  msgid "Update Database"
210
  msgstr ""
211
 
212
+ #: classes/class-install.php:331
213
  msgid "Update Complete"
214
  msgstr ""
215
 
216
+ #: classes/class-install.php:333
217
  msgid "Continue"
218
  msgstr ""
219
 
237
  msgid "User"
238
  msgstr ""
239
 
240
+ #: classes/class-list-table.php:81 classes/class-settings.php:737
241
  msgid "Context"
242
  msgstr ""
243
 
244
+ #: classes/class-list-table.php:82 classes/class-settings.php:738
245
  msgid "Action"
246
  msgstr ""
247
 
248
+ #: classes/class-list-table.php:83 classes/class-settings.php:739
249
  msgid "IP Address"
250
  msgstr ""
251
 
320
  msgstr ""
321
 
322
  #: classes/class-list-table.php:867 classes/class-network.php:271
323
+ #: classes/class-settings.php:251 classes/class-settings.php:277
324
+ #: classes/class-settings.php:307 classes/class-settings.php:321
325
  msgid "Enabled"
326
  msgstr ""
327
 
340
  msgstr[0] ""
341
  msgstr[1] ""
342
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
343
  #: classes/class-network.php:78
344
  msgid "Network Admin"
345
  msgstr ""
441
  msgstr ""
442
 
443
  #: classes/class-settings.php:239
444
+ msgid "Maximum number of days to keep activity records."
 
 
445
  msgstr ""
446
 
447
  #: classes/class-settings.php:244
448
  msgid "days"
449
  msgstr ""
450
 
451
+ #: classes/class-settings.php:248
452
+ msgid "Keep Records Indefinitely"
453
+ msgstr ""
454
+
455
+ #: classes/class-settings.php:250
456
+ msgid "Not recommended."
457
+ msgstr ""
458
+
459
+ #: classes/class-settings.php:250
460
+ msgid ""
461
+ "Purging old records helps to keep your WordPress installation running "
462
+ "optimally."
463
+ msgstr ""
464
+
465
+ #: classes/class-settings.php:257
466
  msgid "Exclude"
467
  msgstr ""
468
 
469
+ #: classes/class-settings.php:261
470
  msgid "Exclude Rules"
471
  msgstr ""
472
 
473
+ #: classes/class-settings.php:263
474
  msgid ""
475
  "Create rules to exclude certain kinds of activity from being recorded by "
476
  "Stream."
477
  msgstr ""
478
 
479
+ #: classes/class-settings.php:270
480
  msgid "Advanced"
481
  msgstr ""
482
 
483
+ #: classes/class-settings.php:274
484
  msgid "Comment Flood Tracking"
485
  msgstr ""
486
 
487
+ #: classes/class-settings.php:276
488
  msgid ""
489
  "WordPress will automatically prevent duplicate comments from flooding the "
490
  "database. By default, Stream does not track these attempts unless you opt-in "
491
  "here. Enabling this is not necessary or recommended for most sites."
492
  msgstr ""
493
 
494
+ #: classes/class-settings.php:282
495
  msgid "Reset Stream Database"
496
  msgstr ""
497
 
498
+ #: classes/class-settings.php:292
499
  msgid "Warning: This will delete all activity records from the database."
500
  msgstr ""
501
 
502
+ #: classes/class-settings.php:304
503
  msgid "Akismet Tracking"
504
  msgstr ""
505
 
506
+ #: classes/class-settings.php:306
507
  msgid ""
508
  "Akismet already keeps statistics for comment attempts that it blocks as "
509
  "SPAM. By default, Stream does not track these attempts unless you opt-in "
510
  "here. Enabling this is not necessary or recommended for most sites."
511
  msgstr ""
512
 
513
+ #: classes/class-settings.php:318
514
  msgid "WP Cron Tracking"
515
  msgstr ""
516
 
517
+ #: classes/class-settings.php:320
518
  msgid ""
519
  "By default, Stream does not track activity performed by WordPress cron "
520
  "events unless you opt-in here. Enabling this is not necessary or recommended "
521
  "for most sites."
522
  msgstr ""
523
 
524
+ #: classes/class-settings.php:703
525
  #, php-format
526
  msgid "Any %s"
527
  msgstr ""
528
 
529
+ #: classes/class-settings.php:718
530
  msgid "Add New Rule"
531
  msgstr ""
532
 
533
+ #: classes/class-settings.php:719
534
  msgid "Delete Selected Rules"
535
  msgstr ""
536
 
537
+ #: classes/class-settings.php:736
538
  msgid "Author or Role"
539
  msgstr ""
540
 
541
+ #: classes/class-settings.php:740
542
  msgid "Filters"
543
  msgstr ""
544
 
545
+ #: classes/class-settings.php:766
546
  #, php-format
547
  msgid "1 user"
548
  msgid_plural "%s users"
549
  msgstr[0] ""
550
  msgstr[1] ""
551
 
552
+ #: classes/class-settings.php:792
553
  msgid "Any Author or Role"
554
  msgstr ""
555
 
556
+ #: classes/class-settings.php:833
557
  msgid "Any Context"
558
  msgstr ""
559
 
560
+ #: classes/class-settings.php:852
561
  msgid "Any Action"
562
  msgstr ""
563
 
564
+ #: classes/class-settings.php:863
565
  msgid "Any IP Address"
566
  msgstr ""
567
 
568
+ #: classes/class-settings.php:900
569
  msgid "No rules found."
570
  msgstr ""
571
 
1175
  #: connectors/class-connector-edd.php:248
1176
  #: connectors/class-connector-edd.php:293
1177
  #: connectors/class-connector-gravityforms.php:481
1178
+ #: connectors/class-connector-jetpack.php:502
1179
+ #: connectors/class-connector-jetpack.php:677
1180
  #, php-format
1181
  msgid "\"%s\" setting updated"
1182
  msgstr ""
1186
  #: connectors/class-connector-gravityforms.php:353
1187
  #: connectors/class-connector-gravityforms.php:399
1188
  #: connectors/class-connector-gravityforms.php:649
1189
+ #: connectors/class-connector-jetpack.php:341
1190
+ #: connectors/class-connector-jetpack.php:443
1191
  msgid "activated"
1192
  msgstr ""
1193
 
1195
  #: connectors/class-connector-edd.php:365
1196
  #: connectors/class-connector-gravityforms.php:353
1197
  #: connectors/class-connector-gravityforms.php:399
1198
+ #: connectors/class-connector-jetpack.php:341
1199
+ #: connectors/class-connector-jetpack.php:443
1200
  msgid "deactivated"
1201
  msgstr ""
1202
 
2311
  msgid "Tiled Galleries"
2312
  msgstr ""
2313
 
2314
+ #: connectors/class-connector-jetpack.php:339
2315
  #, php-format
2316
  msgid "%1$s module %2$s"
2317
  msgstr ""
2318
 
2319
+ #: connectors/class-connector-jetpack.php:357
2320
  #, php-format
2321
  msgid "%1$s's account %2$s %3$s Jetpack"
2322
  msgstr ""
2323
 
2324
+ #: connectors/class-connector-jetpack.php:359
2325
  msgid "unlinked"
2326
  msgstr ""
2327
 
2328
+ #: connectors/class-connector-jetpack.php:359
2329
  msgid "linked"
2330
  msgstr ""
2331
 
2332
+ #: connectors/class-connector-jetpack.php:360
2333
  msgid "from"
2334
  msgstr ""
2335
 
2336
+ #: connectors/class-connector-jetpack.php:360
2337
  msgid "to"
2338
  msgstr ""
2339
 
2340
+ #: connectors/class-connector-jetpack.php:374
2341
  #, php-format
2342
  msgid "Site %s Jetpack"
2343
  msgstr ""
2344
 
2345
+ #: connectors/class-connector-jetpack.php:375
2346
+ #: connectors/class-connector-jetpack.php:385
2347
  msgid "connected to"
2348
  msgstr ""
2349
 
2350
+ #: connectors/class-connector-jetpack.php:375
2351
+ #: connectors/class-connector-jetpack.php:385
2352
  msgid "disconnected from"
2353
  msgstr ""
2354
 
2355
+ #: connectors/class-connector-jetpack.php:383
2356
  #, php-format
2357
  msgid "\"%1$s\" blog %2$s Jetpack"
2358
  msgstr ""
2359
 
2360
+ #: connectors/class-connector-jetpack.php:410
2361
  msgid "Sharing services updated"
2362
  msgstr ""
2363
 
2364
+ #: connectors/class-connector-jetpack.php:441
2365
  #, php-format
2366
  msgid "Monitor notifications %s"
2367
  msgstr ""
2368
 
2369
+ #: connectors/class-connector-jetpack.php:468
2370
+ #: connectors/class-connector-jetpack.php:559
2371
  msgid "enabled"
2372
  msgstr ""
2373
 
2374
+ #: connectors/class-connector-jetpack.php:470
2375
+ #: connectors/class-connector-jetpack.php:559
2376
  msgid "disabled"
2377
  msgstr ""
2378
 
2379
+ #: connectors/class-connector-jetpack.php:472
2380
  msgid "regenerated"
2381
  msgstr ""
2382
 
2383
+ #: connectors/class-connector-jetpack.php:478
2384
  #, php-format
2385
  msgid "%1$s %2$s Post by Email"
2386
  msgstr ""
2387
 
2388
+ #: connectors/class-connector-jetpack.php:557
2389
  #, php-format
2390
  msgid "G+ profile display %s"
2391
  msgstr ""
2392
 
2393
+ #: connectors/class-connector-jetpack.php:574
2394
  #, php-format
2395
  msgid "%1$s's Google+ account %2$s"
2396
  msgstr ""
2397
 
2398
+ #: connectors/class-connector-jetpack.php:577
2399
  msgid "connected"
2400
  msgstr ""
2401
 
2402
+ #: connectors/class-connector-jetpack.php:577
2403
  msgid "disconnected"
2404
  msgstr ""
2405
 
2406
+ #: connectors/class-connector-jetpack.php:594
2407
  #, php-format
2408
  msgid "Sharing CSS/JS %s"
2409
  msgstr ""
2410
 
2411
+ #: connectors/class-connector-jetpack.php:633
2412
  msgid "Custom CSS updated"
2413
  msgstr ""
2414
 
2415
+ #: connectors/class-connector-jetpack.php:653
2416
  #, php-format
2417
  msgid "%1$s connection %2$s"
2418
  msgstr ""
2419
 
2420
+ #: connectors/class-connector-jetpack.php:656
2421
  msgid "added"
2422
  msgstr ""
2423
 
2424
+ #: connectors/class-connector-jetpack.php:656
2425
  msgid "removed"
2426
  msgstr ""
2427
 
2428
+ #: connectors/class-connector-jetpack.php:666
2429
  msgid "Video Library Access"
2430
  msgstr ""
2431
 
2432
+ #: connectors/class-connector-jetpack.php:667
2433
  msgid "Allow users to upload videos"
2434
  msgstr ""
2435
 
2436
+ #: connectors/class-connector-jetpack.php:668
2437
  msgid "Free formats"
2438
  msgstr ""
2439
 
2440
+ #: connectors/class-connector-jetpack.php:669
2441
  msgid "Default quality"
2442
  msgstr ""
2443
 
2598
  msgid "Revision"
2599
  msgstr ""
2600
 
2601
+ #: connectors/class-connector-posts.php:159
2602
  #, php-format
2603
  msgctxt "1: Post title, 2: Post type singular name"
2604
  msgid "\"%1$s\" %2$s unpublished"
2605
  msgstr ""
2606
 
2607
+ #: connectors/class-connector-posts.php:165
2608
  #, php-format
2609
  msgctxt "1: Post title, 2: Post type singular name"
2610
  msgid "\"%1$s\" %2$s restored from trash"
2611
  msgstr ""
2612
 
2613
+ #: connectors/class-connector-posts.php:172
2614
+ #, php-format
2615
+ msgctxt "1: Post title, 2: Post type singular name"
2616
+ msgid "\"%1$s\" %2$s draft saved"
2617
+ msgstr ""
2618
+
2619
+ #: connectors/class-connector-posts.php:178
2620
  #, php-format
2621
  msgctxt "1: Post title, 2: Post type singular name"
2622
  msgid "\"%1$s\" %2$s drafted"
2623
  msgstr ""
2624
 
2625
+ #: connectors/class-connector-posts.php:184
2626
  #, php-format
2627
  msgctxt "1: Post title, 2: Post type singular name"
2628
  msgid "\"%1$s\" %2$s pending review"
2629
  msgstr ""
2630
 
2631
+ #: connectors/class-connector-posts.php:190
2632
  #, php-format
2633
  msgctxt "1: Post title, 2: Post type singular name, 3: Scheduled post date"
2634
  msgid "\"%1$s\" %2$s scheduled for %3$s"
2635
  msgstr ""
2636
 
2637
+ #: connectors/class-connector-posts.php:196
2638
  #, php-format
2639
  msgctxt "1: Post title, 2: Post type singular name"
2640
  msgid "\"%1$s\" scheduled %2$s published"
2641
  msgstr ""
2642
 
2643
+ #: connectors/class-connector-posts.php:202
2644
  #, php-format
2645
  msgctxt "1: Post title, 2: Post type singular name"
2646
  msgid "\"%1$s\" %2$s published"
2647
  msgstr ""
2648
 
2649
+ #: connectors/class-connector-posts.php:208
2650
  #, php-format
2651
  msgctxt "1: Post title, 2: Post type singular name"
2652
  msgid "\"%1$s\" %2$s privately published"
2653
  msgstr ""
2654
 
2655
+ #: connectors/class-connector-posts.php:214
2656
  #, php-format
2657
  msgctxt "1: Post title, 2: Post type singular name"
2658
  msgid "\"%1$s\" %2$s trashed"
2659
  msgstr ""
2660
 
2661
+ #: connectors/class-connector-posts.php:221
2662
  #, php-format
2663
  msgctxt "1: Post title, 2: Post type singular name"
2664
  msgid "\"%1$s\" %2$s updated"
2665
  msgstr ""
2666
 
2667
+ #: connectors/class-connector-posts.php:298
2668
  #, php-format
2669
  msgctxt "1: Post title, 2: Post type singular name"
2670
  msgid "\"%1$s\" %2$s deleted from trash"
2671
  msgstr ""
2672
 
2673
+ #: connectors/class-connector-posts.php:336
2674
  msgid "Post"
2675
  msgstr ""
2676
 
3059
  msgid "\"%1$s\" %2$s updated"
3060
  msgstr ""
3061
 
3062
+ #: connectors/class-connector-user-switching.php:44
3063
+ msgctxt "user-switching"
3064
+ msgid "User Switching"
3065
+ msgstr ""
3066
+
3067
+ #: connectors/class-connector-user-switching.php:144
3068
+ #, php-format
3069
+ msgctxt "1: User display name, 2: User login"
3070
+ msgid "Switched user to %1$s (%2$s)"
3071
+ msgstr ""
3072
+
3073
+ #: connectors/class-connector-user-switching.php:174
3074
+ #, php-format
3075
+ msgctxt "1: User display name, 2: User login"
3076
+ msgid "Switched back to %1$s (%2$s)"
3077
+ msgstr ""
3078
+
3079
+ #: connectors/class-connector-user-switching.php:208
3080
+ msgid "Switched off"
3081
+ msgstr ""
3082
+
3083
  #: connectors/class-connector-users.php:41
3084
+ #: connectors/class-connector-users.php:71
3085
  msgid "Users"
3086
  msgstr ""
3087
 
3101
  msgid "Log Out"
3102
  msgstr ""
3103
 
3104
+ #: connectors/class-connector-users.php:58
3105
+ msgid "Switched To"
3106
+ msgstr ""
3107
+
3108
+ #: connectors/class-connector-users.php:59
3109
+ msgid "Switched Back"
3110
+ msgstr ""
3111
+
3112
+ #: connectors/class-connector-users.php:60
3113
+ msgid "Switched Off"
3114
+ msgstr ""
3115
+
3116
+ #: connectors/class-connector-users.php:72
3117
  msgid "Sessions"
3118
  msgstr ""
3119
 
3120
+ #: connectors/class-connector-users.php:73
3121
  msgid "Profiles"
3122
  msgstr ""
3123
 
3124
+ #: connectors/class-connector-users.php:90
3125
  msgid "Edit User"
3126
  msgstr ""
3127
 
3128
+ #: connectors/class-connector-users.php:139
3129
  msgid "New user registration"
3130
  msgstr ""
3131
 
3132
+ #: connectors/class-connector-users.php:143
3133
  #, php-format
3134
  msgctxt "1: User display name, 2: User role"
3135
  msgid "New user account created for %1$s (%2$s)"
3136
  msgstr ""
3137
 
3138
+ #: connectors/class-connector-users.php:175
3139
  #, php-format
3140
  msgid "%s's profile was updated"
3141
  msgstr ""
3142
 
3143
+ #: connectors/class-connector-users.php:203
3144
  #, php-format
3145
  msgctxt "1: User display name, 2: Old role, 3: New role"
3146
  msgid "%1$s's role was changed from %2$s to %3$s"
3147
  msgstr ""
3148
 
3149
+ #: connectors/class-connector-users.php:227
3150
  #, php-format
3151
  msgid "%s's password was reset"
3152
  msgstr ""
3153
 
3154
+ #: connectors/class-connector-users.php:253
3155
  #, php-format
3156
  msgid "%s's password was requested to be reset"
3157
  msgstr ""
3158
 
3159
+ #: connectors/class-connector-users.php:279
3160
  #, php-format
3161
  msgid "%s logged in"
3162
  msgstr ""
3163
 
3164
+ #: connectors/class-connector-users.php:302
3165
  #, php-format
3166
  msgid "%s logged out"
3167
  msgstr ""
3168
 
3169
+ #: connectors/class-connector-users.php:338
3170
  #, php-format
3171
  msgctxt "1: User display name, 2: User roles"
3172
  msgid "%1$s's account was deleted (%2$s)"
3173
  msgstr ""
3174
 
3175
+ #: connectors/class-connector-users.php:346
3176
  #, php-format
3177
  msgid "User account #%d was deleted"
3178
  msgstr ""
3446
  #: connectors/class-connector-woocommerce.php:159
3447
  #: connectors/class-connector-woocommerce.php:166
3448
  #: connectors/class-connector-woocommerce.php:173
3449
+ #: connectors/class-connector-woocommerce.php:717
3450
  msgid "setting"
3451
  msgstr ""
3452
 
3573
  msgid "\"%s\" tax rate deleted"
3574
  msgstr ""
3575
 
3576
+ #: connectors/class-connector-woocommerce.php:646
3577
  #, php-format
3578
  msgid "\"%1$s\" %2$s updated"
3579
  msgstr ""
3580
 
3581
+ #: connectors/class-connector-woocommerce.php:744
3582
  msgid "payment gateway"
3583
  msgstr ""
3584
 
3585
+ #: connectors/class-connector-woocommerce.php:763
3586
  msgid "shipping method"
3587
  msgstr ""
3588
 
3589
+ #: connectors/class-connector-woocommerce.php:782
3590
  msgid "email"
3591
  msgstr ""
3592
 
3593
+ #: connectors/class-connector-woocommerce.php:790
3594
  msgid "Tools"
3595
  msgstr ""
3596
 
4100
  #: includes/feeds/atom.php:7 includes/feeds/rss-2.0.php:21
4101
  msgid "Stream Feed"
4102
  msgstr ""
4103
+
4104
+ #: tests/tests/test-class-connector.php:191
4105
+ msgid "Maintenance"
4106
+ msgstr ""
4107
+
4108
+ #: tests/tests/test-class-connector.php:201
4109
+ msgid "Fault"
4110
+ msgstr ""
4111
+
4112
+ #: tests/tests/test-class-connector.php:212
4113
+ msgid "AE35 Unit"
4114
+ msgstr ""
readme.md CHANGED
@@ -5,10 +5,10 @@
5
  Stream is the easiest and safest way to track content changes happening to your WordPress site and then view them in beautifully organized detail.
6
 
7
  **Contributors:** [fjarrett](https://profiles.wordpress.org/fjarrett), [lukecarbis](https://profiles.wordpress.org/lukecarbis), [shadyvb](https://profiles.wordpress.org/shadyvb), [westonruter](https://profiles.wordpress.org/westonruter), [stream](https://profiles.wordpress.org/stream), [xwp](https://profiles.wordpress.org/xwp)
8
- **Tags:** [actions](https://wordpress.org/plugins/tags/actions), [activity](https://wordpress.org/plugins/tags/activity), [activity log](https://wordpress.org/plugins/tags/activity log), [activity logs](https://wordpress.org/plugins/tags/activity logs), [admin actions](https://wordpress.org/plugins/tags/admin actions), [analytics](https://wordpress.org/plugins/tags/analytics), [change](https://wordpress.org/plugins/tags/change), [changes](https://wordpress.org/plugins/tags/changes), [dashboard](https://wordpress.org/plugins/tags/dashboard), [log](https://wordpress.org/plugins/tags/log), [logs](https://wordpress.org/plugins/tags/logs), [stream](https://wordpress.org/plugins/tags/stream), [tracking](https://wordpress.org/plugins/tags/tracking), [troubleshooting](https://wordpress.org/plugins/tags/troubleshooting), [wp stream](https://wordpress.org/plugins/tags/wp stream)
9
  **Requires at least:** 3.7
10
  **Tested up to:** 4.2
11
- **Stable tag:** 3.0.1
12
  **License:** [GPLv2 or later](https://www.gnu.org/licenses/gpl-2.0.html)
13
 
14
  [![Build Status](https://travis-ci.org/xwp/stream.png?branch=master)](https://travis-ci.org/xwp/stream) [![Join the chat at https://gitter.im/xwp/stream](https://badges.gitter.im/Joinhat.svg)](https://gitter.im/xwp/stream)
@@ -23,14 +23,15 @@ Every logged-in user action is displayed in an activity stream and organized for
23
 
24
  **Built-In Tracking Integrations For Popular Plugins:**
25
 
26
- * [Advanced Custom Fields](https://wp-stream.com/connectors/acf/)
27
- * [bbPress](https://wp-stream.com/connectors/bbpress/)
28
- * [BuddyPress](https://wp-stream.com/connectors/buddypress/)
29
- * [Easy Digital Downloads](https://wp-stream.com/connectors/edd/)
30
- * [Gravity Forms](https://wp-stream.com/connectors/gravity-forms/)
31
- * [Jetpack](https://wp-stream.com/connectors/jetpack/)
32
- * [WooCommerce](https://wp-stream.com/connectors/woocommerce/)
33
- * [WordPress SEO by Yoast](https://wp-stream.com/connectors/wordpress-seo/)
 
34
 
35
  **Built-In Tracking For Core Actions:**
36
 
@@ -88,6 +89,19 @@ Thank you for wanting to make Stream better for everyone! We salute you.
88
 
89
  ## Changelog ##
90
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
  ### 3.0.1 - September 2, 2015 ###
92
  * New: Stream and [User Switching](https://wordpress.org/plugins/user-switching/) are now besties ([#744](https://github.com/xwp/stream/pull/744))
93
  * New: You can now choose to keep your records indefinitely (probably not a good idea) ([#748](https://github.com/xwp/stream/pull/748))
5
  Stream is the easiest and safest way to track content changes happening to your WordPress site and then view them in beautifully organized detail.
6
 
7
  **Contributors:** [fjarrett](https://profiles.wordpress.org/fjarrett), [lukecarbis](https://profiles.wordpress.org/lukecarbis), [shadyvb](https://profiles.wordpress.org/shadyvb), [westonruter](https://profiles.wordpress.org/westonruter), [stream](https://profiles.wordpress.org/stream), [xwp](https://profiles.wordpress.org/xwp)
8
+ **Tags:** [actions](https://wordpress.org/plugins/tags/actions), [activity](https://wordpress.org/plugins/tags/activity), [activity log](https://wordpress.org/plugins/tags/activity log), [activity logs](https://wordpress.org/plugins/tags/activity logs), [admin actions](https://wordpress.org/plugins/tags/admin actions), [analytics](https://wordpress.org/plugins/tags/analytics), [audit](https://wordpress.org/plugins/tags/audit), [audit log](https://wordpress.org/plugins/tags/audit log), [audit logs](https://wordpress.org/plugins/tags/audit logs), [change](https://wordpress.org/plugins/tags/change), [changes](https://wordpress.org/plugins/tags/changes), [dashboard](https://wordpress.org/plugins/tags/dashboard), [log](https://wordpress.org/plugins/tags/log), [logs](https://wordpress.org/plugins/tags/logs), [stream](https://wordpress.org/plugins/tags/stream), [tracking](https://wordpress.org/plugins/tags/tracking), [troubleshooting](https://wordpress.org/plugins/tags/troubleshooting), [wp stream](https://wordpress.org/plugins/tags/wp stream)
9
  **Requires at least:** 3.7
10
  **Tested up to:** 4.2
11
+ **Stable tag:** 3.0.2
12
  **License:** [GPLv2 or later](https://www.gnu.org/licenses/gpl-2.0.html)
13
 
14
  [![Build Status](https://travis-ci.org/xwp/stream.png?branch=master)](https://travis-ci.org/xwp/stream) [![Join the chat at https://gitter.im/xwp/stream](https://badges.gitter.im/Joinhat.svg)](https://gitter.im/xwp/stream)
23
 
24
  **Built-In Tracking Integrations For Popular Plugins:**
25
 
26
+ * Advanced Custom Fields
27
+ * bbPress
28
+ * BuddyPress
29
+ * Easy Digital Downloads
30
+ * Gravity Forms
31
+ * Jetpack
32
+ * User Switching
33
+ * WooCommerce
34
+ * WordPress SEO by Yoast
35
 
36
  **Built-In Tracking For Core Actions:**
37
 
89
 
90
  ## Changelog ##
91
 
92
+ ### 3.0.2 - October 2, 2015 ###
93
+ * Tweak: Helper function for running Stream queries added ([#774](https://github.com/xwp/stream/pull/774))
94
+ * Tweak: Migration dialog removed ([76e809f](https://github.com/xwp/stream/commit/76e809f9abb3dd691b755cf943b50a76a3ffb488))
95
+ * Tweak: Better handling of draft saving and auto-saving ([#775](https://github.com/xwp/stream/pull/775))
96
+ * Tweak: Records page title size now matches other admin pages ([afcced8](https://github.com/xwp/stream/commit/afcced8b590e047e8adfe6ae79483a7436c849f4))
97
+ * Fix: Database update dialog is now displayed correctly ([#773](https://github.com/xwp/stream/pull/773))
98
+ * Fix: The record's connector was being incorrectly stored as the connector name ([#773](https://github.com/xwp/stream/pull/773))
99
+ * Fix: Record action links are back ([#773](https://github.com/xwp/stream/pull/773))
100
+ * Fix: Jetpack is now able to connect without error while Stream is active ([#768](https://github.com/xwp/stream/pull/768))
101
+ * Fix: Reset Filters text no longer wraps to a second line ([#765](https://github.com/xwp/stream/pull/765))
102
+
103
+ Props [@lukecarbis](https://github.com/lukecarbis)
104
+
105
  ### 3.0.1 - September 2, 2015 ###
106
  * New: Stream and [User Switching](https://wordpress.org/plugins/user-switching/) are now besties ([#744](https://github.com/xwp/stream/pull/744))
107
  * New: You can now choose to keep your records indefinitely (probably not a good idea) ([#748](https://github.com/xwp/stream/pull/748))
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
  === Stream ===
2
  Contributors: fjarrett, lukecarbis, shadyvb, westonruter, stream, xwp
3
- Tags: actions, activity, activity log, activity logs, admin actions, analytics, change, changes, dashboard, log, logs, stream, tracking, troubleshooting, wp stream
4
  Requires at least: 3.7
5
  Tested up to: 4.2
6
- Stable tag: 3.0.1
7
  License: GPLv2 or later
8
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -19,14 +19,15 @@ Every logged-in user action is displayed in an activity stream and organized for
19
 
20
  **Built-In Tracking Integrations For Popular Plugins:**
21
 
22
- * [Advanced Custom Fields](https://wp-stream.com/connectors/acf/)
23
- * [bbPress](https://wp-stream.com/connectors/bbpress/)
24
- * [BuddyPress](https://wp-stream.com/connectors/buddypress/)
25
- * [Easy Digital Downloads](https://wp-stream.com/connectors/edd/)
26
- * [Gravity Forms](https://wp-stream.com/connectors/gravity-forms/)
27
- * [Jetpack](https://wp-stream.com/connectors/jetpack/)
28
- * [WooCommerce](https://wp-stream.com/connectors/woocommerce/)
29
- * [WordPress SEO by Yoast](https://wp-stream.com/connectors/wordpress-seo/)
 
30
 
31
  **Built-In Tracking For Core Actions:**
32
 
@@ -76,6 +77,20 @@ Thank you for wanting to make Stream better for everyone! We salute you.
76
 
77
  == Changelog ==
78
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
79
  = 3.0.1 - September 2, 2015 =
80
 
81
  * New: Stream and [User Switching](https://wordpress.org/plugins/user-switching/) are now besties ([#744](https://github.com/xwp/stream/pull/744))
1
  === Stream ===
2
  Contributors: fjarrett, lukecarbis, shadyvb, westonruter, stream, xwp
3
+ Tags: actions, activity, activity log, activity logs, admin actions, analytics, audit, audit log, audit logs, change, changes, dashboard, log, logs, stream, tracking, troubleshooting, wp stream
4
  Requires at least: 3.7
5
  Tested up to: 4.2
6
+ Stable tag: 3.0.2
7
  License: GPLv2 or later
8
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
9
 
19
 
20
  **Built-In Tracking Integrations For Popular Plugins:**
21
 
22
+ * Advanced Custom Fields
23
+ * bbPress
24
+ * BuddyPress
25
+ * Easy Digital Downloads
26
+ * Gravity Forms
27
+ * Jetpack
28
+ * User Switching
29
+ * WooCommerce
30
+ * WordPress SEO by Yoast
31
 
32
  **Built-In Tracking For Core Actions:**
33
 
77
 
78
  == Changelog ==
79
 
80
+ = 3.0.2 - October 2, 2015 =
81
+
82
+ * Tweak: Helper function for running Stream queries added ([#774](https://github.com/xwp/stream/pull/774))
83
+ * Tweak: Migration dialog removed ([76e809f](https://github.com/xwp/stream/commit/76e809f9abb3dd691b755cf943b50a76a3ffb488))
84
+ * Tweak: Better handling of draft saving and auto-saving ([#775](https://github.com/xwp/stream/pull/775))
85
+ * Tweak: Records page title size now matches other admin pages ([afcced8](https://github.com/xwp/stream/commit/afcced8b590e047e8adfe6ae79483a7436c849f4))
86
+ * Fix: Database update dialog is now displayed correctly ([#773](https://github.com/xwp/stream/pull/773))
87
+ * Fix: The record's connector was being incorrectly stored as the connector name ([#773](https://github.com/xwp/stream/pull/773))
88
+ * Fix: Record action links are back ([#773](https://github.com/xwp/stream/pull/773))
89
+ * Fix: Jetpack is now able to connect without error while Stream is active ([#768](https://github.com/xwp/stream/pull/768))
90
+ * Fix: Reset Filters text no longer wraps to a second line ([#765](https://github.com/xwp/stream/pull/765))
91
+
92
+ Props [@lukecarbis](https://github.com/lukecarbis)
93
+
94
  = 3.0.1 - September 2, 2015 =
95
 
96
  * New: Stream and [User Switching](https://wordpress.org/plugins/user-switching/) are now besties ([#744](https://github.com/xwp/stream/pull/744))
stream.php CHANGED
@@ -3,16 +3,16 @@
3
  * Plugin Name: Stream
4
  * Plugin URI: https://wp-stream.com/
5
  * Description: Stream tracks logged-in user activity so you can monitor every change made on your WordPress site in beautifully organized detail. All activity is organized by context, action and IP address for easy filtering. Developers can extend Stream with custom connectors to log any kind of action.
6
- * Version: 3.0.1
7
- * Author: Stream
8
- * Author URI: https://wp-stream.com/
9
  * License: GPLv2+
10
  * Text Domain: stream
11
  * Domain Path: /languages
12
  */
13
 
14
  /**
15
- * Copyright (c) 2015 WP Stream Pty Ltd (https://wp-stream.com/)
16
  *
17
  * This program is free software; you can redistribute it and/or modify
18
  * it under the terms of the GNU General Public License, version 2 or, at
3
  * Plugin Name: Stream
4
  * Plugin URI: https://wp-stream.com/
5
  * Description: Stream tracks logged-in user activity so you can monitor every change made on your WordPress site in beautifully organized detail. All activity is organized by context, action and IP address for easy filtering. Developers can extend Stream with custom connectors to log any kind of action.
6
+ * Version: 3.0.2
7
+ * Author: XWP
8
+ * Author URI: https://xwp.co/
9
  * License: GPLv2+
10
  * Text Domain: stream
11
  * Domain Path: /languages
12
  */
13
 
14
  /**
15
+ * Copyright (c) 2015 XWP.Co Pty Ltd. (https://xwp.co/)
16
  *
17
  * This program is free software; you can redistribute it and/or modify
18
  * it under the terms of the GNU General Public License, version 2 or, at
tests/tests/test-class-admin.php CHANGED
@@ -44,11 +44,9 @@ class Test_Admin extends WP_StreamTestCase {
44
  $this->admin->init();
45
  $this->assertNotEmpty( $this->admin->network );
46
  $this->assertNotEmpty( $this->admin->live_update );
47
- $this->assertNotEmpty( $this->admin->migrate );
48
 
49
  $this->assertInstanceOf( '\WP_Stream\Network', $this->admin->network );
50
  $this->assertInstanceOf( '\WP_Stream\Live_Update', $this->admin->live_update );
51
- $this->assertInstanceOf( '\WP_Stream\Migrate', $this->admin->migrate );
52
  }
53
 
54
  public function test_prepare_admin_notices() {
44
  $this->admin->init();
45
  $this->assertNotEmpty( $this->admin->network );
46
  $this->assertNotEmpty( $this->admin->live_update );
 
47
 
48
  $this->assertInstanceOf( '\WP_Stream\Network', $this->admin->network );
49
  $this->assertInstanceOf( '\WP_Stream\Live_Update', $this->admin->live_update );
 
50
  }
51
 
52
  public function test_prepare_admin_notices() {
tests/tests/test-class-connector.php CHANGED
@@ -72,7 +72,7 @@ class Test_Connector extends WP_StreamTestCase {
72
  $this->assertNotEmpty( $result );
73
 
74
  $this->assertEquals( sprintf( $message, $percent_failure, $hours_remaining ), $result->summary );
75
- $this->assertEquals( 'Maintenance', $result->connector );
76
  $this->assertEquals( 'ae35', $result->context );
77
  $this->assertEquals( 'simulate_fault', $result->action );
78
  }
72
  $this->assertNotEmpty( $result );
73
 
74
  $this->assertEquals( sprintf( $message, $percent_failure, $hours_remaining ), $result->summary );
75
+ $this->assertEquals( 'maintenance', $result->connector );
76
  $this->assertEquals( 'ae35', $result->context );
77
  $this->assertEquals( 'simulate_fault', $result->action );
78
  }
tests/tests/test-class-db.php CHANGED
@@ -63,7 +63,17 @@ class Test_DB extends WP_StreamTestCase {
63
 
64
  foreach ( $this->dummy_stream_data() as $dummy_key => $dummy_value ) {
65
  $this->assertArrayHasKey( $dummy_key, $stream_result );
66
- $this->assertEquals( $dummy_value, $stream_result[ $dummy_key ] );
 
 
 
 
 
 
 
 
 
 
67
  }
68
 
69
  // Check that meta exists
63
 
64
  foreach ( $this->dummy_stream_data() as $dummy_key => $dummy_value ) {
65
  $this->assertArrayHasKey( $dummy_key, $stream_result );
66
+ if ( 'created' === $dummy_key ) {
67
+ // It may take up to two seconds to insert a record, so check the time difference
68
+ $dummy_time = strtotime( $dummy_value );
69
+ $result_time = strtotime( $stream_result[ $dummy_key ] );
70
+ $this->assertTrue( $dummy_time > 0 );
71
+ $this->assertTrue( $result_time > 0 );
72
+ $this->assertTrue( $result_time - $dummy_time < 2 );
73
+ $this->assertTrue( $result_time - $dummy_time >= -2 );
74
+ } else {
75
+ $this->assertEquals( $dummy_value, $stream_result[ $dummy_key ] );
76
+ }
77
  }
78
 
79
  // Check that meta exists
tests/tests/test-class-plugin.php CHANGED
@@ -26,7 +26,7 @@ class Test_Plugin extends WP_StreamTestCase {
26
  }
27
 
28
  public function test_autoload() {
29
- $this->assertTrue( class_exists( '\WP_Stream\Migrate' ) );
30
  $this->assertFalse( class_exists( '\WP_Stream\HAL9000' ) );
31
  }
32
 
26
  }
27
 
28
  public function test_autoload() {
29
+ $this->assertTrue( class_exists( '\WP_Stream\Admin' ) );
30
  $this->assertFalse( class_exists( '\WP_Stream\HAL9000' ) );
31
  }
32
 
ui/css/admin.css CHANGED
@@ -18,11 +18,12 @@
18
  margin-left: 5px;
19
  line-height: 28px;
20
  text-decoration: none;
 
21
  }
22
 
23
  #record-query-reset span.dashicons {
24
  position: absolute;
25
- top: 2px;
26
  left: 0;
27
  font-size: 13px;
28
  }
@@ -468,48 +469,3 @@
468
  .post-type-stream_notification .view-switch {
469
  display: none;
470
  }
471
-
472
-
473
- /* Stream Migrate Message */
474
-
475
- #stream-migrate-progress {
476
- display: none;
477
- height: 36px;
478
- padding: 5px 0;
479
- }
480
-
481
- #stream-migrate-progress progress {
482
- width: 300px;
483
- font-size: 18px;
484
- }
485
-
486
- #stream-migrate-progress strong,
487
- #stream-migrate-progress #stream-migrate-actions-close {
488
- display: none;
489
- }
490
-
491
- #stream-migrate-progress strong {
492
- padding-left: 5px;
493
- }
494
-
495
- #stream-migrate-progress strong,
496
- #stream-migrate-progress em {
497
- line-height: 28px;
498
- padding-right: 10px;
499
- }
500
-
501
- #stream-migrate-actions .button {
502
- display: inline-block;
503
- vertical-align: bottom !important;
504
- margin: 0 10px 5px 0 !important;
505
- }
506
-
507
- #stream-ignore-migrate {
508
- display: inline-block;
509
- margin: 10px 0 5px;
510
- color: #a00;
511
- }
512
-
513
- #stream-ignore-migrate:hover {
514
- color: #f00;
515
- }
18
  margin-left: 5px;
19
  line-height: 28px;
20
  text-decoration: none;
21
+ display: inline-block;
22
  }
23
 
24
  #record-query-reset span.dashicons {
25
  position: absolute;
26
+ top: 0.5em;
27
  left: 0;
28
  font-size: 13px;
29
  }
469
  .post-type-stream_notification .view-switch {
470
  display: none;
471
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ui/js/migrate.js DELETED
@@ -1,114 +0,0 @@
1
- /* globals wp_stream_migrate, ajaxurl */
2
- jQuery( function( $ ) {
3
-
4
- var chunks = parseInt( wp_stream_migrate.chunks, 10 ),
5
- progress_step = ( chunks > 1 ) ? 100 / chunks : 100,
6
- progress_val = 0;
7
-
8
- $( document ).on( 'click', '#stream-start-migrate', function( e ) {
9
- if ( ! window.confirm( wp_stream_migrate.i18n.confirm_start_migrate ) ) {
10
- e.preventDefault();
11
- } else {
12
- stream_migrate_action( 'migrate' );
13
- }
14
- });
15
-
16
- $( document ).on( 'click', '#stream-migrate-reminder', function( e ) {
17
- if ( ! window.confirm( wp_stream_migrate.i18n.confirm_migrate_reminder ) ) {
18
- e.preventDefault();
19
- } else {
20
- stream_migrate_action( 'delay' );
21
- }
22
- });
23
-
24
- $( document ).on( 'click', '#stream-ignore-migrate', function( e ) {
25
- if ( ! window.confirm( wp_stream_migrate.i18n.confirm_ignore_migrate ) ) {
26
- e.preventDefault();
27
- } else {
28
- stream_migrate_action( 'ignore' );
29
- }
30
- });
31
-
32
- $( document ).on( 'click', '#stream-migrate-actions-close', function() {
33
- location.reload( true );
34
- });
35
-
36
- function stream_migrate_action( migrate_action ) {
37
- var data = {
38
- 'action': 'wp_stream_migrate_action',
39
- 'migrate_action': migrate_action,
40
- 'nonce': wp_stream_migrate.nonce
41
- };
42
-
43
- $.ajax({
44
- type: 'POST',
45
- url: ajaxurl,
46
- data: data,
47
- dataType: 'json',
48
- beforeSend: function() {
49
- stream_migrate_start( migrate_action );
50
- },
51
- success: function( response ) {
52
- if ( false === response.success ) {
53
- stream_migrate_end( response.data, true );
54
- } else {
55
- if ( 'migrate' === response.data || 'continue' === response.data ) {
56
- stream_migrate_progress_loop( response.data );
57
- } else {
58
- stream_migrate_end( response.data );
59
- }
60
- }
61
- },
62
- error: function() {
63
- stream_migrate_end( wp_stream_migrate.i18n.error_message, true );
64
- }
65
- });
66
- }
67
-
68
- function stream_migrate_progress_loop( migrate_action ) {
69
- progress_val = ( ( progress_step + progress_val ) < 100 ) ? progress_step + progress_val : 100;
70
-
71
- $( '#stream-migrate-progress progress' ).val( progress_val );
72
- $( '#stream-migrate-progress strong' ).text( Math.round( progress_val ) + '%' );
73
-
74
- stream_migrate_action( migrate_action );
75
- }
76
-
77
- function stream_migrate_start( migrate_action ) {
78
- $( '#stream-migrate-actions' ).hide();
79
- $( '#stream-migrate-blog-link' ).hide();
80
- $( '#stream-migrate-progress' ).show();
81
-
82
- if ( 'migrate' !== migrate_action && 'continue' !== migrate_action ) {
83
- $( '#stream-migrate-title' ).text( wp_stream_migrate.i18n.ignore_migrate_title );
84
- $( '#stream-migrate-message' ).hide();
85
- $( '#stream-migrate-progress progress' ).hide();
86
- $( '#stream-migrate-progress strong' ).hide();
87
- }
88
-
89
- if ( 'migrate' === migrate_action || 'continue' === migrate_action ) {
90
- $( '#stream-migrate-title' ).text( wp_stream_migrate.i18n.migrate_process_title );
91
- $( '#stream-migrate-message' ).text( wp_stream_migrate.i18n.migrate_process_message );
92
- $( '#stream-migrate-progress progress' ).show();
93
- $( '#stream-migrate-progress strong' ).show();
94
- }
95
- }
96
-
97
- function stream_migrate_end( message, is_error ) {
98
- is_error = 'undefined' !== typeof is_error ? is_error : false;
99
-
100
- $( '#stream-migrate-message' ).hide();
101
- $( '#stream-migrate-progress progress' ).hide();
102
- $( '#stream-migrate-progress strong' ).hide();
103
- $( '#stream-migrate-actions-close' ).show();
104
-
105
- if ( message ) {
106
- $( '#stream-migrate-progress em' ).html( message );
107
-
108
- if ( is_error ) {
109
- $( '#stream-migrate-progress em' ).css( 'color', '#a00' );
110
- }
111
- }
112
- }
113
-
114
- });