Changeset 3420209
- Timestamp:
- 12/15/2025 02:00:15 PM (3 months ago)
- Location:
- mass-email-notifications-for-gravity-forms
- Files:
-
- 2 deleted
- 30 edited
- 1 copied
-
tags/1.3.4 (copied) (copied from mass-email-notifications-for-gravity-forms/trunk)
-
tags/1.3.4/class-mass-email-notifications-for-gravity-forms.php (modified) (3 diffs)
-
tags/1.3.4/includes/js/plugin_page.js (deleted)
-
tags/1.3.4/mass-email-notifications-for-gf.php (modified) (2 diffs)
-
tags/1.3.4/readme.txt (modified) (2 diffs)
-
tags/1.3.4/vendor/MENFGF/autoload.php (modified) (1 diff)
-
tags/1.3.4/vendor/MENFGF/composer/autoload_real.php (modified) (2 diffs)
-
tags/1.3.4/vendor/MENFGF/composer/autoload_static.php (modified) (2 diffs)
-
tags/1.3.4/vendor/MENFGF/composer/installed.json (modified) (2 diffs)
-
tags/1.3.4/vendor/MENFGF/composer/installed.php (modified) (2 diffs)
-
tags/1.3.4/vendor/MENFGF/gravityops/core/src/Admin/AdminShell.php (modified) (4 diffs)
-
tags/1.3.4/vendor/MENFGF/gravityops/core/src/Admin/SuiteMenu.php (modified) (1 diff)
-
tags/1.3.4/vendor/autoload.php (modified) (1 diff)
-
tags/1.3.4/vendor/composer/autoload_real.php (modified) (2 diffs)
-
tags/1.3.4/vendor/composer/autoload_static.php (modified) (2 diffs)
-
tags/1.3.4/vendor/composer/installed.json (modified) (2 diffs)
-
tags/1.3.4/vendor/composer/installed.php (modified) (3 diffs)
-
trunk/class-mass-email-notifications-for-gravity-forms.php (modified) (3 diffs)
-
trunk/includes/js/plugin_page.js (deleted)
-
trunk/mass-email-notifications-for-gf.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/vendor/MENFGF/autoload.php (modified) (1 diff)
-
trunk/vendor/MENFGF/composer/autoload_real.php (modified) (2 diffs)
-
trunk/vendor/MENFGF/composer/autoload_static.php (modified) (2 diffs)
-
trunk/vendor/MENFGF/composer/installed.json (modified) (2 diffs)
-
trunk/vendor/MENFGF/composer/installed.php (modified) (2 diffs)
-
trunk/vendor/MENFGF/gravityops/core/src/Admin/AdminShell.php (modified) (4 diffs)
-
trunk/vendor/MENFGF/gravityops/core/src/Admin/SuiteMenu.php (modified) (1 diff)
-
trunk/vendor/autoload.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_real.php (modified) (2 diffs)
-
trunk/vendor/composer/autoload_static.php (modified) (2 diffs)
-
trunk/vendor/composer/installed.json (modified) (2 diffs)
-
trunk/vendor/composer/installed.php (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
mass-email-notifications-for-gravity-forms/tags/1.3.4/class-mass-email-notifications-for-gravity-forms.php
r3420036 r3420209 314 314 ]; 315 315 } 316 AdminShell::render_feeds_list( $feeds_and_forms, $this->_slug ); 316 AdminShell::render_feeds_list( 317 $feeds_and_forms, 318 $this->_slug, 319 $this->_short_title, 320 'menfgf_toggle_feed' 321 ); 317 322 } 318 323 … … 397 402 */ 398 403 public function handle_toggle_feed() { 399 if ( empty( wp_unslash( $_SERVER['REQUEST_METHOD'] ) ) || 'POST' !== (wp_unslash( $_SERVER['REQUEST_METHOD'] ) ?? '') ) { 400 // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized 401 wp_safe_redirect( admin_url( 'admin.php?page=mass_email_notifications_for_gf&tab=feeds' ) ); 402 exit; 403 } 404 $fid = ( isset( $_POST['fid'] ) ? (int) wp_unslash( $_POST['fid'] ) : 0 ); 405 // phpcs:ignore WordPress.Security.ValidatedSanitizedInput 406 if ( !$fid || !isset( $_POST['_wpnonce'] ) || !wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['_wpnonce'] ) ), 'menfgf_toggle_feed_' . $fid ) ) { 407 // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized 408 wp_safe_redirect( admin_url( 'admin.php?page=mass_email_notifications_for_gf&tab=feeds' ) ); 409 exit; 410 } 411 // Cap: mirror Asana implementation, require manage options on plugin pages that inherit parent cap. 412 if ( !current_user_can( SuiteMenu::get_parent_capability() ) ) { 413 wp_safe_redirect( admin_url( 'admin.php?page=mass_email_notifications_for_gf&tab=feeds' ) ); 414 exit; 415 } 416 global $wpdb; 417 $table = $wpdb->prefix . 'gf_addon_feed'; 418 // Fetch current state and flip it. 419 // phpcs:disable WordPress.DB.DirectDatabaseQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared 420 $row = $wpdb->get_row( $wpdb->prepare( "SELECT is_active FROM {$table} WHERE id = %d", $fid ) ); 421 if ( $row ) { 422 $new = ( (int) $row->is_active ? 0 : 1 ); 423 $wpdb->query( $wpdb->prepare( "UPDATE {$table} SET is_active = %d WHERE id = %d", $new, $fid ) ); 424 } 425 // phpcs:enable WordPress.DB.DirectDatabaseQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared 426 wp_safe_redirect( admin_url( 'admin.php?page=mass_email_notifications_for_gf&tab=feeds' ) ); 427 exit; 404 AdminShell::process_feed_toggle( 'menfgf_toggle_feed', 'admin.php?page=mass_email_notifications_for_gf&tab=feeds' ); 428 405 } 429 406 … … 1108 1085 'query' => 'subview=' . $this->_slug . '&page=gf_edit_forms&id=_notempty_&view=settings', 1109 1086 ]] 1110 ), $this->asset_helper->build_script(1111 self::PREFIX . 'plugin_page',1112 'includes/js/plugin_page.js',1113 ['jquery'],1114 [1115 [1116 'query' => 'page=' . $this->_slug,1117 ],1118 [1119 'query' => 'page=' . $this->_slug . '-contact',1120 ],1121 [1122 'query' => 'page=' . $this->_slug . '-account',1123 ],1124 [1125 'query' => 'page=' . $this->_slug . '-affiliation',1126 ]1127 ]1128 1087 )]; 1129 1088 return array_merge( parent::scripts(), $scripts ); -
mass-email-notifications-for-gravity-forms/tags/1.3.4/mass-email-notifications-for-gf.php
r3420036 r3420209 6 6 * Author URI: https://brightleafdigital.io/ 7 7 * Description: Allows you to send notifications to everyone who filled out any of your forms. 8 * Version: 1.3. 38 * Version: 1.3.4 9 9 * Author: BrightLeaf Digital 10 10 * License: GPL-2.0+ … … 66 66 } 67 67 menfgf_fs()->add_filter( 'enable_cpt_advanced_menu_logic', '__return_true' ); 68 define( 'MASS_EMAIL_NOTIFICATIONS_FOR_GRAVITY_FORMS_VERSION', '1.3. 3' );68 define( 'MASS_EMAIL_NOTIFICATIONS_FOR_GRAVITY_FORMS_VERSION', '1.3.4' ); 69 69 define( 'MASS_EMAIL_NOTIFICATIONS_FOR_GRAVITY_FORMS_BASENAME', plugin_basename( __FILE__ ) ); 70 70 add_action( 'admin_notices', function () { -
mass-email-notifications-for-gravity-forms/tags/1.3.4/readme.txt
r3420036 r3420209 2 2 Tested up to: 6.9 3 3 Tags: GravityForms, notifications, email, task management, automation 4 Stable tag: 1.3. 34 Stable tag: 1.3.4 5 5 Requires PHP: 8.0 6 6 License: GPLv2 or later … … 44 44 == Changelog == 45 45 46 = 1.3.4 | Dec 15, 2025 = 47 * Fixed a bug with the Feed tab in the new admin menu. 48 46 49 = 1.3.3 | Dec 15, 2025 = 47 50 * We've upgraded the plugin's core components for smoother compatibility and a more reliable experience overall. -
mass-email-notifications-for-gravity-forms/tags/1.3.4/vendor/MENFGF/autoload.php
r3420036 r3420209 20 20 require_once __DIR__ . '/composer/autoload_real.php'; 21 21 22 return ComposerAutoloaderInit 77e8445d93eb4eb8385aa2ef32ace8b9::getLoader();22 return ComposerAutoloaderInit04628f6c17a7085581c99909dd6d14c5::getLoader(); -
mass-email-notifications-for-gravity-forms/tags/1.3.4/vendor/MENFGF/composer/autoload_real.php
r3420036 r3420209 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit 77e8445d93eb4eb8385aa2ef32ace8b95 class ComposerAutoloaderInit04628f6c17a7085581c99909dd6d14c5 6 6 { 7 7 private static $loader; … … 25 25 require __DIR__ . '/platform_check.php'; 26 26 27 spl_autoload_register(array('ComposerAutoloaderInit 77e8445d93eb4eb8385aa2ef32ace8b9', 'loadClassLoader'), true, true);27 spl_autoload_register(array('ComposerAutoloaderInit04628f6c17a7085581c99909dd6d14c5', 'loadClassLoader'), true, true); 28 28 self::$loader = $loader = new \MENFGF\Composer\Autoload\ClassLoader(\dirname(__DIR__)); 29 spl_autoload_unregister(array('ComposerAutoloaderInit 77e8445d93eb4eb8385aa2ef32ace8b9', 'loadClassLoader'));29 spl_autoload_unregister(array('ComposerAutoloaderInit04628f6c17a7085581c99909dd6d14c5', 'loadClassLoader')); 30 30 31 31 require __DIR__ . '/autoload_static.php'; 32 call_user_func(\MENFGF\Composer\Autoload\ComposerStaticInit 77e8445d93eb4eb8385aa2ef32ace8b9::getInitializer($loader));32 call_user_func(\MENFGF\Composer\Autoload\ComposerStaticInit04628f6c17a7085581c99909dd6d14c5::getInitializer($loader)); 33 33 34 34 $loader->setClassMapAuthoritative(true); -
mass-email-notifications-for-gravity-forms/tags/1.3.4/vendor/MENFGF/composer/autoload_static.php
r3420036 r3420209 5 5 namespace MENFGF\Composer\Autoload; 6 6 7 class ComposerStaticInit 77e8445d93eb4eb8385aa2ef32ace8b97 class ComposerStaticInit04628f6c17a7085581c99909dd6d14c5 8 8 { 9 9 public static $prefixLengthsPsr4 = array ( … … 36 36 { 37 37 return \Closure::bind(function () use ($loader) { 38 $loader->prefixLengthsPsr4 = ComposerStaticInit 77e8445d93eb4eb8385aa2ef32ace8b9::$prefixLengthsPsr4;39 $loader->prefixDirsPsr4 = ComposerStaticInit 77e8445d93eb4eb8385aa2ef32ace8b9::$prefixDirsPsr4;40 $loader->classMap = ComposerStaticInit 77e8445d93eb4eb8385aa2ef32ace8b9::$classMap;38 $loader->prefixLengthsPsr4 = ComposerStaticInit04628f6c17a7085581c99909dd6d14c5::$prefixLengthsPsr4; 39 $loader->prefixDirsPsr4 = ComposerStaticInit04628f6c17a7085581c99909dd6d14c5::$prefixDirsPsr4; 40 $loader->classMap = ComposerStaticInit04628f6c17a7085581c99909dd6d14c5::$classMap; 41 41 42 42 }, null, ClassLoader::class); -
mass-email-notifications-for-gravity-forms/tags/1.3.4/vendor/MENFGF/composer/installed.json
r3420036 r3420209 3 3 "1": { 4 4 "name": "gravityops/core", 5 "version": "1.0. 5",6 "version_normalized": "1.0. 5.0",5 "version": "1.0.9", 6 "version_normalized": "1.0.9.0", 7 7 "source": { 8 8 "type": "git", 9 9 "url": "git@github.com:Eitan-brightleaf/gravityops.git", 10 "reference": " 2f8688fbd4eddd60722a1922ba7fd3107977c44b"10 "reference": "6f458bbfffcfa7fb9feff0858b42cb2b6626904f" 11 11 }, 12 12 "dist": { 13 13 "type": "zip", 14 "url": "https://api.github.com/repos/Eitan-brightleaf/gravityops/zipball/ 2f8688fbd4eddd60722a1922ba7fd3107977c44b",15 "reference": " 2f8688fbd4eddd60722a1922ba7fd3107977c44b",14 "url": "https://api.github.com/repos/Eitan-brightleaf/gravityops/zipball/6f458bbfffcfa7fb9feff0858b42cb2b6626904f", 15 "reference": "6f458bbfffcfa7fb9feff0858b42cb2b6626904f", 16 16 "shasum": "" 17 17 }, … … 19 19 "php": ">=7.4" 20 20 }, 21 "time": "2025-12-15T1 0:45:03+00:00",21 "time": "2025-12-15T13:51:53+00:00", 22 22 "type": "library", 23 23 "installation-source": "source", -
mass-email-notifications-for-gravity-forms/tags/1.3.4/vendor/MENFGF/composer/installed.php
r3420036 r3420209 5 5 'pretty_version' => 'dev-main', 6 6 'version' => 'dev-main', 7 'reference' => ' 212770f4424d603b2fcfd4553228f209825fe09e',7 'reference' => 'ad2a45b5f593f676073e26d5483350c779b747b4', 8 8 'type' => 'library', 9 9 'install_path' => __DIR__ . '/../', … … 17 17 'gravityops/core' => 18 18 array ( 19 'pretty_version' => '1.0. 5',20 'version' => '1.0. 5.0',21 'reference' => ' 2f8688fbd4eddd60722a1922ba7fd3107977c44b',19 'pretty_version' => '1.0.9', 20 'version' => '1.0.9.0', 21 'reference' => '6f458bbfffcfa7fb9feff0858b42cb2b6626904f', 22 22 'type' => 'library', 23 23 'install_path' => __DIR__ . '/../gravityops/core', -
mass-email-notifications-for-gravity-forms/tags/1.3.4/vendor/MENFGF/gravityops/core/src/Admin/AdminShell.php
r3420036 r3420209 157 157 * - A right-aligned Activate/Deactivate button that posts to admin-post.php with provided action. 158 158 * 159 * @param array $feeds_and_forms Array as returned by GF Add-On Framework's get_feeds().159 * @param array $feeds_and_forms Array of [ 'feed' => array, 'form' => array ] rows. 160 160 * @param string $gf_subview_slug The subview slug used by the add-on in GF settings (usually $this->_slug). 161 * @param string $plugin_short_title Short plugin title used for the header, e.g., "Asana Integration". 162 * @param string $toggle_action The admin_post action to handle toggle, used for form action and nonce prefix. 161 163 * 162 164 * @return void 163 165 */ 164 public static function render_feeds_list( array $feeds_and_forms, string $gf_subview_slug ): void {166 public static function render_feeds_list( array $feeds_and_forms, string $gf_subview_slug, string $plugin_short_title, string $toggle_action ): void { 165 167 echo '<div class="gops-card">'; 166 echo '<h2 class="gops-title" style="margin:0 0 10px;"> AsanaFeeds</h2>';168 echo '<h2 class="gops-title" style="margin:0 0 10px;">' . esc_html( $plugin_short_title ) . ' Feeds</h2>'; 167 169 168 170 if ( empty( $feeds_and_forms ) ) { … … 200 202 // Toggle button 201 203 echo '<form method="post" action="' . esc_url( admin_url( 'admin-post.php' ) ) . '" style="display:inline-block; margin-left:8px;">'; 202 echo '<input type="hidden" name="action" value=" iawgf_toggle_feed" />';204 echo '<input type="hidden" name="action" value="' . esc_attr( $toggle_action ) . '" />'; 203 205 echo '<input type="hidden" name="feed_id" value="' . esc_attr( (string) $feed_id ) . '" />'; 204 echo '<input type="hidden" name="_wpnonce" value="' . esc_attr( wp_create_nonce( 'iawgf_toggle_feed_' . $feed_id ) ) . '" />';206 echo '<input type="hidden" name="_wpnonce" value="' . esc_attr( wp_create_nonce( $toggle_action . '_' . $feed_id ) ) . '" />'; 205 207 $label = $is_active ? 'Deactivate' : 'Activate'; 206 208 $cls = $is_active ? 'button' : 'button button-primary'; … … 211 213 echo '</ul>'; 212 214 echo '</div>'; 215 } 216 217 /** 218 * Processes the toggling of a feed's active state in the database. 219 * 220 * This method verifies the request type, nonce, and user capability before updating the 221 * feed's active state in the database. If any validation fails, the user is redirected 222 * back to the given URL. 223 * 224 * @param string $url The URL to redirect to in case of validation failure or after successfully toggling the feed. 225 * 226 * @return void 227 */ 228 public static function process_feed_toggle( string $action_prefix, string $return_url ) { 229 if ( empty( wp_unslash( $_SERVER['REQUEST_METHOD'] ) ) || 'POST' !== ( wp_unslash( $_SERVER['REQUEST_METHOD'] ) ?? '' ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized 230 wp_safe_redirect( admin_url( $return_url ) ); 231 exit; 232 } 233 234 $fid = isset( $_POST['feed_id'] ) ? (int) $_POST['feed_id'] : 0; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput 235 $nonce = isset( $_POST['_wpnonce'] ) ? sanitize_text_field( wp_unslash( (string) $_POST['_wpnonce'] ) ) : ''; 236 if ( ! $fid || ! wp_verify_nonce( $nonce, $action_prefix . '_' . $fid ) ) { 237 wp_safe_redirect( admin_url( $return_url ) ); 238 exit; 239 } 240 241 if ( ! current_user_can( SuiteMenu::get_parent_capability() ) ) { 242 wp_safe_redirect( admin_url( $return_url ) ); 243 exit; 244 } 245 246 global $wpdb; 247 $table = $wpdb->prefix . 'gf_addon_feed'; 248 // phpcs:disable WordPress.DB.DirectDatabaseQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared 249 $row = $wpdb->get_row( $wpdb->prepare( "SELECT is_active FROM $table WHERE id = %d", $fid ) ); 250 if ( $row ) { 251 $new = ( (int) $row->is_active ) ? 0 : 1; 252 $wpdb->query( $wpdb->prepare( "UPDATE $table SET is_active = %d WHERE id = %d", $new, $fid ) ); 253 } 254 // phpcs:enable WordPress.DB.DirectDatabaseQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared 255 256 wp_safe_redirect( admin_url( $return_url ) ); 257 exit; 213 258 } 214 259 … … 302 347 $page = isset( $_GET['page'] ) ? sanitize_key( wp_unslash( $_GET['page'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended 303 348 304 $is_shell_page = isset( $this->pages[ $page ] ) || ( false !== strpos( (string) $hook, 'gravity_ops' ) ); 349 $pages_lower_case = array_change_key_case( $this->pages ); 350 $is_shell_page = isset( $pages_lower_case[ $page ] ) || ( false !== strpos( (string) $hook, 'gravity_ops' ) ); 305 351 306 352 // Optionally style Freemius pages in-place. -
mass-email-notifications-for-gravity-forms/tags/1.3.4/vendor/MENFGF/gravityops/core/src/Admin/SuiteMenu.php
r3420036 r3420209 170 170 $installed_plugins = get_plugins(); 171 171 $updates = get_site_transient( 'update_plugins' ); 172 $update_response = ( is_object( $updates ) && isset( $updates->response ) && is_ object( $updates->response ) ) ? $updates->response : [];172 $update_response = ( is_object( $updates ) && isset( $updates->response ) && is_array( $updates->response ) ) ? $updates->response : []; 173 173 $updates_count = 0; 174 174 -
mass-email-notifications-for-gravity-forms/tags/1.3.4/vendor/autoload.php
r3420036 r3420209 20 20 require_once __DIR__ . '/composer/autoload_real.php'; 21 21 22 return ComposerAutoloaderInit b077f8ac83a1f968269291160b6313d5::getLoader();22 return ComposerAutoloaderInitadc698ea51a475f0e4c7df8e8f4b148e::getLoader(); -
mass-email-notifications-for-gravity-forms/tags/1.3.4/vendor/composer/autoload_real.php
r3420036 r3420209 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit b077f8ac83a1f968269291160b6313d55 class ComposerAutoloaderInitadc698ea51a475f0e4c7df8e8f4b148e 6 6 { 7 7 private static $loader; … … 25 25 require __DIR__ . '/platform_check.php'; 26 26 27 spl_autoload_register(array('ComposerAutoloaderInit b077f8ac83a1f968269291160b6313d5', 'loadClassLoader'), true, true);27 spl_autoload_register(array('ComposerAutoloaderInitadc698ea51a475f0e4c7df8e8f4b148e', 'loadClassLoader'), true, true); 28 28 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); 29 spl_autoload_unregister(array('ComposerAutoloaderInit b077f8ac83a1f968269291160b6313d5', 'loadClassLoader'));29 spl_autoload_unregister(array('ComposerAutoloaderInitadc698ea51a475f0e4c7df8e8f4b148e', 'loadClassLoader')); 30 30 31 31 require __DIR__ . '/autoload_static.php'; 32 call_user_func(\Composer\Autoload\ComposerStaticInit b077f8ac83a1f968269291160b6313d5::getInitializer($loader));32 call_user_func(\Composer\Autoload\ComposerStaticInitadc698ea51a475f0e4c7df8e8f4b148e::getInitializer($loader)); 33 33 34 34 $loader->register(true); 35 35 36 $filesToLoad = \Composer\Autoload\ComposerStaticInit b077f8ac83a1f968269291160b6313d5::$files;36 $filesToLoad = \Composer\Autoload\ComposerStaticInitadc698ea51a475f0e4c7df8e8f4b148e::$files; 37 37 $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { 38 38 if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { -
mass-email-notifications-for-gravity-forms/tags/1.3.4/vendor/composer/autoload_static.php
r3420036 r3420209 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit b077f8ac83a1f968269291160b6313d57 class ComposerStaticInitadc698ea51a475f0e4c7df8e8f4b148e 8 8 { 9 9 public static $files = array ( … … 19 19 { 20 20 return \Closure::bind(function () use ($loader) { 21 $loader->classMap = ComposerStaticInit b077f8ac83a1f968269291160b6313d5::$classMap;21 $loader->classMap = ComposerStaticInitadc698ea51a475f0e4c7df8e8f4b148e::$classMap; 22 22 23 23 }, null, ClassLoader::class); -
mass-email-notifications-for-gravity-forms/tags/1.3.4/vendor/composer/installed.json
r3420036 r3420209 59 59 { 60 60 "name": "gravityops/core", 61 "version": "1.0. 5",62 "version_normalized": "1.0. 5.0",61 "version": "1.0.9", 62 "version_normalized": "1.0.9.0", 63 63 "source": { 64 64 "type": "git", 65 65 "url": "git@github.com:Eitan-brightleaf/gravityops.git", 66 "reference": " 2f8688fbd4eddd60722a1922ba7fd3107977c44b"66 "reference": "6f458bbfffcfa7fb9feff0858b42cb2b6626904f" 67 67 }, 68 68 "dist": { 69 69 "type": "zip", 70 "url": "https://api.github.com/repos/Eitan-brightleaf/gravityops/zipball/ 2f8688fbd4eddd60722a1922ba7fd3107977c44b",71 "reference": " 2f8688fbd4eddd60722a1922ba7fd3107977c44b",70 "url": "https://api.github.com/repos/Eitan-brightleaf/gravityops/zipball/6f458bbfffcfa7fb9feff0858b42cb2b6626904f", 71 "reference": "6f458bbfffcfa7fb9feff0858b42cb2b6626904f", 72 72 "shasum": "" 73 73 }, … … 75 75 "php": ">=7.4" 76 76 }, 77 "time": "2025-12-15T1 0:45:03+00:00",77 "time": "2025-12-15T13:51:53+00:00", 78 78 "type": "library", 79 79 "installation-source": "source", -
mass-email-notifications-for-gravity-forms/tags/1.3.4/vendor/composer/installed.php
r3420036 r3420209 4 4 'pretty_version' => 'dev-main', 5 5 'version' => 'dev-main', 6 'reference' => ' 212770f4424d603b2fcfd4553228f209825fe09e',6 'reference' => 'ad2a45b5f593f676073e26d5483350c779b747b4', 7 7 'type' => 'library', 8 8 'install_path' => __DIR__ . '/../../', … … 14 14 'pretty_version' => 'dev-main', 15 15 'version' => 'dev-main', 16 'reference' => ' 212770f4424d603b2fcfd4553228f209825fe09e',16 'reference' => 'ad2a45b5f593f676073e26d5483350c779b747b4', 17 17 'type' => 'library', 18 18 'install_path' => __DIR__ . '/../../', … … 30 30 ), 31 31 'gravityops/core' => array( 32 'pretty_version' => '1.0. 5',33 'version' => '1.0. 5.0',34 'reference' => ' 2f8688fbd4eddd60722a1922ba7fd3107977c44b',32 'pretty_version' => '1.0.9', 33 'version' => '1.0.9.0', 34 'reference' => '6f458bbfffcfa7fb9feff0858b42cb2b6626904f', 35 35 'type' => 'library', 36 36 'install_path' => __DIR__ . '/../gravityops/core', -
mass-email-notifications-for-gravity-forms/trunk/class-mass-email-notifications-for-gravity-forms.php
r3420036 r3420209 314 314 ]; 315 315 } 316 AdminShell::render_feeds_list( $feeds_and_forms, $this->_slug ); 316 AdminShell::render_feeds_list( 317 $feeds_and_forms, 318 $this->_slug, 319 $this->_short_title, 320 'menfgf_toggle_feed' 321 ); 317 322 } 318 323 … … 397 402 */ 398 403 public function handle_toggle_feed() { 399 if ( empty( wp_unslash( $_SERVER['REQUEST_METHOD'] ) ) || 'POST' !== (wp_unslash( $_SERVER['REQUEST_METHOD'] ) ?? '') ) { 400 // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized 401 wp_safe_redirect( admin_url( 'admin.php?page=mass_email_notifications_for_gf&tab=feeds' ) ); 402 exit; 403 } 404 $fid = ( isset( $_POST['fid'] ) ? (int) wp_unslash( $_POST['fid'] ) : 0 ); 405 // phpcs:ignore WordPress.Security.ValidatedSanitizedInput 406 if ( !$fid || !isset( $_POST['_wpnonce'] ) || !wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['_wpnonce'] ) ), 'menfgf_toggle_feed_' . $fid ) ) { 407 // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized 408 wp_safe_redirect( admin_url( 'admin.php?page=mass_email_notifications_for_gf&tab=feeds' ) ); 409 exit; 410 } 411 // Cap: mirror Asana implementation, require manage options on plugin pages that inherit parent cap. 412 if ( !current_user_can( SuiteMenu::get_parent_capability() ) ) { 413 wp_safe_redirect( admin_url( 'admin.php?page=mass_email_notifications_for_gf&tab=feeds' ) ); 414 exit; 415 } 416 global $wpdb; 417 $table = $wpdb->prefix . 'gf_addon_feed'; 418 // Fetch current state and flip it. 419 // phpcs:disable WordPress.DB.DirectDatabaseQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared 420 $row = $wpdb->get_row( $wpdb->prepare( "SELECT is_active FROM {$table} WHERE id = %d", $fid ) ); 421 if ( $row ) { 422 $new = ( (int) $row->is_active ? 0 : 1 ); 423 $wpdb->query( $wpdb->prepare( "UPDATE {$table} SET is_active = %d WHERE id = %d", $new, $fid ) ); 424 } 425 // phpcs:enable WordPress.DB.DirectDatabaseQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared 426 wp_safe_redirect( admin_url( 'admin.php?page=mass_email_notifications_for_gf&tab=feeds' ) ); 427 exit; 404 AdminShell::process_feed_toggle( 'menfgf_toggle_feed', 'admin.php?page=mass_email_notifications_for_gf&tab=feeds' ); 428 405 } 429 406 … … 1108 1085 'query' => 'subview=' . $this->_slug . '&page=gf_edit_forms&id=_notempty_&view=settings', 1109 1086 ]] 1110 ), $this->asset_helper->build_script(1111 self::PREFIX . 'plugin_page',1112 'includes/js/plugin_page.js',1113 ['jquery'],1114 [1115 [1116 'query' => 'page=' . $this->_slug,1117 ],1118 [1119 'query' => 'page=' . $this->_slug . '-contact',1120 ],1121 [1122 'query' => 'page=' . $this->_slug . '-account',1123 ],1124 [1125 'query' => 'page=' . $this->_slug . '-affiliation',1126 ]1127 ]1128 1087 )]; 1129 1088 return array_merge( parent::scripts(), $scripts ); -
mass-email-notifications-for-gravity-forms/trunk/mass-email-notifications-for-gf.php
r3420036 r3420209 6 6 * Author URI: https://brightleafdigital.io/ 7 7 * Description: Allows you to send notifications to everyone who filled out any of your forms. 8 * Version: 1.3. 38 * Version: 1.3.4 9 9 * Author: BrightLeaf Digital 10 10 * License: GPL-2.0+ … … 66 66 } 67 67 menfgf_fs()->add_filter( 'enable_cpt_advanced_menu_logic', '__return_true' ); 68 define( 'MASS_EMAIL_NOTIFICATIONS_FOR_GRAVITY_FORMS_VERSION', '1.3. 3' );68 define( 'MASS_EMAIL_NOTIFICATIONS_FOR_GRAVITY_FORMS_VERSION', '1.3.4' ); 69 69 define( 'MASS_EMAIL_NOTIFICATIONS_FOR_GRAVITY_FORMS_BASENAME', plugin_basename( __FILE__ ) ); 70 70 add_action( 'admin_notices', function () { -
mass-email-notifications-for-gravity-forms/trunk/readme.txt
r3420036 r3420209 2 2 Tested up to: 6.9 3 3 Tags: GravityForms, notifications, email, task management, automation 4 Stable tag: 1.3. 34 Stable tag: 1.3.4 5 5 Requires PHP: 8.0 6 6 License: GPLv2 or later … … 44 44 == Changelog == 45 45 46 = 1.3.4 | Dec 15, 2025 = 47 * Fixed a bug with the Feed tab in the new admin menu. 48 46 49 = 1.3.3 | Dec 15, 2025 = 47 50 * We've upgraded the plugin's core components for smoother compatibility and a more reliable experience overall. -
mass-email-notifications-for-gravity-forms/trunk/vendor/MENFGF/autoload.php
r3420036 r3420209 20 20 require_once __DIR__ . '/composer/autoload_real.php'; 21 21 22 return ComposerAutoloaderInit 77e8445d93eb4eb8385aa2ef32ace8b9::getLoader();22 return ComposerAutoloaderInit04628f6c17a7085581c99909dd6d14c5::getLoader(); -
mass-email-notifications-for-gravity-forms/trunk/vendor/MENFGF/composer/autoload_real.php
r3420036 r3420209 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit 77e8445d93eb4eb8385aa2ef32ace8b95 class ComposerAutoloaderInit04628f6c17a7085581c99909dd6d14c5 6 6 { 7 7 private static $loader; … … 25 25 require __DIR__ . '/platform_check.php'; 26 26 27 spl_autoload_register(array('ComposerAutoloaderInit 77e8445d93eb4eb8385aa2ef32ace8b9', 'loadClassLoader'), true, true);27 spl_autoload_register(array('ComposerAutoloaderInit04628f6c17a7085581c99909dd6d14c5', 'loadClassLoader'), true, true); 28 28 self::$loader = $loader = new \MENFGF\Composer\Autoload\ClassLoader(\dirname(__DIR__)); 29 spl_autoload_unregister(array('ComposerAutoloaderInit 77e8445d93eb4eb8385aa2ef32ace8b9', 'loadClassLoader'));29 spl_autoload_unregister(array('ComposerAutoloaderInit04628f6c17a7085581c99909dd6d14c5', 'loadClassLoader')); 30 30 31 31 require __DIR__ . '/autoload_static.php'; 32 call_user_func(\MENFGF\Composer\Autoload\ComposerStaticInit 77e8445d93eb4eb8385aa2ef32ace8b9::getInitializer($loader));32 call_user_func(\MENFGF\Composer\Autoload\ComposerStaticInit04628f6c17a7085581c99909dd6d14c5::getInitializer($loader)); 33 33 34 34 $loader->setClassMapAuthoritative(true); -
mass-email-notifications-for-gravity-forms/trunk/vendor/MENFGF/composer/autoload_static.php
r3420036 r3420209 5 5 namespace MENFGF\Composer\Autoload; 6 6 7 class ComposerStaticInit 77e8445d93eb4eb8385aa2ef32ace8b97 class ComposerStaticInit04628f6c17a7085581c99909dd6d14c5 8 8 { 9 9 public static $prefixLengthsPsr4 = array ( … … 36 36 { 37 37 return \Closure::bind(function () use ($loader) { 38 $loader->prefixLengthsPsr4 = ComposerStaticInit 77e8445d93eb4eb8385aa2ef32ace8b9::$prefixLengthsPsr4;39 $loader->prefixDirsPsr4 = ComposerStaticInit 77e8445d93eb4eb8385aa2ef32ace8b9::$prefixDirsPsr4;40 $loader->classMap = ComposerStaticInit 77e8445d93eb4eb8385aa2ef32ace8b9::$classMap;38 $loader->prefixLengthsPsr4 = ComposerStaticInit04628f6c17a7085581c99909dd6d14c5::$prefixLengthsPsr4; 39 $loader->prefixDirsPsr4 = ComposerStaticInit04628f6c17a7085581c99909dd6d14c5::$prefixDirsPsr4; 40 $loader->classMap = ComposerStaticInit04628f6c17a7085581c99909dd6d14c5::$classMap; 41 41 42 42 }, null, ClassLoader::class); -
mass-email-notifications-for-gravity-forms/trunk/vendor/MENFGF/composer/installed.json
r3420036 r3420209 3 3 "1": { 4 4 "name": "gravityops/core", 5 "version": "1.0. 5",6 "version_normalized": "1.0. 5.0",5 "version": "1.0.9", 6 "version_normalized": "1.0.9.0", 7 7 "source": { 8 8 "type": "git", 9 9 "url": "git@github.com:Eitan-brightleaf/gravityops.git", 10 "reference": " 2f8688fbd4eddd60722a1922ba7fd3107977c44b"10 "reference": "6f458bbfffcfa7fb9feff0858b42cb2b6626904f" 11 11 }, 12 12 "dist": { 13 13 "type": "zip", 14 "url": "https://api.github.com/repos/Eitan-brightleaf/gravityops/zipball/ 2f8688fbd4eddd60722a1922ba7fd3107977c44b",15 "reference": " 2f8688fbd4eddd60722a1922ba7fd3107977c44b",14 "url": "https://api.github.com/repos/Eitan-brightleaf/gravityops/zipball/6f458bbfffcfa7fb9feff0858b42cb2b6626904f", 15 "reference": "6f458bbfffcfa7fb9feff0858b42cb2b6626904f", 16 16 "shasum": "" 17 17 }, … … 19 19 "php": ">=7.4" 20 20 }, 21 "time": "2025-12-15T1 0:45:03+00:00",21 "time": "2025-12-15T13:51:53+00:00", 22 22 "type": "library", 23 23 "installation-source": "source", -
mass-email-notifications-for-gravity-forms/trunk/vendor/MENFGF/composer/installed.php
r3420036 r3420209 5 5 'pretty_version' => 'dev-main', 6 6 'version' => 'dev-main', 7 'reference' => ' 212770f4424d603b2fcfd4553228f209825fe09e',7 'reference' => 'ad2a45b5f593f676073e26d5483350c779b747b4', 8 8 'type' => 'library', 9 9 'install_path' => __DIR__ . '/../', … … 17 17 'gravityops/core' => 18 18 array ( 19 'pretty_version' => '1.0. 5',20 'version' => '1.0. 5.0',21 'reference' => ' 2f8688fbd4eddd60722a1922ba7fd3107977c44b',19 'pretty_version' => '1.0.9', 20 'version' => '1.0.9.0', 21 'reference' => '6f458bbfffcfa7fb9feff0858b42cb2b6626904f', 22 22 'type' => 'library', 23 23 'install_path' => __DIR__ . '/../gravityops/core', -
mass-email-notifications-for-gravity-forms/trunk/vendor/MENFGF/gravityops/core/src/Admin/AdminShell.php
r3420036 r3420209 157 157 * - A right-aligned Activate/Deactivate button that posts to admin-post.php with provided action. 158 158 * 159 * @param array $feeds_and_forms Array as returned by GF Add-On Framework's get_feeds().159 * @param array $feeds_and_forms Array of [ 'feed' => array, 'form' => array ] rows. 160 160 * @param string $gf_subview_slug The subview slug used by the add-on in GF settings (usually $this->_slug). 161 * @param string $plugin_short_title Short plugin title used for the header, e.g., "Asana Integration". 162 * @param string $toggle_action The admin_post action to handle toggle, used for form action and nonce prefix. 161 163 * 162 164 * @return void 163 165 */ 164 public static function render_feeds_list( array $feeds_and_forms, string $gf_subview_slug ): void {166 public static function render_feeds_list( array $feeds_and_forms, string $gf_subview_slug, string $plugin_short_title, string $toggle_action ): void { 165 167 echo '<div class="gops-card">'; 166 echo '<h2 class="gops-title" style="margin:0 0 10px;"> AsanaFeeds</h2>';168 echo '<h2 class="gops-title" style="margin:0 0 10px;">' . esc_html( $plugin_short_title ) . ' Feeds</h2>'; 167 169 168 170 if ( empty( $feeds_and_forms ) ) { … … 200 202 // Toggle button 201 203 echo '<form method="post" action="' . esc_url( admin_url( 'admin-post.php' ) ) . '" style="display:inline-block; margin-left:8px;">'; 202 echo '<input type="hidden" name="action" value=" iawgf_toggle_feed" />';204 echo '<input type="hidden" name="action" value="' . esc_attr( $toggle_action ) . '" />'; 203 205 echo '<input type="hidden" name="feed_id" value="' . esc_attr( (string) $feed_id ) . '" />'; 204 echo '<input type="hidden" name="_wpnonce" value="' . esc_attr( wp_create_nonce( 'iawgf_toggle_feed_' . $feed_id ) ) . '" />';206 echo '<input type="hidden" name="_wpnonce" value="' . esc_attr( wp_create_nonce( $toggle_action . '_' . $feed_id ) ) . '" />'; 205 207 $label = $is_active ? 'Deactivate' : 'Activate'; 206 208 $cls = $is_active ? 'button' : 'button button-primary'; … … 211 213 echo '</ul>'; 212 214 echo '</div>'; 215 } 216 217 /** 218 * Processes the toggling of a feed's active state in the database. 219 * 220 * This method verifies the request type, nonce, and user capability before updating the 221 * feed's active state in the database. If any validation fails, the user is redirected 222 * back to the given URL. 223 * 224 * @param string $url The URL to redirect to in case of validation failure or after successfully toggling the feed. 225 * 226 * @return void 227 */ 228 public static function process_feed_toggle( string $action_prefix, string $return_url ) { 229 if ( empty( wp_unslash( $_SERVER['REQUEST_METHOD'] ) ) || 'POST' !== ( wp_unslash( $_SERVER['REQUEST_METHOD'] ) ?? '' ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized 230 wp_safe_redirect( admin_url( $return_url ) ); 231 exit; 232 } 233 234 $fid = isset( $_POST['feed_id'] ) ? (int) $_POST['feed_id'] : 0; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput 235 $nonce = isset( $_POST['_wpnonce'] ) ? sanitize_text_field( wp_unslash( (string) $_POST['_wpnonce'] ) ) : ''; 236 if ( ! $fid || ! wp_verify_nonce( $nonce, $action_prefix . '_' . $fid ) ) { 237 wp_safe_redirect( admin_url( $return_url ) ); 238 exit; 239 } 240 241 if ( ! current_user_can( SuiteMenu::get_parent_capability() ) ) { 242 wp_safe_redirect( admin_url( $return_url ) ); 243 exit; 244 } 245 246 global $wpdb; 247 $table = $wpdb->prefix . 'gf_addon_feed'; 248 // phpcs:disable WordPress.DB.DirectDatabaseQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared 249 $row = $wpdb->get_row( $wpdb->prepare( "SELECT is_active FROM $table WHERE id = %d", $fid ) ); 250 if ( $row ) { 251 $new = ( (int) $row->is_active ) ? 0 : 1; 252 $wpdb->query( $wpdb->prepare( "UPDATE $table SET is_active = %d WHERE id = %d", $new, $fid ) ); 253 } 254 // phpcs:enable WordPress.DB.DirectDatabaseQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared 255 256 wp_safe_redirect( admin_url( $return_url ) ); 257 exit; 213 258 } 214 259 … … 302 347 $page = isset( $_GET['page'] ) ? sanitize_key( wp_unslash( $_GET['page'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended 303 348 304 $is_shell_page = isset( $this->pages[ $page ] ) || ( false !== strpos( (string) $hook, 'gravity_ops' ) ); 349 $pages_lower_case = array_change_key_case( $this->pages ); 350 $is_shell_page = isset( $pages_lower_case[ $page ] ) || ( false !== strpos( (string) $hook, 'gravity_ops' ) ); 305 351 306 352 // Optionally style Freemius pages in-place. -
mass-email-notifications-for-gravity-forms/trunk/vendor/MENFGF/gravityops/core/src/Admin/SuiteMenu.php
r3420036 r3420209 170 170 $installed_plugins = get_plugins(); 171 171 $updates = get_site_transient( 'update_plugins' ); 172 $update_response = ( is_object( $updates ) && isset( $updates->response ) && is_ object( $updates->response ) ) ? $updates->response : [];172 $update_response = ( is_object( $updates ) && isset( $updates->response ) && is_array( $updates->response ) ) ? $updates->response : []; 173 173 $updates_count = 0; 174 174 -
mass-email-notifications-for-gravity-forms/trunk/vendor/autoload.php
r3420036 r3420209 20 20 require_once __DIR__ . '/composer/autoload_real.php'; 21 21 22 return ComposerAutoloaderInit b077f8ac83a1f968269291160b6313d5::getLoader();22 return ComposerAutoloaderInitadc698ea51a475f0e4c7df8e8f4b148e::getLoader(); -
mass-email-notifications-for-gravity-forms/trunk/vendor/composer/autoload_real.php
r3420036 r3420209 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit b077f8ac83a1f968269291160b6313d55 class ComposerAutoloaderInitadc698ea51a475f0e4c7df8e8f4b148e 6 6 { 7 7 private static $loader; … … 25 25 require __DIR__ . '/platform_check.php'; 26 26 27 spl_autoload_register(array('ComposerAutoloaderInit b077f8ac83a1f968269291160b6313d5', 'loadClassLoader'), true, true);27 spl_autoload_register(array('ComposerAutoloaderInitadc698ea51a475f0e4c7df8e8f4b148e', 'loadClassLoader'), true, true); 28 28 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); 29 spl_autoload_unregister(array('ComposerAutoloaderInit b077f8ac83a1f968269291160b6313d5', 'loadClassLoader'));29 spl_autoload_unregister(array('ComposerAutoloaderInitadc698ea51a475f0e4c7df8e8f4b148e', 'loadClassLoader')); 30 30 31 31 require __DIR__ . '/autoload_static.php'; 32 call_user_func(\Composer\Autoload\ComposerStaticInit b077f8ac83a1f968269291160b6313d5::getInitializer($loader));32 call_user_func(\Composer\Autoload\ComposerStaticInitadc698ea51a475f0e4c7df8e8f4b148e::getInitializer($loader)); 33 33 34 34 $loader->register(true); 35 35 36 $filesToLoad = \Composer\Autoload\ComposerStaticInit b077f8ac83a1f968269291160b6313d5::$files;36 $filesToLoad = \Composer\Autoload\ComposerStaticInitadc698ea51a475f0e4c7df8e8f4b148e::$files; 37 37 $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { 38 38 if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { -
mass-email-notifications-for-gravity-forms/trunk/vendor/composer/autoload_static.php
r3420036 r3420209 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit b077f8ac83a1f968269291160b6313d57 class ComposerStaticInitadc698ea51a475f0e4c7df8e8f4b148e 8 8 { 9 9 public static $files = array ( … … 19 19 { 20 20 return \Closure::bind(function () use ($loader) { 21 $loader->classMap = ComposerStaticInit b077f8ac83a1f968269291160b6313d5::$classMap;21 $loader->classMap = ComposerStaticInitadc698ea51a475f0e4c7df8e8f4b148e::$classMap; 22 22 23 23 }, null, ClassLoader::class); -
mass-email-notifications-for-gravity-forms/trunk/vendor/composer/installed.json
r3420036 r3420209 59 59 { 60 60 "name": "gravityops/core", 61 "version": "1.0. 5",62 "version_normalized": "1.0. 5.0",61 "version": "1.0.9", 62 "version_normalized": "1.0.9.0", 63 63 "source": { 64 64 "type": "git", 65 65 "url": "git@github.com:Eitan-brightleaf/gravityops.git", 66 "reference": " 2f8688fbd4eddd60722a1922ba7fd3107977c44b"66 "reference": "6f458bbfffcfa7fb9feff0858b42cb2b6626904f" 67 67 }, 68 68 "dist": { 69 69 "type": "zip", 70 "url": "https://api.github.com/repos/Eitan-brightleaf/gravityops/zipball/ 2f8688fbd4eddd60722a1922ba7fd3107977c44b",71 "reference": " 2f8688fbd4eddd60722a1922ba7fd3107977c44b",70 "url": "https://api.github.com/repos/Eitan-brightleaf/gravityops/zipball/6f458bbfffcfa7fb9feff0858b42cb2b6626904f", 71 "reference": "6f458bbfffcfa7fb9feff0858b42cb2b6626904f", 72 72 "shasum": "" 73 73 }, … … 75 75 "php": ">=7.4" 76 76 }, 77 "time": "2025-12-15T1 0:45:03+00:00",77 "time": "2025-12-15T13:51:53+00:00", 78 78 "type": "library", 79 79 "installation-source": "source", -
mass-email-notifications-for-gravity-forms/trunk/vendor/composer/installed.php
r3420036 r3420209 4 4 'pretty_version' => 'dev-main', 5 5 'version' => 'dev-main', 6 'reference' => ' 212770f4424d603b2fcfd4553228f209825fe09e',6 'reference' => 'ad2a45b5f593f676073e26d5483350c779b747b4', 7 7 'type' => 'library', 8 8 'install_path' => __DIR__ . '/../../', … … 14 14 'pretty_version' => 'dev-main', 15 15 'version' => 'dev-main', 16 'reference' => ' 212770f4424d603b2fcfd4553228f209825fe09e',16 'reference' => 'ad2a45b5f593f676073e26d5483350c779b747b4', 17 17 'type' => 'library', 18 18 'install_path' => __DIR__ . '/../../', … … 30 30 ), 31 31 'gravityops/core' => array( 32 'pretty_version' => '1.0. 5',33 'version' => '1.0. 5.0',34 'reference' => ' 2f8688fbd4eddd60722a1922ba7fd3107977c44b',32 'pretty_version' => '1.0.9', 33 'version' => '1.0.9.0', 34 'reference' => '6f458bbfffcfa7fb9feff0858b42cb2b6626904f', 35 35 'type' => 'library', 36 36 'install_path' => __DIR__ . '/../gravityops/core',
Note: See TracChangeset
for help on using the changeset viewer.