diff --git a/admin/css/lbry-admin.css b/admin/css/lbry-admin.css index c52f3c3..db2ee9d 100644 --- a/admin/css/lbry-admin.css +++ b/admin/css/lbry-admin.css @@ -86,3 +86,38 @@ .lbry-meta-bx-content-last { padding: .2em .8em 1em .1em; } + +table.lbry-channel-table { + width: 100%; + border-collapse: collapse; + font-family: Georgia; +} + +.lbry-channel-table th, .lbry-channel-table td { + padding: .4em 1.6em; + border: 2px solid #fff; + background: #fbd7b4; + font-size: 1em; +} +.lbry-channel-table thead th { + padding: .5em 2em; + background: #f69546; + text-align: left; + font-weight: normal; + font-size: 1.2em; + color: #fff; +} +.lbry-channel-table tbody tr:nth-child(odd) *:nth-child(even), .lbry-channel-table tbody tr:nth-child(even) *:nth-child(odd) { + background: #f3eddd; +} +.lbry-channel-table tfoot th { + padding: .5em 2em; + background: #f69546; + text-align: left; + font-weight: normal; + font-size: .9em; + color: #fff; +} +.lbry-channel-table tr *:nth-child(3), .lbry-channel-table tr *:nth-child(4) { + /* text-align: right; */ +} diff --git a/classes/LBRY_Admin.php b/classes/LBRY_Admin.php index 48fdf12..0f8893a 100644 --- a/classes/LBRY_Admin.php +++ b/classes/LBRY_Admin.php @@ -19,6 +19,7 @@ class LBRY_Admin add_action('admin_init', array($this, 'page_init')); add_action('admin_init', array($this, 'wallet_balance_warning')); add_action('admin_post_lbry_add_channel', array($this, 'add_channel')); + add_action('admin_post_lbry_supports_add', array($this, 'supports_add')); } /** @@ -33,7 +34,7 @@ class LBRY_Admin 'manage_options', LBRY_ADMIN_PAGE, array( $this, 'options_page_html' ), - plugin_dir_url( LBRY_PLUGIN_FILE ) . '/admin/images/lbry-icon.png' + plugin_dir_url( LBRY_PLUGIN_FILE ) . '/admin/images/lbry-icon.png' ); // Admin stylesheet enqueue @@ -253,38 +254,57 @@ class LBRY_Admin public function available_channels_callback() { $channel_list = LBRY()->daemon->channel_list(); - if ( $channel_list ) { ?> -
Looks like you haven't added any channels yet, feel free to do so below:
- + +Looks like you haven't added any channels yet, feel free to do so below:
+ 'lbrypress', 'tab' => 'channels' ), 'options.php' ) ); + + // Check that nonce + if ( isset( $_POST['_lbrynonce'] ) && wp_verify_nonce( $_POST['_lbrynonce'], 'add_supports_nonce' ) ) { + if ( empty( $_POST['lbry_supports_add_claim_id'] ) || empty( $_POST['lbry_supports_add_amount'] ) ) { + LBRY()->notice->set_notice( 'error', 'Must supply both channel name and bid amount' ); + } elseif ( isset( $_POST['lbry_supports_add_claim_id'] ) && isset( $_POST['lbry_supports_add_amount'] ) ) { + $claim_id = $_POST['lbry_supports_add_claim_id']; // TODO: sanitize key() only allows for lowercase chars, dashes, and underscores. maybe remove to allow more characters? and use something else for better control? + + $bid = $_POST['lbry_supports_add_amount']; + $support_bid = number_format( floatval( $bid ), 3, '.', '' ); + + // Try to add the new channel + try { + // $result = LBRY()->daemon->channel_new( $claim_id, $supports_bid ); + // Tell the user it takes some time to go through + LBRY()->notice->set_notice( + 'success', 'Successfully added supports for: @' . esc_html( $claim_name ) . '! Please allow a few minutes for the bid to process.', true ); + + } catch ( \Exception $e ) { + LBRY()->notice->set_notice( 'error', $e->getMessage(), false ); + } + } + } else { + LBRY()->notice->set_notice('error', 'Security check failed' ); + die( __( 'Security check failed', 'lbrypress' ) ); + } + + wp_safe_redirect( $redirect_url ); + exit(); + } + /** * Checks at most once an hour to see if the wallet balance is too low */ @@ -494,19 +551,21 @@ class LBRY_Admin public static function wallet_balance_warning() { // See if we've checked in the past two hours - if (!get_transient('lbry_wallet_check')) { - $balance = LBRY()->daemon->wallet_balance(); - if ($balance < get_option(LBRY_SETTINGS)[LBRY_LBC_PUBLISH] * 20) { + if ( ! get_transient( 'lbry_wallet_check' ) ) { + $result = LBRY()->daemon->wallet_balance(); + $balance = $result->result->available; + $site_url = get_site_url(); + if ( $balance < get_option( LBRY_SETTINGS )[LBRY_LBC_PUBLISH] * 20 ) { // If LBRY Balance is low, send email, but only once per day - if (!get_transient('lbry_wallet_warning_email')) { - $email = get_option('admin_email'); + if ( ! get_transient( 'lbry_wallet_warning_email' ) ) { + $email = get_option( 'admin_email' ); $subject = 'Your LBRYPress Wallet Balance is Low!'; - $message = "Your LBRY Wallet for your WordPress installation at " . site_url() . " is running very low.\r\n\r\nYou currently have " . $balance . ' LBC left in your wallet. In order to keep publishing to the LBRY network, please add some LBC to your account.'; - wp_mail($email, $subject, $message); - set_transient('lbry_wallet_warning_email', true, DAY_IN_SECONDS); + $message = 'Your LBRY Wallet for your WordPress installation at ' . esc_html_e( $site_url ) . ' is running very low.\r\n\r\nYou currently have ' . esc_html_e( $balance ) . ' LBC left in your wallet. In order to keep publishing to the LBRY network, please add some LBC to your account.'; + wp_mail( $email, $subject, $message ); + set_transient( 'lbry_wallet_warning_email', true, DAY_IN_SECONDS ); } } - set_transient('lbry_wallet_check', true, 2 * HOUR_IN_SECONDS); + set_transient( 'lbry_wallet_check', true, 2 * HOUR_IN_SECONDS ); } } diff --git a/templates/options-page.php b/templates/options-page.php index a4648f1..29b4480 100644 --- a/templates/options-page.php +++ b/templates/options-page.php @@ -19,9 +19,19 @@ $lbry_active_tab = isset( $_GET['tab'] ) ? $_GET['tab'] : 'general'; + ' . esc_html__( 'Supports', 'lbrypress') . '', + $admin_url, + ); + } ?> +